From 33bf455bd2963d4b7dd931d279b47c3b9a0d3108 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 24 Apr 2025 10:17:01 +0100 Subject: [PATCH 001/335] insert/delete/replace cdc sql --- pkg/sql/parsers/dialect/mysql/mysql_sql.go | 10779 ++++++++-------- pkg/sql/parsers/dialect/mysql/mysql_sql.y | 34 + .../parsers/dialect/mysql/mysql_sql_test.go | 12 + pkg/sql/parsers/tree/delete.go | 7 +- pkg/sql/parsers/tree/insert.go | 7 +- pkg/sql/parsers/tree/replace.go | 7 +- 6 files changed, 5541 insertions(+), 5305 deletions(-) diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index ee8133a7af1ce..5a062f8599651 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -1334,7 +1334,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line mysql_sql.y:12964 +//line mysql_sql.y:12998 //line yacctab:1 var yyExca = [...]int{ @@ -1342,13 +1342,13 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 142, - 11, 811, - 22, 811, - -2, 804, + 11, 814, + 22, 814, + -2, 807, -1, 167, - 246, 1245, - 248, 1139, - -2, 1191, + 246, 1248, + 248, 1142, + -2, 1194, -1, 194, 44, 634, 248, 634, @@ -1357,1186 +1357,1085 @@ var yyExca = [...]int{ 479, 634, -2, 669, -1, 234, - 664, 2023, + 664, 2026, -2, 533, -1, 548, - 664, 2147, + 664, 2150, -2, 412, -1, 606, - 664, 2206, + 664, 2209, -2, 410, -1, 607, - 664, 2207, + 664, 2210, -2, 411, -1, 608, - 664, 2208, + 664, 2211, -2, 413, - -1, 748, + -1, 750, 327, 181, 451, 181, 452, 181, - -2, 1920, - -1, 815, - 86, 1705, - -2, 2083, - -1, 816, - 86, 1724, - -2, 2054, - -1, 820, - 86, 1725, - -2, 2082, - -1, 854, - 86, 1632, - -2, 2286, - -1, 855, - 86, 1633, - -2, 2285, + -2, 1923, + -1, 817, + 86, 1708, + -2, 2086, + -1, 818, + 86, 1727, + -2, 2057, + -1, 822, + 86, 1728, + -2, 2085, -1, 856, - 86, 1634, - -2, 2275, + 86, 1635, + -2, 2289, -1, 857, - 86, 2247, - -2, 2268, + 86, 1636, + -2, 2288, -1, 858, - 86, 2248, - -2, 2269, + 86, 1637, + -2, 2278, -1, 859, - 86, 2249, - -2, 2277, - -1, 860, 86, 2250, - -2, 2257, - -1, 861, + -2, 2271, + -1, 860, 86, 2251, - -2, 2266, - -1, 862, + -2, 2272, + -1, 861, 86, 2252, - -2, 2278, - -1, 863, + -2, 2280, + -1, 862, 86, 2253, - -2, 2279, - -1, 864, + -2, 2260, + -1, 863, 86, 2254, - -2, 2284, - -1, 865, + -2, 2269, + -1, 864, 86, 2255, - -2, 2289, - -1, 866, + -2, 2281, + -1, 865, 86, 2256, - -2, 2290, + -2, 2282, + -1, 866, + 86, 2257, + -2, 2287, -1, 867, - 86, 1701, - -2, 2121, + 86, 2258, + -2, 2292, -1, 868, - 86, 1702, - -2, 1904, + 86, 2259, + -2, 2293, -1, 869, - 86, 1703, - -2, 2130, - -1, 870, 86, 1704, - -2, 1913, + -2, 2124, + -1, 870, + 86, 1705, + -2, 1907, + -1, 871, + 86, 1706, + -2, 2133, -1, 872, 86, 1707, - -2, 1921, + -2, 1916, -1, 874, - 86, 1709, - -2, 2154, + 86, 1710, + -2, 1924, -1, 876, 86, 1712, - -2, 1942, + -2, 2157, -1, 878, - 86, 1714, - -2, 2166, - -1, 879, 86, 1715, - -2, 2165, + -2, 1945, -1, 880, - 86, 1716, - -2, 1989, - -1, 881, 86, 1717, - -2, 2078, - -1, 884, + -2, 2169, + -1, 881, + 86, 1718, + -2, 2168, + -1, 882, + 86, 1719, + -2, 1992, + -1, 883, 86, 1720, - -2, 2177, + -2, 2081, -1, 886, - 86, 1722, - -2, 2180, - -1, 887, 86, 1723, - -2, 2182, + -2, 2180, -1, 888, - 86, 1726, - -2, 2190, + 86, 1725, + -2, 2183, -1, 889, - 86, 1727, - -2, 2063, + 86, 1726, + -2, 2185, -1, 890, - 86, 1728, - -2, 2108, - -1, 891, 86, 1729, - -2, 2073, - -1, 892, + -2, 2193, + -1, 891, 86, 1730, - -2, 2098, - -1, 903, - 86, 1610, - -2, 2280, - -1, 904, - 86, 1611, - -2, 2281, + -2, 2066, + -1, 892, + 86, 1731, + -2, 2111, + -1, 893, + 86, 1732, + -2, 2076, + -1, 894, + 86, 1733, + -2, 2101, -1, 905, - 86, 1612, - -2, 2282, - -1, 1010, + 86, 1613, + -2, 2283, + -1, 906, + 86, 1614, + -2, 2284, + -1, 907, + 86, 1615, + -2, 2285, + -1, 1013, 474, 669, 475, 669, -2, 635, - -1, 1061, - 128, 1904, - 139, 1904, - 159, 1904, - -2, 1878, - -1, 1182, - 22, 838, - -2, 787, - -1, 1292, - 11, 811, - 22, 811, - -2, 1487, - -1, 1376, - 22, 838, - -2, 787, - -1, 1735, - 86, 1777, - -2, 2080, - -1, 1736, - 86, 1778, - -2, 2081, - -1, 1911, - 87, 1011, - -2, 1017, - -1, 2366, - 111, 1183, - 155, 1183, - 195, 1183, - 198, 1183, - 288, 1183, - -2, 1176, - -1, 2530, - 11, 811, - 22, 811, - -2, 952, - -1, 2564, - 87, 1864, - 160, 1864, - -2, 2065, - -1, 2565, - 87, 1864, - 160, 1864, - -2, 2064, - -1, 2566, - 87, 1840, - 160, 1840, - -2, 2051, - -1, 2567, - 87, 1841, - 160, 1841, - -2, 2056, - -1, 2568, - 87, 1842, - 160, 1842, - -2, 1977, - -1, 2569, + -1, 1064, + 128, 1907, + 139, 1907, + 159, 1907, + -2, 1881, + -1, 1187, + 22, 841, + -2, 790, + -1, 1297, + 11, 814, + 22, 814, + -2, 1490, + -1, 1381, + 22, 841, + -2, 790, + -1, 1743, + 86, 1780, + -2, 2083, + -1, 1744, + 86, 1781, + -2, 2084, + -1, 1919, + 87, 1014, + -2, 1020, + -1, 2377, + 111, 1186, + 155, 1186, + 195, 1186, + 198, 1186, + 288, 1186, + -2, 1179, + -1, 2542, + 11, 814, + 22, 814, + -2, 955, + -1, 2576, + 87, 1867, + 160, 1867, + -2, 2068, + -1, 2577, + 87, 1867, + 160, 1867, + -2, 2067, + -1, 2578, 87, 1843, 160, 1843, - -2, 1970, - -1, 2570, + -2, 2054, + -1, 2579, 87, 1844, 160, 1844, - -2, 1894, - -1, 2571, + -2, 2059, + -1, 2580, 87, 1845, 160, 1845, - -2, 2053, - -1, 2572, + -2, 1980, + -1, 2581, 87, 1846, 160, 1846, - -2, 1975, - -1, 2573, + -2, 1973, + -1, 2582, 87, 1847, 160, 1847, - -2, 1969, - -1, 2574, + -2, 1897, + -1, 2583, 87, 1848, 160, 1848, - -2, 1957, - -1, 2575, - 87, 1864, - 160, 1864, - -2, 1958, - -1, 2576, - 87, 1864, - 160, 1864, - -2, 1959, - -1, 2578, - 87, 1853, - 160, 1853, - -2, 2098, - -1, 2579, - 87, 1830, - 160, 1830, - -2, 2083, - -1, 2580, - 87, 1862, - 160, 1862, - -2, 2054, - -1, 2581, - 87, 1862, - 160, 1862, - -2, 2082, - -1, 2582, - 87, 1862, - 160, 1862, - -2, 1922, - -1, 2583, - 87, 1860, - 160, 1860, - -2, 2073, + -2, 2056, -1, 2584, - 87, 1857, - 160, 1857, - -2, 1947, + 87, 1849, + 160, 1849, + -2, 1978, -1, 2585, - 86, 1811, - 87, 1811, - 160, 1811, - 409, 1811, - 410, 1811, - 411, 1811, - -2, 1893, + 87, 1850, + 160, 1850, + -2, 1972, -1, 2586, - 86, 1812, - 87, 1812, - 160, 1812, - 409, 1812, - 410, 1812, - 411, 1812, - -2, 1895, + 87, 1851, + 160, 1851, + -2, 1960, -1, 2587, - 86, 1813, - 87, 1813, - 160, 1813, - 409, 1813, - 410, 1813, - 411, 1813, - -2, 2126, + 87, 1867, + 160, 1867, + -2, 1961, -1, 2588, + 87, 1867, + 160, 1867, + -2, 1962, + -1, 2590, + 87, 1856, + 160, 1856, + -2, 2101, + -1, 2591, + 87, 1833, + 160, 1833, + -2, 2086, + -1, 2592, + 87, 1865, + 160, 1865, + -2, 2057, + -1, 2593, + 87, 1865, + 160, 1865, + -2, 2085, + -1, 2594, + 87, 1865, + 160, 1865, + -2, 1925, + -1, 2595, + 87, 1863, + 160, 1863, + -2, 2076, + -1, 2596, + 87, 1860, + 160, 1860, + -2, 1950, + -1, 2597, + 86, 1814, + 87, 1814, + 160, 1814, + 409, 1814, + 410, 1814, + 411, 1814, + -2, 1896, + -1, 2598, 86, 1815, 87, 1815, 160, 1815, 409, 1815, 410, 1815, 411, 1815, - -2, 2055, - -1, 2589, - 86, 1817, - 87, 1817, - 160, 1817, - 409, 1817, - 410, 1817, - 411, 1817, - -2, 2033, - -1, 2590, - 86, 1819, - 87, 1819, - 160, 1819, - 409, 1819, - 410, 1819, - 411, 1819, - -2, 1976, - -1, 2591, - 86, 1821, - 87, 1821, - 160, 1821, - 409, 1821, - 410, 1821, - 411, 1821, - -2, 1953, - -1, 2592, + -2, 1898, + -1, 2599, + 86, 1816, + 87, 1816, + 160, 1816, + 409, 1816, + 410, 1816, + 411, 1816, + -2, 2129, + -1, 2600, + 86, 1818, + 87, 1818, + 160, 1818, + 409, 1818, + 410, 1818, + 411, 1818, + -2, 2058, + -1, 2601, + 86, 1820, + 87, 1820, + 160, 1820, + 409, 1820, + 410, 1820, + 411, 1820, + -2, 2036, + -1, 2602, 86, 1822, 87, 1822, 160, 1822, 409, 1822, 410, 1822, 411, 1822, - -2, 1954, - -1, 2593, + -2, 1979, + -1, 2603, 86, 1824, 87, 1824, 160, 1824, 409, 1824, 410, 1824, 411, 1824, - -2, 1892, - -1, 2594, - 87, 1867, - 160, 1867, - 409, 1867, - 410, 1867, - 411, 1867, - -2, 1927, - -1, 2595, - 87, 1867, - 160, 1867, - 409, 1867, - 410, 1867, - 411, 1867, - -2, 1943, - -1, 2596, + -2, 1956, + -1, 2604, + 86, 1825, + 87, 1825, + 160, 1825, + 409, 1825, + 410, 1825, + 411, 1825, + -2, 1957, + -1, 2605, + 86, 1827, + 87, 1827, + 160, 1827, + 409, 1827, + 410, 1827, + 411, 1827, + -2, 1895, + -1, 2606, 87, 1870, 160, 1870, 409, 1870, 410, 1870, 411, 1870, - -2, 1923, - -1, 2597, + -2, 1930, + -1, 2607, 87, 1870, 160, 1870, 409, 1870, 410, 1870, 411, 1870, - -2, 1992, - -1, 2598, - 87, 1867, - 160, 1867, - 409, 1867, - 410, 1867, - 411, 1867, - -2, 2015, - -1, 2819, - 111, 1183, - 155, 1183, - 195, 1183, - 198, 1183, - 288, 1183, - -2, 1177, - -1, 2837, - 84, 731, - 160, 731, - -2, 1361, - -1, 3267, - 198, 1183, - 312, 1450, - -2, 1422, - -1, 3456, - 111, 1183, - 155, 1183, - 195, 1183, - 198, 1183, - -2, 1301, - -1, 3458, - 111, 1183, - 155, 1183, - 195, 1183, - 198, 1183, - -2, 1301, - -1, 3470, - 84, 731, - 160, 731, - -2, 1361, - -1, 3491, - 198, 1183, - 312, 1450, - -2, 1423, - -1, 3646, - 111, 1183, - 155, 1183, - 195, 1183, - 198, 1183, - -2, 1302, - -1, 3674, - 87, 1263, - 160, 1263, - -2, 1183, - -1, 3820, - 87, 1263, - 160, 1263, - -2, 1183, - -1, 3989, - 87, 1267, - 160, 1267, - -2, 1183, - -1, 4044, - 87, 1268, - 160, 1268, - -2, 1183, + -2, 1946, + -1, 2608, + 87, 1873, + 160, 1873, + 409, 1873, + 410, 1873, + 411, 1873, + -2, 1926, + -1, 2609, + 87, 1873, + 160, 1873, + 409, 1873, + 410, 1873, + 411, 1873, + -2, 1995, + -1, 2610, + 87, 1870, + 160, 1870, + 409, 1870, + 410, 1870, + 411, 1870, + -2, 2018, + -1, 2832, + 111, 1186, + 155, 1186, + 195, 1186, + 198, 1186, + 288, 1186, + -2, 1180, + -1, 2850, + 84, 732, + 160, 732, + -2, 1364, + -1, 3282, + 198, 1186, + 312, 1453, + -2, 1425, + -1, 3471, + 111, 1186, + 155, 1186, + 195, 1186, + 198, 1186, + -2, 1304, + -1, 3473, + 111, 1186, + 155, 1186, + 195, 1186, + 198, 1186, + -2, 1304, + -1, 3485, + 84, 732, + 160, 732, + -2, 1364, + -1, 3507, + 198, 1186, + 312, 1453, + -2, 1426, + -1, 3662, + 111, 1186, + 155, 1186, + 195, 1186, + 198, 1186, + -2, 1305, + -1, 3691, + 87, 1266, + 160, 1266, + -2, 1186, + -1, 3838, + 87, 1266, + 160, 1266, + -2, 1186, + -1, 4009, + 87, 1270, + 160, 1270, + -2, 1186, + -1, 4064, + 87, 1271, + 160, 1271, + -2, 1186, } const yyPrivate = 57344 -const yyLast = 55449 +const yyLast = 56672 var yyAct = [...]int{ - 782, 758, 4098, 784, 4066, 2868, 223, 4090, 1637, 3993, - 1999, 3999, 1715, 3476, 3576, 4000, 3887, 3287, 3992, 3820, - 3253, 767, 3910, 3945, 3867, 3364, 3702, 3505, 2862, 1711, - 760, 1549, 3767, 3798, 3858, 3819, 1328, 3365, 3888, 3634, - 1775, 812, 2865, 3736, 2781, 37, 648, 3580, 1183, 1481, - 3438, 1060, 3789, 3868, 3870, 3571, 3443, 1762, 1944, 1487, - 3262, 3492, 2416, 666, 1177, 672, 672, 3655, 3643, 3224, - 1718, 672, 690, 699, 2840, 3210, 699, 3186, 2981, 3616, - 3362, 756, 3648, 3459, 208, 2980, 3213, 3430, 1780, 2094, - 2891, 2957, 3282, 3271, 2097, 68, 2979, 2562, 3264, 3461, - 2976, 2133, 3407, 2059, 1777, 2524, 2688, 3049, 2560, 711, - 3009, 2807, 2207, 1959, 2968, 3327, 2165, 696, 2419, 3191, - 2653, 3270, 3193, 3187, 3233, 3189, 2377, 707, 2110, 3188, - 3184, 2820, 1542, 2345, 2321, 1173, 3157, 141, 2320, 750, - 36, 3097, 1622, 2631, 1638, 2191, 2203, 1626, 3023, 2173, - 2174, 1873, 2613, 940, 1627, 2138, 2166, 2202, 2525, 755, - 2090, 1630, 2796, 2063, 2060, 1446, 2791, 2893, 2508, 2503, - 981, 2376, 2873, 2558, 219, 8, 2417, 2237, 1989, 218, - 7, 6, 2366, 1920, 1121, 1709, 2204, 759, 1589, 1776, - 2832, 1659, 665, 1558, 1527, 2357, 2412, 1521, 749, 648, - 1958, 1714, 1769, 1749, 2725, 768, 2360, 1700, 27, 1199, - 2172, 1490, 2169, 1641, 2154, 23, 1596, 1916, 1708, 1053, - 704, 1470, 2532, 223, 1054, 223, 1526, 1112, 1113, 1919, - 681, 2504, 980, 1523, 672, 1580, 1781, 1466, 907, 714, - 757, 209, 24, 25, 17, 16, 1019, 713, 10, 1092, - 1615, 1482, 698, 15, 957, 1398, 1005, 978, 201, 710, - 963, 971, 33, 972, 205, 909, 910, 3877, 1329, 3786, - 647, 2211, 1374, 1260, 1261, 1262, 1259, 2761, 2761, 2761, - 695, 1109, 2534, 3373, 751, 3473, 668, 1260, 1261, 1262, - 1259, 1260, 1261, 1262, 1259, 3240, 684, 3066, 1069, 3065, - 1413, 1178, 952, 2221, 3607, 3446, 1179, 1108, 2676, 1110, - 2616, 3357, 1886, 2619, 1105, 2617, 966, 691, 962, 2614, - 1599, 1603, 207, 2724, 1104, 694, 667, 677, 702, 2319, - 1393, 1456, 3845, 14, 692, 1449, 1450, 1451, 1525, 1105, - 1066, 1367, 929, 1068, 1039, 927, 206, 64, 197, 168, - 1105, 3167, 673, 2325, 1652, 1178, 2329, 1887, 1396, 3152, - 3150, 3147, 3149, 4078, 1504, 198, 1880, 1389, 3569, 3045, - 3043, 1601, 189, 2143, 943, 3853, 199, 1260, 1261, 1262, - 1259, 751, 8, 3743, 3737, 3572, 3363, 7, 2188, 1103, - 1323, 2753, 2751, 3872, 2168, 140, 1260, 1261, 1262, 1259, - 908, 3126, 2160, 2457, 4104, 693, 3866, 4075, 3805, 919, - 126, 3751, 1258, 3586, 4028, 3617, 1222, 2662, 3621, 202, - 2208, 206, 3460, 2670, 2368, 2367, 3971, 1636, 1404, 3864, - 206, 64, 197, 168, 3773, 2755, 3749, 2706, 3921, 1566, - 1403, 1402, 928, 206, 2826, 926, 1401, 1421, 1438, 968, - 929, 961, 3806, 206, 927, 1070, 3124, 206, 1399, 206, - 965, 964, 709, 2974, 1087, 206, 206, 1064, 1065, 2361, - 1952, 3775, 206, 64, 197, 168, 1645, 946, 1657, 2219, - 2552, 953, 206, 64, 197, 168, 1491, 1257, 1650, 1405, - 1889, 2780, 1034, 1032, 2824, 1033, 148, 149, 2553, 150, - 151, 960, 3069, 202, 152, 3016, 1642, 153, 1654, 1682, - 1649, 1528, 2776, 1530, 3057, 140, 202, 2107, 920, 2073, - 970, 924, 3017, 3018, 2632, 959, 202, 2074, 2075, 958, - 1644, 1500, 1656, 1028, 1501, 945, 1088, 1668, 202, 202, - 3257, 951, 3151, 3148, 2827, 202, 898, 3255, 897, 899, - 900, 1478, 901, 902, 1973, 202, 1717, 2449, 1898, 1899, - 206, 64, 197, 168, 1488, 1489, 2778, 1255, 949, 1063, - 167, 195, 204, 196, 124, 1701, 3875, 1062, 1705, 206, - 64, 197, 168, 1040, 4003, 4004, 1420, 2773, 1950, 3968, - 3596, 2793, 3874, 194, 188, 187, 206, 64, 197, 168, - 70, 2794, 1704, 3873, 1250, 1237, 969, 2308, 1238, 2777, - 1036, 1082, 1077, 1072, 1076, 1080, 1602, 1600, 1230, 3875, - 3959, 1232, 1503, 2539, 3964, 1194, 2538, 3874, 3958, 2540, - 2774, 4027, 950, 202, 206, 3947, 1240, 3873, 3957, 1085, - 4070, 4071, 3366, 1075, 1191, 2756, 3947, 3950, 2223, 1233, - 2792, 3884, 202, 1815, 167, 195, 204, 196, 3856, 3050, - 1486, 190, 191, 192, 1485, 1488, 1489, 3740, 1721, 202, - 672, 672, 3973, 3974, 1038, 3366, 3051, 194, 3052, 2657, - 1188, 672, 1187, 140, 2091, 3380, 3969, 3970, 2799, 3977, - 3976, 3975, 3978, 1706, 1083, 3859, 3860, 3861, 3862, 200, - 2498, 699, 699, 1086, 672, 2085, 2912, 202, 2081, 967, - 1197, 3206, 1202, 1205, 1696, 3431, 2215, 1703, 3626, 3436, - 136, 2969, 2492, 1235, 193, 3087, 137, 2356, 2151, 1951, - 1073, 696, 696, 696, 969, 3595, 1226, 2783, 3966, 1422, - 2220, 3777, 3778, 3597, 1115, 3204, 4002, 3517, 956, 1514, - 2779, 1037, 1609, 1608, 1084, 1476, 3085, 1252, 2667, 1392, - 193, 745, 1228, 2215, 747, 2754, 2455, 1300, 1225, 746, - 3876, 2775, 3785, 3570, 1231, 1234, 3044, 2105, 2106, 2963, - 3383, 3091, 2760, 138, 1069, 3200, 1186, 1236, 1179, 2494, - 1502, 3782, 1720, 1719, 1074, 3623, 63, 3411, 1179, 2501, - 1227, 3201, 3202, 3759, 1179, 3760, 1247, 3730, 3285, 1180, - 3286, 2209, 2209, 2555, 1187, 2209, 3211, 3203, 1217, 1253, - 1254, 3754, 3067, 1248, 1249, 922, 1066, 2326, 664, 1068, - 3587, 1888, 2495, 2496, 1702, 3532, 3064, 3283, 3284, 4035, - 2242, 3903, 3222, 3898, 1332, 65, 2210, 1105, 944, 1105, - 942, 1105, 3234, 752, 1105, 3529, 1105, 1069, 1179, 3762, - 1105, 3804, 1202, 1205, 1239, 3259, 2833, 2959, 923, 1242, - 3810, 1081, 1243, 2222, 2487, 3802, 701, 1229, 700, 2972, - 146, 203, 2363, 147, 3522, 3972, 1452, 3158, 169, 2615, - 1035, 3761, 3889, 61, 695, 695, 695, 3905, 3477, 1066, - 1245, 3198, 1068, 3731, 3911, 1206, 1294, 1078, 1604, 697, - 1079, 3776, 3254, 3750, 2867, 1196, 1204, 1203, 1333, 697, - 3484, 908, 2863, 2864, 1395, 2867, 1397, 2340, 1488, 1489, - 3422, 691, 691, 691, 3212, 1488, 1489, 1465, 1409, 694, - 694, 694, 1412, 1181, 1065, 1214, 1418, 666, 692, 692, - 692, 1182, 3622, 1210, 1211, 1372, 1175, 2671, 1377, 139, - 45, 1651, 2752, 169, 1691, 203, 62, 1692, 1216, 3771, - 5, 65, 169, 2422, 1400, 1301, 3289, 3613, 1890, 3419, - 981, 65, 1190, 1192, 1195, 169, 1477, 1241, 143, 144, - 3883, 3174, 145, 1193, 2490, 169, 3533, 697, 3421, 169, - 3693, 169, 4110, 1296, 1297, 1298, 1299, 169, 169, 925, - 1089, 2798, 1071, 971, 169, 972, 697, 3212, 3682, 693, - 693, 693, 2555, 2467, 169, 2466, 1246, 2226, 2228, 2229, - 2092, 3583, 3811, 697, 3207, 672, 1029, 3803, 1516, 2941, - 4093, 1208, 672, 2970, 2488, 2489, 648, 648, 3965, 3088, - 2805, 1244, 1538, 1537, 1484, 1215, 648, 648, 1463, 65, - 1553, 1553, 3688, 672, 1462, 3779, 1204, 1203, 2802, 2803, - 2435, 3759, 3912, 3760, 1106, 1107, 2415, 2438, 65, 1111, - 3220, 797, 142, 2801, 699, 1581, 666, 142, 3790, 1551, - 1551, 1592, 1555, 1344, 1345, 65, 1461, 3260, 3627, 1480, - 1479, 2913, 169, 2914, 2915, 3263, 223, 1174, 3824, 2084, - 3146, 3199, 2082, 1560, 2421, 648, 2458, 3991, 1697, 2423, - 1031, 169, 3755, 1030, 3462, 2415, 3756, 3762, 3567, 1727, - 1730, 1731, 934, 3369, 2437, 2432, 1414, 1291, 169, 1419, - 1728, 3703, 3704, 3705, 3709, 3707, 3708, 3710, 3706, 709, - 678, 1515, 3944, 142, 3279, 3283, 3284, 3011, 3013, 3761, - 2811, 2815, 2816, 2817, 2812, 2814, 2813, 1634, 1524, 3028, - 3029, 3288, 1639, 2424, 3162, 1378, 169, 2663, 2544, 1648, - 2436, 4094, 1376, 938, 1222, 2453, 2212, 2080, 936, 935, - 1547, 1548, 2057, 1411, 1430, 2766, 3318, 3090, 1436, 2425, - 1435, 1892, 3695, 1434, 1433, 1423, 1041, 703, 1680, 1424, - 3424, 2910, 3280, 3221, 975, 976, 977, 2341, 3408, 1643, - 1472, 1473, 1553, 1443, 1553, 1187, 1655, 2224, 2225, 2647, - 1658, 3099, 3098, 2335, 2334, 2770, 973, 1445, 1448, 696, - 2333, 3823, 696, 696, 1415, 1416, 2238, 2932, 2933, 1408, - 1425, 1426, 1427, 1428, 1429, 1690, 1431, 934, 1029, 1505, - 1506, 1901, 1437, 1902, 1492, 937, 941, 1495, 1610, 1069, - 1532, 1534, 970, 3684, 1221, 2227, 1069, 3683, 1582, 3605, - 1545, 1546, 1406, 1407, 1067, 3164, 1624, 1625, 1536, 142, - 1675, 1676, 1553, 2332, 2942, 2944, 2945, 2946, 2943, 3990, - 1900, 3689, 3690, 930, 142, 3656, 142, 2479, 933, 1187, - 1779, 1647, 4106, 936, 935, 4091, 4092, 1629, 931, 1458, - 1633, 1763, 1810, 1811, 1828, 1814, 1632, 1567, 677, 1716, - 1561, 3012, 1573, 1829, 2426, 1457, 1579, 2276, 1184, 1605, - 2275, 1593, 1031, 4112, 2348, 1030, 1836, 1594, 1838, 2431, - 1839, 1840, 1841, 2429, 2522, 1737, 1738, 1739, 1740, 1741, - 1742, 1743, 1744, 1745, 1746, 1747, 1748, 2349, 2350, 3370, - 1713, 1760, 1761, 1613, 2931, 1616, 1617, 1729, 3954, 1457, - 2838, 1258, 2359, 1679, 4100, 2217, 3324, 1618, 1619, 2132, - 3755, 1187, 1678, 4088, 3869, 2555, 4046, 1891, 4014, 3320, - 1694, 1894, 695, 1896, 1813, 695, 695, 1666, 2422, 2425, - 1669, 1903, 1905, 1258, 1906, 4011, 1908, 1909, 1689, 3281, - 1837, 1581, 1871, 1710, 2767, 1732, 1917, 1553, 1922, 1923, - 1893, 1925, 1516, 672, 1042, 1661, 3239, 1222, 672, 691, - 2634, 1553, 691, 691, 2395, 981, 1699, 694, 1945, 3427, - 694, 694, 1688, 1684, 1687, 1686, 692, 4101, 1683, 692, - 692, 1553, 1712, 1818, 1819, 1820, 4047, 1516, 1707, 4047, - 1874, 4015, 690, 1029, 1827, 4005, 1834, 2523, 1184, 1835, - 2422, 2425, 2523, 1467, 1471, 1471, 1471, 1258, 4012, 3987, - 1667, 1751, 1972, 1670, 1671, 1882, 1848, 1849, 3382, 3938, - 2358, 1979, 1979, 2313, 1516, 1698, 1516, 1516, 1467, 1467, - 672, 672, 2839, 2046, 1917, 2050, 1870, 2452, 1553, 2054, - 2055, 3324, 3435, 2839, 2070, 2662, 648, 693, 1758, 1759, - 693, 693, 2130, 3937, 3293, 1260, 1261, 1262, 1259, 1924, - 648, 3931, 1553, 1685, 2426, 1926, 3291, 3156, 2252, 2421, - 2415, 2420, 3154, 2418, 2423, 1976, 2523, 1031, 1219, 3031, - 1030, 2785, 3988, 3906, 2757, 2410, 2652, 3894, 1877, 672, - 1917, 1553, 1258, 2115, 2639, 672, 672, 672, 707, 707, - 3843, 2394, 1220, 1842, 2208, 2125, 2126, 2127, 2128, 1222, - 3842, 2072, 2134, 3837, 2001, 1260, 1261, 1262, 1259, 223, - 3836, 3835, 223, 223, 2408, 223, 1258, 1263, 2424, 2318, - 2108, 2048, 1872, 2312, 2252, 1293, 2426, 1982, 1100, 1101, - 1102, 2421, 2415, 2420, 1303, 2418, 2423, 1373, 1921, 1878, - 2311, 912, 913, 914, 915, 1220, 2217, 2100, 2101, 2251, - 3895, 3122, 1937, 3834, 3814, 1828, 1828, 2176, 2086, 2283, - 1312, 2199, 1099, 3844, 2103, 1096, 1912, 1828, 1828, 2056, - 1444, 1766, 1953, 2381, 2193, 2077, 2252, 2079, 3813, 1260, - 1261, 1262, 1259, 2252, 2252, 3788, 1941, 1942, 2098, 2099, - 2424, 2114, 1960, 2142, 1962, 1963, 2145, 2146, 2093, 2148, - 1801, 1539, 4119, 1643, 1947, 1948, 1945, 1965, 1969, 1955, - 1553, 2206, 1961, 2117, 2118, 2119, 1983, 1984, 2187, 1970, - 4102, 3473, 1564, 2178, 3720, 2250, 2252, 2217, 696, 2053, - 3538, 3035, 1913, 1914, 1915, 2841, 2665, 1260, 1261, 1262, - 1259, 2047, 1978, 1980, 1928, 1929, 1930, 1931, 2664, 2656, - 1069, 2217, 2402, 1069, 3536, 2271, 2058, 2052, 2252, 2256, - 2071, 3486, 1069, 2198, 2200, 3452, 2137, 3400, 2076, 2087, - 2078, 3396, 3301, 2123, 785, 795, 1663, 142, 142, 142, - 1067, 2183, 1710, 2248, 786, 1309, 787, 791, 794, 790, - 788, 789, 1066, 917, 1946, 1068, 3006, 2112, 1207, 2113, - 1171, 2743, 2731, 2555, 1066, 2171, 1166, 1068, 2120, 2121, - 2723, 1291, 2102, 1981, 1275, 3244, 1964, 2171, 912, 913, - 914, 915, 2139, 2678, 932, 1093, 1094, 1095, 1098, 2660, - 1097, 4113, 1971, 3082, 3487, 1974, 1975, 2648, 3453, 792, - 3401, 2641, 1817, 1816, 3397, 3302, 2156, 2636, 2235, 2236, - 2628, 1541, 1468, 1292, 2626, 1543, 2624, 2622, 1069, 2380, - 2314, 1817, 1816, 2189, 2290, 2289, 1544, 4074, 2450, 2523, - 2274, 2177, 793, 1797, 2381, 1258, 1945, 2265, 2186, 2184, - 1794, 3878, 1455, 1258, 1796, 1793, 1795, 1799, 1800, 3787, - 1464, 695, 1798, 2197, 2195, 2264, 1258, 1474, 2323, 2324, - 1066, 2327, 2381, 1068, 2330, 1493, 1494, 2231, 1496, 1497, - 2637, 1498, 2263, 2253, 2642, 2336, 2201, 2216, 1672, 3235, - 2637, 750, 3747, 2629, 672, 672, 672, 2627, 691, 2623, - 2623, 2214, 2381, 2313, 2306, 2254, 694, 1258, 1258, 672, - 672, 672, 672, 1258, 3899, 692, 3686, 2239, 3685, 2230, - 1258, 3657, 2378, 3465, 1591, 1540, 1854, 1499, 1467, 3463, - 1453, 2382, 2383, 2384, 1454, 2387, 1516, 2232, 1258, 1751, - 917, 3671, 1471, 1469, 3630, 1847, 939, 2140, 3445, 2196, - 3325, 2244, 3316, 3308, 1471, 1258, 2252, 3303, 3900, 3215, - 2217, 1673, 1516, 2966, 2965, 3658, 2809, 3466, 2284, 2285, - 3236, 2287, 1379, 3464, 2762, 2233, 2234, 2675, 2294, 2444, - 2640, 1843, 1844, 1845, 1846, 2546, 693, 1850, 1851, 1852, - 1853, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, - 1864, 1865, 2181, 2180, 1757, 2179, 1804, 1805, 1806, 1807, - 1808, 1809, 1802, 1803, 3237, 1260, 1261, 1262, 1259, 2399, - 1754, 1756, 1753, 2401, 1755, 2403, 3358, 1440, 2696, 1770, - 1453, 1439, 1189, 2451, 1454, 2614, 3355, 672, 1979, 1278, - 1279, 1280, 1281, 1282, 1275, 2685, 2527, 2527, 2070, 2527, - 2315, 2307, 2309, 2310, 2608, 3036, 1907, 1165, 1161, 1162, - 1163, 1164, 1770, 2701, 2245, 2700, 2699, 2697, 3956, 648, - 648, 1260, 1261, 1262, 1259, 2404, 1259, 1187, 1260, 1261, - 1262, 1259, 2618, 1553, 672, 1262, 1259, 3356, 1597, 2342, - 2140, 3698, 1722, 1723, 1724, 1725, 1726, 672, 2414, 3697, - 3053, 2902, 2413, 1187, 2599, 666, 2900, 1332, 2879, 2877, - 3677, 1592, 2550, 2070, 4084, 2715, 2604, 4083, 2606, 3631, - 3632, 223, 1260, 1261, 1262, 1259, 2745, 1562, 2746, 1311, - 1597, 678, 2407, 4082, 1767, 2698, 2388, 4080, 1771, 1772, - 1773, 1774, 1310, 1069, 3624, 4109, 4079, 2541, 1812, 2542, - 4018, 2531, 2529, 3986, 2533, 3985, 1822, 2391, 3115, 3433, - 3901, 2644, 2397, 2953, 2951, 2398, 2782, 142, 2547, 2548, - 2427, 2428, 3839, 2433, 1260, 1261, 1262, 1259, 2400, 2658, - 3827, 1333, 2206, 2687, 2535, 1066, 3101, 3439, 1068, 1553, - 3817, 1553, 3807, 1553, 1260, 1261, 1262, 1259, 1187, 1260, - 1261, 1262, 1259, 2610, 3625, 2609, 2677, 2563, 1598, 1875, - 4108, 3996, 1260, 1261, 1262, 1259, 2603, 3738, 3660, 3434, - 2668, 3114, 3659, 2952, 2950, 2557, 2808, 3478, 2497, 2949, - 2938, 1832, 1553, 1187, 2502, 142, 3444, 2709, 1260, 1261, - 1262, 1259, 142, 2654, 2655, 3601, 1833, 2536, 1260, 1261, - 1262, 1259, 2716, 3467, 2267, 142, 3432, 1553, 142, 142, - 3192, 1551, 3304, 2704, 1260, 1261, 1262, 1259, 2389, 2390, - 3205, 142, 1260, 1261, 1262, 1259, 3078, 2551, 2392, 2393, - 2554, 2702, 2703, 3048, 3047, 2936, 1551, 2259, 2717, 2948, - 2937, 1949, 2068, 1532, 1534, 2935, 2934, 2600, 2926, 2602, - 2920, 2919, 2672, 2918, 2917, 2758, 2764, 2765, 2630, 2543, - 2768, 2317, 2159, 2720, 2721, 2158, 2157, 1968, 2153, 1260, - 1261, 1262, 1259, 2152, 2266, 2689, 2109, 2689, 1187, 1956, - 1957, 1897, 1187, 1895, 1664, 1391, 2693, 3780, 3781, 1553, - 2718, 2674, 1516, 3589, 4105, 4103, 1966, 1967, 2050, 4085, - 2669, 1260, 1261, 1262, 1259, 2707, 2837, 671, 671, 2650, - 3577, 4072, 2843, 679, 4034, 2844, 1977, 2659, 2661, 3588, - 1260, 1261, 1262, 1259, 2666, 3526, 1875, 4033, 4030, 3962, - 2683, 1875, 1875, 2854, 1260, 1261, 1262, 1259, 2749, 2249, - 1710, 2679, 2680, 1187, 1169, 2825, 1260, 1261, 1262, 1259, - 3961, 2876, 1260, 1261, 1262, 1259, 3768, 3942, 1187, 1187, - 1187, 1979, 3886, 3635, 1187, 2695, 2886, 2887, 2888, 2889, - 1187, 2896, 2705, 2897, 2898, 3880, 2899, 745, 2901, 2821, - 747, 2141, 2786, 3388, 2144, 746, 2563, 2147, 1535, 2896, - 2149, 2601, 3863, 1471, 2822, 1069, 3854, 3831, 3826, 2855, - 3118, 2527, 2834, 1168, 3825, 2806, 3784, 3770, 3769, 2682, - 1260, 1261, 1262, 1259, 3739, 2954, 3679, 1260, 1261, 1262, - 1259, 2001, 3639, 3628, 3610, 648, 2845, 1260, 1261, 1262, - 1259, 3117, 2050, 3608, 2857, 3606, 1187, 2070, 2070, 2070, - 2070, 2070, 2070, 3603, 3600, 3599, 2192, 2871, 2788, 3575, - 2790, 3573, 3546, 1187, 2070, 2787, 3543, 2527, 1260, 1261, - 1262, 1259, 2871, 2882, 2883, 2960, 2870, 2874, 2885, 3540, - 2958, 2874, 2804, 3014, 2892, 1553, 679, 2836, 3429, 3416, - 3409, 2881, 2828, 3393, 8, 3391, 672, 672, 3386, 7, - 1921, 2842, 3336, 3314, 2456, 3313, 3311, 2459, 2460, 2461, - 2462, 2463, 2464, 2465, 3116, 3310, 2468, 2469, 2470, 2471, - 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2859, 2480, 2481, - 2482, 2483, 2484, 2872, 2485, 2878, 2856, 3305, 3299, 3298, - 2884, 1260, 1261, 1262, 1259, 2069, 2742, 3216, 3002, 3179, - 2982, 223, 2853, 2726, 2727, 3178, 223, 3177, 3168, 2732, - 2241, 3166, 3163, 3161, 2246, 3015, 2916, 2982, 2322, 2928, - 3092, 3089, 2255, 1260, 1261, 1262, 1259, 3068, 1828, 3046, - 1828, 3021, 2947, 3063, 2939, 1274, 1273, 1283, 1284, 1276, - 1277, 1278, 1279, 1280, 1281, 1282, 1275, 3077, 2961, 2929, - 2967, 3032, 2927, 1553, 2278, 2923, 3084, 2247, 2922, 2262, - 2921, 2983, 2984, 2985, 2986, 2987, 2988, 2269, 2771, 2763, - 142, 2759, 3058, 142, 142, 3005, 142, 3003, 2999, 2651, - 3004, 853, 852, 2869, 3070, 3037, 2337, 2331, 2328, 2286, - 3041, 2162, 3019, 2155, 2291, 2292, 2293, 3022, 1885, 2296, - 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2964, - 2875, 1884, 1665, 2847, 1624, 1625, 1067, 1340, 2850, 142, - 1874, 708, 1069, 2741, 1336, 3062, 1335, 1172, 1067, 921, - 4111, 4060, 2740, 3918, 1069, 1260, 1261, 1262, 1259, 3914, - 1629, 3764, 3763, 1633, 142, 3060, 2739, 3752, 3748, 1632, - 1260, 1261, 1262, 1259, 3602, 3039, 3071, 3038, 3165, 1260, - 1261, 1262, 1259, 3081, 2738, 3169, 3170, 3171, 3173, 3584, - 3175, 3176, 3086, 1260, 1261, 1262, 1259, 3056, 3059, 3061, - 1187, 3054, 2737, 3556, 3458, 3073, 3195, 3457, 3074, 3072, - 3456, 1260, 1261, 1262, 1259, 4059, 3209, 3426, 2736, 3080, - 3405, 672, 3403, 3402, 3399, 3093, 1617, 3398, 3392, 1260, - 1261, 1262, 1259, 2735, 3225, 1187, 1618, 1619, 672, 3113, - 1187, 1187, 3390, 3100, 1292, 1260, 1261, 1262, 1259, 2070, - 2378, 3094, 3243, 3107, 3109, 3110, 3155, 3106, 3371, 3108, - 1260, 1261, 1262, 1259, 3361, 3360, 2396, 1260, 1261, 1262, - 1259, 3347, 2444, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1275, 3346, 3228, 3219, 3269, 3245, 3272, 3232, 3272, 3272, - 3182, 3153, 3120, 1187, 3181, 1266, 1267, 1268, 1269, 1270, - 1271, 1272, 1264, 3111, 2871, 3103, 3160, 3159, 3102, 3096, - 3030, 3294, 2821, 206, 3252, 197, 168, 3290, 2784, 1553, - 1553, 3197, 2625, 2621, 2795, 3247, 2734, 2620, 2295, 3180, - 1069, 2288, 1069, 3256, 3258, 2282, 2281, 1069, 2280, 2871, - 2279, 1875, 2277, 1875, 2871, 2871, 2273, 2272, 1551, 1551, - 3295, 3296, 3241, 1260, 1261, 1262, 1259, 3104, 3105, 2270, - 2261, 3218, 1875, 1875, 1069, 3227, 672, 2258, 2257, 2161, - 3230, 3231, 1066, 3195, 1868, 1068, 3242, 3268, 2733, 3267, - 1867, 3238, 1866, 1831, 2730, 1516, 202, 4017, 2050, 2050, - 3277, 3251, 671, 1176, 1591, 1830, 2414, 2871, 1821, 1565, - 2413, 2729, 1563, 1185, 3936, 1260, 1261, 1262, 1259, 3273, - 3274, 1260, 1261, 1262, 1259, 1330, 3278, 3913, 3849, 2908, - 2909, 2728, 3846, 3292, 206, 3833, 1213, 3828, 1260, 1261, - 1262, 1259, 3733, 3732, 2924, 2925, 3714, 3696, 3692, 3670, - 3654, 3557, 1187, 2643, 3554, 2646, 2709, 3524, 1260, 1261, - 1262, 1259, 3523, 3520, 3359, 3519, 3127, 3128, 3485, 3482, - 2962, 3480, 3129, 3130, 3131, 3132, 3447, 3133, 3134, 3135, - 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 1283, 1284, - 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1275, 3321, 3322, - 2722, 3306, 3312, 3315, 3300, 3307, 3112, 202, 3319, 1612, - 1623, 672, 1614, 1628, 1631, 4052, 3818, 3309, 2712, 2686, - 1620, 3332, 2692, 3333, 1447, 2993, 2955, 1260, 1261, 1262, - 1259, 2880, 2830, 2710, 2711, 2708, 2829, 2823, 2789, 3340, - 2744, 2713, 2714, 2635, 2545, 1260, 1261, 1262, 1259, 2486, - 3343, 3344, 3345, 2379, 2351, 2316, 2563, 2719, 1752, 202, - 3349, 2122, 1260, 1261, 1262, 1259, 1911, 1881, 1695, 2530, - 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, - 1282, 1275, 1646, 1621, 2134, 3413, 1722, 1875, 3415, 1390, - 1375, 1371, 3417, 2684, 3372, 1370, 1369, 3423, 3246, 1368, - 3275, 3375, 1367, 3248, 3249, 1366, 3374, 1365, 1364, 3378, - 1363, 1362, 1361, 3394, 3379, 3930, 3668, 1765, 1360, 2689, - 1260, 1261, 1262, 1259, 1359, 1358, 1357, 1356, 3384, 1355, - 1354, 1353, 672, 2050, 2069, 1352, 1351, 3418, 1350, 3420, - 1349, 1348, 142, 3451, 1260, 1261, 1262, 1259, 1347, 3425, - 1346, 1343, 1342, 1341, 1339, 1338, 3428, 1337, 1334, 2527, - 2070, 3470, 1327, 1326, 1324, 3406, 3666, 1323, 2848, 2849, - 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, - 1282, 1275, 3410, 1322, 3488, 3412, 1321, 1187, 1320, 1319, - 1318, 1317, 1316, 1315, 1314, 2846, 3269, 1313, 1308, 1069, - 1187, 1307, 1306, 1305, 2851, 2852, 1069, 1304, 1224, 1170, - 3328, 3329, 1187, 3928, 3535, 3926, 3924, 3521, 1553, 2386, - 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, - 1282, 1275, 3323, 3442, 2365, 1212, 4050, 4001, 3472, 672, - 3331, 2050, 2810, 2556, 2164, 1187, 1223, 1551, 3001, 3537, - 3518, 2991, 3338, 2996, 3339, 3337, 2994, 3479, 2997, 3481, - 3440, 2995, 2990, 3469, 3468, 3334, 2998, 1511, 2517, 2518, - 3511, 3475, 3000, 2989, 1522, 3559, 125, 223, 67, 3955, - 3865, 66, 3675, 3560, 2649, 2638, 1441, 2505, 3547, 3525, - 1187, 3489, 3550, 3530, 3076, 1559, 3214, 3527, 1939, 1940, - 2454, 3561, 3534, 2904, 3528, 1934, 1935, 1936, 3531, 1875, - 2905, 2906, 2907, 3541, 3539, 3542, 2892, 3350, 3265, 3544, - 3266, 2039, 3545, 3551, 2512, 2516, 2517, 2518, 2513, 2521, - 2514, 2519, 3604, 3558, 2515, 1606, 2520, 3549, 3376, 3377, - 3552, 2633, 2673, 3612, 1660, 674, 1640, 675, 1187, 2982, - 676, 2654, 2655, 3582, 2338, 2124, 1218, 3190, 3183, 2858, - 2831, 3568, 2406, 2374, 1943, 1910, 4063, 3548, 1187, 1553, - 1553, 142, 1817, 1816, 3225, 3578, 3579, 1386, 1387, 1384, - 1385, 142, 1382, 1383, 3609, 3830, 3611, 3647, 3040, 3647, - 3042, 1380, 1381, 3297, 2982, 2499, 2493, 2051, 1551, 1763, - 3637, 1187, 3664, 1187, 1508, 3641, 3642, 1507, 3636, 1875, - 1251, 2182, 3342, 3667, 1875, 3669, 3024, 2339, 3563, 2194, - 1553, 1460, 3644, 1459, 1432, 3619, 2192, 3638, 3620, 1483, - 3618, 4024, 4022, 3979, 3952, 3951, 3629, 3949, 672, 3890, - 1187, 1187, 3615, 3640, 1187, 1187, 3850, 3652, 3651, 1763, - 3728, 3727, 2871, 3665, 3574, 2178, 3395, 3368, 3367, 3352, - 3598, 3095, 3353, 3663, 3716, 3472, 2439, 2409, 3673, 3711, - 1662, 3034, 1069, 3676, 3518, 1945, 1457, 3680, 3725, 3414, - 3700, 3701, 4054, 4053, 3712, 3713, 3079, 3672, 2769, 3119, - 3734, 3735, 2367, 3471, 3511, 2260, 1394, 3678, 1209, 4053, - 4054, 3694, 3474, 1553, 3348, 1716, 1184, 1716, 2069, 2069, - 2069, 2069, 2069, 2069, 210, 3, 1475, 75, 2, 1286, - 3722, 1290, 3721, 4076, 4077, 2069, 3765, 1, 2750, 1879, - 1388, 3717, 1551, 3723, 3746, 916, 3758, 1287, 1289, 1285, - 911, 1288, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1275, 1529, 3741, 2537, 912, 913, 914, - 915, 3745, 1184, 2104, 1557, 1883, 918, 3007, 3753, 3757, - 981, 3008, 3341, 3010, 2772, 3799, 2213, 3793, 3772, 1274, - 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1275, 1187, 2512, 2516, 2517, 2518, 2513, 2521, 2514, 2519, - 3783, 2971, 2515, 3816, 2520, 3822, 2491, 2355, 3208, 1442, - 974, 3791, 142, 1823, 1677, 1201, 1674, 142, 1200, 3795, - 3794, 1198, 1768, 3582, 799, 3796, 2167, 2956, 3812, 2930, - 3808, 3724, 4062, 4097, 3590, 1187, 3591, 4016, 142, 4065, - 1553, 1693, 783, 3943, 3855, 4020, 3857, 3744, 2218, 1256, - 142, 3055, 3121, 1001, 3276, 840, 3829, 810, 1325, 1653, - 3250, 1069, 3125, 3123, 809, 1927, 3437, 2800, 3729, 1551, - 1932, 3840, 3027, 3801, 1002, 3838, 2150, 3852, 3742, 1607, - 1611, 2405, 3809, 3909, 1509, 1510, 3674, 1512, 1513, 3261, - 1517, 1518, 1519, 2866, 3882, 1716, 3871, 3448, 3449, 3450, - 1635, 3904, 3483, 3454, 3455, 3851, 1274, 1273, 1283, 1284, - 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1275, 3594, 3592, - 3661, 3662, 3593, 3891, 1568, 1569, 1570, 1571, 1572, 715, - 1574, 1575, 1576, 1577, 1578, 2083, 3879, 646, 1584, 1585, - 1586, 1587, 1985, 1986, 1051, 3715, 3885, 2163, 716, 2385, - 3967, 3908, 3832, 954, 1187, 3893, 2364, 955, 947, 2819, - 2818, 1733, 1553, 1265, 1750, 3933, 3144, 3145, 1302, 754, - 3940, 3923, 3925, 3927, 3929, 2243, 3907, 2797, 3902, 3506, - 3020, 74, 73, 72, 71, 3941, 3916, 231, 801, 230, - 3766, 1551, 3633, 3932, 3922, 3939, 4067, 3847, 3848, 780, - 779, 2111, 778, 777, 776, 775, 2510, 2111, 2111, 2111, - 2511, 2509, 3948, 1553, 3946, 2507, 3799, 2506, 2065, 2064, - 3033, 3351, 2129, 2131, 3223, 2895, 1067, 2890, 142, 1990, - 3960, 1988, 3989, 142, 1520, 2434, 2441, 1987, 3997, 3980, - 2069, 3998, 1551, 3385, 3981, 3585, 3919, 3983, 3984, 3982, - 3920, 3691, 2940, 3581, 1933, 2430, 2007, 2911, 2004, 2003, - 142, 2903, 3687, 3681, 2035, 4013, 3797, 3646, 3490, 3491, - 3497, 4006, 2373, 4007, 1120, 4008, 1116, 4009, 2681, 4010, - 1118, 1119, 1117, 2694, 4023, 3317, 4025, 4026, 2411, 3387, - 4021, 4019, 3185, 2347, 2346, 2344, 3389, 2343, 3871, 1417, - 1187, 4029, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1275, 3881, 3963, 3614, 2561, 2559, 1167, - 3822, 4042, 3330, 3326, 2175, 3335, 2992, 2190, 3404, 4044, - 4045, 4043, 4051, 3075, 4048, 4049, 4061, 2066, 4069, 2062, - 2061, 4068, 1091, 4055, 4056, 4057, 4058, 1090, 1588, 2973, - 2500, 3774, 1938, 948, 2362, 109, 4081, 41, 122, 4073, - 989, 108, 1187, 185, 59, 2240, 3495, 184, 58, 120, - 182, 57, 103, 102, 4086, 3908, 4087, 4089, 119, 180, - 56, 215, 4095, 214, 217, 4099, 216, 213, 4096, 1274, - 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1275, 2611, 2612, 212, 4040, 1595, 211, 3507, 3953, 3650, - 3718, 3935, 906, 4107, 3719, 44, 43, 186, 42, 110, - 3498, 60, 4069, 4115, 40, 4068, 4114, 39, 38, 34, - 13, 3493, 985, 986, 4099, 4116, 3515, 3516, 12, 35, - 4120, 22, 3494, 1029, 1273, 1283, 1284, 1276, 1277, 1278, - 1279, 1280, 1281, 1282, 1275, 21, 1681, 20, 206, 64, - 197, 168, 26, 32, 31, 135, 1716, 134, 30, 133, - 132, 131, 130, 129, 128, 127, 29, 198, 19, 3499, - 51, 50, 49, 1875, 189, 48, 47, 46, 199, 9, - 123, 118, 116, 28, 117, 114, 115, 113, 112, 1875, - 111, 106, 3553, 104, 86, 3555, 85, 140, 84, 99, - 98, 97, 96, 95, 94, 92, 93, 1000, 83, 82, - 81, 80, 126, 79, 101, 107, 3562, 1031, 105, 90, - 1030, 202, 100, 91, 89, 88, 87, 78, 77, 76, - 166, 165, 164, 163, 162, 160, 2352, 2353, 2354, 161, - 159, 158, 157, 156, 155, 154, 52, 53, 54, 55, - 176, 2369, 2370, 2371, 2372, 175, 177, 179, 181, 1015, - 178, 183, 173, 171, 174, 172, 170, 3514, 990, 2420, - 69, 11, 121, 18, 4, 142, 0, 0, 0, 0, - 0, 0, 142, 0, 0, 0, 0, 0, 3841, 0, - 0, 0, 0, 0, 3503, 992, 0, 0, 148, 149, - 0, 150, 151, 0, 0, 0, 152, 0, 0, 153, - 0, 0, 0, 0, 0, 2116, 3500, 3504, 3502, 3501, - 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, - 206, 2069, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3645, 0, 0, 3509, 3510, 0, 2039, - 1014, 1012, 3892, 0, 0, 0, 0, 3896, 3897, 0, - 0, 0, 167, 195, 204, 196, 124, 0, 0, 1522, - 0, 0, 0, 0, 0, 0, 0, 1011, 0, 0, - 0, 0, 0, 0, 0, 194, 188, 187, 3917, 984, - 0, 0, 70, 202, 0, 0, 0, 0, 0, 3517, - 991, 1024, 0, 2013, 0, 0, 0, 0, 0, 0, - 0, 3496, 0, 0, 0, 0, 1559, 3508, 0, 0, - 0, 0, 0, 0, 1020, 0, 0, 0, 0, 2111, + 784, 760, 4118, 786, 4086, 4110, 223, 2882, 1643, 2008, + 4013, 1723, 3492, 3592, 4019, 3302, 4012, 4020, 3929, 3838, + 3268, 769, 3885, 3964, 762, 3719, 3379, 3815, 3521, 1487, + 3784, 3876, 1333, 2876, 1555, 3380, 3905, 3837, 3650, 1719, + 3906, 3753, 814, 1783, 2879, 1063, 648, 1188, 3806, 3587, + 3596, 2794, 3886, 3888, 3453, 1953, 3458, 1770, 2428, 3671, + 3508, 3277, 1726, 666, 1462, 673, 673, 1181, 2853, 1493, + 3659, 673, 692, 701, 3238, 3224, 701, 3200, 208, 3632, + 2536, 2574, 3474, 3664, 3377, 2106, 2993, 2994, 37, 2995, + 3227, 3445, 1788, 2971, 3279, 2905, 3476, 2119, 758, 2142, + 3297, 3422, 2218, 3286, 2990, 2701, 3063, 2572, 2174, 3342, + 2982, 3207, 2666, 2068, 1968, 3205, 3023, 3285, 2820, 1176, + 3203, 2388, 141, 3201, 2332, 3202, 3247, 709, 3198, 3171, + 2356, 2431, 757, 1628, 3111, 1621, 2833, 2214, 2331, 752, + 2202, 2461, 1785, 2103, 36, 1632, 2643, 2182, 3037, 1881, + 2183, 2175, 2625, 942, 713, 2147, 68, 1633, 2099, 2213, + 698, 2537, 1548, 1636, 2520, 2809, 2907, 2072, 2804, 2515, + 984, 2429, 2887, 2845, 1998, 2377, 1928, 2387, 2570, 219, + 8, 1784, 1124, 2248, 1717, 6, 1418, 2215, 2069, 218, + 7, 761, 1057, 2172, 1595, 1564, 1667, 665, 1533, 648, + 1527, 2424, 751, 2368, 1777, 2738, 1452, 759, 1529, 2371, + 1757, 1708, 770, 1496, 23, 1660, 1204, 2181, 1647, 2163, + 2178, 1602, 1716, 223, 1967, 223, 27, 1115, 1116, 1924, + 1056, 2544, 1927, 706, 673, 1586, 715, 1532, 647, 683, + 1022, 959, 1472, 2516, 1447, 1497, 16, 700, 1789, 983, + 1488, 909, 1476, 686, 24, 25, 209, 716, 975, 1722, + 981, 17, 1644, 205, 1403, 1095, 965, 10, 1008, 1334, + 2222, 201, 14, 1379, 712, 911, 668, 912, 15, 1265, + 1266, 1267, 1264, 1265, 1266, 1267, 1264, 206, 64, 197, + 168, 1112, 33, 1265, 1266, 1267, 1264, 3895, 697, 3803, + 2774, 1111, 2774, 1113, 2774, 2546, 198, 3488, 973, 3388, + 974, 3254, 3080, 189, 3079, 2232, 1182, 199, 693, 3623, + 3461, 3372, 1183, 704, 2689, 1069, 2631, 2629, 2628, 2626, + 1894, 1605, 1609, 1107, 1108, 207, 140, 667, 2330, 1398, + 679, 1531, 674, 3863, 695, 3164, 1458, 1071, 1372, 954, + 696, 126, 1042, 1455, 1456, 1457, 2336, 1108, 931, 1072, + 202, 1108, 929, 968, 694, 964, 3181, 978, 979, 980, + 1659, 2340, 1401, 3161, 1895, 3166, 3163, 4098, 1182, 1510, + 1888, 2737, 1394, 1607, 3585, 3059, 3057, 8, 2152, 3871, + 3760, 3754, 3588, 1106, 3378, 2199, 1328, 7, 2766, 2764, + 3890, 2177, 753, 910, 2169, 1265, 1266, 1267, 1264, 1265, + 1266, 1267, 1264, 3140, 2469, 4124, 3884, 4095, 3768, 3822, + 921, 945, 206, 1263, 3602, 1227, 1409, 4048, 2675, 3637, + 1090, 3633, 2219, 3475, 3990, 2379, 2683, 148, 149, 1642, + 150, 151, 2768, 3882, 3790, 152, 206, 206, 153, 2719, + 2378, 3940, 1572, 1408, 3766, 1407, 1045, 1406, 930, 931, + 206, 929, 928, 3823, 206, 64, 197, 168, 1073, 2839, + 711, 140, 206, 64, 197, 168, 1404, 1067, 1426, 1068, + 3138, 206, 2230, 206, 1443, 2988, 2372, 1410, 206, 64, + 197, 168, 1961, 2793, 2564, 202, 970, 206, 963, 753, + 1037, 1035, 1091, 1036, 1657, 926, 1262, 967, 966, 3083, + 2565, 167, 195, 204, 196, 124, 1664, 1897, 3030, 2837, + 202, 3031, 3032, 2116, 948, 206, 1656, 3165, 955, 922, + 3071, 2789, 140, 202, 194, 188, 187, 202, 1534, 3792, + 1536, 70, 2082, 1690, 1651, 202, 1661, 2644, 962, 206, + 64, 197, 168, 1676, 202, 3162, 202, 206, 64, 197, + 168, 202, 2083, 2084, 1906, 1907, 1031, 972, 2791, 2840, + 1663, 1982, 961, 3612, 1648, 1725, 960, 1085, 1080, 1075, + 1079, 1083, 947, 206, 64, 197, 168, 1506, 953, 1484, + 1507, 1043, 1235, 2551, 1260, 1237, 2550, 3987, 1650, 2552, + 1494, 1495, 190, 191, 192, 1088, 2786, 3272, 4047, 1078, + 1959, 2790, 1066, 2319, 1196, 951, 1709, 1425, 1039, 1713, + 1492, 3893, 202, 1238, 1491, 1494, 1495, 1065, 1608, 1606, + 202, 3893, 3978, 1823, 2806, 900, 2077, 899, 901, 902, + 200, 903, 904, 1712, 2807, 3270, 4023, 4024, 1199, 2787, + 1207, 1210, 2769, 971, 3892, 3977, 202, 3891, 3976, 1255, + 1086, 136, 3892, 3891, 3381, 193, 3983, 137, 3966, 1089, + 673, 673, 673, 4090, 4091, 3381, 673, 3966, 1509, 952, + 3992, 3993, 1041, 673, 1192, 3874, 3064, 3969, 167, 195, + 204, 196, 3757, 2805, 3988, 3989, 1076, 3996, 3995, 3994, + 3997, 672, 672, 701, 701, 2670, 673, 681, 1207, 1210, + 1231, 194, 2234, 3877, 3878, 3879, 3880, 3065, 3611, 3066, + 1087, 3902, 1193, 2100, 138, 1729, 3613, 2090, 1118, 2926, + 3395, 1704, 2094, 3446, 1714, 2510, 1233, 63, 2226, 2812, + 3451, 3101, 1247, 2231, 2504, 1248, 2983, 3220, 1236, 1239, + 1242, 1960, 2792, 1243, 3794, 3795, 969, 1520, 1711, 1040, + 1077, 2160, 2367, 3642, 1615, 1614, 971, 2796, 1397, 1305, + 1427, 3533, 2767, 1250, 1232, 3985, 698, 698, 698, 976, + 3099, 1245, 1257, 2114, 2115, 1202, 65, 3218, 747, 2680, + 2788, 749, 193, 1482, 1184, 958, 748, 2467, 2226, 3586, + 3894, 1230, 3802, 3398, 3058, 3105, 2977, 2773, 4022, 924, + 1183, 1258, 1259, 1069, 1183, 2506, 1192, 3799, 3747, 1183, + 2220, 146, 203, 2220, 147, 3639, 1191, 2220, 3081, 169, + 2337, 2567, 3078, 3426, 61, 1071, 2513, 1084, 1252, 3548, + 1337, 3603, 2253, 3215, 3216, 2221, 1508, 1072, 1896, 1728, + 1727, 1234, 925, 664, 1209, 1208, 3300, 1108, 3301, 3217, + 1246, 3274, 1108, 1108, 1108, 1222, 4055, 1108, 1240, 1108, + 681, 3545, 3821, 1081, 3236, 1710, 1082, 3248, 1253, 1254, + 3828, 1183, 3225, 2507, 2508, 2233, 1069, 3922, 3214, 2237, + 2239, 2240, 3819, 3991, 2499, 946, 3916, 944, 1038, 1251, + 139, 45, 3298, 3299, 703, 2846, 1211, 62, 1071, 699, + 3748, 5, 1209, 1208, 697, 697, 697, 2627, 2973, 702, + 1072, 1610, 2986, 2374, 1249, 699, 1400, 910, 1402, 143, + 144, 3767, 1241, 145, 693, 693, 693, 3538, 3172, 3907, + 1414, 1195, 1197, 1200, 1417, 3924, 1178, 1179, 1423, 666, + 1215, 1216, 1185, 3493, 1187, 1186, 1377, 1068, 1338, 1382, + 695, 695, 695, 3638, 169, 1219, 696, 696, 696, 2765, + 2684, 65, 1301, 1302, 1303, 1304, 1092, 1658, 1074, 3793, + 694, 694, 694, 984, 1306, 1221, 699, 65, 169, 169, + 1201, 3930, 1405, 927, 699, 1494, 1495, 3269, 1699, 203, + 3226, 1700, 169, 2881, 3212, 1898, 169, 3500, 3437, 1244, + 710, 2447, 2351, 973, 169, 974, 1198, 2427, 2450, 1471, + 699, 3304, 3788, 169, 1483, 169, 1299, 3629, 3434, 3776, + 169, 3777, 2434, 1494, 1495, 3226, 3188, 1490, 673, 169, + 2502, 1522, 3829, 2877, 2878, 673, 2881, 3771, 65, 648, + 648, 3549, 3901, 3710, 3820, 1464, 65, 2479, 4130, 648, + 648, 2567, 2811, 1559, 1559, 3102, 673, 169, 2984, 2101, + 3221, 4113, 3776, 2478, 3777, 2449, 3436, 3599, 3796, 1213, + 2500, 2501, 65, 2818, 1544, 3779, 1543, 701, 1587, 666, + 3984, 169, 1220, 3275, 1598, 1469, 1349, 1350, 1561, 169, + 1486, 1485, 1557, 1557, 3931, 1468, 1467, 3842, 3807, 223, + 4011, 3477, 2955, 3278, 1177, 1566, 3160, 3778, 648, 2815, + 2816, 2448, 2470, 2427, 2927, 169, 2928, 2929, 3779, 1296, + 3583, 2091, 1420, 1421, 2814, 1705, 2093, 2238, 1430, 1431, + 1432, 1433, 1434, 3643, 1436, 3699, 1424, 1419, 711, 3963, + 1442, 1735, 1738, 1739, 3384, 1521, 1530, 3294, 3705, 1227, + 3778, 3176, 1736, 2824, 2828, 2829, 2830, 2825, 2827, 2826, + 1640, 3298, 3299, 2433, 2676, 1645, 1383, 3439, 2435, 2556, + 936, 2465, 2223, 1655, 2089, 1381, 3720, 3721, 3722, 3726, + 3724, 3725, 3727, 3723, 2066, 1416, 1435, 3333, 2779, 3104, + 3025, 3027, 2437, 1441, 1440, 1428, 2444, 1439, 3042, 3043, + 1438, 1900, 4114, 1688, 3213, 3712, 3303, 1429, 1044, 705, + 978, 979, 980, 1553, 1554, 2235, 2236, 1559, 3295, 1559, + 1192, 940, 2436, 1032, 1666, 1449, 938, 937, 2249, 2924, + 3841, 1538, 1540, 1451, 3423, 1473, 1477, 1477, 1477, 1226, + 1454, 1551, 1552, 2660, 1478, 1479, 3113, 3112, 1448, 2346, + 2345, 1619, 2783, 1622, 1623, 1649, 2344, 1511, 1512, 1616, + 1473, 1473, 972, 1662, 1413, 1624, 1625, 3234, 1909, 1498, + 1630, 1631, 1501, 1411, 1412, 1910, 1588, 698, 943, 1032, + 698, 698, 4010, 2491, 3621, 3178, 2343, 1559, 1653, 1654, + 1908, 932, 2352, 1698, 3672, 1665, 672, 672, 1180, 1542, + 1611, 933, 672, 939, 1192, 1787, 4126, 1034, 4132, 1190, + 1033, 3973, 1579, 1635, 1263, 3253, 1639, 1818, 1819, 1836, + 1822, 1638, 1567, 1072, 1585, 1461, 1771, 2438, 1837, 1573, + 3339, 1072, 1218, 1470, 679, 4120, 4111, 4112, 3772, 2851, + 1480, 1844, 3773, 1846, 2370, 1847, 1848, 1849, 1499, 1500, + 1599, 1502, 1503, 1463, 1504, 1600, 1721, 2956, 2958, 2959, + 2960, 2957, 1724, 1034, 3026, 2141, 1033, 1745, 1746, 1747, + 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 2228, + 3385, 3772, 1707, 1768, 1769, 3887, 1192, 3706, 3707, 1737, + 3701, 2852, 1899, 1740, 3700, 1463, 1902, 1879, 1904, 1702, + 3235, 1674, 2567, 1821, 1677, 1032, 1911, 1913, 4121, 1914, + 2443, 1916, 1917, 4108, 2441, 697, 1587, 2780, 697, 697, + 3335, 1925, 1559, 1930, 1931, 3296, 1933, 1522, 673, 1669, + 1901, 1697, 1845, 673, 2534, 693, 1559, 1227, 693, 693, + 1706, 984, 1675, 2646, 1954, 1678, 1679, 1683, 1684, 2464, + 4066, 1694, 1715, 2946, 2947, 2359, 1882, 1559, 4034, 1696, + 1692, 695, 2369, 1522, 695, 695, 1695, 696, 692, 1835, + 696, 696, 1691, 936, 3442, 1720, 1718, 1693, 2360, 2361, + 4031, 694, 2852, 3397, 694, 694, 4067, 4025, 1981, 1034, + 1766, 1767, 1033, 1759, 2324, 2535, 1189, 1988, 1988, 4139, + 1522, 2675, 1522, 1522, 1189, 3308, 673, 673, 2139, 2055, + 1925, 2059, 4007, 1955, 1559, 2063, 2064, 1225, 2287, 1224, + 2079, 2286, 648, 4067, 935, 1227, 2262, 3957, 1890, 938, + 937, 4035, 3306, 3956, 3950, 1973, 648, 3339, 1559, 3170, + 1687, 1934, 3168, 2535, 3045, 914, 915, 916, 917, 1686, + 2798, 1980, 3925, 4032, 1983, 1984, 1265, 1266, 1267, 1264, + 2263, 1985, 2535, 3912, 3861, 673, 1925, 1559, 1885, 2124, + 2770, 673, 673, 673, 709, 709, 1826, 1827, 1828, 1932, + 2945, 2134, 2135, 2136, 2137, 4008, 2117, 3860, 2143, 1842, + 1850, 2010, 1843, 3855, 1263, 223, 1225, 2057, 223, 223, + 1263, 223, 2261, 1921, 1922, 1923, 1263, 2263, 2665, 1856, + 1857, 2434, 2437, 2651, 1991, 1936, 1937, 1938, 1939, 2219, + 1880, 2081, 2420, 1886, 2329, 2228, 1570, 2407, 3854, 1878, + 2323, 2322, 1265, 1266, 1267, 1264, 3913, 3862, 2434, 2437, + 2294, 1836, 1836, 2185, 2210, 1263, 1949, 914, 915, 916, + 917, 1920, 3853, 1378, 1836, 1836, 2112, 1956, 1957, 3450, + 2393, 3852, 2204, 2065, 1517, 3832, 2263, 1450, 2126, 2127, + 2128, 1528, 3831, 2151, 1774, 2102, 2154, 2155, 3136, 2157, + 1969, 1929, 1971, 1972, 1950, 1990, 2198, 2109, 2110, 2095, + 1951, 2086, 1565, 2088, 1954, 1945, 1978, 919, 1559, 2217, + 1964, 2263, 3805, 1473, 2107, 2108, 1545, 1970, 4122, 1265, + 1266, 1267, 1264, 2188, 2080, 3554, 1962, 1477, 1265, 1266, + 1267, 1264, 2123, 3502, 1974, 2263, 1992, 1993, 3488, 1477, + 3467, 3049, 1649, 1649, 2263, 2854, 1979, 3737, 2228, 2056, + 1987, 1989, 3415, 3411, 1662, 2228, 2061, 2438, 3316, 2211, + 2678, 2067, 2433, 2427, 2432, 2259, 2430, 2435, 2677, 698, + 2193, 2669, 3020, 1069, 2406, 2085, 2096, 2087, 2422, 2414, + 2756, 2744, 2736, 2062, 2438, 2263, 1069, 2691, 754, 2433, + 2427, 2432, 2673, 2430, 2435, 1071, 2661, 2653, 2567, 2122, + 2282, 2180, 2648, 2640, 2638, 2121, 3503, 1072, 1071, 919, + 1072, 1072, 2636, 3468, 2180, 1965, 1966, 2129, 2130, 2267, + 1072, 2436, 1072, 2148, 3552, 3416, 3412, 787, 797, 2209, + 2634, 3317, 1975, 1976, 2146, 2392, 1718, 788, 2325, 789, + 793, 796, 792, 790, 791, 2535, 2132, 2165, 2436, 1671, + 1314, 1212, 1986, 2393, 1263, 1263, 1174, 2301, 1169, 1296, + 1263, 2111, 2300, 2246, 2247, 2393, 2200, 3258, 2285, 2649, + 2654, 2276, 2186, 2187, 1954, 2649, 2641, 2639, 1280, 2275, + 934, 2197, 2196, 1069, 2194, 2635, 3096, 4133, 3249, 3917, + 2274, 2206, 794, 2264, 2227, 1680, 2334, 2335, 2208, 2338, + 4094, 3673, 2341, 2635, 3480, 1071, 1474, 697, 2393, 2626, + 2462, 2324, 3478, 2347, 1825, 1824, 3896, 1072, 2212, 752, + 1825, 1824, 673, 673, 673, 795, 1505, 693, 3804, 2317, + 1263, 2265, 2225, 3918, 2207, 1263, 3370, 673, 673, 673, + 673, 1263, 3764, 3703, 1263, 3674, 1549, 3702, 3481, 3688, + 2389, 2250, 1263, 695, 2241, 3646, 3479, 1550, 3460, 696, + 2394, 2395, 2396, 1263, 2399, 1522, 2263, 2228, 1681, 3250, + 2244, 2245, 2243, 694, 1759, 1283, 1284, 1285, 1286, 1287, + 1280, 2255, 3340, 3331, 3323, 3318, 1851, 1852, 1853, 1854, + 3229, 1522, 1858, 1859, 1860, 1861, 1863, 1864, 1865, 1866, + 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1459, 2456, 1109, + 1110, 1460, 1547, 3251, 1114, 1281, 1282, 1283, 1284, 1285, + 1286, 1287, 1280, 2242, 2980, 2979, 2822, 1475, 1862, 1459, + 2401, 2402, 941, 1460, 1855, 2775, 2688, 2652, 2558, 2191, + 2404, 2405, 1765, 2190, 2189, 1445, 1515, 1516, 1444, 1518, + 1519, 2411, 1523, 1524, 1525, 2413, 2463, 2415, 1762, 1764, + 1761, 1194, 1763, 2698, 2620, 2149, 673, 1988, 1778, 1603, + 2256, 2149, 1778, 3050, 1935, 2539, 2539, 2079, 2539, 1940, + 2318, 2320, 2321, 2326, 1267, 1264, 1574, 1575, 1576, 1577, + 1578, 1915, 1580, 1581, 1582, 1583, 1584, 3975, 648, 648, + 1590, 1591, 1592, 1593, 1264, 2416, 1192, 1103, 1104, 1105, + 3715, 3714, 1559, 673, 2295, 2296, 1546, 2298, 3067, 2916, + 2914, 2353, 2426, 2893, 2305, 2891, 673, 2425, 3647, 3648, + 1337, 3694, 1192, 2611, 666, 1265, 1266, 1267, 1264, 4104, + 1598, 1102, 2079, 4129, 1099, 2616, 3373, 2618, 4103, 3640, + 223, 2562, 1994, 1995, 1316, 3448, 2541, 2468, 2545, 2390, + 2471, 2472, 2473, 2474, 2475, 2476, 2477, 1315, 4102, 2480, + 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, + 1840, 2492, 2493, 2494, 2495, 2496, 2821, 2497, 2403, 2400, + 2543, 2657, 2758, 2409, 2759, 1841, 2410, 4100, 4099, 1069, + 2967, 4038, 2419, 2613, 2439, 2440, 4006, 2445, 4128, 3641, + 2671, 2120, 4004, 2217, 3919, 3449, 2965, 2120, 2120, 2120, + 1559, 1071, 1559, 2569, 1559, 2795, 3857, 3845, 2621, 1192, + 2553, 1477, 2554, 1072, 2963, 2952, 3835, 2690, 2412, 3824, + 2709, 3755, 3676, 2547, 1265, 1266, 1267, 1264, 1338, 3675, + 3494, 2559, 2560, 3371, 3482, 2615, 1265, 1266, 1267, 1264, + 2966, 2681, 3447, 1559, 1192, 2509, 2514, 2630, 2722, 1168, + 1164, 1165, 1166, 1167, 2575, 2714, 2964, 2713, 2712, 2710, + 2548, 3319, 3219, 2729, 1265, 1266, 1267, 1264, 1559, 3092, + 1538, 1540, 3062, 2700, 2962, 2951, 3061, 2717, 3454, 3129, + 2950, 2949, 1557, 3459, 1096, 1097, 1098, 1101, 2563, 1100, + 1265, 1266, 1267, 1264, 2566, 1265, 1266, 1267, 1264, 2622, + 2948, 2940, 2730, 2934, 1604, 2408, 2933, 1557, 2932, 2667, + 2668, 2612, 2931, 3115, 2614, 2771, 2642, 2777, 2778, 2278, + 2702, 2781, 2702, 2733, 2734, 2555, 2328, 2711, 1278, 1288, + 1289, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1280, 1192, + 2168, 2167, 3128, 1192, 2166, 2162, 2706, 2161, 2118, 1905, + 1559, 2685, 2687, 1522, 1265, 1266, 1267, 1264, 2720, 2059, + 1903, 2655, 1603, 2682, 2696, 1672, 1396, 2850, 2731, 1265, + 1266, 1267, 1264, 747, 2857, 2663, 749, 2858, 3206, 4125, + 2674, 748, 2672, 4123, 2679, 1265, 1266, 1267, 1264, 2277, + 2762, 1265, 1266, 1267, 1264, 2868, 1271, 1272, 1273, 1274, + 1275, 1276, 1277, 1269, 4105, 1192, 3797, 3798, 2692, 2693, + 3593, 4092, 2260, 2890, 4054, 4053, 1265, 1266, 1267, 1264, + 1192, 1192, 1192, 1988, 2708, 2718, 1192, 4016, 2900, 2901, + 2902, 2903, 1192, 2910, 4050, 2911, 2912, 2695, 2913, 3981, + 2915, 2834, 3617, 3980, 3785, 2835, 3961, 2847, 2861, 2838, + 3904, 2910, 3651, 2864, 1265, 1266, 1267, 1264, 3898, 1718, + 3881, 1172, 3872, 2539, 2869, 3849, 3844, 2819, 1541, 1265, + 1266, 1267, 1264, 2715, 2716, 3843, 3801, 2968, 3787, 2728, + 2871, 2799, 3786, 3756, 2010, 2575, 3696, 648, 3655, 2808, + 1265, 1266, 1267, 1264, 2059, 3644, 3626, 3624, 1192, 2079, + 2079, 2079, 2079, 2079, 2079, 1288, 1289, 1281, 1282, 1283, + 1284, 1285, 1286, 1287, 1280, 1192, 2079, 1072, 3622, 2539, + 1171, 2800, 3619, 3616, 1268, 3615, 2817, 3591, 2884, 3589, + 3562, 3559, 1298, 2859, 2974, 3028, 2841, 1559, 2363, 2364, + 2365, 1308, 2888, 2895, 2849, 3556, 2888, 2885, 673, 673, + 2801, 8, 2803, 2380, 2381, 2382, 2383, 2856, 2972, 3444, + 3431, 7, 2885, 2896, 2897, 3424, 3605, 1317, 2899, 3408, + 2125, 2870, 3406, 3401, 2906, 2873, 1265, 1266, 1267, 1264, + 2886, 3351, 3329, 3604, 3328, 2922, 2923, 2892, 4131, 3326, + 3325, 3542, 2898, 1265, 1266, 1267, 1264, 3320, 2889, 3314, + 2938, 2939, 3016, 223, 3313, 3230, 2867, 3193, 223, 1929, + 1265, 1266, 1267, 1264, 3403, 3192, 3191, 2930, 1265, 1266, + 1267, 1264, 2270, 3182, 2942, 3180, 2976, 3177, 3175, 2333, + 1836, 2258, 1836, 3106, 3103, 3077, 3082, 3046, 3060, 3035, + 2996, 1265, 1266, 1267, 1264, 3132, 1265, 1266, 1267, 1264, + 3091, 2961, 2975, 2953, 2943, 2981, 1559, 2996, 2941, 3098, + 2937, 2936, 2739, 2740, 2935, 2784, 2776, 2772, 2745, 855, + 854, 3029, 1265, 1266, 1267, 1264, 3013, 2664, 2348, 2978, + 3019, 3051, 1528, 3017, 2342, 2339, 3055, 2997, 2998, 2999, + 3000, 3001, 3002, 1623, 2171, 2164, 3033, 3036, 1893, 1892, + 1673, 1345, 1341, 1624, 1625, 3131, 1340, 1630, 1631, 1265, + 1266, 1267, 1264, 1882, 1175, 923, 4080, 3072, 3076, 1265, + 1266, 1267, 1264, 3018, 3937, 3933, 3781, 2860, 3780, 1565, + 3084, 3769, 1265, 1266, 1267, 1264, 2865, 2866, 3765, 3074, + 3618, 3600, 2120, 3572, 3473, 1635, 3472, 206, 1639, 197, + 168, 3085, 3471, 1638, 3441, 3420, 3418, 3053, 3417, 3052, + 3414, 3179, 3413, 3407, 3405, 3100, 3386, 3130, 3183, 3184, + 3185, 3187, 3376, 3189, 3190, 3375, 3362, 3070, 3068, 3075, + 3073, 3361, 3260, 1192, 3196, 1072, 3088, 3167, 3134, 3209, + 2883, 3087, 3086, 3094, 1265, 1266, 1267, 1264, 1072, 3223, + 3125, 3117, 3116, 3110, 673, 3044, 2797, 3108, 3107, 2637, + 2633, 3095, 2632, 2306, 3127, 2299, 2293, 3239, 1192, 3114, + 202, 673, 2292, 1192, 1192, 3118, 3119, 3121, 2291, 2290, + 3123, 3124, 2079, 2389, 2288, 3257, 673, 2755, 3120, 2284, + 3122, 2283, 2281, 3169, 1279, 1278, 1288, 1289, 1281, 1282, + 1283, 1284, 1285, 1286, 1287, 1280, 2456, 2754, 2272, 2269, + 3233, 3195, 1597, 2289, 1265, 1266, 1267, 1264, 3284, 2268, + 3287, 2170, 3287, 3287, 1876, 1875, 1874, 1192, 1839, 3174, + 1838, 1829, 1571, 3173, 1265, 1266, 1267, 1264, 2753, 1569, + 4079, 3353, 2752, 4037, 3955, 3309, 2834, 1335, 3932, 3305, + 3211, 3949, 2751, 1559, 1559, 3261, 2750, 3867, 3242, 3194, + 3263, 3264, 3262, 3246, 206, 1265, 1266, 1267, 1264, 1265, + 1266, 1267, 1264, 3864, 3851, 2885, 3846, 3271, 3273, 1265, + 1266, 1267, 1264, 1265, 1266, 1267, 1264, 3310, 3311, 3750, + 1069, 3267, 1557, 1557, 3749, 3255, 3241, 3282, 3252, 3232, + 673, 3244, 3245, 3731, 3256, 2749, 3713, 3209, 3709, 3687, + 2885, 3670, 1071, 3947, 2748, 2885, 2885, 3945, 2747, 1522, + 3292, 3283, 2059, 2059, 1072, 2426, 1072, 3266, 2746, 3573, + 2425, 1072, 1265, 1266, 1267, 1264, 2743, 202, 3570, 3288, + 3289, 1265, 1266, 1267, 1264, 1265, 1266, 1267, 1264, 3307, + 3293, 3540, 3539, 2848, 3536, 1265, 1266, 1267, 1264, 1072, + 3535, 3501, 3498, 1265, 1266, 1267, 1264, 3496, 3462, 2885, + 3015, 2742, 3126, 1618, 1629, 1620, 1192, 4072, 2741, 1634, + 2722, 1637, 1730, 1731, 1732, 1733, 1734, 2735, 3374, 3338, + 1626, 1453, 3007, 2969, 2894, 2843, 2842, 3315, 1265, 1266, + 1267, 1264, 2836, 799, 142, 1265, 1266, 1267, 1264, 142, + 3290, 3354, 2802, 2757, 1265, 1266, 1267, 1264, 3322, 2647, + 2557, 3321, 3327, 2498, 1775, 2391, 3336, 3337, 1779, 1780, + 1781, 1782, 2362, 3334, 3330, 673, 2327, 1760, 1820, 3347, + 202, 3348, 2131, 1919, 1889, 1703, 1830, 3141, 3142, 2725, + 1652, 1627, 1395, 3143, 3144, 3145, 3146, 1380, 3147, 3148, + 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3355, + 1376, 3324, 680, 2721, 1375, 142, 1265, 1266, 1267, 1264, + 1374, 1373, 1372, 3364, 1371, 1370, 1369, 3358, 3359, 3360, + 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1883, + 1265, 1266, 1267, 1264, 1359, 1358, 1357, 1356, 2143, 3428, + 3387, 2697, 3430, 1355, 1354, 1353, 3432, 1352, 2575, 1773, + 1351, 3438, 3389, 1348, 3390, 1347, 1346, 2702, 3394, 1344, + 1343, 1342, 1339, 1332, 3039, 3040, 3409, 1331, 1265, 1266, + 1267, 1264, 1329, 1328, 3265, 1327, 1265, 1266, 1267, 1264, + 1326, 3399, 1325, 1324, 1323, 1322, 673, 2059, 1321, 2524, + 2528, 2529, 2530, 2525, 2533, 2526, 2531, 3466, 3433, 2527, + 3435, 2532, 1320, 1319, 1318, 1313, 3943, 1312, 3393, 1311, + 1310, 1309, 1958, 2539, 2079, 3485, 1229, 1173, 3343, 3344, + 3537, 2398, 2376, 3421, 1217, 4070, 4021, 3346, 2823, 2173, + 2568, 1228, 3005, 3352, 3349, 3425, 1070, 3427, 1977, 3504, + 3010, 142, 1192, 3004, 3008, 3011, 3440, 3014, 3003, 3009, + 125, 3284, 3974, 3443, 3692, 1192, 142, 3012, 142, 2529, + 2530, 67, 3575, 3883, 66, 2662, 2650, 1192, 1446, 3551, + 3576, 1947, 1948, 1559, 1942, 1943, 1944, 3228, 2466, 3280, + 3486, 3281, 3090, 3455, 3391, 3392, 3487, 3547, 3365, 2048, + 3490, 3457, 1612, 3483, 673, 2645, 2059, 1883, 2667, 2668, + 1192, 3534, 1883, 1883, 2686, 1668, 3204, 3553, 2918, 1646, + 2349, 2133, 1557, 1223, 1072, 2919, 2920, 2921, 3197, 676, + 3574, 1072, 2872, 3491, 2844, 2418, 3527, 3484, 2385, 3495, + 677, 3497, 223, 678, 1952, 3463, 3464, 3465, 1918, 3489, + 4083, 3469, 3470, 1825, 1824, 1192, 3566, 3563, 3543, 3848, + 3577, 3312, 2150, 2511, 3541, 2153, 3546, 2505, 2156, 1391, + 1392, 2158, 3550, 1389, 1390, 1387, 1388, 1385, 1386, 2060, + 1514, 3555, 3557, 1513, 3558, 1256, 2192, 3357, 3038, 2350, + 2205, 3561, 3565, 1466, 3505, 1465, 3568, 3620, 1437, 3567, + 1489, 3564, 4044, 4042, 3998, 3971, 3970, 3544, 3628, 3968, + 3908, 3868, 3598, 1192, 3745, 3744, 3682, 3590, 3410, 2906, + 3584, 3383, 3382, 3368, 2451, 2421, 1670, 3367, 3048, 2203, + 3231, 1463, 3429, 1192, 1559, 1559, 4074, 4073, 3560, 3239, + 3093, 2855, 3594, 2782, 2378, 3595, 2271, 3243, 1399, 1214, + 4073, 3663, 2996, 3663, 4074, 3711, 3625, 3363, 3627, 1189, + 2539, 1481, 3259, 75, 3657, 3658, 2, 1192, 3653, 1192, + 3681, 210, 3, 1557, 1771, 4096, 3652, 4097, 3684, 1, + 3686, 2763, 914, 915, 916, 917, 1559, 1189, 1887, 1393, + 3635, 3631, 3654, 3636, 3634, 918, 913, 2996, 1535, 2549, + 2113, 3645, 1563, 1891, 673, 3667, 1192, 1192, 920, 3021, + 1192, 1192, 3022, 3656, 3668, 3356, 3024, 2785, 3677, 3678, + 2224, 3680, 2985, 2188, 3487, 1771, 2503, 2366, 3733, 3222, + 3660, 977, 1831, 2252, 3728, 3690, 3534, 2257, 3693, 1685, + 3679, 1954, 1206, 3697, 3742, 2266, 1682, 1205, 1203, 3717, + 3718, 1776, 801, 3729, 3730, 2885, 3751, 3752, 2176, 2970, + 2944, 3527, 3741, 4082, 4117, 4036, 3739, 4085, 1701, 1559, + 3689, 785, 3962, 3873, 4040, 3875, 2120, 3761, 2229, 1261, + 3695, 3069, 2273, 1004, 842, 812, 1330, 3139, 3738, 3137, + 2280, 811, 3782, 3452, 2813, 3746, 3740, 3041, 1072, 3818, + 1005, 3579, 3775, 3763, 2159, 3870, 3759, 1613, 1557, 1724, + 1617, 1724, 2297, 2417, 3734, 3758, 3827, 2302, 2303, 2304, + 3928, 3691, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, + 2315, 2316, 3276, 3770, 3774, 2517, 984, 3762, 2880, 1641, + 3923, 3816, 3810, 3614, 3499, 3610, 3608, 3609, 717, 2092, + 646, 3789, 1054, 3732, 718, 2397, 3986, 3850, 1192, 956, + 3735, 2375, 957, 949, 3736, 2832, 2831, 1741, 1270, 3834, + 3800, 3840, 2524, 2528, 2529, 2530, 2525, 2533, 2526, 2531, + 3811, 1758, 2527, 3598, 2532, 3158, 3159, 3813, 3812, 1307, + 756, 2254, 2810, 3522, 3034, 3825, 74, 3830, 73, 72, + 71, 231, 1192, 803, 230, 3783, 3649, 1559, 3958, 4087, + 782, 3396, 781, 780, 3826, 779, 778, 777, 2522, 2523, + 3808, 2521, 2519, 2518, 3847, 2074, 2073, 3047, 3366, 2138, + 2140, 142, 142, 142, 1070, 3237, 2909, 2904, 1999, 1997, + 1526, 3858, 2446, 2453, 1996, 3856, 1557, 4018, 3400, 1291, + 3601, 1295, 3938, 3939, 3708, 2954, 3597, 3606, 1941, 3607, + 2442, 3900, 2016, 3889, 2925, 2013, 2012, 1292, 1294, 1290, + 3869, 1293, 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1280, 2917, 3704, 3698, 2044, 1072, 3909, + 3814, 3662, 1809, 3506, 3507, 3513, 2384, 1123, 1119, 1121, + 1724, 1122, 1120, 2707, 3332, 2423, 3199, 1297, 2358, 2357, + 3897, 2355, 3903, 2354, 1422, 3899, 3982, 3630, 3927, 2573, + 2571, 1170, 1192, 3345, 3911, 3920, 3341, 2184, 3350, 3006, + 1559, 2201, 2120, 3952, 3089, 2075, 2071, 2070, 3959, 1094, + 1093, 1594, 2987, 2512, 3921, 1883, 3926, 1883, 3791, 3859, + 3935, 1946, 3960, 950, 2373, 109, 41, 122, 108, 3942, + 3944, 3946, 3948, 185, 3951, 3941, 1883, 1883, 59, 1557, + 184, 58, 120, 182, 57, 103, 102, 3967, 119, 180, + 3965, 1559, 56, 215, 3816, 214, 217, 216, 213, 2623, + 2624, 212, 1601, 211, 3972, 3666, 3979, 3954, 1597, 908, + 44, 4009, 43, 186, 42, 110, 60, 4017, 40, 4002, + 4003, 4001, 3999, 39, 38, 4000, 34, 13, 12, 35, + 1557, 4005, 22, 3910, 21, 1689, 20, 26, 3914, 3915, + 32, 31, 135, 134, 4033, 30, 133, 132, 131, 4026, + 2120, 4027, 130, 4028, 129, 4029, 128, 127, 2656, 4030, + 2659, 29, 4043, 19, 4045, 4046, 1384, 51, 50, 4041, + 3936, 4039, 49, 48, 47, 1805, 46, 3889, 4049, 1192, + 9, 123, 1802, 118, 116, 28, 1804, 1801, 1803, 1807, + 1808, 117, 3865, 3866, 1806, 114, 115, 113, 112, 3840, + 4062, 111, 106, 104, 86, 1809, 85, 4063, 4065, 4064, + 84, 99, 4068, 98, 97, 4071, 4081, 4069, 4089, 96, + 3511, 4088, 95, 94, 92, 2699, 93, 1003, 2705, 83, + 82, 81, 80, 79, 101, 107, 4101, 105, 4093, 2723, + 2724, 90, 1192, 4075, 4076, 4077, 4078, 2726, 2727, 100, + 91, 89, 88, 4106, 3927, 4107, 87, 78, 4109, 77, + 4115, 3523, 76, 2732, 166, 4119, 165, 164, 4116, 163, + 162, 160, 161, 159, 3514, 158, 157, 156, 155, 154, + 52, 53, 54, 55, 176, 3509, 175, 177, 179, 181, + 3531, 3532, 1730, 1883, 178, 4127, 3510, 183, 173, 171, + 174, 172, 4089, 4135, 170, 4088, 4134, 69, 11, 4051, + 4052, 121, 18, 4, 4119, 4136, 4056, 4057, 4058, 4059, + 4140, 4060, 1568, 0, 0, 0, 680, 0, 0, 0, + 0, 0, 0, 3515, 206, 64, 197, 168, 1812, 1813, + 1814, 1815, 1816, 1817, 1810, 1811, 0, 0, 0, 0, + 3716, 0, 0, 198, 3836, 0, 992, 0, 0, 0, + 189, 0, 142, 0, 199, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2862, 2863, 0, 1805, 0, + 0, 0, 0, 140, 1724, 1802, 3685, 0, 0, 1804, + 1801, 1803, 1807, 1808, 0, 0, 0, 1806, 126, 0, + 0, 0, 0, 0, 0, 0, 0, 202, 1279, 1278, + 1288, 1289, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1280, + 0, 0, 0, 0, 0, 0, 0, 0, 988, 989, + 142, 3530, 0, 2432, 0, 0, 0, 0, 142, 1032, + 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, 1285, 1286, + 1287, 1280, 142, 0, 0, 142, 142, 0, 3519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 191, 192, 0, 0, 0, 0, - 1021, 1025, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, - 1008, 0, 1006, 1010, 1028, 0, 0, 0, 1007, 1004, - 1003, 200, 1009, 994, 995, 993, 996, 997, 998, 999, - 0, 1026, 0, 1027, 0, 0, 0, 0, 0, 0, - 0, 0, 136, 0, 1022, 1023, 193, 0, 137, 0, - 0, 0, 0, 0, 0, 0, 4031, 4032, 0, 0, - 0, 0, 2036, 4036, 4037, 4038, 4039, 1997, 142, 0, - 0, 0, 0, 0, 0, 0, 0, 3513, 0, 0, - 0, 1018, 0, 0, 0, 2017, 0, 1017, 0, 0, - 0, 0, 0, 0, 0, 0, 2023, 0, 2039, 2006, - 0, 0, 1013, 0, 0, 138, 0, 0, 2040, 2041, - 0, 0, 0, 0, 0, 0, 2011, 2045, 63, 0, - 2012, 2014, 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, - 2028, 2031, 2032, 2033, 2005, 0, 0, 0, 0, 0, - 0, 2021, 2030, 2022, 0, 0, 1312, 0, 0, 0, - 0, 0, 2013, 3512, 0, 0, 0, 0, 0, 0, - 0, 0, 727, 726, 733, 723, 0, 65, 0, 0, - 0, 0, 0, 0, 0, 730, 731, 2037, 732, 736, - 1016, 0, 717, 0, 0, 0, 987, 988, 982, 0, - 0, 0, 741, 983, 0, 0, 0, 0, 0, 0, - 0, 2036, 146, 203, 0, 147, 1997, 0, 0, 0, - 169, 0, 3915, 0, 0, 61, 0, 0, 2835, 0, - 2029, 0, 0, 0, 0, 0, 0, 2034, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2039, 2006, 0, - 0, 0, 0, 0, 2010, 0, 0, 2040, 2041, 0, - 0, 2009, 0, 0, 0, 0, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2005, 0, 2027, 0, 0, 0, 0, - 0, 139, 45, 0, 2015, 0, 0, 0, 62, 0, - 0, 2013, 0, 0, 1996, 1998, 1995, 3994, 0, 1992, - 0, 0, 0, 0, 2017, 0, 0, 0, 0, 0, - 143, 144, 0, 0, 145, 2023, 0, 0, 0, 0, - 0, 0, 0, 2008, 0, 1991, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2011, 2045, 0, 0, 2012, - 2014, 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, 2028, - 2031, 2032, 2033, 0, 0, 0, 0, 0, 0, 2029, - 2021, 2030, 2022, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2000, 0, 0, 3994, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 718, 720, 719, 0, - 0, 0, 3649, 0, 0, 0, 2037, 725, 3025, 3026, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, - 0, 0, 0, 0, 0, 0, 744, 0, 0, 0, - 0, 0, 0, 722, 0, 0, 0, 0, 1993, 1994, - 0, 3994, 0, 1996, 2861, 1995, 0, 0, 2860, 0, - 0, 0, 0, 2017, 0, 0, 2034, 0, 0, 0, - 0, 0, 0, 0, 2023, 0, 0, 1260, 1261, 1262, - 1259, 0, 0, 2010, 0, 0, 0, 0, 0, 0, - 2009, 0, 0, 0, 2011, 2045, 0, 0, 2012, 2014, - 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, - 2032, 2033, 0, 0, 2027, 0, 0, 4118, 0, 2021, - 2030, 2022, 0, 2015, 0, 0, 0, 0, 0, 0, - 0, 2000, 1139, 0, 0, 0, 2043, 2042, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2037, 0, 1801, 0, 0, - 724, 728, 734, 0, 735, 737, 0, 0, 738, 739, - 740, 0, 0, 742, 743, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1993, 1994, 2002, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2034, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2010, 0, 0, 0, 0, 0, 0, 2009, - 1139, 2038, 0, 0, 2044, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2027, 0, 0, 1124, 0, 0, 0, - 0, 0, 2015, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3217, 0, 2043, 2042, 1147, 1151, 1153, - 1155, 1157, 1158, 1160, 0, 1165, 1161, 1162, 1163, 1164, - 3229, 1142, 1143, 1144, 1145, 1122, 1123, 1148, 0, 1125, - 0, 1127, 1128, 1129, 1130, 1126, 1131, 1132, 1133, 1134, - 1135, 1138, 1140, 1136, 1137, 1146, 0, 0, 0, 0, - 0, 0, 0, 1150, 1152, 1154, 1156, 1159, 2002, 721, - 1797, 0, 0, 0, 0, 0, 0, 1794, 0, 0, - 0, 1796, 1793, 1795, 1799, 1800, 0, 0, 0, 1798, - 0, 0, 0, 0, 1124, 0, 0, 0, 1114, 0, - 0, 0, 0, 1141, 0, 0, 0, 0, 0, 0, - 2038, 0, 0, 2044, 0, 1147, 1151, 1153, 1155, 1157, - 1158, 1160, 0, 1165, 1161, 1162, 1163, 1164, 0, 1142, - 1143, 1144, 1145, 1122, 1123, 1148, 0, 1125, 0, 1127, - 1128, 1129, 1130, 1126, 1131, 1132, 1133, 1134, 1135, 1138, - 1140, 1136, 1137, 1146, 0, 0, 0, 0, 2111, 0, - 0, 1150, 1152, 1154, 1156, 1159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1141, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, - 1790, 1791, 1792, 1804, 1805, 1806, 1807, 1808, 1809, 1802, - 1803, 0, 0, 0, 0, 0, 0, 0, 0, 2690, - 2691, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 817, 0, 0, - 0, 0, 0, 0, 0, 0, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 769, 0, 0, 3381, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 808, 568, 519, 434, 385, - 586, 585, 0, 0, 877, 885, 0, 0, 0, 0, - 0, 0, 0, 0, 873, 0, 0, 0, 0, 761, - 0, 0, 798, 853, 852, 785, 795, 0, 0, 309, - 229, 514, 634, 516, 515, 786, 0, 787, 791, 794, - 790, 788, 789, 0, 868, 0, 0, 0, 0, 0, - 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1149, 0, 0, 0, 0, 762, 763, - 0, 0, 0, 0, 818, 0, 764, 0, 0, 813, - 792, 796, 0, 0, 2111, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 793, 816, 820, 330, 891, 814, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 1149, 0, 0, 0, 0, 0, 627, 811, 0, - 631, 0, 470, 0, 0, 875, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 815, 0, 423, 403, - 888, 2111, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 1825, 1824, 1826, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 872, 399, 596, 629, 630, 521, 0, 887, 867, 869, - 870, 874, 878, 879, 880, 881, 882, 884, 886, 890, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 889, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 819, 571, 572, 389, 390, 391, 392, 876, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 3699, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 898, 871, 897, - 899, 900, 896, 901, 902, 883, 774, 0, 826, 894, - 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 781, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 860, 833, 834, 835, 771, - 836, 830, 831, 772, 832, 861, 824, 857, 858, 800, - 827, 837, 856, 838, 859, 862, 863, 903, 904, 844, - 828, 257, 905, 841, 864, 855, 854, 839, 825, 865, - 866, 807, 802, 842, 843, 829, 848, 849, 850, 773, - 821, 822, 823, 845, 846, 803, 804, 805, 806, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 851, 639, 438, 439, 0, - 847, 642, 643, 640, 374, 425, 444, 432, 817, 656, - 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 769, 0, 0, 0, 336, 1876, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 808, 568, 519, 434, - 385, 586, 585, 0, 0, 877, 885, 0, 0, 0, - 0, 0, 0, 0, 0, 873, 0, 2095, 0, 0, - 761, 0, 0, 798, 853, 852, 785, 795, 0, 0, - 309, 229, 514, 634, 516, 515, 786, 0, 787, 791, - 794, 790, 788, 789, 0, 868, 0, 0, 0, 0, - 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, - 763, 0, 0, 0, 0, 818, 0, 764, 0, 0, - 2096, 792, 796, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 793, 816, 820, 330, 891, 814, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 811, - 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 815, 0, 423, - 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 872, 399, 596, 629, 630, 521, 0, 887, 867, - 869, 870, 874, 878, 879, 880, 881, 882, 884, 886, - 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 889, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 819, 571, 572, 389, 390, 391, 392, 876, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 898, 871, - 897, 899, 900, 896, 901, 902, 883, 774, 0, 826, - 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 781, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 860, 833, 834, 835, - 771, 836, 830, 831, 772, 832, 861, 824, 857, 858, - 800, 827, 837, 856, 838, 859, 862, 863, 903, 904, - 844, 828, 257, 905, 841, 864, 855, 854, 839, 825, - 865, 866, 807, 802, 842, 843, 829, 848, 849, 850, - 773, 821, 822, 823, 845, 846, 803, 804, 805, 806, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 851, 639, 438, 439, - 0, 847, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 0, 766, 206, 817, 0, - 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 1295, 568, 519, 434, - 385, 586, 585, 0, 0, 877, 885, 0, 0, 0, - 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, - 761, 0, 0, 798, 853, 852, 785, 795, 0, 0, - 309, 229, 514, 634, 516, 515, 786, 0, 787, 791, - 794, 790, 788, 789, 0, 868, 0, 0, 0, 0, - 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, - 763, 0, 0, 0, 0, 818, 0, 764, 0, 0, - 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 793, 816, 820, 330, 891, 814, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 811, - 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 815, 0, 423, - 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 872, 399, 596, 629, 630, 521, 0, 887, 867, - 869, 870, 874, 878, 879, 880, 881, 882, 884, 886, - 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 889, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 819, 571, 572, 389, 390, 391, 392, 876, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 898, 871, - 897, 899, 900, 896, 901, 902, 883, 774, 0, 826, - 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 781, 293, 527, 370, 169, - 414, 343, 592, 593, 0, 644, 860, 833, 834, 835, - 771, 836, 830, 831, 772, 832, 861, 824, 857, 858, - 800, 827, 837, 856, 838, 859, 862, 863, 903, 904, - 844, 828, 257, 905, 841, 864, 855, 854, 839, 825, - 865, 866, 807, 802, 842, 843, 829, 848, 849, 850, - 773, 821, 822, 823, 845, 846, 803, 804, 805, 806, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 851, 639, 438, 439, - 0, 847, 642, 643, 640, 374, 425, 444, 432, 817, - 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, + 0, 0, 2694, 0, 0, 0, 0, 0, 0, 0, + 3516, 3520, 3518, 3517, 148, 149, 0, 150, 151, 0, + 0, 0, 152, 0, 0, 153, 1279, 1278, 1288, 1289, + 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1280, 0, 0, + 0, 0, 0, 0, 0, 0, 1883, 0, 0, 0, + 3525, 3526, 0, 1034, 0, 0, 1033, 0, 0, 0, + 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, + 1800, 1812, 1813, 1814, 1815, 1816, 1817, 1810, 1811, 3683, + 0, 0, 0, 0, 0, 0, 0, 0, 167, 195, + 204, 196, 124, 0, 0, 1018, 0, 0, 3135, 0, + 0, 0, 0, 3533, 993, 0, 0, 0, 0, 0, + 0, 194, 188, 187, 0, 3512, 0, 0, 70, 0, + 0, 3524, 0, 0, 0, 3054, 0, 3056, 0, 0, + 0, 995, 0, 1279, 1278, 1288, 1289, 1281, 1282, 1283, + 1284, 1285, 1286, 1287, 1280, 0, 1883, 0, 0, 0, + 0, 1883, 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1280, 2203, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2251, 0, 0, 190, + 191, 192, 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1280, 0, 0, 1017, 1015, 0, 3109, + 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, 1285, 1286, + 1287, 1280, 0, 0, 0, 0, 0, 200, 0, 0, + 0, 0, 0, 1014, 0, 0, 0, 3133, 0, 0, + 0, 0, 0, 0, 0, 987, 0, 0, 136, 0, + 0, 0, 193, 0, 137, 0, 994, 1027, 0, 0, + 0, 3529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2045, 0, 0, 0, 0, + 2006, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 138, 0, 0, 0, 0, 1024, 1028, 0, 0, + 0, 0, 0, 2078, 63, 0, 0, 0, 0, 0, + 0, 2048, 2015, 0, 0, 0, 1011, 3528, 1009, 1013, + 1031, 2049, 2050, 0, 1010, 1007, 1006, 0, 1012, 997, + 998, 996, 999, 1000, 1001, 1002, 0, 1029, 0, 1030, + 0, 0, 0, 0, 0, 0, 0, 2014, 0, 0, + 1025, 1026, 0, 65, 0, 0, 729, 728, 735, 725, + 0, 0, 0, 0, 0, 2022, 0, 0, 0, 732, + 733, 0, 734, 738, 0, 0, 719, 0, 142, 0, + 0, 142, 142, 3291, 142, 0, 743, 1021, 146, 203, + 0, 147, 0, 1020, 0, 0, 169, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 1016, 0, + 0, 2045, 0, 0, 0, 0, 2006, 0, 0, 0, + 0, 0, 0, 0, 1070, 0, 0, 142, 142, 0, + 0, 0, 747, 2038, 0, 749, 0, 1070, 0, 142, + 748, 0, 0, 0, 0, 0, 0, 2048, 2015, 0, + 0, 0, 0, 0, 142, 0, 0, 2049, 2050, 0, + 0, 0, 0, 0, 0, 0, 0, 139, 45, 0, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, + 0, 0, 0, 2014, 0, 0, 1019, 0, 0, 0, + 0, 0, 990, 991, 985, 0, 143, 144, 0, 986, + 145, 2022, 0, 0, 0, 0, 0, 2005, 2007, 2004, + 0, 0, 2001, 0, 0, 0, 0, 2026, 0, 0, + 1265, 1266, 1267, 1264, 0, 0, 0, 0, 2032, 0, + 0, 0, 0, 0, 1297, 0, 2017, 0, 2000, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2020, 2054, + 0, 0, 2021, 2023, 2025, 0, 2027, 2028, 2029, 2033, + 2034, 2035, 2037, 2040, 2041, 2042, 0, 0, 0, 2038, + 0, 0, 0, 2030, 2039, 2031, 0, 0, 0, 0, + 720, 722, 721, 0, 0, 2009, 0, 0, 0, 0, + 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, + 1809, 0, 0, 731, 0, 0, 0, 0, 0, 2046, + 746, 0, 0, 0, 0, 0, 0, 724, 3402, 0, + 0, 714, 0, 0, 0, 3404, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2002, 2003, 2005, 2875, 2004, 0, 0, 2874, 0, + 0, 0, 0, 2026, 0, 0, 0, 3419, 0, 2043, + 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2019, 0, 0, 0, + 0, 0, 0, 2018, 2020, 2054, 0, 0, 2021, 2023, + 2025, 0, 2027, 2028, 2029, 2033, 2034, 2035, 2037, 2040, + 2041, 2042, 0, 0, 0, 0, 0, 2036, 0, 2030, + 2039, 2031, 0, 0, 0, 0, 2024, 0, 0, 0, + 0, 2009, 0, 0, 0, 0, 0, 0, 0, 2052, + 2051, 0, 0, 0, 726, 730, 736, 0, 737, 739, + 0, 0, 740, 741, 742, 2046, 0, 744, 745, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1805, 0, 0, 0, 2002, 2003, 0, + 1802, 0, 2011, 0, 1804, 1801, 1803, 1807, 1808, 0, + 0, 0, 1806, 0, 0, 2043, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2019, 1883, 0, 0, 0, 0, 0, 2018, + 1142, 0, 0, 0, 2047, 0, 0, 2053, 0, 1883, + 0, 0, 3569, 0, 0, 3571, 0, 0, 0, 0, + 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, + 2542, 0, 2024, 0, 0, 0, 3578, 0, 0, 0, + 0, 0, 0, 0, 0, 2052, 2051, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2078, 0, 0, 2011, 0, + 0, 0, 0, 142, 0, 1790, 1791, 1792, 1793, 1794, + 1795, 1796, 1797, 1798, 1799, 1800, 1812, 1813, 1814, 1815, + 1816, 1817, 1810, 1811, 1127, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1142, 0, 0, 0, + 2047, 0, 0, 2053, 0, 1150, 1154, 1156, 1158, 1160, + 1161, 1163, 0, 1168, 1164, 1165, 1166, 1167, 0, 1145, + 1146, 1147, 1148, 1125, 1126, 1151, 0, 1128, 0, 1130, + 1131, 1132, 1133, 1129, 1134, 1135, 1136, 1137, 1138, 1141, + 1143, 1139, 1140, 1149, 0, 0, 0, 0, 0, 0, + 0, 1153, 1155, 1157, 1159, 1162, 0, 1127, 0, 0, + 0, 1117, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1150, 1154, + 1156, 1158, 1160, 1161, 1163, 0, 1168, 1164, 1165, 1166, + 1167, 1144, 1145, 1146, 1147, 1148, 1125, 1126, 1151, 0, + 1128, 0, 1130, 1131, 1132, 1133, 1129, 1134, 1135, 1136, + 1137, 1138, 1141, 1143, 1139, 1140, 1149, 0, 0, 0, + 1127, 0, 0, 0, 1153, 1155, 1157, 1159, 1162, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1150, 1154, 1156, 1158, 1160, 1161, 1163, 0, 1168, + 1164, 1165, 1166, 1167, 0, 1145, 1146, 1147, 1148, 1125, + 1126, 1151, 0, 1128, 1144, 1130, 1131, 1132, 1133, 1129, + 1134, 1135, 1136, 1137, 1138, 1141, 1143, 1139, 1140, 1149, + 0, 0, 0, 729, 728, 735, 725, 1153, 1155, 1157, + 1159, 1162, 0, 0, 142, 0, 732, 733, 0, 734, + 738, 0, 0, 719, 2045, 142, 0, 0, 0, 0, + 0, 206, 0, 743, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1144, 0, 0, + 0, 0, 0, 0, 3661, 0, 0, 2703, 2704, 0, + 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, + 0, 0, 749, 0, 0, 0, 0, 748, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 202, 0, 0, 0, 0, 729, + 728, 735, 725, 0, 2022, 0, 0, 0, 0, 0, + 0, 0, 732, 733, 0, 734, 738, 0, 1317, 719, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 743, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2078, 2078, 2078, 2078, 2078, 2078, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2078, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2038, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3934, 0, 0, 0, 0, + 0, 1152, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 720, 722, 721, + 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 731, 0, 0, 0, 0, 0, 142, 746, 0, 0, + 0, 142, 0, 0, 724, 0, 2026, 0, 0, 0, + 0, 0, 0, 0, 1152, 0, 0, 2032, 0, 2045, + 0, 4014, 142, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 142, 0, 2020, 2054, 0, + 0, 2021, 2023, 2025, 0, 2027, 2028, 2029, 2033, 2034, + 2035, 2037, 2040, 2041, 2042, 2048, 0, 2045, 0, 0, + 0, 0, 2030, 2039, 2031, 0, 0, 0, 0, 0, + 0, 0, 0, 720, 722, 721, 0, 1152, 0, 0, + 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, + 0, 0, 0, 2048, 0, 0, 731, 0, 2046, 3839, + 4014, 0, 0, 746, 0, 0, 0, 0, 0, 2022, + 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 726, 730, 736, 0, 737, 739, 0, 0, 740, + 741, 742, 0, 0, 744, 745, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2022, 2043, 0, + 0, 0, 0, 0, 0, 0, 4014, 0, 0, 0, + 0, 0, 0, 0, 0, 2019, 0, 0, 0, 0, + 0, 0, 2018, 0, 0, 0, 0, 2038, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2036, 0, 0, 0, + 0, 0, 0, 0, 0, 2024, 0, 0, 0, 0, + 0, 1070, 0, 142, 0, 2038, 0, 0, 142, 0, + 0, 0, 4138, 0, 0, 2078, 0, 726, 730, 736, + 0, 737, 739, 0, 0, 740, 741, 742, 0, 0, + 744, 745, 0, 0, 0, 0, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2026, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 723, 0, 2020, 2054, 0, 0, 2021, 2023, 2025, 2026, + 2027, 2028, 2029, 2033, 2034, 2035, 2037, 2040, 2041, 2042, + 2032, 0, 0, 3665, 0, 0, 0, 2030, 2039, 2031, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2020, 2054, 0, 0, 2021, 2023, 2025, 0, 2027, 2028, + 2029, 2033, 2034, 2035, 2037, 2040, 2041, 2042, 0, 0, + 0, 0, 0, 2046, 0, 2030, 2039, 2031, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2046, 0, 0, 0, 0, 723, 0, 0, 0, + 0, 0, 0, 2043, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2019, 0, 0, 0, 0, 0, 0, 2018, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2043, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2036, 0, 0, 0, 0, 0, 0, 2019, 0, + 2024, 0, 0, 0, 0, 2018, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, + 0, 0, 0, 0, 0, 0, 0, 0, 2024, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3669, 0, + 0, 142, 0, 0, 0, 0, 0, 0, 142, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 819, + 0, 0, 0, 0, 0, 0, 3669, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 769, 0, 0, 0, 336, 4117, 0, 369, + 0, 0, 771, 0, 0, 0, 336, 2078, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 808, 568, 519, - 434, 385, 586, 585, 0, 0, 877, 885, 0, 0, - 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, - 0, 761, 0, 0, 798, 853, 852, 785, 795, 0, - 0, 309, 229, 514, 634, 516, 515, 786, 0, 787, - 791, 794, 790, 788, 789, 0, 868, 0, 0, 0, - 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, + 541, 542, 512, 543, 513, 544, 545, 810, 568, 519, + 434, 385, 586, 585, 0, 0, 879, 887, 0, 0, + 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, + 0, 763, 0, 0, 800, 855, 854, 787, 797, 0, + 0, 309, 229, 514, 634, 516, 515, 788, 0, 789, + 793, 796, 792, 790, 791, 0, 870, 0, 0, 0, + 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 762, 763, 0, 0, 0, 0, 818, 0, 764, 0, - 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, + 764, 765, 0, 0, 0, 0, 820, 0, 766, 0, + 0, 815, 794, 798, 0, 142, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 793, 816, 820, 330, 891, - 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, + 420, 334, 350, 331, 398, 795, 818, 822, 330, 893, + 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 815, 0, - 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, + 813, 0, 631, 0, 470, 0, 0, 877, 0, 0, + 0, 440, 0, 0, 366, 142, 0, 0, 817, 0, + 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, @@ -2544,63 +2443,128 @@ var yyAct = [...]int{ 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 491, 582, 525, 529, 530, 357, 594, 1833, 1832, 1834, 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 872, 399, 596, 629, 630, 521, 0, 887, - 867, 869, 870, 874, 878, 879, 880, 881, 882, 884, - 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, + 292, 655, 874, 399, 596, 629, 630, 521, 0, 889, + 869, 871, 872, 876, 880, 881, 882, 883, 884, 886, + 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 889, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 819, 571, 572, 389, 390, 391, 392, - 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 618, 619, 612, 891, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 821, 571, 572, 389, 390, 391, 392, + 878, 597, 314, 493, 415, 142, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 898, - 871, 897, 899, 900, 896, 901, 902, 883, 774, 0, - 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 900, + 873, 899, 901, 902, 898, 903, 904, 885, 776, 0, + 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 781, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 860, 833, 834, - 835, 771, 836, 830, 831, 772, 832, 861, 824, 857, - 858, 800, 827, 837, 856, 838, 859, 862, 863, 903, - 904, 844, 828, 257, 905, 841, 864, 855, 854, 839, - 825, 865, 866, 807, 802, 842, 843, 829, 848, 849, - 850, 773, 821, 822, 823, 845, 846, 803, 804, 805, - 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 320, 327, 652, 649, 453, 653, 783, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 862, 835, 836, + 837, 773, 838, 832, 833, 774, 834, 863, 826, 859, + 860, 802, 829, 839, 858, 840, 861, 864, 865, 905, + 906, 846, 830, 257, 907, 843, 866, 857, 856, 841, + 827, 867, 868, 809, 804, 844, 845, 831, 850, 851, + 852, 775, 823, 824, 825, 847, 848, 805, 806, 807, + 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 851, 639, 438, - 439, 0, 847, 642, 643, 640, 374, 425, 444, 432, - 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, + 588, 622, 0, 632, 633, 635, 637, 853, 639, 438, + 439, 0, 849, 642, 643, 640, 374, 425, 444, 432, + 819, 656, 517, 518, 657, 628, 0, 768, 0, 401, + 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, + 0, 0, 0, 771, 0, 0, 0, 336, 1884, 0, + 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, + 540, 541, 542, 512, 543, 513, 544, 545, 810, 568, + 519, 434, 385, 586, 585, 0, 0, 879, 887, 0, + 0, 0, 0, 0, 0, 0, 0, 875, 0, 2104, + 0, 0, 763, 0, 0, 800, 855, 854, 787, 797, + 0, 0, 309, 229, 514, 634, 516, 515, 788, 0, + 789, 793, 796, 792, 790, 791, 0, 870, 0, 0, + 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 764, 765, 0, 0, 0, 0, 820, 0, 766, + 0, 0, 2105, 794, 798, 0, 0, 0, 0, 299, + 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, + 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, + 0, 420, 334, 350, 331, 398, 795, 818, 822, 330, + 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, + 376, 0, 302, 456, 381, 375, 363, 340, 894, 364, + 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, + 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 627, 813, 0, 631, 0, 470, 0, 0, 877, 0, + 0, 0, 440, 0, 0, 366, 0, 0, 0, 817, + 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, + 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, + 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, + 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, + 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, + 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, + 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, + 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, + 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, + 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, + 291, 292, 655, 874, 399, 596, 629, 630, 521, 0, + 889, 869, 871, 872, 876, 880, 881, 882, 883, 884, + 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, + 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, + 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, + 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, + 617, 618, 619, 612, 891, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 821, 571, 572, 389, 390, 391, + 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, + 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, + 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, + 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, + 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 900, 873, 899, 901, 902, 898, 903, 904, 885, 776, + 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, + 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, + 319, 320, 327, 652, 649, 453, 653, 783, 293, 527, + 370, 0, 414, 343, 592, 593, 0, 644, 862, 835, + 836, 837, 773, 838, 832, 833, 774, 834, 863, 826, + 859, 860, 802, 829, 839, 858, 840, 861, 864, 865, + 905, 906, 846, 830, 257, 907, 843, 866, 857, 856, + 841, 827, 867, 868, 809, 804, 844, 845, 831, 850, + 851, 852, 775, 823, 824, 825, 847, 848, 805, 806, + 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, + 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 853, 639, + 438, 439, 0, 849, 642, 643, 640, 374, 425, 444, + 432, 0, 656, 517, 518, 657, 628, 0, 768, 206, + 819, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, + 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 808, 568, - 519, 434, 385, 586, 585, 0, 0, 877, 885, 0, - 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, - 0, 0, 761, 0, 0, 798, 853, 852, 785, 795, - 0, 0, 309, 229, 514, 634, 516, 515, 786, 0, - 787, 791, 794, 790, 788, 789, 0, 868, 0, 0, - 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, + 540, 541, 542, 512, 543, 513, 544, 545, 1300, 568, + 519, 434, 385, 586, 585, 0, 0, 879, 887, 0, + 0, 0, 0, 0, 0, 0, 0, 875, 0, 0, + 0, 0, 763, 0, 0, 800, 855, 854, 787, 797, + 0, 0, 309, 229, 514, 634, 516, 515, 788, 0, + 789, 793, 796, 792, 790, 791, 0, 870, 0, 0, + 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 762, 763, 0, 0, 0, 0, 818, 0, 764, - 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, + 0, 764, 765, 0, 0, 0, 0, 820, 0, 766, + 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 793, 816, 820, 330, - 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, + 0, 420, 334, 350, 331, 398, 795, 818, 822, 330, + 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, + 376, 0, 302, 456, 381, 375, 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 815, - 0, 423, 403, 888, 3995, 0, 421, 371, 455, 411, + 627, 813, 0, 631, 0, 470, 0, 0, 877, 0, + 0, 0, 440, 0, 0, 366, 0, 0, 0, 817, + 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, @@ -2610,61 +2574,61 @@ var yyAct = [...]int{ 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 872, 399, 596, 629, 630, 521, 0, - 887, 867, 869, 870, 874, 878, 879, 880, 881, 882, - 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, + 291, 292, 655, 874, 399, 596, 629, 630, 521, 0, + 889, 869, 871, 872, 876, 880, 881, 882, 883, 884, + 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 889, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 819, 571, 572, 389, 390, 391, - 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, + 617, 618, 619, 612, 891, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 821, 571, 572, 389, 390, 391, + 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 898, 871, 897, 899, 900, 896, 901, 902, 883, 774, - 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, + 900, 873, 899, 901, 902, 898, 903, 904, 885, 776, + 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 781, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 860, 833, - 834, 835, 771, 836, 830, 831, 772, 832, 861, 824, - 857, 858, 800, 827, 837, 856, 838, 859, 862, 863, - 903, 904, 844, 828, 257, 905, 841, 864, 855, 854, - 839, 825, 865, 866, 807, 802, 842, 843, 829, 848, - 849, 850, 773, 821, 822, 823, 845, 846, 803, 804, - 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, + 319, 320, 327, 652, 649, 453, 653, 783, 293, 527, + 370, 169, 414, 343, 592, 593, 0, 644, 862, 835, + 836, 837, 773, 838, 832, 833, 774, 834, 863, 826, + 859, 860, 802, 829, 839, 858, 840, 861, 864, 865, + 905, 906, 846, 830, 257, 907, 843, 866, 857, 856, + 841, 827, 867, 868, 809, 804, 844, 845, 831, 850, + 851, 852, 775, 823, 824, 825, 847, 848, 805, 806, + 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 851, 639, - 438, 439, 0, 847, 642, 643, 640, 374, 425, 444, - 432, 817, 656, 517, 518, 657, 628, 0, 766, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 853, 639, + 438, 439, 0, 849, 642, 643, 640, 374, 425, 444, + 432, 819, 656, 517, 518, 657, 628, 0, 768, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 769, 0, 0, 0, 336, 1876, + 0, 0, 0, 0, 771, 0, 0, 0, 336, 4137, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 808, - 568, 519, 434, 385, 586, 585, 0, 0, 877, 885, - 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, - 0, 0, 0, 761, 0, 0, 798, 853, 852, 785, - 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, - 0, 787, 791, 794, 790, 788, 789, 0, 868, 0, - 0, 0, 0, 0, 0, 753, 765, 0, 770, 0, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 810, + 568, 519, 434, 385, 586, 585, 0, 0, 879, 887, + 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, + 0, 0, 0, 763, 0, 0, 800, 855, 854, 787, + 797, 0, 0, 309, 229, 514, 634, 516, 515, 788, + 0, 789, 793, 796, 792, 790, 791, 0, 870, 0, + 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 762, 763, 0, 0, 0, 0, 818, 0, - 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, + 0, 0, 764, 765, 0, 0, 0, 0, 820, 0, + 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 793, 816, 820, - 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 892, + 300, 0, 420, 334, 350, 331, 398, 795, 818, 822, + 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 811, 0, 631, 0, 470, 0, 0, 875, + 0, 627, 813, 0, 631, 0, 470, 0, 0, 877, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, + 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, @@ -2674,61 +2638,61 @@ var yyAct = [...]int{ 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 872, 399, 596, 629, 630, 521, - 0, 887, 867, 869, 870, 874, 878, 879, 880, 881, - 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, + 345, 291, 292, 655, 874, 399, 596, 629, 630, 521, + 0, 889, 869, 871, 872, 876, 880, 881, 882, 883, + 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 889, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 819, 571, 572, 389, 390, - 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, + 616, 617, 618, 619, 612, 891, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 821, 571, 572, 389, 390, + 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 898, 871, 897, 899, 900, 896, 901, 902, 883, - 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, + 577, 900, 873, 899, 901, 902, 898, 903, 904, 885, + 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 781, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 860, - 833, 834, 835, 771, 836, 830, 831, 772, 832, 861, - 824, 857, 858, 800, 827, 837, 856, 838, 859, 862, - 863, 903, 904, 844, 828, 257, 905, 841, 864, 855, - 854, 839, 825, 865, 866, 807, 802, 842, 843, 829, - 848, 849, 850, 773, 821, 822, 823, 845, 846, 803, - 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, + 285, 319, 320, 327, 652, 649, 453, 653, 783, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 862, + 835, 836, 837, 773, 838, 832, 833, 774, 834, 863, + 826, 859, 860, 802, 829, 839, 858, 840, 861, 864, + 865, 905, 906, 846, 830, 257, 907, 843, 866, 857, + 856, 841, 827, 867, 868, 809, 804, 844, 845, 831, + 850, 851, 852, 775, 823, 824, 825, 847, 848, 805, + 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 851, - 639, 438, 439, 0, 847, 642, 643, 640, 374, 425, - 444, 432, 817, 656, 517, 518, 657, 628, 0, 766, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 853, + 639, 438, 439, 0, 849, 642, 643, 640, 374, 425, + 444, 432, 819, 656, 517, 518, 657, 628, 0, 768, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 769, 0, 0, 0, 336, + 0, 0, 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 808, 568, 519, 434, 385, 586, 585, 0, 0, 877, - 885, 0, 0, 0, 0, 0, 0, 0, 0, 873, - 0, 0, 0, 0, 761, 0, 0, 798, 853, 852, - 785, 795, 0, 0, 309, 229, 514, 634, 516, 515, - 786, 0, 787, 791, 794, 790, 788, 789, 0, 868, - 0, 0, 0, 0, 0, 0, 753, 765, 0, 770, + 810, 568, 519, 434, 385, 586, 585, 0, 0, 879, + 887, 0, 0, 0, 0, 0, 0, 0, 0, 875, + 0, 0, 0, 0, 763, 0, 0, 800, 855, 854, + 787, 797, 0, 0, 309, 229, 514, 634, 516, 515, + 788, 0, 789, 793, 796, 792, 790, 791, 0, 870, + 0, 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 762, 763, 1590, 0, 0, 0, 818, - 0, 764, 0, 0, 813, 792, 796, 0, 0, 0, + 0, 0, 0, 764, 765, 0, 0, 0, 0, 820, + 0, 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 793, 816, - 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, + 360, 300, 0, 420, 334, 350, 331, 398, 795, 818, + 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, + 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 811, 0, 631, 0, 470, 0, 0, - 875, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 815, 0, 423, 403, 888, 0, 0, 421, 371, + 0, 0, 627, 813, 0, 631, 0, 470, 0, 0, + 877, 0, 0, 0, 440, 0, 0, 366, 0, 0, + 0, 817, 0, 423, 403, 890, 4015, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, @@ -2738,190 +2702,190 @@ var yyAct = [...]int{ 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 872, 399, 596, 629, 630, - 521, 0, 887, 867, 869, 870, 874, 878, 879, 880, - 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, + 416, 345, 291, 292, 655, 874, 399, 596, 629, 630, + 521, 0, 889, 869, 871, 872, 876, 880, 881, 882, + 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 889, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 819, 571, 572, 389, - 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, + 615, 616, 617, 618, 619, 612, 891, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 821, 571, 572, 389, + 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 898, 871, 897, 899, 900, 896, 901, 902, - 883, 774, 0, 826, 894, 893, 895, 0, 0, 0, + 550, 577, 900, 873, 899, 901, 902, 898, 903, 904, + 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 781, + 323, 285, 319, 320, 327, 652, 649, 453, 653, 783, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 860, 833, 834, 835, 771, 836, 830, 831, 772, 832, - 861, 824, 857, 858, 800, 827, 837, 856, 838, 859, - 862, 863, 903, 904, 844, 828, 257, 905, 841, 864, - 855, 854, 839, 825, 865, 866, 807, 802, 842, 843, - 829, 848, 849, 850, 773, 821, 822, 823, 845, 846, - 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, + 862, 835, 836, 837, 773, 838, 832, 833, 774, 834, + 863, 826, 859, 860, 802, 829, 839, 858, 840, 861, + 864, 865, 905, 906, 846, 830, 257, 907, 843, 866, + 857, 856, 841, 827, 867, 868, 809, 804, 844, 845, + 831, 850, 851, 852, 775, 823, 824, 825, 847, 848, + 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 851, 639, 438, 439, 0, 847, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 817, - 766, 0, 2268, 0, 0, 0, 0, 0, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 808, 568, 519, - 434, 385, 586, 585, 0, 0, 877, 885, 0, 0, - 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, - 0, 761, 0, 0, 798, 853, 852, 785, 795, 0, - 0, 309, 229, 514, 634, 516, 515, 786, 0, 787, - 791, 794, 790, 788, 789, 0, 868, 0, 0, 0, - 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 762, 763, 0, 0, 0, 0, 818, 0, 764, 0, - 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 793, 816, 820, 330, 891, - 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 815, 0, - 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 872, 399, 596, 629, 630, 521, 0, 887, - 867, 869, 870, 874, 878, 879, 880, 881, 882, 884, - 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 889, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 819, 571, 572, 389, 390, 391, 392, - 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 898, - 871, 897, 899, 900, 896, 901, 902, 883, 774, 0, - 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 781, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 860, 833, 834, - 835, 771, 836, 830, 831, 772, 832, 861, 824, 857, - 858, 800, 827, 837, 856, 838, 859, 862, 863, 903, - 904, 844, 828, 257, 905, 841, 864, 855, 854, 839, - 825, 865, 866, 807, 802, 842, 843, 829, 848, 849, - 850, 773, 821, 822, 823, 845, 846, 803, 804, 805, - 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 851, 639, 438, - 439, 0, 847, 642, 643, 640, 374, 425, 444, 432, - 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 808, 568, - 519, 434, 385, 586, 585, 0, 0, 877, 885, 0, - 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, - 0, 0, 761, 0, 0, 798, 853, 852, 785, 795, - 0, 0, 309, 229, 514, 634, 516, 515, 786, 0, - 787, 791, 794, 790, 788, 789, 0, 868, 0, 0, - 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 762, 763, 1869, 0, 0, 0, 818, 0, 764, - 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 793, 816, 820, 330, - 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 853, 639, 438, 439, 0, 849, 642, 643, 640, 374, + 425, 444, 432, 819, 656, 517, 518, 657, 628, 0, + 768, 0, 401, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 771, 0, 0, 0, + 336, 1884, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 810, 568, 519, 434, 385, 586, 585, 0, 0, + 879, 887, 0, 0, 0, 0, 0, 0, 0, 0, + 875, 0, 0, 0, 0, 763, 0, 0, 800, 855, + 854, 787, 797, 0, 0, 309, 229, 514, 634, 516, + 515, 788, 0, 789, 793, 796, 792, 790, 791, 0, + 870, 0, 0, 0, 0, 0, 0, 755, 767, 0, + 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 764, 765, 0, 0, 0, 0, + 820, 0, 766, 0, 0, 815, 794, 798, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 795, + 818, 822, 330, 893, 816, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 813, 0, 631, 0, 470, 0, + 0, 877, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 817, 0, 423, 403, 890, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 874, 399, 596, 629, + 630, 521, 0, 889, 869, 871, 872, 876, 880, 881, + 882, 883, 884, 886, 888, 892, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 891, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 821, 571, 572, + 389, 390, 391, 392, 878, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 900, 873, 899, 901, 902, 898, 903, + 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 783, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 862, 835, 836, 837, 773, 838, 832, 833, 774, + 834, 863, 826, 859, 860, 802, 829, 839, 858, 840, + 861, 864, 865, 905, 906, 846, 830, 257, 907, 843, + 866, 857, 856, 841, 827, 867, 868, 809, 804, 844, + 845, 831, 850, 851, 852, 775, 823, 824, 825, 847, + 848, 805, 806, 807, 808, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 853, 639, 438, 439, 0, 849, 642, 643, 640, + 374, 425, 444, 432, 819, 656, 517, 518, 657, 628, + 0, 768, 0, 401, 0, 0, 532, 565, 554, 638, + 520, 0, 0, 0, 0, 0, 0, 771, 0, 0, + 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, + 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, + 544, 545, 810, 568, 519, 434, 385, 586, 585, 0, + 0, 879, 887, 0, 0, 0, 0, 0, 0, 0, + 0, 875, 0, 0, 0, 0, 763, 0, 0, 800, + 855, 854, 787, 797, 0, 0, 309, 229, 514, 634, + 516, 515, 788, 0, 789, 793, 796, 792, 790, 791, + 0, 870, 0, 0, 0, 0, 0, 0, 755, 767, + 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 764, 765, 1596, 0, 0, + 0, 820, 0, 766, 0, 0, 815, 794, 798, 0, + 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, + 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, + 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, + 795, 818, 822, 330, 893, 816, 468, 303, 0, 467, + 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, + 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, + 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, + 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 627, 813, 0, 631, 0, 470, + 0, 0, 877, 0, 0, 0, 440, 0, 0, 366, + 0, 0, 0, 817, 0, 423, 403, 890, 0, 0, + 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, + 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, + 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, + 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, + 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, + 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, + 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, + 338, 380, 416, 345, 291, 292, 655, 874, 399, 596, + 629, 630, 521, 0, 889, 869, 871, 872, 876, 880, + 881, 882, 883, 884, 886, 888, 892, 654, 0, 575, + 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 891, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 821, 571, + 572, 389, 390, 391, 392, 878, 597, 314, 493, 415, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, + 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, + 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, + 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, + 433, 377, 550, 577, 900, 873, 899, 901, 902, 898, + 903, 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 815, - 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 872, 399, 596, 629, 630, 521, 0, - 887, 867, 869, 870, 874, 878, 879, 880, 881, 882, - 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 889, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 819, 571, 572, 389, 390, 391, - 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 898, 871, 897, 899, 900, 896, 901, 902, 883, 774, - 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 781, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 860, 833, - 834, 835, 771, 836, 830, 831, 772, 832, 861, 824, - 857, 858, 800, 827, 837, 856, 838, 859, 862, 863, - 903, 904, 844, 828, 257, 905, 841, 864, 855, 854, - 839, 825, 865, 866, 807, 802, 842, 843, 829, 848, - 849, 850, 773, 821, 822, 823, 845, 846, 803, 804, - 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 851, 639, - 438, 439, 0, 847, 642, 643, 640, 374, 425, 444, - 432, 817, 656, 517, 518, 657, 628, 0, 766, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, + 653, 783, 293, 527, 370, 0, 414, 343, 592, 593, + 0, 644, 862, 835, 836, 837, 773, 838, 832, 833, + 774, 834, 863, 826, 859, 860, 802, 829, 839, 858, + 840, 861, 864, 865, 905, 906, 846, 830, 257, 907, + 843, 866, 857, 856, 841, 827, 867, 868, 809, 804, + 844, 845, 831, 850, 851, 852, 775, 823, 824, 825, + 847, 848, 805, 806, 807, 808, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 853, 639, 438, 439, 0, 849, 642, 643, + 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, + 628, 819, 768, 0, 2279, 0, 0, 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, + 0, 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 808, - 568, 519, 434, 385, 586, 585, 0, 0, 877, 885, - 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, - 0, 0, 0, 761, 0, 0, 798, 853, 852, 785, - 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, - 0, 787, 791, 794, 790, 788, 789, 0, 868, 0, - 0, 0, 0, 0, 0, 753, 765, 0, 770, 0, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 810, + 568, 519, 434, 385, 586, 585, 0, 0, 879, 887, + 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, + 0, 0, 0, 763, 0, 0, 800, 855, 854, 787, + 797, 0, 0, 309, 229, 514, 634, 516, 515, 788, + 0, 789, 793, 796, 792, 790, 791, 0, 870, 0, + 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 762, 763, 0, 0, 0, 0, 818, 0, - 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, + 0, 0, 764, 765, 0, 0, 0, 0, 820, 0, + 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 793, 816, 820, - 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 892, + 300, 0, 420, 334, 350, 331, 398, 795, 818, 822, + 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 811, 0, 631, 0, 470, 0, 0, 875, + 0, 627, 813, 0, 631, 0, 470, 0, 0, 877, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, + 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, @@ -2931,61 +2895,61 @@ var yyAct = [...]int{ 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 872, 399, 596, 629, 630, 521, - 0, 887, 867, 869, 870, 874, 878, 879, 880, 881, - 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, + 345, 291, 292, 655, 874, 399, 596, 629, 630, 521, + 0, 889, 869, 871, 872, 876, 880, 881, 882, 883, + 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 889, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 819, 571, 572, 389, 390, - 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, + 616, 617, 618, 619, 612, 891, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 821, 571, 572, 389, 390, + 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 898, 871, 897, 899, 900, 896, 901, 902, 883, - 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, + 577, 900, 873, 899, 901, 902, 898, 903, 904, 885, + 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 781, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 860, - 833, 834, 835, 771, 836, 830, 831, 772, 832, 861, - 824, 857, 858, 800, 827, 837, 856, 838, 859, 862, - 863, 903, 904, 844, 828, 257, 905, 841, 864, 855, - 854, 839, 825, 865, 866, 807, 802, 842, 843, 829, - 848, 849, 850, 773, 821, 822, 823, 845, 846, 803, - 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, + 285, 319, 320, 327, 652, 649, 453, 653, 783, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 862, + 835, 836, 837, 773, 838, 832, 833, 774, 834, 863, + 826, 859, 860, 802, 829, 839, 858, 840, 861, 864, + 865, 905, 906, 846, 830, 257, 907, 843, 866, 857, + 856, 841, 827, 867, 868, 809, 804, 844, 845, 831, + 850, 851, 852, 775, 823, 824, 825, 847, 848, 805, + 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 851, - 639, 438, 439, 0, 847, 642, 643, 640, 374, 425, - 444, 432, 817, 656, 517, 518, 657, 628, 0, 766, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 853, + 639, 438, 439, 0, 849, 642, 643, 640, 374, 425, + 444, 432, 819, 656, 517, 518, 657, 628, 0, 768, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 769, 0, 0, 0, 336, + 0, 0, 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 808, 568, 519, 434, 385, 586, 585, 0, 0, 877, - 885, 0, 0, 0, 0, 0, 0, 0, 0, 873, - 0, 0, 0, 0, 761, 0, 0, 798, 853, 852, - 785, 795, 0, 0, 309, 229, 514, 634, 516, 515, - 786, 0, 787, 791, 794, 790, 788, 789, 0, 868, - 0, 0, 0, 0, 0, 0, 753, 765, 0, 770, + 810, 568, 519, 434, 385, 586, 585, 0, 0, 879, + 887, 0, 0, 0, 0, 0, 0, 0, 0, 875, + 0, 0, 0, 0, 763, 0, 0, 800, 855, 854, + 787, 797, 0, 0, 309, 229, 514, 634, 516, 515, + 788, 0, 789, 793, 796, 792, 790, 791, 0, 870, + 0, 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 762, 763, 0, 0, 0, 0, 818, - 0, 764, 0, 0, 813, 792, 796, 0, 0, 0, + 0, 0, 0, 764, 765, 1877, 0, 0, 0, 820, + 0, 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 793, 816, - 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, + 360, 300, 0, 420, 334, 350, 331, 398, 795, 818, + 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, + 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 811, 0, 631, 0, 470, 0, 0, - 875, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 815, 0, 423, 403, 888, 0, 0, 421, 371, + 0, 0, 627, 813, 0, 631, 0, 470, 0, 0, + 877, 0, 0, 0, 440, 0, 0, 366, 0, 0, + 0, 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, @@ -2995,61 +2959,61 @@ var yyAct = [...]int{ 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 872, 399, 596, 629, 630, - 521, 0, 887, 867, 869, 870, 874, 878, 879, 880, - 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, + 416, 345, 291, 292, 655, 874, 399, 596, 629, 630, + 521, 0, 889, 869, 871, 872, 876, 880, 881, 882, + 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 889, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 819, 571, 572, 389, - 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, + 615, 616, 617, 618, 619, 612, 891, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 821, 571, 572, 389, + 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 898, 871, 897, 899, 900, 896, 901, 902, - 883, 774, 0, 826, 894, 893, 895, 0, 0, 0, + 550, 577, 900, 873, 899, 901, 902, 898, 903, 904, + 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 781, + 323, 285, 319, 320, 327, 652, 649, 453, 653, 783, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 860, 833, 834, 835, 771, 836, 830, 831, 772, 832, - 861, 824, 857, 858, 800, 827, 837, 856, 838, 859, - 862, 863, 903, 904, 844, 828, 257, 905, 841, 864, - 855, 854, 839, 825, 865, 866, 807, 802, 842, 843, - 829, 848, 849, 850, 773, 821, 822, 823, 845, 846, - 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, + 862, 835, 836, 837, 773, 838, 832, 833, 774, 834, + 863, 826, 859, 860, 802, 829, 839, 858, 840, 861, + 864, 865, 905, 906, 846, 830, 257, 907, 843, 866, + 857, 856, 841, 827, 867, 868, 809, 804, 844, 845, + 831, 850, 851, 852, 775, 823, 824, 825, 847, 848, + 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 851, 639, 438, 439, 0, 3564, 642, 3565, 3566, 374, - 425, 444, 432, 817, 656, 517, 518, 657, 628, 0, - 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, + 853, 639, 438, 439, 0, 849, 642, 643, 640, 374, + 425, 444, 432, 819, 656, 517, 518, 657, 628, 0, + 768, 0, 401, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 808, 568, 519, 434, 385, 586, 585, 0, 0, - 877, 885, 0, 0, 0, 0, 0, 0, 0, 0, - 873, 0, 0, 0, 0, 761, 0, 0, 798, 853, - 852, 785, 795, 0, 0, 309, 229, 514, 634, 516, - 515, 2747, 0, 2748, 791, 794, 790, 788, 789, 0, - 868, 0, 0, 0, 0, 0, 0, 753, 765, 0, - 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 762, 763, 0, 0, 0, 0, - 818, 0, 764, 0, 0, 813, 792, 796, 0, 0, + 545, 810, 568, 519, 434, 385, 586, 585, 0, 0, + 879, 887, 0, 0, 0, 0, 0, 0, 0, 0, + 875, 0, 0, 0, 0, 763, 0, 0, 800, 855, + 854, 787, 797, 0, 0, 309, 229, 514, 634, 516, + 515, 788, 0, 789, 793, 796, 792, 790, 791, 0, + 870, 0, 0, 0, 0, 0, 0, 755, 767, 0, + 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 764, 765, 0, 0, 0, 0, + 820, 0, 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 793, - 816, 820, 330, 891, 814, 468, 303, 0, 467, 397, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 795, + 818, 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, + 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 811, 0, 631, 0, 470, 0, - 0, 875, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 815, 0, 423, 403, 888, 0, 0, 421, + 0, 0, 0, 627, 813, 0, 631, 0, 470, 0, + 0, 877, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, @@ -3059,125 +3023,125 @@ var yyAct = [...]int{ 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 872, 399, 596, 629, - 630, 521, 0, 887, 867, 869, 870, 874, 878, 879, - 880, 881, 882, 884, 886, 890, 654, 0, 575, 590, + 380, 416, 345, 291, 292, 655, 874, 399, 596, 629, + 630, 521, 0, 889, 869, 871, 872, 876, 880, 881, + 882, 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 889, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 819, 571, 572, - 389, 390, 391, 392, 876, 597, 314, 493, 415, 0, + 614, 615, 616, 617, 618, 619, 612, 891, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 821, 571, 572, + 389, 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 898, 871, 897, 899, 900, 896, 901, - 902, 883, 774, 0, 826, 894, 893, 895, 0, 0, + 377, 550, 577, 900, 873, 899, 901, 902, 898, 903, + 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 781, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 860, 833, 834, 835, 771, 836, 830, 831, 772, - 832, 861, 824, 857, 858, 800, 827, 837, 856, 838, - 859, 862, 863, 903, 904, 844, 828, 257, 905, 841, - 864, 855, 854, 839, 825, 865, 866, 807, 802, 842, - 843, 829, 848, 849, 850, 773, 821, 822, 823, 845, - 846, 803, 804, 805, 806, 0, 0, 0, 478, 479, + 783, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 862, 835, 836, 837, 773, 838, 832, 833, 774, + 834, 863, 826, 859, 860, 802, 829, 839, 858, 840, + 861, 864, 865, 905, 906, 846, 830, 257, 907, 843, + 866, 857, 856, 841, 827, 867, 868, 809, 804, 844, + 845, 831, 850, 851, 852, 775, 823, 824, 825, 847, + 848, 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 851, 639, 438, 439, 0, 847, 642, 643, 640, - 374, 425, 444, 432, 817, 656, 517, 518, 657, 628, - 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 1734, 0, 0, 0, 769, 0, 0, + 637, 853, 639, 438, 439, 0, 849, 642, 643, 640, + 374, 425, 444, 432, 819, 656, 517, 518, 657, 628, + 0, 768, 0, 401, 0, 0, 532, 565, 554, 638, + 520, 0, 0, 0, 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 808, 568, 519, 434, 385, 586, 585, 0, - 0, 877, 885, 0, 0, 0, 0, 0, 0, 0, - 0, 873, 0, 0, 0, 0, 761, 0, 0, 798, - 853, 852, 785, 795, 0, 0, 309, 229, 514, 634, - 516, 515, 786, 0, 787, 791, 794, 790, 788, 789, - 0, 868, 0, 0, 0, 0, 0, 0, 0, 765, - 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 762, 763, 0, 0, 0, - 0, 818, 0, 764, 0, 0, 813, 792, 796, 0, + 544, 545, 810, 568, 519, 434, 385, 586, 585, 0, + 0, 879, 887, 0, 0, 0, 0, 0, 0, 0, + 0, 875, 0, 0, 0, 0, 763, 0, 0, 800, + 855, 854, 787, 797, 0, 0, 309, 229, 514, 634, + 516, 515, 788, 0, 789, 793, 796, 792, 790, 791, + 0, 870, 0, 0, 0, 0, 0, 0, 755, 767, + 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 764, 765, 0, 0, 0, + 0, 820, 0, 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 793, 816, 820, 330, 891, 814, 468, 303, 0, 467, + 795, 818, 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, + 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 811, 0, 631, 0, 470, - 0, 0, 875, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 815, 0, 423, 403, 888, 0, 0, + 0, 0, 0, 0, 627, 813, 0, 631, 0, 470, + 0, 0, 877, 0, 0, 0, 440, 0, 0, 366, + 0, 0, 0, 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 1735, 1736, 573, 0, 489, 660, 661, + 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 872, 399, 596, - 629, 630, 521, 0, 887, 867, 869, 870, 874, 878, - 879, 880, 881, 882, 884, 886, 890, 654, 0, 575, + 338, 380, 416, 345, 291, 292, 655, 874, 399, 596, + 629, 630, 521, 0, 889, 869, 871, 872, 876, 880, + 881, 882, 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 889, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 819, 571, - 572, 389, 390, 391, 392, 876, 597, 314, 493, 415, + 613, 614, 615, 616, 617, 618, 619, 612, 891, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 821, 571, + 572, 389, 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 898, 871, 897, 899, 900, 896, - 901, 902, 883, 774, 0, 826, 894, 893, 895, 0, + 433, 377, 550, 577, 900, 873, 899, 901, 902, 898, + 903, 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 781, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 860, 833, 834, 835, 771, 836, 830, 831, - 772, 832, 861, 824, 857, 858, 800, 827, 837, 856, - 838, 859, 862, 863, 903, 904, 844, 828, 257, 905, - 841, 864, 855, 854, 839, 825, 865, 866, 807, 802, - 842, 843, 829, 848, 849, 850, 773, 821, 822, 823, - 845, 846, 803, 804, 805, 806, 0, 0, 0, 478, + 653, 783, 293, 527, 370, 0, 414, 343, 592, 593, + 0, 644, 862, 835, 836, 837, 773, 838, 832, 833, + 774, 834, 863, 826, 859, 860, 802, 829, 839, 858, + 840, 861, 864, 865, 905, 906, 846, 830, 257, 907, + 843, 866, 857, 856, 841, 827, 867, 868, 809, 804, + 844, 845, 831, 850, 851, 852, 775, 823, 824, 825, + 847, 848, 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 851, 639, 438, 439, 0, 847, 642, 643, - 640, 374, 425, 444, 432, 817, 656, 517, 518, 657, - 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 769, 0, + 635, 637, 853, 639, 438, 439, 0, 3580, 642, 3581, + 3582, 374, 425, 444, 432, 819, 656, 517, 518, 657, + 628, 0, 768, 0, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 808, 568, 519, 434, 385, 586, 585, - 0, 0, 877, 885, 0, 0, 0, 0, 0, 0, - 0, 0, 873, 0, 0, 0, 0, 761, 0, 0, - 798, 853, 852, 785, 795, 0, 0, 309, 229, 514, - 634, 516, 515, 786, 0, 787, 791, 794, 790, 788, - 789, 0, 868, 0, 0, 0, 0, 0, 0, 0, - 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 762, 763, 0, 0, - 0, 0, 818, 0, 764, 0, 0, 813, 792, 796, + 513, 544, 545, 810, 568, 519, 434, 385, 586, 585, + 0, 0, 879, 887, 0, 0, 0, 0, 0, 0, + 0, 0, 875, 0, 0, 0, 0, 763, 0, 0, + 800, 855, 854, 787, 797, 0, 0, 309, 229, 514, + 634, 516, 515, 2760, 0, 2761, 793, 796, 792, 790, + 791, 0, 870, 0, 0, 0, 0, 0, 0, 755, + 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 764, 765, 0, 0, + 0, 0, 820, 0, 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 793, 816, 820, 330, 891, 814, 468, 303, 0, + 398, 795, 818, 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, + 375, 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 811, 0, 631, 0, - 470, 0, 0, 875, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 815, 0, 423, 403, 888, 0, + 0, 0, 0, 0, 0, 627, 813, 0, 631, 0, + 470, 0, 0, 877, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, @@ -3187,112 +3151,305 @@ var yyAct = [...]int{ 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 872, 399, - 596, 629, 630, 521, 0, 887, 867, 869, 870, 874, - 878, 879, 880, 881, 882, 884, 886, 890, 654, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 874, 399, + 596, 629, 630, 521, 0, 889, 869, 871, 872, 876, + 880, 881, 882, 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 889, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 819, - 571, 572, 389, 390, 391, 392, 876, 597, 314, 493, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 891, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 821, + 571, 572, 389, 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 898, 871, 897, 899, 900, - 896, 901, 902, 883, 774, 0, 826, 894, 893, 895, + 462, 433, 377, 550, 577, 900, 873, 899, 901, 902, + 898, 903, 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 781, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 860, 833, 834, 835, 771, 836, 830, - 831, 772, 832, 861, 824, 857, 858, 800, 827, 837, - 856, 838, 859, 862, 863, 903, 904, 844, 828, 257, - 905, 841, 864, 855, 854, 839, 825, 865, 866, 807, - 802, 842, 843, 829, 848, 849, 850, 773, 821, 822, - 823, 845, 846, 803, 804, 805, 806, 0, 0, 0, + 453, 653, 783, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 862, 835, 836, 837, 773, 838, 832, + 833, 774, 834, 863, 826, 859, 860, 802, 829, 839, + 858, 840, 861, 864, 865, 905, 906, 846, 830, 257, + 907, 843, 866, 857, 856, 841, 827, 867, 868, 809, + 804, 844, 845, 831, 850, 851, 852, 775, 823, 824, + 825, 847, 848, 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 851, 639, 438, 439, 0, 847, 642, - 643, 640, 374, 425, 444, 432, 817, 656, 517, 518, - 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 769, + 633, 635, 637, 853, 639, 438, 439, 0, 849, 642, + 643, 640, 374, 425, 444, 432, 819, 656, 517, 518, + 657, 628, 0, 768, 0, 401, 0, 0, 532, 565, + 554, 638, 520, 0, 0, 1742, 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 808, 568, 519, 434, 385, 586, - 585, 0, 0, 877, 885, 0, 0, 0, 0, 0, - 0, 0, 0, 873, 0, 0, 0, 0, 0, 0, - 0, 798, 853, 852, 785, 795, 0, 0, 309, 229, - 514, 634, 516, 515, 786, 0, 787, 791, 794, 790, - 788, 789, 0, 868, 0, 0, 0, 0, 0, 0, - 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 762, 763, 0, - 0, 0, 0, 818, 0, 764, 0, 0, 813, 792, - 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, + 543, 513, 544, 545, 810, 568, 519, 434, 385, 586, + 585, 0, 0, 879, 887, 0, 0, 0, 0, 0, + 0, 0, 0, 875, 0, 0, 0, 0, 763, 0, + 0, 800, 855, 854, 787, 797, 0, 0, 309, 229, + 514, 634, 516, 515, 788, 0, 789, 793, 796, 792, + 790, 791, 0, 870, 0, 0, 0, 0, 0, 0, + 0, 767, 0, 772, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 764, 765, 0, + 0, 0, 0, 820, 0, 766, 0, 0, 815, 794, + 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 793, 816, 820, 330, 891, 814, 468, 303, + 331, 398, 795, 818, 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, + 381, 375, 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 811, 0, 631, - 0, 470, 0, 0, 875, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 815, 0, 423, 403, 888, + 0, 0, 0, 0, 0, 0, 627, 813, 0, 631, + 0, 470, 0, 0, 877, 0, 0, 0, 440, 0, + 0, 366, 0, 0, 0, 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, + 408, 450, 449, 307, 477, 1743, 1744, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 872, - 399, 596, 629, 630, 521, 0, 887, 867, 869, 870, - 874, 878, 879, 880, 881, 882, 884, 886, 890, 654, + 0, 339, 338, 380, 416, 345, 291, 292, 655, 874, + 399, 596, 629, 630, 521, 0, 889, 869, 871, 872, + 876, 880, 881, 882, 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 889, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 819, 571, 572, 389, 390, 391, 392, 876, 597, 314, + 891, 556, 533, 559, 474, 536, 535, 0, 0, 570, + 821, 571, 572, 389, 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 898, 871, 897, 899, - 900, 896, 901, 902, 883, 774, 0, 826, 894, 893, - 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 311, 462, 433, 377, 550, 577, 900, 873, 899, 901, + 902, 898, 903, 904, 885, 776, 0, 828, 896, 895, + 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 781, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 860, 833, 834, 835, 771, 836, - 830, 831, 772, 832, 861, 824, 857, 858, 800, 827, - 837, 856, 838, 859, 862, 863, 903, 904, 844, 828, - 257, 905, 841, 864, 855, 854, 839, 825, 865, 866, - 807, 802, 842, 843, 829, 848, 849, 850, 773, 821, - 822, 823, 845, 846, 803, 804, 805, 806, 0, 0, + 649, 453, 653, 783, 293, 527, 370, 0, 414, 343, + 592, 593, 0, 644, 862, 835, 836, 837, 773, 838, + 832, 833, 774, 834, 863, 826, 859, 860, 802, 829, + 839, 858, 840, 861, 864, 865, 905, 906, 846, 830, + 257, 907, 843, 866, 857, 856, 841, 827, 867, 868, + 809, 804, 844, 845, 831, 850, 851, 852, 775, 823, + 824, 825, 847, 848, 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 851, 639, 438, 439, 0, 847, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 0, 766, 206, 64, 197, 168, 0, + 632, 633, 635, 637, 853, 639, 438, 439, 0, 849, + 642, 643, 640, 374, 425, 444, 432, 819, 656, 517, + 518, 657, 628, 0, 768, 0, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 771, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 810, 568, 519, 434, 385, + 586, 585, 0, 0, 879, 887, 0, 0, 0, 0, + 0, 0, 0, 0, 875, 0, 0, 0, 0, 763, + 0, 0, 800, 855, 854, 787, 797, 0, 0, 309, + 229, 514, 634, 516, 515, 788, 0, 789, 793, 796, + 792, 790, 791, 0, 870, 0, 0, 0, 0, 0, + 0, 0, 767, 0, 772, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 764, 765, + 0, 0, 0, 0, 820, 0, 766, 0, 0, 815, + 794, 798, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 795, 818, 822, 330, 893, 816, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 894, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 813, 0, + 631, 0, 470, 0, 0, 877, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 817, 0, 423, 403, + 890, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 874, 399, 596, 629, 630, 521, 0, 889, 869, 871, + 872, 876, 880, 881, 882, 883, 884, 886, 888, 892, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 891, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 821, 571, 572, 389, 390, 391, 392, 878, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 900, 873, 899, + 901, 902, 898, 903, 904, 885, 776, 0, 828, 896, + 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 783, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 862, 835, 836, 837, 773, + 838, 832, 833, 774, 834, 863, 826, 859, 860, 802, + 829, 839, 858, 840, 861, 864, 865, 905, 906, 846, + 830, 257, 907, 843, 866, 857, 856, 841, 827, 867, + 868, 809, 804, 844, 845, 831, 850, 851, 852, 775, + 823, 824, 825, 847, 848, 805, 806, 807, 808, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 853, 639, 438, 439, 0, + 849, 642, 643, 640, 374, 425, 444, 432, 819, 656, + 517, 518, 657, 628, 0, 768, 0, 401, 0, 0, + 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, + 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, + 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, + 542, 512, 543, 513, 544, 545, 810, 568, 519, 434, + 385, 586, 585, 0, 0, 879, 887, 0, 0, 0, + 0, 0, 0, 0, 0, 875, 0, 0, 0, 0, + 0, 0, 0, 800, 855, 854, 787, 797, 0, 0, + 309, 229, 514, 634, 516, 515, 788, 0, 789, 793, + 796, 792, 790, 791, 0, 870, 0, 0, 0, 0, + 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 764, + 765, 0, 0, 0, 0, 820, 0, 766, 0, 0, + 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, + 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, + 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, + 334, 350, 331, 398, 795, 818, 822, 330, 893, 816, + 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, + 302, 456, 381, 375, 363, 340, 894, 364, 365, 354, + 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, + 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 627, 813, + 0, 631, 0, 470, 0, 0, 877, 0, 0, 0, + 440, 0, 0, 366, 0, 0, 0, 817, 0, 423, + 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, + 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, + 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, + 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, + 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, + 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, + 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, + 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, + 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, + 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, + 655, 874, 399, 596, 629, 630, 521, 0, 889, 869, + 871, 872, 876, 880, 881, 882, 883, 884, 886, 888, + 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, + 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, + 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, + 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, + 619, 612, 891, 556, 533, 559, 474, 536, 535, 0, + 0, 570, 821, 571, 572, 389, 390, 391, 392, 878, + 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, + 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, + 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, + 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, + 402, 424, 311, 462, 433, 377, 550, 577, 900, 873, + 899, 901, 902, 898, 903, 904, 885, 776, 0, 828, + 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, + 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, + 327, 652, 649, 453, 653, 783, 293, 527, 370, 0, + 414, 343, 592, 593, 0, 644, 862, 835, 836, 837, + 773, 838, 832, 833, 774, 834, 863, 826, 859, 860, + 802, 829, 839, 858, 840, 861, 864, 865, 905, 906, + 846, 830, 257, 907, 843, 866, 857, 856, 841, 827, + 867, 868, 809, 804, 844, 845, 831, 850, 851, 852, + 775, 823, 824, 825, 847, 848, 805, 806, 807, 808, + 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, + 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, + 622, 0, 632, 633, 635, 637, 853, 639, 438, 439, + 0, 849, 642, 643, 640, 374, 425, 444, 432, 0, + 656, 517, 518, 657, 628, 0, 768, 206, 64, 197, + 168, 0, 0, 0, 0, 0, 0, 401, 0, 0, + 532, 565, 554, 638, 520, 0, 198, 0, 0, 0, + 0, 0, 0, 189, 0, 336, 0, 199, 369, 569, + 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, + 542, 512, 543, 513, 544, 545, 140, 568, 519, 434, + 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, + 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, + 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, + 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, + 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, + 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, + 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, + 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, + 0, 167, 195, 204, 196, 124, 0, 0, 627, 0, + 0, 631, 0, 470, 0, 0, 221, 0, 0, 0, + 440, 0, 0, 366, 194, 188, 187, 486, 0, 423, + 403, 233, 0, 0, 421, 371, 455, 411, 461, 442, + 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, + 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, + 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, + 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, + 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, + 0, 489, 606, 607, 608, 498, 0, 413, 503, 504, + 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, + 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, + 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, + 465, 329, 399, 596, 629, 630, 521, 0, 583, 522, + 531, 321, 555, 567, 566, 395, 481, 224, 578, 581, + 511, 234, 0, 575, 590, 548, 589, 235, 405, 0, + 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, + 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, + 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, + 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, + 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, + 597, 314, 493, 415, 138, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 562, 563, 560, 232, 0, 620, + 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, + 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, + 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, + 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, + 0, 0, 0, 0, 0, 0, 65, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, + 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, + 327, 239, 304, 453, 240, 0, 293, 527, 370, 169, + 414, 343, 592, 593, 61, 644, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, + 236, 45, 222, 225, 227, 226, 0, 62, 576, 588, + 622, 5, 632, 633, 635, 637, 636, 639, 438, 439, + 0, 641, 642, 643, 640, 374, 425, 444, 432, 143, + 237, 517, 518, 238, 628, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 198, 0, 0, 0, 0, 0, - 0, 189, 0, 336, 0, 199, 369, 569, 551, 561, + 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 140, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 312, 2434, 2437, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3303,80 +3460,79 @@ var yyAct = [...]int{ 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 167, - 195, 204, 196, 124, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 221, 0, 0, 0, 440, 0, - 0, 366, 194, 188, 187, 486, 0, 423, 403, 233, + 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, + 2438, 470, 0, 0, 0, 2433, 0, 2432, 440, 2430, + 2435, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, + 326, 297, 407, 451, 2436, 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 606, 607, 608, 498, 0, 413, 503, 504, 505, 507, + 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 465, 329, + 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 224, 578, 581, 511, 234, - 0, 575, 590, 548, 589, 235, 405, 0, 427, 587, + 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, + 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 138, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 232, 0, 620, 621, 0, + 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 239, - 304, 453, 240, 0, 293, 527, 370, 169, 414, 343, - 592, 593, 61, 644, 241, 242, 243, 244, 245, 246, + 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, + 649, 453, 653, 0, 293, 527, 370, 169, 414, 343, + 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 236, 45, - 222, 225, 227, 226, 0, 62, 576, 588, 622, 5, + 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, + 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 143, 237, 517, - 518, 238, 628, 206, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, + 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, + 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 140, 568, 519, 434, 385, 586, 585, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 2422, 2425, 0, 0, 0, 0, 0, 0, + 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1336, 0, 0, 228, + 0, 0, 787, 797, 0, 0, 309, 229, 514, 634, + 516, 515, 788, 0, 789, 793, 796, 792, 790, 791, + 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, + 795, 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 2426, 470, - 0, 0, 0, 2421, 0, 2420, 440, 2418, 2423, 366, + 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, + 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 2424, 347, 418, 379, 298, 378, 408, 450, + 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, @@ -3400,7 +3556,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 169, 414, 343, 592, 593, + 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, @@ -3411,29 +3567,30 @@ var yyAct = [...]int{ 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, + 628, 206, 64, 197, 168, 0, 0, 0, 0, 0, + 0, 401, 684, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 691, 0, 0, 0, + 0, 0, 0, 0, 690, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1331, 0, 0, 228, 0, 0, - 785, 795, 0, 0, 309, 229, 514, 634, 516, 515, - 786, 0, 787, 791, 794, 790, 788, 789, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 793, 457, + 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, + 645, 0, 0, 0, 0, 0, 0, 0, 0, 688, + 689, 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, @@ -3453,18 +3610,18 @@ var yyAct = [...]int{ 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, + 390, 391, 392, 685, 687, 314, 493, 415, 699, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, + 293, 527, 370, 169, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, @@ -3474,32 +3631,31 @@ var yyAct = [...]int{ 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 206, - 64, 197, 168, 0, 0, 0, 0, 0, 0, 401, - 682, 0, 532, 565, 554, 638, 520, 0, 0, 0, + 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, + 0, 0, 532, 565, 554, 638, 520, 0, 1142, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 689, 0, 0, 0, 0, 0, - 0, 0, 688, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, + 0, 0, 1127, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 686, 687, 0, + 426, 0, 0, 2597, 2600, 2601, 2602, 2603, 2604, 2605, + 0, 2610, 2606, 2607, 2608, 2609, 0, 2592, 2593, 2594, + 2595, 1125, 2576, 2598, 0, 2577, 397, 2578, 2579, 2580, + 2581, 1129, 2582, 2583, 2584, 2585, 2586, 2589, 2590, 2587, + 2588, 2596, 409, 373, 410, 355, 387, 386, 388, 1153, + 1155, 1157, 1159, 1162, 496, 497, 0, 0, 645, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, + 0, 0, 440, 0, 0, 366, 0, 0, 0, 2591, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, @@ -3518,18 +3674,18 @@ var yyAct = [...]int{ 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 683, 685, 314, 493, 415, 697, 557, 0, 0, + 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 169, 414, 343, 592, 593, 0, 644, 241, 242, + 319, 320, 327, 652, 649, 453, 653, 0, 293, 2599, + 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, @@ -3540,7 +3696,7 @@ var yyAct = [...]int{ 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 1139, 0, 0, 0, + 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, @@ -3548,27 +3704,27 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 312, 2434, 2437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1124, 0, 0, 0, 0, 0, 0, 299, 441, 460, + 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 2585, 2588, 2589, 2590, 2591, 2592, 2593, 0, 2598, - 2594, 2595, 2596, 2597, 0, 2580, 2581, 2582, 2583, 1122, - 2564, 2586, 0, 2565, 397, 2566, 2567, 2568, 2569, 1126, - 2570, 2571, 2572, 2573, 2574, 2577, 2578, 2575, 2576, 2584, - 409, 373, 410, 355, 387, 386, 388, 1150, 1152, 1154, - 1156, 1159, 496, 497, 0, 0, 645, 0, 0, 0, + 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, + 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, + 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, + 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, + 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, + 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 2579, 0, 423, + 0, 631, 2438, 470, 0, 0, 0, 2433, 0, 2432, + 440, 2430, 2435, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, + 325, 430, 326, 297, 407, 451, 2436, 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, @@ -3592,7 +3748,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 2587, 370, 0, + 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, @@ -3612,7 +3768,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 2422, 2425, 0, 0, 0, 0, + 0, 0, 0, 312, 0, 2455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3626,13 +3782,13 @@ var yyAct = [...]int{ 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 2426, 470, 0, 0, 0, 2421, 0, 2420, 440, 2418, - 2423, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, + 2454, 470, 0, 0, 0, 2460, 2457, 2459, 440, 0, + 2458, 366, 0, 0, 0, 486, 0, 423, 403, 659, + 0, 2452, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 2424, 347, 418, 379, 298, 378, + 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, @@ -3676,7 +3832,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 2443, 0, 0, 0, 0, 0, 0, + 0, 312, 0, 2455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3689,9 +3845,9 @@ var yyAct = [...]int{ 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 2442, 470, - 0, 0, 0, 2448, 2445, 2447, 440, 0, 2446, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 2440, + 0, 0, 0, 0, 627, 0, 0, 631, 2454, 470, + 0, 0, 0, 2460, 2457, 2459, 440, 0, 2458, 366, + 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, @@ -3732,143 +3888,15 @@ var yyAct = [...]int{ 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, + 0, 0, 0, 0, 2144, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, + 2145, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, - 0, 2443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 2442, 470, 0, 0, - 0, 2448, 2445, 2447, 440, 0, 2446, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 2135, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 2136, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, - 1260, 1261, 1262, 1259, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 206, 656, 517, 518, 657, 628, 0, 0, 0, - 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 140, 568, 519, 434, 385, 586, 585, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 202, 2185, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1265, 1266, 1267, 1264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3912,7 +3940,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 169, 414, 343, 592, 593, 0, 644, + 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, @@ -3929,7 +3957,7 @@ var yyAct = [...]int{ 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 2170, 0, 228, + 0, 0, 0, 0, 0, 0, 202, 2195, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3986,81 +4014,209 @@ var yyAct = [...]int{ 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 1050, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 640, 374, 425, 444, 432, 206, 656, 517, 518, 657, + 628, 0, 0, 0, 0, 401, 0, 0, 532, 565, + 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, + 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, + 543, 513, 544, 545, 140, 568, 519, 434, 385, 586, + 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 202, 2179, + 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, + 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 1057, 1058, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, + 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, + 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, + 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, + 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, + 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, + 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, + 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, + 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, + 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, + 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, + 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, + 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, + 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, + 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, + 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, + 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, + 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, + 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, + 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, + 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, + 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, + 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, + 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, + 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, + 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, + 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, + 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, + 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, + 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, + 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, + 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, + 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, + 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, + 649, 453, 653, 0, 293, 527, 370, 169, 414, 343, + 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, + 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, + 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, + 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, + 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, + 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 336, 1053, 0, 369, 569, 551, 561, 552, 537, + 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, + 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 1060, 1061, 0, 0, 0, 0, 309, 229, 514, 634, + 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 1044, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 1031, 468, 303, 1030, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 1048, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 1049, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 1052, 571, 572, 389, - 390, 391, 392, 349, 597, 1047, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 1059, 1045, 1055, 1046, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 1056, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 1043, - 425, 444, 432, 206, 656, 517, 518, 657, 628, 0, - 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 299, 441, 1047, 310, 429, 473, 315, + 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, + 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, + 0, 457, 485, 330, 476, 1034, 468, 303, 1033, 467, + 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, + 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, + 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, + 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, + 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, + 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, + 421, 371, 455, 411, 461, 442, 469, 1051, 412, 294, + 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, + 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, + 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, + 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, + 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, + 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, + 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, + 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, + 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, + 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 1052, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 1055, 571, + 572, 389, 390, 391, 392, 349, 597, 1050, 493, 415, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, + 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, + 0, 499, 564, 500, 623, 626, 624, 625, 1062, 1048, + 1058, 1049, 362, 372, 419, 471, 402, 424, 311, 462, + 433, 1059, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, + 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, + 640, 1046, 425, 444, 432, 206, 656, 517, 518, 657, + 628, 0, 0, 0, 0, 401, 0, 0, 532, 565, + 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, + 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, + 543, 513, 544, 545, 140, 568, 519, 434, 385, 586, + 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2076, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, + 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, + 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, + 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, + 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, + 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, + 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, + 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, + 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, + 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, + 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, + 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, + 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, + 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, + 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, + 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, + 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, + 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, + 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, + 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, + 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, + 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, + 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, + 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, + 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, + 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, + 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, + 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, + 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, + 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, + 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, + 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, + 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, + 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, + 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, + 649, 453, 653, 0, 293, 527, 370, 169, 414, 343, + 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, + 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, + 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, + 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, + 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 140, 568, 519, 434, 385, 586, 585, 0, + 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2067, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 1060, 1061, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4068,7 +4224,7 @@ var yyAct = [...]int{ 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, + 0, 457, 485, 330, 476, 1034, 468, 303, 1033, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, @@ -4097,14 +4253,14 @@ var yyAct = [...]int{ 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 499, 564, 500, 623, 626, 624, 625, 1062, 2097, + 1058, 2098, 362, 372, 419, 471, 402, 424, 311, 462, + 433, 1059, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 169, 414, 343, 592, 593, + 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, @@ -4116,14 +4272,14 @@ var yyAct = [...]int{ 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, + 0, 2989, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 1057, 1058, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1061, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4132,12 +4288,12 @@ var yyAct = [...]int{ 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 1031, 468, 303, 1030, 467, 397, 454, + 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, + 645, 0, 0, 0, 0, 0, 0, 2992, 0, 0, + 0, 2991, 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, @@ -4161,8 +4317,8 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 1059, 2088, 1055, 2089, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 1056, + 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, + 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, @@ -4179,20 +4335,20 @@ var yyAct = [...]int{ 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 2975, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, + 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 336, 1562, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, + 0, 0, 1558, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, @@ -4200,7 +4356,7 @@ var yyAct = [...]int{ 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 2978, 0, 0, 0, 2977, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, @@ -4249,14 +4405,14 @@ var yyAct = [...]int{ 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 1554, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1552, 0, 0, 0, 0, 0, 0, 299, 441, 460, + 1558, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, @@ -4308,18 +4464,18 @@ var yyAct = [...]int{ 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 1550, 0, 369, 569, 551, 561, + 0, 0, 671, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 1554, 0, 0, 0, 309, 229, + 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1552, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, @@ -4329,7 +4485,7 @@ var yyAct = [...]int{ 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, + 0, 470, 0, 669, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, @@ -4368,7 +4524,7 @@ var yyAct = [...]int{ 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, + 632, 633, 635, 637, 636, 639, 438, 439, 670, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4376,8 +4532,8 @@ var yyAct = [...]int{ 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4064, 0, 228, - 853, 0, 0, 0, 0, 0, 309, 229, 514, 634, + 0, 0, 0, 0, 0, 0, 0, 4084, 0, 228, + 855, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4441,13 +4597,13 @@ var yyAct = [...]int{ 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 1554, 0, 0, 0, 309, 229, 514, 634, 516, 515, + 1560, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1552, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1558, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, @@ -4528,7 +4684,7 @@ var yyAct = [...]int{ 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 2487, 413, + 484, 573, 0, 489, 660, 661, 662, 498, 2499, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, @@ -4549,7 +4705,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 979, 0, 547, 448, 323, 285, + 601, 600, 599, 598, 982, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, @@ -4568,14 +4724,14 @@ var yyAct = [...]int{ 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 1554, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1764, 0, 0, 0, 0, 0, 0, 299, 441, 460, + 1772, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, @@ -4626,13 +4782,13 @@ var yyAct = [...]int{ 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 2526, 0, + 554, 638, 520, 0, 0, 0, 0, 0, 2538, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 2528, 0, 0, 0, 309, 229, + 0, 228, 0, 0, 2540, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4690,13 +4846,13 @@ var yyAct = [...]int{ 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 2135, 0, 0, 0, + 520, 0, 0, 0, 0, 0, 2144, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 2136, 0, 0, 0, 309, 229, 514, 634, + 0, 0, 2145, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4760,7 +4916,7 @@ var yyAct = [...]int{ 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 3194, 3196, 0, 0, 309, 229, 514, 634, 516, 515, + 3208, 3210, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4818,12 +4974,12 @@ var yyAct = [...]int{ 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 2549, 0, + 0, 0, 0, 0, 0, 0, 0, 336, 2561, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 1554, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4882,7 +5038,7 @@ var yyAct = [...]int{ 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 336, 0, 0, 369, 569, + 0, 0, 0, 0, 671, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, @@ -4903,7 +5059,7 @@ var yyAct = [...]int{ 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 669, 0, 0, 0, 0, + 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, @@ -4943,7 +5099,7 @@ var yyAct = [...]int{ 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, + 675, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, @@ -4951,7 +5107,7 @@ var yyAct = [...]int{ 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 853, 0, 0, 0, 0, 0, 309, 229, + 0, 228, 855, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5014,7 +5170,7 @@ var yyAct = [...]int{ 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4041, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 4061, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5079,7 +5235,7 @@ var yyAct = [...]int{ 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 3800, 0, 0, 0, 309, 229, 514, 634, 516, 515, + 3817, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5158,7 +5314,7 @@ var yyAct = [...]int{ 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 3934, + 627, 0, 0, 631, 0, 470, 0, 0, 0, 3953, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, @@ -5206,7 +5362,7 @@ var yyAct = [...]int{ 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1778, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 1786, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5269,7 +5425,7 @@ var yyAct = [...]int{ 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3815, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3833, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, @@ -5350,7 +5506,7 @@ var yyAct = [...]int{ 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 3726, 0, 0, 440, 0, 0, 366, + 0, 0, 0, 3743, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, @@ -5398,7 +5554,7 @@ var yyAct = [...]int{ 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 3226, 0, 0, 0, 309, 229, 514, 634, 516, 515, + 3240, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5467,7 +5623,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3244, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, @@ -5525,7 +5681,7 @@ var yyAct = [...]int{ 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2067, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 2076, 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5583,7 +5739,7 @@ var yyAct = [...]int{ 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 3441, 0, 0, 0, 0, + 554, 638, 520, 0, 0, 3456, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, @@ -5658,7 +5814,7 @@ var yyAct = [...]int{ 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3354, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, @@ -5722,7 +5878,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3083, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, @@ -5780,7 +5936,7 @@ var yyAct = [...]int{ 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 1554, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5844,7 +6000,7 @@ var yyAct = [...]int{ 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 2528, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 2540, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5902,7 +6058,7 @@ var yyAct = [...]int{ 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 2894, 0, 0, 0, 0, + 554, 638, 520, 0, 0, 2908, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, @@ -5977,7 +6133,7 @@ var yyAct = [...]int{ 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2205, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, @@ -6036,7 +6192,7 @@ var yyAct = [...]int{ 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 2645, 0, 0, 0, 309, 229, 514, 634, 516, 515, + 2658, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6105,7 +6261,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2607, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, @@ -6163,7 +6319,7 @@ var yyAct = [...]int{ 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 2605, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 2617, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6219,7 +6375,7 @@ var yyAct = [...]int{ 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 2375, + 0, 641, 642, 643, 640, 374, 425, 444, 432, 2386, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, @@ -6291,7 +6447,7 @@ var yyAct = [...]int{ 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 1918, 0, 0, 309, 229, 514, 634, + 0, 0, 0, 1926, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6349,7 +6505,7 @@ var yyAct = [...]int{ 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 2049, 0, 0, 0, 0, 0, 0, 0, 0, 336, + 2058, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, @@ -6418,7 +6574,7 @@ var yyAct = [...]int{ 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 1554, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6437,7 +6593,7 @@ var yyAct = [...]int{ 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 1954, 412, 294, 443, 333, 384, 306, + 461, 442, 469, 1963, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, @@ -6498,7 +6654,7 @@ var yyAct = [...]int{ 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 1583, 0, 0, 0, + 0, 631, 0, 470, 0, 0, 1589, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, @@ -6541,7 +6697,7 @@ var yyAct = [...]int{ 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 670, 336, 0, 0, 369, 569, 551, 561, + 0, 0, 671, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6625,7 +6781,7 @@ var yyAct = [...]int{ 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 680, 631, 0, 470, + 0, 0, 0, 0, 627, 0, 682, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, @@ -6718,7 +6874,7 @@ var yyAct = [...]int{ 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 979, 0, 547, 448, + 603, 602, 601, 600, 599, 598, 982, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, @@ -6823,7 +6979,7 @@ var yyAct = [...]int{ 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 3172, 379, + 325, 430, 326, 297, 407, 451, 0, 347, 3186, 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, @@ -6873,7 +7029,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 1904, 305, 400, 426, 0, 0, 301, + 473, 315, 437, 1912, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, @@ -6936,7 +7092,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 1533, 310, 429, 473, 315, + 0, 0, 0, 299, 441, 1539, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, @@ -7000,7 +7156,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 1531, 310, 429, 473, 315, 437, 452, + 0, 299, 441, 1537, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, @@ -7064,7 +7220,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 1410, 305, 400, + 441, 460, 310, 429, 473, 315, 437, 1415, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, @@ -7139,7 +7295,7 @@ var yyAct = [...]int{ 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 748, + 469, 417, 412, 294, 443, 333, 384, 306, 308, 750, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, @@ -7202,7 +7358,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 705, + 0, 0, 421, 371, 455, 411, 461, 442, 469, 707, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, @@ -7217,7 +7373,7 @@ var yyAct = [...]int{ 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 706, 612, + 296, 494, 613, 614, 615, 616, 617, 618, 708, 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, @@ -7227,7 +7383,7 @@ var yyAct = [...]int{ 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, - 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, @@ -7236,130 +7392,96 @@ var yyAct = [...]int{ 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 289, 290, 2045, 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 1124, 641, + 632, 633, 635, 637, 636, 639, 438, 439, 2048, 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 0, 0, 0, 0, 0, 0, 1147, - 1151, 1153, 1155, 1157, 1158, 1160, 0, 1165, 1161, 1162, - 1163, 1164, 0, 1142, 1143, 1144, 1145, 1122, 1123, 1148, - 0, 1125, 0, 1127, 1128, 1129, 1130, 1126, 1131, 1132, - 1133, 1134, 1135, 1138, 1140, 1136, 1137, 1146, 727, 726, - 733, 723, 0, 0, 0, 1150, 1152, 1154, 1156, 1159, - 0, 730, 731, 0, 732, 736, 0, 0, 717, 2036, - 0, 0, 727, 726, 733, 723, 0, 0, 741, 0, - 0, 0, 0, 0, 0, 730, 731, 0, 732, 736, - 0, 0, 717, 0, 0, 1141, 0, 0, 0, 0, - 0, 0, 741, 0, 0, 2039, 0, 0, 0, 0, + 518, 657, 628, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 745, 0, 0, 747, 0, 0, - 0, 0, 746, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 745, 3821, - 0, 747, 0, 0, 0, 0, 746, 0, 0, 2013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2029, 0, 0, - 2036, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3809, 0, 0, 0, + 2038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2039, 0, 0, 0, - 0, 0, 718, 720, 719, 0, 0, 0, 0, 0, - 0, 0, 0, 725, 0, 0, 0, 0, 0, 2036, - 0, 0, 0, 0, 0, 729, 718, 720, 719, 0, - 0, 0, 744, 0, 0, 0, 0, 725, 0, 722, - 0, 2017, 0, 712, 0, 0, 0, 0, 0, 729, - 2013, 0, 2023, 0, 0, 2039, 744, 0, 0, 0, - 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, - 0, 0, 2011, 2045, 0, 0, 2012, 2014, 2016, 0, - 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, 2032, 2033, - 0, 0, 0, 0, 0, 0, 0, 2021, 2030, 2022, - 0, 0, 0, 1801, 0, 0, 0, 0, 0, 2013, - 0, 0, 0, 0, 3792, 1149, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 724, 728, 734, 0, - 735, 737, 0, 0, 738, 739, 740, 0, 0, 742, - 743, 0, 0, 0, 0, 0, 0, 2029, 0, 0, - 724, 728, 734, 2034, 735, 737, 0, 0, 738, 739, - 740, 0, 0, 742, 743, 0, 0, 0, 0, 0, - 2010, 0, 2017, 0, 0, 0, 0, 2009, 0, 0, - 0, 0, 0, 2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2027, 0, 2011, 2045, 0, 0, 2012, 2014, 2016, - 2015, 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, 2032, - 2033, 0, 0, 0, 0, 0, 0, 0, 2021, 2030, - 2022, 2017, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2023, 0, 0, 0, 1797, 0, 0, 0, - 0, 0, 0, 1794, 0, 0, 0, 1796, 1793, 1795, - 1799, 1800, 2011, 2045, 2037, 1798, 2012, 2014, 2016, 0, - 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, 2032, 2033, - 0, 0, 0, 0, 0, 0, 0, 2021, 2030, 2022, - 0, 0, 0, 0, 0, 721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2034, 0, 0, 0, 3653, 721, - 0, 0, 0, 2037, 0, 0, 0, 0, 0, 0, - 0, 2010, 0, 0, 0, 0, 0, 0, 2009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2026, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2027, 0, 0, 0, 0, 0, 0, 0, - 0, 2015, 0, 2034, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2020, 2054, 0, 0, 2021, + 2023, 2025, 0, 2027, 2028, 2029, 2033, 2034, 2035, 2037, + 2040, 2041, 2042, 0, 0, 0, 0, 0, 0, 0, + 2030, 2039, 2031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2010, 0, 0, 0, 0, 0, 0, 2009, 1782, 1783, - 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1804, - 1805, 1806, 1807, 1808, 1809, 1802, 1803, 0, 0, 0, - 0, 2027, 0, 0, 0, 0, 0, 0, 0, 0, - 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2019, 0, 0, 0, 0, 0, 0, + 2018, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2036, 0, 0, 0, 0, 0, + 0, 0, 0, 2024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3653, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3669, } var yyPact = [...]int{ - 333, -1000, -1000, -1000, -339, 15002, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 274, -1000, -1000, -1000, -326, 15924, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 49486, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 464, 49486, -334, 30984, 47572, -1000, -1000, 2890, -1000, - 48210, 16936, 49486, 550, 548, 49486, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 51046, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 489, 51046, -323, 26802, 32544, -1000, -1000, 2754, -1000, + 49770, 17858, 51046, 591, 576, 51046, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 961, -1000, 53952, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 897, 54645, 53314, 11147, - -217, -1000, 1802, -38, 2647, 504, -201, -204, 1135, 1153, - 1140, 1015, 49486, 1095, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 204, 980, 48848, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 973, -1000, 55512, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 896, 4643, 54874, 12069, + -214, -1000, 1651, -27, 2643, 488, -184, -188, 1133, 1146, + 1366, 1063, 51046, 1117, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 251, 133, 50408, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 4012, 246, 960, 980, 22048, 108, - 100, 1802, 453, -91, 366, -1000, 1585, 4125, 199, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 11147, 11147, 15002, -383, 15002, 11147, 49486, 49486, -1000, -1000, - -1000, -1000, -334, 48210, 897, 54645, 11147, 2647, 504, -201, - -204, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 4148, 254, 972, 986, 22970, 158, + 143, 1651, 470, -78, 332, -1000, 2074, 4141, 208, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 12069, 12069, 15924, -373, 15924, 12069, 51046, 51046, -1000, -1000, + -1000, -1000, -323, 49770, 896, 4643, 12069, 2643, 488, -184, + -188, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -91, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -78, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7374,8 +7496,8 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 100, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 143, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7392,424 +7514,427 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 5048, -1000, 1637, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2381, 3203, 1631, 2645, 838, 47572, - 49486, -1000, 142, 838, -1000, -1000, -1000, 1802, 3631, -1000, - 49486, 49486, 233, 1924, -1000, 566, 547, 469, 621, 369, - 1629, -1000, -1000, -1000, -1000, -1000, -1000, 756, 3561, -1000, - 49486, 49486, 3231, 49486, -1000, 2358, 778, -1000, 54669, 3399, - 1475, 1024, 3243, -1000, -1000, 3202, -1000, 379, 372, 359, - 623, 442, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 355, - -1000, 3462, -1000, -1000, 363, -1000, -1000, 422, -1000, -1000, - -1000, 98, -1000, -1000, -1000, -1000, -1000, -1000, -14, -1000, - -1000, 1221, 2743, 11147, 2757, -1000, 3481, 1646, -1000, -1000, - -1000, 6654, 13711, 13711, 13711, 13711, 49486, -1000, -1000, 3053, - 11147, 3201, 3197, 3196, 3195, -1000, -1000, -1000, -1000, -1000, - -1000, 3192, 1616, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2057, -1000, -1000, -1000, 14352, -1000, 3191, 3188, - 3187, 3186, 3185, 3184, 3183, 3182, 3180, 3177, 3161, 3158, - 3157, 3156, 2919, 16288, 3152, 2644, 2642, 3151, 3149, 3148, - 2635, 3147, 3146, 3145, 2919, 2919, 3144, 3142, 3135, 3134, - 3132, 3130, 3129, 3125, 3124, 3123, 3121, 3120, 3119, 3118, - 3112, 3106, 3105, 3104, 3102, 3101, 3099, 3096, 3093, 3090, - 3089, 3085, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 5161, -1000, 1699, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2448, 3171, 1697, 2642, 845, 49132, + 49132, 51046, -1000, 157, 845, 49132, -1000, -1000, -1000, 1651, + 3506, -1000, 51046, 51046, 275, 1933, -1000, 536, 570, 544, + 409, 401, 1692, -1000, -1000, -1000, -1000, -1000, -1000, 794, + 3462, -1000, 51046, 51046, 3180, 51046, -1000, 2304, 815, -1000, + 5430, 3316, 1446, 999, 3188, -1000, -1000, 3170, -1000, 412, + 346, 504, 496, 474, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 410, -1000, 3387, -1000, -1000, 388, -1000, -1000, 414, + -1000, -1000, -1000, 125, -1000, -1000, -1000, -1000, -1000, -1000, + 5, -1000, -1000, 1164, 2552, 12069, 2288, -1000, 3661, 1704, + -1000, -1000, -1000, 7576, 14633, 14633, 14633, 14633, 51046, -1000, + -1000, 3024, 12069, 3165, 3164, 3163, 3161, -1000, -1000, -1000, + -1000, -1000, -1000, 3159, 1691, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2062, -1000, -1000, -1000, 15274, -1000, + 3158, 3157, 3156, 3142, 3139, 3138, 3137, 3136, 3134, 3129, + 3127, 3126, 3121, 3117, 2831, 17210, 3116, 2634, 2630, 3115, + 3114, 3113, 2629, 3110, 3109, 3107, 2831, 2831, 3104, 3101, + 3099, 3098, 3097, 3091, 3090, 3089, 3088, 3082, 3081, 3080, + 3079, 3078, 3077, 3076, 3075, 3074, 3070, 3069, 3068, 3066, + 3065, 3064, 3058, 3054, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1467, -1000, 3084, 3575, - 3001, -1000, 3438, 3429, 3426, 3424, -268, 3083, 2253, -1000, - -1000, 102, 3559, 49486, -286, 49486, 425, -103, -108, -109, - -1000, -66, -1000, -1000, 1110, -1000, 1075, 52676, 943, -1000, - -1000, 49486, 884, 884, 884, 49486, 49486, 198, 956, 884, - 884, 884, 884, 884, 946, 884, 3480, 958, 957, 954, - 952, 884, -64, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1923, 1919, 3306, 1047, -1000, -1000, -1000, -1000, 1500, 49486, - -1000, 3018, 425, -317, 1814, 1814, 3538, 3538, 3479, 3477, - 821, 789, 783, 1814, 622, -1000, 1825, 1825, 1825, 1825, - 1814, 507, 824, 3487, 3487, 191, 1825, 61, 1814, 1814, - 61, 1814, 1814, -1000, 1914, 285, -275, -1000, -1000, -1000, - -1000, 1825, 1825, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 3455, 3452, 897, 897, 49486, 897, 210, 49486, 897, 897, - 897, 49486, 917, -316, 19, 52038, 51400, 2369, 2358, 776, - 775, 1531, 1817, -1000, 1717, 49486, 49486, 1717, 1717, 25242, - 24604, -1000, 49486, -1000, 3575, 3001, 2905, 1625, 2902, 3001, - -110, 425, 897, 897, 897, 897, 897, 332, 897, 897, - 897, 897, 897, 49486, 49486, 46934, 897, 897, 897, 897, - 9218, 1585, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 15002, 2028, 2105, 195, -12, - -311, 282, -1000, -1000, 49486, 3373, 343, -1000, -1000, -1000, - 3003, -1000, 3006, 3006, 3006, 3006, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 3006, 3006, 3014, 3077, - -1000, -1000, 3004, 3004, 3004, 3003, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 3007, 3007, 3008, 3008, 3007, 49486, -128, -1000, -1000, - 11147, 49486, 3386, 444, 3076, 838, -1000, -1000, 49486, 318, - 446, 3575, 3384, 3487, 3529, -1000, -1000, 1607, 2252, 2630, - -1000, 369, -1000, 459, 369, -1000, 583, 583, 1821, -1000, - 1182, -1000, -1000, -1000, -1000, -1000, -1000, 49486, -14, 417, - -1000, -1000, 2601, 3062, -1000, 681, 1422, 1429, -1000, 329, - 4619, 39916, 2358, 39916, 49486, -1000, -1000, -1000, -1000, -1000, - -1000, 87, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1503, -1000, + 3041, 3478, 2921, -1000, 3374, 3372, 3370, 3366, -253, 3036, + 2284, -1000, -1000, 111, 3461, 51046, -272, 51046, 443, -92, + -94, -96, -1000, -68, -1000, -1000, 1111, -1000, 1100, 54236, + 945, -1000, -1000, 51046, 895, 895, 895, 51046, 51046, 229, + 956, 895, 895, 895, 895, 895, 948, 895, 3404, 964, + 961, 958, 957, 895, -28, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1920, 1917, 3248, 1082, 986, -1000, -1000, -1000, + -1000, 1517, 51046, -1000, 2975, 443, -299, 1871, 1871, 3443, + 3443, 3401, 3399, 831, 830, 820, 1871, 704, -1000, 1889, + 1889, 1889, 1889, 1871, 545, 825, 3408, 3408, 151, 1889, + 94, 1871, 1871, 94, 1871, 1871, -1000, 1893, 341, -260, + -1000, -1000, -1000, -1000, 1889, 1889, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 3381, 3378, 896, 896, 51046, 896, 218, + 51046, 896, 896, 896, 51046, 905, -313, 46, 53598, 52960, + 2399, 2304, 809, 807, 1556, 1988, -1000, 1818, 51046, 51046, + 1818, 1818, 26164, 25526, -1000, 51046, -1000, 3478, 2921, 2822, + 1549, 2815, 2921, -97, 443, 896, 896, 896, 896, 896, + 364, 896, 896, 896, 896, 896, 51046, 51046, 48494, 896, + 896, 896, 896, 10140, 2074, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15924, 2260, + 2201, 206, 0, -300, 295, -1000, -1000, 51046, 3290, 355, + -1000, -1000, -1000, 2957, -1000, 2959, 2959, 2959, 2959, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2959, + 2959, 2974, 3035, -1000, -1000, 2958, 2958, 2958, 2957, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 341, -1000, 11147, 11147, - 11147, 11147, 11147, -1000, 1022, 13070, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 13711, 13711, 13711, 13711, 13711, 13711, 13711, - 13711, 13711, 13711, 13711, 13711, 3052, 1904, 13711, 13711, 13711, - 13711, 27794, 1625, 3110, 1501, 304, 1646, 1646, 1646, 1646, - 11147, -1000, 1927, 2743, 11147, 11147, 11147, 11147, 34174, 49486, - -1000, -1000, 4813, 11147, 11147, 54789, 11147, 3419, 11147, 11147, - 11147, 2901, 5363, 49486, 11147, -1000, 2898, 2886, -1000, -1000, - 2164, 11147, -1000, -1000, 11147, -1000, -1000, 11147, 13711, 11147, - -1000, 11147, 11147, 11147, -1000, -1000, 1496, 3419, 3419, 3419, - 1818, 11147, 11147, 3419, 3419, 3419, 1799, 3419, 3419, 3419, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 2885, 2883, - 2877, 10506, 3487, -217, -1000, 8577, 3384, 3487, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -270, 3061, - 49486, 2629, 2616, -350, 187, 473, 49486, 1184, -1000, -1000, - 49486, 2251, 49486, 2249, 63, 1131, 1088, 1091, -1000, -1000, - 49486, 50762, -1000, 49486, 1958, 49486, 49486, 3409, -1000, 3060, - 49486, 884, 884, 884, -1000, 45020, 39916, 49486, 49486, 2358, - 49486, 49486, 49486, 884, 884, 884, 884, 49486, -1000, 3331, - 39916, 3321, 917, -1000, 49486, 1500, 3408, 49486, -1000, -1000, - -1000, -1000, 3538, 13711, 13711, -1000, -1000, 11147, -1000, 224, - 46296, 1825, 1814, 1814, -1000, -1000, 49486, -1000, -1000, -1000, - 1825, 49486, 1825, 1825, 3538, 1825, -1000, -1000, -1000, 1814, - 1814, -1000, -1000, 11147, -1000, -1000, 1825, 1825, -1000, -1000, - 3538, 49486, 85, 3538, 3538, 90, -1000, -1000, -1000, 1814, - 49486, 49486, 884, 49486, -1000, 49486, 49486, -1000, -1000, 49486, - 49486, 4526, 49486, 45020, 45658, 3445, -1000, 39916, 49486, 49486, - 1499, -1000, 942, 37364, -1000, 49486, 1431, -1000, 26, -1000, - 32, 19, 1717, 19, 1717, 937, -1000, 675, 672, 23328, - 592, 39916, 6004, -1000, -1000, 1717, 1717, 6004, 6004, 1647, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1494, -1000, 283, - 3487, -1000, -1000, -1000, -1000, -1000, 2244, -1000, 49486, 45020, - 39916, 2358, 49486, 897, 49486, 49486, 49486, 49486, 49486, -1000, - 3055, 1604, -1000, 3398, 49486, 49486, 49486, 49486, 1372, -1000, - -1000, 20126, 1597, -1000, -1000, 1986, -1000, 11147, 15002, -255, - 11147, 15002, 15002, 11147, 15002, -1000, 11147, 317, -1000, -1000, - -1000, -1000, 2241, -1000, 2236, -1000, -1000, -1000, -1000, -1000, - 2611, 2611, -1000, 2234, -1000, -1000, -1000, -1000, 2233, -1000, - -1000, 2230, -1000, -1000, -1000, -1000, -159, 2872, 1221, -1000, - 2609, 3241, -223, -1000, 21410, 49486, 49486, 444, -356, 1897, - 1895, 1894, 3466, -1000, -223, -1000, 20768, 49486, 3487, -1000, - -230, 3384, 11147, 49486, -1000, 3475, -1000, -1000, 369, -1000, - -1000, -1000, 583, 471, -1000, -1000, -1000, -1000, -1000, -1000, - 1594, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -92, -96, 1491, -1000, 49486, -1000, -1000, 329, 39916, - 41830, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 260, -1000, - -1000, 181, -1000, 936, 287, 1820, -1000, -1000, 228, 211, - 203, 999, 2743, -1000, 1989, 1989, 1979, -1000, 920, -1000, - -1000, -1000, -1000, 3053, -1000, -1000, -1000, 2925, 3982, -1000, - 1912, 1912, 1652, 1652, 1652, 1652, 1652, 2718, 2718, -1000, - -1000, -1000, 6654, 3052, 13711, 13711, 13711, 13711, 982, 982, - 3518, 3928, -1000, -1000, -1000, -1000, 11147, 177, 1960, -1000, - 11147, 2631, 1613, 2373, 1555, 1816, -1000, 3003, 11147, 1590, + -1000, -1000, -1000, -1000, 2963, 2963, 2965, 2965, 2963, 51046, + -116, -1000, -1000, 12069, 51046, 3309, 512, 3034, 845, 845, + -1000, -1000, 51046, 334, 484, 845, 3478, 3305, 3408, 3435, + -1000, -1000, 1690, 2283, 2628, -1000, 401, -1000, 475, 401, + -1000, 459, 459, 1808, -1000, 1349, -1000, -1000, -1000, -1000, + -1000, -1000, 51046, 5, 451, -1000, -1000, 2599, 3029, -1000, + 698, 1367, 1375, -1000, 370, 5536, 41476, 2304, 41476, 51046, + -1000, -1000, -1000, -1000, -1000, -1000, 106, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 398, -1000, 12069, 12069, 12069, 12069, 12069, -1000, 1044, + 13992, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14633, 14633, + 14633, 14633, 14633, 14633, 14633, 14633, 14633, 14633, 14633, 14633, + 3021, 1922, 14633, 14633, 14633, 14633, 29354, 1549, 3102, 1524, + 310, 1704, 1704, 1704, 1704, 12069, -1000, 1950, 2552, 12069, + 12069, 12069, 12069, 35734, 51046, -1000, -1000, 4706, 12069, 12069, + 3831, 12069, 3350, 12069, 12069, 12069, 2814, 6285, 51046, 12069, + -1000, 2813, 2811, -1000, -1000, 2093, 12069, -1000, -1000, 12069, + -1000, -1000, 12069, 14633, 12069, -1000, 12069, 12069, 12069, -1000, + -1000, 3628, 3350, 3350, 3350, 1887, 12069, 12069, 3350, 3350, + 3350, 1881, 3350, 3350, 3350, 3350, 3350, 3350, 3350, 3350, + 3350, 3350, 3350, 2809, 2808, 2807, 11428, 3408, -214, -1000, + 9499, 3305, 3408, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -256, 3028, 51046, 2627, 2626, -332, 204, + 500, 51046, 1194, -1000, -1000, 51046, 2278, 51046, 2267, 69, + 1131, 1105, 1113, -1000, -1000, 51046, 52322, -1000, 51046, 1973, + 51046, 51046, 3342, -1000, 3027, 51046, 895, 895, 895, -1000, + 46580, 41476, 51046, 51046, 2304, 51046, 51046, 51046, 895, 895, + 895, 895, 51046, -1000, 3260, 41476, 3254, 905, -1000, 1082, + 51046, 1517, 3338, 51046, -1000, -1000, -1000, -1000, 3443, 14633, + 14633, -1000, -1000, 12069, -1000, 246, 47856, 1889, 1871, 1871, + -1000, -1000, 51046, -1000, -1000, -1000, 1889, 51046, 1889, 1889, + 3443, 1889, -1000, -1000, -1000, 1871, 1871, -1000, -1000, 12069, + -1000, -1000, 1889, 1889, -1000, -1000, 3443, 51046, 102, 3443, + 3443, 126, -1000, -1000, -1000, 1871, 51046, 51046, 895, 51046, + -1000, 51046, 51046, -1000, -1000, 51046, 51046, 4569, 51046, 46580, + 47218, 3377, -1000, 41476, 51046, 51046, 1513, -1000, 944, 38924, + -1000, 51046, 1471, -1000, 49, -1000, 67, 46, 1818, 46, + 1818, 934, -1000, 694, 699, 24250, 631, 41476, 6926, -1000, + -1000, 1818, 1818, 6926, 6926, 1706, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1506, -1000, 289, 3408, -1000, -1000, -1000, + -1000, -1000, 2266, -1000, 51046, 46580, 41476, 2304, 51046, 896, + 51046, 51046, 51046, 51046, 51046, -1000, 3026, 1687, -1000, 3314, + 51046, 51046, 51046, 51046, 1358, -1000, -1000, 21048, 1675, -1000, + -1000, 1947, -1000, 12069, 15924, -240, 12069, 15924, 15924, 12069, + 15924, -1000, 12069, 350, -1000, -1000, -1000, -1000, 2265, -1000, + 2263, -1000, -1000, -1000, -1000, -1000, 2623, 2623, -1000, 2262, + -1000, -1000, -1000, -1000, 2259, -1000, -1000, 2258, -1000, -1000, + -1000, -1000, -157, 2804, 1164, -1000, 2622, 3186, -216, -1000, + 22332, 51046, 51046, 512, 512, -340, 1916, 1915, 1911, 3391, + -1000, -216, -1000, 21690, 51046, 484, 3408, -1000, -223, 3305, + 12069, 51046, -1000, 3396, -1000, -1000, 401, -1000, -1000, -1000, + 459, 467, -1000, -1000, -1000, -1000, -1000, -1000, 1670, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -85, + -87, 1494, -1000, 51046, -1000, -1000, 370, 41476, 43390, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 272, -1000, -1000, 180, + -1000, 932, 309, 1807, -1000, -1000, 231, 223, 267, 997, + 2552, -1000, 1968, 1968, 1987, -1000, 782, -1000, -1000, -1000, + -1000, 3024, -1000, -1000, -1000, 2382, 2206, -1000, 1828, 1828, + 1726, 1726, 1726, 1726, 1726, 1870, 1870, -1000, -1000, -1000, + 7576, 3021, 14633, 14633, 14633, 14633, 974, 974, 4331, 4349, + -1000, -1000, -1000, -1000, 12069, 179, 1946, -1000, 12069, 2615, + 1605, 2396, 1452, 1806, -1000, 2957, 12069, 1660, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2871, 2870, 2290, 3558, 2863, 11147, -1000, -1000, 1815, 1798, - 1780, -1000, 2257, 9865, -1000, -1000, -1000, 2862, 1586, 2850, - -1000, -1000, -1000, 2849, 1773, 1253, 2845, 2504, 2843, 2841, - 2839, 2838, 1489, 11147, 11147, 11147, 11147, 2834, 1768, 1767, - 11147, 11147, 11147, 11147, 2831, 11147, 11147, 11147, 11147, 11147, - 11147, 11147, 11147, 11147, 11147, 49486, 143, 143, 143, 1470, - 1453, -1000, -1000, 1763, -1000, 2743, -1000, -1000, 3384, -1000, - 3049, 2229, 1449, -1000, -1000, -329, 2536, 49486, 49486, 183, - 49486, 2606, -288, 49486, -1000, -1000, 2605, -1000, -1000, -1000, - 1123, 1066, 1060, -1000, 49486, -1000, 2604, 3397, 3473, 903, - 49486, 1206, 3048, 49486, 49486, 49486, 312, -1000, -1000, 1340, - -1000, 287, -36, 555, 1277, 3230, 3555, -131, 49486, 49486, - 49486, 49486, 3407, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 44382, -1000, 3047, 1762, -1000, -1000, 1646, 1646, 2743, - 49486, 49486, 49486, 3215, 49486, 49486, 3538, 3538, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1825, 3538, 3538, 1421, 1814, - 1825, -1000, -1000, 1825, -356, -1000, 1825, -1000, -356, 1583, - -356, 49486, -1000, -1000, -1000, 3406, 3018, 1444, -1000, -1000, - -1000, 3526, 1296, 871, 871, 1099, 822, 3525, 18850, -1000, - 1730, 1362, 935, 3336, 376, -1000, 1730, -156, 847, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 739, 737, 1730, 1730, - 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1142, - 1730, 1730, 1730, 1730, 1730, -1000, 1730, 3043, 542, -1000, - -1000, -1000, -1000, -1000, -1000, 763, 680, 307, 3444, 419, - -1000, 462, 1340, 334, 3443, 435, 49486, 49486, 3335, 1322, - -1000, -1000, -1000, -1000, -1000, 28432, 28432, 22690, 28432, -1000, - 196, 1717, 19, 129, -1000, -1000, 1431, 6004, 1431, 6004, - 2227, -1000, -1000, 928, -1000, -1000, 1277, -1000, 49486, 49486, - -1000, -1000, 3038, 1877, -1000, -1000, 16288, -1000, 6004, 6004, - -1000, -1000, 30346, 49486, -1000, -21, -1000, 3, 3384, -1000, - 1235, -1000, -1000, 1424, 1277, 3240, 49486, 1235, 1235, 1235, - -1000, -1000, 17574, 49486, 49486, -1000, -1000, -1000, -1000, 3538, - 9218, -1000, 37364, -1000, -1000, 43744, -1000, 43106, 1949, -1000, - 15002, 2100, 193, -1000, 263, -322, 190, 1977, 188, 2743, - -1000, -1000, 2830, 2826, 1760, -1000, 1759, 2825, 1757, 1753, - 2226, -1000, 50, -1000, 3380, 1280, -1000, 3037, -1000, 1750, - 3303, -1000, 1414, -1000, 1872, 1744, -1000, -1000, -1000, 11147, - 42468, 11147, 1037, 1280, 1740, 3302, 1414, 3384, 2597, -1000, - 1406, -1000, 2225, 1580, 232, -1000, -1000, -1000, 49486, 2601, - 1732, 41830, 1365, -1000, 927, 1579, 1567, -1000, 39916, 365, - 39916, -1000, 39916, -1000, -1000, 402, -1000, 49486, 3382, -1000, - -1000, -1000, 2536, 1869, -354, 49486, -1000, -1000, -1000, -1000, - -1000, 1726, -1000, 982, 982, 3518, 3841, -1000, 13711, -1000, - 13711, 3086, -1000, 1940, -1000, 11147, 2080, 4950, 11147, 4950, - 1892, 26518, 34174, -115, 3393, 3028, 49486, -1000, -1000, 11147, - 11147, -1000, 3011, -1000, -1000, -1000, -1000, 11147, 11147, 2118, - -1000, 49486, -1000, -1000, -1000, -1000, 26518, -1000, 13711, -1000, - -1000, -1000, -1000, 11147, 1327, 1327, 2993, 1713, 143, 143, - 143, 2924, 2904, 2887, 1705, 143, 2881, 2829, 2736, 2721, - 2705, 2687, 2669, 2655, 2646, 2519, 1704, -1000, 3034, -1000, - -1000, 2044, 12429, 8577, -1000, -1000, 328, 1404, 2223, 2589, - 119, -1000, 1866, -1000, 2587, 49486, 49486, 1178, -1000, 49486, - 3551, -1000, -1000, -1000, -1000, 1061, -1000, 2586, -1000, 266, - 245, 2084, 336, 2821, 1401, -1000, -1000, 49486, -1000, -1000, - -1000, 17574, 3018, 3032, 3018, 174, 1730, 645, 39916, 773, - -1000, 49486, 2147, 1858, 3239, 816, 3359, 49486, 3031, 408, - 3030, 3026, 3404, 532, 54442, 49486, 1363, -1000, 1566, 4125, - -1000, 49486, -1000, -1000, 49486, -1000, 2358, -1000, 1814, -1000, - -1000, 3538, -1000, -1000, 11147, 11147, 3538, 1814, 1814, -1000, - 1825, -1000, 49486, -1000, -356, 532, 54442, 3403, 4665, 608, - 2607, -1000, 49486, -1000, -1000, -1000, 861, -1000, 1086, 884, - 49486, 2016, 1086, 2015, 3025, -1000, -1000, 49486, 49486, 49486, - 49486, -1000, -1000, 49486, -1000, 49486, 49486, 49486, 49486, 49486, - 41192, -1000, 49486, 49486, -1000, 49486, 2013, 49486, 2008, 3341, - -1000, 1730, 1730, 1013, -1000, -1000, 664, -1000, 41192, 2222, - 2221, 2219, 2218, 2578, 2576, 2573, 1730, 1730, 2216, 2570, - 40554, 2567, 1201, 2214, 2213, 2203, 2208, 2552, 997, -1000, - 2550, 2207, 2142, 2141, 49486, 3020, 2448, 534, -1000, -1000, - 2084, 174, 1730, 409, 49486, 1856, 1855, 645, 625, 552, - -42, 23966, -1000, -1000, -1000, 49486, 37364, 37364, 37364, 37364, - 37364, 37364, -1000, 3284, 3262, 3019, -1000, 3267, 3264, 3277, - 3283, 3248, 49486, 37364, 3018, -1000, 40554, -1000, -1000, -1000, - 1625, 1699, 3603, 1080, 11147, 6004, -1000, -1000, 11, 24, - -1000, -1000, -1000, -1000, 39916, 2549, 592, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 3472, 49486, 49486, 862, 2813, 1399, - -1000, -1000, -1000, 54442, 3006, 3006, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 3006, 3006, 3014, -1000, -1000, - 3004, 3004, 3004, 3003, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 3007, 3007, 3008, 3008, 3007, -1000, - -1000, 3532, -1000, 1396, -1000, -1000, 1562, -1000, 1954, -347, - 15002, 1843, 1929, -1000, 11147, 15002, 11147, -258, 393, -260, - -1000, -1000, -1000, 2547, -1000, -1000, -1000, 2202, -1000, 2201, - -1000, 201, 223, 2007, -223, 8577, 452, 49486, -223, 49486, - 8577, -1000, 49486, 173, -364, -366, 159, 2545, 440, -223, - 3472, 50, 11147, 3329, -1000, -1000, 49486, 2194, -1000, -1000, - -1000, 3549, 39916, 2358, 1676, 39278, -1000, 362, -1000, 257, - 633, 2539, -1000, 951, 118, 2538, 2536, -1000, -1000, -1000, - -1000, 13711, 1646, -1000, -1000, -1000, 2743, 11147, 2812, -1000, - 1050, 1050, 2170, 2811, 2808, -1000, 3006, 3006, -1000, 3003, - 3004, 3003, 1050, 1050, 2806, -1000, 3000, -1000, 3393, -1000, - 2154, 2487, -1000, 2414, 2383, 11147, -1000, 2795, 3645, 1481, - -58, -187, 143, 143, -1000, -1000, -1000, -1000, 143, 143, - 143, 143, -1000, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 841, -98, -279, -99, -282, -1000, - 2794, 1392, -1000, -1000, -1000, -1000, -1000, 54789, 1387, 565, - 565, 2536, 2531, -1000, 924, 2530, 1115, 49486, 2529, -293, - -1000, 2526, -1000, -1000, 49486, 49486, 49486, 50124, 677, 49486, - 49486, 2525, -1000, 2523, 2517, 1206, 54442, 2793, 3402, 18212, - 3401, 2184, -1000, -1000, -1000, 29708, 625, -1000, -1000, -1000, - 743, 382, 2188, 609, -1000, 49486, 570, 3323, 1851, 2515, - 49486, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3359, - -1000, 925, 505, 36088, 15650, -1000, 430, 49486, -1000, 18212, - 18212, 430, 516, 1888, -1000, 838, 1352, 136, 37364, 49486, - -1000, 36726, 2788, -1000, -1000, 1277, 3538, -1000, 2743, 2743, - -356, 3538, 3538, 1814, -1000, -1000, 516, -1000, 430, -1000, - 1368, 19488, 594, 461, 454, -1000, 752, -1000, -1000, 836, - 3352, 54442, -1000, 49486, -1000, 49486, -1000, 49486, 49486, 884, - 11147, 3352, 49486, 904, -1000, 1180, 495, 460, 858, 858, - 1386, -1000, 3393, -1000, -1000, 1374, -1000, -1000, -1000, -1000, - 49486, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 26518, 26518, - 3441, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2507, 2506, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2802, 2792, + 2625, 3459, 2791, 12069, -1000, -1000, 1803, 1792, 1784, -1000, + 2322, 10787, -1000, -1000, -1000, 2775, 1641, 2774, -1000, -1000, + -1000, 2772, 1781, 1444, 2767, 2723, 2762, 2761, 2755, 2749, + 1490, 12069, 12069, 12069, 12069, 2748, 1775, 1770, 12069, 12069, + 12069, 12069, 2746, 12069, 12069, 12069, 12069, 12069, 12069, 12069, + 12069, 12069, 12069, 51046, 149, 149, 149, 1481, 1480, -1000, + -1000, 1751, -1000, 2552, -1000, -1000, 3305, -1000, 3020, 2244, + 1474, -1000, -1000, -320, 2557, 51046, 51046, 186, 51046, 2613, + -273, 51046, -1000, -1000, 2612, -1000, -1000, -1000, 1126, 1092, + 1086, -1000, 51046, -1000, 2606, 3313, 3395, 988, 51046, 1327, + 3016, 51046, 51046, 51046, 347, -1000, -1000, 1312, -1000, 309, + -19, 596, 1287, 3178, 3457, -120, 51046, 51046, 51046, 51046, + 3332, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 45942, + 905, -1000, 3009, 1748, -1000, -1000, 1704, 1704, 2552, 51046, + 51046, 51046, 3177, 51046, 51046, 3443, 3443, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1889, 3443, 3443, 1614, 1871, 1889, + -1000, -1000, 1889, -340, -1000, 1889, -1000, -340, 1620, -340, + 51046, -1000, -1000, -1000, 3329, 2975, 1472, -1000, -1000, -1000, + 3434, 1509, 869, 869, 1170, 763, 3433, 19772, -1000, 1782, + 1304, 931, 3274, 407, -1000, 1782, -145, 853, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 787, 771, 1782, 1782, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1128, 1782, + 1782, 1782, 1782, 1782, -1000, 1782, 3007, 562, -1000, -1000, + -1000, -1000, -1000, -1000, 799, 726, 329, 3365, 445, -1000, + 513, 1312, 369, 3361, 472, 51046, 51046, 3633, 1412, -1000, + -1000, -1000, -1000, -1000, 29992, 29992, 23612, 29992, -1000, 219, + 1818, 46, 99, -1000, -1000, 1471, 6926, 1471, 6926, 2243, + -1000, -1000, 929, -1000, -1000, 1287, -1000, 51046, 51046, -1000, + -1000, 3004, 1910, -1000, -1000, 17210, -1000, 6926, 6926, -1000, + -1000, 31906, 51046, -1000, -7, -1000, 15, 3305, -1000, 1252, + -1000, -1000, 1469, 1287, 3187, 51046, 1252, 1252, 1252, -1000, + -1000, 18496, 51046, 51046, -1000, -1000, -1000, -1000, 3443, 10140, + -1000, 38924, -1000, -1000, 45304, -1000, 44666, 1939, -1000, 15924, + 2196, 203, -1000, 291, -304, 202, 2142, 201, 2552, -1000, + -1000, 2745, 2743, 1743, -1000, 1725, 2742, 1717, 1716, 2234, + -1000, 73, -1000, 3294, 1293, -1000, 3003, -1000, 1715, 3244, + -1000, 1463, -1000, 1909, 1710, -1000, -1000, 3186, -1000, 12069, + 44028, 12069, 1061, 1293, 1709, 3243, 1463, -1000, 3305, 2605, + -1000, 1458, -1000, 2291, 1612, 258, -1000, -1000, -1000, 51046, + 2599, 1705, 43390, 1351, -1000, 924, 1609, 1601, -1000, 41476, + 396, 41476, -1000, 41476, -1000, -1000, 415, -1000, 51046, 3304, + -1000, -1000, -1000, 2557, 1908, -338, 51046, -1000, -1000, -1000, + -1000, -1000, 1700, -1000, 974, 974, 4331, 4175, -1000, 14633, + -1000, 14633, 3094, -1000, 1938, -1000, 12069, 2170, 5088, 12069, + 5088, 2084, 28078, 35734, -103, 3300, 3056, 51046, -1000, -1000, + 12069, 12069, -1000, 3032, -1000, -1000, -1000, -1000, 12069, 12069, + 2482, -1000, 51046, -1000, -1000, -1000, -1000, 28078, -1000, 14633, + -1000, -1000, -1000, -1000, 12069, 1495, 1495, 2970, 1695, 149, + 149, 149, 2961, 2954, 2919, 1694, 149, 2911, 2901, 2897, + 2888, 2839, 2835, 2825, 2821, 2790, 2770, 1693, -1000, 2997, + -1000, -1000, 2090, 13351, 9499, -1000, -1000, 335, 1420, 2233, + 2595, 144, -1000, 1907, -1000, 2594, 51046, 51046, 1181, -1000, + 51046, 3456, -1000, -1000, -1000, -1000, 1088, -1000, 2593, -1000, + 285, 247, 2123, 366, 2739, 1400, -1000, -1000, 51046, -1000, + -1000, -1000, 18496, 2975, 2996, 2975, 217, 1782, 696, 41476, + 806, -1000, 51046, 2087, 1898, 3185, 819, 3287, 51046, 2986, + 433, 2980, 2979, 3328, 571, 5224, 51046, 1332, -1000, 1586, + 3454, 4141, -1000, 51046, -1000, -1000, 51046, -1000, 2304, -1000, + 1871, -1000, -1000, 3443, -1000, -1000, 12069, 12069, 3443, 1871, + 1871, -1000, 1889, -1000, 51046, -1000, -340, 571, 5224, 3326, + 4705, 729, 2724, -1000, 51046, -1000, -1000, -1000, 920, -1000, + 1089, 895, 51046, 2012, 1089, 2010, 2978, -1000, -1000, 51046, + 51046, 51046, 51046, -1000, -1000, 51046, -1000, 51046, 51046, 51046, + 51046, 51046, 42752, -1000, 51046, 51046, -1000, 51046, 2007, 51046, + 2006, 3306, -1000, 1782, 1782, 1041, -1000, -1000, 687, -1000, + 42752, 2230, 2226, 2224, 2221, 2592, 2589, 2588, 1782, 1782, + 2219, 2586, 42114, 2582, 1417, 2218, 2199, 2198, 2193, 2581, + 1070, -1000, 2579, 2192, 2174, 2158, 51046, 2977, 2486, 585, + -1000, -1000, 2123, 217, 1782, 436, 51046, 1897, 1896, 696, + 650, 595, -20, 24888, -1000, -1000, -1000, 51046, 38924, 38924, + 38924, 38924, 38924, 38924, -1000, 3219, 3203, 2976, -1000, 3215, + 3211, 3228, 3218, 2960, 51046, 38924, 2975, -1000, 42114, -1000, + -1000, -1000, 1549, 1685, 3160, 1123, 12069, 6926, -1000, -1000, + 24, 23, -1000, -1000, -1000, -1000, 41476, 2567, 631, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 3394, 51046, 51046, 901, + 2738, 1394, -1000, -1000, -1000, 5224, 2959, 2959, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2959, 2959, 2974, + -1000, -1000, 2958, 2958, 2958, 2957, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2963, 2963, 2965, 2965, + 2963, -1000, -1000, 3439, -1000, 1393, -1000, -1000, 1582, -1000, + 1952, -327, 15924, 1941, 1783, -1000, 12069, 15924, 12069, -242, + 421, -244, -1000, -1000, -1000, 2566, -1000, -1000, -1000, 2194, + -1000, 2190, -1000, 228, 264, 2005, -216, 9499, 468, 51046, + -216, 51046, 9499, -1000, 51046, -1000, 169, -349, -351, 165, + 2564, 447, -216, 3394, 73, 12069, 3277, -1000, -1000, 51046, + 2187, -1000, -1000, -1000, 3453, 41476, 2304, 1739, 40838, -1000, + 386, -1000, 268, 649, 2562, -1000, 953, 142, 2561, 2557, + -1000, -1000, -1000, -1000, 14633, 1704, -1000, -1000, -1000, 2552, + 12069, 2736, -1000, 1075, 1075, 2297, 2735, 2734, -1000, 2959, + 2959, -1000, 2957, 2958, 2957, 1075, 1075, 2733, -1000, 2956, + -1000, 3300, -1000, 2275, 2700, -1000, 2638, 2578, 12069, -1000, + 2721, 4301, 1528, -34, -175, 149, 149, -1000, -1000, -1000, + -1000, 149, 149, 149, 149, -1000, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 847, -86, -265, + -114, -266, -1000, 2720, 1392, -1000, -1000, -1000, -1000, -1000, + 3831, 1389, 616, 616, 2557, 2556, -1000, 911, 2555, 1125, + 51046, 2553, -278, -1000, 2551, -1000, -1000, 51046, 51046, 51046, + 51684, 722, 51046, 51046, 2544, -1000, 2543, 2535, 1327, 5224, + 2717, 3322, 19134, 3310, 2302, -1000, -1000, -1000, 31268, 650, + -1000, -1000, -1000, 846, 424, 2180, 645, -1000, 51046, 636, + 3264, 1862, 2533, 51046, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 3287, -1000, 1122, 537, 37648, 16572, -1000, 434, + 51046, -1000, 19134, 19134, 434, 541, 1867, -1000, 845, 1241, + 152, 38924, 51046, -1000, 38286, 51046, 2715, -1000, -1000, 1287, + 3443, -1000, 2552, 2552, -340, 3443, 3443, 1871, -1000, -1000, + 541, -1000, 434, -1000, 1536, 20410, 679, 559, 521, -1000, + 748, -1000, -1000, 844, 3273, 5224, -1000, 51046, -1000, 51046, + -1000, 51046, 51046, 895, 12069, 3273, 51046, 907, -1000, 1196, + 560, 508, 903, 903, 1382, -1000, 3300, -1000, -1000, 1355, + -1000, -1000, -1000, -1000, 51046, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 28078, 28078, 3359, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2532, 2527, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 49486, 1675, -1000, 1849, 2180, - 2505, 2184, 29708, 1845, 1717, 2483, 2474, 625, -1000, 2473, - 2471, 2147, 1844, 950, 49486, -1000, 1239, 49486, 49486, -1000, - 1361, -1000, 1842, 3207, 3237, 3207, -1000, 3207, -1000, -1000, - -1000, -1000, 3276, 2470, -1000, 3266, -1000, 3263, -1000, -1000, - -1000, -1000, 1361, -1000, -1000, -1000, -1000, -1000, 1080, -1000, - 3468, 1086, 1086, 1086, 2784, -1000, -1000, -1000, -1000, 1365, - 2774, -1000, -1000, -1000, 3569, -1000, -1000, -1000, -1000, -1000, - -1000, 17574, 3355, 3519, 3521, 38640, -1000, -347, 1931, -1000, - 1984, 186, 1921, 49486, -1000, -1000, -1000, 2768, 2767, -233, - 222, 3517, 3516, 1118, -1000, 2761, 1343, -223, -1000, -1000, - 1280, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -380, -223, - -1000, 1280, -1000, 201, -1000, -1000, 3372, -1000, -1000, 2358, - -1000, 256, -1000, -1000, -1000, -1000, -1000, -1000, 247, -1000, - 49486, -1000, 1338, 117, -1000, 2743, -1000, -1000, -1000, -1000, - -1000, 4950, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2466, -1000, -1000, 11147, -1000, -1000, -1000, 2366, - -1000, -1000, 11147, 2745, 2463, 2731, 2461, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 3575, -1000, 3515, 1674, 2730, 2727, - 1670, 2726, 2725, -1000, 11147, 2723, 54789, 1026, 2458, 1026, - -1000, -1000, 433, 29070, 49486, 3542, -1000, 49486, 2457, -1000, - -1000, 49486, 2084, 665, 2084, 684, 49486, -1000, -1000, -1000, - -1000, -1000, 966, 430, 2720, 1289, -1000, -1000, -1000, -1000, - 430, -1000, 2456, 286, -1000, -1000, -1000, -1000, 2174, -1000, - -1000, 2137, 1364, 298, -1000, -1000, -1000, -1000, -1000, -1000, - 2111, 49486, 38002, 2160, 1840, -357, -1000, 2970, -1000, 1730, - 1730, 1730, 49486, 1668, -1000, 1730, 1730, 2713, -1000, -1000, - 2710, 2707, -133, 856, 1847, 1841, -1000, 2171, 28432, 37364, - 36726, 1317, -1000, 1552, -1000, -1000, -1000, -1000, -1000, -1000, - 3538, 856, -1000, 579, 2145, 13711, 2965, 13711, 2963, 604, - 2962, 1664, -1000, 49486, -1000, -1000, 49486, 4004, 2959, -1000, - 2957, 3213, 562, 2956, 2951, 49486, 2308, -1000, 3352, 49486, - 813, 3346, -1000, -1000, -1000, 479, -1000, -1000, -1000, 683, - -1000, 49486, -1000, 49486, -1000, 1589, -1000, 26518, -1000, -1000, - 1633, -1000, 2448, 2447, 54789, -1000, -1000, 286, 2434, 6004, - -1000, -1000, -1000, -1000, -1000, 3323, 2430, 2111, 49486, -1000, - 49486, 1239, 1239, 3575, 49486, 8577, -1000, -1000, 11147, 2948, - -1000, 11147, -1000, -1000, -1000, 2706, -1000, -1000, -1000, -1000, - -1000, 2945, 3344, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1672, -1000, 11147, 11788, -1000, 876, 15002, -261, 390, -1000, - -1000, -1000, -235, 2429, -1000, -1000, 3513, 2427, 2288, 49486, - -1000, -1000, 1280, -1000, 1280, -233, -1000, -1000, 1277, -1000, - -1000, 1147, 746, -1000, 2692, 275, -1000, 2302, -1000, 2276, - 143, -1000, 143, -1000, 276, 11147, -1000, 2423, -1000, -1000, - -1000, 2422, -1000, -1000, 2178, -1000, 2677, -1000, 2421, -1000, - -1000, 49486, -1000, -1000, 1109, 2413, -358, -1000, 2411, 2084, - 2402, 2084, 49486, 663, 54442, -140, -133, 18212, -140, -1000, - -1000, 397, 428, -1000, -1000, 2122, 676, -1000, -1000, 2401, - 653, -1000, 1239, -1000, 1836, 2031, 2341, 34174, 26518, 27794, - 2400, -1000, -1000, 36088, 1672, 1672, 4307, 341, 54893, -1000, - 2944, 1141, 1839, -1000, 2140, -1000, 2136, -1000, 3538, 1317, - 126, -1000, -1000, 1658, -1000, 1141, 2607, 3512, -1000, 3159, - 49486, 3109, 49486, 2943, 1833, 13711, -1000, 836, 3300, -1000, - -1000, 4004, -1000, -1000, 2023, 13711, -1000, -1000, 2394, 27794, - 976, 1810, 1808, 1020, 2942, -1000, 688, 3566, -1000, -1000, - -1000, 1004, 2941, -1000, 2006, 1998, -1000, 49486, -1000, 34174, - 34174, 797, 797, 34174, 34174, 2940, 858, -1000, -1000, 13711, - -1000, -1000, 1730, -1000, -1000, -1000, 1730, 1559, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 2160, -1000, -1000, 1235, -1000, - 3487, -1000, -1000, 2743, 49486, 2743, -1000, 35450, -1000, 3510, - 3509, -1000, 2743, 252, 255, 2937, 2936, -1000, -347, 49486, - 49486, -237, 2135, -1000, 2392, 212, -1000, -1000, 1226, -235, - -239, 90, 26518, 1784, -1000, 2671, 360, -145, -1000, -1000, - -1000, -1000, 2670, -1000, 701, -1000, -1000, -1000, 1221, 2665, - 2664, -1000, -1000, -1000, -1000, 49486, -1000, 2334, -1000, 2386, - -1000, 2385, 655, 2084, -120, -1000, -1000, 410, -1000, -1000, - -1000, 649, 2265, -1000, -1000, 424, -1000, -1000, -1000, 2111, - 2384, -1000, -1000, 109, -1000, 1751, 1588, -1000, -1000, -1000, - -1000, -1000, -1000, 819, -1000, 430, 54834, -1000, 1362, 27156, - -1000, 1147, 819, 542, 32898, 702, 306, -1000, 2110, -1000, - -1000, 3575, -1000, 697, -1000, 597, -1000, 1581, -1000, 1557, - 34812, 2108, 3009, -1000, 54673, 970, -1000, -1000, 3518, -1000, - -1000, -1000, -1000, -1000, -1000, 2382, 2376, -1000, -1000, -1000, - -1000, -1000, 2098, 2931, 42, 3433, 2375, -1000, -1000, 2929, - 1556, 1514, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1513, 1506, 34174, -1000, -1000, 3518, 2090, 26518, - 1730, -1000, -1000, 1503, 1493, -1000, -1000, -1000, -1000, -1000, - -318, 2926, 11147, 11147, -1000, -1000, -1000, 2922, -1000, -1000, - 3505, -237, -248, 2374, 200, 242, -1000, 2370, -1000, -125, - 3294, -151, -1000, -1000, 969, -224, 138, 127, 111, -1000, - -1000, -1000, 11147, -1000, -1000, -1000, 107, -1000, 1743, -1000, - -1000, 2084, 2353, 49486, 678, -1000, -1000, -1000, -1000, 213, - -1000, -1000, -1000, -1000, -1000, -1000, 2341, 2340, -1000, 571, - 3498, -1000, 54893, -1000, 1730, -1000, 571, 1480, -1000, 1730, - 1730, -1000, 508, -1000, 1832, -1000, 2078, -1000, 3487, -1000, - 506, -1000, 577, -1000, -1000, -1000, 1476, -1000, -1000, -1000, - 54673, 585, -1000, 800, 2921, -1000, -1000, 2662, 11147, 2919, - 1730, 2656, -113, 34174, 3212, 3211, 3209, 3111, 1454, -1000, - -1000, 26518, -1000, -1000, 33536, -1000, 2908, 1446, 1412, 49486, - 2288, -1000, -1000, 2335, -1000, 901, 189, 242, -1000, 3496, - 192, 3494, 3493, 1218, 3293, -1000, -1000, 1971, -1000, 172, - 162, 154, -1000, -1000, -1000, -1000, -1000, 2334, 2328, 2307, - -1000, 588, -1000, 344, -1000, -1000, -1000, 330, -1000, 3492, - 608, -1000, 26518, -1000, -1000, 32898, 1672, 1672, -1000, -1000, - 2073, -1000, -1000, -1000, -1000, 2071, -1000, -1000, -1000, 1402, - -1000, 49486, 1031, 7936, -1000, 2144, -1000, 49486, -1000, 3234, - -1000, 274, 1388, 330, 797, 330, 797, 330, 797, 330, - 797, 352, -1000, -1000, -1000, 1328, 11147, -1000, -1000, 1311, - -1000, -1000, -1000, 2891, 2068, 222, 178, 3491, -1000, 2288, - 3490, 2288, 2288, -1000, 169, -141, 969, -1000, -1000, -1000, - -1000, -1000, -1000, 2306, -1000, -1000, -1000, -1000, 1730, 1730, - 2305, 2292, 498, -1000, -1000, 1730, 1730, 1730, 1730, 32260, - 594, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 585, 54893, - -1000, 7936, 1309, -1000, 2743, -1000, 858, -1000, -1000, 3233, - 3012, 3547, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2719, 2654, -1000, 49486, 3414, 25880, 182, -1000, - -1000, -1000, 2289, -1000, 2288, -1000, -1000, 1729, -149, -1000, - -277, 2064, 2055, -1000, -1000, 49486, 2051, 2035, 2032, 2277, - -1000, 49486, 579, -1000, 54893, 1306, -1000, 7936, -1000, -1000, - 3565, -1000, 3563, 1008, 1008, 330, 330, 330, 330, 11147, - -1000, -1000, -1000, 49486, -1000, 1297, -1000, -1000, -1000, 1551, - -1000, -1000, -1000, -1000, 2273, -153, -1000, -1000, 2272, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1225, 2607, -1000, -1000, - -1000, -1000, -1000, 2123, 693, -1000, 2653, 1183, -1000, 1693, - -1000, 31622, 49486, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 49486, 7295, -1000, 1533, -1000, -1000, 2743, 49486, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 51046, + 1671, -1000, 1857, 2179, 2525, 2302, 31268, 1856, 1818, 2518, + 2517, 650, -1000, 2512, 2510, 2087, 1855, 951, 51046, -1000, + 1270, 51046, 51046, -1000, 1387, -1000, 1854, 3175, 3184, 3175, + -1000, 3175, -1000, -1000, -1000, -1000, 3205, 2509, -1000, 3204, + -1000, 2842, -1000, -1000, -1000, -1000, 1387, -1000, -1000, -1000, + -1000, -1000, 1123, -1000, 3393, 1089, 1089, 1089, 2714, -1000, + -1000, -1000, -1000, 1351, 2709, -1000, -1000, -1000, 3472, -1000, + -1000, -1000, -1000, -1000, -1000, 18496, 3286, 3437, 3432, 40200, + -1000, -327, 1811, -1000, 2130, 196, 2021, 51046, -1000, -1000, + -1000, 2708, 2705, -225, 222, 3431, 3430, 1139, -1000, 2699, + 1344, -216, -1000, -1000, 1293, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -354, -216, -1000, 1293, -1000, 228, -1000, -1000, + 3278, -1000, -1000, 2304, -1000, 265, -1000, -1000, -1000, -1000, + -1000, -1000, 292, -1000, 51046, -1000, 1333, 140, -1000, 2552, + -1000, -1000, -1000, -1000, -1000, 5088, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2501, -1000, -1000, 12069, + -1000, -1000, -1000, 2547, -1000, -1000, 12069, 2697, 2500, 2696, + 2497, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3478, -1000, + 3427, 1666, 2695, 2693, 1665, 2691, 2689, -1000, 12069, 2688, + 3831, 1052, 2493, 1052, -1000, -1000, 469, 30630, 51046, 3445, + -1000, 51046, 2488, -1000, -1000, 51046, 2123, 714, 2123, 762, + 51046, -1000, -1000, -1000, -1000, -1000, 933, 434, 2687, 1324, + -1000, -1000, -1000, -1000, 434, -1000, 2487, 304, -1000, -1000, + -1000, -1000, 2160, -1000, -1000, 2113, 1511, 319, -1000, -1000, + -1000, -1000, -1000, -1000, 2202, 51046, 39562, 2207, 1830, -342, + -1000, 2952, -1000, 1782, 1782, 1782, 51046, 1653, -1000, 1782, + 1782, 2685, -1000, -1000, 2679, 2677, -122, 843, 1810, 1802, + -1000, 2152, 29992, 38924, 38286, 1345, -1000, 1579, -1000, 845, + -1000, -1000, -1000, -1000, -1000, 3443, 843, -1000, 634, 2148, + 14633, 2951, 14633, 2946, 691, 2945, 1646, -1000, 51046, -1000, + -1000, 51046, 3998, 2944, -1000, 2938, 3176, 615, 2936, 2935, + 51046, 2524, -1000, 3273, 51046, 829, 3285, -1000, -1000, -1000, + 483, -1000, -1000, -1000, 738, -1000, 51046, -1000, 51046, -1000, + 1669, -1000, 28078, -1000, -1000, 1638, -1000, 2486, 2473, 3831, + -1000, -1000, 304, 2459, 6926, -1000, -1000, -1000, -1000, -1000, + 3264, 2458, 2202, 51046, -1000, 51046, 1270, 1270, 3478, 51046, + 9499, -1000, -1000, 12069, 2922, -1000, 12069, -1000, -1000, -1000, + 2676, -1000, -1000, -1000, -1000, -1000, 2913, 3291, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1735, -1000, 12069, 12710, -1000, + 878, 15924, -245, 416, -1000, -1000, -1000, -228, 2457, -1000, + -1000, 3426, 2455, 2338, 51046, -1000, -1000, 1293, -1000, 1293, + -225, -1000, -1000, 1287, -1000, -1000, 1178, 792, -1000, 2674, + 286, -1000, 2516, -1000, 2499, 149, -1000, 149, -1000, 259, + 12069, -1000, 2453, -1000, -1000, -1000, 2451, -1000, -1000, 2375, + -1000, 2673, -1000, 2450, -1000, -1000, 51046, -1000, -1000, 1124, + 2446, -343, -1000, 2425, 2123, 2424, 2123, 51046, 713, 5224, + -124, -122, 19134, -124, -1000, -1000, 408, 458, -1000, -1000, + 2107, 721, -1000, -1000, 2423, 671, -1000, 1270, -1000, 1827, + 2020, 2380, 35734, 28078, 29354, 2416, -1000, -1000, 37648, 1735, + 1735, 5458, 398, 5751, -1000, 2895, 1140, 1799, -1000, 2147, + -1000, 2140, -1000, 3443, 1345, 148, -1000, -1000, 1720, 29992, + -1000, 1140, 2724, 3425, -1000, 4282, 51046, 4119, 51046, 2893, + 1821, 14633, -1000, 844, 3232, -1000, -1000, 3998, -1000, -1000, + 2024, 14633, -1000, -1000, 2414, 29354, 1103, 1819, 1815, 1116, + 2892, -1000, 741, 3470, -1000, -1000, -1000, 1017, 2890, -1000, + 1998, 1997, -1000, 51046, -1000, 35734, 35734, 842, 842, 35734, + 35734, 2887, 903, -1000, -1000, 14633, -1000, -1000, 1782, -1000, + -1000, -1000, 1782, 1592, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2207, -1000, -1000, 1252, -1000, 3408, -1000, -1000, 2552, + 51046, 2552, -1000, 37010, -1000, 3424, 3423, -1000, 2552, 263, + 262, 2878, 2873, -1000, -327, 51046, 51046, -230, 2139, -1000, + 2411, 237, -1000, -1000, 1180, -228, -232, 126, 28078, 1814, + -1000, 2671, 378, -138, -1000, -1000, -1000, -1000, 2664, -1000, + 927, -1000, -1000, -1000, 1164, 2661, 2659, -1000, -1000, -1000, + -1000, 51046, -1000, 2372, -1000, 2410, -1000, 2406, 708, 2123, + -110, -1000, -1000, 478, -1000, -1000, -1000, 662, 2334, -1000, + -1000, 450, -1000, -1000, -1000, 2202, 2404, -1000, -1000, 139, + -1000, 1800, 1625, -1000, -1000, -1000, -1000, -1000, -1000, 839, + -1000, 434, 56116, -1000, 1304, 28716, -1000, 1178, 839, 562, + 34458, 719, 317, -1000, 2137, -1000, -1000, 3478, -1000, 3443, + 707, -1000, 686, -1000, 1595, -1000, 1588, 36372, 2134, 4087, + -1000, 5713, 969, -1000, -1000, 4331, -1000, -1000, -1000, -1000, + -1000, -1000, 2403, 2394, -1000, -1000, -1000, -1000, -1000, 2125, + 2860, 131, 3357, 2393, -1000, -1000, 2858, 1584, 1575, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1551, + 1516, 35734, -1000, -1000, 4331, 2124, 28078, 1782, -1000, -1000, + 1510, 1487, -1000, -1000, -1000, -1000, -1000, -307, 2857, 12069, + 12069, -1000, -1000, -1000, 2841, -1000, -1000, 3420, -230, -234, + 2390, 227, 260, -1000, 2388, -1000, -111, 3237, -141, -1000, + -1000, 970, -217, 198, 197, 156, -1000, -1000, -1000, 12069, + -1000, -1000, -1000, 137, -1000, 1788, -1000, -1000, 2123, 2386, + 51046, 740, -1000, -1000, -1000, -1000, 283, -1000, -1000, -1000, + -1000, -1000, -1000, 2380, 2378, -1000, 618, 3419, -1000, 5751, + -1000, 1782, -1000, 618, 1486, -1000, 1782, 1782, -1000, 561, + -1000, 1787, -1000, 2112, -1000, 3408, 3478, -1000, 552, -1000, + 625, -1000, -1000, -1000, 1475, -1000, -1000, -1000, 5713, 672, + -1000, 832, 2832, -1000, -1000, 2658, 12069, 2831, 1782, 2657, + -100, 35734, 3162, 2903, 2899, 2837, 1457, -1000, -1000, 28078, + -1000, -1000, 35096, -1000, 2828, 1456, 1450, 51046, 2338, -1000, + -1000, 2374, -1000, 898, 211, 260, -1000, 3418, 232, 3415, + 3414, 1161, 3226, -1000, -1000, 1980, -1000, 192, 189, 166, + -1000, -1000, -1000, -1000, -1000, 2372, 2371, 2367, -1000, 630, + -1000, 381, -1000, -1000, -1000, 338, -1000, 3413, 729, -1000, + 28078, -1000, -1000, 34458, 1735, 1735, -1000, -1000, 2110, -1000, + -1000, 3408, -1000, -1000, 2104, -1000, -1000, -1000, 1435, -1000, + 51046, 1024, 8858, -1000, 2360, -1000, 51046, -1000, 3183, -1000, + 336, 1410, 338, 842, 338, 842, 338, 842, 338, 842, + 376, -1000, -1000, -1000, 1403, 12069, -1000, -1000, 1381, -1000, + -1000, -1000, 2827, 2099, 222, 220, 3412, -1000, 2338, 3411, + 2338, 2338, -1000, 146, -128, 970, -1000, -1000, -1000, -1000, + -1000, -1000, 2362, -1000, -1000, -1000, -1000, 1782, 1782, 2343, + 2342, 525, -1000, -1000, 1782, 1782, 1782, 1782, 33820, 679, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 672, 5751, + -1000, 8858, 1373, -1000, 2552, -1000, 903, -1000, -1000, 3182, + 2964, 3451, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 2824, 2649, -1000, 51046, 3348, 27440, 215, -1000, + -1000, -1000, 2339, -1000, 2338, -1000, -1000, 1772, -139, -1000, + -263, 2096, 2095, -1000, -1000, 51046, 2066, 2046, 2037, 2332, + -1000, 51046, 634, -1000, 5751, 1336, -1000, 8858, -1000, -1000, + 3469, -1000, 3464, 1039, 1039, 338, 338, 338, 338, 12069, + -1000, -1000, -1000, 51046, -1000, 1258, -1000, -1000, -1000, 1559, + -1000, -1000, -1000, -1000, 2311, -142, -1000, -1000, 2307, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1229, 2724, -1000, -1000, + -1000, -1000, -1000, 2101, 749, -1000, 2521, 1158, -1000, 1759, + -1000, 33182, 51046, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 51046, 8217, -1000, 1350, -1000, -1000, 2552, 51046, -1000, } var yyPgo = [...]int{ - 0, 181, 3594, 241, 179, 4264, 84, 248, 333, 245, - 244, 243, 4263, 4262, 4261, 3361, 3358, 4260, 4256, 4255, - 4254, 4253, 4252, 4251, 4250, 4248, 4247, 4246, 4245, 4240, - 4239, 4238, 4237, 4236, 4235, 4234, 4233, 4232, 4231, 4230, - 4229, 4225, 4224, 4223, 4222, 4221, 4220, 242, 4219, 4218, - 4217, 4216, 4215, 4214, 4213, 4212, 4209, 4208, 4205, 4204, - 4203, 4201, 4200, 4199, 4198, 4197, 4196, 4195, 4194, 4193, - 4192, 4191, 4190, 4189, 4188, 4186, 4184, 4183, 4181, 4180, - 4178, 4177, 4176, 4175, 4174, 208, 4173, 3356, 4172, 4171, - 4170, 4169, 4167, 4166, 4165, 4162, 4161, 4160, 4158, 296, - 4156, 4155, 4154, 4153, 4152, 4151, 4150, 4149, 4148, 4147, - 4145, 4144, 4143, 262, 4142, 4137, 4136, 4135, 215, 4121, - 253, 4119, 174, 140, 4118, 4110, 4109, 4108, 4107, 4104, - 4101, 4099, 4098, 4097, 4096, 4095, 4092, 4091, 238, 191, - 70, 4089, 47, 4088, 4086, 216, 4085, 155, 4083, 152, - 4082, 4081, 4067, 4066, 4064, 4063, 4061, 4060, 4059, 4058, - 4053, 4052, 4051, 4050, 4049, 4048, 4047, 4044, 4043, 4041, - 4038, 4037, 4035, 4034, 50, 4033, 260, 4032, 79, 4031, - 182, 4030, 75, 4029, 45, 137, 258, 1081, 264, 4028, - 188, 4027, 4022, 249, 171, 4020, 4019, 286, 4017, 164, - 222, 163, 103, 120, 4013, 145, 4007, 272, 48, 49, - 251, 150, 4006, 4005, 58, 165, 135, 4004, 212, 100, - 115, 4003, 4002, 148, 3999, 235, 173, 3998, 108, 3997, - 3996, 3995, 3994, 3979, 198, 192, 3977, 3975, 133, 3974, - 3973, 64, 130, 3972, 77, 129, 176, 125, 3968, 2312, - 126, 128, 3965, 123, 106, 3963, 97, 3962, 3961, 3960, - 3956, 184, 3954, 3952, 141, 61, 3950, 3949, 3948, 68, - 3947, 83, 3946, 31, 3944, 57, 3943, 3942, 3941, 3939, - 3938, 3937, 3936, 3935, 3934, 3933, 3932, 3931, 55, 3930, - 3926, 3925, 3923, 7, 11, 15, 3921, 27, 3917, 178, - 3916, 3915, 169, 3914, 197, 3911, 3909, 98, 90, 3907, - 92, 167, 3905, 10, 33, 69, 3904, 3903, 3902, 331, - 3901, 3900, 3899, 266, 3898, 3897, 3895, 168, 3891, 3890, - 3886, 653, 3885, 3884, 3883, 3882, 3880, 3879, 104, 3876, - 1, 214, 43, 3875, 134, 138, 3872, 39, 32, 3870, - 51, 113, 200, 136, 102, 3869, 3868, 3867, 557, 196, - 105, 29, 0, 101, 220, 158, 3864, 3863, 3862, 252, - 3861, 230, 221, 231, 886, 256, 211, 3860, 3859, 62, - 3857, 162, 30, 54, 159, 81, 21, 240, 3855, 853, - 9, 177, 3849, 203, 3848, 8, 18, 144, 156, 3847, - 3846, 36, 268, 3844, 3843, 3841, 131, 3840, 3839, 300, - 82, 3838, 3837, 3836, 3833, 40, 3832, 189, 16, 3830, - 109, 3829, 239, 3828, 201, 146, 185, 183, 157, 218, - 229, 78, 85, 3827, 1814, 160, 112, 17, 3825, 219, - 3824, 224, 132, 3817, 89, 3815, 247, 259, 207, 3809, - 186, 12, 52, 38, 28, 42, 13, 323, 204, 3802, - 3799, 24, 53, 3798, 59, 3782, 20, 3781, 3780, 44, - 3773, 60, 5, 3769, 3766, 19, 22, 3763, 35, 205, - 190, 124, 99, 67, 3762, 3761, 147, 250, 3760, 142, - 154, 161, 3759, 80, 3758, 3757, 3756, 3754, 2731, 254, - 3753, 3752, 3748, 3747, 3746, 3744, 3743, 3742, 213, 3739, - 116, 41, 3738, 3737, 3735, 3733, 94, 151, 3731, 3729, - 3728, 3727, 34, 143, 3726, 14, 3725, 25, 23, 37, - 3724, 107, 3723, 3, 187, 3722, 3721, 4, 3719, 3717, - 2, 3713, 3712, 121, 3711, 93, 26, 172, 118, 3709, - 3707, 91, 210, 149, 3706, 3704, 88, 236, 202, 3702, - 95, 232, 257, 3701, 209, 3698, 3696, 3695, 3694, 3693, - 1236, 3690, 3689, 233, 74, 96, 3688, 217, 122, 3687, - 3686, 87, 166, 119, 114, 56, 86, 3681, 111, 206, - 3656, 195, 3654, 255, 3653, 3652, 110, 3651, 3647, 3646, - 3645, 193, 3644, 3643, 194, 226, 3636, 3634, 265, 3620, - 3615, 3610, 3609, 3608, 3607, 3604, 3603, 3598, 3597, 237, - 486, 3596, + 0, 185, 3501, 256, 189, 4133, 78, 267, 272, 246, + 261, 255, 4132, 4131, 4128, 3304, 3301, 4127, 4124, 4121, + 4120, 4119, 4118, 4117, 4114, 4109, 4108, 4107, 4106, 4104, + 4103, 4102, 4101, 4100, 4099, 4098, 4097, 4096, 4095, 4093, + 4092, 4091, 4090, 4089, 4087, 4086, 4084, 254, 4082, 4079, + 4077, 4076, 4072, 4071, 4070, 4069, 4061, 4057, 4055, 4054, + 4053, 4052, 4051, 4050, 4049, 4047, 4046, 4044, 4043, 4042, + 4039, 4034, 4033, 4031, 4030, 4026, 4024, 4023, 4022, 4021, + 4018, 4017, 4016, 4015, 4011, 226, 4005, 3290, 4004, 4003, + 4001, 4000, 3996, 3994, 3993, 3992, 3988, 3987, 3983, 253, + 3981, 3977, 3976, 3974, 3972, 3968, 3967, 3966, 3965, 3963, + 3962, 3961, 3960, 292, 3957, 3956, 3955, 3954, 214, 3952, + 278, 3949, 179, 144, 3948, 3947, 3946, 3944, 3943, 3938, + 3936, 3935, 3934, 3933, 3932, 3930, 3929, 3927, 251, 196, + 62, 3925, 50, 3924, 3923, 221, 3922, 155, 3921, 152, + 3920, 3919, 3918, 3917, 3916, 3915, 3913, 3912, 3909, 3908, + 3906, 3905, 3904, 3903, 3902, 3901, 3900, 3898, 3893, 3888, + 3887, 3886, 3885, 3884, 54, 3883, 266, 3881, 79, 3878, + 175, 3873, 75, 3872, 88, 122, 271, 3073, 263, 3871, + 194, 3870, 3869, 265, 177, 3867, 3866, 276, 3865, 188, + 231, 167, 113, 112, 3864, 140, 3861, 273, 47, 29, + 250, 150, 3859, 3858, 55, 206, 119, 3857, 220, 104, + 109, 3856, 3853, 148, 3851, 235, 178, 3850, 107, 3849, + 3847, 3846, 3845, 3844, 202, 197, 3843, 3841, 130, 3839, + 3838, 67, 128, 3836, 77, 125, 171, 120, 3835, 636, + 121, 97, 3834, 123, 105, 3833, 81, 3832, 3831, 3829, + 3828, 182, 3827, 3826, 134, 60, 3825, 3824, 3823, 70, + 3821, 82, 3820, 34, 3817, 57, 3816, 3815, 3814, 3796, + 3795, 3794, 3792, 3790, 3788, 3786, 3785, 3784, 49, 3783, + 3782, 3780, 3778, 5, 14, 17, 3777, 28, 3774, 174, + 3773, 3772, 169, 3770, 200, 3769, 3768, 94, 95, 3767, + 100, 166, 3766, 9, 27, 74, 3765, 3760, 3759, 64, + 3758, 3757, 3756, 277, 3755, 3753, 3752, 164, 3751, 3749, + 3748, 633, 3747, 3746, 3745, 3743, 3742, 3740, 142, 3739, + 1, 219, 41, 3738, 124, 138, 3736, 38, 30, 3735, + 45, 114, 224, 129, 101, 3734, 3733, 3731, 141, 201, + 80, 39, 0, 99, 233, 161, 3730, 3729, 3728, 247, + 3726, 239, 252, 243, 346, 268, 213, 3724, 3723, 58, + 3722, 165, 24, 53, 132, 98, 21, 207, 3721, 1788, + 10, 183, 3720, 210, 3719, 8, 16, 262, 151, 3716, + 3715, 32, 269, 3711, 3698, 3697, 136, 3696, 3695, 186, + 83, 3693, 3692, 3691, 3689, 43, 3687, 181, 36, 3686, + 154, 3685, 257, 3684, 259, 137, 184, 176, 159, 222, + 232, 89, 87, 193, 1880, 158, 102, 15, 3683, 230, + 3682, 192, 162, 3680, 143, 3679, 236, 274, 211, 3678, + 187, 11, 48, 40, 33, 44, 12, 381, 205, 3677, + 3676, 22, 52, 3675, 69, 3674, 20, 3670, 3669, 51, + 3668, 61, 7, 3662, 3651, 19, 18, 3650, 37, 212, + 173, 126, 96, 59, 3646, 3643, 145, 135, 3640, 133, + 157, 163, 3637, 84, 3636, 3635, 3634, 3630, 1010, 241, + 3629, 3627, 3625, 3624, 3623, 3621, 3619, 3617, 218, 215, + 108, 42, 3616, 3615, 3614, 3613, 85, 149, 3611, 3609, + 3608, 3607, 31, 146, 3605, 13, 3604, 26, 23, 35, + 3603, 106, 3602, 3, 191, 3601, 3598, 4, 3597, 3595, + 2, 3594, 3593, 117, 3592, 103, 25, 172, 131, 3590, + 3589, 93, 217, 147, 3588, 3582, 92, 248, 204, 3581, + 156, 249, 260, 3578, 216, 3577, 3576, 3572, 3569, 3562, + 258, 3561, 244, 208, 68, 86, 3559, 229, 111, 3557, + 3556, 91, 168, 115, 110, 56, 90, 3552, 118, 209, + 3550, 203, 3547, 264, 3546, 3545, 116, 3542, 3539, 3538, + 3533, 195, 3532, 3530, 198, 237, 3529, 3528, 275, 3526, + 3525, 3519, 3518, 3511, 3509, 3507, 3505, 3496, 3493, 242, + 245, 3491, } -//line mysql_sql.y:12964 +//line mysql_sql.y:12998 type yySymType struct { union interface{} id int @@ -8926,123 +9051,123 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 26, 27, 29, 429, 429, 426, 28, 20, 19, 19, 23, 22, 18, 18, 21, 24, 25, 25, - 9, 9, 9, 9, 15, 15, 16, 194, 194, 250, - 250, 574, 574, 570, 570, 571, 571, 571, 572, 572, - 573, 573, 120, 509, 509, 509, 509, 509, 509, 8, - 8, 219, 219, 508, 508, 508, 508, 508, 508, 433, - 433, 433, 552, 552, 552, 553, 218, 218, 211, 211, - 510, 510, 398, 554, 554, 518, 518, 517, 517, 516, - 516, 216, 216, 217, 217, 197, 197, 139, 139, 523, - 523, 523, 523, 531, 531, 493, 493, 288, 288, 342, - 342, 343, 343, 184, 184, 185, 185, 185, 185, 185, - 185, 608, 608, 609, 610, 611, 611, 612, 612, 612, - 613, 613, 613, 613, 613, 560, 560, 562, 562, 561, - 215, 215, 209, 209, 210, 210, 210, 208, 208, 207, - 206, 206, 205, 203, 203, 203, 204, 204, 204, 223, - 223, 187, 187, 187, 186, 186, 186, 186, 186, 323, - 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - 323, 188, 191, 191, 192, 192, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 320, 320, 321, 321, - 321, 321, 321, 137, 137, 502, 502, 319, 319, 189, - 189, 190, 190, 190, 190, 318, 318, 317, 202, 202, - 201, 200, 200, 200, 195, 195, 195, 195, 195, 196, - 329, 329, 328, 328, 327, 327, 327, 327, 330, 123, - 136, 136, 138, 222, 222, 213, 212, 326, 325, 325, - 325, 325, 221, 221, 220, 220, 214, 214, 199, 199, - 199, 199, 324, 198, 322, 598, 598, 597, 597, 596, - 594, 594, 594, 595, 595, 595, 595, 544, 544, 544, - 544, 544, 360, 360, 360, 365, 365, 363, 363, 363, - 363, 363, 369, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 39, 233, 234, 40, 235, - 235, 236, 236, 237, 237, 238, 239, 240, 240, 240, - 240, 38, 225, 225, 226, 226, 227, 227, 228, 229, - 229, 229, 232, 230, 231, 231, 616, 616, 615, 37, - 37, 30, 175, 175, 176, 176, 176, 178, 178, 284, - 284, 284, 177, 177, 179, 179, 179, 575, 577, 577, - 579, 578, 578, 578, 581, 581, 581, 581, 581, 582, - 582, 582, 582, 583, 583, 31, 157, 157, 182, 182, - 162, 586, 586, 586, 585, 585, 587, 587, 588, 588, - 346, 346, 347, 347, 173, 174, 174, 164, 159, 181, - 181, 181, 181, 181, 183, 183, 252, 252, 158, 163, - 166, 168, 576, 584, 584, 584, 430, 430, 427, 428, - 428, 425, 424, 424, 424, 590, 590, 589, 589, 589, - 361, 361, 32, 420, 420, 422, 423, 423, 423, 414, - 414, 414, 414, 36, 418, 418, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 415, 415, 417, - 417, 413, 413, 413, 413, 413, 413, 413, 413, 35, - 180, 180, 412, 412, 409, 409, 407, 407, 408, 408, - 406, 406, 406, 410, 410, 43, 78, 44, 45, 46, - 42, 411, 411, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 141, 140, 140, 140, 140, 140, 143, - 143, 345, 345, 344, 344, 142, 285, 285, 41, 263, - 263, 485, 485, 480, 480, 480, 480, 480, 500, 500, - 500, 481, 481, 481, 482, 482, 482, 484, 484, 484, - 483, 483, 483, 483, 483, 499, 499, 501, 501, 501, - 452, 452, 453, 453, 453, 456, 456, 472, 472, 473, - 473, 471, 471, 478, 478, 477, 477, 476, 476, 475, - 475, 474, 474, 474, 474, 467, 467, 466, 466, 454, - 454, 454, 454, 454, 455, 455, 455, 465, 465, 470, - 470, 316, 316, 315, 315, 271, 271, 272, 272, 314, - 314, 269, 269, 270, 270, 270, 313, 313, 313, 313, + 9, 9, 9, 9, 15, 15, 15, 16, 194, 194, + 250, 250, 574, 574, 570, 570, 571, 571, 571, 572, + 572, 573, 573, 120, 120, 509, 509, 509, 509, 509, + 509, 8, 8, 8, 219, 219, 508, 508, 508, 508, + 508, 508, 433, 433, 433, 552, 552, 552, 553, 218, + 218, 211, 211, 510, 510, 398, 554, 554, 518, 518, + 517, 517, 516, 516, 216, 216, 217, 217, 197, 197, + 139, 139, 523, 523, 523, 523, 531, 531, 493, 493, + 288, 288, 342, 342, 343, 343, 184, 184, 185, 185, + 185, 185, 185, 185, 608, 608, 609, 610, 611, 611, + 612, 612, 612, 613, 613, 613, 613, 613, 560, 560, + 562, 562, 561, 215, 215, 209, 209, 210, 210, 210, + 208, 208, 207, 206, 206, 205, 203, 203, 203, 204, + 204, 204, 223, 223, 187, 187, 187, 186, 186, 186, + 186, 186, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 188, 191, 191, 192, 192, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 320, + 320, 321, 321, 321, 321, 321, 137, 137, 502, 502, + 319, 319, 189, 189, 190, 190, 190, 190, 318, 318, + 317, 202, 202, 201, 200, 200, 200, 195, 195, 195, + 195, 195, 196, 329, 329, 328, 328, 327, 327, 327, + 327, 330, 123, 136, 136, 138, 222, 222, 213, 212, + 326, 325, 325, 325, 325, 221, 221, 220, 220, 214, + 214, 199, 199, 199, 199, 324, 198, 322, 598, 598, + 597, 597, 596, 594, 594, 594, 595, 595, 595, 595, + 544, 544, 544, 544, 544, 360, 360, 360, 365, 365, + 363, 363, 363, 363, 363, 369, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 39, 233, + 234, 40, 235, 235, 236, 236, 237, 237, 238, 239, + 240, 240, 240, 240, 38, 225, 225, 226, 226, 227, + 227, 228, 229, 229, 229, 232, 230, 231, 231, 616, + 616, 615, 37, 37, 30, 175, 175, 176, 176, 176, + 178, 178, 284, 284, 284, 177, 177, 179, 179, 179, + 575, 577, 577, 579, 578, 578, 578, 581, 581, 581, + 581, 581, 582, 582, 582, 582, 583, 583, 31, 157, + 157, 182, 182, 162, 586, 586, 586, 585, 585, 587, + 587, 588, 588, 346, 346, 347, 347, 173, 174, 174, + 164, 159, 181, 181, 181, 181, 181, 183, 183, 252, + 252, 158, 163, 166, 168, 576, 584, 584, 584, 430, + 430, 427, 428, 428, 425, 424, 424, 424, 590, 590, + 589, 589, 589, 361, 361, 32, 420, 420, 422, 423, + 423, 423, 414, 414, 414, 414, 36, 418, 418, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 415, 415, 417, 417, 413, 413, 413, 413, 413, 413, + 413, 413, 35, 180, 180, 412, 412, 409, 409, 407, + 407, 408, 408, 406, 406, 406, 410, 410, 43, 78, + 44, 45, 46, 42, 411, 411, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 141, 140, 140, 140, + 140, 140, 143, 143, 345, 345, 344, 344, 142, 285, + 285, 41, 263, 263, 485, 485, 480, 480, 480, 480, + 480, 500, 500, 500, 481, 481, 481, 482, 482, 482, + 484, 484, 484, 483, 483, 483, 483, 483, 499, 499, + 501, 501, 501, 452, 452, 453, 453, 453, 456, 456, + 472, 472, 473, 473, 471, 471, 478, 478, 477, 477, + 476, 476, 475, 475, 474, 474, 474, 474, 467, 467, + 466, 466, 454, 454, 454, 454, 454, 455, 455, 455, + 465, 465, 470, 470, 316, 316, 315, 315, 271, 271, + 272, 272, 314, 314, 269, 269, 270, 270, 270, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 550, 550, 551, 274, 274, 286, 286, 286, - 286, 286, 286, 273, 273, 275, 275, 251, 251, 249, - 249, 241, 241, 241, 241, 241, 241, 242, 242, 243, - 243, 244, 244, 244, 248, 248, 247, 247, 247, 247, - 245, 245, 246, 246, 246, 246, 246, 246, 438, 438, - 547, 547, 548, 548, 543, 543, 543, 546, 546, 546, - 546, 546, 546, 546, 546, 549, 549, 549, 545, 545, - 253, 339, 339, 339, 362, 362, 362, 362, 364, 338, - 338, 338, 268, 268, 267, 267, 265, 265, 265, 265, + 313, 313, 313, 313, 313, 550, 550, 551, 274, 274, + 286, 286, 286, 286, 286, 286, 273, 273, 275, 275, + 251, 251, 249, 249, 241, 241, 241, 241, 241, 241, + 242, 242, 243, 243, 244, 244, 244, 248, 248, 247, + 247, 247, 247, 245, 245, 246, 246, 246, 246, 246, + 246, 438, 438, 547, 547, 548, 548, 543, 543, 543, + 546, 546, 546, 546, 546, 546, 546, 546, 549, 549, + 549, 545, 545, 253, 339, 339, 339, 362, 362, 362, + 362, 364, 338, 338, 338, 268, 268, 267, 267, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 437, 437, - 378, 378, 379, 379, 297, 296, 296, 296, 296, 296, - 294, 295, 293, 293, 293, 293, 293, 290, 290, 289, - 289, 289, 291, 291, 291, 291, 291, 416, 416, 287, - 287, 277, 277, 277, 276, 276, 276, 479, 385, 385, - 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 387, 387, 387, 387, 387, 387, 387, 387, 387, + 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, + 265, 437, 437, 378, 378, 379, 379, 297, 296, 296, + 296, 296, 296, 294, 295, 293, 293, 293, 293, 293, + 290, 290, 289, 289, 289, 291, 291, 291, 291, 291, + 416, 416, 287, 287, 277, 277, 277, 276, 276, 276, + 479, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 385, 385, 385, 387, 387, 387, 387, 387, 387, + 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 292, 336, - 336, 336, 337, 337, 337, 337, 337, 337, 337, 337, - 388, 388, 394, 394, 559, 559, 558, 254, 254, 254, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 264, - 264, 264, 461, 461, 461, 461, 462, 462, 462, 462, - 463, 463, 463, 459, 459, 460, 460, 399, 400, 400, - 506, 506, 507, 507, 457, 457, 458, 335, 335, 335, + 387, 292, 336, 336, 336, 337, 337, 337, 337, 337, + 337, 337, 337, 388, 388, 394, 394, 559, 559, 558, + 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 264, 264, 264, 461, 461, 461, 461, 462, + 462, 462, 462, 463, 463, 463, 459, 459, 460, 460, + 399, 400, 400, 506, 506, 507, 507, 457, 457, 458, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 514, 514, 514, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 569, - 569, 569, 555, 555, 555, 556, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 557, 557, 557, + 335, 335, 335, 514, 514, 514, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 332, 569, 569, 569, 555, 555, 555, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 334, 334, 334, 333, 333, 333, + 557, 557, 557, 557, 557, 557, 557, 334, 334, 334, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 401, 401, 402, 402, 511, - 511, 511, 511, 511, 511, 512, 512, 513, 513, 513, - 513, 505, 505, 505, 505, 505, 505, 505, 505, 505, + 333, 333, 333, 333, 333, 333, 333, 333, 401, 401, + 402, 402, 511, 511, 511, 511, 511, 511, 512, 512, + 513, 513, 513, 513, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, - 505, 386, 331, 331, 331, 403, 395, 395, 396, 396, - 397, 397, 389, 389, 389, 389, 389, 389, 390, 390, - 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, - 392, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 391, 391, 393, 393, 405, 405, 405, 404, - 404, 404, 404, 404, 404, 404, 266, 266, 266, 266, - 383, 383, 383, 382, 382, 382, 382, 382, 382, 382, - 382, 382, 382, 382, 382, 256, 256, 256, 256, 260, - 260, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 261, 261, 261, 261, 261, - 259, 259, 259, 259, 259, 257, 257, 257, 257, 257, + 505, 505, 505, 505, 386, 331, 331, 331, 403, 395, + 395, 396, 396, 397, 397, 389, 389, 389, 389, 389, + 389, 390, 390, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 392, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 391, 391, 393, 393, 405, + 405, 405, 404, 404, 404, 404, 404, 404, 404, 266, + 266, 266, 266, 383, 383, 383, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 382, 256, 256, + 256, 256, 260, 260, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 261, 261, + 261, 261, 261, 259, 259, 259, 259, 259, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 121, 122, 122, 258, 341, 341, - 486, 486, 489, 489, 487, 487, 488, 490, 490, 490, - 491, 491, 491, 492, 492, 492, 496, 496, 350, 350, - 350, 358, 358, 357, 357, 357, 357, 357, 357, 357, + 257, 257, 257, 257, 257, 257, 257, 121, 122, 122, + 258, 341, 341, 486, 486, 489, 489, 487, 487, 488, + 490, 490, 490, 491, 491, 491, 492, 492, 492, 496, + 496, 350, 350, 350, 358, 358, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, @@ -9078,13 +9203,13 @@ var yyR1 = [...]int{ 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, - 357, 357, 357, 357, 357, 357, 357, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 356, 355, 355, 355, + 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 355, } var yyR2 = [...]int{ @@ -9160,123 +9285,124 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 3, 1, 4, 6, 6, 4, 4, 4, 4, 4, 3, 6, 3, 5, - 1, 1, 2, 2, 11, 8, 9, 1, 3, 2, - 4, 0, 2, 0, 1, 1, 1, 1, 0, 1, - 0, 1, 4, 2, 1, 5, 4, 4, 2, 5, - 5, 1, 3, 2, 1, 5, 4, 4, 2, 0, - 5, 4, 0, 1, 3, 3, 1, 3, 1, 3, - 1, 3, 4, 0, 1, 0, 1, 1, 3, 1, - 1, 0, 4, 1, 3, 2, 1, 0, 8, 0, - 4, 7, 4, 0, 2, 0, 2, 0, 2, 0, - 4, 1, 3, 1, 1, 6, 4, 5, 7, 4, - 5, 0, 1, 3, 8, 0, 6, 0, 4, 6, - 1, 1, 1, 1, 1, 2, 3, 1, 3, 6, - 0, 3, 0, 1, 2, 4, 4, 0, 1, 3, - 1, 3, 3, 0, 1, 1, 0, 2, 2, 0, - 2, 3, 3, 3, 1, 3, 3, 3, 3, 1, - 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, - 2, 7, 0, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 2, 0, 4, - 7, 6, 6, 3, 5, 0, 2, 0, 2, 1, - 3, 1, 2, 3, 5, 0, 1, 2, 1, 3, - 1, 1, 1, 1, 4, 4, 4, 3, 4, 3, - 2, 2, 2, 2, 2, 3, 2, 3, 2, 4, - 1, 3, 4, 0, 2, 1, 3, 1, 1, 2, - 2, 3, 0, 1, 2, 4, 1, 3, 1, 3, - 2, 3, 1, 4, 3, 0, 1, 1, 2, 5, - 2, 2, 2, 0, 2, 3, 3, 0, 1, 3, - 1, 3, 0, 1, 2, 1, 1, 0, 1, 2, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 11, 12, 8, 9, 1, 3, + 2, 4, 0, 2, 0, 1, 1, 1, 1, 0, + 1, 0, 1, 4, 5, 2, 1, 5, 4, 4, + 2, 5, 5, 6, 1, 3, 2, 1, 5, 4, + 4, 2, 0, 5, 4, 0, 1, 3, 3, 1, + 3, 1, 3, 1, 3, 4, 0, 1, 0, 1, + 1, 3, 1, 1, 0, 4, 1, 3, 2, 1, + 0, 8, 0, 4, 7, 4, 0, 2, 0, 2, + 0, 2, 0, 4, 1, 3, 1, 1, 6, 4, + 5, 7, 4, 5, 0, 1, 3, 8, 0, 6, + 0, 4, 6, 1, 1, 1, 1, 1, 2, 3, + 1, 3, 6, 0, 3, 0, 1, 2, 4, 4, + 0, 1, 3, 1, 3, 3, 0, 1, 1, 0, + 2, 2, 0, 2, 3, 3, 3, 1, 3, 3, + 3, 3, 1, 2, 2, 1, 2, 2, 1, 2, + 2, 1, 2, 2, 7, 0, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 2, 0, 4, 7, 6, 6, 3, 5, 0, 2, + 0, 2, 1, 3, 1, 2, 3, 5, 0, 1, + 2, 1, 3, 1, 1, 1, 1, 4, 4, 4, + 3, 4, 3, 2, 2, 2, 2, 2, 3, 2, + 3, 2, 4, 1, 3, 4, 0, 2, 1, 3, + 1, 1, 2, 2, 3, 0, 1, 2, 4, 1, + 3, 1, 3, 2, 3, 1, 4, 3, 0, 1, + 1, 2, 5, 2, 2, 2, 0, 2, 3, 3, + 0, 1, 3, 1, 3, 0, 1, 2, 1, 1, + 0, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 7, 1, 1, 7, 1, - 3, 0, 1, 1, 3, 1, 3, 0, 1, 1, - 1, 14, 1, 3, 0, 1, 1, 3, 1, 1, - 2, 4, 1, 1, 1, 1, 0, 1, 2, 9, - 9, 7, 1, 2, 3, 3, 3, 0, 4, 1, - 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 4, 1, 1, 1, 3, 3, 4, 3, 3, 0, - 1, 1, 1, 0, 2, 7, 8, 10, 2, 2, - 8, 0, 3, 3, 0, 3, 0, 3, 0, 5, - 1, 3, 0, 3, 3, 0, 2, 9, 8, 0, - 2, 2, 3, 3, 0, 2, 0, 2, 4, 4, - 4, 4, 1, 0, 2, 2, 1, 3, 2, 1, - 3, 2, 1, 3, 2, 0, 1, 3, 4, 3, - 1, 1, 4, 1, 3, 1, 1, 1, 1, 0, - 1, 1, 1, 11, 0, 2, 3, 3, 2, 2, - 3, 1, 1, 3, 3, 3, 3, 1, 3, 3, - 4, 0, 2, 2, 2, 2, 2, 2, 2, 6, - 0, 4, 1, 1, 0, 3, 0, 1, 1, 2, - 4, 4, 4, 0, 1, 8, 2, 4, 4, 4, - 9, 0, 2, 11, 9, 11, 8, 6, 9, 7, - 10, 7, 6, 2, 2, 9, 4, 5, 3, 0, - 4, 1, 3, 0, 3, 6, 0, 2, 10, 0, - 2, 0, 2, 0, 3, 2, 4, 3, 0, 2, - 1, 0, 2, 3, 0, 2, 3, 0, 2, 1, - 0, 3, 2, 4, 3, 0, 1, 0, 1, 1, - 0, 6, 0, 3, 5, 0, 4, 0, 3, 1, - 3, 4, 5, 0, 3, 1, 3, 2, 3, 1, - 2, 0, 4, 6, 5, 0, 2, 0, 2, 4, - 5, 4, 5, 1, 5, 6, 5, 0, 3, 0, - 1, 1, 3, 3, 3, 0, 4, 1, 3, 3, - 3, 0, 1, 1, 3, 2, 3, 3, 3, 4, - 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, - 4, 5, 1, 3, 3, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, - 4, 0, 5, 5, 5, 5, 6, 0, 1, 1, - 3, 1, 1, 1, 1, 1, 7, 9, 7, 9, - 2, 1, 7, 9, 7, 9, 8, 5, 0, 1, - 0, 1, 1, 1, 1, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 3, 1, 3, 5, 1, 1, 1, 1, 1, 1, - 3, 5, 0, 1, 1, 2, 1, 2, 2, 1, - 1, 2, 2, 2, 3, 3, 2, 2, 1, 5, - 6, 4, 1, 1, 1, 5, 4, 1, 1, 2, - 0, 1, 1, 2, 5, 0, 1, 1, 2, 2, - 3, 3, 1, 1, 2, 2, 2, 0, 1, 2, - 2, 2, 0, 4, 7, 3, 3, 0, 3, 0, - 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 7, 1, + 1, 7, 1, 3, 0, 1, 1, 3, 1, 3, + 0, 1, 1, 1, 14, 1, 3, 0, 1, 1, + 3, 1, 1, 2, 4, 1, 1, 1, 1, 0, + 1, 2, 9, 9, 7, 1, 2, 3, 3, 3, + 0, 4, 1, 1, 1, 1, 1, 0, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 3, 3, 4, + 3, 3, 0, 1, 1, 1, 0, 2, 7, 8, + 10, 2, 2, 8, 0, 3, 3, 0, 3, 0, + 3, 0, 5, 1, 3, 0, 3, 3, 0, 2, + 9, 8, 0, 2, 2, 3, 3, 0, 2, 0, + 2, 4, 4, 4, 4, 1, 0, 2, 2, 1, + 3, 2, 1, 3, 2, 1, 3, 2, 0, 1, + 3, 4, 3, 1, 1, 4, 1, 3, 1, 1, + 1, 1, 0, 1, 1, 1, 11, 0, 2, 3, + 3, 2, 2, 3, 1, 1, 3, 3, 3, 3, + 1, 3, 3, 4, 0, 2, 2, 2, 2, 2, + 2, 2, 6, 0, 4, 1, 1, 0, 3, 0, + 1, 1, 2, 4, 4, 4, 0, 1, 8, 2, + 4, 4, 4, 9, 0, 2, 11, 9, 11, 8, + 6, 9, 7, 10, 7, 6, 2, 2, 9, 4, + 5, 3, 0, 4, 1, 3, 0, 3, 6, 0, + 2, 10, 0, 2, 0, 2, 0, 3, 2, 4, + 3, 0, 2, 1, 0, 2, 3, 0, 2, 3, + 0, 2, 1, 0, 3, 2, 4, 3, 0, 1, + 0, 1, 1, 0, 6, 0, 3, 5, 0, 4, + 0, 3, 1, 3, 4, 5, 0, 3, 1, 3, + 2, 3, 1, 2, 0, 4, 6, 5, 0, 2, + 0, 2, 4, 5, 4, 5, 1, 5, 6, 5, + 0, 3, 0, 1, 1, 3, 3, 3, 0, 4, + 1, 3, 3, 3, 0, 1, 1, 3, 2, 3, + 3, 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 1, 1, 1, 1, 3, 5, 2, 2, 2, 2, - 4, 1, 1, 2, 5, 6, 8, 6, 6, 6, - 1, 1, 1, 1, 1, 1, 3, 9, 1, 4, - 4, 4, 7, 9, 7, 7, 7, 9, 7, 7, - 0, 2, 0, 1, 1, 2, 4, 1, 2, 2, - 1, 2, 2, 1, 2, 2, 2, 2, 2, 0, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 1, 1, 1, 2, 5, 0, 1, 3, 0, 1, - 0, 2, 0, 2, 0, 1, 6, 8, 8, 6, - 6, 5, 5, 5, 6, 6, 6, 6, 5, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 1, 1, 1, 4, 4, 6, 8, 6, 4, 5, - 4, 4, 4, 3, 4, 6, 6, 7, 4, 1, + 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 1, 5, 4, 5, 1, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 2, 4, 0, 5, 5, 5, 5, 6, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 7, + 9, 7, 9, 2, 1, 7, 9, 7, 9, 8, + 5, 0, 1, 0, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 8, 4, 2, 3, - 2, 4, 2, 2, 4, 6, 2, 2, 4, 6, - 4, 2, 4, 4, 4, 0, 1, 2, 3, 1, - 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, + 1, 0, 1, 3, 1, 3, 5, 1, 1, 1, + 1, 1, 1, 3, 5, 0, 1, 1, 2, 1, + 2, 2, 1, 1, 2, 2, 2, 3, 3, 2, + 2, 1, 5, 6, 4, 1, 1, 1, 5, 4, + 1, 1, 2, 0, 1, 1, 2, 5, 0, 1, + 1, 2, 2, 3, 3, 1, 1, 2, 2, 2, + 0, 1, 2, 2, 2, 0, 4, 7, 3, 3, + 0, 3, 0, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 1, 1, 1, 1, 3, 5, 2, + 2, 2, 2, 4, 1, 1, 2, 5, 6, 8, + 6, 6, 6, 1, 1, 1, 1, 1, 1, 3, + 9, 1, 4, 4, 4, 7, 9, 7, 7, 7, + 9, 7, 7, 0, 2, 0, 1, 1, 2, 4, + 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, + 2, 2, 0, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 2, 5, 0, 1, + 3, 0, 1, 0, 2, 0, 2, 0, 1, 6, + 8, 8, 6, 6, 5, 5, 5, 6, 6, 6, + 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 1, 1, 1, 4, 4, 6, 8, + 6, 4, 5, 4, 4, 4, 3, 4, 6, 6, + 7, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 8, + 4, 2, 3, 2, 4, 2, 2, 4, 6, 2, + 2, 4, 6, 4, 2, 4, 4, 4, 0, 1, + 2, 3, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, - 1, 3, 3, 3, 3, 3, 2, 1, 1, 1, - 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, - 1, 3, 4, 4, 5, 4, 5, 3, 4, 5, - 6, 1, 0, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 1, 1, 1, 2, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 3, 0, 1, 1, 3, 0, + 1, 1, 3, 1, 3, 3, 3, 3, 3, 2, + 1, 1, 1, 3, 4, 3, 4, 3, 4, 3, + 4, 3, 4, 1, 3, 4, 4, 5, 4, 5, + 3, 4, 5, 6, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 4, 4, 1, 2, 3, 5, 1, 1, 3, - 0, 1, 0, 3, 0, 3, 3, 0, 3, 5, - 0, 3, 5, 0, 1, 1, 0, 1, 1, 2, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 2, 3, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 4, 4, 1, 2, 3, 5, + 1, 1, 3, 0, 1, 0, 3, 0, 3, 3, + 0, 3, 5, 0, 3, 5, 0, 1, 1, 0, + 1, 1, 2, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -9318,7 +9444,6 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, } var yyChk = [...]int{ @@ -9389,338 +9514,340 @@ var yyChk = [...]int{ 650, 647, 648, 649, 561, 232, -443, -441, -362, 548, 626, 393, 547, 550, 387, 366, 656, 659, 391, 267, 328, 329, 330, 463, 364, -235, -362, 660, -197, 251, - 40, -249, -362, -197, -87, -16, -15, -186, -187, -249, - 246, -371, 24, 445, -99, 446, 241, 242, 86, 78, - -362, -9, -113, -8, -120, -85, -184, 450, -369, -362, - 328, 328, -369, 246, -364, 277, 426, -362, -498, 252, - -447, -420, 278, -446, -422, -449, -423, 33, 237, 239, - 238, 560, 274, 16, 391, 248, 14, 13, 392, 260, - 26, 27, 29, 15, 393, 395, 30, 396, 399, 400, - 401, 43, 404, 405, 267, 89, 97, 92, 285, -234, - -362, -397, -389, 118, -392, -384, -385, -387, -340, -534, - -382, 86, 145, 146, 153, 119, 662, -386, -479, 37, - 121, 566, 570, 606, 513, -332, -333, -334, -335, -336, - -337, 551, -362, -535, -533, 92, 102, 104, 108, 109, - 107, 105, 157, 190, 106, 93, 158, -187, 89, -555, - 576, -356, 599, 612, 613, 614, 615, 598, 62, -505, - -513, 245, -511, 156, 195, 263, 191, 14, 151, 438, - 192, 607, 608, 609, 573, 595, 515, 577, 587, 602, - 568, 569, 571, 563, 564, 565, 567, 578, 580, 594, - -514, 590, 600, 601, 586, 610, 611, 647, 603, 604, - 605, 642, 91, 90, 593, 592, 579, 574, 575, 581, - 562, 572, 582, 583, 591, 596, 597, 375, 111, 376, - 377, 505, 367, 81, 378, 252, 445, 71, 379, 380, - 381, 382, 383, 512, 384, 72, 385, 374, 267, 428, - 386, 194, 212, 517, 516, 518, 509, 506, 504, 507, - 508, 510, 511, 584, 585, 589, -136, -138, 617, -608, - -323, -609, 6, 7, 8, 9, -610, 158, -599, 447, - 556, 92, 321, 364, 17, 505, 646, 546, 646, 546, - 168, 165, -434, 168, 117, 174, 173, 250, 168, -434, - -362, 171, 646, 170, 644, 331, 273, -411, -175, 364, - 428, 337, 98, 277, -414, -412, 544, -499, 325, 321, - 297, 247, 114, -176, 257, 256, 112, 505, 245, 402, - 316, 57, 59, -570, -571, 234, 235, 236, -562, 538, - -561, -362, 646, 651, 377, 100, 101, 644, 645, 28, - 246, 388, 273, 483, 481, 482, 484, 485, 486, 487, - -65, -515, -497, 478, 477, -375, 470, 476, 468, 480, - 471, 365, 339, 560, 338, 237, 638, 545, 539, -350, - 412, 448, 502, 503, 389, 449, 489, 491, 472, 111, - 198, 195, 247, 249, 246, 644, 364, 505, 428, 98, - 337, 246, -570, 651, 165, 489, 491, 447, 277, 426, - 42, -440, 438, -439, -441, 490, 501, 90, 91, 488, - -350, 111, 469, 469, -608, -323, -185, -187, -123, -560, - 546, 646, 247, 364, 428, 277, 248, 246, 541, 544, - 249, 505, 245, 328, 388, 273, 337, 98, 170, 644, - -191, -192, -193, 230, 231, 232, 70, 235, 233, 67, - 33, 34, 35, -1, 125, 661, -389, -389, -6, 664, - -6, -389, -362, -362, 160, -256, -260, -257, -259, -258, - -262, -261, 195, 196, 156, 199, 205, 201, 202, 203, - 204, 206, 207, 208, 209, 210, 213, 214, 211, 32, - 212, 263, 191, 192, 193, 194, 215, 177, 197, 553, - 223, 178, 224, 179, 225, 180, 226, 181, 182, 227, - 183, 186, 187, 188, 189, 185, 159, -224, 92, 33, - 86, 159, 92, -216, 269, -197, -249, -241, 159, 662, - -216, -608, -207, -208, 11, -249, -338, -362, 447, 128, - -99, 78, -99, 446, 78, -99, 446, 241, -563, -564, - -565, -567, 241, 446, 445, 242, -118, 159, 285, 17, - -369, -369, 84, -249, -422, 277, -447, -420, 37, 83, - 160, 250, 160, 83, 86, 389, 364, 428, 390, 505, - 246, 402, 249, 277, 403, 364, 428, 246, 249, 505, - 277, 364, 246, 249, 428, 277, 403, 364, 468, 469, - 249, 28, 394, 397, 398, 469, -519, 501, 160, 117, - 114, 115, 116, -389, 135, -404, 128, 129, 130, 131, - 132, 133, 134, 142, 141, 152, 145, 146, 147, 148, - 149, 150, 151, 143, 144, 138, 118, 136, 140, 137, - 120, 155, -187, -389, -397, 62, -387, -387, -387, -387, - -362, -479, -394, -389, 86, 86, 86, 86, 86, 159, - 105, 92, -389, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, -512, 86, 86, -401, -402, - 86, 86, -382, -338, 86, 92, 92, 86, 86, 86, - 92, 86, 86, 86, -402, -402, 86, 86, 86, 86, + 646, 40, -249, -362, -197, 646, -87, -16, -15, -186, + -187, -249, 246, -371, 24, 445, -99, 446, 241, 242, + 86, 78, -362, -9, -113, -8, -120, -85, -184, 450, + -369, -362, 328, 328, -369, 246, -364, 277, 426, -362, + -498, 252, -447, -420, 278, -446, -422, -449, -423, 33, + 237, 239, 238, 560, 274, 16, 391, 248, 14, 13, + 392, 260, 26, 27, 29, 15, 393, 395, 30, 396, + 399, 400, 401, 43, 404, 405, 267, 89, 97, 92, + 285, -234, -362, -397, -389, 118, -392, -384, -385, -387, + -340, -534, -382, 86, 145, 146, 153, 119, 662, -386, + -479, 37, 121, 566, 570, 606, 513, -332, -333, -334, + -335, -336, -337, 551, -362, -535, -533, 92, 102, 104, + 108, 109, 107, 105, 157, 190, 106, 93, 158, -187, + 89, -555, 576, -356, 599, 612, 613, 614, 615, 598, + 62, -505, -513, 245, -511, 156, 195, 263, 191, 14, + 151, 438, 192, 607, 608, 609, 573, 595, 515, 577, + 587, 602, 568, 569, 571, 563, 564, 565, 567, 578, + 580, 594, -514, 590, 600, 601, 586, 610, 611, 647, + 603, 604, 605, 642, 91, 90, 593, 592, 579, 574, + 575, 581, 562, 572, 582, 583, 591, 596, 597, 375, + 111, 376, 377, 505, 367, 81, 378, 252, 445, 71, + 379, 380, 381, 382, 383, 512, 384, 72, 385, 374, + 267, 428, 386, 194, 212, 517, 516, 518, 509, 506, + 504, 507, 508, 510, 511, 584, 585, 589, -136, -138, + 617, -608, -323, -609, 6, 7, 8, 9, -610, 158, + -599, 447, 556, 92, 321, 364, 17, 505, 646, 546, + 646, 546, 168, 165, -434, 168, 117, 174, 173, 250, + 168, -434, -362, 171, 646, 170, 644, 331, 273, -411, + -175, 364, 428, 337, 98, 277, -414, -412, 544, -499, + 325, 321, 297, 247, 114, -176, 257, 256, 112, 505, + 245, 402, 316, 57, 59, -570, 646, -571, 234, 235, + 236, -562, 538, -561, -362, 646, 651, 377, 100, 101, + 644, 645, 28, 246, 388, 273, 483, 481, 482, 484, + 485, 486, 487, -65, -515, -497, 478, 477, -375, 470, + 476, 468, 480, 471, 365, 339, 560, 338, 237, 638, + 545, 539, -350, 412, 448, 502, 503, 389, 449, 489, + 491, 472, 111, 198, 195, 247, 249, 246, 644, 364, + 505, 428, 98, 337, 246, -570, 651, 165, 489, 491, + 447, 277, 426, 42, -440, 438, -439, -441, 490, 501, + 90, 91, 488, -350, 111, 469, 469, -608, -323, -185, + -187, -123, -560, 546, 646, 247, 364, 428, 277, 248, + 246, 541, 544, 249, 505, 245, 328, 388, 273, 337, + 98, 170, 644, -191, -192, -193, 230, 231, 232, 70, + 235, 233, 67, 33, 34, 35, -1, 125, 661, -389, + -389, -6, 664, -6, -389, -362, -362, 160, -256, -260, + -257, -259, -258, -262, -261, 195, 196, 156, 199, 205, + 201, 202, 203, 204, 206, 207, 208, 209, 210, 213, + 214, 211, 32, 212, 263, 191, 192, 193, 194, 215, + 177, 197, 553, 223, 178, 224, 179, 225, 180, 226, + 181, 182, 227, 183, 186, 187, 188, 189, 185, 159, + -224, 92, 33, 86, 159, 92, -216, 269, -197, -197, + -249, -241, 159, 662, -216, -197, -608, -207, -208, 11, + -249, -338, -362, 447, 128, -99, 78, -99, 446, 78, + -99, 446, 241, -563, -564, -565, -567, 241, 446, 445, + 242, -118, 159, 285, 17, -369, -369, 84, -249, -422, + 277, -447, -420, 37, 83, 160, 250, 160, 83, 86, + 389, 364, 428, 390, 505, 246, 402, 249, 277, 403, + 364, 428, 246, 249, 505, 277, 364, 246, 249, 428, + 277, 403, 364, 468, 469, 249, 28, 394, 397, 398, + 469, -519, 501, 160, 117, 114, 115, 116, -389, 135, + -404, 128, 129, 130, 131, 132, 133, 134, 142, 141, + 152, 145, 146, 147, 148, 149, 150, 151, 143, 144, + 138, 118, 136, 140, 137, 120, 155, -187, -389, -397, + 62, -387, -387, -387, -387, -362, -479, -394, -389, 86, + 86, 86, 86, 86, 159, 105, 92, -389, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + -512, 86, 86, -401, -402, 86, 86, -382, -338, 86, + 92, 92, 86, 86, 86, 92, 86, 86, 86, -402, + -402, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, -208, 160, -207, 86, -207, -208, -188, -187, - 33, 34, 33, 34, 33, 34, 33, 34, -611, 635, - 86, 102, 657, 228, 17, -362, 644, -362, -593, 33, - 549, 549, 549, 549, 494, 555, 172, 173, 174, -362, - 171, 250, -362, -409, 252, -409, -409, -233, -362, -235, - 388, 249, 541, 249, -176, -409, -409, -409, -409, -409, - 248, -409, 24, 246, 246, 246, 246, -409, 512, 128, - 128, 60, -572, 176, 160, -562, -215, 86, -593, 652, - 653, 654, -374, 136, 140, -374, -319, 18, -319, 24, - 24, 275, 275, 275, -374, 315, -619, -620, 17, 138, - -372, -620, -372, -372, -374, -621, 248, 479, 44, 276, - 275, -209, -210, 22, -209, 473, 469, -464, 474, 475, - -376, -620, -375, -374, -374, -375, -374, -374, -374, 33, - 246, 249, 505, 337, 639, -619, -619, 32, 32, -498, - -498, -249, -498, -498, 539, -351, -362, -498, -498, -498, - -303, -304, -249, -573, 251, 654, -605, -604, 492, -607, - 494, 165, -441, 165, -441, 89, -422, 277, 277, 160, - 128, 24, -442, 128, 139, -441, -441, -442, -442, -273, - 42, -361, 156, -362, 92, -273, 42, -602, -601, -249, - -208, -188, -187, 87, 87, 87, 549, -593, -498, -498, - -498, -498, -498, -499, -498, -498, -498, -498, -498, -369, - -225, -362, -235, 252, -498, -498, -498, -498, -189, -190, - 147, -389, -362, -193, -3, -146, -145, 122, 123, 125, - 629, 383, 628, 632, 626, -441, 42, -492, 410, 409, - -486, -488, 86, -487, 86, -487, -487, -487, -487, -487, - 86, 86, -489, 86, -489, -489, -486, -490, 86, -490, - -491, 86, -491, -490, -362, -468, 555, -395, -397, -362, - 40, -508, 62, -184, 86, 32, 86, -216, -362, 192, - 170, 643, 36, -509, 62, -184, 86, 32, -208, -139, - 40, -210, 21, 159, 102, 92, -118, -99, 78, -118, - -99, -99, 87, 160, -566, 108, 109, -568, 210, 201, - -362, -116, 92, -7, -11, -8, -9, -10, -47, -85, - -184, 547, 550, -536, -534, 86, 33, 437, 83, 17, - -448, 246, 505, 388, 273, 249, 364, -446, -429, -426, - -424, -361, -422, -425, -424, -451, -338, 469, -140, 452, - 451, 327, -389, -389, -389, -389, -389, 107, 118, 355, - 108, 109, -384, -405, 33, 323, 324, -385, -385, -385, - -385, -385, -385, -385, -385, -385, -385, -385, -385, -393, - -403, -479, 86, 138, 136, 140, 137, 120, -387, -387, - -385, -385, -275, -361, 156, 87, 160, -389, -559, -558, - 122, -389, -389, -389, -389, -415, -417, -338, 86, -362, - -556, -557, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 379, 374, 380, 378, 367, 386, 381, - 382, 194, 536, 537, 530, 531, 532, 533, 534, 535, - -395, -395, -389, -556, -395, -331, 34, 33, -397, -397, - -397, 87, -389, -569, 353, 352, 354, -211, -362, -395, - 87, 87, 87, 102, -397, -397, -395, -385, -395, -395, - -395, -395, -557, -331, -331, -331, -331, 147, -397, -397, - -331, -331, -331, -331, 147, -331, -331, -331, -331, -331, - -331, -331, -331, -331, -331, -331, 87, 87, 87, 147, - -397, -209, -138, -517, -516, -389, 42, -139, -210, -612, - 636, 86, -338, -600, 92, 92, 662, 170, 644, 17, - 505, -362, 17, 246, -362, 102, -362, 102, 495, 496, - 169, 173, 172, -362, 171, -362, -362, 118, -362, -362, - 36, 86, -225, -409, -409, -409, -577, -362, 93, -430, - -427, -424, -362, -362, -420, -362, -351, -249, -409, -409, - -409, -409, -249, -284, 54, 55, 56, -424, -177, 57, - 58, -573, -561, 36, -214, -362, -319, -387, -387, -389, - 364, 505, 246, -424, 277, -619, -374, -374, -352, -351, - -376, -371, -376, -376, -319, -372, -374, -374, -389, -376, - -372, -319, -362, 469, -319, -319, -464, -374, -373, -362, - -373, -409, -351, -352, -352, -249, -249, -298, -305, -299, - -306, 269, 243, 372, 373, 240, 238, 11, 239, -313, - 316, -410, 513, -279, -280, 78, 43, -282, 267, 414, - 407, 279, 283, 96, 284, 447, 285, 248, 287, 288, - 289, 304, 306, 259, 290, 291, 292, 438, 293, 164, - 305, 294, 295, 296, 390, -274, 6, 340, 555, 42, - 52, 53, 461, 460, 558, 280, -362, -577, -575, 32, - -362, 32, -430, -424, -362, -362, 160, 250, -200, -202, - -199, -195, -196, -201, -322, -324, -198, 86, -249, -187, - -362, -441, 160, 493, 495, 496, -605, -442, -605, -442, - 250, 33, 437, -445, 437, 33, -420, -439, 489, 491, - -435, 92, 438, -425, -444, 83, 156, -516, -442, -442, - -444, -444, 155, 160, -603, 494, 495, 234, -209, 102, - -251, -249, -577, -429, -420, -362, -498, -251, -251, -251, - -364, -364, 86, 159, 37, -362, -362, -362, -362, -318, - 160, -317, 17, -363, -362, 36, 92, 159, -147, -145, - 124, -389, -6, 628, -389, -6, -6, -389, -6, -389, - -496, 411, 102, 102, -341, 92, -341, 102, 102, 102, - 561, 87, 92, -433, 83, -510, -398, -554, 617, -218, - 87, -211, -552, -553, -211, -217, -362, -508, -241, 128, - 128, 128, 25, -510, -218, 87, -552, -209, 618, -139, - -206, -205, -389, -362, 24, -118, -99, -564, 159, 160, - -214, -448, -428, -425, -450, 147, -362, -436, 160, 555, - 665, 90, 250, -590, -589, 429, 87, 160, -520, 251, - 512, 92, 662, 445, 228, 229, 107, 355, 108, 109, - -479, -397, -393, -387, -387, -385, -385, -391, 264, -391, - 117, -389, 663, -388, -558, 124, -389, 36, 160, 36, - 160, 84, 160, 87, -486, -389, 159, 87, 87, 17, - 17, 87, -389, 87, 87, 87, 87, 17, 17, -389, - 87, 159, 87, 87, 87, 87, 84, 87, 160, 87, - 87, 87, 87, 160, -397, -397, -389, -397, 87, 87, - 87, -389, -389, -389, -397, 87, -389, -389, -389, -389, - -389, -389, -389, -389, -389, -389, -214, -458, 464, -458, - -458, 160, 160, 160, 87, -139, 86, 102, 160, 658, - -345, -344, 92, -362, -362, 170, 644, -362, 92, 644, - -362, 92, 170, 174, 174, 173, -362, 92, 37, 24, - 24, 314, -234, -236, -237, -238, -239, -240, 138, 161, - 162, 86, -249, -249, -249, -579, 415, -591, 160, 42, - -589, 505, -173, 327, -413, 84, -180, 17, 555, -249, - -249, -249, -249, -263, 36, 17, -194, -250, -362, 86, - 87, 160, -362, -362, -362, -421, 84, -362, -352, -319, - -319, -376, -319, -319, 160, 23, -374, -376, -376, -241, - -372, -241, 159, -241, -351, -485, 36, -215, 160, 21, - 269, -248, -359, -245, -247, 254, -379, -246, 257, -548, - 255, 253, 112, 258, 312, 113, 248, -359, -359, 254, - -283, 250, 36, -359, -301, 248, 358, 312, 255, 21, - 269, -300, 248, 113, -362, 254, 258, 255, 253, -358, - 128, -350, 155, 250, 44, 390, -358, 559, 269, -358, - -358, -358, -358, -358, -358, -358, 286, 286, -358, -358, - -358, -358, -358, -358, -358, -358, -358, -358, -358, 165, - -358, -358, -358, -358, -358, -358, 86, 332, 281, 282, - 314, -580, 415, 32, 370, 370, 371, -591, 366, 32, - -181, 364, -304, -302, -373, 32, -325, -326, -327, -328, - -330, -329, 69, 73, 75, 79, 70, 71, 72, 76, - 81, 74, 32, 160, -360, -365, 36, -362, 92, -360, - -187, -202, -200, -360, 86, -442, -604, -606, 497, 494, - 500, -444, -444, 102, 250, 86, 128, -444, -444, 42, - -361, -601, 501, 495, -139, 160, 83, -251, -226, -227, - -228, -229, -256, -338, 196, 199, 201, 202, 203, 204, - 206, 207, 208, 209, 210, 213, 214, 211, 212, 263, - 191, 192, 193, 194, 215, 177, 197, 553, 178, 179, - 180, 181, 182, 183, 186, 187, 188, 189, 185, -362, - -235, -319, -190, -202, -362, 92, -362, 147, 125, -6, - 123, -151, -150, -149, 126, 626, 632, 125, 125, 125, - 87, 87, 87, 160, 87, 87, 87, 160, 87, 160, - 102, -523, 474, 41, 160, 86, 87, 160, 62, 160, - 128, 87, 160, -389, -362, 92, -389, 192, 87, 62, - -139, 92, 160, -203, 38, 39, 159, 447, -362, -534, - 87, -450, 160, 250, 159, 159, -426, 393, -361, -428, - 21, 555, -338, 40, -345, 128, 662, -362, 87, -391, - -391, 117, -387, -384, 87, 125, -389, 123, -254, -256, - 409, 410, -389, -254, -255, -261, 156, 195, 263, 194, - 193, 191, 409, 410, -273, -417, 552, -203, 87, -362, - -389, -389, 87, -389, -389, 17, -362, -273, -385, -389, - -208, -208, 87, 87, -457, -458, -457, -457, 87, 87, - 87, 87, -457, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 86, 102, 104, 102, 104, -516, - -613, 64, 634, 63, 437, 107, 317, 160, 102, 92, - 663, 160, 128, 92, -362, -362, 17, 246, -362, 17, - 174, 92, -592, 321, 364, 505, 246, 364, 321, 505, - 246, -469, 102, 401, 87, 160, -338, -226, -215, 86, - -215, -582, 476, 417, 427, -358, -381, -380, 366, 43, - -503, 438, 423, 424, -427, 277, -351, -588, 99, 128, - 83, 344, 348, 350, 349, 345, 346, 347, -407, -408, - -406, -410, -575, 86, 86, -184, 36, 136, -180, 86, - 86, 36, -480, 334, -256, -249, -194, -362, 17, 160, - -574, 159, -1, -362, -362, -420, -374, -319, -389, -389, - -319, -374, -374, -376, -362, -241, -480, -256, 36, -299, - 243, 239, -454, 314, 315, -455, -470, 317, -472, 86, - -253, -338, -246, -547, -548, -409, -362, 113, -547, 113, - 86, -253, -338, -338, -302, -338, -362, -362, -362, -362, - -309, -308, -338, -311, 33, -312, -362, -362, -362, -362, - 113, -362, 113, -278, 42, 49, 50, 51, -358, -358, - 198, -281, 42, 437, 439, 440, -311, 102, 102, 102, - 102, 92, 92, 92, -358, -358, 102, 92, -365, 92, - -549, 173, 46, 47, 102, 102, 102, 102, 42, 92, - -286, 42, 297, 301, 298, 299, 300, 92, 102, 42, - 102, 42, 102, 42, -362, 86, -550, -551, 92, 333, - -469, -582, -358, 370, -441, 128, 128, -381, -584, 96, - 418, -587, 327, -183, 505, 33, -219, 243, 239, -575, - -432, -431, -338, -199, -199, -199, -199, -199, -199, 69, - 80, 69, -212, 86, 69, 74, 69, 74, 69, -327, - 69, 80, -432, -201, -215, -365, 87, -598, -597, -596, - -594, 77, 251, 78, -395, -444, 494, 498, 499, -428, - -377, 92, -435, -223, 24, -249, -249, -501, 307, 308, - 87, 160, -256, -321, 19, 159, 121, -6, -147, -149, - -389, -6, -389, 628, 383, 629, 92, 102, 102, -531, - 458, 453, 455, 113, -398, -518, -517, 62, -184, -211, - -510, -553, -516, -362, 663, 663, 663, 663, 92, 62, - -184, -510, -223, -523, -205, -204, 45, -362, 102, 17, - -425, -420, 147, 147, -362, 394, -436, 92, 416, 92, - 246, 663, 92, -345, -384, -389, 87, -264, 182, 181, - -264, 36, 87, 87, -487, -487, -486, -489, -486, -264, - -264, 87, 86, -203, 87, 24, 87, 87, 87, -389, - 87, 87, 160, -506, 514, -507, 588, -457, -457, -457, - -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, - -457, -457, -457, -457, -400, -399, 269, 459, 641, 641, - 459, 641, 641, 87, 160, -556, 160, -353, 322, -353, - -344, 92, 250, 92, 170, -362, 92, 644, 92, -362, - -362, -362, 314, -362, 314, -362, -362, 92, 92, 92, - -238, -256, 87, 36, -242, -243, -244, -253, -245, -247, - 36, -583, 96, -578, 92, -362, 93, -584, 158, 368, - 42, 419, 420, 435, 363, 102, 102, 425, -576, -362, - -182, 246, 364, -586, 53, 128, 92, -249, -406, -350, - 155, 288, 337, -316, -315, -362, 92, -242, -184, -249, - -242, -242, -184, -481, 336, 21, 102, 146, -216, 84, - 159, -202, -250, -362, 147, 87, -319, -241, -319, -319, - -374, -481, -184, -466, 318, 86, -464, 86, -464, 113, - 345, -473, -471, 269, -307, 46, 48, -256, -545, -362, - -543, -545, -362, -543, -543, -409, -389, -307, -253, 250, - 32, 239, -310, 342, 343, 348, 350, -437, 313, 118, - -437, 160, -203, 160, -362, -273, -273, 32, 92, 92, - -251, 87, 160, 128, 102, 92, -583, -578, 128, -442, - 92, 92, -584, 92, 92, -588, 128, -252, 246, -351, - 160, -219, -219, -319, 160, 128, -221, -220, 83, 84, - -222, 83, -220, -220, 69, -213, 92, 69, 69, -319, - -596, -595, 24, -548, -548, -548, 87, 87, 15, -228, - 42, -320, 20, 21, 147, 125, 123, 125, 125, -362, - 87, 87, -493, 619, -527, -529, 453, 21, 21, 15, - 251, 87, -510, 663, -510, -531, 46, 47, -420, -436, - 438, -249, 160, 663, -254, -292, 92, -389, 87, -389, - 87, 92, 87, 92, -208, 21, 87, 160, 87, 87, - 87, 160, 87, 87, -389, 87, -556, -354, 192, 92, - -354, 364, -363, -362, 17, -362, 92, -362, -469, 314, - -469, 314, 246, -362, 244, -184, 87, 160, -184, 92, - -581, 429, 102, 42, 102, 158, 421, -504, -174, 96, - -251, 33, -219, -585, 96, 128, 662, 86, -358, -358, - -358, -362, 87, 160, -358, -358, 87, 87, 87, -271, - 555, -482, 268, 102, 146, 102, 146, 102, -360, -202, - -362, -319, -574, 159, -319, -482, -456, 319, 102, -385, - 86, -385, 86, -465, 316, 86, 87, 160, -362, -338, - -268, -267, -265, 107, 118, 42, 407, -266, 96, 155, - 302, 305, 304, 280, 303, -297, -378, 83, 413, 342, - 343, -410, 619, 543, 253, 112, 113, 395, -379, 86, - 86, 84, 322, 86, 86, -545, 87, -307, -338, 42, - -310, 42, 356, 313, -308, -362, 155, -273, 87, -551, - 92, -556, -581, 92, -444, -586, 92, -174, -251, -575, - -208, -431, -516, -389, 86, -389, 87, 86, 69, 11, - 19, -382, -389, -397, 647, 649, 650, 252, -6, 629, - 383, -288, 620, 92, 21, 92, -525, 92, -432, -493, - -142, -285, -350, 285, 87, -291, 138, 555, 87, 87, - -457, -457, -460, -459, -463, 459, 314, 467, -397, 92, - 92, 87, 87, 92, -362, 170, 92, 662, 92, -469, - 92, -469, -362, 314, -230, -256, -178, 555, -271, -244, - -178, 21, 555, 367, 42, 102, 42, 422, 92, -182, - 128, 108, 109, -346, -347, 92, -415, -273, -275, 92, - -315, -382, -382, -269, -184, 36, -270, -313, -410, 555, - -141, -140, -269, 555, 86, -483, 164, 102, 146, 102, - 102, -319, -319, -483, -472, 21, 87, -451, 87, -451, - 86, 128, -385, -471, -474, 62, -265, 107, -385, 92, - -275, -276, 42, 301, 297, 128, 128, -277, 42, 281, - 282, -287, 86, 312, 15, 198, 86, 113, 113, -249, - -415, -415, -546, 344, 345, 346, 351, 348, 349, 347, - 350, -546, -415, -415, 86, -438, -437, -385, -358, -358, - 155, -585, -209, -214, -544, -362, 253, 21, 21, -502, - 555, 648, 86, 86, -362, -362, -342, 621, 102, 92, - 455, -288, -494, 622, -521, -464, -273, 128, 87, 76, - 553, 556, 87, -462, 120, 421, 425, -383, -386, 102, - 104, 190, 158, 87, 87, -362, -349, -348, 92, 92, - 92, 314, -469, 554, -179, 61, 501, 92, 93, 416, - 92, 93, 367, -174, 92, 663, 160, 128, 87, -452, - 269, -184, 160, -313, -350, -142, -452, -272, -314, -362, - 92, -500, 173, 335, 555, 102, 146, 102, -208, -484, - 173, 335, -455, 87, 87, 87, -451, 102, 87, -478, - -475, 86, -313, 271, 138, 92, 92, 102, 86, -511, - 32, 92, -416, 86, 87, 87, 87, 87, -415, 102, - -273, -358, 87, 87, 160, 650, 86, -397, -397, 86, - 21, -342, -495, 623, 92, -530, 458, -524, -522, 453, - 454, 455, 456, 92, 554, 66, 557, -461, -462, 425, - -383, -386, 617, 465, 465, 465, 663, 160, 128, -469, - 92, -232, -362, 312, 438, -347, 92, -418, -453, 321, - 21, -313, -358, -453, 87, 160, -358, -358, 335, 102, - 146, 102, -209, 335, -467, 320, 87, -478, -313, -477, - -476, 319, 272, 86, 87, -389, -401, -358, 87, -290, - -289, 551, -415, -418, 84, -418, 84, -418, 84, -418, - 84, 87, -273, -362, 253, -137, 86, 87, 87, -343, - -362, -525, 92, -532, 251, -528, -529, 457, -522, 21, - 455, 21, 21, -143, 160, 66, 117, 466, 466, 466, - -348, 92, 92, -231, 36, 460, 394, -419, 259, 356, - 357, 96, 555, 342, 343, 361, 360, 359, 362, 21, - -454, -273, -314, -382, -382, 102, 102, 87, 160, -362, + 86, 86, 86, 86, 86, 86, 86, -208, 160, -207, + 86, -207, -208, -188, -187, 33, 34, 33, 34, 33, + 34, 33, 34, -611, 635, 86, 102, 657, 228, 17, + -362, 644, -362, -593, 33, 549, 549, 549, 549, 494, + 555, 172, 173, 174, -362, 171, 250, -362, -409, 252, + -409, -409, -233, -362, -235, 388, 249, 541, 249, -176, + -409, -409, -409, -409, -409, 248, -409, 24, 246, 246, + 246, 246, -409, 512, 128, 128, 60, -572, 176, -570, + 160, -562, -215, 86, -593, 652, 653, 654, -374, 136, + 140, -374, -319, 18, -319, 24, 24, 275, 275, 275, + -374, 315, -619, -620, 17, 138, -372, -620, -372, -372, + -374, -621, 248, 479, 44, 276, 275, -209, -210, 22, + -209, 473, 469, -464, 474, 475, -376, -620, -375, -374, + -374, -375, -374, -374, -374, 33, 246, 249, 505, 337, + 639, -619, -619, 32, 32, -498, -498, -249, -498, -498, + 539, -351, -362, -498, -498, -498, -303, -304, -249, -573, + 251, 654, -605, -604, 492, -607, 494, 165, -441, 165, + -441, 89, -422, 277, 277, 160, 128, 24, -442, 128, + 139, -441, -441, -442, -442, -273, 42, -361, 156, -362, + 92, -273, 42, -602, -601, -249, -208, -188, -187, 87, + 87, 87, 549, -593, -498, -498, -498, -498, -498, -499, + -498, -498, -498, -498, -498, -369, -225, -362, -235, 252, + -498, -498, -498, -498, -189, -190, 147, -389, -362, -193, + -3, -146, -145, 122, 123, 125, 629, 383, 628, 632, + 626, -441, 42, -492, 410, 409, -486, -488, 86, -487, + 86, -487, -487, -487, -487, -487, 86, 86, -489, 86, + -489, -489, -486, -490, 86, -490, -491, 86, -491, -490, + -362, -468, 555, -395, -397, -362, 40, -508, 62, -184, + 86, 32, 86, -216, -216, -362, 192, 170, 643, 36, + -509, 62, -184, 86, 32, -216, -208, -139, 40, -210, + 21, 159, 102, 92, -118, -99, 78, -118, -99, -99, + 87, 160, -566, 108, 109, -568, 210, 201, -362, -116, + 92, -7, -11, -8, -9, -10, -47, -85, -184, 547, + 550, -536, -534, 86, 33, 437, 83, 17, -448, 246, + 505, 388, 273, 249, 364, -446, -429, -426, -424, -361, + -422, -425, -424, -451, -338, 469, -140, 452, 451, 327, + -389, -389, -389, -389, -389, 107, 118, 355, 108, 109, + -384, -405, 33, 323, 324, -385, -385, -385, -385, -385, + -385, -385, -385, -385, -385, -385, -385, -393, -403, -479, + 86, 138, 136, 140, 137, 120, -387, -387, -385, -385, + -275, -361, 156, 87, 160, -389, -559, -558, 122, -389, + -389, -389, -389, -415, -417, -338, 86, -362, -556, -557, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 379, 374, 380, 378, 367, 386, 381, 382, 194, + 536, 537, 530, 531, 532, 533, 534, 535, -395, -395, + -389, -556, -395, -331, 34, 33, -397, -397, -397, 87, + -389, -569, 353, 352, 354, -211, -362, -395, 87, 87, + 87, 102, -397, -397, -395, -385, -395, -395, -395, -395, + -557, -331, -331, -331, -331, 147, -397, -397, -331, -331, + -331, -331, 147, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, 87, 87, 87, 147, -397, -209, + -138, -517, -516, -389, 42, -139, -210, -612, 636, 86, + -338, -600, 92, 92, 662, 170, 644, 17, 505, -362, + 17, 246, -362, 102, -362, 102, 495, 496, 169, 173, + 172, -362, 171, -362, -362, 118, -362, -362, 36, 86, + -225, -409, -409, -409, -577, -362, 93, -430, -427, -424, + -362, -362, -420, -362, -351, -249, -409, -409, -409, -409, + -249, -284, 54, 55, 56, -424, -177, 57, 58, -573, + -572, -561, 36, -214, -362, -319, -387, -387, -389, 364, + 505, 246, -424, 277, -619, -374, -374, -352, -351, -376, + -371, -376, -376, -319, -372, -374, -374, -389, -376, -372, + -319, -362, 469, -319, -319, -464, -374, -373, -362, -373, + -409, -351, -352, -352, -249, -249, -298, -305, -299, -306, + 269, 243, 372, 373, 240, 238, 11, 239, -313, 316, + -410, 513, -279, -280, 78, 43, -282, 267, 414, 407, + 279, 283, 96, 284, 447, 285, 248, 287, 288, 289, + 304, 306, 259, 290, 291, 292, 438, 293, 164, 305, + 294, 295, 296, 390, -274, 6, 340, 555, 42, 52, + 53, 461, 460, 558, 280, -362, -577, -575, 32, -362, + 32, -430, -424, -362, -362, 160, 250, -200, -202, -199, + -195, -196, -201, -322, -324, -198, 86, -249, -187, -362, + -441, 160, 493, 495, 496, -605, -442, -605, -442, 250, + 33, 437, -445, 437, 33, -420, -439, 489, 491, -435, + 92, 438, -425, -444, 83, 156, -516, -442, -442, -444, + -444, 155, 160, -603, 494, 495, 234, -209, 102, -251, + -249, -577, -429, -420, -362, -498, -251, -251, -251, -364, + -364, 86, 159, 37, -362, -362, -362, -362, -318, 160, + -317, 17, -363, -362, 36, 92, 159, -147, -145, 124, + -389, -6, 628, -389, -6, -6, -389, -6, -389, -496, + 411, 102, 102, -341, 92, -341, 102, 102, 102, 561, + 87, 92, -433, 83, -510, -398, -554, 617, -218, 87, + -211, -552, -553, -211, -217, -362, -508, -508, -241, 128, + 128, 128, 25, -510, -218, 87, -552, -509, -209, 618, + -139, -206, -205, -389, -362, 24, -118, -99, -564, 159, + 160, -214, -448, -428, -425, -450, 147, -362, -436, 160, + 555, 665, 90, 250, -590, -589, 429, 87, 160, -520, + 251, 512, 92, 662, 445, 228, 229, 107, 355, 108, + 109, -479, -397, -393, -387, -387, -385, -385, -391, 264, + -391, 117, -389, 663, -388, -558, 124, -389, 36, 160, + 36, 160, 84, 160, 87, -486, -389, 159, 87, 87, + 17, 17, 87, -389, 87, 87, 87, 87, 17, 17, + -389, 87, 159, 87, 87, 87, 87, 84, 87, 160, + 87, 87, 87, 87, 160, -397, -397, -389, -397, 87, + 87, 87, -389, -389, -389, -397, 87, -389, -389, -389, + -389, -389, -389, -389, -389, -389, -389, -214, -458, 464, + -458, -458, 160, 160, 160, 87, -139, 86, 102, 160, + 658, -345, -344, 92, -362, -362, 170, 644, -362, 92, + 644, -362, 92, 170, 174, 174, 173, -362, 92, 37, + 24, 24, 314, -234, -236, -237, -238, -239, -240, 138, + 161, 162, 86, -249, -249, -249, -579, 415, -591, 160, + 42, -589, 505, -173, 327, -413, 84, -180, 17, 555, + -249, -249, -249, -249, -263, 36, 17, -194, -250, -362, + -573, 86, 87, 160, -362, -362, -362, -421, 84, -362, + -352, -319, -319, -376, -319, -319, 160, 23, -374, -376, + -376, -241, -372, -241, 159, -241, -351, -485, 36, -215, + 160, 21, 269, -248, -359, -245, -247, 254, -379, -246, + 257, -548, 255, 253, 112, 258, 312, 113, 248, -359, + -359, 254, -283, 250, 36, -359, -301, 248, 358, 312, + 255, 21, 269, -300, 248, 113, -362, 254, 258, 255, + 253, -358, 128, -350, 155, 250, 44, 390, -358, 559, + 269, -358, -358, -358, -358, -358, -358, -358, 286, 286, + -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, + -358, 165, -358, -358, -358, -358, -358, -358, 86, 332, + 281, 282, 314, -580, 415, 32, 370, 370, 371, -591, + 366, 32, -181, 364, -304, -302, -373, 32, -325, -326, + -327, -328, -330, -329, 69, 73, 75, 79, 70, 71, + 72, 76, 81, 74, 32, 160, -360, -365, 36, -362, + 92, -360, -187, -202, -200, -360, 86, -442, -604, -606, + 497, 494, 500, -444, -444, 102, 250, 86, 128, -444, + -444, 42, -361, -601, 501, 495, -139, 160, 83, -251, + -226, -227, -228, -229, -256, -338, 196, 199, 201, 202, + 203, 204, 206, 207, 208, 209, 210, 213, 214, 211, + 212, 263, 191, 192, 193, 194, 215, 177, 197, 553, + 178, 179, 180, 181, 182, 183, 186, 187, 188, 189, + 185, -362, -235, -319, -190, -202, -362, 92, -362, 147, + 125, -6, 123, -151, -150, -149, 126, 626, 632, 125, + 125, 125, 87, 87, 87, 160, 87, 87, 87, 160, + 87, 160, 102, -523, 474, 41, 160, 86, 87, 160, + 62, 160, 128, 87, 160, -433, -389, -362, 92, -389, + 192, 87, 62, -139, 92, 160, -203, 38, 39, 159, + 447, -362, -534, 87, -450, 160, 250, 159, 159, -426, + 393, -361, -428, 21, 555, -338, 40, -345, 128, 662, + -362, 87, -391, -391, 117, -387, -384, 87, 125, -389, + 123, -254, -256, 409, 410, -389, -254, -255, -261, 156, + 195, 263, 194, 193, 191, 409, 410, -273, -417, 552, + -203, 87, -362, -389, -389, 87, -389, -389, 17, -362, + -273, -385, -389, -208, -208, 87, 87, -457, -458, -457, + -457, 87, 87, 87, 87, -457, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 86, 102, 104, + 102, 104, -516, -613, 64, 634, 63, 437, 107, 317, + 160, 102, 92, 663, 160, 128, 92, -362, -362, 17, + 246, -362, 17, 174, 92, -592, 321, 364, 505, 246, + 364, 321, 505, 246, -469, 102, 401, 87, 160, -338, + -226, -215, 86, -215, -582, 476, 417, 427, -358, -381, + -380, 366, 43, -503, 438, 423, 424, -427, 277, -351, + -588, 99, 128, 83, 344, 348, 350, 349, 345, 346, + 347, -407, -408, -406, -410, -575, 86, 86, -184, 36, + 136, -180, 86, 86, 36, -480, 334, -256, -249, -194, + -362, 17, 160, -574, 159, 17, -1, -362, -362, -420, + -374, -319, -389, -389, -319, -374, -374, -376, -362, -241, + -480, -256, 36, -299, 243, 239, -454, 314, 315, -455, + -470, 317, -472, 86, -253, -338, -246, -547, -548, -409, + -362, 113, -547, 113, 86, -253, -338, -338, -302, -338, + -362, -362, -362, -362, -309, -308, -338, -311, 33, -312, + -362, -362, -362, -362, 113, -362, 113, -278, 42, 49, + 50, 51, -358, -358, 198, -281, 42, 437, 439, 440, + -311, 102, 102, 102, 102, 92, 92, 92, -358, -358, + 102, 92, -365, 92, -549, 173, 46, 47, 102, 102, + 102, 102, 42, 92, -286, 42, 297, 301, 298, 299, + 300, 92, 102, 42, 102, 42, 102, 42, -362, 86, + -550, -551, 92, 333, -469, -582, -358, 370, -441, 128, + 128, -381, -584, 96, 418, -587, 327, -183, 505, 33, + -219, 243, 239, -575, -432, -431, -338, -199, -199, -199, + -199, -199, -199, 69, 80, 69, -212, 86, 69, 74, + 69, 74, 69, -327, 69, 80, -432, -201, -215, -365, + 87, -598, -597, -596, -594, 77, 251, 78, -395, -444, + 494, 498, 499, -428, -377, 92, -435, -223, 24, -249, + -249, -501, 307, 308, 87, 160, -256, -321, 19, 159, + 121, -6, -147, -149, -389, -6, -389, 628, 383, 629, + 92, 102, 102, -531, 458, 453, 455, 113, -398, -518, + -517, 62, -184, -211, -510, -553, -516, -362, 663, 663, + 663, 663, 92, 62, -184, -510, -223, -523, -205, -204, + 45, -362, 102, 17, -425, -420, 147, 147, -362, 394, + -436, 92, 416, 92, 246, 663, 92, -345, -384, -389, + 87, -264, 182, 181, -264, 36, 87, 87, -487, -487, + -486, -489, -486, -264, -264, 87, 86, -203, 87, 24, + 87, 87, 87, -389, 87, 87, 160, -506, 514, -507, + 588, -457, -457, -457, -457, -457, -457, -457, -457, -457, + -457, -457, -457, -457, -457, -457, -457, -457, -400, -399, + 269, 459, 641, 641, 459, 641, 641, 87, 160, -556, + 160, -353, 322, -353, -344, 92, 250, 92, 170, -362, + 92, 644, 92, -362, -362, -362, 314, -362, 314, -362, + -362, 92, 92, 92, -238, -256, 87, 36, -242, -243, + -244, -253, -245, -247, 36, -583, 96, -578, 92, -362, + 93, -584, 158, 368, 42, 419, 420, 435, 363, 102, + 102, 425, -576, -362, -182, 246, 364, -586, 53, 128, + 92, -249, -406, -350, 155, 288, 337, -316, -315, -362, + 92, -242, -184, -249, -242, -242, -184, -481, 336, 21, + 102, 146, -216, 84, 159, -202, -250, -362, 147, -249, + 87, -319, -241, -319, -319, -374, -481, -184, -466, 318, + 86, -464, 86, -464, 113, 345, -473, -471, 269, -307, + 46, 48, -256, -545, -362, -543, -545, -362, -543, -543, + -409, -389, -307, -253, 250, 32, 239, -310, 342, 343, + 348, 350, -437, 313, 118, -437, 160, -203, 160, -362, + -273, -273, 32, 92, 92, -251, 87, 160, 128, 102, + 92, -583, -578, 128, -442, 92, 92, -584, 92, 92, + -588, 128, -252, 246, -351, 160, -219, -219, -319, 160, + 128, -221, -220, 83, 84, -222, 83, -220, -220, 69, + -213, 92, 69, 69, -319, -596, -595, 24, -548, -548, + -548, 87, 87, 15, -228, 42, -320, 20, 21, 147, + 125, 123, 125, 125, -362, 87, 87, -493, 619, -527, + -529, 453, 21, 21, 15, 251, 87, -510, 663, -510, + -531, 46, 47, -420, -436, 438, -249, 160, 663, -254, + -292, 92, -389, 87, -389, 87, 92, 87, 92, -208, + 21, 87, 160, 87, 87, 87, 160, 87, 87, -389, + 87, -556, -354, 192, 92, -354, 364, -363, -362, 17, + -362, 92, -362, -469, 314, -469, 314, 246, -362, 244, + -184, 87, 160, -184, 92, -581, 429, 102, 42, 102, + 158, 421, -504, -174, 96, -251, 33, -219, -585, 96, + 128, 662, 86, -358, -358, -358, -362, 87, 160, -358, + -358, 87, 87, 87, -271, 555, -482, 268, 102, 146, + 102, 146, 102, -360, -202, -362, -319, -574, 159, -216, + -319, -482, -456, 319, 102, -385, 86, -385, 86, -465, + 316, 86, 87, 160, -362, -338, -268, -267, -265, 107, + 118, 42, 407, -266, 96, 155, 302, 305, 304, 280, + 303, -297, -378, 83, 413, 342, 343, -410, 619, 543, + 253, 112, 113, 395, -379, 86, 86, 84, 322, 86, + 86, -545, 87, -307, -338, 42, -310, 42, 356, 313, + -308, -362, 155, -273, 87, -551, 92, -556, -581, 92, + -444, -586, 92, -174, -251, -575, -208, -431, -516, -389, + 86, -389, 87, 86, 69, 11, 19, -382, -389, -397, + 647, 649, 650, 252, -6, 629, 383, -288, 620, 92, + 21, 92, -525, 92, -432, -493, -142, -285, -350, 285, + 87, -291, 138, 555, 87, 87, -457, -457, -460, -459, + -463, 459, 314, 467, -397, 92, 92, 87, 87, 92, + -362, 170, 92, 662, 92, -469, 92, -469, -362, 314, + -230, -256, -178, 555, -271, -244, -178, 21, 555, 367, + 42, 102, 42, 422, 92, -182, 128, 108, 109, -346, + -347, 92, -415, -273, -275, 92, -315, -382, -382, -269, + -184, 36, -270, -313, -410, 555, -141, -140, -269, 555, + 86, -483, 164, 102, 146, 102, 102, -319, -319, -360, + -483, -472, 21, 87, -451, 87, -451, 86, 128, -385, + -471, -474, 62, -265, 107, -385, 92, -275, -276, 42, + 301, 297, 128, 128, -277, 42, 281, 282, -287, 86, + 312, 15, 198, 86, 113, 113, -249, -415, -415, -546, + 344, 345, 346, 351, 348, 349, 347, 350, -546, -415, + -415, 86, -438, -437, -385, -358, -358, 155, -585, -209, + -214, -544, -362, 253, 21, 21, -502, 555, 648, 86, + 86, -362, -362, -342, 621, 102, 92, 455, -288, -494, + 622, -521, -464, -273, 128, 87, 76, 553, 556, 87, + -462, 120, 421, 425, -383, -386, 102, 104, 190, 158, + 87, 87, -362, -349, -348, 92, 92, 92, 314, -469, + 554, -179, 61, 501, 92, 93, 416, 92, 93, 367, + -174, 92, 663, 160, 128, 87, -452, 269, -184, 160, + -313, -350, -142, -452, -272, -314, -362, 92, -500, 173, + 335, 555, 102, 146, 102, -208, -319, -484, 173, 335, + -455, 87, 87, 87, -451, 102, 87, -478, -475, 86, + -313, 271, 138, 92, 92, 102, 86, -511, 32, 92, + -416, 86, 87, 87, 87, 87, -415, 102, -273, -358, + 87, 87, 160, 650, 86, -397, -397, 86, 21, -342, + -495, 623, 92, -530, 458, -524, -522, 453, 454, 455, + 456, 92, 554, 66, 557, -461, -462, 425, -383, -386, + 617, 465, 465, 465, 663, 160, 128, -469, 92, -232, + -362, 312, 438, -347, 92, -418, -453, 321, 21, -313, + -358, -453, 87, 160, -358, -358, 335, 102, 146, 102, + -209, -208, 335, -467, 320, 87, -478, -313, -477, -476, + 319, 272, 86, 87, -389, -401, -358, 87, -290, -289, + 551, -415, -418, 84, -418, 84, -418, 84, -418, 84, + 87, -273, -362, 253, -137, 86, 87, 87, -343, -362, + -525, 92, -532, 251, -528, -529, 457, -522, 21, 455, + 21, 21, -143, 160, 66, 117, 466, 466, 466, -348, + 92, 92, -231, 36, 460, 394, -419, 259, 356, 357, + 96, 555, 342, 343, 361, 360, 359, 362, 21, -454, + -273, -314, -382, -382, 102, -209, 102, 87, 160, -362, 268, 86, -396, -390, -389, 268, 87, -362, -296, -294, -295, 83, 472, 310, 311, 87, -546, -546, -546, -546, -297, 87, 160, -395, 87, 160, -539, 86, 102, -527, @@ -9743,8 +9870,8 @@ var yyDef = [...]int{ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 316, 317, 318, 319, - 320, 321, 983, 984, 985, 986, 987, 988, 989, 990, - 991, 0, 0, 0, 0, 0, 720, 721, 0, 684, + 320, 321, 986, 987, 988, 989, 990, 991, 992, 993, + 994, 0, 0, 0, 0, 0, 720, 721, 0, 684, 0, 0, 0, 0, 0, 0, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, @@ -9752,405 +9879,407 @@ var yyDef = [...]int{ 590, 591, 592, 593, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 0, 350, 346, 258, 259, 260, 261, 262, 263, 264, 357, 358, 533, 0, 0, 0, - 0, 803, -2, 102, 0, 0, 0, 0, 339, 0, - 330, 330, 0, 0, 992, 993, 994, 995, 996, 997, - 998, 999, 1000, 1001, 1002, 1003, 1004, -2, 733, 0, + 0, 806, -2, 102, 0, 0, 0, 0, 339, 0, + 330, 330, 0, 0, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, -2, 734, 0, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 414, 415, 416, - 410, 411, 413, 412, -2, 0, 0, 733, 0, 0, - 0, 811, 0, 0, 0, 854, 872, 23, 0, 7, + 410, 411, 413, 412, -2, 0, 0, 734, 0, 0, + 0, 814, 0, 0, 0, 857, 875, 23, 0, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 0, 19, 0, 0, 0, 1414, 1415, - 1416, 1417, 2220, 2190, -2, 1952, 1926, 2114, 2115, 2009, - 2022, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, - 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, - 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, - 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, - 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, - 2306, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, - 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, - 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, - 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, - 1922, 1923, 1924, 1925, 1927, 1928, 1929, 1930, 1931, 1932, - 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, - 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1953, - 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, - 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, - 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, - 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, - 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008, 2010, 2011, 2012, 2013, 2014, - 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2024, 2025, 2026, - 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, - 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, - 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, - 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, - 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, - 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, - 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, - 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, - 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2116, 2117, 2118, - 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, - 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, - 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, -2, 2148, - 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, - 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, - 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, - 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, - 2189, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, - 2200, 2201, 2202, 2203, 2204, 2205, -2, -2, -2, 2209, - 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, - 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, - 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, - 2241, 2242, 2243, 2244, 2245, 2246, 0, 314, 312, 1896, - 1926, 1952, 2009, 2022, 2023, 2062, 2114, 2115, 2147, 2190, - 2206, 2207, 2208, 2220, 0, 0, 1009, 0, 781, 0, - 0, 786, 1361, 781, 351, 722, 723, 811, 837, 682, - 0, 388, 0, 1942, 392, 2197, 0, 0, 0, 0, - 679, 382, 383, 384, 385, 386, 387, 0, 0, 982, - 0, 0, 378, 0, 345, 2012, 2219, 1418, 0, 0, - 0, 0, 0, 201, 1133, 203, 1135, 207, 215, 0, - 0, 0, 220, 221, 224, 225, 226, 227, 228, 0, - 232, 0, 234, 237, 0, 239, 240, 0, 243, 244, - 245, 0, 255, 256, 257, 1136, 1137, 1138, -2, 130, - 1007, 1854, 1740, 0, 1747, 1760, 1771, 1500, 1501, 1502, - 1503, 0, 0, 0, 0, 0, 0, 1511, 1512, 0, - 1542, 2261, 2302, 2303, 0, 1520, 1521, 1522, 1523, 1524, - 1525, 0, 141, 153, 154, 1793, 1794, 1795, 1796, 1797, - 1798, 1799, 0, 1801, 1802, 1803, 1711, 1487, 1414, 0, - 2270, 0, 2292, 2297, 2298, 2299, 2300, 2291, 0, 0, - 1695, 0, 1685, 0, 0, -2, -2, 0, 0, 2087, - -2, 2304, 2305, 2306, 2267, 2288, 2296, 2271, 2272, 2295, - 2263, 2264, 2265, 2258, 2259, 2260, 2262, 2274, 2276, 2287, - 0, 2283, 2293, 2294, 2195, 0, 0, 2242, 0, 0, - 0, 2237, 155, 156, -2, -2, -2, -2, -2, -2, + 0, 0, 19, 0, 19, 0, 0, 0, 1417, 1418, + 1419, 1420, 2223, 2193, -2, 1955, 1929, 2117, 2118, 2012, + 2025, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, + 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, + 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, + 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, + 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, + 2309, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, + 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, + 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, + 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, + 1925, 1926, 1927, 1928, 1930, 1931, 1932, 1933, 1934, 1935, + 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, + 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1956, + 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, + 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, + 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, + 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, + 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2017, + 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2027, 2028, 2029, + 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, + 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, + 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, + 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, + 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, + 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, + 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, + 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, + 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2119, 2120, 2121, + 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, + 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, + 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, -2, 2151, + 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, + 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, + 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, + 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, + 2192, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, + 2203, 2204, 2205, 2206, 2207, 2208, -2, -2, -2, 2212, + 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, + 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, + 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, + 2244, 2245, 2246, 2247, 2248, 2249, 0, 314, 312, 1899, + 1929, 1955, 2012, 2025, 2026, 2065, 2117, 2118, 2150, 2193, + 2209, 2210, 2211, 2223, 0, 0, 1012, 0, 784, 0, + 0, 0, 789, 1364, 784, 0, 351, 722, 723, 814, + 840, 682, 0, 388, 0, 1945, 392, 2200, 0, 0, + 0, 0, 679, 382, 383, 384, 385, 386, 387, 0, + 0, 985, 0, 0, 378, 0, 345, 2015, 2222, 1421, + 0, 0, 0, 0, 0, 201, 1136, 203, 1138, 207, + 215, 0, 0, 0, 220, 221, 224, 225, 226, 227, + 228, 0, 232, 0, 234, 237, 0, 239, 240, 0, + 243, 244, 245, 0, 255, 256, 257, 1139, 1140, 1141, + -2, 130, 1010, 1857, 1743, 0, 1750, 1763, 1774, 1503, + 1504, 1505, 1506, 0, 0, 0, 0, 0, 0, 1514, + 1515, 0, 1545, 2264, 2305, 2306, 0, 1523, 1524, 1525, + 1526, 1527, 1528, 0, 141, 153, 154, 1796, 1797, 1798, + 1799, 1800, 1801, 1802, 0, 1804, 1805, 1806, 1714, 1490, + 1417, 0, 2273, 0, 2295, 2300, 2301, 2302, 2303, 2294, + 0, 0, 1698, 0, 1688, 0, 0, -2, -2, 0, + 0, 2090, -2, 2307, 2308, 2309, 2270, 2291, 2299, 2274, + 2275, 2298, 2266, 2267, 2268, 2261, 2262, 2263, 2265, 2277, + 2279, 2290, 0, 2286, 2296, 2297, 2198, 0, 0, 2245, + 0, 0, 0, 2240, 155, 156, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, 1706, -2, 1708, -2, 1710, -2, 1713, -2, -2, - -2, -2, 1718, 1719, -2, 1721, -2, -2, -2, -2, - -2, -2, -2, 1697, 1698, 1699, 1700, 1689, 1690, 1691, - 1692, 1693, 1694, -2, -2, -2, 837, 930, 0, 837, - 0, 812, 859, 862, 865, 868, 815, 0, 0, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 340, 341, 329, 331, 0, 335, 0, 0, 331, 328, - 322, 0, 1174, 1174, 1174, 0, 0, 0, 0, 1174, - 1174, 1174, 1174, 1174, 0, 1174, 0, 0, 0, 0, - 0, 1174, 0, 1042, 1140, 1141, 1142, 1172, 1173, 1246, - 0, 0, 0, 738, 734, 735, 736, 737, 825, 0, - 827, 830, 0, 0, 659, 659, 897, 897, 0, 605, - 0, 0, 0, 659, 0, 619, 611, 0, 0, 0, - 659, 0, 0, 832, 832, 0, 662, 669, 659, 659, - -2, 659, 659, 656, 659, 0, 0, 1186, 625, 626, - 627, 611, 611, 630, 631, 632, 642, 643, 670, 1878, - 0, 0, 533, 533, 0, 533, 533, 0, 533, 533, - 533, 0, 740, 1968, 2057, 1949, 2028, 1906, 2012, 2219, - 0, 287, 2087, 292, 0, 1951, 1971, 0, 0, 1990, - 0, -2, 0, 367, 837, 0, 0, 811, 0, 0, - 0, 0, 533, 533, 533, 533, 533, 1245, 533, 533, - 533, 533, 533, 0, 0, 0, 533, 533, 533, 533, - 0, 873, 874, 876, 877, 878, 879, 880, 881, 882, - 883, 884, 885, 5, 6, 19, 0, 0, 0, 0, - 0, 0, 109, 108, 0, 1855, 1873, 1806, 1807, 1808, - 1860, 1810, 1864, 1864, 1864, 1864, 1839, 1840, 1841, 1842, - 1843, 1844, 1845, 1846, 1847, 1848, 1864, 1864, 0, 0, - 1853, 1830, 1862, 1862, 1862, 1860, 1857, 1811, 1812, 1813, + -2, -2, -2, 1709, -2, 1711, -2, 1713, -2, 1716, + -2, -2, -2, -2, 1721, 1722, -2, 1724, -2, -2, + -2, -2, -2, -2, -2, 1700, 1701, 1702, 1703, 1692, + 1693, 1694, 1695, 1696, 1697, -2, -2, -2, 840, 933, + 0, 840, 0, 815, 862, 865, 868, 871, 818, 0, + 0, 103, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 340, 341, 329, 331, 0, 335, 0, 0, + 331, 328, 322, 0, 1177, 1177, 1177, 0, 0, 0, + 0, 1177, 1177, 1177, 1177, 1177, 0, 1177, 0, 0, + 0, 0, 0, 1177, 0, 1045, 1143, 1144, 1145, 1175, + 1176, 1249, 0, 0, 0, 739, 734, 735, 736, 737, + 738, 828, 0, 830, 833, 0, 0, 659, 659, 900, + 900, 0, 605, 0, 0, 0, 659, 0, 619, 611, + 0, 0, 0, 659, 0, 0, 835, 835, 0, 662, + 669, 659, 659, -2, 659, 659, 656, 659, 0, 0, + 1189, 625, 626, 627, 611, 611, 630, 631, 632, 642, + 643, 670, 1881, 0, 0, 533, 533, 0, 533, 533, + 0, 533, 533, 533, 0, 741, 1971, 2060, 1952, 2031, + 1909, 2015, 2222, 0, 287, 2090, 292, 0, 1954, 1974, + 0, 0, 1993, 0, -2, 0, 367, 840, 0, 0, + 814, 0, 0, 0, 0, 533, 533, 533, 533, 533, + 1248, 533, 533, 533, 533, 533, 0, 0, 0, 533, + 533, 533, 533, 0, 876, 877, 879, 880, 881, 882, + 883, 884, 885, 886, 887, 888, 5, 6, 19, 0, + 0, 0, 0, 0, 0, 109, 108, 0, 1858, 1876, + 1809, 1810, 1811, 1863, 1813, 1867, 1867, 1867, 1867, 1842, + 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1867, + 1867, 0, 0, 1856, 1833, 1865, 1865, 1865, 1863, 1860, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, - 1824, 1867, 1867, 1870, 1870, 1867, 0, 428, 426, 427, - 1736, 0, 0, 0, 0, 781, 785, 1359, 0, 0, - 0, 837, -2, 0, 0, 683, 389, 1419, 0, 0, - 393, 0, 394, 0, 0, 396, 0, 0, 0, 417, - 0, 420, 404, 405, 406, 407, 400, 0, 181, 0, - 380, 381, 0, 0, 347, 0, 0, 0, 534, 0, - 0, 0, 0, 0, 0, 212, 208, 216, 219, 229, - 236, 0, 248, 250, 253, 209, 217, 222, 223, 230, - 251, 210, 213, 214, 218, 252, 254, 211, 231, 235, - 249, 233, 238, 241, 242, 247, 0, 182, 0, 0, - 0, 0, 0, 1746, 0, 0, 1779, 1780, 1781, 1782, - 1783, 1784, 1785, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -2, 1740, 0, 0, 1506, 1507, 1508, 1509, - 0, 1513, 0, 1543, 0, 0, 0, 0, 0, 0, - 1800, 1804, 0, 1736, 1736, 0, 1736, 1732, 0, 0, - 0, 0, 0, 0, 1736, 1668, 0, 0, 1670, 1686, - 0, 0, 1672, 1673, 0, 1676, 1677, 1736, 0, 1736, - 1681, 1736, 1736, 1736, 1664, 1665, 0, 1732, 1732, 1732, - 1732, 0, 0, 1732, 1732, 1732, 1732, 1732, 1732, 1732, - 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 0, 0, - 0, 0, 832, 0, 838, 0, -2, 0, 856, 858, - 860, 861, 863, 864, 866, 867, 869, 870, 817, 0, - 0, 105, 0, 0, 0, 0, 0, 0, 71, 73, - 0, 0, 0, 0, 0, 0, 333, 0, 338, 324, - 2049, 0, 323, 0, 0, 0, 0, 0, 1006, 0, - 0, 1174, 1174, 1174, 1043, 0, 0, 0, 0, 0, - 0, 0, 0, 1174, 1174, 1174, 1174, 0, 1192, 0, - 0, 0, 740, 739, 0, 826, 0, 0, 70, 594, - 595, 596, 897, 0, 0, 598, 599, 0, 600, 0, - 0, 611, 659, 659, 617, 618, 613, 612, 665, 666, - 662, 0, 662, 662, 897, 0, 636, 637, 638, 659, - 659, 644, 833, 0, 645, 646, 662, 0, 667, 668, - 897, 0, 0, 897, 897, 0, 654, 655, 657, 659, - 0, 0, 1174, 0, 675, 613, 613, 1879, 1880, 0, - 0, 1183, 0, 0, 0, 0, 678, 0, 0, 0, - 444, 445, 0, 0, 741, 0, 266, 270, 0, 273, - 0, 2057, 0, 2057, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 310, 311, 0, 0, 0, 0, 301, - 304, 1353, 1354, 1130, 1131, 305, 306, 359, 360, 0, - 832, 855, 857, 851, 852, 853, 0, 72, 0, 0, - 0, 0, 0, 533, 0, 0, 0, 0, 0, 716, - 0, 1022, 718, 0, 0, 0, 0, 0, 905, 899, - 901, 977, 141, 875, 8, 126, 123, 0, 19, 0, - 0, 19, 19, 0, 19, 315, 0, 1876, 1874, 1875, - 1809, 1861, 0, 1835, 0, 1836, 1837, 1838, 1849, 1850, - 0, 0, 1831, 0, 1832, 1833, 1834, 1825, 0, 1826, - 1827, 0, 1828, 1829, 313, 425, 0, 0, 1737, 1010, - 0, 759, 773, 754, 0, 762, 0, 0, 1361, 0, - 0, 0, 0, 742, 773, 744, 0, 762, 832, 809, - 0, 787, 0, 0, 390, 0, 401, 395, 0, 402, - 397, 398, 0, 0, 419, 421, 422, 423, 408, 409, - 680, 376, 377, 368, 369, 370, 371, 372, 373, 374, - 375, 0, 0, 379, 151, 0, 348, 349, 0, 0, - 0, 195, 196, 197, 198, 199, 200, 202, 186, 705, - 707, 1122, 1134, 0, 1125, 0, 205, 246, 178, 0, - 0, 0, 1741, 1742, 1743, 1744, 1745, 1750, 0, 1752, - 1754, 1756, 1758, 0, 1776, -2, -2, 1488, 1489, 1490, - 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1761, - 1774, 1775, 0, 0, 0, 0, 0, 0, 1772, 1772, - 1767, 0, 1526, 1355, 1356, 1504, 0, 0, 1540, 1544, - 0, 0, 0, 0, 0, 0, 1157, 1860, 0, 142, - 1731, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, - 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, - 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, - 0, 0, 1740, 0, 0, 0, 1733, 1734, 0, 0, - 0, 1623, 0, 0, 1629, 1630, 1631, 0, 768, 0, - 1696, 1669, 1687, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 929, 931, 0, 777, 779, 780, 806, 787, 813, - 0, 0, 0, 101, 106, 0, 1213, 0, 0, 0, - 0, 0, 0, 0, 74, 1187, 75, 1189, 342, 343, - 0, 0, 337, 325, 2049, 327, 0, 0, 0, 0, - 0, -2, 0, 0, 0, 0, 0, 1058, 1059, 531, - 1116, 0, 0, 0, 1132, 1161, 1170, 0, 0, 0, - 0, 0, 1219, 1044, 1049, 1050, 1051, 1045, 1046, 1052, - 1053, 0, 828, 0, 0, 946, 597, 660, 661, 898, - 601, 0, 0, 608, 2012, 613, 897, 897, 620, 614, - 621, 664, 622, 623, 624, 662, 897, 897, 834, 659, - 662, 647, 663, 662, 1361, 651, 0, 658, 1361, 676, - 1361, 0, 674, 628, 629, 1221, 830, 442, 443, 448, - 450, 0, 499, 499, 499, 482, 499, 0, 0, 470, - 1881, 0, 0, 0, 0, 479, 1881, 0, 0, 1881, - 1881, 1881, 1881, 1881, 1881, 1881, 0, 0, 1881, 1881, - 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 0, - 1881, 1881, 1881, 1881, 1881, 1338, 1881, 0, 498, 1184, - 489, 490, 491, 492, 497, 0, 0, 527, 0, 0, - 1057, 0, 531, 0, 0, 1099, 0, 0, 910, 0, - 911, 912, 913, 908, 948, 972, 972, 0, 972, 952, - 1361, 0, 0, 0, 278, 279, 267, 0, 268, 0, - 0, 281, 282, 0, 284, 285, 286, 293, 1949, 2028, - 288, 290, 0, 0, 294, 307, 308, 309, 0, 0, - 299, 300, 0, 0, 362, 363, 365, 0, 787, 1188, - 702, 1357, 703, 704, 708, 0, 0, 711, 712, 713, - 714, 715, 1024, 0, 0, 1108, 1109, 1110, 1111, 897, - 0, 906, 0, 902, 978, 0, 980, 0, 0, 124, - 19, 0, 117, 114, 0, 0, 0, 0, 0, 1856, - 1805, 1877, 0, 0, 0, 1858, 0, 0, 0, 0, - 0, 107, 789, 749, 0, 753, 770, 0, 774, 0, - 0, 766, 758, 763, 0, 0, 783, 750, 1360, 0, - 0, 0, 0, 743, 0, 0, 748, 787, 0, 810, - 839, 840, 843, 1420, 0, 403, 399, 418, 0, 0, - 0, 0, 189, 1119, 0, 190, 194, 184, 0, 0, - 0, 1124, 0, 1121, 1126, 0, 204, 0, 0, 179, - 180, 1204, 1213, 0, 0, 0, 1751, 1753, 1755, 1757, - 1759, 0, 1762, 1772, 1772, 1768, 0, 1763, 0, 1765, - 0, 1741, 1510, 0, 1545, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 843, 0, 0, 1613, 1614, 0, - 0, 1618, 0, 1620, 1621, 1622, 1624, 0, 0, 0, - 1628, 0, 1667, 1688, 1671, 1674, 0, 1678, 0, 1680, - 1682, 1683, 1684, 0, 837, 837, 0, 0, 1584, 1584, - 1584, 0, 0, 0, 0, 1584, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1529, 0, 1530, - 1531, 0, 0, 0, 932, 807, 0, 0, 0, 0, - 0, 1211, 0, 91, 0, 0, 0, 0, 96, 0, - 0, 76, 344, 332, 334, 0, 326, 0, 1175, 0, - 0, 0, 0, 0, 1012, 1013, 1015, 0, 1018, 1019, - 1020, 1024, 830, 0, 830, 1069, 1881, 535, 0, 0, - 1118, 0, 1088, 0, 0, 0, -2, 0, 0, 1170, - 0, 0, 0, 1223, 0, 0, 0, 727, 731, 23, - 831, 0, 604, 602, 0, 606, 0, 607, 659, 615, - 616, 897, 639, 640, 0, 0, 897, 659, 659, 650, - 662, 671, 0, 672, 1361, 1223, 0, 0, 1183, 1289, - 1257, 460, 0, 1374, 1375, 500, 0, 1381, 1390, 1174, - 1452, 0, 1390, 0, 0, 1392, 1393, 0, 0, 0, - 0, 483, 484, 0, 469, 0, 0, 0, 0, 0, - 0, 468, 0, 0, 510, 0, 0, 0, 0, 0, - 1882, 1881, 1881, 0, 477, 478, 0, 481, 0, 0, - 0, 0, 0, 0, 0, 0, 1881, 1881, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1329, - 0, 0, 0, 0, 0, 0, 0, 0, 1345, 1346, - 0, 1069, 1881, 0, 0, 0, 0, 535, 1113, 1086, - 1104, 0, 446, 447, 507, 0, 0, 0, 0, 0, - 0, 0, 938, 0, 0, 0, 937, 0, 0, 0, - 0, 0, 0, 0, 830, 973, 0, 975, 976, 950, - -2, 0, 910, 955, 1736, 0, 271, 272, 0, 0, - 277, 295, 297, 269, 0, 0, 0, 296, 298, 302, - 303, 361, 364, 366, 849, 0, 0, 1247, 0, 1025, - 1026, 1028, 1029, 0, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, 1933, -2, -2, + 1824, 1825, 1826, 1827, 1870, 1870, 1873, 1873, 1870, 0, + 428, 426, 427, 1739, 0, 0, 0, 0, 784, 784, + 788, 1362, 0, 0, 0, 784, 840, -2, 0, 0, + 683, 389, 1422, 0, 0, 393, 0, 394, 0, 0, + 396, 0, 0, 0, 417, 0, 420, 404, 405, 406, + 407, 400, 0, 181, 0, 380, 381, 0, 0, 347, + 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, + 212, 208, 216, 219, 229, 236, 0, 248, 250, 253, + 209, 217, 222, 223, 230, 251, 210, 213, 214, 218, + 252, 254, 211, 231, 235, 249, 233, 238, 241, 242, + 247, 0, 182, 0, 0, 0, 0, 0, 1749, 0, + 0, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -2, 1743, 0, + 0, 1509, 1510, 1511, 1512, 0, 1516, 0, 1546, 0, + 0, 0, 0, 0, 0, 1803, 1807, 0, 1739, 1739, + 0, 1739, 1735, 0, 0, 0, 0, 0, 0, 1739, + 1671, 0, 0, 1673, 1689, 0, 0, 1675, 1676, 0, + 1679, 1680, 1739, 0, 1739, 1684, 1739, 1739, 1739, 1667, + 1668, 0, 1735, 1735, 1735, 1735, 0, 0, 1735, 1735, + 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, + 1735, 1735, 1735, 0, 0, 0, 0, 835, 0, 841, + 0, -2, 0, 859, 861, 863, 864, 866, 867, 869, + 870, 872, 873, 820, 0, 0, 105, 0, 0, 0, + 0, 0, 0, 71, 73, 0, 0, 0, 0, 0, + 0, 333, 0, 338, 324, 2052, 0, 323, 0, 0, + 0, 0, 0, 1009, 0, 0, 1177, 1177, 1177, 1046, + 0, 0, 0, 0, 0, 0, 0, 0, 1177, 1177, + 1177, 1177, 0, 1195, 0, 0, 0, 741, 740, 739, + 0, 829, 0, 0, 70, 594, 595, 596, 900, 0, + 0, 598, 599, 0, 600, 0, 0, 611, 659, 659, + 617, 618, 613, 612, 665, 666, 662, 0, 662, 662, + 900, 0, 636, 637, 638, 659, 659, 644, 836, 0, + 645, 646, 662, 0, 667, 668, 900, 0, 0, 900, + 900, 0, 654, 655, 657, 659, 0, 0, 1177, 0, + 675, 613, 613, 1882, 1883, 0, 0, 1186, 0, 0, + 0, 0, 678, 0, 0, 0, 444, 445, 0, 0, + 742, 0, 266, 270, 0, 273, 0, 2060, 0, 2060, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 310, + 311, 0, 0, 0, 0, 301, 304, 1356, 1357, 1133, + 1134, 305, 306, 359, 360, 0, 835, 858, 860, 854, + 855, 856, 0, 72, 0, 0, 0, 0, 0, 533, + 0, 0, 0, 0, 0, 716, 0, 1025, 718, 0, + 0, 0, 0, 0, 908, 902, 904, 980, 141, 878, + 8, 126, 123, 0, 19, 0, 0, 19, 19, 0, + 19, 315, 0, 1879, 1877, 1878, 1812, 1864, 0, 1838, + 0, 1839, 1840, 1841, 1852, 1853, 0, 0, 1834, 0, + 1835, 1836, 1837, 1828, 0, 1829, 1830, 0, 1831, 1832, + 313, 425, 0, 0, 1740, 1013, 0, 762, 776, 757, + 0, 765, 0, 0, 0, 1364, 0, 0, 0, 0, + 743, 776, 746, 0, 765, 0, 835, 812, 0, 790, + 0, 0, 390, 0, 401, 395, 0, 402, 397, 398, + 0, 0, 419, 421, 422, 423, 408, 409, 680, 376, + 377, 368, 369, 370, 371, 372, 373, 374, 375, 0, + 0, 379, 151, 0, 348, 349, 0, 0, 0, 195, + 196, 197, 198, 199, 200, 202, 186, 705, 707, 1125, + 1137, 0, 1128, 0, 205, 246, 178, 0, 0, 0, + 1744, 1745, 1746, 1747, 1748, 1753, 0, 1755, 1757, 1759, + 1761, 0, 1779, -2, -2, 1491, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1764, 1777, 1778, + 0, 0, 0, 0, 0, 0, 1775, 1775, 1770, 0, + 1529, 1358, 1359, 1507, 0, 0, 1543, 1547, 0, 0, + 0, 0, 0, 0, 1160, 1863, 0, 142, 1734, 1638, + 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, + 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, + 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 0, 0, + 1743, 0, 0, 0, 1736, 1737, 0, 0, 0, 1626, + 0, 0, 1632, 1633, 1634, 0, 771, 0, 1699, 1672, + 1690, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 932, + 934, 0, 780, 782, 783, 809, 790, 816, 0, 0, + 0, 101, 106, 0, 1216, 0, 0, 0, 0, 0, + 0, 0, 74, 1190, 75, 1192, 342, 343, 0, 0, + 337, 325, 2052, 327, 0, 0, 0, 0, 0, -2, + 0, 0, 0, 0, 0, 1061, 1062, 531, 1119, 0, + 0, 0, 1135, 1164, 1173, 0, 0, 0, 0, 0, + 1222, 1047, 1052, 1053, 1054, 1048, 1049, 1055, 1056, 0, + 741, 831, 0, 0, 949, 597, 660, 661, 901, 601, + 0, 0, 608, 2015, 613, 900, 900, 620, 614, 621, + 664, 622, 623, 624, 662, 900, 900, 837, 659, 662, + 647, 663, 662, 1364, 651, 0, 658, 1364, 676, 1364, + 0, 674, 628, 629, 1224, 833, 442, 443, 448, 450, + 0, 499, 499, 499, 482, 499, 0, 0, 470, 1884, + 0, 0, 0, 0, 479, 1884, 0, 0, 1884, 1884, + 1884, 1884, 1884, 1884, 1884, 0, 0, 1884, 1884, 1884, + 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 0, 1884, + 1884, 1884, 1884, 1884, 1341, 1884, 0, 498, 1187, 489, + 490, 491, 492, 497, 0, 0, 527, 0, 0, 1060, + 0, 531, 0, 0, 1102, 0, 0, 913, 0, 914, + 915, 916, 911, 951, 975, 975, 0, 975, 955, 1364, + 0, 0, 0, 278, 279, 267, 0, 268, 0, 0, + 281, 282, 0, 284, 285, 286, 293, 1952, 2031, 288, + 290, 0, 0, 294, 307, 308, 309, 0, 0, 299, + 300, 0, 0, 362, 363, 365, 0, 790, 1191, 702, + 1360, 703, 704, 708, 0, 0, 711, 712, 713, 714, + 715, 1027, 0, 0, 1111, 1112, 1113, 1114, 900, 0, + 909, 0, 905, 981, 0, 983, 0, 0, 124, 19, + 0, 117, 114, 0, 0, 0, 0, 0, 1859, 1808, + 1880, 0, 0, 0, 1861, 0, 0, 0, 0, 0, + 107, 792, 751, 0, 756, 773, 0, 777, 0, 0, + 769, 761, 766, 0, 0, 786, 752, 762, 1363, 0, + 0, 0, 0, 745, 0, 0, 750, 744, 790, 0, + 813, 842, 843, 846, 1423, 0, 403, 399, 418, 0, + 0, 0, 0, 189, 1122, 0, 190, 194, 184, 0, + 0, 0, 1127, 0, 1124, 1129, 0, 204, 0, 0, + 179, 180, 1207, 1216, 0, 0, 0, 1754, 1756, 1758, + 1760, 1762, 0, 1765, 1775, 1775, 1771, 0, 1766, 0, + 1768, 0, 1744, 1513, 0, 1548, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 846, 0, 0, 1616, 1617, + 0, 0, 1621, 0, 1623, 1624, 1625, 1627, 0, 0, + 0, 1631, 0, 1670, 1691, 1674, 1677, 0, 1681, 0, + 1683, 1685, 1686, 1687, 0, 840, 840, 0, 0, 1587, + 1587, 1587, 0, 0, 0, 0, 1587, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1532, 0, + 1533, 1534, 0, 0, 0, 935, 810, 0, 0, 0, + 0, 0, 1214, 0, 91, 0, 0, 0, 0, 96, + 0, 0, 76, 344, 332, 334, 0, 326, 0, 1178, + 0, 0, 0, 0, 0, 1015, 1016, 1018, 0, 1021, + 1022, 1023, 1027, 833, 0, 833, 1072, 1884, 535, 0, + 0, 1121, 0, 1091, 0, 0, 0, -2, 0, 0, + 1173, 0, 0, 0, 1226, 0, 0, 0, 728, 732, + 0, 23, 834, 0, 604, 602, 0, 606, 0, 607, + 659, 615, 616, 900, 639, 640, 0, 0, 900, 659, + 659, 650, 662, 671, 0, 672, 1364, 1226, 0, 0, + 1186, 1292, 1260, 460, 0, 1377, 1378, 500, 0, 1384, + 1393, 1177, 1455, 0, 1393, 0, 0, 1395, 1396, 0, + 0, 0, 0, 483, 484, 0, 469, 0, 0, 0, + 0, 0, 0, 468, 0, 0, 510, 0, 0, 0, + 0, 0, 1885, 1884, 1884, 0, 477, 478, 0, 481, + 0, 0, 0, 0, 0, 0, 0, 0, 1884, 1884, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1332, 0, 0, 0, 0, 0, 0, 0, 0, + 1348, 1349, 0, 1072, 1884, 0, 0, 0, 0, 535, + 1116, 1089, 1107, 0, 446, 447, 507, 0, 0, 0, + 0, 0, 0, 0, 941, 0, 0, 0, 940, 0, + 0, 0, 0, 0, 0, 0, 833, 976, 0, 978, + 979, 953, -2, 0, 913, 958, 1739, 0, 271, 272, + 0, 0, 277, 295, 297, 269, 0, 0, 0, 296, + 298, 302, 303, 361, 364, 366, 852, 0, 0, 1250, + 0, 1028, 1029, 1031, 1032, 0, -2, -2, -2, -2, + -2, -2, -2, -2, -2, -2, -2, -2, -2, 1936, + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, -2, 1023, - 719, 888, 900, 907, 979, 981, 142, 903, 0, 127, - 19, 126, 118, 119, 0, 19, 0, 0, 0, 0, - 1866, 1865, 1851, 0, 1852, 1863, 1868, 0, 1871, 0, - 429, 793, 0, 0, 773, 775, 0, 0, 773, 0, - 0, 782, 0, 0, 0, 0, 0, 0, 0, 773, - 849, 789, 0, 846, 844, 845, 0, 0, 681, 152, - 424, 0, 0, 0, 0, 0, 706, 0, 1123, 186, - 0, 0, 206, 0, 0, 0, 1213, 1208, 1735, 1764, - 1766, 0, 1773, 1769, 1505, 1514, 1541, 0, 0, 1547, - 1559, 1559, 0, 0, 0, 1550, 1864, 1864, 1553, 1860, - 1862, 1860, 1559, 1559, 0, 1158, 0, 1159, 843, 143, - 0, 0, 1619, 0, 0, 0, 769, 0, 0, 0, - 1580, 1582, 1584, 1584, 1591, 1585, 1592, 1593, 1584, 1584, - 1584, 1584, 1598, 1584, 1584, 1584, 1584, 1584, 1584, 1584, - 1584, 1584, 1584, 1584, 1578, 0, 0, 1794, 1795, 778, - 0, 0, 820, 821, 822, 823, 824, 0, 0, 61, - 61, 1213, 0, 100, 92, 0, 0, 0, 0, 0, - 336, 0, 77, 78, 80, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 1017, 0, 0, 0, 1367, - 0, 1073, 1070, 1071, 1072, 0, 1113, 536, 537, 538, - 539, 0, 0, 0, 1117, 0, 0, 1081, 0, 0, - 0, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, -2, - 1178, 0, 0, 0, 1367, 1197, 0, 0, 1202, 1367, - 1367, 0, 1231, 0, 1220, 781, 0, -2, 0, 0, - 729, 0, 0, 947, 603, 609, 897, 633, 835, 836, - 1361, 897, 897, 659, 677, 673, 1231, 1222, 0, 449, - 499, 0, 1277, 0, 0, 1283, 0, 1290, 453, 0, - 501, 0, 1380, 1408, 1391, 1408, 1453, 1408, 1408, 1174, - 0, 501, 0, 0, 471, 0, 0, 0, 0, 0, - 467, 504, 843, 454, 456, 457, 458, 508, 509, 511, - 0, 513, 514, 473, 485, 486, 487, 488, 0, 0, - 0, 480, 493, 494, 495, 496, 455, 1306, 1307, 1308, - 1311, 1312, 1313, 1314, 0, 0, 1317, 1318, 1319, 1320, - 1321, 1405, 1406, 1407, 1322, 1323, 1324, 1325, 1326, 1327, - 1328, 1347, 1348, 1349, 1350, 1351, 1352, 1330, 1331, 1332, - 1333, 1334, 1335, 1336, 1337, 0, 0, 1342, 0, 0, - 0, 1073, 0, 0, 0, 0, 0, 1113, 530, 0, - 0, 1088, 0, 1106, 0, 1100, 1101, 0, 0, 751, - 897, 354, 0, 942, 933, 0, 917, 0, 919, 939, - 920, 940, 0, 0, 924, 0, 926, 0, 922, 923, - 928, 921, 897, 909, 949, 974, 951, 954, 956, 957, - 963, 0, 0, 0, 0, 265, 274, 275, 276, 283, - 0, 555, 289, 805, 0, 1358, 709, 710, 1248, 1249, - 717, 0, 1030, 886, 0, 0, 122, 125, 0, 120, - 0, 0, 0, 0, 112, 110, 1859, 0, 0, 795, - 166, 0, 0, 0, 771, 0, 776, 773, 757, 767, - 756, 764, 765, 784, 1362, 1363, 1364, 1365, 0, 773, - 747, 746, 808, 793, 841, 842, 0, 1421, 391, 0, - 1120, 186, 191, 192, 193, 187, 185, 1127, 0, 1129, - 0, 1206, 0, 0, 1770, 1546, 1515, 1548, 1560, 1561, - 1549, 0, 1517, 1518, 1551, 1552, 1554, 1555, 1556, 1557, - 1558, 1519, 0, 1160, 1615, 0, 1617, 1625, 1626, 0, - 1675, 1679, 0, 0, 0, 0, 0, 1589, 1590, 1594, - 1595, 1596, 1597, 1599, 1600, 1601, 1602, 1603, 1604, 1605, - 1606, 1607, 1608, 1609, 837, 1579, 0, 0, 0, 0, - 0, 0, 0, 818, 0, 0, 0, 63, 0, 63, - 1212, 1214, 0, 977, 0, 0, 97, 0, 0, 79, - 81, 0, 2013, 0, 0, 0, 0, 88, 1005, 1008, - 1014, 1016, 0, 0, 0, 1368, 1369, 1371, 1372, 1373, - 0, 1041, 0, 0, 1061, 1062, 1063, 1075, 0, 541, - 542, 0, 0, 0, 554, 550, 551, 552, 532, 1112, - 1095, 0, 0, 1084, 0, 0, 1094, 0, 1179, 1881, - 1881, 1881, 0, 0, 1291, 1881, 1881, 0, 1199, 1201, - 0, 0, 1295, 1234, 0, 0, 1225, 0, 972, 0, - 0, 897, 728, 731, 732, 829, 610, 648, 652, 649, - 897, 1234, 441, 1255, 0, 0, 0, 0, 0, 1287, - 0, 0, 1259, 0, 472, 502, 0, -2, 0, 1409, - 0, 1394, 1409, 0, 0, 1408, 0, 461, 501, 0, - 0, 0, 515, 520, 521, 0, 517, 518, 1448, 0, - 519, 0, 506, 0, 512, 1309, 1310, 0, 1315, 1316, - 0, 1340, 0, 0, 0, 452, 522, 0, 0, 0, - 523, 524, 529, 1114, 1115, 1081, 0, 1095, 0, 1105, - 0, 1102, 1103, 837, 0, 0, 914, 943, 0, 0, - 915, 0, 916, 918, 941, 0, 935, 925, 927, 353, - 958, 0, 0, 960, 961, 962, 953, 291, 850, 1027, - 0, 871, 0, 0, 904, 0, 19, 0, 0, 115, - 1869, 1872, 797, 0, 794, 167, 0, 0, 0, 0, - 761, 772, 755, 1366, 745, 795, 847, 848, 188, 183, - 1128, 1216, 0, 1207, 0, 1472, 1528, 0, 1627, 0, - 1584, 1581, 1584, 1583, 1575, 0, 1532, 0, 1534, 1535, - 1536, 0, 1538, 1539, 0, 816, 0, 59, 0, 62, - 60, 0, 99, 93, 0, 0, 0, 82, 0, 0, - 0, 0, 0, 0, 0, 1047, 1295, 0, 1047, 1074, - 1060, 0, 0, 543, 544, 0, 547, 553, 1076, 0, - 0, 1078, 1079, 1080, 0, 0, 1092, 0, 0, 0, - 0, 1171, 1185, 0, 0, 0, -2, 0, -2, 1196, - 0, 1240, 0, 1232, 0, 1224, 0, 1227, 897, 897, - -2, 725, 730, 0, 653, 1240, 1257, 0, 1278, 0, - 0, 0, 0, 0, 0, 0, 1258, 0, 1271, 503, - 1410, -2, 1424, 1426, 0, 1184, 1429, 1430, 0, 0, - 0, 0, 0, 0, 1479, 1438, 0, 0, 1442, 1443, - 1444, 0, 0, 1447, 0, 1788, 1789, 0, 1451, 0, - 0, 0, 0, 0, 0, 0, 1388, 462, 463, 0, - 465, 466, 1881, 1449, 505, 459, 1881, 475, 1339, 1343, - 1344, 1341, 528, 525, 526, 1084, 1087, 1098, 1107, 752, - 832, 355, 356, 944, 0, 934, 936, 967, 964, 0, - 0, 1031, 887, 895, 2242, 2244, 2241, 116, 121, 0, - 0, 799, 0, 796, 0, 790, 792, 177, 760, 797, - 137, 169, 0, 0, 1516, 0, 0, 0, 1616, 1666, - 1587, 1588, 0, 1576, 0, 1570, 1571, 1572, 1577, 0, - 0, 819, 814, 64, 95, 0, 98, 68, 83, 0, - 84, 0, 0, 0, 0, 1033, 1040, 1054, 1190, 1370, - 1039, 0, 0, 540, 545, 0, 548, 549, 1096, 1095, - 0, 1082, 1083, 0, 1090, 0, 0, 1180, 1181, 1182, - 1292, 1293, 1294, 1250, 1198, 0, -2, 1303, 0, 0, - 1194, 1216, 1250, 0, 0, 1228, 0, 1235, 0, 1233, - 1226, 837, 726, 1237, 451, 1289, 1279, 0, 1281, 0, - 0, 0, 0, 1260, -2, 0, 1425, 1427, 1428, 1431, - 1432, 1433, 1484, 1485, 1486, 0, 0, 1436, 1481, 1482, - 1483, 1437, 0, 0, 0, 0, 0, 1786, 1787, 1477, - 0, 0, 1395, 1397, 1398, 1399, 1400, 1401, 1402, 1403, - 1404, 1396, 0, 0, 0, 1387, 1389, 464, 0, 0, - 1881, 1097, 352, 0, 0, 968, 970, 965, 966, 889, - 0, 0, 0, 0, 111, 113, 128, 0, 798, 168, - 0, 799, 139, 0, 160, 0, 1217, 0, 1527, 0, - 0, 0, 1586, 1573, 0, 0, 0, 0, 0, 1790, - 1791, 1792, 0, 1533, 1537, 94, 0, 66, 0, 85, - 86, 0, 0, 0, 0, 1055, 1056, 1064, 1065, 0, - 1067, 1068, 546, 1077, 1085, 1089, 1092, 0, 1144, 1252, - 0, 1200, 1183, 1305, 1881, 1203, 1252, 0, 1297, 1881, - 1881, 1218, 0, 1230, 0, 1242, 0, 1236, 832, 440, - 0, 1239, 1275, 1280, 1282, 1284, 0, 1288, 1286, 1261, - -2, 0, 1269, 0, 0, 1434, 1435, 0, 0, 1685, - 1881, 0, 1467, 0, 1144, 1144, 1144, 1144, 0, 516, - 474, 0, 945, 959, 0, 896, 0, 0, 0, 0, - 0, 788, 129, 0, 138, 157, 0, 170, 171, 0, - 0, 0, 0, 1209, 0, 1475, 1476, 0, 1562, 0, - 0, 0, 1566, 1567, 1568, 1569, 65, 68, 0, 0, - 87, 0, 1032, 0, 1066, 1091, 1093, 1143, 1193, 0, - 1289, 1304, 0, 1195, 1296, 0, 0, 0, 1229, 1241, - 0, 1244, 724, 1238, 1256, 0, 1285, 1262, 1270, 0, - 1265, 0, 0, 0, 1480, 0, 1441, 0, 1446, 1455, - 1468, 0, 0, 1376, 0, 1378, 0, 1382, 0, 1384, - 0, 0, 476, 969, 971, 0, 1736, 891, 892, 0, - 801, 791, 140, 144, 0, 166, 163, 0, 172, 0, - 0, 0, 0, 1205, 0, 1473, 0, 1563, 1564, 1565, - 67, 69, 89, 0, 1034, 1035, 1048, 1145, 1881, 1881, - 0, 0, 0, 1151, 1152, 1881, 1881, 1881, 1881, 0, - 1277, 1309, 1298, 1299, 1300, 1243, 1276, 1264, 0, -2, - 1272, 0, 0, 1738, 1748, 1749, 1439, 1445, 1454, 1456, - 1457, 0, 1469, 1470, 1471, 1478, 1144, 1144, 1144, 1144, - 1386, 890, 0, 0, 800, 0, 131, 0, 0, 161, - 162, 164, 0, 173, 0, 175, 176, 0, 0, 1574, - 1036, 0, 0, 1148, 1149, 0, 0, 0, 0, 0, - 1253, 0, 1255, 1266, -2, 0, 1274, 0, 1440, 1458, - 0, 1459, 0, 0, 0, 1377, 1379, 1383, 1385, 1736, - 893, 802, 1215, 0, 145, 0, 147, 149, 150, 1411, - 158, 159, 165, 174, 0, 0, 1021, 1037, 0, 1146, - 1147, 1150, 1153, 1154, 1155, 1156, 0, 1257, 1273, 1739, - 1460, 1462, 1463, 0, 0, 1461, 0, 132, 133, 0, - 146, 0, 0, 1210, 1474, 1038, 1254, 1251, 1464, 1466, - 1465, 894, 0, 0, 148, 1412, 134, 135, 136, 0, - 1413, + -2, 1026, 719, 891, 903, 910, 982, 984, 142, 906, + 0, 127, 19, 126, 118, 119, 0, 19, 0, 0, + 0, 0, 1869, 1868, 1854, 0, 1855, 1866, 1871, 0, + 1874, 0, 429, 796, 0, 0, 776, 778, 0, 0, + 776, 0, 0, 785, 0, 753, 0, 0, 0, 0, + 0, 0, 776, 852, 792, 0, 849, 847, 848, 0, + 0, 681, 152, 424, 0, 0, 0, 0, 0, 706, + 0, 1126, 186, 0, 0, 206, 0, 0, 0, 1216, + 1211, 1738, 1767, 1769, 0, 1776, 1772, 1508, 1517, 1544, + 0, 0, 1550, 1562, 1562, 0, 0, 0, 1553, 1867, + 1867, 1556, 1863, 1865, 1863, 1562, 1562, 0, 1161, 0, + 1162, 846, 143, 0, 0, 1622, 0, 0, 0, 772, + 0, 0, 0, 1583, 1585, 1587, 1587, 1594, 1588, 1595, + 1596, 1587, 1587, 1587, 1587, 1601, 1587, 1587, 1587, 1587, + 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1581, 0, 0, + 1797, 1798, 781, 0, 0, 823, 824, 825, 826, 827, + 0, 0, 61, 61, 1216, 0, 100, 92, 0, 0, + 0, 0, 0, 336, 0, 77, 78, 80, 0, 0, + 0, 0, 0, 0, 0, 90, 0, 0, 1020, 0, + 0, 0, 1370, 0, 1076, 1073, 1074, 1075, 0, 1116, + 536, 537, 538, 539, 0, 0, 0, 1120, 0, 0, + 1084, 0, 0, 0, 1165, 1166, 1167, 1168, 1169, 1170, + 1171, 1172, -2, 1181, 0, 0, 0, 1370, 1200, 0, + 0, 1205, 1370, 1370, 0, 1234, 0, 1223, 784, 0, + -2, 0, 0, 730, 0, 0, 0, 950, 603, 609, + 900, 633, 838, 839, 1364, 900, 900, 659, 677, 673, + 1234, 1225, 0, 449, 499, 0, 1280, 0, 0, 1286, + 0, 1293, 453, 0, 501, 0, 1383, 1411, 1394, 1411, + 1456, 1411, 1411, 1177, 0, 501, 0, 0, 471, 0, + 0, 0, 0, 0, 467, 504, 846, 454, 456, 457, + 458, 508, 509, 511, 0, 513, 514, 473, 485, 486, + 487, 488, 0, 0, 0, 480, 493, 494, 495, 496, + 455, 1309, 1310, 1311, 1314, 1315, 1316, 1317, 0, 0, + 1320, 1321, 1322, 1323, 1324, 1408, 1409, 1410, 1325, 1326, + 1327, 1328, 1329, 1330, 1331, 1350, 1351, 1352, 1353, 1354, + 1355, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 0, + 0, 1345, 0, 0, 0, 1076, 0, 0, 0, 0, + 0, 1116, 530, 0, 0, 1091, 0, 1109, 0, 1103, + 1104, 0, 0, 754, 900, 354, 0, 945, 936, 0, + 920, 0, 922, 942, 923, 943, 0, 0, 927, 0, + 929, 0, 925, 926, 931, 924, 900, 912, 952, 977, + 954, 957, 959, 960, 966, 0, 0, 0, 0, 265, + 274, 275, 276, 283, 0, 555, 289, 808, 0, 1361, + 709, 710, 1251, 1252, 717, 0, 1033, 889, 0, 0, + 122, 125, 0, 120, 0, 0, 0, 0, 112, 110, + 1862, 0, 0, 798, 166, 0, 0, 0, 774, 0, + 779, 776, 760, 770, 759, 767, 768, 787, 1365, 1366, + 1367, 1368, 0, 776, 749, 748, 811, 796, 844, 845, + 0, 1424, 391, 0, 1123, 186, 191, 192, 193, 187, + 185, 1130, 0, 1132, 0, 1209, 0, 0, 1773, 1549, + 1518, 1551, 1563, 1564, 1552, 0, 1520, 1521, 1554, 1555, + 1557, 1558, 1559, 1560, 1561, 1522, 0, 1163, 1618, 0, + 1620, 1628, 1629, 0, 1678, 1682, 0, 0, 0, 0, + 0, 1592, 1593, 1597, 1598, 1599, 1600, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 840, 1582, + 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, + 0, 63, 0, 63, 1215, 1217, 0, 980, 0, 0, + 97, 0, 0, 79, 81, 0, 2016, 0, 0, 0, + 0, 88, 1008, 1011, 1017, 1019, 0, 0, 0, 1371, + 1372, 1374, 1375, 1376, 0, 1044, 0, 0, 1064, 1065, + 1066, 1078, 0, 541, 542, 0, 0, 0, 554, 550, + 551, 552, 532, 1115, 1098, 0, 0, 1087, 0, 0, + 1097, 0, 1182, 1884, 1884, 1884, 0, 0, 1294, 1884, + 1884, 0, 1202, 1204, 0, 0, 1298, 1237, 0, 0, + 1228, 0, 975, 0, 0, 900, 729, 732, 733, 784, + 832, 610, 648, 652, 649, 900, 1237, 441, 1258, 0, + 0, 0, 0, 0, 1290, 0, 0, 1262, 0, 472, + 502, 0, -2, 0, 1412, 0, 1397, 1412, 0, 0, + 1411, 0, 461, 501, 0, 0, 0, 515, 520, 521, + 0, 517, 518, 1451, 0, 519, 0, 506, 0, 512, + 1312, 1313, 0, 1318, 1319, 0, 1343, 0, 0, 0, + 452, 522, 0, 0, 0, 523, 524, 529, 1117, 1118, + 1084, 0, 1098, 0, 1108, 0, 1105, 1106, 840, 0, + 0, 917, 946, 0, 0, 918, 0, 919, 921, 944, + 0, 938, 928, 930, 353, 961, 0, 0, 963, 964, + 965, 956, 291, 853, 1030, 0, 874, 0, 0, 907, + 0, 19, 0, 0, 115, 1872, 1875, 800, 0, 797, + 167, 0, 0, 0, 0, 764, 775, 758, 1369, 747, + 798, 850, 851, 188, 183, 1131, 1219, 0, 1210, 0, + 1475, 1531, 0, 1630, 0, 1587, 1584, 1587, 1586, 1578, + 0, 1535, 0, 1537, 1538, 1539, 0, 1541, 1542, 0, + 819, 0, 59, 0, 62, 60, 0, 99, 93, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, + 1050, 1298, 0, 1050, 1077, 1063, 0, 0, 543, 544, + 0, 547, 553, 1079, 0, 0, 1081, 1082, 1083, 0, + 0, 1095, 0, 0, 0, 0, 1174, 1188, 0, 0, + 0, -2, 0, -2, 1199, 0, 1243, 0, 1235, 0, + 1227, 0, 1230, 900, 900, -2, 726, 731, 0, 975, + 653, 1243, 1260, 0, 1281, 0, 0, 0, 0, 0, + 0, 0, 1261, 0, 1274, 503, 1413, -2, 1427, 1429, + 0, 1187, 1432, 1433, 0, 0, 0, 0, 0, 0, + 1482, 1441, 0, 0, 1445, 1446, 1447, 0, 0, 1450, + 0, 1791, 1792, 0, 1454, 0, 0, 0, 0, 0, + 0, 0, 1391, 462, 463, 0, 465, 466, 1884, 1452, + 505, 459, 1884, 475, 1342, 1346, 1347, 1344, 528, 525, + 526, 1087, 1090, 1101, 1110, 755, 835, 355, 356, 947, + 0, 937, 939, 970, 967, 0, 0, 1034, 890, 898, + 2245, 2247, 2244, 116, 121, 0, 0, 802, 0, 799, + 0, 793, 795, 177, 763, 800, 137, 169, 0, 0, + 1519, 0, 0, 0, 1619, 1669, 1590, 1591, 0, 1579, + 0, 1573, 1574, 1575, 1580, 0, 0, 822, 817, 64, + 95, 0, 98, 68, 83, 0, 84, 0, 0, 0, + 0, 1036, 1043, 1057, 1193, 1373, 1042, 0, 0, 540, + 545, 0, 548, 549, 1099, 1098, 0, 1085, 1086, 0, + 1093, 0, 0, 1183, 1184, 1185, 1295, 1296, 1297, 1253, + 1201, 0, -2, 1306, 0, 0, 1197, 1219, 1253, 0, + 0, 1231, 0, 1238, 0, 1236, 1229, 840, 727, 900, + 1240, 451, 1292, 1282, 0, 1284, 0, 0, 0, 0, + 1263, -2, 0, 1428, 1430, 1431, 1434, 1435, 1436, 1487, + 1488, 1489, 0, 0, 1439, 1484, 1485, 1486, 1440, 0, + 0, 0, 0, 0, 1789, 1790, 1480, 0, 0, 1398, + 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1399, 0, + 0, 0, 1390, 1392, 464, 0, 0, 1884, 1100, 352, + 0, 0, 971, 973, 968, 969, 892, 0, 0, 0, + 0, 111, 113, 128, 0, 801, 168, 0, 802, 139, + 0, 160, 0, 1220, 0, 1530, 0, 0, 0, 1589, + 1576, 0, 0, 0, 0, 0, 1793, 1794, 1795, 0, + 1536, 1540, 94, 0, 66, 0, 85, 86, 0, 0, + 0, 0, 1058, 1059, 1067, 1068, 0, 1070, 1071, 546, + 1080, 1088, 1092, 1095, 0, 1147, 1255, 0, 1203, 1186, + 1308, 1884, 1206, 1255, 0, 1300, 1884, 1884, 1221, 0, + 1233, 0, 1245, 0, 1239, 835, 840, 440, 0, 1242, + 1278, 1283, 1285, 1287, 0, 1291, 1289, 1264, -2, 0, + 1272, 0, 0, 1437, 1438, 0, 0, 1688, 1884, 0, + 1470, 0, 1147, 1147, 1147, 1147, 0, 516, 474, 0, + 948, 962, 0, 899, 0, 0, 0, 0, 0, 791, + 129, 0, 138, 157, 0, 170, 171, 0, 0, 0, + 0, 1212, 0, 1478, 1479, 0, 1565, 0, 0, 0, + 1569, 1570, 1571, 1572, 65, 68, 0, 0, 87, 0, + 1035, 0, 1069, 1094, 1096, 1146, 1196, 0, 1292, 1307, + 0, 1198, 1299, 0, 0, 0, 1232, 1244, 0, 1247, + 724, 835, 1241, 1259, 0, 1288, 1265, 1273, 0, 1268, + 0, 0, 0, 1483, 0, 1444, 0, 1449, 1458, 1471, + 0, 0, 1379, 0, 1381, 0, 1385, 0, 1387, 0, + 0, 476, 972, 974, 0, 1739, 894, 895, 0, 804, + 794, 140, 144, 0, 166, 163, 0, 172, 0, 0, + 0, 0, 1208, 0, 1476, 0, 1566, 1567, 1568, 67, + 69, 89, 0, 1037, 1038, 1051, 1148, 1884, 1884, 0, + 0, 0, 1154, 1155, 1884, 1884, 1884, 1884, 0, 1280, + 1312, 1301, 1302, 1303, 1246, 725, 1279, 1267, 0, -2, + 1275, 0, 0, 1741, 1751, 1752, 1442, 1448, 1457, 1459, + 1460, 0, 1472, 1473, 1474, 1481, 1147, 1147, 1147, 1147, + 1389, 893, 0, 0, 803, 0, 131, 0, 0, 161, + 162, 164, 0, 173, 0, 175, 176, 0, 0, 1577, + 1039, 0, 0, 1151, 1152, 0, 0, 0, 0, 0, + 1256, 0, 1258, 1269, -2, 0, 1277, 0, 1443, 1461, + 0, 1462, 0, 0, 0, 1380, 1382, 1386, 1388, 1739, + 896, 805, 1218, 0, 145, 0, 147, 149, 150, 1414, + 158, 159, 165, 174, 0, 0, 1024, 1040, 0, 1149, + 1150, 1153, 1156, 1157, 1158, 1159, 0, 1260, 1276, 1742, + 1463, 1465, 1466, 0, 0, 1464, 0, 132, 133, 0, + 146, 0, 0, 1213, 1477, 1041, 1257, 1254, 1467, 1469, + 1468, 897, 0, 0, 148, 1415, 134, 135, 136, 0, + 1416, } var yyTok1 = [...]int{ @@ -16004,9 +16133,30 @@ yydefault: } yyVAL.union = yyLOCAL case 725: - yyDollar = yyS[yypt-8 : yypt+1] + yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL tree.Statement //line mysql_sql.y:4828 + { + // Single-Table Syntax + t := &tree.AliasedTableExpr{ + Expr: yyDollar[7].tableNameUnion(), + As: tree.AliasClause{ + Alias: tree.Identifier(yyDollar[9].str), + }, + } + yyLOCAL = &tree.Delete{ + Tables: tree.TableExprs{t}, + Where: yyDollar[10].whereUnion(), + OrderBy: yyDollar[11].orderByUnion(), + Limit: yyDollar[12].limitUnion(), + IsCdc: true, + } + } + yyVAL.union = yyLOCAL + case 726: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL tree.Statement +//line mysql_sql.y:4845 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -16016,10 +16166,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 726: + case 727: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:4841 +//line mysql_sql.y:4858 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -16029,36 +16179,36 @@ yydefault: } } yyVAL.union = yyLOCAL - case 727: + case 728: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:4852 +//line mysql_sql.y:4869 { yyLOCAL = tree.TableExprs{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 728: + case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:4856 +//line mysql_sql.y:4873 { yyLOCAL = append(yyDollar[1].tableExprsUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 729: + case 730: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4862 +//line mysql_sql.y:4879 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, nil) } yyVAL.union = yyLOCAL - case 730: + case 731: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4868 +//line mysql_sql.y:4885 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) @@ -16066,35 +16216,35 @@ yydefault: yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, nil) } yyVAL.union = yyLOCAL - case 731: + case 732: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4877 +//line mysql_sql.y:4894 { } - case 732: + case 733: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:4879 +//line mysql_sql.y:4896 { } - case 733: + case 734: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4882 +//line mysql_sql.y:4899 { } - case 738: + case 739: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4891 +//line mysql_sql.y:4908 { } - case 740: + case 741: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4895 +//line mysql_sql.y:4912 { } - case 742: + case 743: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:4900 +//line mysql_sql.y:4917 { rep := yyDollar[4].replaceUnion() rep.Table = yyDollar[2].tableExprUnion() @@ -16102,10 +16252,22 @@ yydefault: yyLOCAL = rep } yyVAL.union = yyLOCAL - case 743: + case 744: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL tree.Statement +//line mysql_sql.y:4924 + { + rep := yyDollar[5].replaceUnion() + rep.Table = yyDollar[3].tableExprUnion() + rep.PartitionNames = yyDollar[4].identifierListUnion() + rep.IsCdc = true + yyLOCAL = rep + } + yyVAL.union = yyLOCAL + case 745: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4909 +//line mysql_sql.y:4934 { vc := tree.NewValuesClause(yyDollar[2].rowsExprsUnion()) yyLOCAL = &tree.Replace{ @@ -16113,20 +16275,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 744: + case 746: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4916 +//line mysql_sql.y:4941 { yyLOCAL = &tree.Replace{ Rows: yyDollar[1].selectUnion(), } } yyVAL.union = yyLOCAL - case 745: + case 747: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4922 +//line mysql_sql.y:4947 { vc := tree.NewValuesClause(yyDollar[5].rowsExprsUnion()) yyLOCAL = &tree.Replace{ @@ -16135,10 +16297,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 746: + case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4930 +//line mysql_sql.y:4955 { vc := tree.NewValuesClause(yyDollar[4].rowsExprsUnion()) yyLOCAL = &tree.Replace{ @@ -16146,10 +16308,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 747: + case 749: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4937 +//line mysql_sql.y:4962 { yyLOCAL = &tree.Replace{ Columns: yyDollar[2].identifierListUnion(), @@ -16157,10 +16319,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 748: + case 750: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4944 +//line mysql_sql.y:4969 { if yyDollar[2].assignmentsUnion() == nil { yylex.Error("the set list of replace can not be empty") @@ -16179,10 +16341,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 749: + case 751: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:4964 +//line mysql_sql.y:4989 { ins := yyDollar[4].insertUnion() ins.Table = yyDollar[2].tableExprUnion() @@ -16191,10 +16353,10 @@ yydefault: yyLOCAL = ins } yyVAL.union = yyLOCAL - case 750: + case 752: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:4972 +//line mysql_sql.y:4997 { ins := yyDollar[5].insertUnion() ins.Table = yyDollar[3].tableExprUnion() @@ -16203,26 +16365,39 @@ yydefault: yyLOCAL = ins } yyVAL.union = yyLOCAL - case 751: + case 753: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL tree.Statement +//line mysql_sql.y:5005 + { + ins := yyDollar[5].insertUnion() + ins.Table = yyDollar[3].tableExprUnion() + ins.PartitionNames = yyDollar[4].identifierListUnion() + ins.OnDuplicateUpdate = yyDollar[6].updateExprsUnion() + ins.IsCdc = true + yyLOCAL = ins + } + yyVAL.union = yyLOCAL + case 754: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:4982 +//line mysql_sql.y:5016 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 752: + case 755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:4986 +//line mysql_sql.y:5020 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 753: + case 756: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:4992 +//line mysql_sql.y:5026 { vc := tree.NewValuesClause(yyDollar[2].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -16230,20 +16405,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 754: + case 757: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:4999 +//line mysql_sql.y:5033 { yyLOCAL = &tree.Insert{ Rows: yyDollar[1].selectUnion(), } } yyVAL.union = yyLOCAL - case 755: + case 758: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5005 +//line mysql_sql.y:5039 { vc := tree.NewValuesClause(yyDollar[5].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -16252,10 +16427,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 756: + case 759: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5013 +//line mysql_sql.y:5047 { vc := tree.NewValuesClause(yyDollar[4].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -16263,10 +16438,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 757: + case 760: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5020 +//line mysql_sql.y:5054 { yyLOCAL = &tree.Insert{ Columns: yyDollar[2].identifierListUnion(), @@ -16274,10 +16449,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 758: + case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5027 +//line mysql_sql.y:5061 { if yyDollar[2].assignmentsUnion() == nil { yylex.Error("the set list of insert can not be empty") @@ -16296,58 +16471,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 759: + case 762: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:5046 +//line mysql_sql.y:5080 { yyLOCAL = []*tree.UpdateExpr{} } yyVAL.union = yyLOCAL - case 760: + case 763: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:5050 +//line mysql_sql.y:5084 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 761: + case 764: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:5054 +//line mysql_sql.y:5088 { yyLOCAL = []*tree.UpdateExpr{nil} } yyVAL.union = yyLOCAL - case 762: + case 765: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:5059 +//line mysql_sql.y:5093 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 763: + case 766: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:5063 +//line mysql_sql.y:5097 { yyLOCAL = []*tree.Assignment{yyDollar[1].assignmentUnion()} } yyVAL.union = yyLOCAL - case 764: + case 767: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:5067 +//line mysql_sql.y:5101 { yyLOCAL = append(yyDollar[1].assignmentsUnion(), yyDollar[3].assignmentUnion()) } yyVAL.union = yyLOCAL - case 765: + case 768: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Assignment -//line mysql_sql.y:5073 +//line mysql_sql.y:5107 { yyLOCAL = &tree.Assignment{ Column: tree.Identifier(yyDollar[1].str), @@ -16355,155 +16530,155 @@ yydefault: } } yyVAL.union = yyLOCAL - case 766: + case 769: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5082 +//line mysql_sql.y:5116 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 767: + case 770: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5086 +//line mysql_sql.y:5120 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 768: + case 771: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:5092 +//line mysql_sql.y:5126 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) } - case 769: + case 772: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:5096 +//line mysql_sql.y:5130 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) } - case 770: + case 773: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5102 +//line mysql_sql.y:5136 { yyLOCAL = []tree.Exprs{yyDollar[1].exprsUnion()} } yyVAL.union = yyLOCAL - case 771: + case 774: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5106 +//line mysql_sql.y:5140 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 772: + case 775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5112 +//line mysql_sql.y:5146 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 773: + case 776: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:5117 +//line mysql_sql.y:5151 { } - case 775: + case 778: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5121 +//line mysql_sql.y:5155 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 777: + case 780: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5128 +//line mysql_sql.y:5162 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 778: + case 781: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5132 +//line mysql_sql.y:5166 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 780: + case 783: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5139 +//line mysql_sql.y:5173 { yyLOCAL = &tree.DefaultVal{} } yyVAL.union = yyLOCAL - case 781: + case 784: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5144 +//line mysql_sql.y:5178 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 782: + case 785: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5148 +//line mysql_sql.y:5182 { yyLOCAL = yyDollar[3].identifierListUnion() } yyVAL.union = yyLOCAL - case 783: + case 786: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5154 +//line mysql_sql.y:5188 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].cstrUnion().Compare())} } yyVAL.union = yyLOCAL - case 784: + case 787: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5158 +//line mysql_sql.y:5192 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].cstrUnion().Compare())) } yyVAL.union = yyLOCAL - case 785: + case 788: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5164 +//line mysql_sql.y:5198 { yyLOCAL = yyDollar[2].tableNameUnion() } yyVAL.union = yyLOCAL - case 786: + case 789: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5168 +//line mysql_sql.y:5202 { yyLOCAL = yyDollar[1].tableNameUnion() } yyVAL.union = yyLOCAL - case 787: + case 790: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:5173 +//line mysql_sql.y:5207 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 788: + case 791: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:5177 +//line mysql_sql.y:5211 { yyLOCAL = &tree.ExportParam{ Outfile: true, @@ -16516,10 +16691,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 789: + case 792: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5190 +//line mysql_sql.y:5224 { yyLOCAL = &tree.Fields{ Terminated: &tree.Terminated{ @@ -16531,10 +16706,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 790: + case 793: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5201 +//line mysql_sql.y:5235 { yyLOCAL = &tree.Fields{ Terminated: &tree.Terminated{ @@ -16546,10 +16721,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 791: + case 794: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5212 +//line mysql_sql.y:5246 { str := yyDollar[7].str if str != "\\" && len(str) > 1 { @@ -16572,10 +16747,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 792: + case 795: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5234 +//line mysql_sql.y:5268 { str := yyDollar[4].str if str != "\\" && len(str) > 1 { @@ -16598,10 +16773,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 793: + case 796: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:5257 +//line mysql_sql.y:5291 { yyLOCAL = &tree.Lines{ TerminatedBy: &tree.Terminated{ @@ -16610,10 +16785,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 794: + case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:5265 +//line mysql_sql.y:5299 { yyLOCAL = &tree.Lines{ TerminatedBy: &tree.Terminated{ @@ -16622,18 +16797,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 795: + case 798: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5274 +//line mysql_sql.y:5308 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 796: + case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5278 +//line mysql_sql.y:5312 { str := strings.ToLower(yyDollar[2].str) if str == "true" { @@ -16646,131 +16821,131 @@ yydefault: } } yyVAL.union = yyLOCAL - case 797: + case 800: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:5291 +//line mysql_sql.y:5325 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 798: + case 801: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:5295 +//line mysql_sql.y:5329 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 799: + case 802: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5300 +//line mysql_sql.y:5334 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 800: + case 803: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5304 +//line mysql_sql.y:5338 { yyLOCAL = yyDollar[3].strsUnion() } yyVAL.union = yyLOCAL - case 801: + case 804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5311 +//line mysql_sql.y:5345 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].cstrUnion().Compare()) } yyVAL.union = yyLOCAL - case 802: + case 805: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5316 +//line mysql_sql.y:5350 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].cstrUnion().Compare()) } yyVAL.union = yyLOCAL - case 804: + case 807: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5323 +//line mysql_sql.y:5357 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion()} } yyVAL.union = yyLOCAL - case 805: + case 808: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5329 +//line mysql_sql.y:5363 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), TimeWindow: yyDollar[2].timeWindowUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), SelectLockInfo: yyDollar[6].selectLockInfoUnion()} } yyVAL.union = yyLOCAL - case 806: + case 809: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5333 +//line mysql_sql.y:5367 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), TimeWindow: yyDollar[2].timeWindowUnion(), OrderBy: yyDollar[3].orderByUnion(), Ep: yyDollar[4].exportParmUnion()} } yyVAL.union = yyLOCAL - case 807: + case 810: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5337 +//line mysql_sql.y:5371 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), TimeWindow: yyDollar[2].timeWindowUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion()} } yyVAL.union = yyLOCAL - case 808: + case 811: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5341 +//line mysql_sql.y:5375 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), TimeWindow: yyDollar[3].timeWindowUnion(), OrderBy: yyDollar[4].orderByUnion(), Limit: yyDollar[5].limitUnion(), Ep: yyDollar[6].exportParmUnion(), SelectLockInfo: yyDollar[7].selectLockInfoUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 809: + case 812: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5345 +//line mysql_sql.y:5379 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Ep: yyDollar[4].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 810: + case 813: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5349 +//line mysql_sql.y:5383 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 811: + case 814: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.TimeWindow -//line mysql_sql.y:5354 +//line mysql_sql.y:5388 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 812: + case 815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.TimeWindow -//line mysql_sql.y:5358 +//line mysql_sql.y:5392 { yyLOCAL = yyDollar[1].timeWindowUnion() } yyVAL.union = yyLOCAL - case 813: + case 816: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.TimeWindow -//line mysql_sql.y:5364 +//line mysql_sql.y:5398 { yyLOCAL = &tree.TimeWindow{ Interval: yyDollar[1].timeIntervalUnion(), @@ -16779,10 +16954,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 814: + case 817: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.Interval -//line mysql_sql.y:5374 +//line mysql_sql.y:5408 { str := fmt.Sprintf("%v", yyDollar[5].item) v, errStr := util.GetInt64(yyDollar[5].item) @@ -16797,18 +16972,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 815: + case 818: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Sliding -//line mysql_sql.y:5389 +//line mysql_sql.y:5423 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 816: + case 819: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.Sliding -//line mysql_sql.y:5393 +//line mysql_sql.y:5427 { str := fmt.Sprintf("%v", yyDollar[3].item) v, errStr := util.GetInt64(yyDollar[3].item) @@ -16822,28 +16997,28 @@ yydefault: } } yyVAL.union = yyLOCAL - case 817: + case 820: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fill -//line mysql_sql.y:5407 +//line mysql_sql.y:5441 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 818: + case 821: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fill -//line mysql_sql.y:5411 +//line mysql_sql.y:5445 { yyLOCAL = &tree.Fill{ Mode: yyDollar[3].fillModeUnion(), } } yyVAL.union = yyLOCAL - case 819: + case 822: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.Fill -//line mysql_sql.y:5417 +//line mysql_sql.y:5451 { yyLOCAL = &tree.Fill{ Mode: tree.FillValue, @@ -16851,50 +17026,50 @@ yydefault: } } yyVAL.union = yyLOCAL - case 820: + case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5426 +//line mysql_sql.y:5460 { yyLOCAL = tree.FillPrev } yyVAL.union = yyLOCAL - case 821: + case 824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5430 +//line mysql_sql.y:5464 { yyLOCAL = tree.FillNext } yyVAL.union = yyLOCAL - case 822: + case 825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5434 +//line mysql_sql.y:5468 { yyLOCAL = tree.FillNone } yyVAL.union = yyLOCAL - case 823: + case 826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5438 +//line mysql_sql.y:5472 { yyLOCAL = tree.FillNull } yyVAL.union = yyLOCAL - case 824: + case 827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5442 +//line mysql_sql.y:5476 { yyLOCAL = tree.FillLinear } yyVAL.union = yyLOCAL - case 825: + case 828: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:5448 +//line mysql_sql.y:5482 { yyLOCAL = &tree.With{ IsRecursive: false, @@ -16902,10 +17077,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 826: + case 829: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:5455 +//line mysql_sql.y:5489 { yyLOCAL = &tree.With{ IsRecursive: true, @@ -16913,26 +17088,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 827: + case 830: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:5464 +//line mysql_sql.y:5498 { yyLOCAL = []*tree.CTE{yyDollar[1].cteUnion()} } yyVAL.union = yyLOCAL - case 828: + case 831: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:5468 +//line mysql_sql.y:5502 { yyLOCAL = append(yyDollar[1].cteListUnion(), yyDollar[3].cteUnion()) } yyVAL.union = yyLOCAL - case 829: + case 832: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.CTE -//line mysql_sql.y:5474 +//line mysql_sql.y:5508 { yyLOCAL = &tree.CTE{ Name: &tree.AliasClause{Alias: tree.Identifier(yyDollar[1].cstrUnion().Compare()), Cols: yyDollar[2].identifierListUnion()}, @@ -16940,196 +17115,196 @@ yydefault: } } yyVAL.union = yyLOCAL - case 830: + case 833: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5482 +//line mysql_sql.y:5516 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 831: + case 834: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5486 +//line mysql_sql.y:5520 { yyLOCAL = yyDollar[2].identifierListUnion() } yyVAL.union = yyLOCAL - case 832: + case 835: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5491 +//line mysql_sql.y:5525 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 833: + case 836: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5495 +//line mysql_sql.y:5529 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 834: + case 837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5501 +//line mysql_sql.y:5535 { yyLOCAL = &tree.Limit{Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 835: + case 838: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5505 +//line mysql_sql.y:5539 { yyLOCAL = &tree.Limit{Offset: yyDollar[2].exprUnion(), Count: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 836: + case 839: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5509 +//line mysql_sql.y:5543 { yyLOCAL = &tree.Limit{Offset: yyDollar[4].exprUnion(), Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 837: + case 840: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5514 +//line mysql_sql.y:5548 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 838: + case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5518 +//line mysql_sql.y:5552 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 839: + case 842: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5524 +//line mysql_sql.y:5558 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 840: + case 843: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5530 +//line mysql_sql.y:5564 { yyLOCAL = tree.OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 841: + case 844: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5534 +//line mysql_sql.y:5568 { yyLOCAL = append(yyDollar[1].orderByUnion(), yyDollar[3].orderUnion()) } yyVAL.union = yyLOCAL - case 842: + case 845: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Order -//line mysql_sql.y:5540 +//line mysql_sql.y:5574 { yyLOCAL = &tree.Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].directionUnion(), NullsPosition: yyDollar[3].nullsPositionUnion()} } yyVAL.union = yyLOCAL - case 843: + case 846: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:5545 +//line mysql_sql.y:5579 { yyLOCAL = tree.DefaultDirection } yyVAL.union = yyLOCAL - case 844: + case 847: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:5549 +//line mysql_sql.y:5583 { yyLOCAL = tree.Ascending } yyVAL.union = yyLOCAL - case 845: + case 848: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:5553 +//line mysql_sql.y:5587 { yyLOCAL = tree.Descending } yyVAL.union = yyLOCAL - case 846: + case 849: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.NullsPosition -//line mysql_sql.y:5558 +//line mysql_sql.y:5592 { yyLOCAL = tree.DefaultNullsPosition } yyVAL.union = yyLOCAL - case 847: + case 850: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.NullsPosition -//line mysql_sql.y:5562 +//line mysql_sql.y:5596 { yyLOCAL = tree.NullsFirst } yyVAL.union = yyLOCAL - case 848: + case 851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.NullsPosition -//line mysql_sql.y:5566 +//line mysql_sql.y:5600 { yyLOCAL = tree.NullsLast } yyVAL.union = yyLOCAL - case 849: + case 852: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.SelectLockInfo -//line mysql_sql.y:5571 +//line mysql_sql.y:5605 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 850: + case 853: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SelectLockInfo -//line mysql_sql.y:5575 +//line mysql_sql.y:5609 { yyLOCAL = &tree.SelectLockInfo{ LockType: tree.SelectLockForUpdate, } } yyVAL.union = yyLOCAL - case 851: + case 854: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5583 +//line mysql_sql.y:5617 { yyLOCAL = &tree.ParenSelect{Select: yyDollar[2].selectUnion()} } yyVAL.union = yyLOCAL - case 852: + case 855: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5587 +//line mysql_sql.y:5621 { yyLOCAL = &tree.ParenSelect{Select: &tree.Select{Select: yyDollar[2].selectStatementUnion()}} } yyVAL.union = yyLOCAL - case 853: + case 856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5591 +//line mysql_sql.y:5625 { valuesStmt := yyDollar[2].statementUnion().(*tree.ValuesStatement) yyLOCAL = &tree.ParenSelect{Select: &tree.Select{ @@ -17142,18 +17317,18 @@ yydefault: }} } yyVAL.union = yyLOCAL - case 854: + case 857: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5605 +//line mysql_sql.y:5639 { yyLOCAL = yyDollar[1].selectStatementUnion() } yyVAL.union = yyLOCAL - case 855: + case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5609 +//line mysql_sql.y:5643 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17164,10 +17339,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 856: + case 859: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5619 +//line mysql_sql.y:5653 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17178,10 +17353,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 857: + case 860: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5629 +//line mysql_sql.y:5663 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17192,10 +17367,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 858: + case 861: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5639 +//line mysql_sql.y:5673 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17206,10 +17381,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 859: + case 862: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5651 +//line mysql_sql.y:5685 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -17218,10 +17393,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 860: + case 863: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5659 +//line mysql_sql.y:5693 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -17230,10 +17405,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 861: + case 864: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5667 +//line mysql_sql.y:5701 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -17242,10 +17417,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 862: + case 865: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5676 +//line mysql_sql.y:5710 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -17254,10 +17429,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 863: + case 866: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5684 +//line mysql_sql.y:5718 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -17266,10 +17441,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 864: + case 867: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5692 +//line mysql_sql.y:5726 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -17278,10 +17453,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 865: + case 868: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5700 +//line mysql_sql.y:5734 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -17290,10 +17465,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 866: + case 869: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5708 +//line mysql_sql.y:5742 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -17302,10 +17477,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 867: + case 870: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5716 +//line mysql_sql.y:5750 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -17314,10 +17489,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 868: + case 871: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5724 +//line mysql_sql.y:5758 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -17326,10 +17501,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 869: + case 872: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5732 +//line mysql_sql.y:5766 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -17338,10 +17513,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 870: + case 873: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5740 +//line mysql_sql.y:5774 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -17350,10 +17525,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 871: + case 874: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5750 +//line mysql_sql.y:5784 { yyLOCAL = &tree.SelectClause{ Distinct: tree.QuerySpecOptionDistinct&yyDollar[2].selectOptionsUnion() != 0, @@ -17366,146 +17541,146 @@ yydefault: } } yyVAL.union = yyLOCAL - case 872: + case 875: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5763 +//line mysql_sql.y:5797 { yyLOCAL = tree.QuerySpecOptionNone } yyVAL.union = yyLOCAL - case 873: + case 876: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5767 +//line mysql_sql.y:5801 { yyLOCAL = yyDollar[1].selectOptionsUnion() } yyVAL.union = yyLOCAL - case 874: + case 877: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5773 +//line mysql_sql.y:5807 { yyLOCAL = yyDollar[1].selectOptionUnion() } yyVAL.union = yyLOCAL - case 875: + case 878: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5777 +//line mysql_sql.y:5811 { yyLOCAL = yyDollar[1].selectOptionsUnion() | yyDollar[2].selectOptionUnion() } yyVAL.union = yyLOCAL - case 876: + case 879: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5783 +//line mysql_sql.y:5817 { yyLOCAL = tree.QuerySpecOptionSqlSmallResult } yyVAL.union = yyLOCAL - case 877: + case 880: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5787 +//line mysql_sql.y:5821 { yyLOCAL = tree.QuerySpecOptionSqlBigResult } yyVAL.union = yyLOCAL - case 878: + case 881: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5791 +//line mysql_sql.y:5825 { yyLOCAL = tree.QuerySpecOptionSqlBufferResult } yyVAL.union = yyLOCAL - case 879: + case 882: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5795 +//line mysql_sql.y:5829 { yyLOCAL = tree.QuerySpecOptionStraightJoin } yyVAL.union = yyLOCAL - case 880: + case 883: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5799 +//line mysql_sql.y:5833 { yyLOCAL = tree.QuerySpecOptionHighPriority } yyVAL.union = yyLOCAL - case 881: + case 884: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5803 +//line mysql_sql.y:5837 { yyLOCAL = tree.QuerySpecOptionSqlCalcFoundRows } yyVAL.union = yyLOCAL - case 882: + case 885: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5807 +//line mysql_sql.y:5841 { yyLOCAL = tree.QuerySpecOptionSqlNoCache } yyVAL.union = yyLOCAL - case 883: + case 886: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5811 +//line mysql_sql.y:5845 { yyLOCAL = tree.QuerySpecOptionAll } yyVAL.union = yyLOCAL - case 884: + case 887: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5815 +//line mysql_sql.y:5849 { yyLOCAL = tree.QuerySpecOptionDistinct } yyVAL.union = yyLOCAL - case 885: + case 888: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5819 +//line mysql_sql.y:5853 { yyLOCAL = tree.QuerySpecOptionDistinctRow } yyVAL.union = yyLOCAL - case 886: + case 889: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5841 +//line mysql_sql.y:5875 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 887: + case 890: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5845 +//line mysql_sql.y:5879 { yyLOCAL = &tree.Where{Type: tree.AstHaving, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 888: + case 891: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5850 +//line mysql_sql.y:5884 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 889: + case 892: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5854 +//line mysql_sql.y:5888 { exprsList := []tree.Exprs{yyDollar[3].exprsUnion()} yyLOCAL = &tree.GroupByClause{ @@ -17516,10 +17691,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 890: + case 893: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5864 +//line mysql_sql.y:5898 { yyLOCAL = &tree.GroupByClause{ GroupByExprsList: yyDollar[6].rowsExprsUnion(), @@ -17529,10 +17704,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 891: + case 894: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5873 +//line mysql_sql.y:5907 { yyLOCAL = &tree.GroupByClause{ GroupByExprsList: []tree.Exprs{yyDollar[5].exprsUnion()}, @@ -17542,10 +17717,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 892: + case 895: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5882 +//line mysql_sql.y:5916 { yyLOCAL = &tree.GroupByClause{ GroupByExprsList: []tree.Exprs{yyDollar[5].exprsUnion()}, @@ -17555,106 +17730,106 @@ yydefault: } } yyVAL.union = yyLOCAL - case 893: + case 896: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5893 +//line mysql_sql.y:5927 { yyLOCAL = []tree.Exprs{yyDollar[2].exprsUnion()} } yyVAL.union = yyLOCAL - case 894: + case 897: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5897 +//line mysql_sql.y:5931 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[4].exprsUnion()) } yyVAL.union = yyLOCAL - case 895: + case 898: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5902 +//line mysql_sql.y:5936 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 896: + case 899: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5906 +//line mysql_sql.y:5940 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 897: + case 900: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5911 +//line mysql_sql.y:5945 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 898: + case 901: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5915 +//line mysql_sql.y:5949 { yyLOCAL = &tree.Where{Type: tree.AstWhere, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 899: + case 902: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:5921 +//line mysql_sql.y:5955 { yyLOCAL = tree.SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 900: + case 903: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:5925 +//line mysql_sql.y:5959 { yyLOCAL = append(yyDollar[1].selectExprsUnion(), yyDollar[3].selectExprUnion()) } yyVAL.union = yyLOCAL - case 901: + case 904: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5931 +//line mysql_sql.y:5965 { yyLOCAL = tree.SelectExpr{Expr: tree.StarExpr()} } yyVAL.union = yyLOCAL - case 902: + case 905: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5935 +//line mysql_sql.y:5969 { yyLOCAL = tree.SelectExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].cstrUnion()} } yyVAL.union = yyLOCAL - case 903: + case 906: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5939 +//line mysql_sql.y:5973 { yyLOCAL = tree.SelectExpr{Expr: tree.NewUnresolvedNameWithStar(yyDollar[1].cstrUnion())} } yyVAL.union = yyLOCAL - case 904: + case 907: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5943 +//line mysql_sql.y:5977 { yyLOCAL = tree.SelectExpr{Expr: tree.NewUnresolvedNameWithStar(yyDollar[1].cstrUnion(), yyDollar[3].cstrUnion())} } yyVAL.union = yyLOCAL - case 905: + case 908: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:5948 +//line mysql_sql.y:5982 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} tn := tree.NewTableName(tree.Identifier(""), prefix, nil) @@ -17663,28 +17838,28 @@ yydefault: } } yyVAL.union = yyLOCAL - case 906: + case 909: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:5956 +//line mysql_sql.y:5990 { yyLOCAL = yyDollar[1].fromUnion() } yyVAL.union = yyLOCAL - case 907: + case 910: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:5962 +//line mysql_sql.y:5996 { yyLOCAL = &tree.From{ Tables: tree.TableExprs{yyDollar[2].tableExprUnion()}, } } yyVAL.union = yyLOCAL - case 908: + case 911: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5970 +//line mysql_sql.y:6004 { if t, ok := yyDollar[1].tableExprUnion().(*tree.JoinTableExpr); ok { yyLOCAL = t @@ -17695,34 +17870,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 909: + case 912: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5980 +//line mysql_sql.y:6014 { yyLOCAL = &tree.JoinTableExpr{Left: yyDollar[1].tableExprUnion(), Right: yyDollar[3].tableExprUnion(), JoinType: tree.JOIN_TYPE_CROSS} } yyVAL.union = yyLOCAL - case 912: + case 915: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5990 +//line mysql_sql.y:6024 { yyLOCAL = yyDollar[1].joinTableExprUnion() } yyVAL.union = yyLOCAL - case 913: + case 916: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5994 +//line mysql_sql.y:6028 { yyLOCAL = yyDollar[1].applyTableExprUnion() } yyVAL.union = yyLOCAL - case 914: + case 917: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6000 +//line mysql_sql.y:6034 { if strings.Contains(yyDollar[2].str, ":") { ss := strings.SplitN(yyDollar[2].str, ":", 2) @@ -17743,10 +17918,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 915: + case 918: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6020 +//line mysql_sql.y:6054 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17756,10 +17931,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 916: + case 919: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6029 +//line mysql_sql.y:6063 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17769,10 +17944,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 917: + case 920: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6038 +//line mysql_sql.y:6072 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17781,10 +17956,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 918: + case 921: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6046 +//line mysql_sql.y:6080 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17794,10 +17969,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 919: + case 922: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ApplyTableExpr -//line mysql_sql.y:6057 +//line mysql_sql.y:6091 { yyLOCAL = &tree.ApplyTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17806,27 +17981,27 @@ yydefault: } } yyVAL.union = yyLOCAL - case 920: + case 923: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6067 +//line mysql_sql.y:6101 { yyVAL.str = tree.APPLY_TYPE_CROSS } - case 921: + case 924: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6071 +//line mysql_sql.y:6105 { yyVAL.str = tree.APPLY_TYPE_OUTER } - case 922: + case 925: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6077 +//line mysql_sql.y:6111 { yyVAL.str = tree.JOIN_TYPE_NATURAL } - case 923: + case 926: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6081 +//line mysql_sql.y:6115 { if yyDollar[2].str == tree.JOIN_TYPE_LEFT { yyVAL.str = tree.JOIN_TYPE_NATURAL_LEFT @@ -17834,40 +18009,40 @@ yydefault: yyVAL.str = tree.JOIN_TYPE_NATURAL_RIGHT } } - case 924: + case 927: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6091 +//line mysql_sql.y:6125 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 925: + case 928: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6095 +//line mysql_sql.y:6129 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 926: + case 929: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6099 +//line mysql_sql.y:6133 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 927: + case 930: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6103 +//line mysql_sql.y:6137 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 928: + case 931: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6109 +//line mysql_sql.y:6143 { yyVAL.str = tree.JOIN_TYPE_DEDUP } - case 929: + case 932: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6115 +//line mysql_sql.y:6149 { yyLOCAL = &tree.ValuesStatement{ Rows: yyDollar[2].rowsExprsUnion(), @@ -17876,148 +18051,148 @@ yydefault: } } yyVAL.union = yyLOCAL - case 930: + case 933: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:6126 +//line mysql_sql.y:6160 { yyLOCAL = []tree.Exprs{yyDollar[1].exprsUnion()} } yyVAL.union = yyLOCAL - case 931: + case 934: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:6130 +//line mysql_sql.y:6164 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 932: + case 935: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:6136 +//line mysql_sql.y:6170 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 933: + case 936: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6142 +//line mysql_sql.y:6176 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 934: + case 937: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6146 +//line mysql_sql.y:6180 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 935: + case 938: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6152 +//line mysql_sql.y:6186 { yyVAL.str = yyDollar[1].str } - case 936: + case 939: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6159 +//line mysql_sql.y:6193 { yyVAL.str = yyDollar[2].str } - case 937: + case 940: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6165 +//line mysql_sql.y:6199 { yyVAL.str = tree.JOIN_TYPE_STRAIGHT } - case 938: + case 941: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6171 +//line mysql_sql.y:6205 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 939: + case 942: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6175 +//line mysql_sql.y:6209 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 940: + case 943: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6179 +//line mysql_sql.y:6213 { yyVAL.str = tree.JOIN_TYPE_CROSS } - case 941: + case 944: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6183 +//line mysql_sql.y:6217 { yyVAL.str = tree.JOIN_TYPE_CENTROIDX + ":" + yyDollar[2].str } - case 942: + case 945: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6189 +//line mysql_sql.y:6223 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 943: + case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6193 +//line mysql_sql.y:6227 { yyLOCAL = yyDollar[1].joinCondUnion() } yyVAL.union = yyLOCAL - case 944: + case 947: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6199 +//line mysql_sql.y:6233 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 945: + case 948: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6203 +//line mysql_sql.y:6237 { yyLOCAL = &tree.UsingJoinCond{Cols: yyDollar[3].identifierListUnion()} } yyVAL.union = yyLOCAL - case 946: + case 949: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:6209 +//line mysql_sql.y:6243 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].cstrUnion().Compare())} } yyVAL.union = yyLOCAL - case 947: + case 950: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:6213 +//line mysql_sql.y:6247 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].cstrUnion().Compare())) } yyVAL.union = yyLOCAL - case 948: + case 951: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6219 +//line mysql_sql.y:6253 { yyLOCAL = yyDollar[1].aliasedTableExprUnion() } yyVAL.union = yyLOCAL - case 949: + case 952: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6223 +//line mysql_sql.y:6257 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].parenTableExprUnion(), @@ -18028,10 +18203,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 950: + case 953: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6233 +//line mysql_sql.y:6267 { if yyDollar[2].str != "" { yyLOCAL = &tree.AliasedTableExpr{ @@ -18045,26 +18220,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 951: + case 954: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6246 +//line mysql_sql.y:6280 { yyLOCAL = yyDollar[2].tableExprUnion() } yyVAL.union = yyLOCAL - case 952: + case 955: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ParenTableExpr -//line mysql_sql.y:6252 +//line mysql_sql.y:6286 { yyLOCAL = &tree.ParenTableExpr{Expr: yyDollar[1].selectStatementUnion().(*tree.ParenSelect).Select} } yyVAL.union = yyLOCAL - case 953: + case 956: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6258 +//line mysql_sql.y:6292 { name := tree.NewUnresolvedName(yyDollar[1].cstrUnion()) yyLOCAL = &tree.TableFunction{ @@ -18077,10 +18252,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 954: + case 957: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AliasedTableExpr -//line mysql_sql.y:6272 +//line mysql_sql.y:6306 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].tableNameUnion(), @@ -18091,34 +18266,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 955: + case 958: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.IndexHint -//line mysql_sql.y:6283 +//line mysql_sql.y:6317 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 957: + case 960: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.IndexHint -//line mysql_sql.y:6290 +//line mysql_sql.y:6324 { yyLOCAL = []*tree.IndexHint{yyDollar[1].indexHintUnion()} } yyVAL.union = yyLOCAL - case 958: + case 961: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.IndexHint -//line mysql_sql.y:6294 +//line mysql_sql.y:6328 { yyLOCAL = append(yyDollar[1].indexHintListUnion(), yyDollar[2].indexHintUnion()) } yyVAL.union = yyLOCAL - case 959: + case 962: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.IndexHint -//line mysql_sql.y:6300 +//line mysql_sql.y:6334 { yyLOCAL = &tree.IndexHint{ IndexNames: yyDollar[4].strsUnion(), @@ -18127,182 +18302,182 @@ yydefault: } } yyVAL.union = yyLOCAL - case 960: + case 963: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintType -//line mysql_sql.y:6310 +//line mysql_sql.y:6344 { yyLOCAL = tree.HintUse } yyVAL.union = yyLOCAL - case 961: + case 964: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintType -//line mysql_sql.y:6314 +//line mysql_sql.y:6348 { yyLOCAL = tree.HintIgnore } yyVAL.union = yyLOCAL - case 962: + case 965: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintType -//line mysql_sql.y:6318 +//line mysql_sql.y:6352 { yyLOCAL = tree.HintForce } yyVAL.union = yyLOCAL - case 963: + case 966: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6323 +//line mysql_sql.y:6357 { yyLOCAL = tree.HintForScan } yyVAL.union = yyLOCAL - case 964: + case 967: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6327 +//line mysql_sql.y:6361 { yyLOCAL = tree.HintForJoin } yyVAL.union = yyLOCAL - case 965: + case 968: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6331 +//line mysql_sql.y:6365 { yyLOCAL = tree.HintForOrderBy } yyVAL.union = yyLOCAL - case 966: + case 969: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6335 +//line mysql_sql.y:6369 { yyLOCAL = tree.HintForGroupBy } yyVAL.union = yyLOCAL - case 967: + case 970: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6340 +//line mysql_sql.y:6374 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 968: + case 971: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6344 +//line mysql_sql.y:6378 { yyLOCAL = []string{yyDollar[1].cstrUnion().Compare()} } yyVAL.union = yyLOCAL - case 969: + case 972: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6348 +//line mysql_sql.y:6382 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].cstrUnion().Compare()) } yyVAL.union = yyLOCAL - case 970: + case 973: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6352 +//line mysql_sql.y:6386 { yyLOCAL = []string{yyDollar[1].str} } yyVAL.union = yyLOCAL - case 971: + case 974: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6356 +//line mysql_sql.y:6390 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 972: + case 975: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6361 +//line mysql_sql.y:6395 { yyVAL.str = "" } - case 973: + case 976: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6365 +//line mysql_sql.y:6399 { yyVAL.str = yyDollar[1].str } - case 974: + case 977: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6369 +//line mysql_sql.y:6403 { yyVAL.str = yyDollar[2].str } - case 975: + case 978: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6375 +//line mysql_sql.y:6409 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) } - case 976: + case 979: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6379 +//line mysql_sql.y:6413 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[1].str) } - case 977: + case 980: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6384 +//line mysql_sql.y:6418 { yyLOCAL = tree.NewCStr("", 1) } yyVAL.union = yyLOCAL - case 978: + case 981: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6388 +//line mysql_sql.y:6422 { yyLOCAL = yyDollar[1].cstrUnion() } yyVAL.union = yyLOCAL - case 979: + case 982: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6392 +//line mysql_sql.y:6426 { yyLOCAL = yyDollar[2].cstrUnion() } yyVAL.union = yyLOCAL - case 980: + case 983: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6396 +//line mysql_sql.y:6430 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 981: + case 984: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6400 +//line mysql_sql.y:6434 { yyLOCAL = tree.NewCStr(yyDollar[2].str, 1) } yyVAL.union = yyLOCAL - case 982: + case 985: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6406 +//line mysql_sql.y:6440 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1005: + case 1008: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6448 +//line mysql_sql.y:6482 { var Language = yyDollar[3].str var Name = tree.Identifier(yyDollar[5].str) @@ -18314,22 +18489,22 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1006: + case 1009: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6461 +//line mysql_sql.y:6495 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1007: + case 1010: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6467 +//line mysql_sql.y:6501 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1008: + case 1011: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6473 +//line mysql_sql.y:6507 { var Name = yyDollar[3].procNameUnion() var Args = yyDollar[5].procArgsUnion() @@ -18341,101 +18516,101 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1009: + case 1012: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ProcedureName -//line mysql_sql.y:6486 +//line mysql_sql.y:6520 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewProcedureName(tree.Identifier(yyDollar[1].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1010: + case 1013: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ProcedureName -//line mysql_sql.y:6491 +//line mysql_sql.y:6525 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(dbName), ExplicitSchema: true} yyLOCAL = tree.NewProcedureName(tree.Identifier(yyDollar[3].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1011: + case 1014: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.ProcedureArgs -//line mysql_sql.y:6498 +//line mysql_sql.y:6532 { yyLOCAL = tree.ProcedureArgs(nil) } yyVAL.union = yyLOCAL - case 1013: + case 1016: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ProcedureArgs -//line mysql_sql.y:6505 +//line mysql_sql.y:6539 { yyLOCAL = tree.ProcedureArgs{yyDollar[1].procArgUnion()} } yyVAL.union = yyLOCAL - case 1014: + case 1017: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ProcedureArgs -//line mysql_sql.y:6509 +//line mysql_sql.y:6543 { yyLOCAL = append(yyDollar[1].procArgsUnion(), yyDollar[3].procArgUnion()) } yyVAL.union = yyLOCAL - case 1015: + case 1018: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ProcedureArg -//line mysql_sql.y:6515 +//line mysql_sql.y:6549 { yyLOCAL = tree.ProcedureArg(yyDollar[1].procArgDeclUnion()) } yyVAL.union = yyLOCAL - case 1016: + case 1019: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ProcedureArgDecl -//line mysql_sql.y:6521 +//line mysql_sql.y:6555 { yyLOCAL = tree.NewProcedureArgDecl(yyDollar[1].procArgTypeUnion(), yyDollar[2].unresolvedNameUnion(), yyDollar[3].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1017: + case 1020: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6526 +//line mysql_sql.y:6560 { yyLOCAL = tree.TYPE_IN } yyVAL.union = yyLOCAL - case 1018: + case 1021: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6530 +//line mysql_sql.y:6564 { yyLOCAL = tree.TYPE_IN } yyVAL.union = yyLOCAL - case 1019: + case 1022: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6534 +//line mysql_sql.y:6568 { yyLOCAL = tree.TYPE_OUT } yyVAL.union = yyLOCAL - case 1020: + case 1023: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6538 +//line mysql_sql.y:6572 { yyLOCAL = tree.TYPE_INOUT } yyVAL.union = yyLOCAL - case 1021: + case 1024: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6545 +//line mysql_sql.y:6579 { if yyDollar[13].str == "" { yylex.Error("no function body error") @@ -18467,127 +18642,127 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1022: + case 1025: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FunctionName -//line mysql_sql.y:6578 +//line mysql_sql.y:6612 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewFuncName(tree.Identifier(yyDollar[1].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1023: + case 1026: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FunctionName -//line mysql_sql.y:6583 +//line mysql_sql.y:6617 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(dbName), ExplicitSchema: true} yyLOCAL = tree.NewFuncName(tree.Identifier(yyDollar[3].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1024: + case 1027: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FunctionArgs -//line mysql_sql.y:6590 +//line mysql_sql.y:6624 { yyLOCAL = tree.FunctionArgs(nil) } yyVAL.union = yyLOCAL - case 1026: + case 1029: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FunctionArgs -//line mysql_sql.y:6597 +//line mysql_sql.y:6631 { yyLOCAL = tree.FunctionArgs{yyDollar[1].funcArgUnion()} } yyVAL.union = yyLOCAL - case 1027: + case 1030: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FunctionArgs -//line mysql_sql.y:6601 +//line mysql_sql.y:6635 { yyLOCAL = append(yyDollar[1].funcArgsUnion(), yyDollar[3].funcArgUnion()) } yyVAL.union = yyLOCAL - case 1028: + case 1031: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FunctionArg -//line mysql_sql.y:6607 +//line mysql_sql.y:6641 { yyLOCAL = tree.FunctionArg(yyDollar[1].funcArgDeclUnion()) } yyVAL.union = yyLOCAL - case 1029: + case 1032: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FunctionArgDecl -//line mysql_sql.y:6613 +//line mysql_sql.y:6647 { yyLOCAL = tree.NewFunctionArgDecl(nil, yyDollar[1].columnTypeUnion(), nil) } yyVAL.union = yyLOCAL - case 1030: + case 1033: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FunctionArgDecl -//line mysql_sql.y:6617 +//line mysql_sql.y:6651 { yyLOCAL = tree.NewFunctionArgDecl(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), nil) } yyVAL.union = yyLOCAL - case 1031: + case 1034: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FunctionArgDecl -//line mysql_sql.y:6621 +//line mysql_sql.y:6655 { yyLOCAL = tree.NewFunctionArgDecl(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1032: + case 1035: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6627 +//line mysql_sql.y:6661 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1033: + case 1036: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReturnType -//line mysql_sql.y:6633 +//line mysql_sql.y:6667 { yyLOCAL = tree.NewReturnType(yyDollar[1].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1034: + case 1037: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6639 +//line mysql_sql.y:6673 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1035: + case 1038: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6643 +//line mysql_sql.y:6677 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1036: + case 1039: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6649 +//line mysql_sql.y:6683 { yyVAL.str = "" } - case 1038: + case 1041: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6656 +//line mysql_sql.y:6690 { yyVAL.str = yyDollar[2].str } - case 1039: + case 1042: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6662 +//line mysql_sql.y:6696 { var Replace bool var Name = yyDollar[5].tableNameUnion() @@ -18603,10 +18778,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1040: + case 1043: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6677 +//line mysql_sql.y:6711 { var Replace = yyDollar[2].sourceOptionalUnion() var Name = yyDollar[5].tableNameUnion() @@ -18622,10 +18797,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1041: + case 1044: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6694 +//line mysql_sql.y:6728 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = yyDollar[4].exprUnion() @@ -18641,81 +18816,81 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1042: + case 1045: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6711 +//line mysql_sql.y:6745 { yyVAL.str = yyDollar[1].str } - case 1043: + case 1046: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6715 +//line mysql_sql.y:6749 { yyVAL.str = yyVAL.str + yyDollar[2].str } - case 1044: + case 1047: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6721 +//line mysql_sql.y:6755 { yyVAL.str = "ALGORITHM = " + yyDollar[3].str } - case 1045: + case 1048: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6725 +//line mysql_sql.y:6759 { yyVAL.str = "DEFINER = " } - case 1046: + case 1049: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6729 +//line mysql_sql.y:6763 { yyVAL.str = "SQL SECURITY " + yyDollar[3].str } - case 1047: + case 1050: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6734 +//line mysql_sql.y:6768 { yyVAL.str = "" } - case 1048: + case 1051: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:6738 +//line mysql_sql.y:6772 { yyVAL.str = "WITH " + yyDollar[2].str + " CHECK OPTION" } - case 1054: + case 1057: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6752 +//line mysql_sql.y:6786 { yyVAL.str = "" } - case 1057: + case 1060: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6760 +//line mysql_sql.y:6794 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1058: + case 1061: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6766 +//line mysql_sql.y:6800 { var str = yyDollar[1].cstrUnion().Compare() yyLOCAL = tree.NewNumVal(str, str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1059: + case 1062: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6771 +//line mysql_sql.y:6805 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1060: + case 1063: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountAuthOption -//line mysql_sql.y:6777 +//line mysql_sql.y:6811 { var Equal = yyDollar[2].str var AdminName = yyDollar[3].exprUnion() @@ -18727,36 +18902,36 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1061: + case 1064: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6790 +//line mysql_sql.y:6824 { var str = yyDollar[1].str yyLOCAL = tree.NewNumVal(str, str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1062: + case 1065: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6795 +//line mysql_sql.y:6829 { var str = yyDollar[1].cstrUnion().Compare() yyLOCAL = tree.NewNumVal(str, str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1063: + case 1066: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6800 +//line mysql_sql.y:6834 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1064: + case 1067: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6806 +//line mysql_sql.y:6840 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedByPassword, @@ -18764,10 +18939,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1065: + case 1068: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6813 +//line mysql_sql.y:6847 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedByPassword, @@ -18775,10 +18950,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1066: + case 1069: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6820 +//line mysql_sql.y:6854 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedByRandomPassword, @@ -18786,10 +18961,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1067: + case 1070: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6827 +//line mysql_sql.y:6861 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedWithSSL, @@ -18797,10 +18972,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1068: + case 1071: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6834 +//line mysql_sql.y:6868 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedWithSSL, @@ -18808,20 +18983,20 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1069: + case 1072: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6842 +//line mysql_sql.y:6876 { as := tree.NewAccountStatus() as.Exist = false yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1070: + case 1073: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6848 +//line mysql_sql.y:6882 { as := tree.NewAccountStatus() as.Exist = true @@ -18829,10 +19004,10 @@ yydefault: yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1071: + case 1074: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6855 +//line mysql_sql.y:6889 { as := tree.NewAccountStatus() as.Exist = true @@ -18840,10 +19015,10 @@ yydefault: yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1072: + case 1075: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6862 +//line mysql_sql.y:6896 { as := tree.NewAccountStatus() as.Exist = true @@ -18851,20 +19026,20 @@ yydefault: yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1073: + case 1076: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:6870 +//line mysql_sql.y:6904 { ac := tree.NewAccountComment() ac.Exist = false yyLOCAL = *ac } yyVAL.union = yyLOCAL - case 1074: + case 1077: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:6876 +//line mysql_sql.y:6910 { ac := tree.NewAccountComment() ac.Exist = true @@ -18872,10 +19047,10 @@ yydefault: yyLOCAL = *ac } yyVAL.union = yyLOCAL - case 1075: + case 1078: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6885 +//line mysql_sql.y:6919 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Users = yyDollar[4].usersUnion() @@ -18891,10 +19066,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1076: + case 1079: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6902 +//line mysql_sql.y:6936 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -18911,10 +19086,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1077: + case 1080: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6918 +//line mysql_sql.y:6952 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -18932,30 +19107,30 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1078: + case 1081: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:6937 +//line mysql_sql.y:6971 { yyLOCAL = &tree.AccountsSetOption{ All: true, } } yyVAL.union = yyLOCAL - case 1079: + case 1082: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:6943 +//line mysql_sql.y:6977 { yyLOCAL = &tree.AccountsSetOption{ SetAccounts: yyDollar[2].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1080: + case 1083: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6952 +//line mysql_sql.y:6986 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -18973,20 +19148,20 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1081: + case 1084: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageStatus -//line mysql_sql.y:6970 +//line mysql_sql.y:7004 { yyLOCAL = tree.StageStatus{ Exist: false, } } yyVAL.union = yyLOCAL - case 1082: + case 1085: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageStatus -//line mysql_sql.y:6976 +//line mysql_sql.y:7010 { yyLOCAL = tree.StageStatus{ Exist: true, @@ -18994,10 +19169,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1083: + case 1086: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageStatus -//line mysql_sql.y:6983 +//line mysql_sql.y:7017 { yyLOCAL = tree.StageStatus{ Exist: true, @@ -19005,20 +19180,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1084: + case 1087: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageComment -//line mysql_sql.y:6991 +//line mysql_sql.y:7025 { yyLOCAL = tree.StageComment{ Exist: false, } } yyVAL.union = yyLOCAL - case 1085: + case 1088: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageComment -//line mysql_sql.y:6997 +//line mysql_sql.y:7031 { yyLOCAL = tree.StageComment{ Exist: true, @@ -19026,20 +19201,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1086: + case 1089: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageUrl -//line mysql_sql.y:7005 +//line mysql_sql.y:7039 { yyLOCAL = tree.StageUrl{ Exist: false, } } yyVAL.union = yyLOCAL - case 1087: + case 1090: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageUrl -//line mysql_sql.y:7011 +//line mysql_sql.y:7045 { yyLOCAL = tree.StageUrl{ Exist: true, @@ -19047,20 +19222,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1088: + case 1091: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageCredentials -//line mysql_sql.y:7019 +//line mysql_sql.y:7053 { yyLOCAL = tree.StageCredentials{ Exist: false, } } yyVAL.union = yyLOCAL - case 1089: + case 1092: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.StageCredentials -//line mysql_sql.y:7025 +//line mysql_sql.y:7059 { yyLOCAL = tree.StageCredentials{ Exist: true, @@ -19068,61 +19243,61 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1090: + case 1093: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7034 +//line mysql_sql.y:7068 { yyLOCAL = yyDollar[1].strsUnion() } yyVAL.union = yyLOCAL - case 1091: + case 1094: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7038 +//line mysql_sql.y:7072 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].strsUnion()...) } yyVAL.union = yyLOCAL - case 1092: + case 1095: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7043 +//line mysql_sql.y:7077 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 1093: + case 1096: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7047 +//line mysql_sql.y:7081 { yyLOCAL = append(yyLOCAL, yyDollar[1].str) yyLOCAL = append(yyLOCAL, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1094: + case 1097: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:7054 +//line mysql_sql.y:7088 { yyVAL.str = yyDollar[3].str } - case 1095: + case 1098: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:7059 +//line mysql_sql.y:7093 { yyVAL.str = "" } - case 1096: + case 1099: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:7063 +//line mysql_sql.y:7097 { yyVAL.str = yyDollar[2].str } - case 1097: + case 1100: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7069 +//line mysql_sql.y:7103 { var ifNotExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -19133,10 +19308,10 @@ yydefault: yyLOCAL = tree.NewAlterStage(ifNotExists, name, urlOption, credentialsOption, statusOption, comment) } yyVAL.union = yyLOCAL - case 1098: + case 1101: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7082 +//line mysql_sql.y:7116 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -19147,132 +19322,132 @@ yydefault: yyLOCAL = tree.NewAlterPublication(ifExists, name, accountsSet, dbName, table, comment) } yyVAL.union = yyLOCAL - case 1099: + case 1102: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7093 +//line mysql_sql.y:7127 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1100: + case 1103: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7097 +//line mysql_sql.y:7131 { yyLOCAL = &tree.AccountsSetOption{ All: true, } } yyVAL.union = yyLOCAL - case 1101: + case 1104: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7103 +//line mysql_sql.y:7137 { yyLOCAL = &tree.AccountsSetOption{ SetAccounts: yyDollar[2].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1102: + case 1105: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7109 +//line mysql_sql.y:7143 { yyLOCAL = &tree.AccountsSetOption{ AddAccounts: yyDollar[3].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1103: + case 1106: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7115 +//line mysql_sql.y:7149 { yyLOCAL = &tree.AccountsSetOption{ DropAccounts: yyDollar[3].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1104: + case 1107: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:7122 +//line mysql_sql.y:7156 { yyVAL.str = "" } - case 1105: + case 1108: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:7126 +//line mysql_sql.y:7160 { yyVAL.str = yyDollar[2].str } - case 1106: + case 1109: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:7131 +//line mysql_sql.y:7165 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1107: + case 1110: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:7135 +//line mysql_sql.y:7169 { yyLOCAL = yyDollar[2].tableNamesUnion() } yyVAL.union = yyLOCAL - case 1108: + case 1111: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7141 +//line mysql_sql.y:7175 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropPublication(ifExists, name) } yyVAL.union = yyLOCAL - case 1109: + case 1112: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7149 +//line mysql_sql.y:7183 { var ifNotExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropStage(ifNotExists, name) } yyVAL.union = yyLOCAL - case 1110: + case 1113: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7157 +//line mysql_sql.y:7191 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropSnapShot(ifExists, name) } yyVAL.union = yyLOCAL - case 1111: + case 1114: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7165 +//line mysql_sql.y:7199 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropPitr(ifExists, name) } yyVAL.union = yyLOCAL - case 1112: + case 1115: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:7173 +//line mysql_sql.y:7207 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1113: + case 1116: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:7178 +//line mysql_sql.y:7212 { var Exist = false var IsComment bool @@ -19285,10 +19460,10 @@ yydefault: } yyVAL.union = yyLOCAL - case 1114: + case 1117: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:7190 +//line mysql_sql.y:7224 { var Exist = true var IsComment = true @@ -19300,10 +19475,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1115: + case 1118: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:7201 +//line mysql_sql.y:7235 { var Exist = true var IsComment = false @@ -19315,26 +19490,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1116: + case 1119: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7310 +//line mysql_sql.y:7344 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 1117: + case 1120: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7314 +//line mysql_sql.y:7348 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 1118: + case 1121: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:7320 +//line mysql_sql.y:7354 { var Username = yyDollar[1].usernameRecordUnion().Username var Hostname = yyDollar[1].usernameRecordUnion().Hostname @@ -19346,26 +19521,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1119: + case 1122: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7333 +//line mysql_sql.y:7367 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 1120: + case 1123: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7337 +//line mysql_sql.y:7371 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 1121: + case 1124: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:7343 +//line mysql_sql.y:7377 { var Username = yyDollar[1].usernameRecordUnion().Username var Hostname = yyDollar[1].usernameRecordUnion().Hostname @@ -19377,50 +19552,50 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1122: + case 1125: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:7356 +//line mysql_sql.y:7390 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: "%"} } yyVAL.union = yyLOCAL - case 1123: + case 1126: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:7360 +//line mysql_sql.y:7394 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 1124: + case 1127: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:7364 +//line mysql_sql.y:7398 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 1125: + case 1128: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7369 +//line mysql_sql.y:7403 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1126: + case 1129: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7373 +//line mysql_sql.y:7407 { yyLOCAL = yyDollar[1].userIdentifiedUnion() } yyVAL.union = yyLOCAL - case 1127: + case 1130: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7379 +//line mysql_sql.y:7413 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByPassword, @@ -19428,20 +19603,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1128: + case 1131: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7386 +//line mysql_sql.y:7420 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByRandomPassword, } } yyVAL.union = yyLOCAL - case 1129: + case 1132: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7392 +//line mysql_sql.y:7426 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedWithSSL, @@ -19449,16 +19624,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1130: + case 1133: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:7401 +//line mysql_sql.y:7435 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1132: + case 1135: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7408 +//line mysql_sql.y:7442 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Roles = yyDollar[4].rolesUnion() @@ -19468,26 +19643,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1133: + case 1136: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:7419 +//line mysql_sql.y:7453 { yyLOCAL = []*tree.Role{yyDollar[1].roleUnion()} } yyVAL.union = yyLOCAL - case 1134: + case 1137: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:7423 +//line mysql_sql.y:7457 { yyLOCAL = append(yyDollar[1].rolesUnion(), yyDollar[3].roleUnion()) } yyVAL.union = yyLOCAL - case 1135: + case 1138: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Role -//line mysql_sql.y:7429 +//line mysql_sql.y:7463 { var UserName = yyDollar[1].cstrUnion().Compare() yyLOCAL = tree.NewRole( @@ -19495,66 +19670,66 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1136: + case 1139: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:7438 +//line mysql_sql.y:7472 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1137: + case 1140: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:7442 +//line mysql_sql.y:7476 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1138: + case 1141: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:7446 +//line mysql_sql.y:7480 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1139: + case 1142: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7451 +//line mysql_sql.y:7485 { yyLOCAL = tree.INDEX_CATEGORY_NONE } yyVAL.union = yyLOCAL - case 1140: + case 1143: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7455 +//line mysql_sql.y:7489 { yyLOCAL = tree.INDEX_CATEGORY_FULLTEXT } yyVAL.union = yyLOCAL - case 1141: + case 1144: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7459 +//line mysql_sql.y:7493 { yyLOCAL = tree.INDEX_CATEGORY_SPATIAL } yyVAL.union = yyLOCAL - case 1142: + case 1145: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7463 +//line mysql_sql.y:7497 { yyLOCAL = tree.INDEX_CATEGORY_UNIQUE } yyVAL.union = yyLOCAL - case 1143: + case 1146: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7469 +//line mysql_sql.y:7503 { var io *tree.IndexOption = nil if yyDollar[11].indexOptionUnion() == nil && yyDollar[5].indexTypeUnion() != tree.INDEX_TYPE_INVALID { @@ -19585,18 +19760,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1144: + case 1147: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7500 +//line mysql_sql.y:7534 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1145: + case 1148: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7504 +//line mysql_sql.y:7538 { // Merge the options if yyDollar[1].indexOptionUnion() == nil { @@ -19629,20 +19804,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1146: + case 1149: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7538 +//line mysql_sql.y:7572 { io := tree.NewIndexOption() io.KeyBlockSize = uint64(yyDollar[3].item.(int64)) yyLOCAL = io } yyVAL.union = yyLOCAL - case 1147: + case 1150: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7544 +//line mysql_sql.y:7578 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19655,60 +19830,60 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1148: + case 1151: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7556 +//line mysql_sql.y:7590 { io := tree.NewIndexOption() io.AlgoParamVectorOpType = yyDollar[2].str yyLOCAL = io } yyVAL.union = yyLOCAL - case 1149: + case 1152: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7562 +//line mysql_sql.y:7596 { io := tree.NewIndexOption() io.Comment = yyDollar[2].str yyLOCAL = io } yyVAL.union = yyLOCAL - case 1150: + case 1153: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7568 +//line mysql_sql.y:7602 { io := tree.NewIndexOption() io.ParserName = yyDollar[3].cstrUnion().Compare() yyLOCAL = io } yyVAL.union = yyLOCAL - case 1151: + case 1154: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7574 +//line mysql_sql.y:7608 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_VISIBLE yyLOCAL = io } yyVAL.union = yyLOCAL - case 1152: + case 1155: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7580 +//line mysql_sql.y:7614 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_INVISIBLE yyLOCAL = io } yyVAL.union = yyLOCAL - case 1153: + case 1156: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7586 +//line mysql_sql.y:7620 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19720,10 +19895,10 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1154: + case 1157: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7597 +//line mysql_sql.y:7631 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19735,10 +19910,10 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1155: + case 1158: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7608 +//line mysql_sql.y:7642 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19750,36 +19925,36 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1156: + case 1159: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7619 +//line mysql_sql.y:7653 { io := tree.NewIndexOption() io.HnswQuantization = yyDollar[3].str yyLOCAL = io } yyVAL.union = yyLOCAL - case 1157: + case 1160: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7628 +//line mysql_sql.y:7662 { yyLOCAL = []*tree.KeyPart{yyDollar[1].keyPartUnion()} } yyVAL.union = yyLOCAL - case 1158: + case 1161: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7632 +//line mysql_sql.y:7666 { yyLOCAL = append(yyDollar[1].keyPartsUnion(), yyDollar[3].keyPartUnion()) } yyVAL.union = yyLOCAL - case 1159: + case 1162: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7638 +//line mysql_sql.y:7672 { // Order is parsed but just ignored as MySQL dtree. var ColName = yyDollar[1].unresolvedNameUnion() @@ -19794,10 +19969,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1160: + case 1163: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7652 +//line mysql_sql.y:7686 { var ColName *tree.UnresolvedName var Length int @@ -19811,74 +19986,74 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1161: + case 1164: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7666 +//line mysql_sql.y:7700 { yyLOCAL = tree.INDEX_TYPE_INVALID } yyVAL.union = yyLOCAL - case 1162: + case 1165: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7670 +//line mysql_sql.y:7704 { yyLOCAL = tree.INDEX_TYPE_BTREE } yyVAL.union = yyLOCAL - case 1163: + case 1166: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7674 +//line mysql_sql.y:7708 { yyLOCAL = tree.INDEX_TYPE_IVFFLAT } yyVAL.union = yyLOCAL - case 1164: + case 1167: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7678 +//line mysql_sql.y:7712 { yyLOCAL = tree.INDEX_TYPE_HNSW } yyVAL.union = yyLOCAL - case 1165: + case 1168: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7682 +//line mysql_sql.y:7716 { yyLOCAL = tree.INDEX_TYPE_MASTER } yyVAL.union = yyLOCAL - case 1166: + case 1169: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7686 +//line mysql_sql.y:7720 { yyLOCAL = tree.INDEX_TYPE_HASH } yyVAL.union = yyLOCAL - case 1167: + case 1170: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7690 +//line mysql_sql.y:7724 { yyLOCAL = tree.INDEX_TYPE_RTREE } yyVAL.union = yyLOCAL - case 1168: + case 1171: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7694 +//line mysql_sql.y:7728 { yyLOCAL = tree.INDEX_TYPE_BSI } yyVAL.union = yyLOCAL - case 1169: + case 1172: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7700 +//line mysql_sql.y:7734 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].str) @@ -19892,76 +20067,76 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1170: + case 1173: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7715 +//line mysql_sql.y:7749 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1171: + case 1174: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7719 +//line mysql_sql.y:7753 { var From = tree.Identifier(yyDollar[2].str) var Publication = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewSubscriptionOption(From, Publication) } yyVAL.union = yyLOCAL - case 1174: + case 1177: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7730 +//line mysql_sql.y:7764 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1175: + case 1178: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7734 +//line mysql_sql.y:7768 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1176: + case 1179: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7739 +//line mysql_sql.y:7773 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1177: + case 1180: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7743 +//line mysql_sql.y:7777 { yyLOCAL = yyDollar[1].createOptionsUnion() } yyVAL.union = yyLOCAL - case 1178: + case 1181: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7749 +//line mysql_sql.y:7783 { yyLOCAL = []tree.CreateOption{yyDollar[1].createOptionUnion()} } yyVAL.union = yyLOCAL - case 1179: + case 1182: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7753 +//line mysql_sql.y:7787 { yyLOCAL = append(yyDollar[1].createOptionsUnion(), yyDollar[2].createOptionUnion()) } yyVAL.union = yyLOCAL - case 1180: + case 1183: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7759 +//line mysql_sql.y:7793 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Charset = yyDollar[4].str @@ -19971,10 +20146,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1181: + case 1184: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7768 +//line mysql_sql.y:7802 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Collate = yyDollar[4].str @@ -19984,35 +20159,35 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1182: + case 1185: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7777 +//line mysql_sql.y:7811 { var Encrypt = yyDollar[4].str yyLOCAL = tree.NewCreateOptionEncryption(Encrypt) } yyVAL.union = yyLOCAL - case 1183: + case 1186: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7783 +//line mysql_sql.y:7817 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1184: + case 1187: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7787 +//line mysql_sql.y:7821 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1185: + case 1188: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7793 +//line mysql_sql.y:7827 { var TableName = yyDollar[4].tableNameUnion() var Options = yyDollar[7].connectorOptionsUnion() @@ -20022,18 +20197,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1186: + case 1189: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7804 +//line mysql_sql.y:7838 { yyLOCAL = &tree.ShowConnectors{} } yyVAL.union = yyLOCAL - case 1187: + case 1190: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7810 +//line mysql_sql.y:7844 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20050,10 +20225,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1188: + case 1191: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7828 +//line mysql_sql.y:7862 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20070,10 +20245,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1189: + case 1192: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7846 +//line mysql_sql.y:7880 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20090,10 +20265,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1190: + case 1193: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7864 +//line mysql_sql.y:7898 { var Replace = yyDollar[2].sourceOptionalUnion() var IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20109,26 +20284,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1191: + case 1194: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7880 +//line mysql_sql.y:7914 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1192: + case 1195: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7884 +//line mysql_sql.y:7918 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1193: + case 1196: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7893 +//line mysql_sql.y:7927 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20141,10 +20316,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1194: + case 1197: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7905 +//line mysql_sql.y:7939 { t := tree.NewCreateTable() t.IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20154,10 +20329,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1195: + case 1198: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7914 +//line mysql_sql.y:7948 { t := tree.NewCreateTable() t.IsClusterTable = true @@ -20170,10 +20345,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1196: + case 1199: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7926 +//line mysql_sql.y:7960 { t := tree.NewCreateTable() t.IsDynamicTable = true @@ -20184,10 +20359,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1197: + case 1200: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7936 +//line mysql_sql.y:7970 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20198,10 +20373,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1198: + case 1201: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7946 +//line mysql_sql.y:7980 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20213,10 +20388,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1199: + case 1202: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7957 +//line mysql_sql.y:7991 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20227,10 +20402,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1200: + case 1203: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7967 +//line mysql_sql.y:8001 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20242,10 +20417,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1201: + case 1204: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7978 +//line mysql_sql.y:8012 { t := tree.NewCreateTable() t.IsAsLike = true @@ -20254,10 +20429,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1202: + case 1205: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7986 +//line mysql_sql.y:8020 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20267,19 +20442,19 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1203: + case 1206: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:7997 +//line mysql_sql.y:8031 { yyLOCAL = yyDollar[1].loadParamUnion() yyLOCAL.Tail = yyDollar[2].tailParamUnion() } yyVAL.union = yyLOCAL - case 1204: + case 1207: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8004 +//line mysql_sql.y:8038 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20290,10 +20465,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1205: + case 1208: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8014 +//line mysql_sql.y:8048 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20307,10 +20482,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1206: + case 1209: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8027 +//line mysql_sql.y:8061 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20319,10 +20494,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1207: + case 1210: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8035 +//line mysql_sql.y:8069 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20332,10 +20507,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1208: + case 1211: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8044 +//line mysql_sql.y:8078 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20344,55 +20519,55 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1209: + case 1212: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8053 +//line mysql_sql.y:8087 { yyVAL.str = "" } - case 1210: + case 1213: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:8057 +//line mysql_sql.y:8091 { yyVAL.str = yyDollar[4].str } - case 1211: + case 1214: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8063 +//line mysql_sql.y:8097 { yyLOCAL = yyDollar[1].strsUnion() } yyVAL.union = yyLOCAL - case 1212: + case 1215: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8067 +//line mysql_sql.y:8101 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].strsUnion()...) } yyVAL.union = yyLOCAL - case 1213: + case 1216: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8072 +//line mysql_sql.y:8106 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 1214: + case 1217: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8076 +//line mysql_sql.y:8110 { yyLOCAL = append(yyLOCAL, yyDollar[1].str) yyLOCAL = append(yyLOCAL, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1215: + case 1218: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.TailParameter -//line mysql_sql.y:8083 +//line mysql_sql.y:8117 { yyLOCAL = &tree.TailParameter{ Charset: yyDollar[1].str, @@ -20404,22 +20579,22 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1216: + case 1219: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8095 +//line mysql_sql.y:8129 { yyVAL.str = "" } - case 1217: + case 1220: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8099 +//line mysql_sql.y:8133 { yyVAL.str = yyDollar[2].str } - case 1218: + case 1221: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8105 +//line mysql_sql.y:8139 { var Name = yyDollar[4].tableNameUnion() var Type = yyDollar[5].columnTypeUnion() @@ -20441,10 +20616,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1219: + case 1222: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8126 +//line mysql_sql.y:8160 { locale := "" fstr := "bigint" @@ -20459,44 +20634,44 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1220: + case 1223: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8140 +//line mysql_sql.y:8174 { yyLOCAL = yyDollar[2].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1221: + case 1224: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8144 +//line mysql_sql.y:8178 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1222: + case 1225: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8148 +//line mysql_sql.y:8182 { yyLOCAL = &tree.TypeOption{ Type: yyDollar[2].columnTypeUnion(), } } yyVAL.union = yyLOCAL - case 1223: + case 1226: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8154 +//line mysql_sql.y:8188 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1224: + case 1227: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8158 +//line mysql_sql.y:8192 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20504,10 +20679,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1225: + case 1228: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8165 +//line mysql_sql.y:8199 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20515,10 +20690,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1226: + case 1229: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8172 +//line mysql_sql.y:8206 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20526,10 +20701,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1227: + case 1230: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8179 +//line mysql_sql.y:8213 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20537,42 +20712,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1228: + case 1231: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8186 +//line mysql_sql.y:8220 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1229: + case 1232: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8190 +//line mysql_sql.y:8224 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1230: + case 1233: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8194 +//line mysql_sql.y:8228 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1231: + case 1234: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8198 +//line mysql_sql.y:8232 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1232: + case 1235: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8202 +//line mysql_sql.y:8236 { yyLOCAL = &tree.MinValueOption{ Minus: false, @@ -20580,10 +20755,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1233: + case 1236: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8209 +//line mysql_sql.y:8243 { yyLOCAL = &tree.MinValueOption{ Minus: true, @@ -20591,18 +20766,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1234: + case 1237: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8216 +//line mysql_sql.y:8250 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1235: + case 1238: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8220 +//line mysql_sql.y:8254 { yyLOCAL = &tree.MaxValueOption{ Minus: false, @@ -20610,10 +20785,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1236: + case 1239: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8227 +//line mysql_sql.y:8261 { yyLOCAL = &tree.MaxValueOption{ Minus: true, @@ -20621,46 +20796,46 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1237: + case 1240: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8234 +//line mysql_sql.y:8268 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1238: + case 1241: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8238 +//line mysql_sql.y:8272 { yyLOCAL = &tree.CycleOption{ Cycle: false, } } yyVAL.union = yyLOCAL - case 1239: + case 1242: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8244 +//line mysql_sql.y:8278 { yyLOCAL = &tree.CycleOption{ Cycle: true, } } yyVAL.union = yyLOCAL - case 1240: + case 1243: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8250 +//line mysql_sql.y:8284 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1241: + case 1244: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8254 +//line mysql_sql.y:8288 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20668,10 +20843,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1242: + case 1245: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8261 +//line mysql_sql.y:8295 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20679,10 +20854,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1243: + case 1246: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8268 +//line mysql_sql.y:8302 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20690,10 +20865,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1244: + case 1247: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8275 +//line mysql_sql.y:8309 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20701,58 +20876,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1245: + case 1248: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8282 +//line mysql_sql.y:8316 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1246: + case 1249: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8286 +//line mysql_sql.y:8320 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1247: + case 1250: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8291 +//line mysql_sql.y:8325 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1248: + case 1251: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8295 +//line mysql_sql.y:8329 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1249: + case 1252: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8299 +//line mysql_sql.y:8333 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1250: + case 1253: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8304 +//line mysql_sql.y:8338 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1251: + case 1254: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8308 +//line mysql_sql.y:8342 { yyDollar[3].partitionByUnion().Num = uint64(yyDollar[4].int64ValUnion()) var PartBy = yyDollar[3].partitionByUnion() @@ -20765,18 +20940,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1252: + case 1255: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8321 +//line mysql_sql.y:8355 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1253: + case 1256: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8325 +//line mysql_sql.y:8359 { var ColumnList = []*tree.UnresolvedName{yyDollar[3].unresolvedNameUnion()} yyLOCAL = tree.NewClusterByOption( @@ -20785,10 +20960,10 @@ yydefault: } yyVAL.union = yyLOCAL - case 1254: + case 1257: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8333 +//line mysql_sql.y:8367 { var ColumnList = yyDollar[4].unresolveNamesUnion() yyLOCAL = tree.NewClusterByOption( @@ -20796,18 +20971,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1255: + case 1258: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8341 +//line mysql_sql.y:8375 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1256: + case 1259: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8345 +//line mysql_sql.y:8379 { var IsSubPartition = true var PType = yyDollar[3].partitionByUnion() @@ -20819,42 +20994,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1257: + case 1260: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8357 +//line mysql_sql.y:8391 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1258: + case 1261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8361 +//line mysql_sql.y:8395 { yyLOCAL = yyDollar[2].partitionsUnion() } yyVAL.union = yyLOCAL - case 1259: + case 1262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8367 +//line mysql_sql.y:8401 { yyLOCAL = []*tree.Partition{yyDollar[1].partitionUnion()} } yyVAL.union = yyLOCAL - case 1260: + case 1263: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8371 +//line mysql_sql.y:8405 { yyLOCAL = append(yyDollar[1].partitionsUnion(), yyDollar[3].partitionUnion()) } yyVAL.union = yyLOCAL - case 1261: + case 1264: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8377 +//line mysql_sql.y:8411 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -20868,10 +21043,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1262: + case 1265: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8390 +//line mysql_sql.y:8424 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -20885,42 +21060,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1263: + case 1266: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8404 +//line mysql_sql.y:8438 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1264: + case 1267: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8408 +//line mysql_sql.y:8442 { yyLOCAL = yyDollar[2].subPartitionsUnion() } yyVAL.union = yyLOCAL - case 1265: + case 1268: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8414 +//line mysql_sql.y:8448 { yyLOCAL = []*tree.SubPartition{yyDollar[1].subPartitionUnion()} } yyVAL.union = yyLOCAL - case 1266: + case 1269: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8418 +//line mysql_sql.y:8452 { yyLOCAL = append(yyDollar[1].subPartitionsUnion(), yyDollar[3].subPartitionUnion()) } yyVAL.union = yyLOCAL - case 1267: + case 1270: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8424 +//line mysql_sql.y:8458 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options []tree.TableOption @@ -20930,10 +21105,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1268: + case 1271: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8433 +//line mysql_sql.y:8467 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options = yyDollar[3].tableOptionsUnion() @@ -20943,53 +21118,53 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1269: + case 1272: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8444 +//line mysql_sql.y:8478 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1270: + case 1273: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8448 +//line mysql_sql.y:8482 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1271: + case 1274: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8453 +//line mysql_sql.y:8487 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1272: + case 1275: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8457 +//line mysql_sql.y:8491 { expr := tree.NewMaxValue() var valueList = tree.Exprs{expr} yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1273: + case 1276: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8463 +//line mysql_sql.y:8497 { var valueList = yyDollar[5].exprsUnion() yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1274: + case 1277: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8468 +//line mysql_sql.y:8502 { var valueList = yyDollar[4].exprsUnion() yyLOCAL = tree.NewValuesIn( @@ -20997,18 +21172,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1275: + case 1278: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8476 +//line mysql_sql.y:8510 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1276: + case 1279: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8480 +//line mysql_sql.y:8514 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21018,18 +21193,18 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1277: + case 1280: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8490 +//line mysql_sql.y:8524 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1278: + case 1281: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8494 +//line mysql_sql.y:8528 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21039,10 +21214,10 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1279: + case 1282: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8505 +//line mysql_sql.y:8539 { rangeTyp := tree.NewRangeType() rangeTyp.Expr = yyDollar[3].exprUnion() @@ -21051,10 +21226,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1280: + case 1283: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8513 +//line mysql_sql.y:8547 { rangeTyp := tree.NewRangeType() rangeTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21063,10 +21238,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1281: + case 1284: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8521 +//line mysql_sql.y:8555 { listTyp := tree.NewListType() listTyp.Expr = yyDollar[3].exprUnion() @@ -21075,10 +21250,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1282: + case 1285: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8529 +//line mysql_sql.y:8563 { listTyp := tree.NewListType() listTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21087,10 +21262,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1284: + case 1287: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8540 +//line mysql_sql.y:8574 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21100,10 +21275,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1285: + case 1288: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8549 +//line mysql_sql.y:8583 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21114,10 +21289,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1286: + case 1289: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8559 +//line mysql_sql.y:8593 { Linear := yyDollar[1].boolValUnion() Expr := yyDollar[4].exprUnion() @@ -21127,58 +21302,58 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1287: + case 1290: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8569 +//line mysql_sql.y:8603 { yyLOCAL = 2 } yyVAL.union = yyLOCAL - case 1288: + case 1291: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8573 +//line mysql_sql.y:8607 { yyLOCAL = yyDollar[3].item.(int64) } yyVAL.union = yyLOCAL - case 1289: + case 1292: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8578 +//line mysql_sql.y:8612 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1290: + case 1293: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8582 +//line mysql_sql.y:8616 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1291: + case 1294: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8588 +//line mysql_sql.y:8622 { yyLOCAL = []*tree.ConnectorOption{yyDollar[1].connectorOptionUnion()} } yyVAL.union = yyLOCAL - case 1292: + case 1295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8592 +//line mysql_sql.y:8626 { yyLOCAL = append(yyDollar[1].connectorOptionsUnion(), yyDollar[3].connectorOptionUnion()) } yyVAL.union = yyLOCAL - case 1293: + case 1296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8598 +//line mysql_sql.y:8632 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21188,10 +21363,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1294: + case 1297: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8607 +//line mysql_sql.y:8641 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21201,42 +21376,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1295: + case 1298: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8617 +//line mysql_sql.y:8651 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1296: + case 1299: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8621 +//line mysql_sql.y:8655 { yyLOCAL = yyDollar[3].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1297: + case 1300: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8627 +//line mysql_sql.y:8661 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1298: + case 1301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8631 +//line mysql_sql.y:8665 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1299: + case 1302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8637 +//line mysql_sql.y:8671 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21246,10 +21421,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1300: + case 1303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8646 +//line mysql_sql.y:8680 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21259,348 +21434,348 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1301: + case 1304: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8656 +//line mysql_sql.y:8690 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1302: + case 1305: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8660 +//line mysql_sql.y:8694 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1303: + case 1306: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8666 +//line mysql_sql.y:8700 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1304: + case 1307: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8670 +//line mysql_sql.y:8704 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1305: + case 1308: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8674 +//line mysql_sql.y:8708 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1306: + case 1309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8680 +//line mysql_sql.y:8714 { yyLOCAL = tree.NewTableOptionAUTOEXTEND_SIZE(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1307: + case 1310: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8684 +//line mysql_sql.y:8718 { yyLOCAL = tree.NewTableOptionAutoIncrement(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1308: + case 1311: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8688 +//line mysql_sql.y:8722 { yyLOCAL = tree.NewTableOptionAvgRowLength(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1309: + case 1312: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8692 +//line mysql_sql.y:8726 { yyLOCAL = tree.NewTableOptionCharset(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1310: + case 1313: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8696 +//line mysql_sql.y:8730 { yyLOCAL = tree.NewTableOptionCollate(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1311: + case 1314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8700 +//line mysql_sql.y:8734 { yyLOCAL = tree.NewTableOptionChecksum(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1312: + case 1315: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8704 +//line mysql_sql.y:8738 { str := util.DealCommentString(yyDollar[3].str) yyLOCAL = tree.NewTableOptionComment(str) } yyVAL.union = yyLOCAL - case 1313: + case 1316: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8709 +//line mysql_sql.y:8743 { yyLOCAL = tree.NewTableOptionCompression(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1314: + case 1317: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8713 +//line mysql_sql.y:8747 { yyLOCAL = tree.NewTableOptionConnection(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1315: + case 1318: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8717 +//line mysql_sql.y:8751 { yyLOCAL = tree.NewTableOptionDataDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1316: + case 1319: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8721 +//line mysql_sql.y:8755 { yyLOCAL = tree.NewTableOptionIndexDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1317: + case 1320: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8725 +//line mysql_sql.y:8759 { yyLOCAL = tree.NewTableOptionDelayKeyWrite(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1318: + case 1321: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8729 +//line mysql_sql.y:8763 { yyLOCAL = tree.NewTableOptionEncryption(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1319: + case 1322: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8733 +//line mysql_sql.y:8767 { yyLOCAL = tree.NewTableOptionEngine(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1320: + case 1323: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8737 +//line mysql_sql.y:8771 { yyLOCAL = tree.NewTableOptionEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1321: + case 1324: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8741 +//line mysql_sql.y:8775 { yyLOCAL = tree.NewTableOptionInsertMethod(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1322: + case 1325: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8745 +//line mysql_sql.y:8779 { yyLOCAL = tree.NewTableOptionKeyBlockSize(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1323: + case 1326: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8749 +//line mysql_sql.y:8783 { yyLOCAL = tree.NewTableOptionMaxRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1324: + case 1327: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8753 +//line mysql_sql.y:8787 { yyLOCAL = tree.NewTableOptionMinRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1325: + case 1328: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8757 +//line mysql_sql.y:8791 { t := tree.NewTableOptionPackKeys() t.Value = yyDollar[3].item.(int64) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1326: + case 1329: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8763 +//line mysql_sql.y:8797 { t := tree.NewTableOptionPackKeys() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1327: + case 1330: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8769 +//line mysql_sql.y:8803 { yyLOCAL = tree.NewTableOptionPassword(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1328: + case 1331: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8773 +//line mysql_sql.y:8807 { yyLOCAL = tree.NewTableOptionRowFormat(yyDollar[3].rowFormatTypeUnion()) } yyVAL.union = yyLOCAL - case 1329: + case 1332: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8777 +//line mysql_sql.y:8811 { yyLOCAL = tree.NewTTableOptionStartTrans(true) } yyVAL.union = yyLOCAL - case 1330: + case 1333: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8781 +//line mysql_sql.y:8815 { yyLOCAL = tree.NewTTableOptionSecondaryEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1331: + case 1334: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8785 +//line mysql_sql.y:8819 { t := tree.NewTableOptionStatsAutoRecalc() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1332: + case 1335: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8791 +//line mysql_sql.y:8825 { t := tree.NewTableOptionStatsAutoRecalc() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1333: + case 1336: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8797 +//line mysql_sql.y:8831 { t := tree.NewTableOptionStatsPersistent() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1334: + case 1337: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8803 +//line mysql_sql.y:8837 { t := tree.NewTableOptionStatsPersistent() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1335: + case 1338: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8809 +//line mysql_sql.y:8843 { t := tree.NewTableOptionStatsSamplePages() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1336: + case 1339: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8815 +//line mysql_sql.y:8849 { t := tree.NewTableOptionStatsSamplePages() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1337: + case 1340: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8821 +//line mysql_sql.y:8855 { yyLOCAL = tree.NewTableOptionTablespace(yyDollar[3].cstrUnion().Compare(), "") } yyVAL.union = yyLOCAL - case 1338: + case 1341: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8825 +//line mysql_sql.y:8859 { yyLOCAL = tree.NewTableOptionTablespace("", yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1339: + case 1342: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8829 +//line mysql_sql.y:8863 { yyLOCAL = tree.NewTableOptionUnion(yyDollar[4].tableNamesUnion()) } yyVAL.union = yyLOCAL - case 1340: + case 1343: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8833 +//line mysql_sql.y:8867 { var Preperties = yyDollar[3].propertiesUnion() yyLOCAL = tree.NewTableOptionProperties(Preperties) } yyVAL.union = yyLOCAL - case 1341: + case 1344: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8838 +//line mysql_sql.y:8872 { var retentionPeriod = uint64(yyDollar[4].item.(int64)) var retentionUnit = strings.ToLower(yyDollar[5].str) @@ -21610,26 +21785,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1342: + case 1345: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8849 +//line mysql_sql.y:8883 { yyLOCAL = []tree.Property{yyDollar[1].propertyUnion()} } yyVAL.union = yyLOCAL - case 1343: + case 1346: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8853 +//line mysql_sql.y:8887 { yyLOCAL = append(yyDollar[1].propertiesUnion(), yyDollar[3].propertyUnion()) } yyVAL.union = yyLOCAL - case 1344: + case 1347: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Property -//line mysql_sql.y:8859 +//line mysql_sql.y:8893 { var Key = yyDollar[1].str var Value = yyDollar[3].str @@ -21639,96 +21814,96 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1345: + case 1348: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8870 +//line mysql_sql.y:8904 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1346: + case 1349: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8874 +//line mysql_sql.y:8908 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1347: + case 1350: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8880 +//line mysql_sql.y:8914 { yyLOCAL = tree.ROW_FORMAT_DEFAULT } yyVAL.union = yyLOCAL - case 1348: + case 1351: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8884 +//line mysql_sql.y:8918 { yyLOCAL = tree.ROW_FORMAT_DYNAMIC } yyVAL.union = yyLOCAL - case 1349: + case 1352: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8888 +//line mysql_sql.y:8922 { yyLOCAL = tree.ROW_FORMAT_FIXED } yyVAL.union = yyLOCAL - case 1350: + case 1353: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8892 +//line mysql_sql.y:8926 { yyLOCAL = tree.ROW_FORMAT_COMPRESSED } yyVAL.union = yyLOCAL - case 1351: + case 1354: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8896 +//line mysql_sql.y:8930 { yyLOCAL = tree.ROW_FORMAT_REDUNDANT } yyVAL.union = yyLOCAL - case 1352: + case 1355: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8900 +//line mysql_sql.y:8934 { yyLOCAL = tree.ROW_FORMAT_COMPACT } yyVAL.union = yyLOCAL - case 1357: + case 1360: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8914 +//line mysql_sql.y:8948 { yyLOCAL = tree.TableNames{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 1358: + case 1361: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8918 +//line mysql_sql.y:8952 { yyLOCAL = append(yyDollar[1].tableNamesUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 1359: + case 1362: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:8927 +//line mysql_sql.y:8961 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[2].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1360: + case 1363: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:8933 +//line mysql_sql.y:8967 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) @@ -21736,18 +21911,18 @@ yydefault: yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[4].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1361: + case 1364: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8941 +//line mysql_sql.y:8975 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1362: + case 1365: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8945 +//line mysql_sql.y:8979 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPTIME, @@ -21755,10 +21930,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1363: + case 1366: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8952 +//line mysql_sql.y:8986 { var str = yyDollar[4].cstrUnion().Compare() yyLOCAL = &tree.AtTimeStamp{ @@ -21768,10 +21943,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1364: + case 1367: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8961 +//line mysql_sql.y:8995 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPSNAPSHOT, @@ -21780,10 +21955,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1365: + case 1368: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8969 +//line mysql_sql.y:9003 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATMOTIMESTAMP, @@ -21791,10 +21966,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1366: + case 1369: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8976 +//line mysql_sql.y:9010 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ASOFTIMESTAMP, @@ -21802,74 +21977,74 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1367: + case 1370: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:8984 +//line mysql_sql.y:9018 { yyLOCAL = tree.TableDefs(nil) } yyVAL.union = yyLOCAL - case 1369: + case 1372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:8991 +//line mysql_sql.y:9025 { yyLOCAL = tree.TableDefs{yyDollar[1].tableDefUnion()} } yyVAL.union = yyLOCAL - case 1370: + case 1373: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:8995 +//line mysql_sql.y:9029 { yyLOCAL = append(yyDollar[1].tableDefsUnion(), yyDollar[3].tableDefUnion()) } yyVAL.union = yyLOCAL - case 1371: + case 1374: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9001 +//line mysql_sql.y:9035 { yyLOCAL = tree.TableDef(yyDollar[1].columnTableDefUnion()) } yyVAL.union = yyLOCAL - case 1372: + case 1375: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9005 +//line mysql_sql.y:9039 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1373: + case 1376: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9009 +//line mysql_sql.y:9043 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1374: + case 1377: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9015 +//line mysql_sql.y:9049 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1375: + case 1378: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9019 +//line mysql_sql.y:9053 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1376: + case 1379: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9025 +//line mysql_sql.y:9059 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -21883,10 +22058,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1377: + case 1380: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9038 +//line mysql_sql.y:9072 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -21900,10 +22075,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1378: + case 1381: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9051 +//line mysql_sql.y:9085 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -21945,10 +22120,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1379: + case 1382: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9092 +//line mysql_sql.y:9126 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -21989,10 +22164,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1380: + case 1383: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9134 +//line mysql_sql.y:9168 { if yyDollar[1].str != "" { switch v := yyDollar[2].tableDefUnion().(type) { @@ -22007,18 +22182,18 @@ yydefault: yyLOCAL = yyDollar[2].tableDefUnion() } yyVAL.union = yyLOCAL - case 1381: + case 1384: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9148 +//line mysql_sql.y:9182 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1382: + case 1385: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9154 +//line mysql_sql.y:9188 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22032,10 +22207,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1383: + case 1386: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9167 +//line mysql_sql.y:9201 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22049,10 +22224,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1384: + case 1387: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9180 +//line mysql_sql.y:9214 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22066,10 +22241,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1385: + case 1388: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9193 +//line mysql_sql.y:9227 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22083,10 +22258,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1386: + case 1389: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9206 +//line mysql_sql.y:9240 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var KeyParts = yyDollar[6].keyPartsUnion() @@ -22102,10 +22277,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1387: + case 1390: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9221 +//line mysql_sql.y:9255 { var Expr = yyDollar[3].exprUnion() var Enforced = yyDollar[5].boolValUnion() @@ -22115,327 +22290,327 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1388: + case 1391: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9231 +//line mysql_sql.y:9265 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1390: + case 1393: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9237 +//line mysql_sql.y:9271 { yyVAL.str = "" } - case 1391: + case 1394: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9241 +//line mysql_sql.y:9275 { yyVAL.str = yyDollar[1].str } - case 1394: + case 1397: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9251 +//line mysql_sql.y:9285 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = "" } yyVAL.union = yyLOCAL - case 1395: + case 1398: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9257 +//line mysql_sql.y:9291 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1396: + case 1399: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9263 +//line mysql_sql.y:9297 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].cstrUnion().Compare() yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1408: + case 1411: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9285 +//line mysql_sql.y:9319 { yyVAL.str = "" } - case 1409: + case 1412: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9289 +//line mysql_sql.y:9323 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1410: + case 1413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ColumnTableDef -//line mysql_sql.y:9295 +//line mysql_sql.y:9329 { yyLOCAL = tree.NewColumnTableDef(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[3].columnAttributesUnion()) } yyVAL.union = yyLOCAL - case 1411: + case 1414: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9301 +//line mysql_sql.y:9335 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1412: + case 1415: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9305 +//line mysql_sql.y:9339 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1413: + case 1416: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9310 +//line mysql_sql.y:9344 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1414: + case 1417: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9318 +//line mysql_sql.y:9352 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1415: + case 1418: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9322 +//line mysql_sql.y:9356 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1416: + case 1419: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9326 +//line mysql_sql.y:9360 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1417: + case 1420: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9330 +//line mysql_sql.y:9364 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1418: + case 1421: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9336 +//line mysql_sql.y:9370 { yyLOCAL = yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) } yyVAL.union = yyLOCAL - case 1419: + case 1422: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9342 +//line mysql_sql.y:9376 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1420: + case 1423: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9346 +//line mysql_sql.y:9380 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1421: + case 1424: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9351 +//line mysql_sql.y:9385 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1422: + case 1425: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9358 +//line mysql_sql.y:9392 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1423: + case 1426: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9362 +//line mysql_sql.y:9396 { yyLOCAL = yyDollar[1].columnAttributesUnion() } yyVAL.union = yyLOCAL - case 1424: + case 1427: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9368 +//line mysql_sql.y:9402 { yyLOCAL = []tree.ColumnAttribute{yyDollar[1].columnAttributeUnion()} } yyVAL.union = yyLOCAL - case 1425: + case 1428: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9372 +//line mysql_sql.y:9406 { yyLOCAL = append(yyDollar[1].columnAttributesUnion(), yyDollar[2].columnAttributeUnion()) } yyVAL.union = yyLOCAL - case 1426: + case 1429: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9378 +//line mysql_sql.y:9412 { yyLOCAL = tree.NewAttributeNull(true) } yyVAL.union = yyLOCAL - case 1427: + case 1430: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9382 +//line mysql_sql.y:9416 { yyLOCAL = tree.NewAttributeNull(false) } yyVAL.union = yyLOCAL - case 1428: + case 1431: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9386 +//line mysql_sql.y:9420 { yyLOCAL = tree.NewAttributeDefault(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1429: + case 1432: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9390 +//line mysql_sql.y:9424 { yyLOCAL = tree.NewAttributeAutoIncrement() } yyVAL.union = yyLOCAL - case 1430: + case 1433: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9394 +//line mysql_sql.y:9428 { yyLOCAL = yyDollar[1].columnAttributeUnion() } yyVAL.union = yyLOCAL - case 1431: + case 1434: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9398 +//line mysql_sql.y:9432 { str := util.DealCommentString(yyDollar[2].str) yyLOCAL = tree.NewAttributeComment(tree.NewNumVal(str, str, false, tree.P_char)) } yyVAL.union = yyLOCAL - case 1432: + case 1435: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9403 +//line mysql_sql.y:9437 { yyLOCAL = tree.NewAttributeCollate(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1433: + case 1436: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9407 +//line mysql_sql.y:9441 { yyLOCAL = tree.NewAttributeColumnFormat(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1434: + case 1437: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9411 +//line mysql_sql.y:9445 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1435: + case 1438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9415 +//line mysql_sql.y:9449 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1436: + case 1439: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9419 +//line mysql_sql.y:9453 { yyLOCAL = tree.NewAttributeStorage(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1437: + case 1440: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9423 +//line mysql_sql.y:9457 { yyLOCAL = tree.NewAttributeAutoRandom(int(yyDollar[2].int64ValUnion())) } yyVAL.union = yyLOCAL - case 1438: + case 1441: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9427 +//line mysql_sql.y:9461 { yyLOCAL = yyDollar[1].attributeReferenceUnion() } yyVAL.union = yyLOCAL - case 1439: + case 1442: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9431 +//line mysql_sql.y:9465 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), false, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1440: + case 1443: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9435 +//line mysql_sql.y:9469 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), yyDollar[6].boolValUnion(), yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1441: + case 1444: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9439 +//line mysql_sql.y:9473 { name := tree.NewUnresolvedColName(yyDollar[3].str) var es tree.Exprs = nil @@ -22450,98 +22625,98 @@ yydefault: yyLOCAL = tree.NewAttributeOnUpdate(expr) } yyVAL.union = yyLOCAL - case 1442: + case 1445: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9453 +//line mysql_sql.y:9487 { yyLOCAL = tree.NewAttributeLowCardinality() } yyVAL.union = yyLOCAL - case 1443: + case 1446: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9457 +//line mysql_sql.y:9491 { yyLOCAL = tree.NewAttributeVisable(true) } yyVAL.union = yyLOCAL - case 1444: + case 1447: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9461 +//line mysql_sql.y:9495 { yyLOCAL = tree.NewAttributeVisable(false) } yyVAL.union = yyLOCAL - case 1445: + case 1448: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9465 +//line mysql_sql.y:9499 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1446: + case 1449: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9469 +//line mysql_sql.y:9503 { yyLOCAL = tree.NewAttributeHeader(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1447: + case 1450: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9473 +//line mysql_sql.y:9507 { yyLOCAL = tree.NewAttributeHeaders() } yyVAL.union = yyLOCAL - case 1448: + case 1451: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9479 +//line mysql_sql.y:9513 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1449: + case 1452: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9483 +//line mysql_sql.y:9517 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1450: + case 1453: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9488 +//line mysql_sql.y:9522 { yyVAL.str = "" } - case 1451: + case 1454: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9492 +//line mysql_sql.y:9526 { yyVAL.str = yyDollar[1].str } - case 1452: + case 1455: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9498 +//line mysql_sql.y:9532 { yyVAL.str = "" } - case 1453: + case 1456: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:9502 +//line mysql_sql.y:9536 { yyVAL.str = yyDollar[2].cstrUnion().Compare() } - case 1454: + case 1457: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AttributeReference -//line mysql_sql.y:9508 +//line mysql_sql.y:9542 { var TableName = yyDollar[2].tableNameUnion() var KeyParts = yyDollar[3].keyPartsUnion() @@ -22557,10 +22732,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1455: + case 1458: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9525 +//line mysql_sql.y:9559 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22568,10 +22743,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1456: + case 1459: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9532 +//line mysql_sql.y:9566 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22579,10 +22754,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1457: + case 1460: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9539 +//line mysql_sql.y:9573 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22590,10 +22765,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1458: + case 1461: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9546 +//line mysql_sql.y:9580 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22601,10 +22776,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1459: + case 1462: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9553 +//line mysql_sql.y:9587 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[2].referenceOptionTypeUnion(), @@ -22612,354 +22787,354 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1460: + case 1463: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9562 +//line mysql_sql.y:9596 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1461: + case 1464: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9568 +//line mysql_sql.y:9602 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1462: + case 1465: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9574 +//line mysql_sql.y:9608 { yyLOCAL = tree.REFERENCE_OPTION_RESTRICT } yyVAL.union = yyLOCAL - case 1463: + case 1466: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9578 +//line mysql_sql.y:9612 { yyLOCAL = tree.REFERENCE_OPTION_CASCADE } yyVAL.union = yyLOCAL - case 1464: + case 1467: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9582 +//line mysql_sql.y:9616 { yyLOCAL = tree.REFERENCE_OPTION_SET_NULL } yyVAL.union = yyLOCAL - case 1465: + case 1468: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9586 +//line mysql_sql.y:9620 { yyLOCAL = tree.REFERENCE_OPTION_NO_ACTION } yyVAL.union = yyLOCAL - case 1466: + case 1469: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9590 +//line mysql_sql.y:9624 { yyLOCAL = tree.REFERENCE_OPTION_SET_DEFAULT } yyVAL.union = yyLOCAL - case 1467: + case 1470: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9595 +//line mysql_sql.y:9629 { yyLOCAL = tree.MATCH_INVALID } yyVAL.union = yyLOCAL - case 1469: + case 1472: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9602 +//line mysql_sql.y:9636 { yyLOCAL = tree.MATCH_FULL } yyVAL.union = yyLOCAL - case 1470: + case 1473: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9606 +//line mysql_sql.y:9640 { yyLOCAL = tree.MATCH_PARTIAL } yyVAL.union = yyLOCAL - case 1471: + case 1474: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9610 +//line mysql_sql.y:9644 { yyLOCAL = tree.MATCH_SIMPLE } yyVAL.union = yyLOCAL - case 1472: + case 1475: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9615 +//line mysql_sql.y:9649 { yyLOCAL = tree.FULLTEXT_DEFAULT } yyVAL.union = yyLOCAL - case 1473: + case 1476: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9619 +//line mysql_sql.y:9653 { yyLOCAL = tree.FULLTEXT_NL } yyVAL.union = yyLOCAL - case 1474: + case 1477: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9623 +//line mysql_sql.y:9657 { yyLOCAL = tree.FULLTEXT_NL_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1475: + case 1478: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9627 +//line mysql_sql.y:9661 { yyLOCAL = tree.FULLTEXT_BOOLEAN } yyVAL.union = yyLOCAL - case 1476: + case 1479: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9631 +//line mysql_sql.y:9665 { yyLOCAL = tree.FULLTEXT_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1477: + case 1480: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9636 +//line mysql_sql.y:9670 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1478: + case 1481: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9640 +//line mysql_sql.y:9674 { yyLOCAL = yyDollar[2].keyPartsUnion() } yyVAL.union = yyLOCAL - case 1479: + case 1482: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9645 +//line mysql_sql.y:9679 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 1480: + case 1483: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9649 +//line mysql_sql.y:9683 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 1487: + case 1490: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Subquery -//line mysql_sql.y:9665 +//line mysql_sql.y:9699 { yyLOCAL = &tree.Subquery{Select: yyDollar[1].selectStatementUnion(), Exists: false} } yyVAL.union = yyLOCAL - case 1488: + case 1491: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9671 +//line mysql_sql.y:9705 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_AND, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1489: + case 1492: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9675 +//line mysql_sql.y:9709 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_OR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1490: + case 1493: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9679 +//line mysql_sql.y:9713 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_XOR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1491: + case 1494: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9683 +//line mysql_sql.y:9717 { yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1492: + case 1495: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9687 +//line mysql_sql.y:9721 { yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1493: + case 1496: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9691 +//line mysql_sql.y:9725 { yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1494: + case 1497: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9695 +//line mysql_sql.y:9729 { yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1495: + case 1498: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9699 +//line mysql_sql.y:9733 { yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1496: + case 1499: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9703 +//line mysql_sql.y:9737 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1497: + case 1500: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9707 +//line mysql_sql.y:9741 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1498: + case 1501: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9711 +//line mysql_sql.y:9745 { yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1499: + case 1502: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9715 +//line mysql_sql.y:9749 { yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1500: + case 1503: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9719 +//line mysql_sql.y:9753 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1501: + case 1504: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9725 +//line mysql_sql.y:9759 { yyLOCAL = yyDollar[1].unresolvedNameUnion() } yyVAL.union = yyLOCAL - case 1502: + case 1505: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9729 +//line mysql_sql.y:9763 { yyLOCAL = yyDollar[1].varExprUnion() } yyVAL.union = yyLOCAL - case 1503: + case 1506: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9733 +//line mysql_sql.y:9767 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1504: + case 1507: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9737 +//line mysql_sql.y:9771 { yyLOCAL = tree.NewParentExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1505: + case 1508: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9741 +//line mysql_sql.y:9775 { yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) } yyVAL.union = yyLOCAL - case 1506: + case 1509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9745 +//line mysql_sql.y:9779 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1507: + case 1510: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9749 +//line mysql_sql.y:9783 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1508: + case 1511: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9753 +//line mysql_sql.y:9787 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1509: + case 1512: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9757 +//line mysql_sql.y:9791 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1510: + case 1513: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9761 +//line mysql_sql.y:9795 { hint := strings.ToLower(yyDollar[2].cstrUnion().Compare()) switch hint { @@ -23002,35 +23177,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1511: + case 1514: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9803 +//line mysql_sql.y:9837 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1512: + case 1515: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9807 +//line mysql_sql.y:9841 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1513: + case 1516: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9811 +//line mysql_sql.y:9845 { yyDollar[2].subqueryUnion().Exists = true yyLOCAL = yyDollar[2].subqueryUnion() } yyVAL.union = yyLOCAL - case 1514: + case 1517: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9816 +//line mysql_sql.y:9850 { yyLOCAL = &tree.CaseExpr{ Expr: yyDollar[2].exprUnion(), @@ -23039,42 +23214,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1515: + case 1518: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9824 +//line mysql_sql.y:9858 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1516: + case 1519: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9828 +//line mysql_sql.y:9862 { yyLOCAL = tree.NewSerialExtractExpr(yyDollar[3].exprUnion(), yyDollar[5].exprUnion(), yyDollar[7].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1517: + case 1520: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9832 +//line mysql_sql.y:9866 { yyLOCAL = tree.NewBitCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1518: + case 1521: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9836 +//line mysql_sql.y:9870 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1519: + case 1522: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9840 +//line mysql_sql.y:9874 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) @@ -23085,66 +23260,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1520: + case 1523: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9850 +//line mysql_sql.y:9884 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1521: + case 1524: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9854 +//line mysql_sql.y:9888 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1522: + case 1525: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9858 +//line mysql_sql.y:9892 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1523: + case 1526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9862 +//line mysql_sql.y:9896 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1524: + case 1527: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9866 +//line mysql_sql.y:9900 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1525: + case 1528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9870 +//line mysql_sql.y:9904 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1526: + case 1529: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9874 +//line mysql_sql.y:9908 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1527: + case 1530: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9878 +//line mysql_sql.y:9912 { val, err := tree.NewFullTextMatchFuncExpression(yyDollar[3].keyPartsUnion(), yyDollar[7].str, yyDollar[8].fullTextSearchTypeUnion()) if err != nil { @@ -23154,16 +23329,16 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1528: + case 1531: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9891 +//line mysql_sql.y:9925 { yyVAL.str = yyDollar[1].str } - case 1529: + case 1532: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9897 +//line mysql_sql.y:9931 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23173,10 +23348,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1530: + case 1533: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9906 +//line mysql_sql.y:9940 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23186,10 +23361,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1531: + case 1534: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9915 +//line mysql_sql.y:9949 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23199,10 +23374,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1532: + case 1535: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9926 +//line mysql_sql.y:9960 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, "block") @@ -23213,10 +23388,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1533: + case 1536: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9936 +//line mysql_sql.y:9970 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, yyDollar[8].str) @@ -23227,10 +23402,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1534: + case 1537: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9946 +//line mysql_sql.y:9980 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), true, nil) if err != nil { @@ -23240,10 +23415,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1535: + case 1538: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9955 +//line mysql_sql.y:9989 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), true, nil) if err != nil { @@ -23253,10 +23428,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1536: + case 1539: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9965 +//line mysql_sql.y:9999 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), "block") @@ -23267,10 +23442,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1537: + case 1540: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9975 +//line mysql_sql.y:10009 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), yyDollar[8].str) @@ -23281,10 +23456,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1538: + case 1541: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9985 +//line mysql_sql.y:10019 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23294,10 +23469,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1539: + case 1542: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9994 +//line mysql_sql.y:10028 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23307,58 +23482,58 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1540: + case 1543: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10004 +//line mysql_sql.y:10038 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1541: + case 1544: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10008 +//line mysql_sql.y:10042 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1542: + case 1545: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10013 +//line mysql_sql.y:10047 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1543: + case 1546: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10017 +//line mysql_sql.y:10051 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1544: + case 1547: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10023 +//line mysql_sql.y:10057 { yyLOCAL = []*tree.When{yyDollar[1].whenClauseUnion()} } yyVAL.union = yyLOCAL - case 1545: + case 1548: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10027 +//line mysql_sql.y:10061 { yyLOCAL = append(yyDollar[1].whenClauseListUnion(), yyDollar[2].whenClauseUnion()) } yyVAL.union = yyLOCAL - case 1546: + case 1549: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.When -//line mysql_sql.y:10033 +//line mysql_sql.y:10067 { yyLOCAL = &tree.When{ Cond: yyDollar[2].exprUnion(), @@ -23366,9 +23541,9 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1547: + case 1550: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10042 +//line mysql_sql.y:10076 { t := yyVAL.columnTypeUnion() str := strings.ToLower(t.InternalType.FamilyString) @@ -23381,10 +23556,10 @@ yydefault: } } } - case 1548: + case 1551: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10054 +//line mysql_sql.y:10088 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23402,10 +23577,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1549: + case 1552: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10071 +//line mysql_sql.y:10105 { locale := "" yyLOCAL = &tree.T{ @@ -23420,10 +23595,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1551: + case 1554: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10088 +//line mysql_sql.y:10122 { locale := "" yyLOCAL = &tree.T{ @@ -23437,10 +23612,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1552: + case 1555: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10101 +//line mysql_sql.y:10135 { locale := "" yyLOCAL = &tree.T{ @@ -23454,10 +23629,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1553: + case 1556: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10114 +//line mysql_sql.y:10148 { locale := "" yyLOCAL = &tree.T{ @@ -23470,10 +23645,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1554: + case 1557: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10126 +//line mysql_sql.y:10160 { locale := "" yyLOCAL = &tree.T{ @@ -23488,10 +23663,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1555: + case 1558: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10140 +//line mysql_sql.y:10174 { locale := "" yyLOCAL = &tree.T{ @@ -23507,10 +23682,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1556: + case 1559: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10155 +//line mysql_sql.y:10189 { locale := "" yyLOCAL = &tree.T{ @@ -23526,10 +23701,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1557: + case 1560: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10170 +//line mysql_sql.y:10204 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23547,10 +23722,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1558: + case 1561: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10187 +//line mysql_sql.y:10221 { locale := "" yyLOCAL = &tree.T{ @@ -23565,95 +23740,95 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1559: + case 1562: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10202 +//line mysql_sql.y:10236 { } - case 1563: + case 1566: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10209 +//line mysql_sql.y:10243 { yyLOCAL = &tree.FrameBound{Type: tree.Following, UnBounded: true} } yyVAL.union = yyLOCAL - case 1564: + case 1567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10213 +//line mysql_sql.y:10247 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1565: + case 1568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10217 +//line mysql_sql.y:10251 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1566: + case 1569: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10223 +//line mysql_sql.y:10257 { yyLOCAL = &tree.FrameBound{Type: tree.CurrentRow} } yyVAL.union = yyLOCAL - case 1567: + case 1570: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10227 +//line mysql_sql.y:10261 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, UnBounded: true} } yyVAL.union = yyLOCAL - case 1568: + case 1571: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10231 +//line mysql_sql.y:10265 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1569: + case 1572: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10235 +//line mysql_sql.y:10269 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1570: + case 1573: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10241 +//line mysql_sql.y:10275 { yyLOCAL = tree.Rows } yyVAL.union = yyLOCAL - case 1571: + case 1574: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10245 +//line mysql_sql.y:10279 { yyLOCAL = tree.Range } yyVAL.union = yyLOCAL - case 1572: + case 1575: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10249 +//line mysql_sql.y:10283 { yyLOCAL = tree.Groups } yyVAL.union = yyLOCAL - case 1573: + case 1576: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10255 +//line mysql_sql.y:10289 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23662,10 +23837,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1574: + case 1577: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10263 +//line mysql_sql.y:10297 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23675,82 +23850,82 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1575: + case 1578: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10273 +//line mysql_sql.y:10307 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1576: + case 1579: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10277 +//line mysql_sql.y:10311 { yyLOCAL = yyDollar[1].frameClauseUnion() } yyVAL.union = yyLOCAL - case 1577: + case 1580: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10284 +//line mysql_sql.y:10318 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1578: + case 1581: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10289 +//line mysql_sql.y:10323 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1579: + case 1582: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10293 +//line mysql_sql.y:10327 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1580: + case 1583: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10298 +//line mysql_sql.y:10332 { yyVAL.str = "," } - case 1581: + case 1584: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10302 +//line mysql_sql.y:10336 { yyVAL.str = yyDollar[2].str } - case 1582: + case 1585: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10307 +//line mysql_sql.y:10341 { yyVAL.str = "1,vector_l2_ops,random,false" } - case 1583: + case 1586: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10311 +//line mysql_sql.y:10345 { yyVAL.str = yyDollar[2].str } - case 1584: + case 1587: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10316 +//line mysql_sql.y:10350 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1586: + case 1589: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10323 +//line mysql_sql.y:10357 { hasFrame := true var f *tree.FrameClause @@ -23775,10 +23950,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1587: + case 1590: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10349 +//line mysql_sql.y:10383 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23791,10 +23966,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1588: + case 1591: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10361 +//line mysql_sql.y:10395 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23807,10 +23982,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1589: + case 1592: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10373 +//line mysql_sql.y:10407 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23822,10 +23997,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1590: + case 1593: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10384 +//line mysql_sql.y:10418 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23837,10 +24012,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1591: + case 1594: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10395 +//line mysql_sql.y:10429 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -23852,10 +24027,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1592: + case 1595: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10406 +//line mysql_sql.y:10440 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23866,10 +24041,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1593: + case 1596: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10416 +//line mysql_sql.y:10450 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23880,10 +24055,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1594: + case 1597: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10426 +//line mysql_sql.y:10460 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23895,10 +24070,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1595: + case 1598: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10437 +//line mysql_sql.y:10471 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23910,10 +24085,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1596: + case 1599: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10448 +//line mysql_sql.y:10482 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23925,10 +24100,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1597: + case 1600: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10459 +//line mysql_sql.y:10493 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23940,10 +24115,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1598: + case 1601: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10470 +//line mysql_sql.y:10504 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -23955,10 +24130,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1599: + case 1602: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10481 +//line mysql_sql.y:10515 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23970,10 +24145,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1600: + case 1603: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10492 +//line mysql_sql.y:10526 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23985,10 +24160,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1601: + case 1604: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10503 +//line mysql_sql.y:10537 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24000,10 +24175,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1602: + case 1605: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10514 +//line mysql_sql.y:10548 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24015,10 +24190,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1603: + case 1606: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10525 +//line mysql_sql.y:10559 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24030,10 +24205,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1604: + case 1607: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10536 +//line mysql_sql.y:10570 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24045,10 +24220,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1605: + case 1608: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10547 +//line mysql_sql.y:10581 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24060,10 +24235,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1606: + case 1609: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10558 +//line mysql_sql.y:10592 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24075,10 +24250,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1607: + case 1610: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10569 +//line mysql_sql.y:10603 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24090,10 +24265,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1608: + case 1611: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10580 +//line mysql_sql.y:10614 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24105,10 +24280,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1609: + case 1612: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10591 +//line mysql_sql.y:10625 { name := tree.NewUnresolvedColName(yyDollar[1].str) var columnList tree.Exprs @@ -24126,10 +24301,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1613: + case 1616: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10615 +//line mysql_sql.y:10649 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24139,10 +24314,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1614: + case 1617: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10624 +//line mysql_sql.y:10658 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24152,10 +24327,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1615: + case 1618: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10633 +//line mysql_sql.y:10667 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24165,10 +24340,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1616: + case 1619: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10642 +//line mysql_sql.y:10676 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24178,10 +24353,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1617: + case 1620: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10651 +//line mysql_sql.y:10685 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24193,10 +24368,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1618: + case 1621: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10662 +//line mysql_sql.y:10696 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24206,10 +24381,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1619: + case 1622: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10671 +//line mysql_sql.y:10705 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24220,10 +24395,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1620: + case 1623: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10681 +//line mysql_sql.y:10715 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24233,10 +24408,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1621: + case 1624: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10690 +//line mysql_sql.y:10724 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24246,10 +24421,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1622: + case 1625: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10699 +//line mysql_sql.y:10733 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24259,10 +24434,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1623: + case 1626: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10708 +//line mysql_sql.y:10742 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24272,10 +24447,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1624: + case 1627: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10717 +//line mysql_sql.y:10751 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(0), "0", false, tree.P_int64) @@ -24288,10 +24463,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1625: + case 1628: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10729 +//line mysql_sql.y:10763 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(1), "1", false, tree.P_int64) @@ -24303,10 +24478,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1626: + case 1629: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10740 +//line mysql_sql.y:10774 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(2), "2", false, tree.P_int64) @@ -24320,10 +24495,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1627: + case 1630: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10753 +//line mysql_sql.y:10787 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(3), "3", false, tree.P_int64) @@ -24336,10 +24511,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1628: + case 1631: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10765 +//line mysql_sql.y:10799 { column := tree.NewUnresolvedColName(yyDollar[3].str) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24350,16 +24525,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1635: + case 1638: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10788 +//line mysql_sql.y:10822 { yyVAL.str = yyDollar[1].str } - case 1664: + case 1667: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10824 +//line mysql_sql.y:10858 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24373,10 +24548,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1665: + case 1668: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10837 +//line mysql_sql.y:10871 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24390,10 +24565,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1666: + case 1669: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10850 +//line mysql_sql.y:10884 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24405,10 +24580,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1667: + case 1670: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10862 +//line mysql_sql.y:10896 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24418,10 +24593,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1668: + case 1671: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10871 +//line mysql_sql.y:10905 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24430,10 +24605,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1669: + case 1672: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10879 +//line mysql_sql.y:10913 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24442,10 +24617,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1670: + case 1673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10887 +//line mysql_sql.y:10921 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24459,10 +24634,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1671: + case 1674: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10900 +//line mysql_sql.y:10934 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24472,10 +24647,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1672: + case 1675: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10909 +//line mysql_sql.y:10943 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24487,10 +24662,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1673: + case 1676: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10920 +//line mysql_sql.y:10954 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24502,10 +24677,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1674: + case 1677: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10931 +//line mysql_sql.y:10965 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24515,10 +24690,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1675: + case 1678: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10940 +//line mysql_sql.y:10974 { cn := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) es := yyDollar[3].exprsUnion() @@ -24531,10 +24706,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1676: + case 1679: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10952 +//line mysql_sql.y:10986 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24545,10 +24720,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1677: + case 1680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10962 +//line mysql_sql.y:10996 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24559,10 +24734,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1678: + case 1681: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10972 +//line mysql_sql.y:11006 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24572,10 +24747,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1679: + case 1682: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10981 +//line mysql_sql.y:11015 { es := tree.Exprs{yyDollar[3].exprUnion()} es = append(es, yyDollar[5].exprUnion()) @@ -24587,10 +24762,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1680: + case 1683: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10992 +//line mysql_sql.y:11026 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24600,10 +24775,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1681: + case 1684: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11001 +//line mysql_sql.y:11035 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24614,10 +24789,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1682: + case 1685: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11011 +//line mysql_sql.y:11045 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24627,10 +24802,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1683: + case 1686: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11020 +//line mysql_sql.y:11054 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24640,10 +24815,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1684: + case 1687: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11029 +//line mysql_sql.y:11063 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24653,34 +24828,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1685: + case 1688: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11039 +//line mysql_sql.y:11073 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1686: + case 1689: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11043 +//line mysql_sql.y:11077 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1687: + case 1690: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11049 +//line mysql_sql.y:11083 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1688: + case 1691: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11053 +//line mysql_sql.y:11087 { ival, errStr := util.GetInt64(yyDollar[2].item) if errStr != "" { @@ -24691,20 +24866,20 @@ yydefault: yyLOCAL = tree.NewNumVal(ival, str, false, tree.P_int64) } yyVAL.union = yyLOCAL - case 1695: + case 1698: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:11072 +//line mysql_sql.y:11106 { } - case 1696: + case 1699: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:11074 +//line mysql_sql.y:11108 { } - case 1731: + case 1734: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11116 +//line mysql_sql.y:11150 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24716,106 +24891,106 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1732: + case 1735: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11128 +//line mysql_sql.y:11162 { yyLOCAL = tree.FUNC_TYPE_DEFAULT } yyVAL.union = yyLOCAL - case 1733: + case 1736: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11132 +//line mysql_sql.y:11166 { yyLOCAL = tree.FUNC_TYPE_DISTINCT } yyVAL.union = yyLOCAL - case 1734: + case 1737: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11136 +//line mysql_sql.y:11170 { yyLOCAL = tree.FUNC_TYPE_ALL } yyVAL.union = yyLOCAL - case 1735: + case 1738: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Tuple -//line mysql_sql.y:11142 +//line mysql_sql.y:11176 { yyLOCAL = tree.NewTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1736: + case 1739: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11147 +//line mysql_sql.y:11181 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1737: + case 1740: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11151 +//line mysql_sql.y:11185 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1738: + case 1741: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11157 +//line mysql_sql.y:11191 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1739: + case 1742: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11161 +//line mysql_sql.y:11195 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1740: + case 1743: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11167 +//line mysql_sql.y:11201 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1741: + case 1744: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11171 +//line mysql_sql.y:11205 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1742: + case 1745: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11178 +//line mysql_sql.y:11212 { yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1743: + case 1746: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11182 +//line mysql_sql.y:11216 { yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1744: + case 1747: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11186 +//line mysql_sql.y:11220 { name := tree.NewUnresolvedColName("concat") yyLOCAL = &tree.FuncExpr{ @@ -24825,355 +25000,355 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1745: + case 1748: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11195 +//line mysql_sql.y:11229 { yyLOCAL = tree.NewXorExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1746: + case 1749: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11199 +//line mysql_sql.y:11233 { yyLOCAL = tree.NewNotExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1747: + case 1750: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11203 +//line mysql_sql.y:11237 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1748: + case 1751: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11208 +//line mysql_sql.y:11242 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1749: + case 1752: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11212 +//line mysql_sql.y:11246 { yyLOCAL = tree.NewMaxValue() } yyVAL.union = yyLOCAL - case 1750: + case 1753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11218 +//line mysql_sql.y:11252 { yyLOCAL = tree.NewIsNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1751: + case 1754: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11222 +//line mysql_sql.y:11256 { yyLOCAL = tree.NewIsNotNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1752: + case 1755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11226 +//line mysql_sql.y:11260 { yyLOCAL = tree.NewIsUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1753: + case 1756: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11230 +//line mysql_sql.y:11264 { yyLOCAL = tree.NewIsNotUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1754: + case 1757: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11234 +//line mysql_sql.y:11268 { yyLOCAL = tree.NewIsTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1755: + case 1758: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11238 +//line mysql_sql.y:11272 { yyLOCAL = tree.NewIsNotTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1756: + case 1759: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11242 +//line mysql_sql.y:11276 { yyLOCAL = tree.NewIsFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1757: + case 1760: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11246 +//line mysql_sql.y:11280 { yyLOCAL = tree.NewIsNotFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1758: + case 1761: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11250 +//line mysql_sql.y:11284 { yyLOCAL = tree.NewComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1759: + case 1762: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11254 +//line mysql_sql.y:11288 { yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) } yyVAL.union = yyLOCAL - case 1761: + case 1764: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11262 +//line mysql_sql.y:11296 { yyLOCAL = tree.NewComparisonExpr(tree.IN, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1762: + case 1765: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11266 +//line mysql_sql.y:11300 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_IN, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1763: + case 1766: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11270 +//line mysql_sql.y:11304 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.LIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1764: + case 1767: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11274 +//line mysql_sql.y:11308 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_LIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1765: + case 1768: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11278 +//line mysql_sql.y:11312 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.ILIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1766: + case 1769: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11282 +//line mysql_sql.y:11316 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_ILIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1767: + case 1770: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11286 +//line mysql_sql.y:11320 { yyLOCAL = tree.NewComparisonExpr(tree.REG_MATCH, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1768: + case 1771: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11290 +//line mysql_sql.y:11324 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_REG_MATCH, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1769: + case 1772: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11294 +//line mysql_sql.y:11328 { yyLOCAL = tree.NewRangeCond(false, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1770: + case 1773: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11298 +//line mysql_sql.y:11332 { yyLOCAL = tree.NewRangeCond(true, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[6].exprUnion()) } yyVAL.union = yyLOCAL - case 1772: + case 1775: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11304 +//line mysql_sql.y:11338 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1773: + case 1776: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11308 +//line mysql_sql.y:11342 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1774: + case 1777: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11314 +//line mysql_sql.y:11348 { yyLOCAL = yyDollar[1].tupleUnion() } yyVAL.union = yyLOCAL - case 1775: + case 1778: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11318 +//line mysql_sql.y:11352 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1776: + case 1779: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11325 +//line mysql_sql.y:11359 { yyLOCAL = tree.ALL } yyVAL.union = yyLOCAL - case 1777: + case 1780: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11329 +//line mysql_sql.y:11363 { yyLOCAL = tree.ANY } yyVAL.union = yyLOCAL - case 1778: + case 1781: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11333 +//line mysql_sql.y:11367 { yyLOCAL = tree.SOME } yyVAL.union = yyLOCAL - case 1779: + case 1782: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11339 +//line mysql_sql.y:11373 { yyLOCAL = tree.EQUAL } yyVAL.union = yyLOCAL - case 1780: + case 1783: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11343 +//line mysql_sql.y:11377 { yyLOCAL = tree.LESS_THAN } yyVAL.union = yyLOCAL - case 1781: + case 1784: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11347 +//line mysql_sql.y:11381 { yyLOCAL = tree.GREAT_THAN } yyVAL.union = yyLOCAL - case 1782: + case 1785: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11351 +//line mysql_sql.y:11385 { yyLOCAL = tree.LESS_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1783: + case 1786: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11355 +//line mysql_sql.y:11389 { yyLOCAL = tree.GREAT_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1784: + case 1787: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11359 +//line mysql_sql.y:11393 { yyLOCAL = tree.NOT_EQUAL } yyVAL.union = yyLOCAL - case 1785: + case 1788: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11363 +//line mysql_sql.y:11397 { yyLOCAL = tree.NULL_SAFE_EQUAL } yyVAL.union = yyLOCAL - case 1786: + case 1789: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11369 +//line mysql_sql.y:11403 { yyLOCAL = tree.NewAttributePrimaryKey() } yyVAL.union = yyLOCAL - case 1787: + case 1790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11373 +//line mysql_sql.y:11407 { yyLOCAL = tree.NewAttributeUniqueKey() } yyVAL.union = yyLOCAL - case 1788: + case 1791: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11377 +//line mysql_sql.y:11411 { yyLOCAL = tree.NewAttributeUnique() } yyVAL.union = yyLOCAL - case 1789: + case 1792: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11381 +//line mysql_sql.y:11415 { yyLOCAL = tree.NewAttributeKey() } yyVAL.union = yyLOCAL - case 1790: + case 1793: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11387 +//line mysql_sql.y:11421 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25187,35 +25362,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1791: + case 1794: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11400 +//line mysql_sql.y:11434 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1792: + case 1795: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11405 +//line mysql_sql.y:11439 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1793: + case 1796: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11411 +//line mysql_sql.y:11445 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1794: + case 1797: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11415 +//line mysql_sql.y:11449 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25229,51 +25404,51 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1795: + case 1798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11428 +//line mysql_sql.y:11462 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1796: + case 1799: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11433 +//line mysql_sql.y:11467 { yyLOCAL = tree.NewNumVal(true, "true", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1797: + case 1800: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11437 +//line mysql_sql.y:11471 { yyLOCAL = tree.NewNumVal(false, "false", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1798: + case 1801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11441 +//line mysql_sql.y:11475 { yyLOCAL = tree.NewNumVal("null", "null", false, tree.P_null) } yyVAL.union = yyLOCAL - case 1799: + case 1802: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11445 +//line mysql_sql.y:11479 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_hexnum) } yyVAL.union = yyLOCAL - case 1800: + case 1803: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11449 +//line mysql_sql.y:11483 { if strings.HasPrefix(yyDollar[2].str, "0x") { yyDollar[2].str = yyDollar[2].str[2:] @@ -25281,69 +25456,69 @@ yydefault: yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1801: + case 1804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11456 +//line mysql_sql.y:11490 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1802: + case 1805: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11460 +//line mysql_sql.y:11494 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1803: + case 1806: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11464 +//line mysql_sql.y:11498 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1804: + case 1807: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11468 +//line mysql_sql.y:11502 { yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_ScoreBinary) } yyVAL.union = yyLOCAL - case 1805: + case 1808: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11475 +//line mysql_sql.y:11509 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.Unsigned = yyDollar[2].unsignedOptUnion() yyLOCAL.InternalType.Zerofill = yyDollar[3].zeroFillOptUnion() } yyVAL.union = yyLOCAL - case 1809: + case 1812: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11486 +//line mysql_sql.y:11520 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.DisplayWith = yyDollar[2].lengthOptUnion() } yyVAL.union = yyLOCAL - case 1810: + case 1813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11491 +//line mysql_sql.y:11525 { yyLOCAL = yyDollar[1].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1811: + case 1814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11497 +//line mysql_sql.y:11531 { locale := "" yyLOCAL = &tree.T{ @@ -25356,10 +25531,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1812: + case 1815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11509 +//line mysql_sql.y:11543 { locale := "" yyLOCAL = &tree.T{ @@ -25372,10 +25547,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1813: + case 1816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11521 +//line mysql_sql.y:11555 { locale := "" yyLOCAL = &tree.T{ @@ -25388,10 +25563,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1814: + case 1817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11533 +//line mysql_sql.y:11567 { locale := "" yyLOCAL = &tree.T{ @@ -25405,10 +25580,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1815: + case 1818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11546 +//line mysql_sql.y:11580 { locale := "" yyLOCAL = &tree.T{ @@ -25422,10 +25597,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1816: + case 1819: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11559 +//line mysql_sql.y:11593 { locale := "" yyLOCAL = &tree.T{ @@ -25439,10 +25614,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1817: + case 1820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11572 +//line mysql_sql.y:11606 { locale := "" yyLOCAL = &tree.T{ @@ -25456,10 +25631,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1818: + case 1821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11585 +//line mysql_sql.y:11619 { locale := "" yyLOCAL = &tree.T{ @@ -25473,10 +25648,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1819: + case 1822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11598 +//line mysql_sql.y:11632 { locale := "" yyLOCAL = &tree.T{ @@ -25490,10 +25665,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1820: + case 1823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11611 +//line mysql_sql.y:11645 { locale := "" yyLOCAL = &tree.T{ @@ -25507,10 +25682,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1821: + case 1824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11624 +//line mysql_sql.y:11658 { locale := "" yyLOCAL = &tree.T{ @@ -25524,10 +25699,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1822: + case 1825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11637 +//line mysql_sql.y:11671 { locale := "" yyLOCAL = &tree.T{ @@ -25541,10 +25716,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1823: + case 1826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11650 +//line mysql_sql.y:11684 { locale := "" yyLOCAL = &tree.T{ @@ -25558,10 +25733,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1824: + case 1827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11663 +//line mysql_sql.y:11697 { locale := "" yyLOCAL = &tree.T{ @@ -25575,10 +25750,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1825: + case 1828: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11678 +//line mysql_sql.y:11712 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25606,10 +25781,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1826: + case 1829: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11705 +//line mysql_sql.y:11739 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25651,10 +25826,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1827: + case 1830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11747 +//line mysql_sql.y:11781 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25691,10 +25866,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1828: + case 1831: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11783 +//line mysql_sql.y:11817 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25731,10 +25906,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1829: + case 1832: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11819 +//line mysql_sql.y:11853 { locale := "" yyLOCAL = &tree.T{ @@ -25750,10 +25925,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1830: + case 1833: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11836 +//line mysql_sql.y:11870 { locale := "" yyLOCAL = &tree.T{ @@ -25766,10 +25941,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1831: + case 1834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11848 +//line mysql_sql.y:11882 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25790,10 +25965,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1832: + case 1835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11868 +//line mysql_sql.y:11902 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25814,10 +25989,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1833: + case 1836: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11888 +//line mysql_sql.y:11922 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25838,10 +26013,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1834: + case 1837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11908 +//line mysql_sql.y:11942 { locale := "" yyLOCAL = &tree.T{ @@ -25856,10 +26031,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1835: + case 1838: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11924 +//line mysql_sql.y:11958 { locale := "" yyLOCAL = &tree.T{ @@ -25873,10 +26048,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1836: + case 1839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11937 +//line mysql_sql.y:11971 { locale := "" yyLOCAL = &tree.T{ @@ -25890,10 +26065,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1837: + case 1840: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11950 +//line mysql_sql.y:11984 { locale := "" yyLOCAL = &tree.T{ @@ -25907,10 +26082,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1838: + case 1841: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11963 +//line mysql_sql.y:11997 { locale := "" yyLOCAL = &tree.T{ @@ -25924,10 +26099,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1839: + case 1842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11976 +//line mysql_sql.y:12010 { locale := "" yyLOCAL = &tree.T{ @@ -25940,10 +26115,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1840: + case 1843: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11988 +//line mysql_sql.y:12022 { locale := "" yyLOCAL = &tree.T{ @@ -25956,10 +26131,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1841: + case 1844: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12000 +//line mysql_sql.y:12034 { locale := "" yyLOCAL = &tree.T{ @@ -25972,10 +26147,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1842: + case 1845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12012 +//line mysql_sql.y:12046 { locale := "" yyLOCAL = &tree.T{ @@ -25988,10 +26163,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1843: + case 1846: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12024 +//line mysql_sql.y:12058 { locale := "" yyLOCAL = &tree.T{ @@ -26004,10 +26179,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1844: + case 1847: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12036 +//line mysql_sql.y:12070 { locale := "" yyLOCAL = &tree.T{ @@ -26020,10 +26195,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1845: + case 1848: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12048 +//line mysql_sql.y:12082 { locale := "" yyLOCAL = &tree.T{ @@ -26036,10 +26211,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1846: + case 1849: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12060 +//line mysql_sql.y:12094 { locale := "" yyLOCAL = &tree.T{ @@ -26052,10 +26227,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1847: + case 1850: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12072 +//line mysql_sql.y:12106 { locale := "" yyLOCAL = &tree.T{ @@ -26068,10 +26243,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1848: + case 1851: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12084 +//line mysql_sql.y:12118 { locale := "" yyLOCAL = &tree.T{ @@ -26084,10 +26259,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1849: + case 1852: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12096 +//line mysql_sql.y:12130 { locale := "" yyLOCAL = &tree.T{ @@ -26101,10 +26276,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1850: + case 1853: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12109 +//line mysql_sql.y:12143 { locale := "" yyLOCAL = &tree.T{ @@ -26118,10 +26293,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1851: + case 1854: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12122 +//line mysql_sql.y:12156 { locale := "" yyLOCAL = &tree.T{ @@ -26135,10 +26310,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1852: + case 1855: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12135 +//line mysql_sql.y:12169 { locale := "" yyLOCAL = &tree.T{ @@ -26152,10 +26327,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1853: + case 1856: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12148 +//line mysql_sql.y:12182 { locale := "" yyLOCAL = &tree.T{ @@ -26169,20 +26344,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1854: + case 1857: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12163 +//line mysql_sql.y:12197 { yyLOCAL = &tree.Do{ Exprs: yyDollar[2].exprsUnion(), } } yyVAL.union = yyLOCAL - case 1855: + case 1858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12171 +//line mysql_sql.y:12205 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26191,10 +26366,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1856: + case 1859: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12180 +//line mysql_sql.y:12214 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26203,10 +26378,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1857: + case 1860: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12190 +//line mysql_sql.y:12224 { locale := "" yyLOCAL = &tree.T{ @@ -26219,75 +26394,75 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1858: + case 1861: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12213 +//line mysql_sql.y:12247 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1859: + case 1862: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12218 +//line mysql_sql.y:12252 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1860: + case 1863: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12224 +//line mysql_sql.y:12258 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1862: + case 1865: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12231 +//line mysql_sql.y:12265 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1863: + case 1866: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12235 +//line mysql_sql.y:12269 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1864: + case 1867: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12240 +//line mysql_sql.y:12274 { yyLOCAL = int32(-1) } yyVAL.union = yyLOCAL - case 1865: + case 1868: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12244 +//line mysql_sql.y:12278 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1866: + case 1869: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12250 +//line mysql_sql.y:12284 { yyLOCAL = tree.GetDisplayWith(int32(yyDollar[2].item.(int64))) } yyVAL.union = yyLOCAL - case 1867: + case 1870: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12256 +//line mysql_sql.y:12290 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.NotDefineDisplayWidth, @@ -26295,10 +26470,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1868: + case 1871: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12263 +//line mysql_sql.y:12297 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26306,10 +26481,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1869: + case 1872: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12270 +//line mysql_sql.y:12304 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26317,10 +26492,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1870: + case 1873: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12279 +//line mysql_sql.y:12313 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: 38, // this is the default precision for decimal @@ -26328,10 +26503,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1871: + case 1874: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12286 +//line mysql_sql.y:12320 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26339,10 +26514,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1872: + case 1875: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12293 +//line mysql_sql.y:12327 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26350,52 +26525,52 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1873: + case 1876: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12302 +//line mysql_sql.y:12336 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1874: + case 1877: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12306 +//line mysql_sql.y:12340 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1875: + case 1878: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12310 +//line mysql_sql.y:12344 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1876: + case 1879: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12316 +//line mysql_sql.y:12350 { } - case 1877: + case 1880: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12318 +//line mysql_sql.y:12352 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1881: + case 1884: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12328 +//line mysql_sql.y:12362 { yyVAL.str = "" } - case 1882: + case 1885: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:12332 +//line mysql_sql.y:12366 { yyVAL.str = string(yyDollar[1].str) } diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.y b/pkg/sql/parsers/dialect/mysql/mysql_sql.y index 6ed240ca60344..75f26c72f461f 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.y +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.y @@ -4824,6 +4824,23 @@ delete_without_using_stmt: Limit: $11, } } +| DELETE CDC priority_opt quick_opt ignore_opt FROM table_name partition_clause_opt as_opt_id where_expression_opt order_by_opt limit_opt + { + // Single-Table Syntax + t := &tree.AliasedTableExpr { + Expr: $7, + As: tree.AliasClause{ + Alias: tree.Identifier($9), + }, + } + $$ = &tree.Delete{ + Tables: tree.TableExprs{t}, + Where: $10, + OrderBy: $11, + Limit: $12, + IsCdc: true, + } + } | DELETE priority_opt quick_opt ignore_opt table_name_wild_list FROM table_references where_expression_opt { // Multiple-Table Syntax @@ -4903,6 +4920,14 @@ replace_stmt: rep.PartitionNames = $3 $$ = rep } +| REPLACE CDC into_table_name partition_clause_opt replace_data + { + rep := $5 + rep.Table = $3 + rep.PartitionNames = $4 + rep.IsCdc = true + $$ = rep + } replace_data: VALUES values_list @@ -4976,6 +5001,15 @@ insert_stmt: ins.OnDuplicateUpdate = []*tree.UpdateExpr{nil} $$ = ins } +| INSERT CDC into_table_name partition_clause_opt insert_data on_duplicate_key_update_opt + { + ins := $5 + ins.Table = $3 + ins.PartitionNames = $4 + ins.OnDuplicateUpdate = $6 + ins.IsCdc = true + $$ = ins + } accounts_list: account_name diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go index 861fbdbc170d7..28449b2e8aa1e 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go @@ -3221,6 +3221,18 @@ var ( input: "select t.a from sa.t centroidx ('Vector_ip_ops') join u", output: "select t.a from sa.t centroidx ('vector_ip_ops') join u", }, + { + input: "insert cdc into t values (0, 1)", + output: "insert cdc into t values (0, 1)", + }, + { + input: "replace cdc into t values (0, 1)", + output: "replace cdc into t values (0, 1)", + }, + { + input: "delete cdc from t where a in (0, 1)", + output: "delete cdc from t where a in (0, 1)", + }, } ) diff --git a/pkg/sql/parsers/tree/delete.go b/pkg/sql/parsers/tree/delete.go index 4c65cdd8ea2f7..fa971e52d5f43 100644 --- a/pkg/sql/parsers/tree/delete.go +++ b/pkg/sql/parsers/tree/delete.go @@ -24,6 +24,7 @@ type Delete struct { OrderBy OrderBy Limit *Limit With *With + IsCdc bool } func (node *Delete) Format(ctx *FmtCtx) { @@ -31,7 +32,11 @@ func (node *Delete) Format(ctx *FmtCtx) { node.With.Format(ctx) ctx.WriteByte(' ') } - ctx.WriteString("delete from ") + ctx.WriteString("delete ") + if node.IsCdc { + ctx.WriteString("cdc ") + } + ctx.WriteString("from ") prefix := "" for _, a := range node.Tables { diff --git a/pkg/sql/parsers/tree/insert.go b/pkg/sql/parsers/tree/insert.go index 8dfcdf9815f00..05795965f2906 100644 --- a/pkg/sql/parsers/tree/insert.go +++ b/pkg/sql/parsers/tree/insert.go @@ -27,10 +27,15 @@ type Insert struct { IsRestore bool IsRestoreByTs bool FromDataTenantID uint32 + IsCdc bool } func (node *Insert) Format(ctx *FmtCtx) { - ctx.WriteString("insert into ") + ctx.WriteString("insert ") + if node.IsCdc { + ctx.WriteString("cdc ") + } + ctx.WriteString("into ") node.Table.Format(ctx) if node.PartitionNames != nil { diff --git a/pkg/sql/parsers/tree/replace.go b/pkg/sql/parsers/tree/replace.go index 68935d181bd94..bc2c3386d7b0a 100644 --- a/pkg/sql/parsers/tree/replace.go +++ b/pkg/sql/parsers/tree/replace.go @@ -31,10 +31,15 @@ type Replace struct { PartitionNames IdentifierList Columns IdentifierList Rows *Select + IsCdc bool } func (node *Replace) Format(ctx *FmtCtx) { - ctx.WriteString("replace into ") + ctx.WriteString("replace ") + if node.IsCdc { + ctx.WriteString("cdc ") + } + ctx.WriteString("into ") node.Table.Format(ctx) if node.PartitionNames != nil { From 8ada8bd904ed19d33e320d848d2ffc47a61608e3 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 25 Apr 2025 11:38:50 +0100 Subject: [PATCH 002/335] add hnswsync --- pkg/cdc/hnsw_sinker.go | 444 +++++++++++++++++++++++++++++++++++++++++ pkg/cdc/sinker.go | 4 + pkg/cdc/types.go | 1 + 3 files changed, 449 insertions(+) create mode 100644 pkg/cdc/hnsw_sinker.go diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go new file mode 100644 index 0000000000000..9ad2d8845592f --- /dev/null +++ b/pkg/cdc/hnsw_sinker.go @@ -0,0 +1,444 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "strings" + "sync/atomic" + "time" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" +) + +const ( + CDC_INSERT = "I" + CDC_UPSERT = "U" + CDC_DELETE = "D" +) + +var _ Sinker = &hnswSyncSinker[float32]{} + +type HnswCdc[T types.RealNumbers] struct { + Start string `json:"start"` + End string `json:"end"` + Data []HnswCdcEntry[T] `json:"cdc"` +} + +type HnswCdcEntry[T types.RealNumbers] struct { + Type string `json:"t"` // I - INSERT, D - DELETE, U - UPSERT + PKey int64 `json:"pk"` + Vec []T `json:"v,omitempty"` +} + +type HnswCdcParam struct { +} + +func NewHnswCdc[T types.RealNumbers]() *HnswCdc[T] { + return &HnswCdc[T]{ + Data: make([]HnswCdcEntry[T], 0, 100), + } +} + +func (h *HnswCdc[T]) Reset() { + h.Data = h.Data[:0] +} + +func (h *HnswCdc[T]) Empty() bool { + return len(h.Data) == 0 +} + +func (h *HnswCdc[T]) Full() bool { + return len(h.Data) >= cap(h.Data) +} + +func (h *HnswCdc[T]) Insert(key int64, v []T) { + e := HnswCdcEntry[T]{ + Type: CDC_INSERT, + PKey: key, + Vec: v, + } + + h.Data = append(h.Data, e) +} + +func (h *HnswCdc[T]) Upsert(key int64, v []T) { + e := HnswCdcEntry[T]{ + Type: CDC_UPSERT, + PKey: key, + Vec: v, + } + + h.Data = append(h.Data, e) +} + +func (h *HnswCdc[T]) Delete(key int64) { + e := HnswCdcEntry[T]{ + Type: CDC_DELETE, + PKey: key, + } + + h.Data = append(h.Data, e) +} + +func (h *HnswCdc[T]) ToJson() (string, error) { + + b, err := json.Marshal(h) + if err != nil { + return "", err + } + return string(b), nil +} + +type hnswSyncSinker[T types.RealNumbers] struct { + mysql Sink + dbTblInfo *DbTableInfo + watermarkUpdater IWatermarkUpdater + ar *ActiveRoutine + tableDef *plan.TableDef + cdc *HnswCdc[T] + param HnswCdcParam + err atomic.Value + + sqlBufSendCh chan []byte + // only contains user defined column types, no mo meta cols + upsertTypes []*types.Type + // only contains pk columns + deleteTypes []*types.Type + pkColNames []string +} + +var NewHnswSyncSinker = func( + sinkUri UriInfo, + dbTblInfo *DbTableInfo, + watermarkUpdater IWatermarkUpdater, + tableDef *plan.TableDef, + retryTimes int, + retryDuration time.Duration, + ar *ActiveRoutine, + maxSqlLength uint64, + sendSqlTimeout string, +) (Sinker, error) { + + sink, err := NewMysqlSink(sinkUri.User, sinkUri.Password, sinkUri.Ip, sinkUri.Port, retryTimes, retryDuration, sendSqlTimeout) + if err != nil { + return nil, err + } + + ctx := context.Background() + padding := strings.Repeat(" ", sqlBufReserved) + // use db + err = sink.Send(ctx, ar, []byte(padding+fmt.Sprintf("use `%s`", dbTblInfo.SinkDbName)), false) + if err != nil { + return nil, err + } + + // TODO: check the tabledef and indexdef + + s := &hnswSyncSinker[float32]{ + mysql: sink, + dbTblInfo: dbTblInfo, + watermarkUpdater: watermarkUpdater, + ar: ar, + tableDef: tableDef, + cdc: NewHnswCdc[float32](), + } + + var maxAllowedPacket uint64 + _ = sink.(*mysqlSink).conn.QueryRow("SELECT @@max_allowed_packet").Scan(&maxAllowedPacket) + maxAllowedPacket = min(maxAllowedPacket, maxSqlLength) + logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) + + s.sqlBufSendCh = make(chan []byte) + + // TODO: check indexdef and we only need pk and vector index part + + // types + for _, col := range tableDef.Cols { + // skip internal columns + if _, ok := catalog.InternalColumns[col.Name]; ok { + continue + } + + s.upsertTypes = append(s.upsertTypes, &types.Type{ + Oid: types.T(col.Typ.Id), + Width: col.Typ.Width, + Scale: col.Typ.Scale, + }) + } + for _, name := range tableDef.Pkey.Names { + s.pkColNames = append(s.pkColNames, name) + col := tableDef.Cols[tableDef.Name2ColIndex[name]] + s.deleteTypes = append(s.deleteTypes, &types.Type{ + Oid: types.T(col.Typ.Id), + Width: col.Typ.Width, + Scale: col.Typ.Scale, + }) + } + + // err + s.err = atomic.Value{} + + return s, nil +} + +func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { + logutil.Infof("cdc hnswSyncSinker(%v).Run: start", s.dbTblInfo) + defer func() { + logutil.Infof("cdc hnswSyncSinker(%v).Run: end", s.dbTblInfo) + }() + + for sqlBuf := range s.sqlBufSendCh { + // have error, skip + if s.err.Load() != nil { + continue + } + + if bytes.Equal(sqlBuf, dummy) { + // dummy sql, do nothing + } else if bytes.Equal(sqlBuf, begin) { + if err := s.mysql.SendBegin(ctx); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendBegin, err: %v", s.dbTblInfo, err) + // record error + s.err.Store(err) + } + } else if bytes.Equal(sqlBuf, commit) { + if err := s.mysql.SendCommit(ctx); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendCommit, err: %v", s.dbTblInfo, err) + // record error + s.err.Store(err) + } + } else if bytes.Equal(sqlBuf, rollback) { + if err := s.mysql.SendRollback(ctx); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendRollback, err: %v", s.dbTblInfo, err) + // record error + s.err.Store(err) + } + } else { + if err := s.mysql.Send(ctx, ar, sqlBuf, true); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) + // record error + s.err.Store(err) + } + } + } +} + +func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { + watermark := s.watermarkUpdater.GetFromMem(s.dbTblInfo.SourceDbName, s.dbTblInfo.SourceTblName) + if data.toTs.LE(&watermark) { + logutil.Errorf("cdc hnswSyncSinker(%v): unexpected watermark: %s, current watermark: %s", + s.dbTblInfo, data.toTs.ToString(), watermark.ToString()) + return + } + s.cdc.Start = data.fromTs.ToString() + s.cdc.End = data.toTs.ToString() + + if data.noMoreData { + // complete sql statement + err := s.sendSql() + if err != nil { + s.err.Store(err) + } + return + } + + start := time.Now() + defer func() { + v2.CdcSinkDurationHistogram.Observe(time.Since(start).Seconds()) + }() + + if data.outputTyp == OutputTypeSnapshot { + s.sinkSnapshot(ctx, data.checkpointBat) + } else if data.outputTyp == OutputTypeTail { + s.sinkTail(ctx, data.insertAtmBatch, data.deleteAtmBatch) + } else { + s.err.Store(moerr.NewInternalError(ctx, fmt.Sprintf("cdc hnswSyncSinker unexpected output type: %v", data.outputTyp))) + } +} + +func (s *hnswSyncSinker[T]) SendBegin() { + s.sqlBufSendCh <- begin +} + +func (s *hnswSyncSinker[T]) SendCommit() { + s.sqlBufSendCh <- commit +} + +func (s *hnswSyncSinker[T]) SendRollback() { + s.sqlBufSendCh <- rollback +} + +func (s *hnswSyncSinker[T]) SendDummy() { + s.sqlBufSendCh <- dummy +} + +func (s *hnswSyncSinker[T]) Error() error { + if val := s.err.Load(); val == nil { + return nil + } else { + return val.(error) + } +} + +func (s *hnswSyncSinker[T]) Reset() { + s.cdc.Reset() + s.err = atomic.Value{} +} + +func (s *hnswSyncSinker[T]) Close() { + // stop Run goroutine + close(s.sqlBufSendCh) + s.mysql.Close() +} + +func (s *hnswSyncSinker[T]) sinkSnapshot(ctx context.Context, bat *batch.Batch) { + for i := 0; i < batchRowCount(bat); i++ { + + // get pk and vector + pk := int64(0) + v := []T(nil) + + s.cdc.Upsert(pk, v) + + // check full + if s.cdc.Full() { + // send sql + err := s.sendSql() + if err != nil { + s.err.Store(err) + return + } + } + } +} + +// upsertBatch and deleteBatch is sorted by ts +// for the same ts, delete first, then upsert +func (s *hnswSyncSinker[T]) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) { + var err error + + upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) + deleteIter := deleteBatch.GetRowIterator().(*atomicBatchRowIter) + defer func() { + upsertIter.Close() + deleteIter.Close() + }() + + // output sql until one iterator reach the end + upsertIterHasNext, deleteIterHasNext := upsertIter.Next(), deleteIter.Next() + for upsertIterHasNext && deleteIterHasNext { + upsertItem, deleteItem := upsertIter.Item(), deleteIter.Item() + // compare ts, ignore pk + if upsertItem.Ts.LT(&deleteItem.Ts) { + if err = s.sinkUpsert(ctx, upsertIter); err != nil { + s.err.Store(err) + return + } + // get next item + upsertIterHasNext = upsertIter.Next() + } else { + if err = s.sinkDelete(ctx, deleteIter); err != nil { + s.err.Store(err) + return + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + } + + // output the rest of upsert iterator + for upsertIterHasNext { + if err = s.sinkUpsert(ctx, upsertIter); err != nil { + s.err.Store(err) + return + } + // get next item + upsertIterHasNext = upsertIter.Next() + } + + // output the rest of delete iterator + for deleteIterHasNext { + if err = s.sinkDelete(ctx, deleteIter); err != nil { + s.err.Store(err) + return + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + s.flushCdc() +} + +func (s *hnswSyncSinker[T]) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { + + // get row from the batch + pk := int64(0) + v := []T(nil) + s.cdc.Upsert(pk, v) + + if s.cdc.Full() { + // send SQL + return s.sendSql() + } + + return nil +} + +func (s *hnswSyncSinker[T]) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { + + // get row from the batch + pk := int64(0) + s.cdc.Delete(pk) + if s.cdc.Full() { + return s.sendSql() + } + + return nil +} + +func (s *hnswSyncSinker[T]) flushCdc() (err error) { + return s.sendSql() +} + +func (s *hnswSyncSinker[T]) sendSql() error { + if s.cdc.Empty() { + return nil + } + + // generate sql from cdc + js, err := s.cdc.ToJson() + if err != nil { + return err + } + // pad extra space at the front and send SQL + padding := strings.Repeat(" ", sqlBufReserved) + sql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', '%s');", padding, "db", "table", js) + + s.sqlBufSendCh <- []byte(sql) + + // reset + s.cdc.Reset() + + return nil +} diff --git a/pkg/cdc/sinker.go b/pkg/cdc/sinker.go index 9c8ac94e1b83f..336ad344fbaa4 100644 --- a/pkg/cdc/sinker.go +++ b/pkg/cdc/sinker.go @@ -65,6 +65,10 @@ var NewSinker = func( return NewConsoleSinker(dbTblInfo, watermarkUpdater), nil } + if sinkUri.SinkTyp == HnswSyncSink { + return NewHnswSyncSinker(sinkUri, dbTblInfo, watermarkUpdater, tableDef, retryTimes, retryDuration, ar, maxSqlLength, sendSqlTimeout) + } + sink, err := NewMysqlSink(sinkUri.User, sinkUri.Password, sinkUri.Ip, sinkUri.Port, retryTimes, retryDuration, sendSqlTimeout) if err != nil { return nil, err diff --git a/pkg/cdc/types.go b/pkg/cdc/types.go index 7de3e8d58a8c5..7d3bcf535db05 100644 --- a/pkg/cdc/types.go +++ b/pkg/cdc/types.go @@ -44,6 +44,7 @@ const ( MysqlSink = "mysql" MatrixoneSink = "matrixone" ConsoleSink = "console" + HnswSyncSink = "hnswsync" SourceUriPrefix = "mysql://" SinkUriPrefix = "mysql://" ConsolePrefix = "console://" //only used in testing stage From 2d8527713c053af268bc5ccb07f27441cc745391 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 25 Apr 2025 13:09:15 +0100 Subject: [PATCH 003/335] get batch --- pkg/cdc/hnsw_sinker.go | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 9ad2d8845592f..67ce60f289bc7 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -27,6 +27,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" @@ -127,6 +128,8 @@ type hnswSyncSinker[T types.RealNumbers] struct { // only contains pk columns deleteTypes []*types.Type pkColNames []string + pkcol int + veccol int } var NewHnswSyncSinker = func( @@ -314,11 +317,12 @@ func (s *hnswSyncSinker[T]) Close() { } func (s *hnswSyncSinker[T]) sinkSnapshot(ctx context.Context, bat *batch.Batch) { + pkvec := bat.Vecs[s.pkcol] + vecvec := bat.Vecs[s.veccol] for i := 0; i < batchRowCount(bat); i++ { - - // get pk and vector - pk := int64(0) - v := []T(nil) + pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, i) + v := vector.GetArrayAt[T](vecvec, i) + // TODO: check null s.cdc.Upsert(pk, v) @@ -393,8 +397,17 @@ func (s *hnswSyncSinker[T]) sinkTail(ctx context.Context, upsertBatch, deleteBat func (s *hnswSyncSinker[T]) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { // get row from the batch - pk := int64(0) - v := []T(nil) + row := upsertIter.Item() + bat := row.Src + if err != nil { + return err + } + + pkvec := bat.Vecs[s.pkcol] + vecvec := bat.Vecs[s.veccol] + pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, row.Offset) + v := vector.GetArrayAt[T](vecvec, row.Offset) + s.cdc.Upsert(pk, v) if s.cdc.Full() { @@ -408,7 +421,14 @@ func (s *hnswSyncSinker[T]) sinkUpsert(ctx context.Context, upsertIter *atomicBa func (s *hnswSyncSinker[T]) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { // get row from the batch - pk := int64(0) + row := deleteIter.Item() + bat := row.Src + if err != nil { + return err + } + pkvec := bat.Vecs[s.pkcol] + pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, row.Offset) + s.cdc.Delete(pk) if s.cdc.Full() { return s.sendSql() From 30db2463aa88beb0aff7f246d649a8a8f4f9f22b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 25 Apr 2025 14:06:41 +0100 Subject: [PATCH 004/335] tabledef --- pkg/cdc/hnsw_sinker.go | 105 ++++++++++++++++++++++++++--------------- 1 file changed, 68 insertions(+), 37 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 67ce60f289bc7..147b654e08bd3 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -128,8 +128,8 @@ type hnswSyncSinker[T types.RealNumbers] struct { // only contains pk columns deleteTypes []*types.Type pkColNames []string - pkcol int - veccol int + pkcol int32 + veccol int32 } var NewHnswSyncSinker = func( @@ -158,52 +158,83 @@ var NewHnswSyncSinker = func( } // TODO: check the tabledef and indexdef + if len(tableDef.Pkey.Names) != 1 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one primary key") + } + + pkColName := tableDef.Pkey.PkeyColName + + hnswindexes := make([]*plan.IndexDef, 0, 2) + + for _, idx := range tableDef.Indexes { + if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { + hnswindexes = append(hnswindexes, idx) + } - s := &hnswSyncSinker[float32]{ - mysql: sink, - dbTblInfo: dbTblInfo, - watermarkUpdater: watermarkUpdater, - ar: ar, - tableDef: tableDef, - cdc: NewHnswCdc[float32](), } - var maxAllowedPacket uint64 - _ = sink.(*mysqlSink).conn.QueryRow("SELECT @@max_allowed_packet").Scan(&maxAllowedPacket) - maxAllowedPacket = min(maxAllowedPacket, maxSqlLength) - logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) + if len(hnswindexes) != 2 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table without index definition") + } - s.sqlBufSendCh = make(chan []byte) + indexdef := hnswindexes[0] - // TODO: check indexdef and we only need pk and vector index part + if len(indexdef.Parts) != 1 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") + } - // types - for _, col := range tableDef.Cols { - // skip internal columns - if _, ok := catalog.InternalColumns[col.Name]; ok { - continue - } + pkcol := tableDef.Name2ColIndex[pkColName] + veccol := tableDef.Name2ColIndex[indexdef.Parts[0]] + + if tableDef.Cols[pkcol].Typ.Id != int32(types.T_int64) { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table primary key is not int64") - s.upsertTypes = append(s.upsertTypes, &types.Type{ - Oid: types.T(col.Typ.Id), - Width: col.Typ.Width, - Scale: col.Typ.Scale, - }) } - for _, name := range tableDef.Pkey.Names { - s.pkColNames = append(s.pkColNames, name) - col := tableDef.Cols[tableDef.Name2ColIndex[name]] - s.deleteTypes = append(s.deleteTypes, &types.Type{ - Oid: types.T(col.Typ.Id), - Width: col.Typ.Width, - Scale: col.Typ.Scale, - }) + if tableDef.Cols[veccol].Typ.Id != int32(types.T_array_float32) && tableDef.Cols[veccol].Typ.Id != int32(types.T_array_float64) { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table part is not []float32 or []float64") + } - // err - s.err = atomic.Value{} + var maxAllowedPacket uint64 + _ = sink.(*mysqlSink).conn.QueryRow("SELECT @@max_allowed_packet").Scan(&maxAllowedPacket) + maxAllowedPacket = min(maxAllowedPacket, maxSqlLength) + + if tableDef.Cols[veccol].Typ.Id == int32(types.T_array_float32) { + s := &hnswSyncSinker[float32]{ + mysql: sink, + dbTblInfo: dbTblInfo, + watermarkUpdater: watermarkUpdater, + ar: ar, + tableDef: tableDef, + cdc: NewHnswCdc[float32](), + sqlBufSendCh: make(chan []byte), + pkcol: pkcol, + veccol: veccol, + err: atomic.Value{}, + } + logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) + return s, nil + + } else if tableDef.Cols[veccol].Typ.Id == int32(types.T_array_float64) { + s := &hnswSyncSinker[float64]{ + mysql: sink, + dbTblInfo: dbTblInfo, + watermarkUpdater: watermarkUpdater, + ar: ar, + tableDef: tableDef, + cdc: NewHnswCdc[float64](), + sqlBufSendCh: make(chan []byte), + pkcol: pkcol, + veccol: veccol, + err: atomic.Value{}, + } + logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) + return s, nil + + } else { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table part is not []float32 or []float64") + } - return s, nil } func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { From 1cfebd237a7cf8095eb3b05918d701ae2368f4ff Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 25 Apr 2025 14:35:12 +0100 Subject: [PATCH 005/335] add param --- pkg/cdc/hnsw_sinker.go | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 147b654e08bd3..fd03be3ecb4be 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -31,6 +31,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" + "github.com/matrixorigin/matrixone/pkg/vectorindex" ) const ( @@ -54,6 +55,11 @@ type HnswCdcEntry[T types.RealNumbers] struct { } type HnswCdcParam struct { + DbName string `json:"db"` + Table string `json:"table"` + MetaTbl string `json:"meta"` + IndexTbl string `json:"index"` + Params vectorindex.HnswParam `json:"params"` } func NewHnswCdc[T types.RealNumbers]() *HnswCdc[T] { @@ -190,11 +196,40 @@ var NewHnswSyncSinker = func( return nil, moerr.NewInternalErrorNoCtx("hnsw index table primary key is not int64") } - if tableDef.Cols[veccol].Typ.Id != int32(types.T_array_float32) && tableDef.Cols[veccol].Typ.Id != int32(types.T_array_float64) { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table part is not []float32 or []float64") + // get param and index table name + paramstr := indexdef.IndexAlgoParams + var meta, storage string + for _, idx := range hnswindexes { + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Metadata { + meta = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Storage { + storage = idx.IndexTableName + } + } + + if len(meta) == 0 || len(storage) == 0 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or storage hidden index table not exist") + } + + var hnswparam vectorindex.HnswParam + if len(paramstr) > 0 { + err := json.Unmarshal([]byte(paramstr), &hnswparam) + if err != nil { + return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") + } + } + + param := HnswCdcParam{ + MetaTbl: meta, + IndexTbl: storage, + DbName: dbTblInfo.SinkDbName, + Table: dbTblInfo.SinkTblName, + Params: hnswparam, } + // create sinker var maxAllowedPacket uint64 _ = sink.(*mysqlSink).conn.QueryRow("SELECT @@max_allowed_packet").Scan(&maxAllowedPacket) maxAllowedPacket = min(maxAllowedPacket, maxSqlLength) @@ -211,6 +246,7 @@ var NewHnswSyncSinker = func( pkcol: pkcol, veccol: veccol, err: atomic.Value{}, + param: param, } logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil From 4165d423d17b72066a3cbf93fa55cb203d6c0378 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 25 Apr 2025 14:52:34 +0100 Subject: [PATCH 006/335] add param and comments --- pkg/cdc/hnsw_sinker.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index fd03be3ecb4be..644dd8988fd44 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -14,6 +14,9 @@ package cdc +// to retrieve the index table from mo_catalog +// select * from mo_catalog.mo_indexes where table_id = (select rel_id from mo_tables where relname = "tbl" and reldatabase = "db"); + import ( "bytes" "context" @@ -246,7 +249,6 @@ var NewHnswSyncSinker = func( pkcol: pkcol, veccol: veccol, err: atomic.Value{}, - param: param, } logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil @@ -263,6 +265,7 @@ var NewHnswSyncSinker = func( pkcol: pkcol, veccol: veccol, err: atomic.Value{}, + param: param, } logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil From a25bf32c6e29a610d386884ddfe2ee335d88faa5 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 28 Apr 2025 11:53:42 +0100 Subject: [PATCH 007/335] add cdc delete --- pkg/sql/plan/build_delete.go | 1 + pkg/sql/plan/build_insert.go | 2 ++ pkg/sql/plan/hnsw.go | 10 ++++++---- pkg/sql/plan/types.go | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/sql/plan/build_delete.go b/pkg/sql/plan/build_delete.go index f00246a831ffb..6162489e4467c 100644 --- a/pkg/sql/plan/build_delete.go +++ b/pkg/sql/plan/build_delete.go @@ -36,6 +36,7 @@ func buildDelete(stmt *tree.Delete, ctx CompilerContext, isPrepareStmt bool) (*P return nil, err } builder := NewQueryBuilder(plan.Query_SELECT, ctx, isPrepareStmt, false) + builder.isCdc = stmt.IsCdc queryBindCtx := NewBindContext(builder, nil) lastNodeId, err := deleteToSelect(builder, queryBindCtx, stmt, true, tblInfo) diff --git a/pkg/sql/plan/build_insert.go b/pkg/sql/plan/build_insert.go index 8601c1d1b6fb5..ae92d61eb56dc 100644 --- a/pkg/sql/plan/build_insert.go +++ b/pkg/sql/plan/build_insert.go @@ -74,6 +74,7 @@ func buildInsert(stmt *tree.Insert, ctx CompilerContext, isReplace bool, isPrepa builder := NewQueryBuilder(plan.Query_SELECT, ctx, isPrepareStmt, false) builder.haveOnDuplicateKey = len(stmt.OnDuplicateUpdate) > 0 + builder.isCdc = stmt.IsCdc if stmt.IsRestore { builder.isRestore = true if stmt.IsRestoreByTs { @@ -738,6 +739,7 @@ func getRewriteToReplaceStmt(tableDef *TableDef, stmt *tree.Insert, info *dmlSel PartitionNames: stmt.PartitionNames, Columns: stmt.Columns, Rows: stmt.Rows, + IsCdc: stmt.IsCdc, } return replaceStmt } diff --git a/pkg/sql/plan/hnsw.go b/pkg/sql/plan/hnsw.go index 587b7dbb5ce84..2053026e4fa3a 100644 --- a/pkg/sql/plan/hnsw.go +++ b/pkg/sql/plan/hnsw.go @@ -69,10 +69,12 @@ func (builder *QueryBuilder) buildHnswCreate(tbl *tree.TableFunction, ctx *BindC return 0, err } - scanNode := builder.qry.Nodes[children[0]] - if scanNode.NodeType != plan.Node_TABLE_SCAN { - return 0, moerr.NewNoConfig(builder.GetContext(), "child node is not a TABLE SCAN") - } + /* + scanNode := builder.qry.Nodes[children[0]] + if scanNode.NodeType != plan.Node_TABLE_SCAN { + return 0, moerr.NewNoConfig(builder.GetContext(), "child node is not a TABLE SCAN") + } + */ // remove the first argment and put the first argument to Param exprs = exprs[1:] diff --git a/pkg/sql/plan/types.go b/pkg/sql/plan/types.go index 7e9a9bdd85097..9a3826de4c5a2 100644 --- a/pkg/sql/plan/types.go +++ b/pkg/sql/plan/types.go @@ -185,6 +185,7 @@ type QueryBuilder struct { isRestoreByTs bool isSkipResolveTableDef bool skipStats bool + isCdc bool // if it's a query from CDC or index update deleteNode map[uint64]int32 //delete node in this query. key is tableId, value is the nodeId of sinkScan node in the delete plan From a91f1654c8446c9c1691d30d0ea1fd3b408ece5b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 28 Apr 2025 14:09:51 +0100 Subject: [PATCH 008/335] function --- pkg/cdc/hnsw_sinker.go | 80 +-------------------------- pkg/sql/plan/function/function_id.go | 6 ++ pkg/sql/plan/function/list_builtIn.go | 21 +++++++ pkg/vectorindex/types.go | 76 +++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 77 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 644dd8988fd44..bdc9d8518c496 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -37,26 +37,8 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) -const ( - CDC_INSERT = "I" - CDC_UPSERT = "U" - CDC_DELETE = "D" -) - var _ Sinker = &hnswSyncSinker[float32]{} -type HnswCdc[T types.RealNumbers] struct { - Start string `json:"start"` - End string `json:"end"` - Data []HnswCdcEntry[T] `json:"cdc"` -} - -type HnswCdcEntry[T types.RealNumbers] struct { - Type string `json:"t"` // I - INSERT, D - DELETE, U - UPSERT - PKey int64 `json:"pk"` - Vec []T `json:"v,omitempty"` -} - type HnswCdcParam struct { DbName string `json:"db"` Table string `json:"table"` @@ -65,69 +47,13 @@ type HnswCdcParam struct { Params vectorindex.HnswParam `json:"params"` } -func NewHnswCdc[T types.RealNumbers]() *HnswCdc[T] { - return &HnswCdc[T]{ - Data: make([]HnswCdcEntry[T], 0, 100), - } -} - -func (h *HnswCdc[T]) Reset() { - h.Data = h.Data[:0] -} - -func (h *HnswCdc[T]) Empty() bool { - return len(h.Data) == 0 -} - -func (h *HnswCdc[T]) Full() bool { - return len(h.Data) >= cap(h.Data) -} - -func (h *HnswCdc[T]) Insert(key int64, v []T) { - e := HnswCdcEntry[T]{ - Type: CDC_INSERT, - PKey: key, - Vec: v, - } - - h.Data = append(h.Data, e) -} - -func (h *HnswCdc[T]) Upsert(key int64, v []T) { - e := HnswCdcEntry[T]{ - Type: CDC_UPSERT, - PKey: key, - Vec: v, - } - - h.Data = append(h.Data, e) -} - -func (h *HnswCdc[T]) Delete(key int64) { - e := HnswCdcEntry[T]{ - Type: CDC_DELETE, - PKey: key, - } - - h.Data = append(h.Data, e) -} - -func (h *HnswCdc[T]) ToJson() (string, error) { - - b, err := json.Marshal(h) - if err != nil { - return "", err - } - return string(b), nil -} - type hnswSyncSinker[T types.RealNumbers] struct { mysql Sink dbTblInfo *DbTableInfo watermarkUpdater IWatermarkUpdater ar *ActiveRoutine tableDef *plan.TableDef - cdc *HnswCdc[T] + cdc *vectorindex.HnswCdc[T] param HnswCdcParam err atomic.Value @@ -244,7 +170,7 @@ var NewHnswSyncSinker = func( watermarkUpdater: watermarkUpdater, ar: ar, tableDef: tableDef, - cdc: NewHnswCdc[float32](), + cdc: vectorindex.NewHnswCdc[float32](), sqlBufSendCh: make(chan []byte), pkcol: pkcol, veccol: veccol, @@ -260,7 +186,7 @@ var NewHnswSyncSinker = func( watermarkUpdater: watermarkUpdater, ar: ar, tableDef: tableDef, - cdc: NewHnswCdc[float64](), + cdc: vectorindex.NewHnswCdc[float64](), sqlBufSendCh: make(chan []byte), pkcol: pkcol, veccol: veccol, diff --git a/pkg/sql/plan/function/function_id.go b/pkg/sql/plan/function/function_id.go index d7da9a7b4ebf9..8a63d2ade222a 100644 --- a/pkg/sql/plan/function/function_id.go +++ b/pkg/sql/plan/function/function_id.go @@ -405,6 +405,9 @@ const ( // fault inject function FAULT_INJECT = 340 + // hnsw function + HNSW_CDC_UPDATE = 341 + // FUNCTION_END_NUMBER is not a function, just a flag to record the max number of function. // TODO: every one should put the new function id in front of this one if you want to make a new function. FUNCTION_END_NUMBER = 341 @@ -737,4 +740,7 @@ var functionIdRegister = map[string]int32{ // fault inject function "fault_inject": FAULT_INJECT, + + // hnsw function + "hnsw_cdc_update": HNSW_CDC_UPDATE, } diff --git a/pkg/sql/plan/function/list_builtIn.go b/pkg/sql/plan/function/list_builtIn.go index 30823fc0ffa2d..319079903d62a 100644 --- a/pkg/sql/plan/function/list_builtIn.go +++ b/pkg/sql/plan/function/list_builtIn.go @@ -6821,6 +6821,27 @@ var supportedOthersBuiltIns = []FuncNew{ Overloads: fulltext_expand_overload(types.T_float32), }, + + // function `HNSW_CDC_UPDATE` + { + functionId: HNSW_CDC_UPDATE, + class: plan.Function_STRICT, + layout: STANDARD_FUNCTION, + checkFn: fixedTypeMatch, + + Overloads: []overload{ + { + overloadId: 0, + args: []types.T{types.T_varchar, types.T_varchar, types.T_varchar}, + retType: func(parameters []types.Type) types.Type { + return types.T_uint64.ToType() + }, + newOp: func() executeLogicOfOverload { + return hnswCdcUpdate + }, + }, + }, + }, } // fulltext_match supports varchar, char and text. Expand the function signature to all possible combination of input types diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index 3cbe815417ec0..cfb3ee8e75709 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -15,8 +15,10 @@ package vectorindex import ( + "encoding/json" "runtime" + "github.com/matrixorigin/matrixone/pkg/container/types" usearch "github.com/unum-cloud/usearch/golang" ) @@ -31,6 +33,12 @@ const ( MaxChunkSize = 65536 ) +const ( + CDC_INSERT = "I" + CDC_UPSERT = "U" + CDC_DELETE = "D" +) + // HNSW have two secondary index tables, metadata and index storage. For new vector index algorithm that share the same secondary tables, // can use the same IndexTableConfig struct type IndexTableConfig struct { @@ -91,6 +99,74 @@ type RuntimeConfig struct { Probe uint } +type HnswCdc[T types.RealNumbers] struct { + Start string `json:"start"` + End string `json:"end"` + Data []HnswCdcEntry[T] `json:"cdc"` +} + +func NewHnswCdc[T types.RealNumbers]() *HnswCdc[T] { + return &HnswCdc[T]{ + Data: make([]HnswCdcEntry[T], 0, 100), + } +} + +func (h *HnswCdc[T]) Reset() { + h.Data = h.Data[:0] +} + +func (h *HnswCdc[T]) Empty() bool { + return len(h.Data) == 0 +} + +func (h *HnswCdc[T]) Full() bool { + return len(h.Data) >= cap(h.Data) +} + +func (h *HnswCdc[T]) Insert(key int64, v []T) { + e := HnswCdcEntry[T]{ + Type: CDC_INSERT, + PKey: key, + Vec: v, + } + + h.Data = append(h.Data, e) +} + +func (h *HnswCdc[T]) Upsert(key int64, v []T) { + e := HnswCdcEntry[T]{ + Type: CDC_UPSERT, + PKey: key, + Vec: v, + } + + h.Data = append(h.Data, e) +} + +func (h *HnswCdc[T]) Delete(key int64) { + e := HnswCdcEntry[T]{ + Type: CDC_DELETE, + PKey: key, + } + + h.Data = append(h.Data, e) +} + +func (h *HnswCdc[T]) ToJson() (string, error) { + + b, err := json.Marshal(h) + if err != nil { + return "", err + } + return string(b), nil +} + +type HnswCdcEntry[T types.RealNumbers] struct { + Type string `json:"t"` // I - INSERT, D - DELETE, U - UPSERT + PKey int64 `json:"pk"` + Vec []T `json:"v,omitempty"` +} + // nthread == 0, result will return NumCPU - 1 func GetConcurrency(nthread int64) int64 { if nthread > 0 { From a1ce79c0e934ef3292acd431b5f0d4b3a58855e8 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 28 Apr 2025 17:58:41 +0100 Subject: [PATCH 009/335] add hnsw function --- pkg/sql/plan/function/func_hnsw.go | 104 +++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 pkg/sql/plan/function/func_hnsw.go diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go new file mode 100644 index 0000000000000..7005a853e46d3 --- /dev/null +++ b/pkg/sql/plan/function/func_hnsw.go @@ -0,0 +1,104 @@ +// Copyright 2021 - 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package function + +import ( + "encoding/json" + "fmt" + "os" + + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/matrixorigin/matrixone/pkg/vectorindex/sqlexec" + "github.com/matrixorigin/matrixone/pkg/vm/process" +) + +var hnswsync_runsql = sqlexec.RunSql + +func hnswsync(proc *process.Process, db string, tbl string, cdc *vectorindex.HnswCdc[float32]) error { + + b, err := json.Marshal(cdc) + if err != nil { + return err + } + os.Stderr.WriteString(string(b)) + + sql := fmt.Sprintf("select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s') and algo='hnsw';", + tbl, db) + + res, err := hnswsync_runsql(proc, sql) + if err != nil { + return err + } + defer res.Close() + + bat := res.Batches[0] + + idxtblvec := bat.Vecs[0] + algotypevec := bat.Vecs[1] + paramvec := bat.Vecs[2] + colvec := bat.Vecs[3] + + for i := 0; i < bat.RowCount(); i++ { + + idxtbl := idxtblvec.UnsafeGetStringAt(i) + algotyp := algotypevec.UnsafeGetStringAt(i) + param := paramvec.UnsafeGetStringAt(i) + cname := colvec.UnsafeGetStringAt(i) + os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, param, cname)) + } + + return nil +} + +func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, proc *process.Process, length int, selectList *FunctionSelectList) error { + + if len(ivecs) != 3 { + return moerr.NewInvalidInput(proc.Ctx, "number of arguments != 3") + } + + dbVec := vector.GenerateFunctionStrParameter(ivecs[0]) + tblVec := vector.GenerateFunctionStrParameter(ivecs[1]) + cdcVec := vector.GenerateFunctionStrParameter(ivecs[2]) + + for i := uint64(0); i < uint64(length); i++ { + dbname, isnull := dbVec.GetStrValue(i) + if isnull { + return moerr.NewInvalidInput(proc.Ctx, "dbname is null") + } + + tblname, isnull := tblVec.GetStrValue(i) + if isnull { + return moerr.NewInvalidInput(proc.Ctx, "table name is null") + + } + cdcstr, isnull := cdcVec.GetStrValue(i) + if isnull { + return moerr.NewInvalidInput(proc.Ctx, "cdc is null") + } + + var cdc vectorindex.HnswCdc[float32] + err := json.Unmarshal([]byte(cdcstr), &cdc) + if err != nil { + return moerr.NewInvalidInput(proc.Ctx, "cdc is not json object") + } + // hnsw sync + os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, json=%s\n", dbname, tblname, cdcstr)) + hnswsync(proc, string(dbname), string(tblname), &cdc) + } + + return nil +} From 035ba59f740bab922cbdec27635fa1beeeb99f2c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 29 Apr 2025 14:54:28 +0100 Subject: [PATCH 010/335] cdc param --- pkg/vectorindex/types.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index cfb3ee8e75709..089642b22adbb 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -167,6 +167,14 @@ type HnswCdcEntry[T types.RealNumbers] struct { Vec []T `json:"v,omitempty"` } +type HnswCdcParam struct { + DbName string `json:"db"` + Table string `json:"table"` + MetaTbl string `json:"meta"` + IndexTbl string `json:"index"` + Params HnswParam `json:"params"` +} + // nthread == 0, result will return NumCPU - 1 func GetConcurrency(nthread int64) int64 { if nthread > 0 { From 4bf9ed9b98d1bb25e6b11cb3d78ff0dc9706679c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 29 Apr 2025 14:54:40 +0100 Subject: [PATCH 011/335] cdc param --- pkg/cdc/hnsw_sinker.go | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index bdc9d8518c496..a75b3dcc05d8d 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -39,14 +39,6 @@ import ( var _ Sinker = &hnswSyncSinker[float32]{} -type HnswCdcParam struct { - DbName string `json:"db"` - Table string `json:"table"` - MetaTbl string `json:"meta"` - IndexTbl string `json:"index"` - Params vectorindex.HnswParam `json:"params"` -} - type hnswSyncSinker[T types.RealNumbers] struct { mysql Sink dbTblInfo *DbTableInfo @@ -54,7 +46,7 @@ type hnswSyncSinker[T types.RealNumbers] struct { ar *ActiveRoutine tableDef *plan.TableDef cdc *vectorindex.HnswCdc[T] - param HnswCdcParam + param vectorindex.HnswCdcParam err atomic.Value sqlBufSendCh chan []byte @@ -150,7 +142,7 @@ var NewHnswSyncSinker = func( } } - param := HnswCdcParam{ + param := vectorindex.HnswCdcParam{ MetaTbl: meta, IndexTbl: storage, DbName: dbTblInfo.SinkDbName, From 5a412a2e0ee144fe3eab0d89cd08dde02510fbd9 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 29 Apr 2025 17:22:18 +0100 Subject: [PATCH 012/335] bug fix --- pkg/cdc/hnsw_sinker.go | 6 ++++-- pkg/cdc/sinker.go | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 1d3a9f934af69..0b87e6d4b8229 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -167,6 +167,7 @@ var NewHnswSyncSinker = func( pkcol: pkcol, veccol: veccol, err: atomic.Value{}, + param: param, } logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil @@ -286,7 +287,8 @@ func (s *hnswSyncSinker[T]) SendDummy() { } func (s *hnswSyncSinker[T]) Error() error { - if errPtr := s.err.Load().(*error); *errPtr != nil { + if ptr := s.err.Load(); ptr != nil { + errPtr := ptr.(*error) if moErr, ok := (*errPtr).(*moerr.Error); !ok { return moerr.ConvertGoError(context.Background(), *errPtr) } else { @@ -456,7 +458,7 @@ func (s *hnswSyncSinker[T]) sendSql() error { } // pad extra space at the front and send SQL padding := strings.Repeat(" ", sqlBufReserved) - sql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', '%s');", padding, "db", "table", js) + sql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', '%s');", padding, s.param.DbName, s.param.Table, js) s.sqlBufSendCh <- []byte(sql) diff --git a/pkg/cdc/sinker.go b/pkg/cdc/sinker.go index 3dced573b09ea..3ebd1c432dee7 100644 --- a/pkg/cdc/sinker.go +++ b/pkg/cdc/sinker.go @@ -434,7 +434,8 @@ func (s *mysqlSinker) SendDummy() { } func (s *mysqlSinker) Error() error { - if errPtr := s.err.Load().(*error); *errPtr != nil { + if ptr := s.err.Load(); ptr != nil { + errPtr := ptr.(*error) if moErr, ok := (*errPtr).(*moerr.Error); !ok { return moerr.ConvertGoError(context.Background(), *errPtr) } else { From 1b9b50a3c4952ca3a90be289cdd6f066b3c8b879 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 29 Apr 2025 17:28:14 +0100 Subject: [PATCH 013/335] support hnswsync --- pkg/frontend/cdc_options.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/frontend/cdc_options.go b/pkg/frontend/cdc_options.go index 256c51481d9cf..1b3c52b16137c 100644 --- a/pkg/frontend/cdc_options.go +++ b/pkg/frontend/cdc_options.go @@ -123,7 +123,7 @@ func (opts *CDCCreateTaskOptions) ValidateAndFill( if cdc.EnableConsoleSink && opts.SinkType == cdc.CDCSinkType_Console { opts.UseConsole = true } - if !opts.UseConsole && opts.SinkType != cdc.CDCSinkType_MySQL && opts.SinkType != cdc.CDCSinkType_MO { + if !opts.UseConsole && opts.SinkType != cdc.CDCSinkType_MySQL && opts.SinkType != cdc.CDCSinkType_MO && opts.SinkType != cdc.CDCSinkType_HnswSync { err = moerr.NewInternalErrorf(ctx, "unsupported sink type: %s", req.SinkType) return } From 78d842ff0c805c99e16547efe09a2217ef25762a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 30 Apr 2025 17:06:16 +0100 Subject: [PATCH 014/335] add sqlexecutor --- pkg/cdc/hnsw_sinker.go | 128 +++++++++++++++++++++++++---- pkg/cdc/sinker.go | 3 +- pkg/frontend/cdc_exector.go | 1 + pkg/sql/plan/function/func_hnsw.go | 7 ++ 4 files changed, 121 insertions(+), 18 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 0b87e6d4b8229..deb6f8ce4ff6a 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -22,17 +22,20 @@ import ( "context" "encoding/json" "fmt" + "os" "strings" "sync/atomic" "time" "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/common/runtime" "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/util/executor" v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" "github.com/matrixorigin/matrixone/pkg/vectorindex" ) @@ -40,6 +43,7 @@ import ( var _ Sinker = &hnswSyncSinker[float32]{} type hnswSyncSinker[T types.RealNumbers] struct { + cnUUID string mysql Sink dbTblInfo *DbTableInfo watermarkUpdater IWatermarkUpdater @@ -57,9 +61,11 @@ type hnswSyncSinker[T types.RealNumbers] struct { pkColNames []string pkcol int32 veccol int32 + exec executor.SQLExecutor } var NewHnswSyncSinker = func( + cnUUID string, sinkUri UriInfo, dbTblInfo *DbTableInfo, watermarkUpdater IWatermarkUpdater, @@ -71,6 +77,15 @@ var NewHnswSyncSinker = func( sendSqlTimeout string, ) (Sinker, error) { + // sql executor + v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) + if !ok { + os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) + return nil, moerr.NewNotSupportedNoCtx("no implement sqlExecutor") + } + exec := v.(executor.SQLExecutor) + + // sink sink, err := NewMysqlSink(sinkUri.User, sinkUri.Password, sinkUri.Ip, sinkUri.Port, retryTimes, retryDuration, sendSqlTimeout) if err != nil { return nil, err @@ -157,6 +172,7 @@ var NewHnswSyncSinker = func( if tableDef.Cols[veccol].Typ.Id == int32(types.T_array_float32) { s := &hnswSyncSinker[float32]{ + cnUUID: cnUUID, mysql: sink, dbTblInfo: dbTblInfo, watermarkUpdater: watermarkUpdater, @@ -168,6 +184,7 @@ var NewHnswSyncSinker = func( veccol: veccol, err: atomic.Value{}, param: param, + exec: exec, } logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil @@ -185,6 +202,7 @@ var NewHnswSyncSinker = func( veccol: veccol, err: atomic.Value{}, param: param, + exec: exec, } logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil @@ -210,29 +228,105 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { if bytes.Equal(sqlBuf, dummy) { // dummy sql, do nothing } else if bytes.Equal(sqlBuf, begin) { - if err := s.mysql.SendBegin(ctx); err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendBegin, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } + os.Stderr.WriteString("BEGIN\n") + /* + res, err := s.exec.Exec(newctx, "BEGIN;", opts) + if err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendBegin, err: %v", s.dbTblInfo, err) + // record error + s.SetError(err) + } + res.Close() + */ + + /* + if err := s.mysql.SendBegin(ctx); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendBegin, err: %v", s.dbTblInfo, err) + // record error + s.SetError(err) + } + */ } else if bytes.Equal(sqlBuf, commit) { - if err := s.mysql.SendCommit(ctx); err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendCommit, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } + os.Stderr.WriteString("COMMIT\n") + /* + res, err := s.exec.Exec(newctx, "COMMIT;", opts) + if err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendCommit, err: %v", s.dbTblInfo, err) + // record error + s.SetError(err) + } + res.Close() + */ + /* + if err := s.mysql.SendCommit(ctx); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendCommit, err: %v", s.dbTblInfo, err) + // record error + s.SetError(err) + } + */ } else if bytes.Equal(sqlBuf, rollback) { - if err := s.mysql.SendRollback(ctx); err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendRollback, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } + os.Stderr.WriteString("ROLLBACK\n") + /* + res, err := s.exec.Exec(newctx, "ROLLBACK;", opts) + if err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendRollback, err: %v", s.dbTblInfo, err) + // record error + s.SetError(err) + } + res.Close() + */ + /* + if err := s.mysql.SendRollback(ctx); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) SendRollback, err: %v", s.dbTblInfo, err) + // record error + s.SetError(err) + } + */ } else { - if err := s.mysql.Send(ctx, ar, sqlBuf, true); err != nil { + // sql executor + /* + v, ok := runtime.ServiceRuntime(s.cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) + if !ok { + os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", s.cnUUID)) + s.SetError(moerr.NewNotSupported(ctx, "no implement sqlExecutor")) + continue + } + exec := v.(executor.SQLExecutor) + opts := executor.Options{} + opts = opts.WithDisableCommit().WithDisableRollback() + + os.Stderr.WriteString(fmt.Sprintf("running SQL... cnUUID = %s\n", s.cnUUID)) + */ + + newctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + opts := executor.Options{} + //opts = opts.WithDisableCommit().WithDisableRollback() + //res, err := s.exec.Exec(newctx, string(sqlBuf), opts) + + var res executor.Result + err := s.exec.ExecTxn(newctx, + func(exec executor.TxnExecutor) error { + v, err := exec.Exec(string(sqlBuf), opts.StatementOption()) + res = v + return err + }, + opts) + if err != nil { logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) - // record error + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) s.SetError(err) } + res.Close() + + /* + if err := s.mysql.Send(ctx, ar, sqlBuf, true); err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) + // record error + s.SetError(err) + } + */ } } } diff --git a/pkg/cdc/sinker.go b/pkg/cdc/sinker.go index 3ebd1c432dee7..fddcc546235f5 100644 --- a/pkg/cdc/sinker.go +++ b/pkg/cdc/sinker.go @@ -50,6 +50,7 @@ var ( ) var NewSinker = func( + cnUUID string, sinkUri UriInfo, dbTblInfo *DbTableInfo, watermarkUpdater IWatermarkUpdater, @@ -66,7 +67,7 @@ var NewSinker = func( } if sinkUri.SinkTyp == CDCSinkType_HnswSync { - return NewHnswSyncSinker(sinkUri, dbTblInfo, watermarkUpdater, tableDef, retryTimes, retryDuration, ar, maxSqlLength, sendSqlTimeout) + return NewHnswSyncSinker(cnUUID, sinkUri, dbTblInfo, watermarkUpdater, tableDef, retryTimes, retryDuration, ar, maxSqlLength, sendSqlTimeout) } sink, err := NewMysqlSink(sinkUri.User, sinkUri.Password, sinkUri.Ip, sinkUri.Port, retryTimes, retryDuration, sendSqlTimeout) diff --git a/pkg/frontend/cdc_exector.go b/pkg/frontend/cdc_exector.go index c5792729a5c54..b946862c9e835 100644 --- a/pkg/frontend/cdc_exector.go +++ b/pkg/frontend/cdc_exector.go @@ -451,6 +451,7 @@ func (exec *CDCTaskExecutor) addExecPipelineForTable(ctx context.Context, info * // step 2. new sinker sinker, err := cdc.NewSinker( + exec.cnUUID, exec.sinkUri, info, exec.watermarkUpdater, diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 7005a853e46d3..c0d604a79f6f3 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -45,6 +45,13 @@ func hnswsync(proc *process.Process, db string, tbl string, cdc *vectorindex.Hns } defer res.Close() + os.Stderr.WriteString(sql) + os.Stderr.WriteString(fmt.Sprintf("\nnumber of batch = %d\n", len(res.Batches))) + + if len(res.Batches) == 0 { + return nil + } + bat := res.Batches[0] idxtblvec := bat.Vecs[0] From fcb5ed29b8b62d5e763cca0c48530430ae955707 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 1 May 2025 11:48:53 +0100 Subject: [PATCH 015/335] txn --- pkg/cdc/hnsw_sinker.go | 134 +++++++++++------------------------------ 1 file changed, 36 insertions(+), 98 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index deb6f8ce4ff6a..faf44055a381b 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -219,115 +219,53 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { logutil.Infof("cdc hnswSyncSinker(%v).Run: end", s.dbTblInfo) }() - for sqlBuf := range s.sqlBufSendCh { - // have error, skip - if s.err.Load() != nil { - continue + for { + + // make sure there is a BEGIN before start transaction + for sqlBuf := range s.sqlBufSendCh { + if bytes.Equal(sqlBuf, begin) { + break + } } - if bytes.Equal(sqlBuf, dummy) { - // dummy sql, do nothing - } else if bytes.Equal(sqlBuf, begin) { - os.Stderr.WriteString("BEGIN\n") - /* - res, err := s.exec.Exec(newctx, "BEGIN;", opts) - if err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendBegin, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } - res.Close() - */ - - /* - if err := s.mysql.SendBegin(ctx); err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendBegin, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } - */ - } else if bytes.Equal(sqlBuf, commit) { - os.Stderr.WriteString("COMMIT\n") - /* - res, err := s.exec.Exec(newctx, "COMMIT;", opts) - if err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendCommit, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } - res.Close() - */ - /* - if err := s.mysql.SendCommit(ctx); err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendCommit, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } - */ - } else if bytes.Equal(sqlBuf, rollback) { - os.Stderr.WriteString("ROLLBACK\n") - /* - res, err := s.exec.Exec(newctx, "ROLLBACK;", opts) - if err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendRollback, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } - res.Close() - */ - /* - if err := s.mysql.SendRollback(ctx); err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) SendRollback, err: %v", s.dbTblInfo, err) - // record error - s.SetError(err) - } - */ - } else { - // sql executor - /* - v, ok := runtime.ServiceRuntime(s.cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) - if !ok { - os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", s.cnUUID)) - s.SetError(moerr.NewNotSupported(ctx, "no implement sqlExecutor")) - continue - } - exec := v.(executor.SQLExecutor) - opts := executor.Options{} - opts = opts.WithDisableCommit().WithDisableRollback() - - os.Stderr.WriteString(fmt.Sprintf("running SQL... cnUUID = %s\n", s.cnUUID)) - */ - - newctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + func() { + newctx, cancel := context.WithTimeout(context.Background(), 12*time.Hour) defer cancel() opts := executor.Options{} - //opts = opts.WithDisableCommit().WithDisableRollback() - //res, err := s.exec.Exec(newctx, string(sqlBuf), opts) - - var res executor.Result err := s.exec.ExecTxn(newctx, func(exec executor.TxnExecutor) error { - v, err := exec.Exec(string(sqlBuf), opts.StatementOption()) - res = v - return err + + for sqlBuf := range s.sqlBufSendCh { + if bytes.Equal(sqlBuf, dummy) { + + } else if bytes.Equal(sqlBuf, begin) { + // BEGIN + } else if bytes.Equal(sqlBuf, commit) { + // COMMIT - end of data + return nil + } else if bytes.Equal(sqlBuf, rollback) { + // ROLLBACK + return moerr.NewInternalError(ctx, "parent rollback") + } else { + res, err := exec.Exec(string(sqlBuf), opts.StatementOption()) + if err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) + return err + } + res.Close() + } + } + + return nil + }, opts) if err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) - os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) - os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) s.SetError(err) } - res.Close() - - /* - if err := s.mysql.Send(ctx, ar, sqlBuf, true); err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) - // record error - s.SetError(err) - } - */ - } + }() } } From 64d5cb1ebcd4f48fc555439a87761843e703939b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 1 May 2025 13:35:06 +0100 Subject: [PATCH 016/335] check rollback error and skip --- pkg/cdc/hnsw_sinker.go | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index faf44055a381b..c14892bfa8aff 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -223,6 +223,7 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { // make sure there is a BEGIN before start transaction for sqlBuf := range s.sqlBufSendCh { + //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) if bytes.Equal(sqlBuf, begin) { break } @@ -245,7 +246,7 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { return nil } else if bytes.Equal(sqlBuf, rollback) { // ROLLBACK - return moerr.NewInternalError(ctx, "parent rollback") + return moerr.NewQueryInterrupted(ctx) } else { res, err := exec.Exec(string(sqlBuf), opts.StatementOption()) if err != nil { @@ -255,6 +256,8 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { return err } res.Close() + //return moerr.NewInternalError(ctx, "fake error") + //return moerr.NewQueryInterrupted(ctx) } } @@ -263,7 +266,33 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { }, opts) if err != nil { - s.SetError(err) + moe, ok := err.(*moerr.Error) + //os.Stderr.WriteString(fmt.Sprintf("error from txn %v, ok %v\n", err, ok)) + if ok { + if moe.ErrorCode() == moerr.ErrQueryInterrupted { + // skip rollback error + //os.Stderr.WriteString("error QueryInterrupted....rollback\n") + logutil.Errorf("cdc hnswSyncSinker(%v) parent rollback", s.dbTblInfo) + } else { + s.SetError(err) + } + } else if uw, ok := err.(interface{ Unwrap() []error }); ok { + rollbackfound := false + for _, e := range uw.Unwrap() { + //os.Stderr.WriteString(fmt.Sprintf("errors... %v\n", e)) + moe, ok := e.(*moerr.Error) + if ok && moe.ErrorCode() == moerr.ErrQueryInterrupted { + rollbackfound = true + } + } + + //os.Stderr.WriteString(fmt.Sprintf("rollback found %v\n", rollbackfound)) + if !rollbackfound { + s.SetError(err) + } + } else { + s.SetError(err) + } } }() } From ab9d98c14ba2efe4d9ae3a42f9b14e1529e5eb3a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 1 May 2025 13:41:35 +0100 Subject: [PATCH 017/335] cleanup --- pkg/cdc/hnsw_sinker.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index c14892bfa8aff..9448b14c7c2a1 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -256,8 +256,6 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { return err } res.Close() - //return moerr.NewInternalError(ctx, "fake error") - //return moerr.NewQueryInterrupted(ctx) } } From 0838cb02809b867667a544b9419870c5020d7ae8 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 09:35:00 +0100 Subject: [PATCH 018/335] rename Hnsw to VectorIndex --- pkg/cdc/hnsw_sinker.go | 6 ++--- pkg/sql/plan/function/func_hnsw.go | 4 ++-- pkg/vectorindex/types.go | 36 +++++++++++++++--------------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index bdc369c3daeff..040e64b404679 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -48,7 +48,7 @@ type hnswSyncSinker[T types.RealNumbers] struct { watermarkUpdater IWatermarkUpdater ar *ActiveRoutine tableDef *plan.TableDef - cdc *vectorindex.HnswCdc[T] + cdc *vectorindex.VectorIndexCdc[T] param vectorindex.HnswCdcParam err atomic.Value @@ -161,7 +161,7 @@ var NewHnswSyncSinker = func( watermarkUpdater: watermarkUpdater, ar: ar, tableDef: tableDef, - cdc: vectorindex.NewHnswCdc[float32](), + cdc: vectorindex.NewVectorIndexCdc[float32](), sqlBufSendCh: make(chan []byte), pkcol: pkcol, veccol: veccol, @@ -179,7 +179,7 @@ var NewHnswSyncSinker = func( watermarkUpdater: watermarkUpdater, ar: ar, tableDef: tableDef, - cdc: vectorindex.NewHnswCdc[float64](), + cdc: vectorindex.NewVectorIndexCdc[float64](), sqlBufSendCh: make(chan []byte), pkcol: pkcol, veccol: veccol, diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index c0d604a79f6f3..88642f7a5a357 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -28,7 +28,7 @@ import ( var hnswsync_runsql = sqlexec.RunSql -func hnswsync(proc *process.Process, db string, tbl string, cdc *vectorindex.HnswCdc[float32]) error { +func hnswsync(proc *process.Process, db string, tbl string, cdc *vectorindex.VectorIndexCdc[float32]) error { b, err := json.Marshal(cdc) if err != nil { @@ -97,7 +97,7 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, return moerr.NewInvalidInput(proc.Ctx, "cdc is null") } - var cdc vectorindex.HnswCdc[float32] + var cdc vectorindex.VectorIndexCdc[float32] err := json.Unmarshal([]byte(cdcstr), &cdc) if err != nil { return moerr.NewInvalidInput(proc.Ctx, "cdc is not json object") diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index 089642b22adbb..60ff6efef3e52 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -99,32 +99,32 @@ type RuntimeConfig struct { Probe uint } -type HnswCdc[T types.RealNumbers] struct { - Start string `json:"start"` - End string `json:"end"` - Data []HnswCdcEntry[T] `json:"cdc"` +type VectorIndexCdc[T types.RealNumbers] struct { + Start string `json:"start"` + End string `json:"end"` + Data []VectorIndexCdcEntry[T] `json:"cdc"` } -func NewHnswCdc[T types.RealNumbers]() *HnswCdc[T] { - return &HnswCdc[T]{ - Data: make([]HnswCdcEntry[T], 0, 100), +func NewVectorIndexCdc[T types.RealNumbers]() *VectorIndexCdc[T] { + return &VectorIndexCdc[T]{ + Data: make([]VectorIndexCdcEntry[T], 0, 100), } } -func (h *HnswCdc[T]) Reset() { +func (h *VectorIndexCdc[T]) Reset() { h.Data = h.Data[:0] } -func (h *HnswCdc[T]) Empty() bool { +func (h *VectorIndexCdc[T]) Empty() bool { return len(h.Data) == 0 } -func (h *HnswCdc[T]) Full() bool { +func (h *VectorIndexCdc[T]) Full() bool { return len(h.Data) >= cap(h.Data) } -func (h *HnswCdc[T]) Insert(key int64, v []T) { - e := HnswCdcEntry[T]{ +func (h *VectorIndexCdc[T]) Insert(key int64, v []T) { + e := VectorIndexCdcEntry[T]{ Type: CDC_INSERT, PKey: key, Vec: v, @@ -133,8 +133,8 @@ func (h *HnswCdc[T]) Insert(key int64, v []T) { h.Data = append(h.Data, e) } -func (h *HnswCdc[T]) Upsert(key int64, v []T) { - e := HnswCdcEntry[T]{ +func (h *VectorIndexCdc[T]) Upsert(key int64, v []T) { + e := VectorIndexCdcEntry[T]{ Type: CDC_UPSERT, PKey: key, Vec: v, @@ -143,8 +143,8 @@ func (h *HnswCdc[T]) Upsert(key int64, v []T) { h.Data = append(h.Data, e) } -func (h *HnswCdc[T]) Delete(key int64) { - e := HnswCdcEntry[T]{ +func (h *VectorIndexCdc[T]) Delete(key int64) { + e := VectorIndexCdcEntry[T]{ Type: CDC_DELETE, PKey: key, } @@ -152,7 +152,7 @@ func (h *HnswCdc[T]) Delete(key int64) { h.Data = append(h.Data, e) } -func (h *HnswCdc[T]) ToJson() (string, error) { +func (h *VectorIndexCdc[T]) ToJson() (string, error) { b, err := json.Marshal(h) if err != nil { @@ -161,7 +161,7 @@ func (h *HnswCdc[T]) ToJson() (string, error) { return string(b), nil } -type HnswCdcEntry[T types.RealNumbers] struct { +type VectorIndexCdcEntry[T types.RealNumbers] struct { Type string `json:"t"` // I - INSERT, D - DELETE, U - UPSERT PKey int64 `json:"pk"` Vec []T `json:"v,omitempty"` From 28cdb7cdf08a656e9218239afc8ab405547946c8 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 10:24:01 +0100 Subject: [PATCH 019/335] refactor code --- pkg/vectorindex/hnsw/build.go | 193 ++------------------ pkg/vectorindex/hnsw/model.go | 323 +++++++++++++++++++++++++++++++++ pkg/vectorindex/hnsw/search.go | 147 +-------------- 3 files changed, 341 insertions(+), 322 deletions(-) create mode 100644 pkg/vectorindex/hnsw/model.go diff --git a/pkg/vectorindex/hnsw/build.go b/pkg/vectorindex/hnsw/build.go index b61d42b0216e8..4749ab52c4010 100644 --- a/pkg/vectorindex/hnsw/build.go +++ b/pkg/vectorindex/hnsw/build.go @@ -17,7 +17,6 @@ package hnsw import ( "errors" "fmt" - "math" "os" "strings" "sync" @@ -26,24 +25,13 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vm/process" - usearch "github.com/unum-cloud/usearch/golang" ) -// Hnsw Build index implementation -type HnswBuildIndex struct { - Id string - Index *usearch.Index - Path string - Saved bool - Size int64 - MaxCapacity uint -} - type HnswBuild struct { uid string cfg vectorindex.IndexConfig tblcfg vectorindex.IndexTableConfig - indexes []*HnswBuildIndex + indexes []*HnswModel nthread int add_chan chan AddItem err_chan chan error @@ -58,165 +46,6 @@ type AddItem struct { vec []float32 } -// New HnswBuildIndex struct -func NewHnswBuildIndex(id string, cfg vectorindex.IndexConfig, nthread int, max_capacity uint) (*HnswBuildIndex, error) { - var err error - idx := &HnswBuildIndex{} - - idx.Id = id - - idx.Index, err = usearch.NewIndex(cfg.Usearch) - if err != nil { - return nil, err - } - - idx.MaxCapacity = max_capacity - - err = idx.Index.Reserve(idx.MaxCapacity) - if err != nil { - return nil, err - } - - err = idx.Index.ChangeThreadsAdd(uint(nthread)) - if err != nil { - return nil, err - } - return idx, nil -} - -// Destroy the struct -func (idx *HnswBuildIndex) Destroy() error { - if idx.Index != nil { - err := idx.Index.Destroy() - if err != nil { - return err - } - idx.Index = nil - } - - if idx.Saved && len(idx.Path) > 0 { - // remove the file - err := os.Remove(idx.Path) - if err != nil { - return err - } - } - return nil -} - -// Save the index to file -func (idx *HnswBuildIndex) SaveToFile() error { - if idx.Saved { - return nil - } - - f, err := os.CreateTemp("", "hnsw") - if err != nil { - return err - } - - err = idx.Index.Save(f.Name()) - if err != nil { - os.Remove(f.Name()) - return err - } - - // free memory - err = idx.Index.Destroy() - if err != nil { - return err - } - idx.Index = nil - - idx.Saved = true - idx.Path = f.Name() - return nil -} - -// Generate the SQL to update the secondary index tables. -// 1. store the index file into the index table -func (idx *HnswBuildIndex) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) { - - err := idx.SaveToFile() - if err != nil { - return nil, err - } - - fi, err := os.Stat(idx.Path) - if err != nil { - return nil, err - } - - filesz := fi.Size() - offset := int64(0) - chunksz := int64(0) - chunkid := int64(0) - - idx.Size = filesz - - sqls := make([]string, 0, 5) - - sql := fmt.Sprintf("INSERT INTO `%s`.`%s` VALUES ", cfg.DbName, cfg.IndexTable) - values := make([]string, 0, int64(math.Ceil(float64(filesz)/float64(vectorindex.MaxChunkSize)))) - n := 0 - for offset = 0; offset < filesz; { - if offset+vectorindex.MaxChunkSize < filesz { - chunksz = vectorindex.MaxChunkSize - - } else { - chunksz = filesz - offset - } - - url := fmt.Sprintf("file://%s?offset=%d&size=%d", idx.Path, offset, chunksz) - tuple := fmt.Sprintf("('%s', %d, load_file(cast('%s' as datalink)), 0)", idx.Id, chunkid, url) - values = append(values, tuple) - - // offset and chunksz - offset += chunksz - chunkid++ - - n++ - if n == 10000 { - newsql := sql + strings.Join(values, ", ") - sqls = append(sqls, newsql) - values = values[:0] - n = 0 - } - } - - if len(values) > 0 { - newsql := sql + strings.Join(values, ", ") - sqls = append(sqls, newsql) - } - - //sql += strings.Join(values, ", ") - //return []string{sql}, nil - return sqls, nil -} - -// is the index empty -func (idx *HnswBuildIndex) Empty() (bool, error) { - sz, err := idx.Index.Len() - if err != nil { - return false, err - } - return (sz == 0), nil -} - -// check the index is full, i.e. 10K vectors -func (idx *HnswBuildIndex) Full() (bool, error) { - sz, err := idx.Index.Len() - if err != nil { - return false, err - } - return (sz == idx.MaxCapacity), nil -} - -// add vector to the index -func (idx *HnswBuildIndex) Add(key int64, vec []float32) error { - return idx.Index.Add(uint64(key), vec) -} - // create HsnwBuild struct func NewHnswBuild(proc *process.Process, uid string, nworker int32, cfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig) (info *HnswBuild, err error) { @@ -239,7 +68,7 @@ func NewHnswBuild(proc *process.Process, uid string, nworker int32, uid: uid, cfg: cfg, tblcfg: tblcfg, - indexes: make([]*HnswBuildIndex, 0, 16), + indexes: make([]*HnswModel, 0, 16), nthread: int(nthread), } @@ -337,18 +166,18 @@ func (h *HnswBuild) createIndexUniqueKey(id int64) string { return fmt.Sprintf("%s:%d", h.uid, id) } -func (h *HnswBuild) getIndexForAddSync() (idx *HnswBuildIndex, save_idx *HnswBuildIndex, err error) { +func (h *HnswBuild) getIndexForAddSync() (idx *HnswModel, save_idx *HnswModel, err error) { h.mutex.Lock() defer h.mutex.Unlock() return h.getIndexForAdd() } -func (h *HnswBuild) getIndexForAdd() (idx *HnswBuildIndex, save_idx *HnswBuildIndex, err error) { +func (h *HnswBuild) getIndexForAdd() (idx *HnswModel, save_idx *HnswModel, err error) { save_idx = nil nidx := int64(len(h.indexes)) if nidx == 0 { - idx, err = NewHnswBuildIndex(h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) + idx, err = NewHnswModelForBuild(h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) if err != nil { return nil, nil, err } @@ -363,7 +192,7 @@ func (h *HnswBuild) getIndexForAdd() (idx *HnswBuildIndex, save_idx *HnswBuildIn save_idx = idx // create new index - idx, err = NewHnswBuildIndex(h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) + idx, err = NewHnswModelForBuild(h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) if err != nil { return nil, nil, err } @@ -382,8 +211,8 @@ func (h *HnswBuild) getIndexForAdd() (idx *HnswBuildIndex, save_idx *HnswBuildIn // sync version for multi-thread func (h *HnswBuild) addVectorSync(key int64, vec []float32) error { var err error - var idx *HnswBuildIndex - var save_idx *HnswBuildIndex + var idx *HnswModel + var save_idx *HnswModel idx, save_idx, err = h.getIndexForAddSync() if err != nil { @@ -406,8 +235,8 @@ func (h *HnswBuild) addVectorSync(key int64, vec []float32) error { // single-threaded version. func (h *HnswBuild) addVector(key int64, vec []float32) error { var err error - var idx *HnswBuildIndex - var save_idx *HnswBuildIndex + var idx *HnswModel + var save_idx *HnswModel h.mutex.Lock() defer h.mutex.Unlock() @@ -470,6 +299,6 @@ func (h *HnswBuild) ToInsertSql(ts int64) ([]string, error) { return sqls, nil } -func (h *HnswBuild) GetIndexes() []*HnswBuildIndex { +func (h *HnswBuild) GetIndexes() []*HnswModel { return h.indexes } diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go new file mode 100644 index 0000000000000..495b77349cf40 --- /dev/null +++ b/pkg/vectorindex/hnsw/model.go @@ -0,0 +1,323 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package hnsw + +import ( + "fmt" + "io" + "math" + "os" + "strings" + + "github.com/detailyang/go-fallocate" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/util/executor" + "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/matrixorigin/matrixone/pkg/vm/process" + usearch "github.com/unum-cloud/usearch/golang" +) + +// Hnsw Build index implementation +type HnswModel struct { + Id string + Index *usearch.Index + Path string + FileSize int64 + + // info required for build + Saved bool + MaxCapacity uint + + // from metadata. info required for search + Timestamp int64 + Checksum string +} + +// New HnswModel struct +func NewHnswModelForBuild(id string, cfg vectorindex.IndexConfig, nthread int, max_capacity uint) (*HnswModel, error) { + var err error + idx := &HnswModel{} + + idx.Id = id + + idx.Index, err = usearch.NewIndex(cfg.Usearch) + if err != nil { + return nil, err + } + + idx.MaxCapacity = max_capacity + + err = idx.Index.Reserve(idx.MaxCapacity) + if err != nil { + return nil, err + } + + err = idx.Index.ChangeThreadsAdd(uint(nthread)) + if err != nil { + return nil, err + } + return idx, nil +} + +// Destroy the struct +func (idx *HnswModel) Destroy() error { + if idx.Index != nil { + err := idx.Index.Destroy() + if err != nil { + return err + } + idx.Index = nil + } + + if idx.Saved && len(idx.Path) > 0 { + // remove the file + err := os.Remove(idx.Path) + if err != nil { + return err + } + } + return nil +} + +// Save the index to file +func (idx *HnswModel) SaveToFile() error { + if idx.Saved { + return nil + } + + f, err := os.CreateTemp("", "hnsw") + if err != nil { + return err + } + + err = idx.Index.Save(f.Name()) + if err != nil { + os.Remove(f.Name()) + return err + } + + // free memory + err = idx.Index.Destroy() + if err != nil { + return err + } + idx.Index = nil + + idx.Saved = true + idx.Path = f.Name() + return nil +} + +// Generate the SQL to update the secondary index tables. +// 1. store the index file into the index table +func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) { + + err := idx.SaveToFile() + if err != nil { + return nil, err + } + + fi, err := os.Stat(idx.Path) + if err != nil { + return nil, err + } + + filesz := fi.Size() + offset := int64(0) + chunksz := int64(0) + chunkid := int64(0) + + idx.FileSize = filesz + + sqls := make([]string, 0, 5) + + sql := fmt.Sprintf("INSERT INTO `%s`.`%s` VALUES ", cfg.DbName, cfg.IndexTable) + values := make([]string, 0, int64(math.Ceil(float64(filesz)/float64(vectorindex.MaxChunkSize)))) + n := 0 + for offset = 0; offset < filesz; { + if offset+vectorindex.MaxChunkSize < filesz { + chunksz = vectorindex.MaxChunkSize + + } else { + chunksz = filesz - offset + } + + url := fmt.Sprintf("file://%s?offset=%d&size=%d", idx.Path, offset, chunksz) + tuple := fmt.Sprintf("('%s', %d, load_file(cast('%s' as datalink)), 0)", idx.Id, chunkid, url) + values = append(values, tuple) + + // offset and chunksz + offset += chunksz + chunkid++ + + n++ + if n == 10000 { + newsql := sql + strings.Join(values, ", ") + sqls = append(sqls, newsql) + values = values[:0] + n = 0 + } + } + + if len(values) > 0 { + newsql := sql + strings.Join(values, ", ") + sqls = append(sqls, newsql) + } + + //sql += strings.Join(values, ", ") + //return []string{sql}, nil + return sqls, nil +} + +// is the index empty +func (idx *HnswModel) Empty() (bool, error) { + sz, err := idx.Index.Len() + if err != nil { + return false, err + } + return (sz == 0), nil +} + +// check the index is full, i.e. 10K vectors +func (idx *HnswModel) Full() (bool, error) { + sz, err := idx.Index.Len() + if err != nil { + return false, err + } + return (sz == idx.MaxCapacity), nil +} + +// add vector to the index +func (idx *HnswModel) Add(key int64, vec []float32) error { + return idx.Index.Add(uint64(key), vec) +} + +// load chunk from database +func (idx *HnswModel) loadChunk(proc *process.Process, stream_chan chan executor.Result, error_chan chan error, fp *os.File) (stream_closed bool, err error) { + var res executor.Result + var ok bool + + select { + case res, ok = <-stream_chan: + if !ok { + return true, nil + } + case err = <-error_chan: + return false, err + case <-proc.Ctx.Done(): + return false, moerr.NewInternalError(proc.Ctx, "context cancelled") + } + + bat := res.Batches[0] + defer res.Close() + + for i := 0; i < bat.RowCount(); i++ { + chunk_id := vector.GetFixedAtWithTypeCheck[int64](bat.Vecs[0], i) + data := bat.Vecs[1].GetRawBytesAt(i) + + offset := chunk_id * vectorindex.MaxChunkSize + _, err = fp.Seek(offset, io.SeekStart) + if err != nil { + return false, err + } + + _, err = fp.Write(data) + if err != nil { + return false, err + } + } + return false, nil +} + +// load index from database +// TODO: loading file is tricky. +// 1. we need to know the size of the file. +// 2. Write Zero to file to have a pre-allocated size +// 3. SELECT chunk_id, data from index_table WHERE index_id = id. Result will be out of order +// 4. according to the chunk_id, seek to the offset and write the chunk +// 5. check the checksum to verify the correctness of the file +func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64) error { + + stream_chan := make(chan executor.Result, 2) + error_chan := make(chan error) + + // create tempfile for writing + fp, err := os.CreateTemp("", "hnswindx") + if err != nil { + return err + } + defer os.Remove(fp.Name()) + + err = fallocate.Fallocate(fp, 0, idx.FileSize) + if err != nil { + return err + } + + // run streaming sql + sql := fmt.Sprintf("SELECT chunk_id, data from `%s`.`%s` WHERE index_id = '%s'", tblcfg.DbName, tblcfg.IndexTable, idx.Id) + go func() { + _, err := runSql_streaming(proc, sql, stream_chan, error_chan) + if err != nil { + error_chan <- err + return + } + }() + + // incremental load from database + sql_closed := false + for !sql_closed { + sql_closed, err = idx.loadChunk(proc, stream_chan, error_chan, fp) + if err != nil { + return err + } + } + + // load index to memory + fp.Close() + + // check checksum + chksum, err := vectorindex.CheckSum(fp.Name()) + if err != nil { + return err + } + if chksum != idx.Checksum { + return moerr.NewInternalError(proc.Ctx, "Checksum mismatch with the index file") + } + + usearchidx, err := usearch.NewIndex(idxcfg.Usearch) + if err != nil { + return err + } + + err = usearchidx.ChangeThreadsSearch(uint(nthread)) + if err != nil { + return err + } + + err = usearchidx.Load(fp.Name()) + if err != nil { + return err + } + + idx.Index = usearchidx + + return nil +} + +// Call usearch.Search +func (idx *HnswModel) Search(query []float32, limit uint) (keys []usearch.Key, distances []float32, err error) { + return idx.Index.Search(query, limit) +} diff --git a/pkg/vectorindex/hnsw/search.go b/pkg/vectorindex/hnsw/search.go index bd5590d751785..07c6010358137 100644 --- a/pkg/vectorindex/hnsw/search.go +++ b/pkg/vectorindex/hnsw/search.go @@ -17,164 +17,31 @@ package hnsw import ( "errors" "fmt" - "io" - "os" "sync" "sync/atomic" - "github.com/detailyang/go-fallocate" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" - "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vectorindex/cache" "github.com/matrixorigin/matrixone/pkg/vectorindex/sqlexec" "github.com/matrixorigin/matrixone/pkg/vm/process" - - usearch "github.com/unum-cloud/usearch/golang" ) var runSql = sqlexec.RunSql var runSql_streaming = sqlexec.RunStreamingSql -// Hnsw search index struct to hold the usearch index -type HnswSearchIndex struct { - Id string - Path string - Index *usearch.Index - Timestamp int64 - Checksum string - Filesize int64 -} - // This is the HNSW search implementation that implement VectorIndexSearchIf interface type HnswSearch struct { Idxcfg vectorindex.IndexConfig Tblcfg vectorindex.IndexTableConfig - Indexes []*HnswSearchIndex + Indexes []*HnswModel Concurrency atomic.Int64 Mutex sync.Mutex Cond *sync.Cond ThreadsSearch int64 } -// load chunk from database -func (idx *HnswSearchIndex) loadChunk(proc *process.Process, stream_chan chan executor.Result, error_chan chan error, fp *os.File) (stream_closed bool, err error) { - var res executor.Result - var ok bool - - select { - case res, ok = <-stream_chan: - if !ok { - return true, nil - } - case err = <-error_chan: - return false, err - case <-proc.Ctx.Done(): - return false, moerr.NewInternalError(proc.Ctx, "context cancelled") - } - - bat := res.Batches[0] - defer res.Close() - - for i := 0; i < bat.RowCount(); i++ { - chunk_id := vector.GetFixedAtWithTypeCheck[int64](bat.Vecs[0], i) - data := bat.Vecs[1].GetRawBytesAt(i) - - offset := chunk_id * vectorindex.MaxChunkSize - _, err = fp.Seek(offset, io.SeekStart) - if err != nil { - return false, err - } - - _, err = fp.Write(data) - if err != nil { - return false, err - } - } - return false, nil -} - -// load index from database -// TODO: loading file is tricky. -// 1. we need to know the size of the file. -// 2. Write Zero to file to have a pre-allocated size -// 3. SELECT chunk_id, data from index_table WHERE index_id = id. Result will be out of order -// 4. according to the chunk_id, seek to the offset and write the chunk -// 5. check the checksum to verify the correctness of the file -func (idx *HnswSearchIndex) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64) error { - - stream_chan := make(chan executor.Result, 2) - error_chan := make(chan error) - - // create tempfile for writing - fp, err := os.CreateTemp("", "hnswindx") - if err != nil { - return err - } - defer os.Remove(fp.Name()) - - err = fallocate.Fallocate(fp, 0, idx.Filesize) - if err != nil { - return err - } - - // run streaming sql - sql := fmt.Sprintf("SELECT chunk_id, data from `%s`.`%s` WHERE index_id = '%s'", tblcfg.DbName, tblcfg.IndexTable, idx.Id) - go func() { - _, err := runSql_streaming(proc, sql, stream_chan, error_chan) - if err != nil { - error_chan <- err - return - } - }() - - // incremental load from database - sql_closed := false - for !sql_closed { - sql_closed, err = idx.loadChunk(proc, stream_chan, error_chan, fp) - if err != nil { - return err - } - } - - // load index to memory - fp.Close() - - // check checksum - chksum, err := vectorindex.CheckSum(fp.Name()) - if err != nil { - return err - } - if chksum != idx.Checksum { - return moerr.NewInternalError(proc.Ctx, "Checksum mismatch with the index file") - } - - usearchidx, err := usearch.NewIndex(idxcfg.Usearch) - if err != nil { - return err - } - - err = usearchidx.ChangeThreadsSearch(uint(nthread)) - if err != nil { - return err - } - - err = usearchidx.Load(fp.Name()) - if err != nil { - return err - } - - idx.Index = usearchidx - - return nil -} - -// Call usearch.Search -func (idx *HnswSearchIndex) Search(query []float32, limit uint) (keys []usearch.Key, distances []float32, err error) { - return idx.Index.Search(query, limit) -} - func NewHnswSearch(idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig) *HnswSearch { nthread := vectorindex.GetConcurrency(tblcfg.ThreadsSearch) s := &HnswSearch{Idxcfg: idxcfg, Tblcfg: tblcfg, ThreadsSearch: nthread} @@ -300,9 +167,9 @@ func (s *HnswSearch) Destroy() { } // load metadata from database -func (s *HnswSearch) LoadMetadata(proc *process.Process) ([]*HnswSearchIndex, error) { +func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*HnswModel, error) { - sql := fmt.Sprintf("SELECT * FROM `%s`.`%s`", s.Tblcfg.DbName, s.Tblcfg.MetadataTable) + sql := fmt.Sprintf("SELECT * FROM `%s`.`%s`", dbname, metatbl) res, err := runSql(proc, sql) if err != nil { return nil, err @@ -314,7 +181,7 @@ func (s *HnswSearch) LoadMetadata(proc *process.Process) ([]*HnswSearchIndex, er total += bat.RowCount() } - indexes := make([]*HnswSearchIndex, 0, total) + indexes := make([]*HnswModel, 0, total) for _, bat := range res.Batches { idVec := bat.Vecs[0] chksumVec := bat.Vecs[1] @@ -326,7 +193,7 @@ func (s *HnswSearch) LoadMetadata(proc *process.Process) ([]*HnswSearchIndex, er ts := vector.GetFixedAtWithTypeCheck[int64](tsVec, i) fs := vector.GetFixedAtWithTypeCheck[int64](fsVec, i) - idx := &HnswSearchIndex{Id: id, Checksum: chksum, Timestamp: ts, Filesize: fs} + idx := &HnswModel{Id: id, Checksum: chksum, Timestamp: ts, FileSize: fs} indexes = append(indexes, idx) } } @@ -335,7 +202,7 @@ func (s *HnswSearch) LoadMetadata(proc *process.Process) ([]*HnswSearchIndex, er } // load index from database -func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswSearchIndex) ([]*HnswSearchIndex, error) { +func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswModel) ([]*HnswModel, error) { for _, idx := range indexes { err := idx.LoadIndex(proc, s.Idxcfg, s.Tblcfg, s.ThreadsSearch) @@ -349,7 +216,7 @@ func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswSearchIndex // load index from database (implement VectorIndexSearch.LoadFromDatabase) func (s *HnswSearch) Load(proc *process.Process) error { // load metadata - indexes, err := s.LoadMetadata(proc) + indexes, err := LoadMetadata(proc, s.Tblcfg.DbName, s.Tblcfg.MetadataTable) if err != nil { return err } From cf25e248889634eb613602a2c23f92021b858594 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 10:29:38 +0100 Subject: [PATCH 020/335] refactoring --- pkg/vectorindex/hnsw/build_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/vectorindex/hnsw/build_test.go b/pkg/vectorindex/hnsw/build_test.go index 33c98d5f2f98a..ab3112613c57f 100644 --- a/pkg/vectorindex/hnsw/build_test.go +++ b/pkg/vectorindex/hnsw/build_test.go @@ -110,9 +110,9 @@ func TestBuildMulti(t *testing.T) { fmt.Printf("load model from files\n") // load index - search.Indexes = make([]*HnswSearchIndex, len(indexes)) + search.Indexes = make([]*HnswModel, len(indexes)) for i, idx := range indexes { - sidx := &HnswSearchIndex{} + sidx := &HnswModel{} sidx.Index, err = usearch.NewIndex(idxcfg.Usearch) require.Nil(t, err) @@ -173,7 +173,7 @@ func TestBuildIndex(t *testing.T) { idxcfg.Usearch.Metric = 100 //tblcfg := vectorindex.IndexTableConfig{DbName: "db", SrcTable: "src", MetadataTable: "__secondary_meta", IndexTable: "__secondary_index"} - idx, err := NewHnswBuildIndex("abc-0", idxcfg, 1, MaxIndexCapacity) + idx, err := NewHnswModelForBuild("abc-0", idxcfg, 1, MaxIndexCapacity) require.Nil(t, err) empty, err := idx.Empty() @@ -273,9 +273,9 @@ func TestBuildSingleThread(t *testing.T) { fmt.Printf("load model from files\n") // load index - search.Indexes = make([]*HnswSearchIndex, len(indexes)) + search.Indexes = make([]*HnswModel, len(indexes)) for i, idx := range indexes { - sidx := &HnswSearchIndex{} + sidx := &HnswModel{} sidx.Index, err = usearch.NewIndex(idxcfg.Usearch) require.Nil(t, err) From df53b4fdf3f07b95b7b0495b39ccc3eb915b2c33 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 10:40:35 +0100 Subject: [PATCH 021/335] add remove() and contains() and load from view --- pkg/vectorindex/hnsw/model.go | 18 ++++++++++++++++-- pkg/vectorindex/hnsw/search.go | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 495b77349cf40..704971b9353bd 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -205,6 +205,16 @@ func (idx *HnswModel) Add(key int64, vec []float32) error { return idx.Index.Add(uint64(key), vec) } +// remove key +func (idx *HnswModel) Remove(key int64) error { + return idx.Index.Remove(uint64(key)) +} + +// contains key +func (idx *HnswModel) Contains(key int64) (found bool, err error) { + return idx.Index.Contains(uint64(key)) +} + // load chunk from database func (idx *HnswModel) loadChunk(proc *process.Process, stream_chan chan executor.Result, error_chan chan error, fp *os.File) (stream_closed bool, err error) { var res executor.Result @@ -249,7 +259,7 @@ func (idx *HnswModel) loadChunk(proc *process.Process, stream_chan chan executor // 3. SELECT chunk_id, data from index_table WHERE index_id = id. Result will be out of order // 4. according to the chunk_id, seek to the offset and write the chunk // 5. check the checksum to verify the correctness of the file -func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64) error { +func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64, view bool) error { stream_chan := make(chan executor.Result, 2) error_chan := make(chan error) @@ -307,7 +317,11 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC return err } - err = usearchidx.Load(fp.Name()) + if view { + err = usearchidx.View(fp.Name()) + } else { + err = usearchidx.Load(fp.Name()) + } if err != nil { return err } diff --git a/pkg/vectorindex/hnsw/search.go b/pkg/vectorindex/hnsw/search.go index 07c6010358137..78e4d627052ad 100644 --- a/pkg/vectorindex/hnsw/search.go +++ b/pkg/vectorindex/hnsw/search.go @@ -205,7 +205,7 @@ func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*Hnsw func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswModel) ([]*HnswModel, error) { for _, idx := range indexes { - err := idx.LoadIndex(proc, s.Idxcfg, s.Tblcfg, s.ThreadsSearch) + err := idx.LoadIndex(proc, s.Idxcfg, s.Tblcfg, s.ThreadsSearch, false) if err != nil { return nil, err } From 509137ace7982576f52603ea1abd830816a92860 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 11:38:01 +0100 Subject: [PATCH 022/335] unload --- pkg/vectorindex/hnsw/model.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 704971b9353bd..b3a114509bbbf 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -44,6 +44,9 @@ type HnswModel struct { // from metadata. info required for search Timestamp int64 Checksum string + + // for cdc update + Dirty bool } // New HnswModel struct @@ -331,6 +334,21 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC return nil } +// unload +func (idx *HnswModel) Unload() error { + if idx.Index != nil { + err := idx.Index.Destroy() + if err != nil { + return err + } + // reset variable + idx.Index = nil + idx.Saved = false + idx.Dirty = false + } + return nil +} + // Call usearch.Search func (idx *HnswModel) Search(query []float32, limit uint) (keys []usearch.Key, distances []float32, err error) { return idx.Index.Search(query, limit) From fdeb4c1bb503a679730d6652024b0efcd3f30eaf Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 11:47:23 +0100 Subject: [PATCH 023/335] add cdc sync --- pkg/vectorindex/hnsw/sync.go | 62 ++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 pkg/vectorindex/hnsw/sync.go diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go new file mode 100644 index 0000000000000..882dee5d1f789 --- /dev/null +++ b/pkg/vectorindex/hnsw/sync.go @@ -0,0 +1,62 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package hnsw + +import ( + "fmt" + "os" + + "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/matrixorigin/matrixone/pkg/vm/process" +) + +const ( + catalogsql = "select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s') and algo='hnsw';" +) + +func CdcSync(proc *process.Process, db string, tbl string, cdc *vectorindex.VectorIndexCdc[float32]) error { + + sql := fmt.Sprintf(catalogsql, tbl, db) + res, err := runSql(proc, sql) + if err != nil { + return err + } + defer res.Close() + + os.Stderr.WriteString(sql) + os.Stderr.WriteString(fmt.Sprintf("\nnumber of batch = %d\n", len(res.Batches))) + + if len(res.Batches) == 0 { + return nil + } + + bat := res.Batches[0] + + idxtblvec := bat.Vecs[0] + algotypevec := bat.Vecs[1] + paramvec := bat.Vecs[2] + colvec := bat.Vecs[3] + + for i := 0; i < bat.RowCount(); i++ { + + idxtbl := idxtblvec.UnsafeGetStringAt(i) + algotyp := algotypevec.UnsafeGetStringAt(i) + param := paramvec.UnsafeGetStringAt(i) + cname := colvec.UnsafeGetStringAt(i) + os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, param, cname)) + } + + return nil +} From f08aa2901098bffcf3f8f842721d8e34a0969b7d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 11:48:53 +0100 Subject: [PATCH 024/335] CdcSync --- pkg/sql/plan/function/func_hnsw.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 88642f7a5a357..12f2b338e8ce1 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -22,6 +22,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/matrixorigin/matrixone/pkg/vectorindex/hnsw" "github.com/matrixorigin/matrixone/pkg/vectorindex/sqlexec" "github.com/matrixorigin/matrixone/pkg/vm/process" ) @@ -104,7 +105,7 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, } // hnsw sync os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, json=%s\n", dbname, tblname, cdcstr)) - hnswsync(proc, string(dbname), string(tblname), &cdc) + hnsw.CdcSync(proc, string(dbname), string(tblname), &cdc) } return nil From 7f791a708bca2b32f73bb8b40513cff120437465 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 11:52:57 +0100 Subject: [PATCH 025/335] error checking --- pkg/sql/plan/function/func_hnsw.go | 51 +++--------------------------- 1 file changed, 4 insertions(+), 47 deletions(-) diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 12f2b338e8ce1..31033c8f0fa8e 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -23,55 +23,9 @@ import ( "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vectorindex/hnsw" - "github.com/matrixorigin/matrixone/pkg/vectorindex/sqlexec" "github.com/matrixorigin/matrixone/pkg/vm/process" ) -var hnswsync_runsql = sqlexec.RunSql - -func hnswsync(proc *process.Process, db string, tbl string, cdc *vectorindex.VectorIndexCdc[float32]) error { - - b, err := json.Marshal(cdc) - if err != nil { - return err - } - os.Stderr.WriteString(string(b)) - - sql := fmt.Sprintf("select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s') and algo='hnsw';", - tbl, db) - - res, err := hnswsync_runsql(proc, sql) - if err != nil { - return err - } - defer res.Close() - - os.Stderr.WriteString(sql) - os.Stderr.WriteString(fmt.Sprintf("\nnumber of batch = %d\n", len(res.Batches))) - - if len(res.Batches) == 0 { - return nil - } - - bat := res.Batches[0] - - idxtblvec := bat.Vecs[0] - algotypevec := bat.Vecs[1] - paramvec := bat.Vecs[2] - colvec := bat.Vecs[3] - - for i := 0; i < bat.RowCount(); i++ { - - idxtbl := idxtblvec.UnsafeGetStringAt(i) - algotyp := algotypevec.UnsafeGetStringAt(i) - param := paramvec.UnsafeGetStringAt(i) - cname := colvec.UnsafeGetStringAt(i) - os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, param, cname)) - } - - return nil -} - func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, proc *process.Process, length int, selectList *FunctionSelectList) error { if len(ivecs) != 3 { @@ -105,7 +59,10 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, } // hnsw sync os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, json=%s\n", dbname, tblname, cdcstr)) - hnsw.CdcSync(proc, string(dbname), string(tblname), &cdc) + err = hnsw.CdcSync(proc, string(dbname), string(tblname), &cdc) + if err != nil { + return err + } } return nil From cc15bbf8eae01ea4181bbe9be95f879903f02025 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 14:30:36 +0100 Subject: [PATCH 026/335] add dimension as function argument --- pkg/cdc/hnsw_sinker.go | 13 ++-- pkg/sql/plan/function/func_hnsw.go | 17 +++-- pkg/sql/plan/function/list_builtIn.go | 2 +- pkg/vectorindex/hnsw/sync.go | 101 +++++++++++++++++++++++++- pkg/vectorindex/types.go | 11 +-- 5 files changed, 123 insertions(+), 21 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 040e64b404679..60503152e392f 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -143,11 +143,12 @@ var NewHnswSyncSinker = func( } param := vectorindex.HnswCdcParam{ - MetaTbl: meta, - IndexTbl: storage, - DbName: dbTblInfo.SinkDbName, - Table: dbTblInfo.SinkTblName, - Params: hnswparam, + MetaTbl: meta, + IndexTbl: storage, + DbName: dbTblInfo.SinkDbName, + Table: dbTblInfo.SinkTblName, + Params: hnswparam, + Dimension: tableDef.Cols[veccol].Typ.Width, } // create sinker @@ -499,7 +500,7 @@ func (s *hnswSyncSinker[T]) sendSql() error { } // pad extra space at the front and send SQL padding := strings.Repeat(" ", sqlBufReserved) - sql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', '%s');", padding, s.param.DbName, s.param.Table, js) + sql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", padding, s.param.DbName, s.param.Table, s.param.Dimension, js) s.sqlBufSendCh <- []byte(sql) diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 31033c8f0fa8e..7ed40acda6d88 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -28,13 +28,14 @@ import ( func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, proc *process.Process, length int, selectList *FunctionSelectList) error { - if len(ivecs) != 3 { - return moerr.NewInvalidInput(proc.Ctx, "number of arguments != 3") + if len(ivecs) != 4 { + return moerr.NewInvalidInput(proc.Ctx, "number of arguments != 4") } dbVec := vector.GenerateFunctionStrParameter(ivecs[0]) tblVec := vector.GenerateFunctionStrParameter(ivecs[1]) - cdcVec := vector.GenerateFunctionStrParameter(ivecs[2]) + dimVec := vector.GenerateFunctionFixedTypeParameter[int32](ivecs[2]) + cdcVec := vector.GenerateFunctionStrParameter(ivecs[3]) for i := uint64(0); i < uint64(length); i++ { dbname, isnull := dbVec.GetStrValue(i) @@ -47,6 +48,12 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, return moerr.NewInvalidInput(proc.Ctx, "table name is null") } + + dim, isnull := dimVec.GetValue(i) + if isnull { + return moerr.NewInvalidInput(proc.Ctx, "dimension is null") + } + cdcstr, isnull := cdcVec.GetStrValue(i) if isnull { return moerr.NewInvalidInput(proc.Ctx, "cdc is null") @@ -58,8 +65,8 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, return moerr.NewInvalidInput(proc.Ctx, "cdc is not json object") } // hnsw sync - os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, json=%s\n", dbname, tblname, cdcstr)) - err = hnsw.CdcSync(proc, string(dbname), string(tblname), &cdc) + os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, dim=%d, json=%s\n", dbname, tblname, dim, cdcstr)) + err = hnsw.CdcSync(proc, string(dbname), string(tblname), dim, &cdc) if err != nil { return err } diff --git a/pkg/sql/plan/function/list_builtIn.go b/pkg/sql/plan/function/list_builtIn.go index cd78f618fbde5..0175d0f840b41 100644 --- a/pkg/sql/plan/function/list_builtIn.go +++ b/pkg/sql/plan/function/list_builtIn.go @@ -6897,7 +6897,7 @@ var supportedOthersBuiltIns = []FuncNew{ Overloads: []overload{ { overloadId: 0, - args: []types.T{types.T_varchar, types.T_varchar, types.T_varchar}, + args: []types.T{types.T_varchar, types.T_varchar, types.T_int32, types.T_varchar}, retType: func(parameters []types.Type) types.Type { return types.T_uint64.ToType() }, diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 882dee5d1f789..8014d02d3d6ab 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -15,10 +15,15 @@ package hnsw import ( + "encoding/json" "fmt" "os" + "strconv" + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/matrixorigin/matrixone/pkg/vectorindex/metric" "github.com/matrixorigin/matrixone/pkg/vm/process" ) @@ -26,7 +31,7 @@ const ( catalogsql = "select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s') and algo='hnsw';" ) -func CdcSync(proc *process.Process, db string, tbl string, cdc *vectorindex.VectorIndexCdc[float32]) error { +func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { sql := fmt.Sprintf(catalogsql, tbl, db) res, err := runSql(proc, sql) @@ -49,13 +54,101 @@ func CdcSync(proc *process.Process, db string, tbl string, cdc *vectorindex.Vect paramvec := bat.Vecs[2] colvec := bat.Vecs[3] + var idxtblcfg vectorindex.IndexTableConfig + var param vectorindex.HnswParam + + idxtblcfg.DbName = db + idxtblcfg.SrcTable = tbl + + // GetResolveVariableFunc() is nil because of internal SQL proc don't have ResolveVariableFunc(). + if proc.GetResolveVariableFunc() != nil { + val, err := proc.GetResolveVariableFunc()("hnsw_threads_build", true, false) + if err != nil { + return err + } + idxtblcfg.ThreadsBuild = val.(int64) + + idxcap, err := proc.GetResolveVariableFunc()("hnsw_max_index_capacity", true, false) + if err != nil { + return err + } + idxtblcfg.IndexCapacity = idxcap.(int64) + } else { + + idxtblcfg.ThreadsBuild = 0 + idxtblcfg.IndexCapacity = 1000000 + } + for i := 0; i < bat.RowCount(); i++ { idxtbl := idxtblvec.UnsafeGetStringAt(i) algotyp := algotypevec.UnsafeGetStringAt(i) - param := paramvec.UnsafeGetStringAt(i) - cname := colvec.UnsafeGetStringAt(i) - os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, param, cname)) + + if i == 0 { + paramstr := paramvec.UnsafeGetStringAt(i) + cname := colvec.UnsafeGetStringAt(i) + os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, param, cname)) + idxtblcfg.KeyPart = cname + if len(paramstr) > 0 { + err := json.Unmarshal([]byte(paramstr), ¶m) + if err != nil { + return err + } + } + } + + if algotyp == catalog.Hnsw_TblType_Metadata { + idxtblcfg.MetadataTable = idxtbl + + } else if algotyp == catalog.Hnsw_TblType_Storage { + idxtblcfg.IndexTable = idxtbl + + } + } + + var idxcfg vectorindex.IndexConfig + idxcfg.Type = "hnsw" + + idxcfg.Usearch.Dimensions = uint(dimension) + + if len(param.Quantization) > 0 { + var ok bool + idxcfg.Usearch.Quantization, ok = vectorindex.QuantizationValid(param.Quantization) + if !ok { + return moerr.NewInternalError(proc.Ctx, "Invalid quantization value") + + } + } + + if len(param.M) > 0 { + val, err := strconv.Atoi(param.M) + if err != nil { + return err + } + idxcfg.Usearch.Connectivity = uint(val) + } + + // default L2Sq + metrictype, ok := metric.OpTypeToUsearchMetric[param.OpType] + if !ok { + return moerr.NewInternalError(proc.Ctx, "Invalid op_type") + } + idxcfg.Usearch.Metric = metrictype + + if len(param.EfConstruction) > 0 { + val, err := strconv.Atoi(param.EfConstruction) + if err != nil { + return err + } + idxcfg.Usearch.ExpansionAdd = uint(val) + } + // ef_search + if len(param.EfSearch) > 0 { + val, err := strconv.Atoi(param.EfSearch) + if err != nil { + return err + } + idxcfg.Usearch.ExpansionSearch = uint(val) } return nil diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index 60ff6efef3e52..f50e246c3cd3d 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -168,11 +168,12 @@ type VectorIndexCdcEntry[T types.RealNumbers] struct { } type HnswCdcParam struct { - DbName string `json:"db"` - Table string `json:"table"` - MetaTbl string `json:"meta"` - IndexTbl string `json:"index"` - Params HnswParam `json:"params"` + DbName string `json:"db"` + Table string `json:"table"` + MetaTbl string `json:"meta"` + IndexTbl string `json:"index"` + Params HnswParam `json:"params"` + Dimension int32 `json:"dimension"` } // nthread == 0, result will return NumCPU - 1 From 7fd2758e8e72652b61a5b9be92f02d126bea5d7c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 14:48:19 +0100 Subject: [PATCH 027/335] load metadata --- pkg/vectorindex/hnsw/sync.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 8014d02d3d6ab..2e1d0b2ea136f 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -151,5 +151,15 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc idxcfg.Usearch.ExpansionSearch = uint(val) } + os.Stderr.WriteString(fmt.Sprintf("idxtblcfg: %v\n", idxtblcfg)) + os.Stderr.WriteString(fmt.Sprintf("idxcfg: %v\n", idxcfg)) + + // load metadata + indexes, err := LoadMetadata(proc, idxtblcfg.DbName, idxtblcfg.MetadataTable) + if err != nil { + return err + } + + os.Stderr.WriteString(fmt.Sprintf("meta: %v\n", indexes)) return nil } From 00050c1046c35b15fee73b293f68d8c6a3124a08 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 17:51:32 +0100 Subject: [PATCH 028/335] update --- pkg/vectorindex/hnsw/model.go | 87 ++++++++++------ pkg/vectorindex/hnsw/sync.go | 181 ++++++++++++++++++++++++++++++++++ 2 files changed, 236 insertions(+), 32 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index b3a114509bbbf..12669b38f56c7 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -47,6 +47,8 @@ type HnswModel struct { // for cdc update Dirty bool + View bool + Len uint } // New HnswModel struct @@ -85,11 +87,13 @@ func (idx *HnswModel) Destroy() error { idx.Index = nil } - if idx.Saved && len(idx.Path) > 0 { + if (idx.Saved || idx.View) && len(idx.Path) > 0 { // remove the file - err := os.Remove(idx.Path) - if err != nil { - return err + if _, err := os.Stat(idx.Path); err == nil || os.IsExist(err) { + err := os.Remove(idx.Path) + if err != nil { + return err + } } } return nil @@ -205,11 +209,13 @@ func (idx *HnswModel) Full() (bool, error) { // add vector to the index func (idx *HnswModel) Add(key int64, vec []float32) error { + idx.Dirty = true return idx.Index.Add(uint64(key), vec) } // remove key func (idx *HnswModel) Remove(key int64) error { + idx.Dirty = true return idx.Index.Remove(uint64(key)) } @@ -264,45 +270,61 @@ func (idx *HnswModel) loadChunk(proc *process.Process, stream_chan chan executor // 5. check the checksum to verify the correctness of the file func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64, view bool) error { - stream_chan := make(chan executor.Result, 2) - error_chan := make(chan error) + if idx.Index != nil { + return nil - // create tempfile for writing - fp, err := os.CreateTemp("", "hnswindx") - if err != nil { - return err } - defer os.Remove(fp.Name()) - err = fallocate.Fallocate(fp, 0, idx.FileSize) - if err != nil { - return err - } + stream_chan := make(chan executor.Result, 2) + error_chan := make(chan error) - // run streaming sql - sql := fmt.Sprintf("SELECT chunk_id, data from `%s`.`%s` WHERE index_id = '%s'", tblcfg.DbName, tblcfg.IndexTable, idx.Id) - go func() { - _, err := runSql_streaming(proc, sql, stream_chan, error_chan) + if len(idx.Path) == 0 { + // create tempfile for writing + fp, err := os.CreateTemp("", "hnswindx") if err != nil { - error_chan <- err - return + return err } - }() - // incremental load from database - sql_closed := false - for !sql_closed { - sql_closed, err = idx.loadChunk(proc, stream_chan, error_chan, fp) + // load index to memory + defer func() { + if !view { + // if view == false, remove the file + os.Remove(fp.Name()) + } + }() + + err = fallocate.Fallocate(fp, 0, idx.FileSize) if err != nil { + fp.Close() return err } - } - // load index to memory - fp.Close() + // run streaming sql + sql := fmt.Sprintf("SELECT chunk_id, data from `%s`.`%s` WHERE index_id = '%s'", tblcfg.DbName, tblcfg.IndexTable, idx.Id) + go func() { + _, err := runSql_streaming(proc, sql, stream_chan, error_chan) + if err != nil { + error_chan <- err + return + } + }() + + // incremental load from database + sql_closed := false + for !sql_closed { + sql_closed, err = idx.loadChunk(proc, stream_chan, error_chan, fp) + if err != nil { + fp.Close() + return err + } + } + + idx.Path = fp.Name() + fp.Close() + } // check checksum - chksum, err := vectorindex.CheckSum(fp.Name()) + chksum, err := vectorindex.CheckSum(idx.Path) if err != nil { return err } @@ -321,9 +343,10 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC } if view { - err = usearchidx.View(fp.Name()) + err = usearchidx.View(idx.Path) + idx.View = true } else { - err = usearchidx.Load(fp.Name()) + err = usearchidx.Load(idx.Path) } if err != nil { return err diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 2e1d0b2ea136f..7c79825312985 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -161,5 +161,186 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc } os.Stderr.WriteString(fmt.Sprintf("meta: %v\n", indexes)) + + return startsync(proc, indexes, idxcfg, idxtblcfg, cdc) +} + +func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, cdc *vectorindex.VectorIndexCdc[float32]) error { + var err error + + defer func() { + for _, m := range indexes { + m.Destroy() + } + }() + + maxcap := uint(0) + + if len(indexes) == 0 { + // create a new model and do insert + + } else { + // try to find index cap + cdclen := len(cdc.Data) + midx := make([]int, cdclen) + // reset idx to -1 + for i := range midx { + midx[i] = -1 + } + + // find corresponding indexes + for i, m := range indexes { + err = m.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) + if err != nil { + return err + } + + capacity, err := m.Index.Capacity() + if err != nil { + return err + } + m.MaxCapacity = capacity + mlen, err := m.Index.Len() + if err != nil { + return err + } + m.Len = mlen + + if maxcap < capacity { + maxcap = capacity + } + + for j, row := range cdc.Data { + switch row.Type { + case vectorindex.CDC_UPSERT, vectorindex.CDC_DELETE: + if midx[j] == -1 { + found, err := m.Contains(row.PKey) + if err != nil { + return err + } + if found { + midx[j] = i + } + } + } + } + + m.Unload() + } + + current := (*HnswModel)(nil) + last := indexes[len(indexes)-1] + // last model not load yet so check the last.Len instead of Full() + if last.Len >= last.MaxCapacity { + // model is already full, create a new model for insert + newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) + if err != nil { + return err + } + indexes = append(indexes, newmodel) + last = newmodel + + } else { + // load last + last.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) + + } + + for i, row := range cdc.Data { + + switch row.Type { + case vectorindex.CDC_UPSERT: + if midx[i] == -1 { + // cannot find key from existing model. simple insert + last, err = getLastModel(proc, idxcfg, tblcfg, indexes, last, maxcap) + if err != nil { + return err + } + // insert + err = last.Add(row.PKey, row.Vec) + if err != nil { + return err + } + + break + + } + current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) + if err != nil { + return err + } + + // update + _ = current + + case vectorindex.CDC_DELETE: + if midx[i] == -1 { + // cannot find key from existing models. ignore it + continue + } + + current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) + if err != nil { + return err + } + + // delete + err = current.Remove(row.PKey) + if err != nil { + return err + } + + case vectorindex.CDC_INSERT: + last, err = getLastModel(proc, idxcfg, tblcfg, indexes, last, maxcap) + if err != nil { + return err + } + + // insert + err = last.Add(row.PKey, row.Vec) + if err != nil { + return err + } + } + + } + + // save to files + + // save to database + } + return nil } + +func getCurrentModel(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, indexes []*HnswModel, current *HnswModel, idx int) (*HnswModel, error) { + m := indexes[idx] + if current != m { + if current != nil { + current.Unload() + } + m.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) + current = m + } + return current, nil +} + +func getLastModel(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, indexes []*HnswModel, last *HnswModel, maxcap uint) (*HnswModel, error) { + + full, err := last.Full() + if err != nil { + return nil, err + } + + if full { + // model is already full, create a new model for insert + newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) + if err != nil { + return nil, err + } + indexes = append(indexes, newmodel) + last = newmodel + + } + return last, nil +} From 81a964e5e17d56eddd3cbb3f9017cc025d7a2b41 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 14 May 2025 18:19:03 +0100 Subject: [PATCH 029/335] update --- pkg/vectorindex/hnsw/sync.go | 208 ++++++++++++++++++----------------- 1 file changed, 107 insertions(+), 101 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 7c79825312985..413de41d93801 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -176,140 +176,146 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I maxcap := uint(0) - if len(indexes) == 0 { - // create a new model and do insert + // try to find index cap + cdclen := len(cdc.Data) + midx := make([]int, cdclen) + // reset idx to -1 + for i := range midx { + midx[i] = -1 + } - } else { - // try to find index cap - cdclen := len(cdc.Data) - midx := make([]int, cdclen) - // reset idx to -1 - for i := range midx { - midx[i] = -1 + // find corresponding indexes + for i, m := range indexes { + err = m.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) + if err != nil { + return err } - // find corresponding indexes - for i, m := range indexes { - err = m.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) - if err != nil { - return err - } - - capacity, err := m.Index.Capacity() - if err != nil { - return err - } - m.MaxCapacity = capacity - mlen, err := m.Index.Len() - if err != nil { - return err - } - m.Len = mlen - - if maxcap < capacity { - maxcap = capacity - } - - for j, row := range cdc.Data { - switch row.Type { - case vectorindex.CDC_UPSERT, vectorindex.CDC_DELETE: - if midx[j] == -1 { - found, err := m.Contains(row.PKey) - if err != nil { - return err - } - if found { - midx[j] = i - } - } - } - } - - m.Unload() + capacity, err := m.Index.Capacity() + if err != nil { + return err } - - current := (*HnswModel)(nil) - last := indexes[len(indexes)-1] - // last model not load yet so check the last.Len instead of Full() - if last.Len >= last.MaxCapacity { - // model is already full, create a new model for insert - newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) - if err != nil { - return err - } - indexes = append(indexes, newmodel) - last = newmodel - - } else { - // load last - last.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) - + m.MaxCapacity = capacity + mlen, err := m.Index.Len() + if err != nil { + return err } + m.Len = mlen - for i, row := range cdc.Data { + if maxcap < capacity { + maxcap = capacity + } + for j, row := range cdc.Data { switch row.Type { - case vectorindex.CDC_UPSERT: - if midx[i] == -1 { - // cannot find key from existing model. simple insert - last, err = getLastModel(proc, idxcfg, tblcfg, indexes, last, maxcap) + case vectorindex.CDC_UPSERT, vectorindex.CDC_DELETE: + if midx[j] == -1 { + found, err := m.Contains(row.PKey) if err != nil { return err } - // insert - err = last.Add(row.PKey, row.Vec) - if err != nil { - return err + if found { + midx[j] = i } - - break - - } - current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) - if err != nil { - return err } + } + } - // update - _ = current + m.Unload() + } - case vectorindex.CDC_DELETE: - if midx[i] == -1 { - // cannot find key from existing models. ignore it - continue - } + current := (*HnswModel)(nil) + last := (*HnswModel)(nil) + if len(indexes) == 0 { + // create a new model and do insert + newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) + if err != nil { + return err + } + indexes = append(indexes, newmodel) + last = newmodel + } else { + last = indexes[len(indexes)-1] + } + // last model not load yet so check the last.Len instead of Full() + if last.Len >= last.MaxCapacity { + // model is already full, create a new model for insert + newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) + if err != nil { + return err + } + indexes = append(indexes, newmodel) + last = newmodel - current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) - if err != nil { - return err - } + } else { + // load last + last.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) - // delete - err = current.Remove(row.PKey) - if err != nil { - return err - } + } + + for i, row := range cdc.Data { - case vectorindex.CDC_INSERT: + switch row.Type { + case vectorindex.CDC_UPSERT: + if midx[i] == -1 { + // cannot find key from existing model. simple insert last, err = getLastModel(proc, idxcfg, tblcfg, indexes, last, maxcap) if err != nil { return err } - // insert err = last.Add(row.PKey, row.Vec) if err != nil { return err } + + break + + } + current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) + if err != nil { + return err } - } + // update + _ = current + + case vectorindex.CDC_DELETE: + if midx[i] == -1 { + // cannot find key from existing models. ignore it + continue + } + + current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) + if err != nil { + return err + } + + // delete + err = current.Remove(row.PKey) + if err != nil { + return err + } + + case vectorindex.CDC_INSERT: + last, err = getLastModel(proc, idxcfg, tblcfg, indexes, last, maxcap) + if err != nil { + return err + } - // save to files + // insert + err = last.Add(row.PKey, row.Vec) + if err != nil { + return err + } + } - // save to database } + // save to files + + // save to database + return nil } From a7c6fc635626534a26677740249916ec05974b6f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 10:53:27 +0100 Subject: [PATCH 030/335] update --- pkg/vectorindex/hnsw/model.go | 67 +++++++++++++++++----- pkg/vectorindex/hnsw/sync.go | 104 ++++++++++++++++++++++------------ 2 files changed, 121 insertions(+), 50 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 12669b38f56c7..ac469ed005126 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -38,7 +38,6 @@ type HnswModel struct { FileSize int64 // info required for build - Saved bool MaxCapacity uint // from metadata. info required for search @@ -87,7 +86,7 @@ func (idx *HnswModel) Destroy() error { idx.Index = nil } - if (idx.Saved || idx.View) && len(idx.Path) > 0 { + if len(idx.Path) > 0 { // remove the file if _, err := os.Stat(idx.Path); err == nil || os.IsExist(err) { err := os.Remove(idx.Path) @@ -101,10 +100,26 @@ func (idx *HnswModel) Destroy() error { // Save the index to file func (idx *HnswModel) SaveToFile() error { - if idx.Saved { + + if !idx.Dirty { + // nothing change. ignore return nil } + // delete old file + oldpath := idx.Path + if len(oldpath) > 0 { + // remove the file + if _, err := os.Stat(oldpath); err == nil || os.IsExist(err) { + err := os.Remove(oldpath) + if err != nil { + return err + } + } + } + idx.Path = "" + + // save to file f, err := os.CreateTemp("", "hnsw") if err != nil { return err @@ -122,8 +137,6 @@ func (idx *HnswModel) SaveToFile() error { return err } idx.Index = nil - - idx.Saved = true idx.Path = f.Name() return nil } @@ -137,6 +150,11 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) return nil, err } + if len(idx.Path) == 0 { + // file path is empty string. No file is written + return []string{}, nil + } + fi, err := os.Stat(idx.Path) if err != nil { return nil, err @@ -191,6 +209,10 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) // is the index empty func (idx *HnswModel) Empty() (bool, error) { + if idx.Index == nil { + return false, moerr.NewInternalErrorNoCtx("usearch index is nil") + } + sz, err := idx.Index.Len() if err != nil { return false, err @@ -200,6 +222,9 @@ func (idx *HnswModel) Empty() (bool, error) { // check the index is full, i.e. 10K vectors func (idx *HnswModel) Full() (bool, error) { + if idx.Index == nil { + return false, moerr.NewInternalErrorNoCtx("usearch index is nil") + } sz, err := idx.Index.Len() if err != nil { return false, err @@ -209,18 +234,27 @@ func (idx *HnswModel) Full() (bool, error) { // add vector to the index func (idx *HnswModel) Add(key int64, vec []float32) error { + if idx.Index == nil { + return moerr.NewInternalErrorNoCtx("usearch index is nil") + } idx.Dirty = true return idx.Index.Add(uint64(key), vec) } // remove key func (idx *HnswModel) Remove(key int64) error { + if idx.Index == nil { + return moerr.NewInternalErrorNoCtx("usearch index is nil") + } idx.Dirty = true return idx.Index.Remove(uint64(key)) } // contains key func (idx *HnswModel) Contains(key int64) (found bool, err error) { + if idx.Index == nil { + return false, moerr.NewInternalErrorNoCtx("usearch index is nil") + } return idx.Index.Contains(uint64(key)) } @@ -271,6 +305,7 @@ func (idx *HnswModel) loadChunk(proc *process.Process, stream_chan chan executor func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64, view bool) error { if idx.Index != nil { + // index already loaded. ignore return nil } @@ -359,20 +394,24 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC // unload func (idx *HnswModel) Unload() error { - if idx.Index != nil { - err := idx.Index.Destroy() - if err != nil { - return err - } - // reset variable - idx.Index = nil - idx.Saved = false - idx.Dirty = false + if idx.Index == nil { + return moerr.NewInternalErrorNoCtx("usearch index is nil") } + + err := idx.Index.Destroy() + if err != nil { + return err + } + // reset variable + idx.Index = nil + idx.Dirty = false return nil } // Call usearch.Search func (idx *HnswModel) Search(query []float32, limit uint) (keys []usearch.Key, distances []float32, err error) { + if idx.Index == nil { + return nil, nil, moerr.NewInternalErrorNoCtx("usearch index is nil") + } return idx.Index.Search(query, limit) } diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 413de41d93801..c8f84b912f277 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -19,6 +19,7 @@ import ( "fmt" "os" "strconv" + "time" "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" @@ -162,14 +163,28 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc os.Stderr.WriteString(fmt.Sprintf("meta: %v\n", indexes)) - return startsync(proc, indexes, idxcfg, idxtblcfg, cdc) + // assume CDC run in single thread + // model id for CDC is cdc:1:0:timestamp + uid := fmt.Sprintf("%s:%d:%d", "cdc", 1, 0) + ts := time.Now().Unix() + sync := &HnswSync{indexes: indexes, idxcfg: idxcfg, tblcfg: idxtblcfg, cdc: cdc, uid: uid, ts: ts} + return sync.run(proc) } -func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, cdc *vectorindex.VectorIndexCdc[float32]) error { +type HnswSync struct { + indexes []*HnswModel + idxcfg vectorindex.IndexConfig + tblcfg vectorindex.IndexTableConfig + cdc *vectorindex.VectorIndexCdc[float32] + uid string + ts int64 +} + +func (s *HnswSync) run(proc *process.Process) error { var err error defer func() { - for _, m := range indexes { + for _, m := range s.indexes { m.Destroy() } }() @@ -177,7 +192,7 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I maxcap := uint(0) // try to find index cap - cdclen := len(cdc.Data) + cdclen := len(s.cdc.Data) midx := make([]int, cdclen) // reset idx to -1 for i := range midx { @@ -185,8 +200,8 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I } // find corresponding indexes - for i, m := range indexes { - err = m.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) + for i, m := range s.indexes { + err = m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, true) if err != nil { return err } @@ -206,7 +221,7 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I maxcap = capacity } - for j, row := range cdc.Data { + for j, row := range s.cdc.Data { switch row.Type { case vectorindex.CDC_UPSERT, vectorindex.CDC_DELETE: if midx[j] == -1 { @@ -226,40 +241,42 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I current := (*HnswModel)(nil) last := (*HnswModel)(nil) - if len(indexes) == 0 { + if len(s.indexes) == 0 { // create a new model and do insert - newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) + id := s.getModelId() + newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) if err != nil { return err } - indexes = append(indexes, newmodel) + s.indexes = append(s.indexes, newmodel) last = newmodel } else { - last = indexes[len(indexes)-1] - } - // last model not load yet so check the last.Len instead of Full() - if last.Len >= last.MaxCapacity { - // model is already full, create a new model for insert - newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) - if err != nil { - return err - } - indexes = append(indexes, newmodel) - last = newmodel + last = s.indexes[len(s.indexes)-1] + // last model not load yet so check the last.Len instead of Full() + if last.Len >= last.MaxCapacity { + id := s.getModelId() + // model is already full, create a new model for insert + newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) + if err != nil { + return err + } + s.indexes = append(s.indexes, newmodel) + last = newmodel - } else { - // load last - last.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) + } else { + // load last + last.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, true) + } } - for i, row := range cdc.Data { + for i, row := range s.cdc.Data { switch row.Type { case vectorindex.CDC_UPSERT: if midx[i] == -1 { // cannot find key from existing model. simple insert - last, err = getLastModel(proc, idxcfg, tblcfg, indexes, last, maxcap) + last, err = s.getLastModel(proc, last, maxcap) if err != nil { return err } @@ -272,13 +289,21 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I break } - current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) + current, err := s.getCurrentModel(proc, current, midx[i]) if err != nil { return err } // update - _ = current + err = current.Remove(row.PKey) + if err != nil { + return err + } + + err = current.Add(row.PKey, row.Vec) + if err != nil { + return err + } case vectorindex.CDC_DELETE: if midx[i] == -1 { @@ -286,7 +311,7 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I continue } - current, err := getCurrentModel(proc, idxcfg, tblcfg, indexes, current, midx[i]) + current, err := s.getCurrentModel(proc, current, midx[i]) if err != nil { return err } @@ -298,7 +323,7 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I } case vectorindex.CDC_INSERT: - last, err = getLastModel(proc, idxcfg, tblcfg, indexes, last, maxcap) + last, err = s.getLastModel(proc, last, maxcap) if err != nil { return err } @@ -319,19 +344,25 @@ func startsync(proc *process.Process, indexes []*HnswModel, idxcfg vectorindex.I return nil } -func getCurrentModel(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, indexes []*HnswModel, current *HnswModel, idx int) (*HnswModel, error) { - m := indexes[idx] +func (s *HnswSync) getModelId() string { + id := fmt.Sprintf("%s:%d", s.uid, s.ts) + s.ts++ + return id +} + +func (s *HnswSync) getCurrentModel(proc *process.Process, current *HnswModel, idx int) (*HnswModel, error) { + m := s.indexes[idx] if current != m { if current != nil { current.Unload() } - m.LoadIndex(proc, idxcfg, tblcfg, tblcfg.ThreadsBuild, true) + m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, true) current = m } return current, nil } -func getLastModel(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, indexes []*HnswModel, last *HnswModel, maxcap uint) (*HnswModel, error) { +func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap uint) (*HnswModel, error) { full, err := last.Full() if err != nil { @@ -339,12 +370,13 @@ func getLastModel(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg } if full { + id := s.getModelId() // model is already full, create a new model for insert - newmodel, err := NewHnswModelForBuild("", idxcfg, int(tblcfg.ThreadsBuild), maxcap) + newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) if err != nil { return nil, err } - indexes = append(indexes, newmodel) + s.indexes = append(s.indexes, newmodel) last = newmodel } From f6c64b14e3b2ab50c13ce9b963cbe963c8a84a08 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 11:21:22 +0100 Subject: [PATCH 031/335] update --- pkg/vectorindex/hnsw/model.go | 7 +++-- pkg/vectorindex/hnsw/sync.go | 54 +++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index ac469ed005126..7fc3478bd507f 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -45,9 +45,10 @@ type HnswModel struct { Checksum string // for cdc update - Dirty bool - View bool - Len uint + Dirty bool + View bool + Len uint + InsertMeta bool } // New HnswModel struct diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index c8f84b912f277..090fd815a2704 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -19,6 +19,7 @@ import ( "fmt" "os" "strconv" + "strings" "time" "github.com/matrixorigin/matrixone/pkg/catalog" @@ -248,6 +249,7 @@ func (s *HnswSync) run(proc *process.Process) error { if err != nil { return err } + newmodel.InsertMeta = true s.indexes = append(s.indexes, newmodel) last = newmodel } else { @@ -260,6 +262,7 @@ func (s *HnswSync) run(proc *process.Process) error { if err != nil { return err } + newmodel.InsertMeta = true s.indexes = append(s.indexes, newmodel) last = newmodel @@ -376,9 +379,60 @@ func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap u if err != nil { return nil, err } + newmodel.InsertMeta = true s.indexes = append(s.indexes, newmodel) last = newmodel } return last, nil } + +// generate SQL to update the secondary index tables +// 1. sync the metadata table +// 2. sync the index file to index table +func (s *HnswSync) ToInsertSql(ts int64) ([]string, error) { + + if len(s.indexes) == 0 { + return []string{}, nil + } + + sqls := make([]string, 0, len(s.indexes)+1) + + metas := make([]string, 0, len(s.indexes)) + for _, idx := range s.indexes { + // check Dirty. Only update when Dirty is true + if !idx.Dirty { + continue + } + + // delete sql + + // insert sql + indexsqls, err := idx.ToSql(s.tblcfg) + if err != nil { + return nil, err + } + + sqls = append(sqls, indexsqls...) + + //os.Stderr.WriteString(fmt.Sprintf("Sql: %s\n", sql)) + chksum, err := vectorindex.CheckSum(idx.Path) + if err != nil { + return nil, err + } + + finfo, err := os.Stat(idx.Path) + if err != nil { + return nil, err + } + fs := finfo.Size() + + // check idx.InsertMeta. If true, Insert else Update + metas = append(metas, fmt.Sprintf("('%s', '%s', %d, %d)", idx.Id, chksum, ts, fs)) + } + + metasql := fmt.Sprintf("INSERT INTO `%s`.`%s` VALUES %s", s.tblcfg.DbName, s.tblcfg.MetadataTable, strings.Join(metas, ", ")) + + sqls = append(sqls, metasql) + return sqls, nil +} From 1bb32a00a13ef1810353b062f463d21e491c82cc Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 12:20:48 +0100 Subject: [PATCH 032/335] add txn --- pkg/vectorindex/hnsw/model.go | 17 +++++++++++++++++ pkg/vectorindex/hnsw/sync.go | 16 ++++++++++++++-- pkg/vectorindex/sqlexec/sqlexec.go | 27 +++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 7fc3478bd507f..4c3d6e532b636 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -22,6 +22,7 @@ import ( "strings" "github.com/detailyang/go-fallocate" + "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/util/executor" @@ -208,6 +209,22 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) return sqls, nil } +func (idx *HnswModel) ToDeleteSql(cfg vectorindex.IndexTableConfig) ([]string, error) { + if idx.InsertMeta { + // this index is newly created and no DELETE sql required + return []string{}, nil + } + + sqls := make([]string, 0, 2) + + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE %s = '%s'", cfg.DbName, cfg.IndexTable, catalog.Hnsw_TblCol_Storage_Index_Id, idx.Id) + sqls = append(sqls, sql) + sql = fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE %s = '%s'", cfg.DbName, cfg.MetadataTable, catalog.Hnsw_TblCol_Metadata_Index_Id, idx.Id) + sqls = append(sqls, sql) + + return sqls, nil +} + // is the index empty func (idx *HnswModel) Empty() (bool, error) { if idx.Index == nil { diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 090fd815a2704..c5e7ee55e4de5 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -343,6 +343,12 @@ func (s *HnswSync) run(proc *process.Process) error { // save to files // save to database + sqls, err := s.ToSql(s.ts) + if err != nil { + return err + } + + _ = sqls return nil } @@ -390,7 +396,7 @@ func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap u // generate SQL to update the secondary index tables // 1. sync the metadata table // 2. sync the index file to index table -func (s *HnswSync) ToInsertSql(ts int64) ([]string, error) { +func (s *HnswSync) ToSql(ts int64) ([]string, error) { if len(s.indexes) == 0 { return []string{}, nil @@ -406,6 +412,13 @@ func (s *HnswSync) ToInsertSql(ts int64) ([]string, error) { } // delete sql + deletesqls, err := idx.ToDeleteSql(s.tblcfg) + if err != nil { + return nil, err + } + if len(deletesqls) > 0 { + sqls = append(sqls, deletesqls...) + } // insert sql indexsqls, err := idx.ToSql(s.tblcfg) @@ -427,7 +440,6 @@ func (s *HnswSync) ToInsertSql(ts int64) ([]string, error) { } fs := finfo.Size() - // check idx.InsertMeta. If true, Insert else Update metas = append(metas, fmt.Sprintf("('%s', '%s', %d, %d)", idx.Id, chksum, ts, fs)) } diff --git a/pkg/vectorindex/sqlexec/sqlexec.go b/pkg/vectorindex/sqlexec/sqlexec.go index b54b0e7648df5..0681973b13596 100644 --- a/pkg/vectorindex/sqlexec/sqlexec.go +++ b/pkg/vectorindex/sqlexec/sqlexec.go @@ -74,3 +74,30 @@ func RunStreamingSql(proc *process.Process, sql string, stream_chan chan executo WithStreaming(stream_chan, error_chan) return exec.Exec(topContext, sql, opts) } + +// run SQL in batch mode. Result batches will stored in memory and return once all result batches received. +func RunTxn(proc *process.Process, execFunc func(executor.TxnExecutor) error) error { + v, ok := moruntime.ServiceRuntime(proc.GetService()).GetGlobalVariables(moruntime.InternalSQLExecutor) + if !ok { + panic("missing lock service") + } + + //------------------------------------------------------- + topContext := proc.GetTopContext() + accountId, err := defines.GetAccountId(proc.Ctx) + if err != nil { + return err + } + //------------------------------------------------------- + + exec := v.(executor.SQLExecutor) + opts := executor.Options{}. + // All runSql and runSqlWithResult is a part of input sql, can not incr statement. + // All these sub-sql's need to be rolled back and retried en masse when they conflict in pessimistic mode + WithDisableIncrStatement(). + WithTxn(proc.GetTxnOperator()). + WithDatabase(proc.GetSessionInfo().Database). + WithTimeZone(proc.GetSessionInfo().TimeZone). + WithAccountID(accountId) + return exec.ExecTxn(topContext, execFunc, opts) +} From b435ee40baa77507abddbcd359067cd91b46ef0e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 12:52:21 +0100 Subject: [PATCH 033/335] runTxn --- pkg/vectorindex/hnsw/sync.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index c5e7ee55e4de5..9a6b10e8f8d1f 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -24,8 +24,10 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vectorindex/metric" + "github.com/matrixorigin/matrixone/pkg/vectorindex/sqlexec" "github.com/matrixorigin/matrixone/pkg/vm/process" ) @@ -33,6 +35,8 @@ const ( catalogsql = "select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s') and algo='hnsw';" ) +var runTxn = sqlexec.RunTxn + func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { sql := fmt.Sprintf(catalogsql, tbl, db) @@ -340,15 +344,26 @@ func (s *HnswSync) run(proc *process.Process) error { } - // save to files - - // save to database + // save to files and then save to database sqls, err := s.ToSql(s.ts) if err != nil { return err } - _ = sqls + opts := executor.Options{} + err = runTxn(proc, func(exec executor.TxnExecutor) error { + for _, sql := range sqls { + res, err := exec.Exec(sql, opts.StatementOption()) + if err != nil { + return err + } + res.Close() + } + return nil + }) + if err != nil { + return err + } return nil } From 827a42d678c5eeef6ffbc612c4abcc24d8c87e0d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 13:10:23 +0100 Subject: [PATCH 034/335] destroy --- pkg/vectorindex/hnsw/sync.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 9a6b10e8f8d1f..47e1bcd00db65 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -185,14 +185,17 @@ type HnswSync struct { ts int64 } +func (s *HnswSync) destroy() { + for _, m := range s.indexes { + m.Destroy() + } + s.indexes = nil +} + func (s *HnswSync) run(proc *process.Process) error { var err error - defer func() { - for _, m := range s.indexes { - m.Destroy() - } - }() + defer s.destroy() maxcap := uint(0) @@ -350,8 +353,12 @@ func (s *HnswSync) run(proc *process.Process) error { return err } + return s.runSqls(proc, sqls) +} + +func (s *HnswSync) runSqls(proc *process.Process, sqls []string) error { opts := executor.Options{} - err = runTxn(proc, func(exec executor.TxnExecutor) error { + err := runTxn(proc, func(exec executor.TxnExecutor) error { for _, sql := range sqls { res, err := exec.Exec(sql, opts.StatementOption()) if err != nil { From 6109470fac78f2daf3e2b7d74c92ae6c3afeee44 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 13:16:46 +0100 Subject: [PATCH 035/335] update --- pkg/vectorindex/hnsw/sync.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 47e1bcd00db65..dda6e6e81b253 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -353,6 +353,10 @@ func (s *HnswSync) run(proc *process.Process) error { return err } + if len(sqls) == 0 { + return nil + } + return s.runSqls(proc, sqls) } From 7f190b92c2f9b8a2b09275cb290c2f388c9ee53e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 14:32:55 +0100 Subject: [PATCH 036/335] bug fix save to file --- pkg/vectorindex/hnsw/model.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 4c3d6e532b636..4c0a713e44aca 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -103,6 +103,11 @@ func (idx *HnswModel) Destroy() error { // Save the index to file func (idx *HnswModel) SaveToFile() error { + if idx.Index == nil { + // index is nil. ignore + return nil + } + if !idx.Dirty { // nothing change. ignore return nil @@ -139,6 +144,7 @@ func (idx *HnswModel) SaveToFile() error { return err } idx.Index = nil + idx.Dirty = false idx.Path = f.Name() return nil } From 62aa87e59c6f5a4395a7d681b6f9739578d64239 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 14:44:41 +0100 Subject: [PATCH 037/335] bug fix with init index capacity --- pkg/vectorindex/hnsw/sync.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index dda6e6e81b253..efc8fdf05e188 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -197,7 +197,7 @@ func (s *HnswSync) run(proc *process.Process) error { defer s.destroy() - maxcap := uint(0) + maxcap := uint(s.tblcfg.IndexCapacity) // try to find index cap cdclen := len(s.cdc.Data) @@ -361,6 +361,9 @@ func (s *HnswSync) run(proc *process.Process) error { } func (s *HnswSync) runSqls(proc *process.Process, sqls []string) error { + for _, s := range sqls { + os.Stderr.WriteString(fmt.Sprintf("sql : %s\n", s)) + } opts := executor.Options{} err := runTxn(proc, func(exec executor.TxnExecutor) error { for _, sql := range sqls { From e2278a32c4d8f8b047633ba3c89c2ffe6daaf9ab Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 15:43:47 +0100 Subject: [PATCH 038/335] bug fix dirty --- pkg/vectorindex/hnsw/model.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 4c0a713e44aca..30094ccb82fcd 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -144,7 +144,6 @@ func (idx *HnswModel) SaveToFile() error { return err } idx.Index = nil - idx.Dirty = false idx.Path = f.Name() return nil } @@ -339,7 +338,7 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC if len(idx.Path) == 0 { // create tempfile for writing - fp, err := os.CreateTemp("", "hnswindx") + fp, err := os.CreateTemp("", "hnsw") if err != nil { return err } @@ -422,13 +421,21 @@ func (idx *HnswModel) Unload() error { return moerr.NewInternalErrorNoCtx("usearch index is nil") } - err := idx.Index.Destroy() + // SaveToFile will check Dirty bit. If dirty is true, save to file before unload + err := idx.SaveToFile() if err != nil { return err } - // reset variable - idx.Index = nil - idx.Dirty = false + + // SaveToFile will release the usearch index when dirty is true so always check nil index + if idx.Index != nil { + err := idx.Index.Destroy() + if err != nil { + return err + } + // reset variable + idx.Index = nil + } return nil } From 6e682b99f026d0d0457b5cb98876c0f44a537b7b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 15 May 2025 15:58:37 +0100 Subject: [PATCH 039/335] update Len and Capacity --- pkg/vectorindex/hnsw/model.go | 12 ++++++++++++ pkg/vectorindex/hnsw/sync.go | 15 ++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 30094ccb82fcd..a672777e20c69 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -261,6 +261,7 @@ func (idx *HnswModel) Add(key int64, vec []float32) error { return moerr.NewInternalErrorNoCtx("usearch index is nil") } idx.Dirty = true + idx.Len++ return idx.Index.Add(uint64(key), vec) } @@ -270,6 +271,7 @@ func (idx *HnswModel) Remove(key int64) error { return moerr.NewInternalErrorNoCtx("usearch index is nil") } idx.Dirty = true + idx.Len-- return idx.Index.Remove(uint64(key)) } @@ -410,7 +412,17 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC return err } + // always get the number of item and capacity when model loaded. idx.Index = usearchidx + idx.Len, err = idx.Index.Len() + if err != nil { + return err + } + + idx.MaxCapacity, err = idx.Index.Capacity() + if err != nil { + return err + } return nil } diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index efc8fdf05e188..172a67b6ebd61 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -214,19 +214,8 @@ func (s *HnswSync) run(proc *process.Process) error { return err } - capacity, err := m.Index.Capacity() - if err != nil { - return err - } - m.MaxCapacity = capacity - mlen, err := m.Index.Len() - if err != nil { - return err - } - m.Len = mlen - - if maxcap < capacity { - maxcap = capacity + if maxcap < m.MaxCapacity { + maxcap = m.MaxCapacity } for j, row := range s.cdc.Data { From ed49fd130ae0a569d64d8408687909803e1ccd15 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 16 May 2025 13:33:15 +0100 Subject: [PATCH 040/335] update --- pkg/vectorindex/hnsw/model.go | 10 +++++++++- pkg/vectorindex/hnsw/search.go | 2 +- pkg/vectorindex/hnsw/sync.go | 16 ++++++++++++---- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index a672777e20c69..eaf9c62a8abb5 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -174,6 +174,11 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) idx.FileSize = filesz + os.Stderr.WriteString(fmt.Sprintf("ToSQ: file %s size %d\n", idx.Path, idx.FileSize)) + if idx.FileSize == 0 { + return []string{}, nil + } + sqls := make([]string, 0, 5) sql := fmt.Sprintf("INSERT INTO `%s`.`%s` VALUES ", cfg.DbName, cfg.IndexTable) @@ -329,6 +334,7 @@ func (idx *HnswModel) loadChunk(proc *process.Process, stream_chan chan executor // 5. check the checksum to verify the correctness of the file func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64, view bool) error { + os.Stderr.WriteString(fmt.Sprintf("LoadIndex %s\n", idx.Id)) if idx.Index != nil { // index already loaded. ignore return nil @@ -403,7 +409,8 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC } if view { - err = usearchidx.View(idx.Path) + err = usearchidx.Load(idx.Path) + usearchidx.Reserve(uint(tblcfg.IndexCapacity)) idx.View = true } else { err = usearchidx.Load(idx.Path) @@ -429,6 +436,7 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC // unload func (idx *HnswModel) Unload() error { + os.Stderr.WriteString(fmt.Sprintf("Unload index %s\n", idx.Id)) if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } diff --git a/pkg/vectorindex/hnsw/search.go b/pkg/vectorindex/hnsw/search.go index 78e4d627052ad..8bf2f444b9b49 100644 --- a/pkg/vectorindex/hnsw/search.go +++ b/pkg/vectorindex/hnsw/search.go @@ -169,7 +169,7 @@ func (s *HnswSearch) Destroy() { // load metadata from database func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*HnswModel, error) { - sql := fmt.Sprintf("SELECT * FROM `%s`.`%s`", dbname, metatbl) + sql := fmt.Sprintf("SELECT * FROM `%s`.`%s` ORDER BY timestamp ASC", dbname, metatbl) res, err := runSql(proc, sql) if err != nil { return nil, err diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 172a67b6ebd61..6122dd3a3df2c 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -166,7 +166,9 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc return err } - os.Stderr.WriteString(fmt.Sprintf("meta: %v\n", indexes)) + for i, idxx := range indexes { + os.Stderr.WriteString(fmt.Sprintf("meta: %d id=%s\n", i, idxx.Id)) + } // assume CDC run in single thread // model id for CDC is cdc:1:0:timestamp @@ -227,6 +229,7 @@ func (s *HnswSync) run(proc *process.Process) error { return err } if found { + os.Stderr.WriteString(fmt.Sprintf("searching... found model %d row %d\n", i, j)) midx[j] = i } } @@ -252,6 +255,7 @@ func (s *HnswSync) run(proc *process.Process) error { last = s.indexes[len(s.indexes)-1] // last model not load yet so check the last.Len instead of Full() if last.Len >= last.MaxCapacity { + os.Stderr.WriteString(fmt.Sprintf("full len %d, cap %d\n", last.Len, last.MaxCapacity)) id := s.getModelId() // model is already full, create a new model for insert newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) @@ -263,6 +267,7 @@ func (s *HnswSync) run(proc *process.Process) error { last = newmodel } else { + os.Stderr.WriteString(fmt.Sprintf("load model with index %d\n", len(s.indexes)-1)) // load last last.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, true) @@ -307,6 +312,7 @@ func (s *HnswSync) run(proc *process.Process) error { case vectorindex.CDC_DELETE: if midx[i] == -1 { // cannot find key from existing models. ignore it + os.Stderr.WriteString("DELETE NOT FOUND\n") continue } @@ -408,6 +414,7 @@ func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap u last = newmodel } + os.Stderr.WriteString(fmt.Sprintf("getlast model full %v id = %s\n", full, last.Id)) return last, nil } @@ -461,8 +468,9 @@ func (s *HnswSync) ToSql(ts int64) ([]string, error) { metas = append(metas, fmt.Sprintf("('%s', '%s', %d, %d)", idx.Id, chksum, ts, fs)) } - metasql := fmt.Sprintf("INSERT INTO `%s`.`%s` VALUES %s", s.tblcfg.DbName, s.tblcfg.MetadataTable, strings.Join(metas, ", ")) - - sqls = append(sqls, metasql) + if len(metas) > 0 { + metasql := fmt.Sprintf("INSERT INTO `%s`.`%s` VALUES %s", s.tblcfg.DbName, s.tblcfg.MetadataTable, strings.Join(metas, ", ")) + sqls = append(sqls, metasql) + } return sqls, nil } From 1e5b6a846efa2469a8fd64e3ae48f53684f23dbb Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 16 May 2025 13:43:55 +0100 Subject: [PATCH 041/335] view --- pkg/vectorindex/hnsw/model.go | 2 +- pkg/vectorindex/hnsw/search.go | 2 +- pkg/vectorindex/hnsw/sync.go | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index eaf9c62a8abb5..2a934cb4fcf2e 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -410,10 +410,10 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC if view { err = usearchidx.Load(idx.Path) - usearchidx.Reserve(uint(tblcfg.IndexCapacity)) idx.View = true } else { err = usearchidx.Load(idx.Path) + usearchidx.Reserve(uint(tblcfg.IndexCapacity)) } if err != nil { return err diff --git a/pkg/vectorindex/hnsw/search.go b/pkg/vectorindex/hnsw/search.go index 8bf2f444b9b49..498823c713000 100644 --- a/pkg/vectorindex/hnsw/search.go +++ b/pkg/vectorindex/hnsw/search.go @@ -205,7 +205,7 @@ func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*Hnsw func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswModel) ([]*HnswModel, error) { for _, idx := range indexes { - err := idx.LoadIndex(proc, s.Idxcfg, s.Tblcfg, s.ThreadsSearch, false) + err := idx.LoadIndex(proc, s.Idxcfg, s.Tblcfg, s.ThreadsSearch, true) if err != nil { return nil, err } diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 6122dd3a3df2c..db6124127b090 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -211,7 +211,7 @@ func (s *HnswSync) run(proc *process.Process) error { // find corresponding indexes for i, m := range s.indexes { - err = m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, true) + err = m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) if err != nil { return err } @@ -269,7 +269,7 @@ func (s *HnswSync) run(proc *process.Process) error { } else { os.Stderr.WriteString(fmt.Sprintf("load model with index %d\n", len(s.indexes)-1)) // load last - last.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, true) + last.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) } } @@ -389,7 +389,7 @@ func (s *HnswSync) getCurrentModel(proc *process.Process, current *HnswModel, id if current != nil { current.Unload() } - m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, true) + m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) current = m } return current, nil From 36bc11f5df79c6faa4d365d686256b21cb624346 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 16 May 2025 15:34:12 +0100 Subject: [PATCH 042/335] bug fix view --- pkg/vectorindex/hnsw/model.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 2a934cb4fcf2e..3d794f9c92f77 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -353,8 +353,11 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC // load index to memory defer func() { - if !view { - // if view == false, remove the file + if view { + // if view == true, remove the file. right now view equals to read-only model when search. + // since model loads into memory anyway, we can safely remove the file after load. + // NOTE: when choose to load with usearch.View() mmap(), we cannot remove this file. + // for update, we need this file for Load() and unload(). os.Remove(fp.Name()) } }() From 3d70d9aa8db0df504a492098bb1042587c550d03 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 22 May 2025 12:17:35 +0100 Subject: [PATCH 043/335] add tests --- pkg/vectorindex/hnsw/model.go | 8 ++ pkg/vectorindex/hnsw/model_test.go | 116 +++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 pkg/vectorindex/hnsw/model_test.go diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 3d794f9c92f77..b59cea654aa76 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -138,6 +138,13 @@ func (idx *HnswModel) SaveToFile() error { return err } + // get new checksum + chksum, err := vectorindex.CheckSum(f.Name()) + if err != nil { + return err + } + idx.Checksum = chksum + // free memory err = idx.Index.Destroy() if err != nil { @@ -145,6 +152,7 @@ func (idx *HnswModel) SaveToFile() error { } idx.Index = nil idx.Path = f.Name() + return nil } diff --git a/pkg/vectorindex/hnsw/model_test.go b/pkg/vectorindex/hnsw/model_test.go new file mode 100644 index 0000000000000..5bc318af4af1d --- /dev/null +++ b/pkg/vectorindex/hnsw/model_test.go @@ -0,0 +1,116 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package hnsw + +import ( + "fmt" + "testing" + + "github.com/matrixorigin/matrixone/pkg/common/mpool" + "github.com/matrixorigin/matrixone/pkg/testutil" + "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/stretchr/testify/require" + + usearch "github.com/unum-cloud/usearch/golang" +) + +/* +// give metadata [index_id, checksum, timestamp] +func mock_runSql(proc *process.Process, sql string) (executor.Result, error) { + + return executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{makeMetaBatch(proc)}}, nil +} + +// give blob +func mock_runSql_streaming(proc *process.Process, sql string, ch chan executor.Result, err_chan chan error) (executor.Result, error) { + + defer close(ch) + res := executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{makeIndexBatch(proc)}} + ch <- res + return executor.Result{}, nil +} +*/ + +func doModelSearchTest(t *testing.T, idx *HnswModel, key uint64, v []float32) { + keys, distances, err := idx.Search(v, 4) + require.Nil(t, err) + require.Equal(t, len(keys), 4) + require.Equal(t, keys[0], key) + require.Equal(t, distances[0], float32(0)) + fmt.Printf("%v %v\n", keys, distances) + +} + +func TestModel(t *testing.T) { + var err error + fp32a := []float32{0, 1, 2} + v1000 := []float32{1000, 2000, 3000} + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + // stub runSql function + runSql = mock_runSql + runSql_streaming = mock_runSql_streaming + + models, err := LoadMetadata(proc, "db", "meta") + require.Nil(t, err) + + idxcfg := vectorindex.IndexConfig{Type: "hnsw", Usearch: usearch.DefaultConfig(3)} + idxcfg.Usearch.Metric = usearch.L2sq + tblcfg := vectorindex.IndexTableConfig{DbName: "db", SrcTable: "src", MetadataTable: "__secondary_meta", IndexTable: "__secondary_index"} + + require.Equal(t, len(models), 1) + idx := models[0] + defer idx.Destroy() + + err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) + require.Nil(t, err) + + doModelSearchTest(t, idx, 0, fp32a) + + require.Equal(t, idx.Dirty, false) + + err = idx.Unload() + require.Nil(t, err) + + err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) + require.Nil(t, err) + + doModelSearchTest(t, idx, 0, fp32a) + + var found bool + found, err = idx.Contains(0) + require.Nil(t, err) + require.Equal(t, found, true) + + found, err = idx.Contains(1000) + require.Nil(t, err) + require.Equal(t, found, false) + + err = idx.Add(1000, v1000) + require.Nil(t, err) + + require.Equal(t, idx.Dirty, true) + + err = idx.Unload() + require.Nil(t, err) + + err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) + require.Nil(t, err) + + doModelSearchTest(t, idx, 1000, v1000) + +} From 3967bb6613c2d8d2e37c8095f2a7ef510f032685 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 22 May 2025 12:59:29 +0100 Subject: [PATCH 044/335] update --- pkg/vectorindex/hnsw/model_test.go | 62 ++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/pkg/vectorindex/hnsw/model_test.go b/pkg/vectorindex/hnsw/model_test.go index 5bc318af4af1d..11b502dc8f8f6 100644 --- a/pkg/vectorindex/hnsw/model_test.go +++ b/pkg/vectorindex/hnsw/model_test.go @@ -100,17 +100,71 @@ func TestModel(t *testing.T) { require.Nil(t, err) require.Equal(t, found, false) - err = idx.Add(1000, v1000) + key := int64(1000) + v := v1000 + full := false + empty := false + + for i := 0; i < 10; i++ { + full, err = idx.Full() + require.Nil(t, err) + require.Equal(t, full, false) + + empty, err = idx.Empty() + require.Nil(t, err) + require.Equal(t, empty, false) + + err = idx.Add(int64(key), v) + require.Nil(t, err) + + require.Equal(t, idx.Dirty, true) + + err = idx.Unload() + require.Nil(t, err) + + err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) + require.Nil(t, err) + + doModelSearchTest(t, idx, uint64(key), v) + + key += 1 + v[0] += 1 + } + + // reset vector to [1000, 2000, 3000] + key = int64(1000) + v[0] = 1000 + + for i := 0; i < 10; i++ { + err = idx.Remove(key) + require.Nil(t, err) + key += 1 + } + + deletesqls, err := idx.ToDeleteSql(tblcfg) require.Nil(t, err) - require.Equal(t, idx.Dirty, true) + fmt.Printf("%v\n", deletesqls) - err = idx.Unload() + // ToSql will release the index so index is nil + sqls, err := idx.ToSql(tblcfg) require.Nil(t, err) + fmt.Printf("%v\n", sqls) + + // unload with nil index will output error + err = idx.Unload() + require.NotNil(t, err) + // load again err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) require.Nil(t, err) - doModelSearchTest(t, idx, 1000, v1000) + key = int64(1000) + for i := 0; i < 10; i++ { + found, err = idx.Contains(key) + require.Nil(t, err) + require.Equal(t, found, false) + key += 1 + } } From 6db0cb6030e92cc2aac3336f103e8cdd2ff7d819 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 22 May 2025 13:57:58 +0100 Subject: [PATCH 045/335] add tests --- pkg/vectorindex/hnsw/model_test.go | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pkg/vectorindex/hnsw/model_test.go b/pkg/vectorindex/hnsw/model_test.go index 11b502dc8f8f6..18f4afa8031a9 100644 --- a/pkg/vectorindex/hnsw/model_test.go +++ b/pkg/vectorindex/hnsw/model_test.go @@ -168,3 +168,39 @@ func TestModel(t *testing.T) { } } + +func TestModelNil(t *testing.T) { + + var err error + var tblcfg vectorindex.IndexTableConfig + + idx := HnswModel{} + err = idx.SaveToFile() + require.Nil(t, err) + + sqls, err := idx.ToSql(tblcfg) + require.Nil(t, err) + require.Equal(t, len(sqls), 0) + + _, err = idx.Empty() + require.NotNil(t, err) + + _, err = idx.Full() + require.NotNil(t, err) + + err = idx.Add(0, nil) + require.NotNil(t, err) + + err = idx.Remove(0) + require.NotNil(t, err) + + _, err = idx.Contains(0) + require.NotNil(t, err) + + err = idx.Unload() + require.NotNil(t, err) + + _, _, err = idx.Search(nil, 0) + require.NotNil(t, err) + +} From d123d51271535928cdcb69cc07bcebb1281debca Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 11:36:39 +0100 Subject: [PATCH 046/335] add sync test --- pkg/vectorindex/hnsw/search_test.go | 30 ++++++++++++++++ pkg/vectorindex/hnsw/sync.go | 3 +- pkg/vectorindex/hnsw/sync_test.go | 54 +++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 pkg/vectorindex/hnsw/sync_test.go diff --git a/pkg/vectorindex/hnsw/search_test.go b/pkg/vectorindex/hnsw/search_test.go index d580fdc18f96c..adabb57561b32 100644 --- a/pkg/vectorindex/hnsw/search_test.go +++ b/pkg/vectorindex/hnsw/search_test.go @@ -22,6 +22,7 @@ import ( fallocate "github.com/detailyang/go-fallocate" + "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/mpool" "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/container/types" @@ -51,6 +52,12 @@ func mock_runSql_streaming(proc *process.Process, sql string, ch chan executor.R return executor.Result{}, nil } +// give moindexes metadata [index_table_name, algo_table_type, algo_params, column_name] +func mock_runCatalogSql(proc *process.Process, sql string) (executor.Result, error) { + + return executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{makeMoIndexesBatch(proc)}}, nil +} + func TestHnsw(t *testing.T) { m := mpool.MustNewZero() proc := testutil.NewProcessWithMPool("", m) @@ -151,3 +158,26 @@ func TestFallocate(t *testing.T) { fallocate.Fallocate(f, 0, 10000) f.Close() } + +func makeMoIndexesBatch(proc *process.Process) *batch.Batch { + bat := batch.NewWithSize(4) + bat.Vecs[0] = vector.NewVec(types.New(types.T_varchar, 128, 0)) // index_table_name + bat.Vecs[1] = vector.NewVec(types.New(types.T_varchar, 128, 0)) // alog_table_type + bat.Vecs[2] = vector.NewVec(types.New(types.T_varchar, 128, 0)) // algo_params + bat.Vecs[3] = vector.NewVec(types.New(types.T_varchar, 128, 0)) // colname_name + + // metadata + vector.AppendBytes(bat.Vecs[0], []byte("__meta"), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[1], []byte(catalog.Hnsw_TblType_Metadata), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[2], []byte("{\"op_type\":\"vector_l2_ops\"}"), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[3], []byte("embed"), false, proc.Mp()) + + // storage + vector.AppendBytes(bat.Vecs[0], []byte("__storage"), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[1], []byte(catalog.Hnsw_TblType_Storage), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[2], []byte("{\"op_type\":\"vector_l2_ops\"}"), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[3], []byte("embed"), false, proc.Mp()) + + bat.SetRowCount(2) + return bat +} diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index db6124127b090..9d736341637eb 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -36,11 +36,12 @@ const ( ) var runTxn = sqlexec.RunTxn +var runCatalogSql = sqlexec.RunSql func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { sql := fmt.Sprintf(catalogsql, tbl, db) - res, err := runSql(proc, sql) + res, err := runCatalogSql(proc, sql) if err != nil { return err } diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go new file mode 100644 index 0000000000000..9386a2dee9964 --- /dev/null +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -0,0 +1,54 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package hnsw + +import ( + "testing" + + "github.com/matrixorigin/matrixone/pkg/common/mpool" + "github.com/matrixorigin/matrixone/pkg/testutil" + "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/stretchr/testify/require" +) + +/* +// give metadata [index_id, checksum, timestamp] +func mock_runSql(proc *process.Process, sql string) (executor.Result, error) { + return executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{makeMetaBatch(proc)}}, nil +} + +// give blob +func mock_runSql_streaming(proc *process.Process, sql string, ch chan executor.Result, err_chan chan error) (executor.Result, error) { + defer close(ch) + res := executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{makeIndexBatch(proc)}} + ch <- res + return executor.Result{}, nil +} +*/ + +func TestSync(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql + runSql_streaming = mock_runSql_streaming + runCatalogSql = mock_runCatalogSql + + cdc := vectorindex.VectorIndexCdc[float32]{} + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 35ca423bf4b1eb59fd25b7b9d06ab28ff5393a1f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 12:16:35 +0100 Subject: [PATCH 047/335] update tests --- pkg/vectorindex/hnsw/search_test.go | 6 ++++-- pkg/vectorindex/hnsw/sync.go | 5 ++--- pkg/vectorindex/hnsw/sync_test.go | 21 ++++++++++++++++++++- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/pkg/vectorindex/hnsw/search_test.go b/pkg/vectorindex/hnsw/search_test.go index adabb57561b32..035a0ee8cf3ff 100644 --- a/pkg/vectorindex/hnsw/search_test.go +++ b/pkg/vectorindex/hnsw/search_test.go @@ -160,6 +160,8 @@ func TestFallocate(t *testing.T) { } func makeMoIndexesBatch(proc *process.Process) *batch.Batch { + //param := "{\"op_type\": \"vector_l2_ops\", \"m\":\"128\",\"ef_construction\":\"256\", \"ef_search\":\"100\"}" + param := "{\"op_type\": \"vector_l2_ops\"}" bat := batch.NewWithSize(4) bat.Vecs[0] = vector.NewVec(types.New(types.T_varchar, 128, 0)) // index_table_name bat.Vecs[1] = vector.NewVec(types.New(types.T_varchar, 128, 0)) // alog_table_type @@ -169,13 +171,13 @@ func makeMoIndexesBatch(proc *process.Process) *batch.Batch { // metadata vector.AppendBytes(bat.Vecs[0], []byte("__meta"), false, proc.Mp()) vector.AppendBytes(bat.Vecs[1], []byte(catalog.Hnsw_TblType_Metadata), false, proc.Mp()) - vector.AppendBytes(bat.Vecs[2], []byte("{\"op_type\":\"vector_l2_ops\"}"), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[2], []byte(param), false, proc.Mp()) vector.AppendBytes(bat.Vecs[3], []byte("embed"), false, proc.Mp()) // storage vector.AppendBytes(bat.Vecs[0], []byte("__storage"), false, proc.Mp()) vector.AppendBytes(bat.Vecs[1], []byte(catalog.Hnsw_TblType_Storage), false, proc.Mp()) - vector.AppendBytes(bat.Vecs[2], []byte("{\"op_type\":\"vector_l2_ops\"}"), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[2], []byte(param), false, proc.Mp()) vector.AppendBytes(bat.Vecs[3], []byte("embed"), false, proc.Mp()) bat.SetRowCount(2) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 9d736341637eb..efc3bcdf45e0c 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -94,7 +94,7 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc if i == 0 { paramstr := paramvec.UnsafeGetStringAt(i) cname := colvec.UnsafeGetStringAt(i) - os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, param, cname)) + os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, paramstr, cname)) idxtblcfg.KeyPart = cname if len(paramstr) > 0 { err := json.Unmarshal([]byte(paramstr), ¶m) @@ -176,6 +176,7 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc uid := fmt.Sprintf("%s:%d:%d", "cdc", 1, 0) ts := time.Now().Unix() sync := &HnswSync{indexes: indexes, idxcfg: idxcfg, tblcfg: idxtblcfg, cdc: cdc, uid: uid, ts: ts} + defer sync.destroy() return sync.run(proc) } @@ -198,8 +199,6 @@ func (s *HnswSync) destroy() { func (s *HnswSync) run(proc *process.Process) error { var err error - defer s.destroy() - maxcap := uint(s.tblcfg.IndexCapacity) // try to find index cap diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 9386a2dee9964..324b33b3696ab 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -19,7 +19,9 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/mpool" "github.com/matrixorigin/matrixone/pkg/testutil" + "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/matrixorigin/matrixone/pkg/vm/process" "github.com/stretchr/testify/require" ) @@ -38,6 +40,10 @@ func mock_runSql_streaming(proc *process.Process, sql string, ch chan executor.R } */ +func mock_runTxn(proc *process.Process, fn func(exec executor.TxnExecutor) error) error { + return nil +} + func TestSync(t *testing.T) { m := mpool.MustNewZero() @@ -46,8 +52,21 @@ func TestSync(t *testing.T) { runSql = mock_runSql runSql_streaming = mock_runSql_streaming runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 1000)} + + key := int64(1000) + v := []float32{0.1, 0.2, 0.3} - cdc := vectorindex.VectorIndexCdc[float32]{} + for i := 0; i < 1000; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_UPSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + for i := range len(v) { + v[i] += 0.01 + } + } err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) From dd2ecdb16fb0184fa03344b9f9315e58027bfa2a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 12:47:38 +0100 Subject: [PATCH 048/335] delete all tests --- pkg/vectorindex/hnsw/model.go | 16 +++++++++++++++- pkg/vectorindex/hnsw/sync.go | 4 ++++ pkg/vectorindex/hnsw/sync_test.go | 27 ++++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index b59cea654aa76..15aaee0eed260 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -126,6 +126,20 @@ func (idx *HnswModel) SaveToFile() error { } idx.Path = "" + empty, err := idx.Empty() + if err != nil { + return err + } + if empty { + // index empty, no file need to save + err = idx.Index.Destroy() + if err != nil { + return err + } + idx.Index = nil + return nil + } + // save to file f, err := os.CreateTemp("", "hnsw") if err != nil { @@ -182,7 +196,7 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) idx.FileSize = filesz - os.Stderr.WriteString(fmt.Sprintf("ToSQ: file %s size %d\n", idx.Path, idx.FileSize)) + os.Stderr.WriteString(fmt.Sprintf("ToSQL: file %s size %d\n", idx.Path, idx.FileSize)) if idx.FileSize == 0 { return []string{}, nil } diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index efc3bcdf45e0c..b485693b01b24 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -451,6 +451,10 @@ func (s *HnswSync) ToSql(ts int64) ([]string, error) { return nil, err } + if len(indexsqls) == 0 { + continue + } + sqls = append(sqls, indexsqls...) //os.Stderr.WriteString(fmt.Sprintf("Sql: %s\n", sql)) diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 324b33b3696ab..f1d9301e37af5 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -44,7 +44,7 @@ func mock_runTxn(proc *process.Process, fn func(exec executor.TxnExecutor) error return nil } -func TestSync(t *testing.T) { +func TestSyncUpsert(t *testing.T) { m := mpool.MustNewZero() proc := testutil.NewProcessWithMPool("", m) @@ -71,3 +71,28 @@ func TestSync(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// should delete all items +func TestSyncDelete(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql + runSql_streaming = mock_runSql_streaming + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 1000)} + + key := int64(0) + + for i := 0; i < 100; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_DELETE, PKey: key} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 5356fd95c04333fc78d07b5e559ed605d405b4db Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 13:38:35 +0100 Subject: [PATCH 049/335] update tests --- pkg/vectorindex/hnsw/sync.go | 1 + pkg/vectorindex/hnsw/sync_test.go | 60 +++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index b485693b01b24..1bdbcca0236f6 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -451,6 +451,7 @@ func (s *HnswSync) ToSql(ts int64) ([]string, error) { return nil, err } + // skip when sqls is empty which means the index is empty if len(indexsqls) == 0 { continue } diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index f1d9301e37af5..08163ce038fce 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -96,3 +96,63 @@ func TestSyncDelete(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// should delete items and add the same keys back to the model +func TestSyncDeleteAndInsert(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql + runSql_streaming = mock_runSql_streaming + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 200)} + + key := int64(0) + + for i := 0; i < 100; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_DELETE, PKey: key} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + key = 0 + v := []float32{0.1, 0.2, 0.3} + for i := 0; i < 100; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_INSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + + } + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} + +// should delete items and add the same keys back to the model +func TestSyncUpdate(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql + runSql_streaming = mock_runSql_streaming + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 100)} + + key := int64(0) + v := []float32{0.1, 0.2, 0.3} + + for i := 0; i < 100; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_UPSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 69dffe17d19b4ac5cfcf0e8100aa905a0874e9a0 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 13:42:52 +0100 Subject: [PATCH 050/335] add test --- pkg/vectorindex/hnsw/model.go | 1 + pkg/vectorindex/hnsw/sync_test.go | 34 +++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 15aaee0eed260..ac58823b8f241 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -267,6 +267,7 @@ func (idx *HnswModel) Empty() (bool, error) { if err != nil { return false, err } + fmt.Printf("Check empty Size = %d\n", sz) return (sz == 0), nil } diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 08163ce038fce..75f509ff0fccb 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -156,3 +156,37 @@ func TestSyncUpdate(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// should delete items and add the same keys back to the model +func TestSyncDeleteAndUpsert(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql + runSql_streaming = mock_runSql_streaming + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 200)} + + key := int64(0) + + for i := 0; i < 100; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_DELETE, PKey: key} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + key = 0 + v := []float32{0.1, 0.2, 0.3} + for i := 0; i < 100; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_UPSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + + } + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 48a3f59ebe346b5a0f2abc7757de3a58d8eebc70 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 13:43:41 +0100 Subject: [PATCH 051/335] add test --- pkg/vectorindex/hnsw/model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index ac58823b8f241..16c2ed805f077 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -267,7 +267,7 @@ func (idx *HnswModel) Empty() (bool, error) { if err != nil { return false, err } - fmt.Printf("Check empty Size = %d\n", sz) + os.Stderr.WriteString(fmt.Sprintf("Check empty Size = %d\n", sz)) return (sz == 0), nil } From 4a0db76dc63008fbdcd568f01ce91cb6e446a1bc Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 14:22:59 +0100 Subject: [PATCH 052/335] update --- pkg/vectorindex/hnsw/model.go | 11 ++++++++++- pkg/vectorindex/hnsw/sync.go | 2 +- pkg/vectorindex/hnsw/sync_test.go | 29 +++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 16c2ed805f077..a5d3576cb3329 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -267,7 +267,7 @@ func (idx *HnswModel) Empty() (bool, error) { if err != nil { return false, err } - os.Stderr.WriteString(fmt.Sprintf("Check empty Size = %d\n", sz)) + os.Stderr.WriteString(fmt.Sprintf("Check empty Size = %d, cap = %d\n", sz, idx.MaxCapacity)) return (sz == 0), nil } @@ -440,6 +440,7 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC } else { err = usearchidx.Load(idx.Path) usearchidx.Reserve(uint(tblcfg.IndexCapacity)) + fmt.Printf("LoadIndex Reserver %d\n", tblcfg.IndexCapacity) } if err != nil { return err @@ -457,6 +458,14 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC return err } + if !view { + // sometimes Reserve() will give bigger capacity than requested + if idx.MaxCapacity > uint(tblcfg.IndexCapacity) { + idx.MaxCapacity = uint(tblcfg.IndexCapacity) + } + } + fmt.Printf("LoadIndex Check cap %d\n", idx.MaxCapacity) + return nil } diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 1bdbcca0236f6..722a26eddf3c2 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -414,7 +414,7 @@ func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap u last = newmodel } - os.Stderr.WriteString(fmt.Sprintf("getlast model full %v id = %s\n", full, last.Id)) + //os.Stderr.WriteString(fmt.Sprintf("getlast model full %v id = %s\n", full, last.Id)) return last, nil } diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 75f509ff0fccb..4948ca6e85ca3 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -190,3 +190,32 @@ func TestSyncDeleteAndUpsert(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// total 1000100 items and should have two models +func TestSyncAddOneModel(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql + runSql_streaming = mock_runSql_streaming + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 1000000)} + + key := int64(1000) + v := []float32{0.1, 0.2, 0.3} + + for i := 0; i < 1000000; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_UPSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + for i := range len(v) { + v[i] += 0.001 + } + } + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 03b7f3bcc7f20c5e006611ef18b7f40b32ad7603 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 15:49:39 +0100 Subject: [PATCH 053/335] remove InsertMeta --- pkg/vectorindex/hnsw/model.go | 12 +++--------- pkg/vectorindex/hnsw/sync.go | 3 --- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index a5d3576cb3329..c1b5b442e56a2 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -46,10 +46,9 @@ type HnswModel struct { Checksum string // for cdc update - Dirty bool - View bool - Len uint - InsertMeta bool + Dirty bool + View bool + Len uint } // New HnswModel struct @@ -242,11 +241,6 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) } func (idx *HnswModel) ToDeleteSql(cfg vectorindex.IndexTableConfig) ([]string, error) { - if idx.InsertMeta { - // this index is newly created and no DELETE sql required - return []string{}, nil - } - sqls := make([]string, 0, 2) sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE %s = '%s'", cfg.DbName, cfg.IndexTable, catalog.Hnsw_TblCol_Storage_Index_Id, idx.Id) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 722a26eddf3c2..b1ba04acb8d1e 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -248,7 +248,6 @@ func (s *HnswSync) run(proc *process.Process) error { if err != nil { return err } - newmodel.InsertMeta = true s.indexes = append(s.indexes, newmodel) last = newmodel } else { @@ -262,7 +261,6 @@ func (s *HnswSync) run(proc *process.Process) error { if err != nil { return err } - newmodel.InsertMeta = true s.indexes = append(s.indexes, newmodel) last = newmodel @@ -409,7 +407,6 @@ func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap u if err != nil { return nil, err } - newmodel.InsertMeta = true s.indexes = append(s.indexes, newmodel) last = newmodel From fc450b1a1d758794f4e9da7bd73d9b0c7d74cfda Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 15:58:16 +0100 Subject: [PATCH 054/335] start with empty --- pkg/vectorindex/hnsw/sync_test.go | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 4948ca6e85ca3..4b9a78fbc6825 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -18,6 +18,7 @@ import ( "testing" "github.com/matrixorigin/matrixone/pkg/common/mpool" + "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/testutil" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" @@ -40,10 +41,44 @@ func mock_runSql_streaming(proc *process.Process, sql string, ch chan executor.R } */ +// give metadata [index_id, checksum, timestamp] +func mock_runSql_empty(proc *process.Process, sql string) (executor.Result, error) { + + return executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{}}, nil +} + func mock_runTxn(proc *process.Process, fn func(exec executor.TxnExecutor) error) error { return nil } +func TestSyncUpsertWithEmpty(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql_empty + runSql_streaming = mock_runSql_streaming + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 1000)} + + key := int64(1000) + v := []float32{0.1, 0.2, 0.3} + + for i := 0; i < 1000; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_UPSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + for i := range len(v) { + v[i] += 0.01 + } + } + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} + func TestSyncUpsert(t *testing.T) { m := mpool.MustNewZero() From 862cd46a375971d2de55beef788fff53c3b0d704 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 16:27:41 +0100 Subject: [PATCH 055/335] delete 2 files --- pkg/vectorindex/hnsw/search_test.go | 74 +++++++++++++++++++++++++++++ pkg/vectorindex/hnsw/sync_test.go | 25 ++++++++++ 2 files changed, 99 insertions(+) diff --git a/pkg/vectorindex/hnsw/search_test.go b/pkg/vectorindex/hnsw/search_test.go index 035a0ee8cf3ff..a0b6728038929 100644 --- a/pkg/vectorindex/hnsw/search_test.go +++ b/pkg/vectorindex/hnsw/search_test.go @@ -15,7 +15,9 @@ package hnsw import ( + "fmt" "os" + "strings" "sync" "testing" "time" @@ -52,6 +54,27 @@ func mock_runSql_streaming(proc *process.Process, sql string, ch chan executor.R return executor.Result{}, nil } +// give metadata [index_id, checksum, timestamp] +func mock_runSql_2files(proc *process.Process, sql string) (executor.Result, error) { + + return executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{makeMetaBatch2Files(proc)}}, nil +} + +// give blob +func mock_runSql_streaming_2files(proc *process.Process, sql string, ch chan executor.Result, err_chan chan error) (executor.Result, error) { + + fmt.Printf("SQL %s\n", sql) + idx := 0 + if strings.Contains(sql, "abc-1") { + idx = 1 + } + + defer close(ch) + res := executor.Result{Mp: proc.Mp(), Batches: []*batch.Batch{makeIndexBatch2Files(proc, idx)}} + ch <- res + return executor.Result{}, nil +} + // give moindexes metadata [index_table_name, algo_table_type, algo_params, column_name] func mock_runCatalogSql(proc *process.Process, sql string) (executor.Result, error) { @@ -183,3 +206,54 @@ func makeMoIndexesBatch(proc *process.Process) *batch.Batch { bat.SetRowCount(2) return bat } + +func makeMetaBatch2Files(proc *process.Process) *batch.Batch { + indexfiles := []string{"resources/hnsw0.bin", "resources/hnsw1.bin"} + ids := []string{"abc-0", "abc-1"} + + bat := batch.NewWithSize(4) + bat.Vecs[0] = vector.NewVec(types.New(types.T_varchar, 128, 0)) // index_id + bat.Vecs[1] = vector.NewVec(types.New(types.T_varchar, 65536, 0)) // checksum + bat.Vecs[2] = vector.NewVec(types.New(types.T_int64, 8, 0)) // timestamp + bat.Vecs[3] = vector.NewVec(types.New(types.T_int64, 8, 0)) // timestamp + + for i, indexfile := range indexfiles { + + vector.AppendBytes(bat.Vecs[0], []byte(ids[i]), false, proc.Mp()) + chksum, err := vectorindex.CheckSum(indexfile) + if err != nil { + panic("file checksum error") + } + + finfo, err := os.Stat(indexfile) + if err != nil { + panic("file not found") + } + + vector.AppendBytes(bat.Vecs[1], []byte(chksum), false, proc.Mp()) + vector.AppendFixed[int64](bat.Vecs[2], int64(0), false, proc.Mp()) + vector.AppendFixed[int64](bat.Vecs[3], finfo.Size(), false, proc.Mp()) + + } + + bat.SetRowCount(len(indexfiles)) + return bat +} + +func makeIndexBatch2Files(proc *process.Process, id int) *batch.Batch { + indexfiles := []string{"resources/hnsw0.bin", "resources/hnsw1.bin"} + indexfile := indexfiles[id] + + bat := batch.NewWithSize(2) + bat.Vecs[0] = vector.NewVec(types.New(types.T_int64, 8, 0)) // chunk_id + bat.Vecs[1] = vector.NewVec(types.New(types.T_blob, 65536, 0)) // data + + dat, err := os.ReadFile(indexfile) + if err != nil { + panic("read file error") + } + vector.AppendFixed[int64](bat.Vecs[0], int64(0), false, proc.Mp()) + vector.AppendBytes(bat.Vecs[1], dat, false, proc.Mp()) + bat.SetRowCount(1) + return bat +} diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 4b9a78fbc6825..5ebefb7be998d 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -254,3 +254,28 @@ func TestSyncAddOneModel(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// should delete all items +func TestSyncDelete2Files(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql_2files + runSql_streaming = mock_runSql_streaming_2files + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 1000)} + + key := int64(0) + + for i := 0; i < 200; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_DELETE, PKey: key} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From fd6eee9ce5d41344eb4972fdbae6cc3670cc7a37 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 16:32:06 +0100 Subject: [PATCH 056/335] shuffle test --- pkg/vectorindex/hnsw/sync_test.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 5ebefb7be998d..16db4b3559761 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -16,6 +16,7 @@ package hnsw import ( "testing" + "time" "github.com/matrixorigin/matrixone/pkg/common/mpool" "github.com/matrixorigin/matrixone/pkg/container/batch" @@ -24,6 +25,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vm/process" "github.com/stretchr/testify/require" + "golang.org/x/exp/rand" ) /* @@ -279,3 +281,31 @@ func TestSyncDelete2Files(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// should delete all items +func TestSyncDeleteShuffle2Files(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql_2files + runSql_streaming = mock_runSql_streaming_2files + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 1000)} + + key := int64(0) + + for i := 0; i < 200; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_DELETE, PKey: key} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + rand.Seed(uint64(time.Now().UnixNano())) + rand.Shuffle(len(cdc.Data), func(i, j int) { cdc.Data[i], cdc.Data[j] = cdc.Data[j], cdc.Data[i] }) + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 8c51bbe6a531612302b10ff8c784fe135d621d90 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 23 May 2025 16:42:29 +0100 Subject: [PATCH 057/335] update shuffle --- pkg/vectorindex/hnsw/sync_test.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 16db4b3559761..f50197d397301 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -309,3 +309,32 @@ func TestSyncDeleteShuffle2Files(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// should delete items and add the same keys back to the model +func TestSyncUpdateShuffle2Files(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql_2files + runSql_streaming = mock_runSql_streaming_2files + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 100)} + + key := int64(0) + v := []float32{0.1, 0.2, 0.3} + + for i := 0; i < 200; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_UPSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + rand.Seed(uint64(time.Now().UnixNano())) + rand.Shuffle(len(cdc.Data), func(i, j int) { cdc.Data[i], cdc.Data[j] = cdc.Data[j], cdc.Data[i] }) + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 3e5f1648db5e9816f93887e80a509cbb40141072 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 27 May 2025 11:27:08 +0100 Subject: [PATCH 058/335] create/drop index --- pkg/sql/compile/ddl.go | 7 ++++++ pkg/sql/compile/ddl_index_algo.go | 13 +++++++++++ pkg/sql/compile/util.go | 37 +++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 48e6c029267a9..df05b70c79e6c 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -1997,6 +1997,11 @@ func (s *Scope) DropIndex(c *Compile) error { if err != nil { return err } + + // TODO: ERIC delete cdc task for vector, fulltext index + // cdc task name = __mo_cdc_{qry.Table}_{qry.IndexName} + // pitr name = __mo_table_pitr_{qry.Table} + return nil } @@ -2540,6 +2545,8 @@ func (s *Scope) DropTable(c *Compile) error { } } + // TODO: ERIC delete cdc task of the vector and fulltext index here + if isTemp { if err := dbSource.Delete(c.proc.Ctx, engine.GetTempTableName(dbName, tblName)); err != nil { return err diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index a3083132e4a7b..617b0c5877c03 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -516,5 +516,18 @@ func (s *Scope) handleVectorHnswIndex(c *Compile, dbSource engine.Database, inde } } + // TODO: ERIC 4. register CDC update + sqls, err = genCdcHnswIndex(c.proc, indexDefs, qryDatabase, originalTableDef) + if err != nil { + return err + } + + for _, sql := range sqls { + err = c.runSql(sql) + if err != nil { + return err + } + } + return nil } diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index 79f6e62fcd1c0..337a03e358f23 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -19,6 +19,7 @@ import ( "context" "encoding/json" "fmt" + "os" "strings" "time" @@ -560,3 +561,39 @@ func genBuildHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDe return []string{sql}, nil } + +// TODO: ERIC 4. register CDC update +// DROP PITR IF EXISTS `__mo_table_pitr_${srctable}` +// CREATE PITR __mo_table_pitr_${srctable} for table ${db} ${srctable) range 2 'h'; +// CREATE CDC __mo_cdc_${srctable}_${indexInfo.IndexName} 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' '${db}.${srctable}' {'Level'='table'}' +// DROP CDC TASK __mo_cdc_${srctable}_${indexInfo.IndexName} +func genCdcHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDef, qryDatabase string, originalTableDef *plan.TableDef) ([]string, error) { + + idxdef_meta, ok := indexDefs[catalog.Hnsw_TblType_Metadata] + if !ok { + return nil, moerr.NewInternalErrorNoCtx("hnsw_meta index definition not found") + } + srctbl := originalTableDef.Name + pitrname := fmt.Sprintf("__mo_index_pitr_%s_%s", qryDatabase, srctbl) + cdcname := fmt.Sprintf("__mo_index_cdc_%s_%s_%s", qryDatabase, srctbl, idxdef_meta.IndexName) + + var sql string + + sqls := make([]string, 0, 3) + + // CREATE PITR + sql = fmt.Sprintf("DROP PITR IF EXISTS `%s`;", pitrname) + sqls = append(sqls, sql) + + sql = fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitrname, qryDatabase, srctbl) + sqls = append(sqls, sql) + + // CREATE CDC TASK + dummyurl := "mysql://root:111@127.0.0.1:6001" + sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'hnswsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) + sqls = append(sqls, sql) + + os.Stderr.WriteString(fmt.Sprintf("%v\n", sqls)) + + return []string{}, nil +} From 2f00775e95d9eae583132f05e413792fc0bb2557 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 27 May 2025 11:35:31 +0100 Subject: [PATCH 059/335] remove new cdc sql syntax --- pkg/sql/parsers/dialect/mysql/mysql_sql.go | 17111 ++++++++-------- pkg/sql/parsers/dialect/mysql/mysql_sql.y | 34 - .../parsers/dialect/mysql/mysql_sql_test.go | 12 - pkg/sql/parsers/tree/delete.go | 7 +- pkg/sql/parsers/tree/insert.go | 7 +- pkg/sql/parsers/tree/replace.go | 7 +- pkg/sql/plan/build_delete.go | 1 - pkg/sql/plan/build_insert.go | 2 - pkg/sql/plan/types.go | 1 - 9 files changed, 8503 insertions(+), 8679 deletions(-) diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index 466aa85a0bab1..12a7d0d290fcd 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -1334,7 +1334,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line mysql_sql.y:13009 +//line mysql_sql.y:12975 //line yacctab:1 var yyExca = [...]int{ @@ -1342,13 +1342,13 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 142, - 11, 815, - 22, 815, - -2, 808, + 11, 812, + 22, 812, + -2, 805, -1, 167, - 246, 1249, - 248, 1143, - -2, 1195, + 246, 1246, + 248, 1140, + -2, 1192, -1, 194, 44, 635, 248, 635, @@ -1357,1031 +1357,1168 @@ var yyExca = [...]int{ 479, 635, -2, 670, -1, 234, - 664, 2027, + 664, 2024, -2, 534, -1, 548, - 664, 2151, + 664, 2148, -2, 412, -1, 606, - 664, 2210, + 664, 2207, -2, 410, -1, 607, - 664, 2211, + 664, 2208, -2, 411, -1, 608, - 664, 2212, + 664, 2209, -2, 413, - -1, 750, + -1, 748, 327, 181, 451, 181, 452, 181, - -2, 1924, - -1, 817, - 86, 1709, - -2, 2087, - -1, 818, - 86, 1728, - -2, 2058, - -1, 822, - 86, 1729, - -2, 2086, + -2, 1921, + -1, 815, + 86, 1706, + -2, 2084, + -1, 816, + 86, 1725, + -2, 2055, + -1, 820, + 86, 1726, + -2, 2083, + -1, 854, + 86, 1633, + -2, 2287, + -1, 855, + 86, 1634, + -2, 2286, -1, 856, - 86, 1636, - -2, 2290, + 86, 1635, + -2, 2276, -1, 857, - 86, 1637, - -2, 2289, + 86, 2248, + -2, 2269, -1, 858, - 86, 1638, - -2, 2279, + 86, 2249, + -2, 2270, -1, 859, - 86, 2251, - -2, 2272, + 86, 2250, + -2, 2278, -1, 860, - 86, 2252, - -2, 2273, + 86, 2251, + -2, 2258, -1, 861, - 86, 2253, - -2, 2281, + 86, 2252, + -2, 2267, -1, 862, - 86, 2254, - -2, 2261, + 86, 2253, + -2, 2279, -1, 863, - 86, 2255, - -2, 2270, + 86, 2254, + -2, 2280, -1, 864, - 86, 2256, - -2, 2282, + 86, 2255, + -2, 2285, -1, 865, - 86, 2257, - -2, 2283, + 86, 2256, + -2, 2290, -1, 866, - 86, 2258, - -2, 2288, + 86, 2257, + -2, 2291, -1, 867, - 86, 2259, - -2, 2293, + 86, 1702, + -2, 2122, -1, 868, - 86, 2260, - -2, 2294, + 86, 1703, + -2, 1905, -1, 869, - 86, 1705, - -2, 2125, + 86, 1704, + -2, 2131, -1, 870, - 86, 1706, - -2, 1908, - -1, 871, - 86, 1707, - -2, 2134, + 86, 1705, + -2, 1914, -1, 872, 86, 1708, - -2, 1917, + -2, 1922, -1, 874, - 86, 1711, - -2, 1925, + 86, 1710, + -2, 2155, -1, 876, 86, 1713, - -2, 2158, + -2, 1943, -1, 878, + 86, 1715, + -2, 2167, + -1, 879, 86, 1716, - -2, 1946, + -2, 2166, -1, 880, - 86, 1718, - -2, 2170, + 86, 1717, + -2, 1990, -1, 881, - 86, 1719, - -2, 2169, - -1, 882, - 86, 1720, - -2, 1993, - -1, 883, + 86, 1718, + -2, 2079, + -1, 884, 86, 1721, - -2, 2082, + -2, 2178, -1, 886, - 86, 1724, + 86, 1723, -2, 2181, + -1, 887, + 86, 1724, + -2, 2183, -1, 888, - 86, 1726, - -2, 2184, - -1, 889, 86, 1727, - -2, 2186, + -2, 2191, + -1, 889, + 86, 1728, + -2, 2064, -1, 890, - 86, 1730, - -2, 2194, + 86, 1729, + -2, 2109, -1, 891, - 86, 1731, - -2, 2067, + 86, 1730, + -2, 2074, -1, 892, - 86, 1732, - -2, 2112, - -1, 893, - 86, 1733, - -2, 2077, - -1, 894, - 86, 1734, - -2, 2102, + 86, 1731, + -2, 2099, + -1, 903, + 86, 1611, + -2, 2281, + -1, 904, + 86, 1612, + -2, 2282, -1, 905, - 86, 1614, - -2, 2284, - -1, 906, - 86, 1615, - -2, 2285, - -1, 907, - 86, 1616, - -2, 2286, - -1, 1013, + 86, 1613, + -2, 2283, + -1, 1010, 474, 670, 475, 670, -2, 636, - -1, 1064, - 128, 1908, - 139, 1908, - 159, 1908, - -2, 1882, - -1, 1187, - 22, 842, - -2, 791, - -1, 1297, - 11, 815, - 22, 815, - -2, 1491, - -1, 1381, - 22, 842, - -2, 791, - -1, 1743, - 86, 1781, - -2, 2084, - -1, 1744, - 86, 1782, - -2, 2085, - -1, 1919, - 87, 1015, - -2, 1021, - -1, 2377, - 111, 1187, - 155, 1187, - 195, 1187, - 198, 1187, - 288, 1187, - -2, 1180, - -1, 2543, - 11, 815, - 22, 815, - -2, 956, - -1, 2577, - 87, 1868, - 160, 1868, - -2, 2069, - -1, 2578, - 87, 1868, - 160, 1868, - -2, 2068, - -1, 2579, + -1, 1061, + 128, 1905, + 139, 1905, + 159, 1905, + -2, 1879, + -1, 1182, + 22, 839, + -2, 788, + -1, 1292, + 11, 812, + 22, 812, + -2, 1488, + -1, 1376, + 22, 839, + -2, 788, + -1, 1735, + 86, 1778, + -2, 2081, + -1, 1736, + 86, 1779, + -2, 2082, + -1, 1911, + 87, 1012, + -2, 1018, + -1, 2366, + 111, 1184, + 155, 1184, + 195, 1184, + 198, 1184, + 288, 1184, + -2, 1177, + -1, 2531, + 11, 812, + 22, 812, + -2, 953, + -1, 2565, + 87, 1865, + 160, 1865, + -2, 2066, + -1, 2566, + 87, 1865, + 160, 1865, + -2, 2065, + -1, 2567, + 87, 1841, + 160, 1841, + -2, 2052, + -1, 2568, + 87, 1842, + 160, 1842, + -2, 2057, + -1, 2569, + 87, 1843, + 160, 1843, + -2, 1978, + -1, 2570, 87, 1844, 160, 1844, - -2, 2055, - -1, 2580, + -2, 1971, + -1, 2571, 87, 1845, 160, 1845, - -2, 2060, - -1, 2581, + -2, 1895, + -1, 2572, 87, 1846, 160, 1846, - -2, 1981, - -1, 2582, + -2, 2054, + -1, 2573, 87, 1847, 160, 1847, - -2, 1974, - -1, 2583, + -2, 1976, + -1, 2574, 87, 1848, 160, 1848, - -2, 1898, - -1, 2584, + -2, 1970, + -1, 2575, 87, 1849, 160, 1849, - -2, 2057, + -2, 1958, + -1, 2576, + 87, 1865, + 160, 1865, + -2, 1959, + -1, 2577, + 87, 1865, + 160, 1865, + -2, 1960, + -1, 2579, + 87, 1854, + 160, 1854, + -2, 2099, + -1, 2580, + 87, 1831, + 160, 1831, + -2, 2084, + -1, 2581, + 87, 1863, + 160, 1863, + -2, 2055, + -1, 2582, + 87, 1863, + 160, 1863, + -2, 2083, + -1, 2583, + 87, 1863, + 160, 1863, + -2, 1923, + -1, 2584, + 87, 1861, + 160, 1861, + -2, 2074, -1, 2585, - 87, 1850, - 160, 1850, - -2, 1979, + 87, 1858, + 160, 1858, + -2, 1948, -1, 2586, - 87, 1851, - 160, 1851, - -2, 1973, + 86, 1812, + 87, 1812, + 160, 1812, + 409, 1812, + 410, 1812, + 411, 1812, + -2, 1894, -1, 2587, - 87, 1852, - 160, 1852, - -2, 1961, + 86, 1813, + 87, 1813, + 160, 1813, + 409, 1813, + 410, 1813, + 411, 1813, + -2, 1896, -1, 2588, - 87, 1868, - 160, 1868, - -2, 1962, + 86, 1814, + 87, 1814, + 160, 1814, + 409, 1814, + 410, 1814, + 411, 1814, + -2, 2127, -1, 2589, - 87, 1868, - 160, 1868, - -2, 1963, - -1, 2591, - 87, 1857, - 160, 1857, - -2, 2102, - -1, 2592, - 87, 1834, - 160, 1834, - -2, 2087, - -1, 2593, - 87, 1866, - 160, 1866, - -2, 2058, - -1, 2594, - 87, 1866, - 160, 1866, - -2, 2086, - -1, 2595, - 87, 1866, - 160, 1866, - -2, 1926, - -1, 2596, - 87, 1864, - 160, 1864, - -2, 2077, - -1, 2597, - 87, 1861, - 160, 1861, - -2, 1951, - -1, 2598, - 86, 1815, - 87, 1815, - 160, 1815, - 409, 1815, - 410, 1815, - 411, 1815, - -2, 1897, - -1, 2599, 86, 1816, 87, 1816, 160, 1816, 409, 1816, 410, 1816, 411, 1816, - -2, 1899, - -1, 2600, - 86, 1817, - 87, 1817, - 160, 1817, - 409, 1817, - 410, 1817, - 411, 1817, - -2, 2130, - -1, 2601, - 86, 1819, - 87, 1819, - 160, 1819, - 409, 1819, - 410, 1819, - 411, 1819, - -2, 2059, - -1, 2602, - 86, 1821, - 87, 1821, - 160, 1821, - 409, 1821, - 410, 1821, - 411, 1821, - -2, 2037, - -1, 2603, + -2, 2056, + -1, 2590, + 86, 1818, + 87, 1818, + 160, 1818, + 409, 1818, + 410, 1818, + 411, 1818, + -2, 2034, + -1, 2591, + 86, 1820, + 87, 1820, + 160, 1820, + 409, 1820, + 410, 1820, + 411, 1820, + -2, 1977, + -1, 2592, + 86, 1822, + 87, 1822, + 160, 1822, + 409, 1822, + 410, 1822, + 411, 1822, + -2, 1954, + -1, 2593, 86, 1823, 87, 1823, 160, 1823, 409, 1823, 410, 1823, 411, 1823, - -2, 1980, - -1, 2604, + -2, 1955, + -1, 2594, 86, 1825, 87, 1825, 160, 1825, 409, 1825, 410, 1825, 411, 1825, - -2, 1957, - -1, 2605, - 86, 1826, - 87, 1826, - 160, 1826, - 409, 1826, - 410, 1826, - 411, 1826, - -2, 1958, - -1, 2606, - 86, 1828, - 87, 1828, - 160, 1828, - 409, 1828, - 410, 1828, - 411, 1828, - -2, 1896, - -1, 2607, - 87, 1871, - 160, 1871, - 409, 1871, - 410, 1871, - 411, 1871, - -2, 1931, - -1, 2608, + -2, 1893, + -1, 2595, + 87, 1868, + 160, 1868, + 409, 1868, + 410, 1868, + 411, 1868, + -2, 1928, + -1, 2596, + 87, 1868, + 160, 1868, + 409, 1868, + 410, 1868, + 411, 1868, + -2, 1944, + -1, 2597, 87, 1871, 160, 1871, 409, 1871, 410, 1871, 411, 1871, - -2, 1947, - -1, 2609, - 87, 1874, - 160, 1874, - 409, 1874, - 410, 1874, - 411, 1874, - -2, 1927, - -1, 2610, - 87, 1874, - 160, 1874, - 409, 1874, - 410, 1874, - 411, 1874, - -2, 1996, - -1, 2611, + -2, 1924, + -1, 2598, 87, 1871, 160, 1871, 409, 1871, 410, 1871, 411, 1871, - -2, 2019, - -1, 2833, - 111, 1187, - 155, 1187, - 195, 1187, - 198, 1187, - 288, 1187, - -2, 1181, - -1, 2851, - 84, 733, - 160, 733, - -2, 1365, - -1, 3284, - 198, 1187, - 312, 1454, - -2, 1426, - -1, 3473, - 111, 1187, - 155, 1187, - 195, 1187, - 198, 1187, - -2, 1305, - -1, 3475, - 111, 1187, - 155, 1187, - 195, 1187, - 198, 1187, - -2, 1305, - -1, 3487, - 84, 733, - 160, 733, - -2, 1365, - -1, 3509, - 198, 1187, - 312, 1454, - -2, 1427, - -1, 3664, - 111, 1187, - 155, 1187, - 195, 1187, - 198, 1187, - -2, 1306, - -1, 3693, - 87, 1267, - 160, 1267, - -2, 1187, - -1, 3840, - 87, 1267, - 160, 1267, - -2, 1187, - -1, 4011, - 87, 1271, - 160, 1271, - -2, 1187, - -1, 4066, - 87, 1272, - 160, 1272, - -2, 1187, + -2, 1993, + -1, 2599, + 87, 1868, + 160, 1868, + 409, 1868, + 410, 1868, + 411, 1868, + -2, 2016, + -1, 2820, + 111, 1184, + 155, 1184, + 195, 1184, + 198, 1184, + 288, 1184, + -2, 1178, + -1, 2838, + 84, 732, + 160, 732, + -2, 1362, + -1, 3269, + 198, 1184, + 312, 1451, + -2, 1423, + -1, 3458, + 111, 1184, + 155, 1184, + 195, 1184, + 198, 1184, + -2, 1302, + -1, 3460, + 111, 1184, + 155, 1184, + 195, 1184, + 198, 1184, + -2, 1302, + -1, 3472, + 84, 732, + 160, 732, + -2, 1362, + -1, 3493, + 198, 1184, + 312, 1451, + -2, 1424, + -1, 3648, + 111, 1184, + 155, 1184, + 195, 1184, + 198, 1184, + -2, 1303, + -1, 3676, + 87, 1264, + 160, 1264, + -2, 1184, + -1, 3822, + 87, 1264, + 160, 1264, + -2, 1184, + -1, 3991, + 87, 1268, + 160, 1268, + -2, 1184, + -1, 4046, + 87, 1269, + 160, 1269, + -2, 1184, } const yyPrivate = 57344 -const yyLast = 56251 +const yyLast = 55687 var yyAct = [...]int{ - 784, 760, 4120, 786, 4088, 2883, 223, 4112, 1643, 2008, - 4015, 1723, 3494, 3594, 4021, 3304, 3907, 4022, 4014, 3840, - 3270, 769, 3931, 3966, 3887, 3381, 3721, 3523, 3817, 1487, - 762, 2877, 3786, 3878, 3839, 3382, 1333, 3908, 1188, 1783, - 3652, 1555, 3755, 814, 2880, 2795, 648, 3598, 3455, 1063, - 1493, 3808, 3888, 3890, 3589, 3460, 1770, 1953, 2428, 3510, - 3279, 2537, 1719, 666, 1462, 673, 673, 3673, 1181, 2854, - 3661, 673, 692, 701, 1726, 3226, 701, 3240, 3634, 3379, - 3202, 2996, 3476, 3666, 2997, 2119, 2995, 3447, 2103, 2972, - 3229, 758, 2906, 3299, 3478, 2106, 3281, 1176, 2142, 3424, - 3288, 2702, 713, 1788, 2218, 37, 208, 3065, 2174, 2573, - 2431, 3025, 3344, 3203, 2667, 2992, 2068, 1968, 3249, 1785, - 3205, 3287, 3209, 2821, 1644, 3204, 2388, 709, 2356, 2983, - 2332, 3200, 3173, 2834, 3113, 1548, 3207, 2331, 757, 752, - 2202, 3039, 141, 2644, 2575, 2182, 36, 1881, 2183, 1632, - 2626, 1636, 2175, 942, 2214, 2099, 2538, 1633, 1621, 2147, - 2213, 2072, 1452, 2069, 2521, 2805, 2810, 2516, 2888, 1628, - 984, 2429, 1998, 2908, 1057, 1418, 1458, 698, 2846, 2387, - 219, 8, 218, 7, 6, 1928, 2377, 2571, 1717, 2248, - 1784, 2215, 1595, 1527, 2172, 1124, 761, 1533, 2368, 648, - 1529, 2424, 665, 1777, 1564, 751, 1967, 2739, 1757, 759, - 2371, 1708, 1204, 1667, 1660, 23, 2181, 1647, 2178, 2163, - 647, 1602, 1924, 223, 706, 223, 1716, 1115, 1116, 1056, - 1927, 1447, 2545, 2517, 673, 683, 770, 1472, 1532, 909, - 1476, 983, 24, 1722, 1022, 1586, 715, 1789, 25, 209, - 1488, 716, 1095, 27, 17, 1497, 959, 981, 1403, 1496, - 975, 201, 712, 15, 753, 10, 205, 700, 965, 1334, - 3897, 3805, 16, 1379, 1008, 911, 912, 2222, 2461, 1265, - 1266, 1267, 1264, 1265, 1266, 1267, 1264, 668, 1112, 2775, - 14, 2547, 3390, 973, 2775, 974, 2775, 3490, 1265, 1266, - 1267, 1264, 3256, 3082, 3081, 1182, 3625, 2232, 3463, 1183, - 2690, 2629, 1894, 1609, 1108, 207, 667, 2330, 1398, 1455, - 1456, 1457, 1531, 3865, 1372, 697, 2627, 3374, 931, 1111, - 679, 1113, 33, 2632, 954, 696, 2630, 686, 1605, 1042, - 1108, 2738, 1108, 704, 693, 1069, 929, 1107, 968, 1071, - 964, 2336, 1895, 674, 978, 979, 980, 3183, 2340, 1401, - 3166, 753, 695, 3163, 1182, 1659, 3168, 3165, 1090, 4100, - 1510, 1888, 1394, 3587, 2767, 2765, 1607, 1265, 1266, 1267, - 1264, 1265, 1266, 1267, 1264, 3061, 3059, 2152, 8, 3873, - 7, 3762, 1106, 3756, 3590, 3380, 2199, 3892, 1328, 3142, - 2177, 992, 910, 2169, 694, 2469, 945, 4126, 3886, 4097, - 3770, 4050, 1263, 921, 3604, 3824, 3635, 1227, 2769, 1409, - 2676, 3477, 2219, 206, 2379, 206, 1642, 3884, 930, 3792, - 2720, 3768, 3639, 3942, 2684, 1572, 1408, 1407, 1406, 931, - 1091, 929, 1664, 1073, 1426, 711, 928, 206, 64, 197, - 168, 206, 3140, 206, 64, 197, 168, 2230, 1045, 3825, - 1443, 3992, 206, 2990, 2372, 206, 64, 197, 168, 1404, - 1651, 1823, 1661, 988, 989, 3794, 2552, 1067, 1068, 2551, - 1410, 970, 2553, 963, 1032, 2794, 1961, 1037, 1035, 2565, - 1036, 1262, 967, 966, 1897, 2116, 1663, 206, 202, 1657, - 1648, 206, 64, 197, 168, 1235, 206, 2566, 1237, 948, - 2378, 140, 1676, 955, 68, 1085, 1080, 1075, 1079, 1083, - 202, 1656, 922, 206, 1650, 3032, 202, 1242, 206, 2840, - 1243, 2082, 1690, 962, 3274, 202, 1238, 2645, 202, 2790, - 3033, 3034, 3167, 1088, 926, 3164, 3085, 1078, 2083, 2084, - 1506, 1031, 972, 1507, 1906, 1907, 1484, 961, 1245, 2807, - 2792, 960, 206, 64, 197, 168, 1199, 947, 1034, 2808, - 202, 1033, 3073, 953, 202, 1494, 1495, 140, 1043, 2838, - 3895, 799, 142, 1425, 1534, 1492, 1536, 142, 1982, 1491, - 1494, 1495, 206, 64, 197, 168, 202, 1725, 1086, 1255, - 951, 202, 1260, 2791, 1959, 1039, 3614, 1089, 3272, 900, - 1018, 899, 901, 902, 2787, 903, 904, 1066, 2806, 993, - 1065, 1608, 1606, 1231, 3989, 4025, 4026, 1196, 2770, 2841, - 3985, 3895, 3980, 3894, 1076, 202, 3894, 3979, 971, 3893, - 1709, 1509, 2319, 1713, 3383, 1240, 995, 4049, 3968, 1233, - 680, 3893, 3978, 142, 4092, 4093, 3876, 2788, 1087, 3066, - 3968, 1236, 1239, 3383, 952, 202, 2100, 1712, 2671, 1041, - 673, 673, 673, 3067, 3971, 3068, 673, 167, 195, 204, - 196, 3759, 1193, 673, 1192, 2927, 3904, 1232, 2234, 3397, - 1207, 1210, 3644, 1202, 2090, 3448, 1207, 1210, 1077, 1729, - 194, 2226, 2504, 701, 701, 2813, 673, 3994, 3995, 1241, - 1704, 1017, 1015, 2511, 2367, 3453, 3103, 1072, 2231, 3222, - 2160, 3990, 3991, 971, 3998, 3997, 3996, 3999, 3879, 3880, - 3881, 3882, 1520, 1615, 1614, 2797, 1427, 3535, 1014, 2681, - 2984, 969, 1258, 1259, 2793, 1960, 1040, 1397, 2768, 193, - 987, 3613, 3796, 3797, 3987, 2114, 2115, 3101, 1714, 3615, - 1482, 994, 1027, 1257, 1234, 2467, 976, 1230, 3588, 1305, - 3060, 2978, 1184, 3896, 3804, 1084, 2507, 2508, 2506, 3428, - 958, 3216, 1711, 3801, 1070, 1023, 1244, 4024, 3641, 142, - 2568, 1118, 3400, 698, 698, 698, 2514, 3107, 2789, 2774, - 1183, 3227, 3276, 1191, 142, 1183, 142, 3749, 1183, 1508, - 1252, 1081, 2220, 1222, 1082, 2220, 1192, 2220, 1253, 1254, - 664, 1024, 1028, 1728, 1727, 2337, 1896, 3550, 3083, 3300, - 3301, 3605, 3080, 1069, 3238, 4057, 3778, 1071, 3779, 3250, - 3302, 1011, 3303, 1009, 1013, 1031, 1337, 2253, 924, 1010, - 1007, 1006, 2221, 1012, 997, 998, 996, 999, 1000, 1001, - 1002, 1108, 1029, 1108, 1030, 3924, 3547, 1183, 3823, 1108, - 3918, 3830, 1108, 3821, 1108, 1025, 1026, 2233, 2847, 2974, - 946, 703, 944, 1108, 699, 1038, 3750, 702, 1299, 2628, - 2499, 925, 3781, 1610, 1209, 1208, 2988, 3214, 1201, 1710, - 1209, 1208, 699, 2374, 3540, 3174, 1069, 1211, 3769, 3909, - 1071, 3926, 1021, 3271, 1092, 3795, 1074, 3495, 1020, 3228, - 3993, 3932, 1494, 1495, 3780, 973, 1400, 974, 1402, 910, - 2237, 2239, 2240, 1016, 1198, 1338, 2878, 2879, 699, 2882, - 1414, 697, 697, 697, 1417, 2766, 65, 1377, 1423, 666, - 1382, 696, 696, 696, 1187, 1186, 1068, 1178, 1179, 1219, - 693, 693, 693, 1185, 65, 169, 3640, 169, 2685, 2882, - 1215, 1216, 1658, 1221, 1301, 1302, 1303, 1304, 695, 695, - 695, 3502, 1898, 984, 3439, 1405, 1471, 1699, 203, 169, - 1700, 1483, 3306, 169, 3228, 169, 1494, 1495, 3790, 699, - 65, 3220, 3631, 2447, 169, 2351, 3436, 169, 1306, 2427, - 2450, 1019, 2101, 3778, 3551, 3779, 3190, 990, 991, 985, - 694, 694, 694, 2502, 986, 1195, 1197, 1200, 2812, 699, - 3903, 3773, 927, 3831, 3277, 3822, 2510, 1490, 673, 169, - 3104, 1522, 3223, 169, 1247, 673, 4132, 1248, 169, 648, - 648, 2568, 3438, 3712, 3986, 1464, 2094, 3217, 3218, 648, - 648, 65, 2985, 1559, 1559, 169, 673, 2449, 2479, 3781, - 169, 2478, 3645, 3219, 2434, 1250, 3798, 3601, 1213, 2819, - 2928, 1544, 2929, 2930, 2956, 2816, 2817, 701, 1587, 666, - 1543, 65, 1220, 3701, 1598, 1469, 1349, 1350, 2091, 2226, - 2815, 3780, 2500, 2501, 169, 1561, 1566, 3215, 1468, 223, - 1467, 2710, 747, 2448, 1705, 749, 1032, 1428, 648, 4115, - 748, 1420, 1421, 3707, 3933, 1557, 1557, 1430, 1431, 1432, - 1433, 1434, 3844, 1436, 169, 3809, 1735, 1738, 1739, 1442, - 1168, 1164, 1165, 1166, 1167, 3280, 2715, 1736, 2714, 2713, - 2711, 1424, 1486, 1485, 1177, 3774, 3162, 2470, 1521, 3889, - 3236, 3479, 1246, 2427, 4013, 1461, 3300, 3301, 3585, 3386, - 1640, 2444, 1419, 1470, 711, 1645, 3027, 3029, 2238, 1383, - 1480, 3965, 1530, 1655, 972, 1381, 3296, 3305, 1499, 1500, - 3178, 1502, 1503, 1296, 1504, 2677, 1553, 1554, 3044, 3045, - 1034, 1251, 2557, 1033, 1227, 1072, 2825, 2829, 2830, 2831, - 2826, 2828, 2827, 1688, 2465, 2433, 2223, 2089, 2712, 1429, - 2435, 2066, 1416, 1538, 1540, 1666, 1249, 1559, 1435, 1559, - 1192, 2437, 3335, 1551, 1552, 3106, 1441, 1449, 1440, 1439, - 1451, 1438, 1478, 1479, 1454, 3722, 3723, 3724, 3728, 3726, - 3727, 3729, 3725, 1044, 2780, 1473, 1477, 1477, 1477, 1900, - 4116, 705, 1511, 1512, 3441, 3843, 978, 979, 980, 142, - 142, 142, 1070, 1616, 2436, 3714, 1653, 1654, 1072, 3297, - 1473, 1473, 1649, 1665, 1619, 1498, 1622, 1623, 1501, 2925, - 1662, 1588, 1611, 3237, 1226, 2352, 3425, 1559, 1624, 1625, - 2235, 2236, 2249, 1542, 698, 2661, 1032, 698, 698, 3115, - 3114, 1683, 1684, 1448, 1192, 1787, 1630, 1631, 2784, 1638, - 1698, 2346, 2345, 1635, 2344, 1413, 1639, 1818, 1819, 1836, - 1822, 1909, 3774, 1573, 679, 1567, 3775, 1579, 1837, 2957, - 2959, 2960, 2961, 2958, 1910, 1297, 4012, 1599, 3703, 1724, - 3028, 1844, 3702, 1846, 1585, 1847, 1848, 1849, 1600, 1771, - 1411, 1412, 3708, 3709, 2716, 2717, 2438, 943, 3623, 3180, - 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, - 1755, 1756, 2343, 1721, 1737, 2443, 1768, 1769, 1908, 2441, - 1034, 2947, 2948, 1033, 4113, 4114, 1192, 932, 2491, 933, - 754, 2535, 1899, 3674, 1687, 3387, 1902, 1879, 1904, 1740, - 1189, 1463, 1674, 1686, 1702, 1677, 1911, 1913, 2359, 1914, - 2370, 1916, 1917, 4134, 1821, 1463, 1587, 2852, 3255, 2141, - 3975, 1925, 1559, 1930, 1931, 1845, 1933, 1522, 673, 1669, - 1189, 2360, 2361, 673, 1263, 1706, 1559, 1707, 1826, 1827, - 1828, 984, 697, 3341, 1954, 697, 697, 1696, 2568, 3337, - 2093, 1842, 696, 1692, 1843, 696, 696, 1559, 1697, 1695, - 1718, 693, 1715, 1522, 693, 693, 1882, 1835, 692, 1720, - 1691, 1856, 1857, 2781, 1032, 4128, 3298, 1694, 1901, 695, - 1227, 2647, 695, 695, 1384, 2434, 2437, 2287, 1981, 936, - 2286, 1878, 1766, 1767, 2853, 1693, 936, 1988, 1988, 1224, - 1522, 2262, 1522, 1522, 3444, 1890, 673, 673, 2946, 2055, - 1925, 2059, 1225, 1955, 1559, 2063, 2064, 1759, 2464, 2536, - 2079, 694, 648, 4122, 694, 694, 1675, 1932, 2369, 1678, - 1679, 1265, 1266, 1267, 1264, 1973, 648, 4110, 1559, 4141, - 940, 4068, 1985, 2536, 1934, 938, 937, 935, 2228, 1263, - 3399, 1980, 938, 937, 1983, 1984, 4036, 3341, 1034, 2324, - 2853, 1033, 2139, 1263, 2676, 673, 1925, 1559, 3310, 2124, - 3308, 673, 673, 673, 709, 709, 1225, 2261, 4033, 1378, - 1227, 2134, 2135, 2136, 2137, 1885, 2117, 3172, 2143, 1850, - 4027, 2010, 1921, 1922, 1923, 223, 4123, 2057, 223, 223, - 4009, 223, 3959, 3958, 1936, 1937, 1938, 1939, 1880, 3170, - 4069, 1109, 1110, 2536, 4069, 3952, 1114, 1991, 3047, 2799, - 3927, 2438, 939, 1886, 2771, 2407, 2433, 2427, 2432, 4037, - 2430, 2435, 2109, 2110, 2666, 1965, 1966, 2095, 1949, 2652, - 1568, 1836, 1836, 2185, 680, 1265, 1266, 1267, 1264, 2434, - 2437, 4034, 1975, 1976, 1836, 1836, 2126, 2127, 2128, 1956, - 1957, 1920, 2204, 2263, 2086, 1929, 2088, 3914, 3863, 2219, - 2123, 1950, 1986, 4010, 1990, 1263, 1263, 2107, 2108, 1945, - 142, 1072, 1951, 2081, 2420, 2436, 2198, 2329, 2263, 1072, - 3862, 3138, 2102, 2228, 1954, 1964, 2080, 4124, 1559, 2217, - 1962, 2151, 3857, 1970, 2154, 2155, 2323, 2157, 1992, 1993, - 2322, 3856, 1974, 1473, 2188, 2294, 1265, 1266, 1267, 1264, - 2210, 2112, 2065, 1450, 1979, 1774, 1969, 1477, 1971, 1972, - 1987, 1989, 2056, 1265, 1266, 1267, 1264, 1545, 3855, 1477, - 3915, 3864, 1978, 3490, 2061, 3854, 3834, 3051, 142, 1649, - 1649, 2211, 2067, 2855, 2679, 2678, 142, 2062, 2670, 2414, - 2193, 1662, 2406, 2393, 2282, 2096, 2085, 3833, 2087, 3807, - 142, 2267, 3556, 142, 142, 2263, 698, 2209, 3452, 2259, - 2146, 3504, 3469, 1069, 2263, 2438, 142, 1071, 2121, 2180, - 2433, 2427, 2432, 2122, 2430, 2435, 1069, 2132, 2129, 2130, - 1071, 3417, 2180, 3413, 3318, 3022, 2422, 1103, 1104, 1105, - 1718, 2263, 2757, 2148, 1851, 1852, 1853, 1854, 2263, 2228, - 1858, 1859, 1860, 1861, 1863, 1864, 1865, 1866, 1867, 1868, - 1869, 1870, 1871, 1872, 1873, 1671, 1314, 2165, 2745, 3739, - 2228, 1102, 2263, 2737, 1099, 2568, 2246, 2247, 1212, 2436, - 914, 915, 916, 917, 3505, 3470, 1174, 1169, 3554, 2692, - 2674, 2186, 2187, 2662, 1954, 914, 915, 916, 917, 2654, - 2197, 2196, 2194, 2200, 3418, 2242, 3414, 3319, 2536, 1296, - 2649, 2111, 2206, 2641, 2208, 2393, 2334, 2335, 1280, 2338, - 3260, 2639, 2341, 1069, 3098, 934, 1549, 1071, 2637, 2635, - 2392, 2325, 2301, 2347, 2300, 2285, 4135, 1550, 2212, 752, - 2276, 1263, 673, 673, 673, 1459, 1263, 2275, 4096, 1460, - 3251, 2317, 2462, 2225, 697, 2265, 2274, 673, 673, 673, - 673, 1570, 1263, 2393, 696, 3898, 2650, 2264, 2227, 1680, - 2389, 3052, 2655, 693, 3806, 2627, 2149, 2250, 1474, 3766, - 2394, 2395, 2396, 2650, 2399, 1522, 2642, 1825, 1824, 3705, - 2243, 695, 2244, 2245, 2640, 3704, 2295, 2296, 2241, 2298, - 2255, 2636, 2636, 2393, 2324, 1263, 2305, 1263, 1263, 787, - 797, 1522, 1547, 1263, 3690, 1825, 1824, 3372, 1759, 788, - 1263, 789, 793, 796, 792, 790, 791, 1505, 2456, 1263, - 3648, 3252, 919, 694, 1096, 1097, 1098, 1101, 2207, 1100, - 2263, 2228, 1681, 3462, 3342, 1778, 3333, 919, 3325, 3320, - 2401, 2402, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1280, - 2404, 2405, 1288, 1289, 1281, 1282, 1283, 1284, 1285, 1286, - 1287, 1280, 2411, 3919, 794, 3253, 2413, 941, 2415, 3675, - 2463, 3482, 1915, 3480, 3231, 2981, 673, 1988, 1283, 1284, - 1285, 1286, 1287, 1280, 1765, 2540, 2540, 2079, 2540, 1475, - 2980, 1862, 2318, 2320, 2321, 3717, 2823, 795, 2776, 2699, - 1762, 1764, 1761, 2689, 1763, 2653, 1546, 3920, 648, 648, - 2326, 2559, 2621, 3676, 2191, 3483, 1192, 3481, 2416, 1855, - 1459, 2078, 1559, 673, 1460, 2190, 2189, 1265, 1266, 1267, - 1264, 1445, 2426, 1444, 2353, 1194, 673, 2425, 3375, 1778, - 3977, 2256, 1192, 2612, 666, 1264, 1337, 2542, 3716, 2546, - 1598, 1603, 2079, 2149, 3069, 2617, 2917, 2619, 1267, 1264, - 223, 2390, 2915, 2894, 4018, 2408, 1268, 2892, 2419, 1265, - 1266, 1267, 1264, 4131, 1298, 1072, 3649, 3650, 1072, 1072, - 2631, 2400, 3696, 1308, 2563, 2554, 4106, 2555, 1072, 1840, - 1072, 1265, 1266, 1267, 1264, 1316, 142, 4105, 3642, 142, - 142, 2658, 142, 2544, 1841, 2822, 2560, 2561, 1315, 1317, - 2759, 4104, 2760, 2614, 2439, 2440, 3450, 2445, 4102, 2968, - 2672, 2570, 4101, 2217, 2668, 2669, 2548, 2966, 4040, 1069, - 1559, 2964, 1559, 1071, 1559, 1338, 2412, 2953, 4130, 1192, - 4008, 4006, 1070, 3921, 2403, 142, 142, 2691, 2796, 2409, - 1541, 1477, 2410, 3859, 3847, 1070, 3837, 142, 3643, 3826, - 3757, 2576, 1265, 1266, 1267, 1264, 2622, 3678, 2616, 2515, - 2509, 3373, 142, 1559, 1192, 3117, 3451, 3677, 2723, 2967, - 3496, 3484, 1538, 1540, 3449, 1072, 3321, 2965, 3456, 2549, - 3221, 2963, 3094, 2730, 2682, 3064, 3063, 2952, 1559, 2951, - 1265, 1266, 1267, 1264, 2468, 2950, 2949, 2471, 2472, 2473, - 2474, 2475, 2476, 2477, 2718, 2941, 2480, 2481, 2482, 2483, - 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2564, 2492, 2493, - 2494, 2495, 2496, 2935, 2497, 1557, 3131, 2934, 2933, 2731, - 2932, 2567, 2615, 2772, 2734, 2735, 2613, 2778, 2779, 2643, - 2556, 2782, 1297, 1265, 1266, 1267, 1264, 2328, 2686, 2168, - 1557, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1269, 1192, - 2167, 2166, 2707, 1192, 2162, 1265, 1266, 1267, 1264, 2161, - 1559, 2688, 3619, 1522, 2701, 1265, 1266, 1267, 1264, 2059, - 2721, 2732, 2656, 1603, 2683, 2118, 1905, 2851, 1903, 3130, - 2697, 1672, 1396, 3461, 2858, 3208, 4127, 2859, 4125, 1265, - 1266, 1267, 1264, 2703, 2675, 2703, 747, 2673, 2680, 749, - 1172, 2278, 2664, 4107, 748, 2869, 1265, 1266, 1267, 1264, - 2763, 1265, 1266, 1267, 1264, 1192, 1265, 1266, 1267, 1264, - 2623, 3799, 3800, 2891, 2693, 2694, 1265, 1266, 1267, 1264, - 1192, 1192, 1192, 1988, 3595, 1604, 1192, 3607, 2901, 2902, - 2903, 2904, 1192, 2911, 2719, 2912, 2913, 2709, 2914, 2696, - 2916, 2835, 4094, 1718, 4056, 2836, 4055, 4052, 2862, 1171, - 3983, 2911, 3982, 2865, 1265, 1266, 1267, 1264, 2800, 3787, - 3963, 2277, 2576, 2540, 3906, 2870, 2839, 3653, 3900, 3883, - 2820, 3874, 3851, 3846, 1597, 3845, 3803, 2969, 3789, 3788, - 3758, 2860, 3698, 3657, 2010, 3606, 3646, 648, 1265, 1266, - 1267, 1264, 3628, 3626, 3624, 2059, 3621, 3618, 3617, 1192, - 2079, 2079, 2079, 2079, 2079, 2079, 2802, 3593, 2804, 3591, - 2848, 3564, 1265, 1266, 1267, 1264, 1192, 2079, 2885, 3561, - 2540, 2889, 3558, 2973, 2886, 2889, 3446, 3433, 2975, 3426, - 2801, 3544, 3410, 2896, 3408, 2818, 3030, 3403, 1559, 2886, - 2897, 2898, 3353, 2872, 3331, 2900, 2850, 2842, 3330, 673, - 673, 2907, 8, 3328, 7, 3327, 2857, 2861, 1265, 1266, - 1267, 1264, 3322, 3316, 3315, 3232, 2866, 2867, 3195, 3194, - 3193, 1072, 3405, 2874, 3184, 3182, 2871, 3355, 3134, 3179, - 2887, 3177, 2333, 2893, 3133, 3108, 3105, 2890, 3084, 3951, - 2899, 3062, 3037, 1929, 2962, 2954, 2944, 3018, 2942, 1265, - 1266, 1267, 1264, 2938, 223, 1265, 1266, 1267, 1264, 223, - 2937, 1265, 1266, 1267, 1264, 2936, 2785, 3031, 2998, 2943, - 2777, 2986, 2740, 2741, 2931, 2773, 2809, 2665, 2746, 855, - 854, 1836, 2348, 1836, 2342, 2998, 3079, 2339, 2543, 2171, - 2164, 1893, 3132, 1892, 1730, 1731, 1732, 1733, 1734, 2976, - 1673, 3093, 2868, 1345, 2756, 2077, 2982, 1559, 1341, 4133, - 3100, 2979, 1340, 2999, 3000, 3001, 3002, 3003, 3004, 1265, - 1266, 1267, 1264, 1175, 923, 4082, 3021, 3015, 3019, 3939, - 3020, 1265, 1266, 1267, 1264, 206, 1775, 197, 168, 3935, - 1779, 1780, 1781, 1782, 3783, 3038, 3782, 3771, 3035, 3767, - 1820, 3048, 3620, 2078, 2755, 3602, 3574, 3475, 1830, 3474, - 3053, 142, 3473, 3443, 3422, 3057, 3420, 1623, 3419, 3416, - 672, 672, 2923, 2924, 1882, 3415, 681, 1624, 1625, 3078, - 3409, 1265, 1266, 1267, 1264, 3074, 3407, 2939, 2940, 3388, - 3076, 3378, 1638, 3377, 1630, 1631, 1635, 3364, 3086, 1639, - 3363, 3262, 3087, 3198, 3169, 3136, 3055, 3127, 202, 2884, - 3097, 1883, 3181, 2977, 3054, 2754, 3119, 3118, 3102, 3185, - 3186, 3187, 3189, 3112, 3191, 3192, 3072, 3046, 3077, 3075, - 3070, 2260, 2798, 2638, 1192, 2634, 3088, 3090, 2633, 3089, - 3211, 2306, 1265, 1266, 1267, 1264, 2299, 2293, 2292, 2753, - 3225, 2291, 2290, 2288, 2284, 673, 2283, 2281, 3109, 2272, - 2269, 3096, 2752, 2268, 3110, 2170, 1876, 3129, 3241, 1192, - 3116, 1875, 673, 1874, 1192, 1192, 1265, 1266, 1267, 1264, - 1839, 3125, 3126, 2079, 2389, 1838, 3259, 673, 1829, 1265, - 1266, 1267, 1264, 3122, 1958, 3124, 206, 1571, 1569, 3120, - 3121, 3017, 2751, 4081, 4039, 3171, 3957, 2456, 1335, 1265, - 1266, 1267, 1264, 2750, 3123, 3235, 3934, 3869, 3866, 3286, - 1977, 3289, 3853, 3289, 3289, 1072, 3848, 3752, 1192, 1265, - 1266, 1267, 1264, 3751, 3733, 3715, 3176, 3175, 2749, 681, - 1265, 1266, 1267, 1264, 2748, 3711, 3311, 2835, 3689, 3672, - 3307, 2729, 3575, 2886, 1559, 1559, 3263, 3572, 3196, 3273, - 3275, 3265, 3266, 3542, 3264, 1265, 1266, 1267, 1264, 202, - 3213, 1265, 1266, 1267, 1264, 3197, 3244, 3254, 3541, 1883, - 3538, 3248, 3537, 3503, 1883, 1883, 3500, 3498, 2886, 3464, - 3128, 1618, 142, 2886, 2886, 3312, 3313, 3234, 1629, 3257, - 3243, 673, 1620, 142, 1634, 3246, 3247, 3949, 3211, 3269, - 3258, 1069, 1637, 1626, 1453, 1071, 1557, 1557, 3009, 3285, - 3268, 1522, 2970, 3294, 2059, 2059, 2426, 2747, 2895, 2844, - 2843, 2425, 2837, 2803, 2150, 2758, 2648, 2153, 2558, 2498, - 2156, 3295, 2391, 2158, 3290, 3291, 2362, 2886, 1265, 1266, - 1267, 1264, 3309, 2327, 1265, 1266, 1267, 1264, 1760, 202, - 2131, 3284, 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1280, 1919, 3267, 2744, 1889, 1192, 1703, - 1652, 2289, 2723, 1627, 2258, 1395, 3317, 1380, 1376, 1375, - 3376, 3340, 1374, 1373, 4074, 3838, 1372, 710, 1371, 1370, - 3292, 2203, 1369, 1265, 1266, 1267, 1264, 1368, 3143, 3144, - 1367, 1366, 1365, 3356, 3145, 3146, 3147, 3148, 3687, 3149, - 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, - 3324, 2078, 2078, 2078, 2078, 2078, 2078, 673, 3336, 3338, - 3339, 3332, 3329, 3323, 3349, 3326, 3350, 1364, 2078, 1279, - 1278, 1288, 1289, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1280, 2743, 1265, 1266, 1267, 1264, 3357, 1363, 3360, 3361, - 3362, 2742, 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1280, 1362, 1361, 1360, 3366, 1265, 1266, - 1267, 1264, 2736, 1359, 1072, 1358, 1357, 2576, 1265, 1266, - 1267, 1264, 1356, 1355, 1354, 2252, 1353, 1072, 1352, 2257, - 2143, 3430, 3389, 1351, 3432, 2726, 1348, 2266, 3434, 1265, - 1266, 1267, 1264, 3440, 3391, 1347, 1346, 3392, 3395, 3411, - 1344, 2270, 3396, 1343, 1342, 142, 1339, 1332, 1331, 1329, - 142, 1328, 1265, 1266, 1267, 1264, 1327, 3947, 2722, 3401, - 1326, 4072, 2698, 1325, 2273, 1324, 1323, 1322, 673, 2059, - 1321, 142, 2280, 1320, 3435, 1319, 3437, 1318, 1313, 3468, - 1312, 1311, 1310, 1309, 142, 1265, 1266, 1267, 1264, 1265, - 1266, 1267, 1264, 1229, 2297, 2540, 2079, 3487, 1773, 2302, - 2303, 2304, 2703, 1173, 2307, 2308, 2309, 2310, 2311, 2312, - 2313, 2314, 2315, 2316, 3945, 3427, 3423, 3539, 3429, 3345, - 3346, 3506, 2398, 2376, 1192, 1265, 1266, 1267, 1264, 1217, - 4023, 3348, 2824, 3286, 2173, 2569, 1228, 1192, 1265, 1266, - 1267, 1264, 3012, 3007, 3354, 3442, 3351, 3013, 3016, 1192, - 3005, 3553, 3445, 3457, 3006, 1559, 3485, 3014, 3010, 2530, - 2531, 125, 3488, 3011, 3976, 67, 3577, 66, 3885, 3489, - 3694, 2663, 3492, 2651, 3578, 1446, 673, 3230, 2059, 1947, - 1948, 3092, 1192, 3536, 3459, 672, 672, 1180, 1942, 1943, - 1944, 672, 3282, 1072, 3283, 1072, 3555, 2466, 1190, 3491, - 1072, 3549, 2919, 3493, 3497, 3367, 3499, 2048, 3529, 2920, - 2921, 2922, 3486, 1612, 223, 3393, 3394, 1557, 2646, 3568, - 2687, 1218, 1668, 3565, 3576, 2668, 2669, 1192, 1072, 1646, - 676, 3548, 3545, 3543, 677, 2349, 678, 2133, 3579, 1223, - 3206, 3552, 3199, 3507, 2873, 2845, 2418, 2385, 1952, 3557, - 1918, 4085, 3560, 1825, 1824, 3562, 3546, 1391, 1392, 3850, - 1070, 3566, 142, 3563, 3567, 3559, 3569, 142, 2907, 3622, - 1389, 1390, 1387, 1388, 2078, 1385, 1386, 3314, 3570, 2512, - 3630, 2505, 2060, 1514, 1513, 1192, 1256, 2192, 3600, 3359, - 3040, 2350, 2205, 1466, 1465, 142, 1437, 1489, 4046, 4044, - 4000, 2998, 3973, 3972, 3970, 1192, 1559, 1559, 3596, 3910, - 3870, 3241, 3597, 3747, 3746, 3684, 3592, 3412, 3385, 3384, - 3586, 3370, 3627, 3665, 3629, 3665, 3369, 1883, 2451, 1883, - 2421, 1670, 2540, 3050, 1463, 3581, 4076, 4075, 4075, 1192, - 3683, 1192, 3659, 3660, 3654, 3431, 2998, 3655, 1883, 1883, - 3686, 3095, 3688, 2856, 3465, 3466, 3467, 2783, 1559, 2378, - 3471, 3472, 2271, 3656, 3638, 3637, 3636, 1399, 1557, 1771, - 1214, 4076, 3713, 3647, 3365, 1189, 673, 3616, 1192, 1192, - 1597, 1481, 1192, 1192, 210, 3, 3670, 75, 3658, 3669, - 3679, 3680, 3685, 3681, 2, 4098, 2188, 3489, 4099, 1, - 3735, 3682, 2764, 1887, 2886, 1393, 3692, 3730, 3536, 3695, - 918, 913, 1535, 1954, 3699, 2550, 3744, 3719, 3720, 3662, - 1771, 3731, 3732, 2113, 1563, 1891, 3633, 920, 3753, 3754, - 2657, 3023, 2660, 3529, 3024, 3691, 3358, 3026, 3741, 2786, - 2224, 1559, 2987, 2503, 2366, 3697, 1279, 1278, 1288, 1289, - 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1280, 1724, 3740, - 1724, 3224, 977, 1831, 3784, 1685, 914, 915, 916, 917, - 3742, 1189, 1206, 1682, 3777, 1205, 1203, 1776, 801, 3736, - 2176, 2971, 3765, 2945, 2518, 3743, 4084, 4119, 4038, 4087, - 3764, 1701, 3760, 785, 3964, 3875, 4042, 2700, 3877, 3763, - 2706, 2229, 1261, 1557, 3071, 3772, 3776, 1004, 984, 842, - 812, 2724, 2725, 3818, 3812, 1330, 3141, 3791, 3139, 2727, - 2728, 2525, 2529, 2530, 2531, 2526, 2534, 2527, 2532, 811, - 1192, 2528, 3454, 2533, 2814, 2733, 3802, 3748, 3043, 3820, - 1005, 3836, 2159, 3842, 3872, 3761, 1613, 1617, 2417, 3829, - 3930, 3693, 3278, 1517, 1072, 2881, 3813, 3814, 3827, 3600, - 1528, 1072, 3815, 1641, 1730, 1883, 3925, 3501, 3612, 3832, - 3610, 3611, 717, 2092, 1192, 646, 1054, 3734, 718, 1559, - 2397, 1565, 3988, 3852, 956, 2375, 3828, 957, 949, 3608, - 2833, 3609, 2832, 1741, 1270, 1758, 3160, 3849, 1278, 1288, - 1289, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1280, 3810, - 3161, 1307, 756, 3858, 2254, 2811, 3524, 3036, 74, 73, - 3860, 142, 72, 71, 231, 803, 230, 3785, 142, 3651, - 3960, 4089, 782, 3902, 781, 3891, 780, 779, 778, 777, - 2523, 1557, 2524, 3871, 2522, 2520, 2519, 2863, 2864, 1724, - 2525, 2529, 2530, 2531, 2526, 2534, 2527, 2532, 2074, 2073, - 2528, 3911, 2533, 3049, 3368, 2138, 2140, 3239, 2910, 3737, - 2905, 1999, 1997, 3738, 1526, 2446, 3899, 2078, 2453, 1996, - 4020, 3402, 3603, 3940, 3941, 3710, 3905, 2955, 3599, 1941, - 3929, 2442, 2016, 3913, 1192, 2926, 2013, 3922, 2012, 2918, - 3706, 3700, 1559, 2044, 3816, 3954, 3664, 3923, 3508, 3509, - 3961, 3944, 3946, 3948, 3950, 3928, 3867, 3868, 3515, 2384, - 1123, 1119, 1121, 1122, 3962, 1120, 3937, 2708, 3334, 2423, - 3201, 2358, 2357, 3943, 2355, 2354, 1422, 3901, 3984, 3632, - 2574, 2572, 1170, 3953, 3347, 3343, 2184, 3352, 3008, 2201, - 3091, 3969, 3967, 1559, 2075, 2071, 3818, 2070, 1094, 1093, - 1594, 2989, 2513, 3793, 1557, 1946, 950, 2373, 109, 41, - 3981, 122, 108, 4011, 185, 59, 184, 58, 120, 4019, - 182, 57, 4001, 103, 4003, 102, 119, 4004, 4005, 1883, - 3137, 180, 56, 4007, 4002, 142, 215, 214, 217, 216, - 213, 2624, 2625, 212, 1601, 211, 4035, 3974, 3668, 3956, - 908, 44, 4028, 43, 4029, 1557, 4030, 186, 4031, 42, - 4032, 110, 60, 40, 4045, 39, 4047, 4048, 1072, 38, - 34, 4043, 4041, 13, 12, 35, 22, 21, 1689, 3891, - 20, 1192, 4051, 26, 1279, 1278, 1288, 1289, 1281, 1282, - 1283, 1284, 1285, 1286, 1287, 1280, 32, 31, 3861, 135, - 134, 3842, 4064, 30, 133, 132, 131, 130, 3056, 129, - 3058, 4066, 4067, 4065, 4070, 128, 127, 4073, 4083, 4071, - 4091, 29, 19, 4090, 51, 4077, 4078, 4079, 4080, 1883, - 50, 49, 48, 47, 1883, 142, 46, 9, 4103, 123, - 4095, 118, 116, 28, 1192, 117, 114, 2203, 115, 113, - 112, 111, 106, 104, 86, 4108, 3929, 4109, 85, 84, - 4111, 99, 98, 97, 4117, 96, 95, 4121, 94, 92, - 4118, 93, 3912, 1003, 83, 82, 81, 3916, 3917, 80, - 79, 101, 3111, 1515, 1516, 107, 1518, 1519, 105, 1523, - 1524, 1525, 90, 1935, 100, 4129, 91, 89, 1940, 88, - 4062, 87, 78, 77, 4091, 4137, 76, 4090, 4136, 3938, - 3135, 166, 165, 164, 163, 162, 4121, 4138, 160, 161, - 159, 158, 4142, 1574, 1575, 1576, 1577, 1578, 157, 1580, - 1581, 1582, 1583, 1584, 1809, 156, 155, 1590, 1591, 1592, - 1593, 154, 52, 53, 54, 55, 176, 206, 64, 197, - 168, 175, 177, 3513, 179, 181, 178, 183, 1072, 173, - 171, 174, 172, 1724, 170, 69, 198, 11, 121, 18, - 4, 1994, 1995, 189, 0, 0, 0, 199, 206, 64, - 197, 168, 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1280, 3525, 0, 140, 198, 0, 0, - 0, 0, 0, 0, 189, 0, 0, 3516, 199, 0, - 0, 126, 0, 0, 0, 0, 0, 0, 3511, 0, - 202, 0, 0, 3533, 3534, 142, 0, 140, 0, 3512, - 2120, 0, 0, 0, 0, 0, 2120, 2120, 2120, 0, - 0, 0, 126, 0, 0, 0, 0, 0, 4053, 4054, - 0, 202, 0, 0, 0, 4058, 4059, 4060, 4061, 0, - 0, 729, 728, 735, 725, 0, 3517, 0, 0, 0, - 0, 0, 0, 0, 732, 733, 3293, 734, 738, 0, - 0, 719, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 743, 0, 0, 0, 0, 0, 148, 149, 0, - 150, 151, 0, 0, 0, 152, 0, 1805, 153, 0, - 0, 0, 0, 0, 1802, 0, 0, 0, 1804, 1801, - 1803, 1807, 1808, 2695, 0, 0, 1806, 0, 148, 149, - 0, 150, 151, 0, 0, 0, 152, 747, 0, 153, - 749, 0, 0, 0, 0, 748, 0, 1279, 1278, 1288, - 1289, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1280, 0, - 0, 0, 0, 0, 3532, 0, 2432, 0, 0, 0, - 0, 167, 195, 204, 196, 124, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3521, 0, 0, 194, 188, 187, 0, 0, 0, - 0, 70, 167, 195, 204, 196, 124, 0, 0, 0, - 0, 0, 0, 3518, 3522, 3520, 3519, 1291, 0, 1295, - 0, 0, 0, 0, 0, 194, 188, 187, 0, 0, - 0, 0, 70, 0, 0, 1292, 1294, 1290, 0, 1293, - 1279, 1278, 1288, 1289, 1281, 1282, 1283, 1284, 1285, 1286, - 1287, 1280, 0, 3527, 3528, 0, 0, 0, 0, 0, - 0, 0, 190, 191, 192, 0, 0, 0, 0, 0, - 1812, 1813, 1814, 1815, 1816, 1817, 1810, 1811, 0, 0, - 0, 0, 0, 0, 0, 720, 722, 721, 0, 0, - 0, 0, 0, 190, 191, 192, 727, 0, 0, 0, - 200, 0, 0, 0, 0, 0, 3535, 0, 731, 2251, - 0, 0, 3404, 0, 0, 746, 0, 0, 3514, 3406, - 0, 136, 724, 0, 3526, 193, 714, 137, 0, 0, - 0, 200, 0, 1279, 1278, 1288, 1289, 1281, 1282, 1283, - 1284, 1285, 1286, 1287, 1280, 0, 0, 0, 0, 0, - 0, 3421, 136, 0, 0, 0, 193, 0, 137, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2045, 0, 0, 0, 0, 2006, 0, 2363, 2364, 2365, + 782, 758, 4100, 784, 4068, 2869, 223, 4092, 1637, 3995, + 1999, 1715, 3578, 3478, 4001, 3289, 3889, 4002, 3994, 3822, + 3255, 767, 3912, 3947, 3869, 3704, 3366, 3507, 3800, 1711, + 760, 3769, 2863, 3860, 3821, 3367, 1775, 1328, 3890, 3636, + 1481, 3738, 812, 3791, 1549, 37, 648, 1183, 2866, 1060, + 3582, 2782, 3870, 3872, 3440, 1487, 3573, 3494, 1944, 1762, + 3650, 2416, 3445, 666, 3657, 672, 672, 1177, 2841, 3645, + 3212, 672, 690, 699, 3264, 1718, 699, 3226, 3618, 3461, + 3188, 3364, 2982, 2983, 3215, 2981, 3432, 208, 2097, 2958, + 68, 2110, 2892, 3284, 1780, 3463, 756, 3273, 2978, 3266, + 2689, 3409, 711, 2207, 2133, 2094, 3051, 3011, 2059, 2561, + 3329, 2525, 2419, 1959, 2808, 2969, 1542, 696, 3193, 2563, + 3235, 3195, 2377, 1638, 1173, 2654, 3191, 707, 3190, 2321, + 2821, 3159, 141, 755, 3099, 2165, 3189, 3272, 2345, 750, + 2449, 1626, 3186, 1622, 2191, 2614, 2632, 2138, 3025, 36, + 2320, 2173, 1873, 940, 2166, 1630, 2174, 2090, 2526, 2797, + 2203, 1446, 2894, 2063, 1627, 2202, 2504, 2792, 2509, 2417, + 981, 1054, 2874, 1989, 2833, 219, 8, 1920, 2376, 1776, + 2366, 1709, 218, 7, 1413, 6, 2559, 2204, 2237, 1589, + 1527, 1121, 759, 1558, 665, 2357, 2412, 1521, 749, 648, + 1769, 1958, 2360, 2726, 768, 1749, 1199, 1700, 2169, 2172, + 27, 1641, 2154, 1659, 1596, 1714, 1615, 647, 704, 681, + 1708, 1919, 1466, 223, 1053, 223, 2533, 1112, 1113, 1916, + 23, 1526, 980, 2060, 672, 1523, 907, 1781, 1580, 24, + 1092, 713, 25, 17, 1019, 205, 1482, 10, 957, 757, + 1490, 209, 978, 16, 2505, 714, 963, 1398, 1005, 710, + 1470, 698, 15, 751, 201, 909, 1374, 1329, 3879, 3788, + 2725, 2211, 14, 910, 668, 1260, 1261, 1262, 1259, 2762, + 2762, 1452, 695, 1260, 1261, 1262, 1259, 2762, 1109, 33, + 971, 2535, 972, 1069, 1260, 1261, 1262, 1259, 3475, 3375, + 3242, 3068, 3067, 2221, 1178, 3609, 3448, 1179, 1087, 3359, + 1108, 684, 1110, 2677, 2620, 2618, 1886, 2617, 2615, 1603, + 1105, 1599, 1104, 207, 667, 691, 2319, 1456, 1393, 1525, + 3847, 952, 929, 677, 694, 1066, 2325, 702, 1367, 3169, + 673, 1449, 1450, 1451, 693, 966, 1105, 962, 1105, 1039, + 927, 2329, 1068, 1887, 1396, 3152, 3154, 1652, 3149, 3151, + 751, 692, 4080, 1504, 1178, 2754, 2752, 1880, 1389, 3571, + 3047, 1601, 3045, 2143, 3855, 206, 64, 197, 168, 3745, + 1088, 3739, 3574, 8, 3365, 2188, 3874, 1323, 2168, 908, + 7, 3128, 2160, 1103, 198, 1260, 1261, 1262, 1259, 2457, + 4106, 189, 3973, 943, 3868, 199, 4077, 3807, 3753, 2756, + 919, 1260, 1261, 1262, 1259, 1404, 3588, 4030, 1258, 3623, + 1222, 2663, 2671, 206, 140, 2208, 3619, 2367, 206, 64, + 197, 168, 928, 3462, 2368, 1636, 1777, 3866, 3775, 126, + 2707, 206, 3751, 206, 3923, 206, 2827, 1566, 202, 1403, + 926, 3808, 752, 1399, 1402, 1082, 1077, 1072, 1076, 1080, + 1401, 929, 1645, 927, 1657, 1070, 206, 1064, 206, 206, + 64, 197, 168, 709, 3126, 1065, 1405, 1438, 968, 2219, + 961, 1421, 206, 1085, 924, 1889, 2976, 1075, 2781, 965, + 964, 1650, 1642, 1668, 1654, 206, 2825, 1034, 1032, 1491, + 1033, 202, 2361, 2777, 2553, 898, 946, 897, 899, 900, + 953, 901, 902, 1649, 202, 3071, 1644, 3059, 1656, 920, + 1257, 1237, 1952, 2554, 1238, 148, 149, 3777, 150, 151, + 960, 140, 2107, 152, 3019, 3020, 153, 3153, 1083, 202, + 3150, 202, 202, 1528, 140, 1530, 2828, 1086, 1682, 970, + 1500, 3018, 1240, 1501, 959, 202, 2074, 2075, 958, 206, + 64, 197, 168, 2779, 945, 3970, 2540, 2073, 202, 2539, + 951, 2633, 2541, 1028, 1073, 1898, 1899, 1250, 2774, 206, + 64, 197, 168, 206, 64, 197, 168, 1478, 1040, 1488, + 1489, 3598, 1973, 3259, 2794, 1717, 3877, 949, 1084, 167, + 195, 204, 196, 124, 2795, 3257, 2778, 1255, 3876, 1063, + 2308, 206, 64, 197, 168, 1036, 1602, 1600, 1062, 2757, + 1420, 2775, 194, 188, 187, 3877, 3961, 1701, 3875, 70, + 1705, 3966, 202, 4005, 4006, 969, 3876, 3960, 1074, 1235, + 1950, 1503, 2658, 3949, 1191, 4072, 4073, 3368, 3975, 3976, + 3875, 3959, 202, 2793, 1704, 4029, 202, 3858, 1815, 3052, + 3368, 950, 3971, 3972, 3949, 3979, 3978, 3977, 3980, 2223, + 672, 672, 3952, 1106, 1107, 3053, 1194, 3054, 1111, 1038, + 3742, 672, 1187, 1486, 202, 1202, 1205, 1485, 1488, 1489, + 190, 191, 192, 167, 195, 204, 196, 3861, 3862, 3863, + 3864, 699, 699, 1236, 672, 1721, 1188, 2800, 2091, 3886, + 1202, 1205, 3382, 2081, 3433, 1081, 194, 2499, 2215, 1230, + 1696, 1242, 1232, 2151, 1243, 2913, 3208, 3628, 200, 3438, + 2970, 696, 696, 696, 2492, 3089, 3597, 2356, 967, 2755, + 2220, 969, 3779, 3780, 3599, 1706, 3761, 2780, 3762, 136, + 1233, 1078, 1245, 193, 1079, 137, 1037, 1392, 1609, 1608, + 1514, 2784, 2776, 3519, 3756, 3968, 1115, 1300, 3087, 1703, + 1252, 3878, 3787, 1422, 1253, 1254, 2668, 956, 193, 1069, + 1239, 1951, 3385, 3093, 2455, 1225, 3572, 1197, 922, 3046, + 2761, 1476, 2105, 2106, 2964, 4004, 1248, 1249, 1180, 2495, + 2496, 1179, 3764, 1179, 2494, 3202, 3784, 1179, 3625, 1502, + 2326, 1217, 138, 3732, 1187, 2209, 2209, 3534, 3413, 3261, + 2209, 1066, 2556, 2502, 3069, 63, 1247, 1888, 664, 1720, + 1719, 923, 3066, 3589, 3763, 3285, 3286, 1226, 1068, 1241, + 3287, 4037, 3288, 2242, 1332, 1105, 2210, 3531, 3213, 2085, + 1105, 1105, 1069, 1105, 1089, 3224, 1071, 1105, 1105, 3236, + 3806, 3974, 3905, 1228, 3900, 697, 2834, 1179, 2226, 2228, + 2229, 3812, 3804, 2222, 65, 1231, 1234, 944, 1246, 942, + 2960, 2487, 1727, 1730, 1731, 1294, 1702, 701, 700, 1204, + 1203, 2974, 2363, 1728, 1066, 1035, 695, 695, 695, 3524, + 3733, 1227, 3160, 1244, 3891, 745, 3907, 2616, 747, 146, + 203, 1068, 147, 746, 1204, 1203, 3479, 169, 908, 3752, + 1206, 3200, 61, 1604, 1395, 3913, 1397, 65, 2812, 2816, + 2817, 2818, 2813, 2815, 2814, 3761, 2753, 3762, 1409, 691, + 691, 691, 1412, 1181, 1175, 1182, 1418, 666, 694, 694, + 694, 1065, 2868, 3624, 1372, 3256, 2672, 1377, 693, 693, + 693, 1214, 1210, 1211, 1651, 169, 3214, 3778, 1216, 1400, + 169, 3206, 925, 1890, 1301, 692, 692, 692, 1229, 3486, + 981, 1488, 1489, 169, 2340, 169, 1465, 169, 139, 45, + 3291, 3764, 1196, 1488, 1489, 62, 697, 1190, 1192, 1195, + 3773, 3885, 3615, 1691, 203, 3421, 1692, 3176, 169, 2422, + 169, 169, 1296, 1297, 1298, 1299, 697, 143, 144, 2490, + 697, 145, 1477, 3763, 169, 3535, 3214, 3203, 3204, 3424, + 2799, 3695, 4095, 3813, 3805, 672, 2556, 169, 1516, 971, + 2498, 972, 672, 3205, 1193, 1484, 648, 648, 697, 3209, + 4112, 3262, 2971, 2467, 2092, 3967, 648, 648, 65, 3090, + 1553, 1553, 2466, 672, 3585, 3757, 3781, 1208, 2435, 3758, + 2864, 2865, 2806, 2868, 2415, 2438, 3684, 3690, 65, 2488, + 2489, 1538, 65, 1537, 699, 1581, 666, 2803, 2804, 1551, + 1551, 1592, 1344, 1345, 1480, 1479, 3993, 3423, 1215, 1463, + 1462, 169, 2802, 2215, 2942, 1555, 223, 3629, 3914, 1461, + 65, 3792, 1560, 3826, 3265, 648, 2227, 2082, 1186, 1174, + 2914, 169, 2915, 2916, 1697, 169, 1029, 3148, 1415, 1416, + 1729, 3201, 2437, 2458, 1425, 1426, 1427, 1428, 1429, 3464, + 1431, 1419, 1291, 2415, 3013, 3015, 1437, 3285, 3286, 3946, + 2421, 1515, 3569, 169, 3371, 2423, 1378, 3705, 3706, 3707, + 3711, 3709, 3710, 3712, 3708, 2697, 1414, 1634, 709, 1524, + 3222, 2432, 1639, 4096, 1547, 1548, 1376, 3281, 2436, 1648, + 1222, 3164, 2664, 3030, 3031, 3290, 2545, 2453, 2212, 2080, + 2057, 1411, 1430, 2425, 1165, 1161, 1162, 1163, 1164, 3320, + 2702, 3092, 2701, 2700, 2698, 1424, 1263, 2767, 1680, 2424, + 1031, 1436, 1435, 1030, 1293, 1434, 1433, 1532, 1534, 1643, + 1041, 3426, 1553, 1303, 1553, 1187, 1655, 1545, 1546, 1658, + 703, 1423, 1445, 975, 976, 977, 1892, 3697, 2911, 696, + 1448, 3410, 696, 696, 1505, 1506, 3825, 3282, 973, 1312, + 1333, 2238, 2648, 2084, 3757, 1690, 2224, 2225, 3871, 1472, + 1473, 1443, 1610, 2771, 1069, 2333, 1492, 1455, 1408, 1495, + 1221, 1069, 2699, 1901, 2341, 1464, 3101, 3100, 3992, 1902, + 1582, 1029, 1474, 2335, 2334, 941, 1605, 1624, 1625, 3607, + 1493, 1494, 1553, 1496, 1497, 3166, 1498, 2332, 970, 1900, + 1647, 1406, 1407, 3223, 1536, 930, 2479, 4093, 4094, 1187, + 1779, 1561, 931, 1675, 1676, 1458, 3691, 3692, 3014, 3658, + 1632, 1763, 1810, 1811, 1828, 1814, 1573, 1629, 2426, 1567, + 1633, 3686, 1593, 1829, 677, 3685, 4108, 934, 4114, 1613, + 3956, 1616, 1617, 1457, 1258, 1579, 1836, 3326, 1838, 2556, + 1839, 1840, 1841, 1618, 1619, 3322, 2359, 1594, 1457, 2943, + 2945, 2946, 2947, 2944, 1222, 1031, 2933, 2934, 1030, 2635, + 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, + 1747, 1748, 3429, 934, 1713, 2431, 1760, 1761, 933, 2429, + 3372, 1187, 1184, 936, 935, 2276, 3384, 1891, 2275, 1732, + 2348, 1894, 1698, 1896, 695, 1694, 1679, 695, 695, 2217, + 1813, 1903, 1905, 1871, 1906, 1678, 1908, 1909, 2703, 2704, + 1689, 1581, 1666, 2349, 2350, 1669, 1917, 1553, 1922, 1923, + 1661, 1925, 1516, 672, 938, 1837, 2768, 1710, 672, 936, + 935, 1553, 1818, 1819, 1820, 981, 1042, 691, 1945, 1688, + 691, 691, 1684, 1687, 3283, 1834, 694, 1683, 1835, 694, + 694, 1553, 1707, 1686, 1874, 1893, 693, 1516, 1029, 693, + 693, 1258, 690, 2839, 2358, 1848, 1849, 4102, 1712, 1220, + 1827, 4090, 1685, 692, 4048, 2524, 692, 692, 2313, 2395, + 1751, 4016, 1972, 2932, 1184, 1870, 1467, 1471, 1471, 1471, + 3326, 1979, 1979, 2663, 1516, 1667, 1516, 1516, 1670, 1671, + 672, 672, 2452, 2046, 1917, 2050, 937, 3241, 1553, 2054, + 2055, 1467, 1467, 4013, 2070, 4007, 648, 2523, 1260, 1261, + 1262, 1259, 1924, 912, 913, 914, 915, 1758, 1759, 3989, + 648, 1258, 1553, 1591, 3295, 1926, 785, 795, 3293, 3940, + 4103, 1976, 1031, 3158, 4049, 1030, 786, 4049, 787, 791, + 794, 790, 788, 789, 4017, 912, 913, 914, 915, 672, + 1917, 1553, 2001, 2115, 3124, 672, 672, 672, 707, 707, + 1260, 1261, 1262, 1259, 1842, 2125, 2126, 2127, 2128, 3156, + 1877, 2524, 2134, 2840, 1219, 3033, 4014, 3939, 2252, 223, + 2048, 2108, 223, 223, 2786, 223, 1913, 1914, 1915, 2758, + 1872, 792, 3990, 2653, 1564, 3933, 2840, 1982, 1928, 1929, + 1930, 1931, 1258, 2132, 1878, 3908, 2394, 2640, 2208, 1274, + 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, + 1275, 2086, 1921, 1373, 793, 1828, 1828, 2176, 2278, 2077, + 2251, 2079, 3896, 2100, 2101, 2524, 1937, 1828, 1828, 1912, + 2072, 1716, 2098, 2099, 2193, 2408, 2117, 2118, 2119, 3845, + 1258, 1220, 1699, 2318, 2114, 2068, 1953, 1942, 1941, 3844, + 1260, 1261, 1262, 1259, 1955, 917, 2142, 1981, 2252, 2145, + 2146, 1961, 2148, 1643, 2312, 2311, 1945, 2071, 2217, 2187, + 1553, 2206, 2093, 1947, 1948, 3839, 3838, 1983, 1984, 3837, + 3836, 1722, 1723, 1724, 1725, 1726, 2178, 917, 696, 3816, + 3815, 1960, 3790, 1962, 1963, 3897, 2250, 2422, 2425, 2283, + 3540, 3488, 3454, 2053, 3402, 1069, 1965, 1969, 1069, 2052, + 671, 671, 3846, 2047, 1956, 1957, 679, 1069, 1970, 2199, + 2058, 3398, 2381, 1767, 2200, 1978, 1980, 1771, 1772, 1773, + 1774, 1966, 1967, 2076, 2087, 2078, 2130, 1812, 1260, 1261, + 1262, 1259, 3303, 3008, 2103, 1822, 2744, 1066, 2252, 2252, + 1946, 1977, 2252, 2252, 2732, 2724, 1710, 2679, 2661, 1066, + 2183, 2113, 2217, 2217, 1068, 2252, 2120, 2121, 2056, 2112, + 1444, 2171, 1964, 2556, 3489, 3455, 1068, 3403, 2649, 2642, + 2139, 1766, 1539, 2171, 2248, 1222, 4121, 2637, 1971, 2629, + 2627, 1974, 1975, 2625, 3399, 2623, 4104, 1882, 1875, 3475, + 2380, 2314, 3037, 2842, 2156, 2290, 2666, 1100, 1101, 1102, + 2289, 2665, 2657, 1069, 932, 3304, 2524, 2422, 2425, 2381, + 2274, 2402, 2265, 2235, 2236, 2264, 1275, 1258, 1258, 2177, + 1258, 2381, 2271, 2426, 2263, 2184, 1945, 2186, 2421, 2415, + 2420, 1099, 2418, 2423, 1096, 2189, 2231, 2253, 2256, 2198, + 2197, 2638, 2643, 695, 2410, 1066, 2137, 2216, 2323, 2324, + 2638, 2327, 2630, 2628, 2330, 3437, 2624, 3246, 2624, 2195, + 1672, 2123, 1068, 2381, 2313, 2336, 2201, 3722, 1258, 679, + 1949, 750, 3538, 1258, 672, 672, 672, 2214, 1663, 2254, + 1309, 1207, 1291, 1258, 2306, 1258, 691, 2424, 1258, 672, + 672, 672, 672, 1171, 1166, 694, 1968, 1258, 2230, 2102, + 1817, 1816, 2378, 3084, 4115, 693, 1817, 1816, 2239, 4076, + 2252, 2382, 2383, 2384, 3901, 2387, 1516, 2450, 1751, 2232, + 2217, 1467, 692, 3237, 1468, 3880, 3659, 2284, 2285, 2244, + 2287, 3789, 1453, 1673, 1543, 1471, 1454, 2294, 3749, 3688, + 2615, 3687, 1516, 2426, 2196, 1544, 3673, 1471, 2421, 2415, + 2420, 1499, 2418, 2423, 3467, 1875, 939, 3465, 3902, 2444, + 1875, 1875, 3632, 3447, 2233, 2234, 1843, 1844, 1845, 1846, + 3660, 3327, 1850, 1851, 1852, 1853, 1855, 1856, 1857, 1858, + 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1278, 1279, 1280, + 1281, 1282, 1275, 1541, 1093, 1094, 1095, 1098, 3468, 1097, + 3318, 3466, 2399, 3310, 3238, 1757, 2401, 2424, 2403, 2682, + 2141, 2451, 3305, 2144, 1854, 3217, 2147, 672, 1979, 2149, + 1847, 1754, 1756, 1753, 2967, 1755, 2528, 2528, 2070, 2528, + 2307, 2309, 2310, 1274, 1273, 1283, 1284, 1276, 1277, 1278, + 1279, 1280, 1281, 1282, 1275, 1469, 3357, 2966, 3239, 648, + 648, 2810, 2315, 2763, 1453, 2404, 2676, 1187, 1454, 1260, + 1261, 1262, 1259, 1553, 672, 1260, 1261, 1262, 1259, 2342, + 3360, 2641, 2547, 2686, 2181, 2192, 2619, 672, 2180, 2414, + 2179, 2413, 1440, 1187, 2600, 666, 1439, 1332, 1189, 2609, + 2140, 1592, 2551, 2070, 1770, 3038, 2605, 1540, 2607, 3958, + 1770, 223, 2245, 1597, 1907, 2140, 2716, 2456, 2407, 1259, + 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2388, 1069, 2468, + 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, + 3700, 2480, 2481, 2482, 2483, 2484, 2532, 2485, 2530, 3699, + 2534, 2645, 3055, 2542, 2903, 2543, 1262, 1259, 2536, 2901, + 2427, 2428, 2880, 2433, 1260, 1261, 1262, 1259, 2878, 2659, + 1066, 3679, 2206, 3358, 2548, 2549, 3633, 3634, 2558, 1553, + 4111, 1553, 1311, 1553, 3626, 1832, 2391, 1068, 1187, 2241, + 2746, 2397, 2747, 2246, 2398, 1310, 2678, 4086, 2610, 4085, + 1833, 2255, 4084, 1260, 1261, 1262, 1259, 2400, 4082, 4081, + 2669, 2604, 2688, 1260, 1261, 1262, 1259, 4020, 2497, 3988, + 3987, 2396, 1553, 1187, 2503, 3903, 2783, 2710, 3841, 3829, + 1532, 1534, 3819, 2537, 1260, 1261, 1262, 1259, 2262, 3809, + 2809, 3435, 2717, 2611, 3627, 4110, 2269, 1553, 3740, 3662, + 3661, 1551, 3480, 3469, 2389, 2390, 1276, 1277, 1278, 1279, + 1280, 1281, 1282, 1275, 2392, 2393, 2705, 2552, 2286, 1260, + 1261, 1262, 1259, 2291, 2292, 2293, 1551, 1597, 2296, 2297, + 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 3117, 2601, + 2603, 2718, 2555, 2954, 3434, 3306, 2765, 2766, 2655, 2656, + 2769, 3436, 2721, 2722, 1273, 1283, 1284, 1276, 1277, 1278, + 1279, 1280, 1281, 1282, 1275, 671, 1176, 3207, 1187, 3080, + 2694, 1535, 1187, 3050, 2952, 3049, 1185, 2937, 2936, 1553, + 2935, 2927, 1516, 1260, 1261, 1262, 1259, 2690, 2050, 2690, + 2921, 2920, 1598, 2675, 2684, 2719, 2838, 2919, 2670, 1213, + 2708, 3116, 2844, 2953, 2267, 2845, 2918, 2950, 2759, 2662, + 2667, 2939, 2660, 1266, 1267, 1268, 1269, 1270, 1271, 1272, + 1264, 2651, 2750, 2855, 1260, 1261, 1262, 1259, 1260, 1261, + 1262, 1259, 2631, 1187, 2951, 2826, 1260, 1261, 1262, 1259, + 3103, 2877, 2680, 2681, 1710, 2544, 2317, 2822, 1187, 1187, + 1187, 1979, 2706, 2159, 1187, 3998, 2887, 2888, 2889, 2890, + 1187, 2897, 2696, 2898, 2899, 2158, 2900, 2949, 2902, 2157, + 3603, 2938, 2153, 2823, 2266, 2152, 2109, 2602, 1897, 2897, + 1069, 1895, 1260, 1261, 1262, 1259, 1664, 1391, 3441, 2001, + 3446, 2528, 2856, 3194, 4107, 2807, 1471, 1260, 1261, 1262, + 1259, 1260, 1261, 1262, 1259, 2955, 3782, 3783, 2683, 2846, + 3591, 2259, 4105, 4087, 2835, 648, 3579, 2796, 1260, 1261, + 1262, 1259, 4074, 2050, 1169, 4036, 4035, 1187, 2070, 2070, + 2070, 2070, 2070, 2070, 2789, 4032, 2791, 1260, 1261, 1262, + 1259, 3964, 3963, 3770, 1187, 2070, 2858, 3944, 2528, 3888, + 1875, 2875, 1875, 1333, 3637, 2875, 2805, 3882, 2788, 3865, + 3590, 3856, 2961, 3833, 3016, 4113, 1553, 797, 142, 2871, + 2829, 1875, 1875, 142, 2837, 8, 3828, 672, 672, 2564, + 2727, 2728, 7, 1168, 2882, 2843, 2733, 1260, 1261, 1262, + 1259, 3528, 3827, 3786, 1921, 3772, 745, 3771, 3741, 747, + 2857, 3681, 2860, 1591, 746, 3641, 2873, 3630, 1260, 1261, + 1262, 1259, 2909, 2910, 2249, 2879, 3390, 2885, 1260, 1261, + 1262, 1259, 3612, 3610, 2876, 3608, 3004, 2925, 2926, 3605, + 3602, 3601, 223, 3577, 3575, 2972, 678, 223, 3120, 142, + 3548, 2917, 3545, 1260, 1261, 1262, 1259, 3542, 2247, 2929, + 2959, 3431, 2644, 2963, 2647, 3418, 3411, 3395, 3393, 1828, + 3388, 1828, 3017, 3338, 3065, 1260, 1261, 1262, 1259, 3316, + 3932, 2854, 3315, 3313, 2673, 3312, 3307, 2968, 3079, 2962, + 3301, 3300, 3218, 3119, 1553, 3181, 2965, 3086, 4062, 3180, + 2847, 3179, 1260, 1261, 1262, 1259, 3170, 3168, 3165, 2852, + 2853, 3163, 2322, 3060, 3034, 3094, 3007, 3006, 3005, 3001, + 1260, 1261, 1262, 1259, 3091, 3072, 3070, 3048, 2687, 3039, + 3023, 2693, 2948, 2940, 3043, 3024, 1260, 1261, 1262, 1259, + 1511, 3021, 2711, 2712, 2930, 2928, 2924, 1522, 2923, 2848, + 2714, 2715, 2922, 2772, 2851, 1874, 1624, 1625, 1069, 2764, + 3064, 2760, 853, 852, 2870, 2652, 2720, 2337, 1559, 2331, + 1069, 2985, 2986, 2987, 2988, 2989, 2990, 2328, 2162, 2155, + 1067, 1885, 1884, 1665, 1632, 142, 1340, 1336, 1335, 3041, + 3040, 1629, 1172, 921, 1633, 1722, 1875, 3083, 3920, 3167, + 142, 3916, 142, 3766, 3088, 3062, 3171, 3172, 3173, 3175, + 3765, 3177, 3178, 1617, 2787, 3754, 3073, 3750, 2564, 3058, + 3056, 1187, 3063, 1618, 1619, 3061, 3604, 3197, 3076, 3075, + 3074, 206, 3586, 197, 168, 3558, 3460, 3211, 3459, 3458, + 3428, 3407, 672, 3405, 3404, 3401, 3096, 3400, 3394, 3392, + 3373, 3363, 3362, 3349, 3082, 3227, 1187, 3102, 3095, 672, + 3118, 1187, 1187, 3348, 3247, 3115, 3184, 3155, 3111, 3112, + 2070, 2378, 3108, 3245, 3110, 3109, 3122, 2849, 2850, 2872, + 3113, 3105, 3104, 3157, 3098, 3032, 2785, 1260, 1261, 1262, + 1259, 2743, 2626, 2444, 2872, 2883, 2884, 2742, 2622, 2621, + 2886, 2741, 3221, 3230, 202, 3271, 2893, 3274, 3234, 3274, + 3274, 2822, 2295, 2288, 1187, 2282, 2281, 2280, 1260, 1261, + 1262, 1259, 3162, 3161, 1260, 1261, 1262, 1259, 1260, 1261, + 1262, 1259, 3296, 2240, 2279, 3254, 3292, 3183, 2277, 2273, + 1553, 1553, 2272, 3199, 3106, 3107, 1069, 2740, 1069, 3249, + 3258, 3260, 2270, 1069, 2261, 3182, 2258, 1274, 1273, 1283, + 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1275, 1551, + 1551, 2257, 2161, 2984, 1260, 1261, 1262, 1259, 3243, 1868, + 1069, 3220, 1867, 1866, 3297, 3298, 2739, 672, 1066, 1831, + 2984, 3240, 1830, 3244, 3197, 1821, 206, 3820, 3229, 1565, + 1563, 4061, 3270, 3232, 3233, 1068, 4019, 1516, 3253, 3938, + 2050, 2050, 3279, 1260, 1261, 1262, 1259, 1330, 2414, 1875, + 2413, 3915, 3269, 3930, 3129, 3130, 3003, 3670, 3851, 3848, + 3131, 3132, 3133, 3134, 3835, 3135, 3136, 3137, 3138, 3139, + 3140, 3141, 3142, 3143, 3144, 3145, 3275, 3276, 3830, 3294, + 3280, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1275, 3735, 1187, 3734, 3716, 3698, 2710, 202, + 3694, 3672, 3656, 4054, 2738, 3559, 3361, 3556, 3302, 3526, + 708, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1275, 3525, 3522, 3277, 3521, 3487, 3042, 3484, + 3044, 1260, 1261, 1262, 1259, 2737, 3482, 3449, 3323, 3324, + 3114, 3308, 3311, 1612, 3314, 3309, 3928, 2736, 3317, 1875, + 3321, 3926, 2735, 672, 1875, 1623, 1614, 4052, 3334, 1628, + 3335, 1801, 1260, 1261, 1262, 1259, 2192, 1631, 1927, 3340, + 2734, 1620, 1447, 1932, 1260, 1261, 1262, 1259, 3342, 1260, + 1261, 1262, 1259, 2995, 2956, 2881, 3345, 3346, 3347, 1286, + 2831, 1290, 2830, 2824, 2790, 2745, 3252, 1260, 1261, 1262, + 1259, 3097, 2636, 3351, 2546, 2486, 2379, 1287, 1289, 1285, + 2351, 1288, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, + 1280, 1281, 1282, 1275, 2316, 1752, 2134, 3415, 202, 3121, + 3417, 2731, 2122, 1911, 3419, 3248, 1881, 1695, 1646, 3425, + 3250, 3251, 3377, 2730, 3380, 1985, 1986, 3381, 3677, 2729, + 1621, 1390, 1375, 1371, 3396, 3374, 1370, 1369, 1260, 1261, + 1262, 1259, 1368, 1367, 3386, 1366, 1365, 3376, 1364, 1363, + 1260, 1261, 1262, 1259, 672, 2050, 1260, 1261, 1262, 1259, + 1362, 1361, 1360, 2690, 1359, 3453, 3420, 2872, 3422, 2723, + 1358, 3427, 1357, 142, 142, 142, 1067, 1356, 3430, 1355, + 1354, 2528, 2070, 3472, 2111, 1353, 1352, 1351, 1350, 1349, + 2111, 2111, 2111, 3408, 1348, 1347, 1260, 1261, 1262, 1259, + 1346, 1343, 2872, 3412, 1342, 1341, 3490, 2872, 2872, 1187, + 3414, 1339, 1338, 1337, 1797, 1334, 1069, 1327, 3271, 1326, + 1324, 1794, 1187, 1069, 1323, 1796, 1793, 1795, 1799, 1800, + 1322, 1321, 1320, 1798, 1187, 1319, 3537, 1318, 1317, 1316, + 1553, 1315, 1314, 1313, 1308, 3442, 1307, 3523, 2713, 1292, + 3325, 2386, 2709, 3444, 3474, 1306, 1305, 4003, 2685, 1304, + 2872, 672, 1224, 2050, 1170, 3330, 3331, 1187, 2365, 1551, + 3513, 3520, 3341, 1212, 3278, 1260, 1261, 1262, 1259, 1260, + 1261, 1262, 1259, 3333, 3539, 1260, 1261, 1262, 1259, 3477, + 3471, 2811, 3470, 2557, 3481, 2164, 3483, 1223, 3339, 223, + 1765, 3336, 3450, 3451, 3452, 2998, 2993, 3002, 3456, 3457, + 2999, 2991, 1187, 3552, 3549, 3527, 3532, 2992, 125, 2996, + 3529, 3957, 3867, 3563, 2997, 2650, 3536, 1260, 1261, 1262, + 1259, 3561, 67, 66, 3541, 3000, 3544, 2518, 2519, 3562, + 2639, 3543, 3547, 1441, 1939, 1940, 3216, 3267, 3551, 3268, + 3553, 3078, 3550, 2454, 3606, 2905, 3554, 3546, 1934, 1935, + 1936, 3533, 2906, 2907, 2908, 3614, 3352, 3378, 3379, 2039, + 1187, 1606, 2634, 3584, 2655, 2656, 2338, 1804, 1805, 1806, + 1807, 1808, 1809, 1802, 1803, 2674, 3570, 674, 1660, 3560, + 1187, 1553, 1553, 1640, 3580, 2124, 3227, 1218, 1379, 3581, + 3192, 675, 676, 3185, 2859, 2832, 2406, 2374, 1943, 3649, + 2564, 3649, 1910, 3611, 4065, 3613, 1817, 1816, 3832, 3565, + 1551, 1763, 3299, 1187, 3666, 1187, 3638, 3643, 3644, 1386, + 1387, 1384, 1385, 2500, 3669, 3639, 3671, 1382, 1383, 1380, + 1381, 2493, 1553, 2051, 3646, 1508, 1507, 1251, 3620, 3622, + 3621, 3640, 2182, 3631, 3344, 3026, 2339, 2194, 1460, 1459, + 672, 3600, 1187, 1187, 1432, 1483, 1187, 1187, 4026, 4024, + 3654, 1763, 3981, 3642, 3954, 3653, 3953, 3951, 3892, 3852, + 2178, 3474, 3665, 3730, 3718, 3729, 3617, 3667, 3576, 1069, + 3713, 3678, 3397, 3370, 3513, 3520, 3369, 1945, 3702, 3703, + 3727, 3682, 3714, 3715, 3675, 3355, 2439, 2409, 1662, 3354, + 3389, 3473, 3736, 3737, 3036, 1457, 3416, 3391, 4056, 4055, + 3476, 3081, 2770, 2506, 3674, 1553, 2367, 2260, 1394, 2352, + 2353, 2354, 1209, 3724, 3680, 4055, 4056, 3696, 3350, 1184, + 210, 3, 1475, 75, 2369, 2370, 2371, 2372, 3767, 3406, + 3723, 2, 4078, 1562, 1551, 3725, 4079, 678, 3760, 1, + 2513, 2517, 2518, 2519, 2514, 2522, 2515, 2520, 3719, 3748, + 2516, 2751, 2521, 1879, 1388, 916, 911, 1529, 3743, 3747, + 912, 913, 914, 915, 2538, 1184, 2104, 1557, 1883, 3755, + 3759, 918, 981, 142, 3009, 3010, 3343, 3801, 3012, 3795, + 2773, 2213, 2973, 3592, 2491, 3593, 2355, 3774, 3210, 1442, + 974, 1823, 1677, 1187, 1201, 3720, 1674, 1200, 1198, 3721, + 1768, 799, 2167, 2957, 3818, 2931, 3785, 3824, 3726, 4064, + 4099, 4018, 4067, 3793, 1693, 783, 3945, 3857, 3798, 4022, + 3796, 3859, 3746, 3584, 3797, 3491, 2218, 1256, 3057, 1001, + 840, 3810, 810, 1325, 1653, 3127, 3814, 1187, 3530, 3125, + 809, 142, 1553, 3439, 2801, 3731, 3029, 3803, 142, 1002, + 2893, 2150, 1522, 3854, 3744, 1607, 1611, 2405, 1069, 3831, + 3811, 142, 3911, 3676, 142, 142, 3263, 2867, 1635, 3906, + 3485, 1551, 3596, 3840, 3594, 3668, 3595, 142, 715, 2083, + 646, 1051, 3717, 2984, 1875, 2163, 3842, 716, 2385, 3969, + 3834, 954, 2364, 955, 947, 2820, 3884, 2819, 3873, 1559, + 1875, 1733, 1265, 3555, 1750, 3853, 3557, 3146, 3147, 1302, + 754, 2243, 2111, 2798, 3508, 3022, 74, 73, 3663, 3664, + 72, 71, 231, 801, 230, 3893, 3768, 3564, 2984, 1274, + 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, + 1275, 3123, 3635, 3941, 4069, 3881, 780, 779, 3887, 778, + 777, 776, 775, 3910, 2511, 2512, 1187, 3895, 2510, 2508, + 2507, 2065, 2064, 3035, 1553, 3353, 2129, 3935, 2131, 3225, + 2896, 3904, 3942, 3925, 3927, 3929, 3931, 3909, 3849, 3850, + 2891, 1990, 1988, 3843, 1520, 3943, 2872, 2434, 2441, 3918, + 1987, 4000, 3924, 1551, 3387, 1274, 1273, 1283, 1284, 1276, + 1277, 1278, 1279, 1280, 1281, 1282, 1275, 3587, 3934, 3921, + 3922, 3693, 2941, 3950, 3948, 1553, 3583, 1933, 3801, 1274, + 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, + 1275, 3962, 2430, 2007, 3991, 2912, 2004, 2003, 2904, 1716, + 3999, 1716, 3689, 3683, 1551, 3982, 3984, 2035, 3799, 3985, + 3986, 3648, 3492, 3493, 3499, 2373, 1120, 3894, 1116, 3983, + 1118, 1119, 3898, 3899, 1117, 2695, 3319, 4015, 2411, 3187, + 2347, 2346, 4008, 2344, 4009, 2343, 4010, 1417, 4011, 3883, + 3965, 4012, 3616, 2562, 4025, 2560, 4027, 4028, 1167, 3332, + 3328, 2175, 4023, 3919, 4021, 3337, 2994, 2190, 3077, 2066, + 3873, 2062, 1187, 4031, 1283, 1284, 1276, 1277, 1278, 1279, + 1280, 1281, 1282, 1275, 1801, 2061, 1091, 1090, 1588, 2975, + 2501, 3776, 3824, 4044, 1938, 948, 2362, 109, 41, 122, + 108, 4046, 4047, 4045, 4050, 185, 59, 4053, 4063, 4051, + 4071, 184, 58, 4070, 120, 4057, 4058, 4059, 4060, 182, + 2513, 2517, 2518, 2519, 2514, 2522, 2515, 2520, 4083, 4075, + 2516, 57, 2521, 103, 1187, 102, 119, 180, 56, 215, + 214, 2836, 217, 216, 213, 4088, 2612, 3910, 4089, 4091, + 2613, 212, 1595, 211, 4097, 3955, 3652, 4101, 3937, 906, + 4098, 2069, 44, 43, 186, 42, 110, 60, 40, 39, + 38, 34, 13, 1509, 1510, 12, 1512, 1513, 35, 1517, + 1518, 1519, 22, 21, 1681, 4109, 20, 26, 32, 31, + 135, 134, 30, 133, 4071, 4117, 132, 4070, 4116, 1716, + 131, 4033, 4034, 130, 129, 128, 4101, 4118, 4038, 4039, + 4040, 4041, 4122, 1568, 1569, 1570, 1571, 1572, 127, 1574, + 1575, 1576, 1577, 1578, 29, 19, 51, 1584, 1585, 1586, + 1587, 50, 49, 48, 47, 46, 142, 9, 123, 142, + 142, 118, 142, 116, 28, 117, 114, 206, 64, 197, + 168, 115, 113, 112, 111, 106, 104, 1797, 86, 85, + 84, 99, 98, 97, 1794, 96, 198, 3497, 1796, 1793, + 1795, 1799, 1800, 189, 95, 94, 1798, 199, 92, 93, + 1000, 83, 1067, 82, 81, 142, 80, 79, 101, 107, + 105, 90, 100, 91, 1067, 89, 140, 88, 87, 78, + 77, 76, 166, 165, 164, 163, 162, 1312, 3509, 160, + 142, 126, 161, 159, 158, 157, 156, 155, 154, 52, + 202, 3500, 3027, 3028, 53, 54, 55, 176, 175, 177, + 179, 181, 3495, 178, 183, 173, 171, 3517, 3518, 174, + 172, 170, 69, 3496, 11, 121, 18, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 727, 726, 733, 723, 0, 989, 0, 0, + 0, 0, 0, 3917, 0, 730, 731, 0, 732, 736, + 3501, 0, 717, 0, 0, 0, 0, 0, 0, 0, + 1292, 0, 741, 0, 0, 0, 0, 148, 149, 0, + 150, 151, 0, 0, 0, 152, 0, 0, 153, 1782, + 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 1804, 1805, 1806, 1807, 1808, 1809, 1802, 1803, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 745, 985, + 986, 747, 0, 0, 0, 0, 746, 0, 0, 0, + 1029, 0, 0, 0, 0, 0, 0, 0, 3996, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 167, 195, 204, 196, 124, 0, 0, 3516, 0, + 2420, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 188, 187, 0, 0, 0, + 0, 70, 0, 0, 0, 3505, 0, 0, 4042, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3502, 3506, 3504, + 3503, 0, 0, 0, 1031, 0, 3996, 1030, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 190, 191, 192, 0, 0, 3511, 3512, 0, + 1716, 0, 0, 0, 0, 0, 1015, 3219, 0, 0, + 0, 0, 0, 0, 0, 990, 718, 720, 719, 0, + 0, 0, 3996, 0, 3231, 0, 0, 725, 0, 0, + 200, 0, 0, 0, 0, 0, 0, 0, 0, 729, + 0, 0, 992, 0, 0, 0, 744, 0, 0, 0, + 3519, 136, 0, 722, 0, 193, 0, 137, 0, 0, + 0, 0, 3498, 0, 0, 0, 0, 0, 3510, 0, + 727, 726, 733, 723, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 730, 731, 0, 732, 736, 4120, 0, + 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 741, 2036, 0, 0, 0, 0, 1997, 1014, 1012, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, - 0, 0, 2380, 2381, 2382, 2383, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 2048, 2015, 0, 0, - 0, 0, 0, 0, 0, 138, 2049, 2050, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2125, 63, 2045, - 0, 0, 0, 0, 2006, 0, 0, 0, 0, 726, - 730, 736, 2014, 737, 739, 0, 65, 740, 741, 742, - 0, 0, 744, 745, 3531, 0, 0, 0, 0, 0, - 2022, 0, 0, 0, 0, 2048, 2015, 0, 0, 0, - 0, 0, 0, 0, 0, 2049, 2050, 65, 0, 0, - 0, 146, 203, 0, 147, 1265, 1266, 1267, 1264, 169, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 1011, 2531, 0, 2039, 2006, 0, + 0, 0, 0, 0, 2116, 0, 984, 2040, 2041, 0, + 0, 0, 2111, 0, 0, 0, 0, 991, 1024, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 724, 728, 734, 2005, 735, 737, 65, 0, 738, 739, + 740, 1020, 0, 742, 743, 0, 0, 0, 0, 0, + 0, 2013, 0, 0, 0, 0, 0, 0, 3515, 0, + 2069, 0, 0, 0, 0, 0, 0, 0, 142, 0, + 0, 146, 203, 0, 147, 0, 0, 1021, 1025, 169, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 2014, 0, 0, 0, 0, 0, 1883, 0, 0, - 0, 0, 146, 203, 0, 147, 0, 0, 0, 2022, - 169, 1528, 0, 1883, 0, 61, 3571, 0, 2038, 3573, - 3530, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3580, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 45, 0, 0, 0, 1809, 0, 62, 1565, 0, - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2120, 0, 0, 0, 0, 0, 2038, 0, 143, - 144, 139, 45, 145, 0, 0, 0, 0, 62, 0, - 0, 0, 2005, 2007, 2004, 0, 0, 2001, 723, 0, - 0, 0, 2026, 0, 0, 0, 0, 0, 0, 0, - 143, 144, 0, 2032, 145, 0, 0, 0, 0, 0, - 0, 2017, 0, 2000, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2020, 2054, 0, 0, 2021, 2023, 2025, - 0, 2027, 2028, 2029, 2033, 2034, 2035, 2037, 2040, 2041, - 2042, 2005, 2876, 2004, 0, 0, 2875, 0, 2030, 2039, - 2031, 2026, 0, 0, 0, 0, 0, 0, 0, 0, - 2009, 0, 2032, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2020, 2054, 2046, 0, 2021, 2023, 2025, 0, - 2027, 2028, 2029, 2033, 2034, 2035, 2037, 2040, 2041, 2042, - 0, 0, 0, 0, 0, 0, 0, 2030, 2039, 2031, - 0, 0, 0, 0, 0, 0, 2002, 2003, 1805, 2009, - 0, 0, 0, 0, 0, 1802, 0, 0, 0, 1804, - 1801, 1803, 1807, 1808, 2043, 0, 0, 1806, 0, 0, - 0, 0, 0, 2046, 0, 0, 0, 0, 0, 0, - 0, 2019, 0, 0, 0, 0, 0, 0, 2018, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2002, 2003, 0, 0, 0, - 0, 0, 2036, 0, 0, 0, 0, 0, 0, 0, - 0, 2024, 0, 2043, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2052, 2051, 0, 0, 0, 0, - 2019, 0, 0, 0, 0, 0, 0, 2018, 0, 1142, - 0, 0, 2849, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2036, 0, 0, 0, 0, 0, 0, 0, 0, - 2024, 0, 0, 0, 0, 0, 0, 2011, 0, 0, - 0, 0, 0, 2052, 2051, 0, 0, 0, 0, 0, - 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, - 1800, 1812, 1813, 1814, 1815, 1816, 1817, 1810, 1811, 0, - 0, 0, 1142, 0, 0, 0, 0, 0, 0, 2047, - 0, 0, 2053, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2011, 0, 0, 729, - 728, 735, 725, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 732, 733, 0, 734, 738, 0, 0, 719, - 0, 0, 1317, 1127, 0, 0, 0, 0, 0, 743, - 0, 0, 0, 0, 0, 1142, 0, 0, 2047, 0, - 0, 2053, 0, 0, 1150, 1154, 1156, 1158, 1160, 1161, - 1163, 0, 1168, 1164, 1165, 1166, 1167, 0, 1145, 1146, - 1147, 1148, 1125, 1126, 1151, 0, 1128, 0, 1130, 1131, - 1132, 1133, 1129, 1134, 1135, 1136, 1137, 1138, 1141, 1143, - 1139, 1140, 1149, 0, 3041, 3042, 0, 0, 0, 3936, - 1153, 1155, 1157, 1159, 1162, 0, 1127, 0, 0, 0, - 1117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1150, 1154, 1156, - 1158, 1160, 1161, 1163, 0, 1168, 1164, 1165, 1166, 1167, - 1144, 1145, 1146, 1147, 1148, 1125, 1126, 1151, 1809, 1128, - 0, 1130, 1131, 1132, 1133, 1129, 1134, 1135, 1136, 1137, - 1138, 1141, 1143, 1139, 1140, 1149, 0, 2045, 0, 1127, - 0, 0, 0, 1153, 1155, 1157, 1159, 1162, 0, 0, - 0, 0, 0, 0, 0, 4016, 0, 0, 0, 0, - 1150, 1154, 1156, 1158, 1160, 1161, 1163, 0, 1168, 1164, - 1165, 1166, 1167, 2048, 1145, 1146, 1147, 1148, 1125, 1126, - 1151, 0, 1128, 1144, 1130, 1131, 1132, 1133, 1129, 1134, - 1135, 1136, 1137, 1138, 1141, 1143, 1139, 1140, 1149, 0, - 0, 0, 0, 720, 722, 721, 1153, 1155, 1157, 1159, - 1162, 0, 0, 0, 727, 0, 0, 3841, 0, 0, - 0, 0, 0, 0, 0, 0, 731, 2022, 0, 0, - 0, 0, 0, 746, 4016, 0, 0, 0, 0, 0, - 724, 0, 0, 0, 0, 0, 1144, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2704, 2705, 0, 729, - 728, 735, 725, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 732, 733, 0, 734, 738, 0, 0, 719, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 743, - 4016, 1805, 0, 0, 0, 2038, 0, 0, 1802, 0, - 0, 0, 1804, 1801, 1803, 1807, 1808, 0, 0, 0, - 1806, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3233, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 747, 0, 3245, 749, 0, - 0, 0, 0, 748, 0, 0, 0, 0, 0, 0, - 0, 0, 3261, 0, 0, 0, 4140, 726, 730, 736, - 0, 737, 739, 0, 0, 740, 741, 742, 0, 0, - 744, 745, 0, 0, 0, 0, 0, 0, 0, 2026, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1152, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2020, 2054, 0, 0, 2021, 2023, 2025, 0, 2027, 2028, - 2029, 2033, 2034, 2035, 2037, 2040, 2041, 2042, 0, 0, - 0, 0, 0, 0, 0, 2030, 2039, 2031, 0, 0, - 0, 0, 0, 1790, 1791, 1792, 1793, 1794, 1795, 1796, - 1797, 1798, 1799, 1800, 1812, 1813, 1814, 1815, 1816, 1817, - 1810, 1811, 0, 0, 0, 0, 2120, 0, 0, 0, - 0, 2046, 0, 1152, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 720, 722, 721, 0, 0, 0, 0, - 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 731, 0, 0, 0, - 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, - 724, 2043, 0, 0, 0, 0, 723, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1152, 0, 2019, 0, - 0, 0, 0, 0, 0, 2018, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2036, - 0, 0, 0, 0, 0, 0, 0, 819, 2024, 0, + 0, 0, 0, 0, 0, 0, 0, 1008, 0, 1006, + 1010, 1028, 0, 0, 0, 1007, 1004, 1003, 0, 1009, + 994, 995, 993, 996, 997, 998, 999, 0, 1026, 2029, + 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1022, 1023, 0, 3514, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3383, 0, + 139, 45, 0, 0, 718, 720, 719, 62, 0, 0, + 0, 5, 0, 0, 0, 725, 0, 0, 1018, 0, + 0, 0, 0, 0, 1017, 0, 0, 729, 0, 143, + 144, 0, 0, 145, 744, 0, 0, 0, 0, 1013, + 0, 722, 0, 1996, 1998, 1995, 0, 0, 1992, 721, + 0, 0, 0, 2017, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2023, 0, 2036, 0, 0, 0, + 0, 1997, 2008, 0, 1991, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2011, 2045, 0, 0, 2012, 2014, + 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, + 2032, 2033, 2039, 2006, 0, 0, 0, 0, 0, 2021, + 2030, 2022, 2040, 2041, 0, 0, 0, 1016, 0, 2111, + 0, 2000, 0, 987, 988, 982, 0, 0, 0, 0, + 983, 0, 0, 0, 0, 0, 0, 0, 2005, 0, + 0, 0, 0, 0, 0, 2037, 0, 142, 0, 0, + 0, 0, 0, 0, 0, 0, 2013, 142, 724, 728, + 734, 0, 735, 737, 0, 0, 738, 739, 740, 0, + 0, 742, 743, 0, 0, 0, 0, 1993, 1994, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2034, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2010, 0, 0, 0, 0, 0, 0, 2009, + 0, 0, 0, 0, 2029, 0, 2111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, + 0, 0, 2015, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2043, 2042, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2069, 2069, 2069, 2069, 2069, + 2069, 0, 0, 0, 0, 0, 0, 0, 1996, 2862, + 1995, 0, 2069, 2861, 0, 0, 0, 0, 2017, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2002, 2023, + 0, 0, 0, 0, 0, 0, 0, 721, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2011, + 2045, 0, 0, 2012, 2014, 2016, 0, 2018, 2019, 2020, + 2024, 2025, 2026, 2028, 2031, 2032, 2033, 0, 0, 0, + 2038, 0, 0, 2044, 2021, 2030, 2022, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2000, 1139, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, + 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, + 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3701, 0, 142, 0, 0, + 0, 0, 1993, 1994, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2010, 0, 0, + 0, 0, 0, 0, 2009, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2027, 0, + 0, 1124, 0, 0, 0, 0, 0, 2015, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2043, 2042, 1147, 1151, 1153, 1155, 1157, 1158, 1160, 0, + 1165, 1161, 1162, 1163, 1164, 0, 1142, 1143, 1144, 1145, + 1122, 1123, 1148, 0, 1125, 0, 1127, 1128, 1129, 1130, + 1126, 1131, 1132, 1133, 1134, 1135, 1138, 1140, 1136, 1137, + 1146, 0, 0, 0, 0, 0, 0, 0, 1150, 1152, + 1154, 1156, 1159, 2002, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2036, 0, 0, 0, 0, 0, 0, 206, 0, + 0, 0, 0, 1067, 0, 142, 0, 0, 1141, 1124, + 142, 1139, 0, 1114, 0, 2038, 0, 2069, 2044, 0, + 0, 3647, 0, 0, 0, 0, 0, 2039, 0, 0, + 1147, 1151, 1153, 1155, 1157, 1158, 1160, 142, 1165, 1161, + 1162, 1163, 1164, 0, 1142, 1143, 1144, 1145, 1122, 1123, + 1148, 0, 1125, 2036, 1127, 1128, 1129, 1130, 1126, 1131, + 1132, 1133, 1134, 1135, 1138, 1140, 1136, 1137, 1146, 0, + 0, 202, 0, 0, 0, 0, 1150, 1152, 1154, 1156, + 1159, 2013, 0, 0, 0, 0, 0, 0, 0, 2039, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1141, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3823, 0, 1124, 0, 0, 0, 0, + 0, 0, 0, 2013, 0, 0, 0, 0, 0, 2029, + 0, 0, 0, 0, 2691, 2692, 1147, 1151, 1153, 1155, + 1157, 1158, 1160, 0, 1165, 1161, 1162, 1163, 1164, 0, + 1142, 1143, 1144, 1145, 1122, 1123, 1148, 0, 1125, 0, + 1127, 1128, 1129, 1130, 1126, 1131, 1132, 1133, 1134, 1135, + 1138, 1140, 1136, 1137, 1146, 0, 0, 0, 0, 0, + 0, 0, 1150, 1152, 1154, 1156, 1159, 0, 0, 0, + 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2017, 0, 0, 0, 0, 0, 0, + 0, 0, 1141, 0, 2023, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2011, 2045, 0, 0, 2012, 2014, + 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, + 2032, 2033, 0, 0, 0, 0, 0, 0, 0, 2021, + 2030, 2022, 0, 0, 0, 2017, 0, 0, 1149, 0, + 0, 0, 0, 0, 0, 0, 2023, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2037, 2011, 2045, 0, 0, + 2012, 2014, 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, + 2028, 2031, 2032, 2033, 0, 0, 0, 0, 0, 0, + 0, 2021, 2030, 2022, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, + 142, 0, 0, 0, 0, 2034, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, + 0, 0, 2010, 0, 0, 0, 0, 0, 0, 2009, + 0, 0, 0, 0, 0, 0, 1149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, + 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, + 0, 0, 2015, 0, 0, 0, 0, 2034, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2010, 0, 0, 0, 0, 0, + 0, 2009, 0, 0, 0, 0, 817, 0, 0, 0, + 0, 0, 0, 0, 0, 401, 0, 0, 532, 565, + 554, 638, 520, 0, 0, 2027, 0, 0, 0, 769, + 0, 0, 0, 336, 2015, 0, 369, 569, 551, 561, + 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, + 543, 513, 544, 545, 808, 568, 519, 434, 385, 586, + 585, 0, 0, 877, 885, 0, 0, 0, 0, 0, + 0, 0, 1149, 873, 0, 0, 142, 0, 761, 0, + 3651, 798, 853, 852, 785, 795, 0, 0, 309, 229, + 514, 634, 516, 515, 786, 0, 787, 791, 794, 790, + 788, 789, 0, 868, 0, 0, 0, 0, 0, 0, + 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 762, 763, 0, + 0, 0, 3655, 818, 0, 764, 0, 0, 813, 792, + 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, + 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, + 458, 436, 382, 359, 360, 300, 142, 420, 334, 350, + 331, 398, 793, 816, 820, 330, 891, 814, 468, 303, + 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, + 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, + 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, + 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 627, 811, 0, 631, + 0, 470, 0, 0, 875, 0, 0, 0, 440, 0, + 0, 366, 0, 0, 0, 815, 0, 423, 403, 888, + 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, + 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, + 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, + 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, + 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, + 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, + 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, + 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, + 529, 530, 357, 594, 1825, 1824, 1826, 482, 367, 368, + 0, 339, 338, 380, 416, 345, 291, 292, 655, 872, + 399, 596, 629, 630, 521, 142, 887, 867, 869, 870, + 874, 878, 879, 880, 881, 882, 884, 886, 890, 654, + 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, + 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, + 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, + 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, + 889, 556, 533, 559, 474, 536, 535, 0, 0, 570, + 819, 571, 572, 389, 390, 391, 392, 876, 597, 314, + 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, + 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, + 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, + 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, + 311, 462, 433, 377, 550, 577, 898, 871, 897, 899, + 900, 896, 901, 902, 883, 774, 0, 826, 894, 893, + 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, + 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, + 649, 453, 653, 781, 293, 527, 370, 0, 414, 343, + 592, 593, 0, 644, 860, 833, 834, 835, 771, 836, + 830, 831, 772, 832, 861, 824, 857, 858, 800, 827, + 837, 856, 838, 859, 862, 863, 903, 904, 844, 828, + 257, 905, 841, 864, 855, 854, 839, 825, 865, 866, + 807, 802, 842, 843, 829, 848, 849, 850, 773, 821, + 822, 823, 845, 846, 803, 804, 805, 806, 0, 0, + 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, + 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, + 632, 633, 635, 637, 851, 639, 438, 439, 0, 847, + 642, 643, 640, 374, 425, 444, 432, 817, 656, 517, + 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 769, 0, 0, 0, 336, 1876, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 808, 568, 519, 434, 385, + 586, 585, 0, 0, 877, 885, 0, 0, 0, 0, + 0, 0, 0, 0, 873, 0, 2095, 0, 0, 761, + 0, 0, 798, 853, 852, 785, 795, 0, 0, 309, + 229, 514, 634, 516, 515, 786, 0, 787, 791, 794, + 790, 788, 789, 0, 868, 0, 0, 0, 0, 0, + 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 762, 763, + 0, 0, 0, 0, 818, 0, 764, 0, 0, 2096, + 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 793, 816, 820, 330, 891, 814, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 811, 0, + 631, 0, 470, 0, 0, 875, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 815, 0, 423, 403, + 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 872, 399, 596, 629, 630, 521, 0, 887, 867, 869, + 870, 874, 878, 879, 880, 881, 882, 884, 886, 890, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 889, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 819, 571, 572, 389, 390, 391, 392, 876, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 898, 871, 897, + 899, 900, 896, 901, 902, 883, 774, 0, 826, 894, + 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 781, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 860, 833, 834, 835, 771, + 836, 830, 831, 772, 832, 861, 824, 857, 858, 800, + 827, 837, 856, 838, 859, 862, 863, 903, 904, 844, + 828, 257, 905, 841, 864, 855, 854, 839, 825, 865, + 866, 807, 802, 842, 843, 829, 848, 849, 850, 773, + 821, 822, 823, 845, 846, 803, 804, 805, 806, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 851, 639, 438, 439, 0, + 847, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 0, 766, 206, 817, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 771, 0, 3398, 0, 336, 0, 0, 369, 569, 551, + 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 810, 568, 519, 434, 385, - 586, 585, 0, 0, 879, 887, 0, 726, 730, 736, - 0, 737, 739, 0, 875, 740, 741, 742, 0, 763, - 744, 745, 800, 855, 854, 787, 797, 0, 0, 309, - 229, 514, 634, 516, 515, 788, 0, 789, 793, 796, - 792, 790, 791, 0, 870, 0, 0, 0, 0, 0, - 0, 755, 767, 0, 772, 0, 3671, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 764, 765, - 0, 0, 0, 0, 820, 0, 766, 0, 0, 815, - 794, 798, 0, 2120, 0, 0, 299, 441, 460, 310, + 512, 543, 513, 544, 545, 1295, 568, 519, 434, 385, + 586, 585, 0, 0, 877, 885, 0, 0, 0, 0, + 0, 0, 0, 0, 873, 0, 0, 0, 0, 761, + 0, 0, 798, 853, 852, 785, 795, 0, 0, 309, + 229, 514, 634, 516, 515, 786, 0, 787, 791, 794, + 790, 788, 789, 0, 868, 0, 0, 0, 0, 0, + 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 762, 763, + 0, 0, 0, 0, 818, 0, 764, 0, 0, 813, + 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 795, 818, 822, 330, 893, 816, 468, + 350, 331, 398, 793, 816, 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 894, 364, 365, 354, 409, + 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 723, 627, 813, 0, - 631, 0, 470, 0, 0, 877, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 817, 0, 423, 403, - 890, 2120, 0, 421, 371, 455, 411, 461, 442, 469, + 0, 0, 0, 0, 0, 0, 0, 627, 811, 0, + 631, 0, 470, 0, 0, 875, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 815, 0, 423, 403, + 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, @@ -2389,128 +2526,63 @@ var yyAct = [...]int{ 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 1833, 1832, 1834, 482, 367, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 874, 399, 596, 629, 630, 521, 0, 889, 869, 871, - 872, 876, 880, 881, 882, 883, 884, 886, 888, 892, + 872, 399, 596, 629, 630, 521, 0, 887, 867, 869, + 870, 874, 878, 879, 880, 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 891, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 821, 571, 572, 389, 390, 391, 392, 878, 597, + 612, 889, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 819, 571, 572, 389, 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 3718, 487, 488, 344, 351, 506, 353, 313, 404, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 900, 873, 899, - 901, 902, 898, 903, 904, 885, 776, 0, 828, 896, - 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, + 424, 311, 462, 433, 377, 550, 577, 898, 871, 897, + 899, 900, 896, 901, 902, 883, 774, 0, 826, 894, + 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 783, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 862, 835, 836, 837, 773, - 838, 832, 833, 774, 834, 863, 826, 859, 860, 802, - 829, 839, 858, 840, 861, 864, 865, 905, 906, 846, - 830, 257, 907, 843, 866, 857, 856, 841, 827, 867, - 868, 809, 804, 844, 845, 831, 850, 851, 852, 775, - 823, 824, 825, 847, 848, 805, 806, 807, 808, 0, + 652, 649, 453, 653, 781, 293, 527, 370, 169, 414, + 343, 592, 593, 0, 644, 860, 833, 834, 835, 771, + 836, 830, 831, 772, 832, 861, 824, 857, 858, 800, + 827, 837, 856, 838, 859, 862, 863, 903, 904, 844, + 828, 257, 905, 841, 864, 855, 854, 839, 825, 865, + 866, 807, 802, 842, 843, 829, 848, 849, 850, 773, + 821, 822, 823, 845, 846, 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 853, 639, 438, 439, 0, - 849, 642, 643, 640, 374, 425, 444, 432, 819, 656, - 517, 518, 657, 628, 0, 768, 0, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 771, 0, 0, 0, 336, 1884, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 810, 568, 519, 434, - 385, 586, 585, 0, 0, 879, 887, 0, 0, 0, - 0, 0, 0, 0, 0, 875, 0, 2104, 0, 0, - 763, 0, 0, 800, 855, 854, 787, 797, 0, 0, - 309, 229, 514, 634, 516, 515, 788, 0, 789, 793, - 796, 792, 790, 791, 0, 870, 0, 0, 0, 0, - 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 764, - 765, 0, 0, 0, 0, 820, 0, 766, 0, 0, - 2105, 794, 798, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 795, 818, 822, 330, 893, 816, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 894, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 813, - 0, 631, 0, 470, 0, 0, 877, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 817, 0, 423, - 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 874, 399, 596, 629, 630, 521, 0, 889, 869, - 871, 872, 876, 880, 881, 882, 883, 884, 886, 888, - 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 891, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 821, 571, 572, 389, 390, 391, 392, 878, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 900, 873, - 899, 901, 902, 898, 903, 904, 885, 776, 0, 828, - 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 783, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 862, 835, 836, 837, - 773, 838, 832, 833, 774, 834, 863, 826, 859, 860, - 802, 829, 839, 858, 840, 861, 864, 865, 905, 906, - 846, 830, 257, 907, 843, 866, 857, 856, 841, 827, - 867, 868, 809, 804, 844, 845, 831, 850, 851, 852, - 775, 823, 824, 825, 847, 848, 805, 806, 807, 808, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 853, 639, 438, 439, - 0, 849, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 0, 768, 206, 819, 0, - 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, + 0, 632, 633, 635, 637, 851, 639, 438, 439, 0, + 847, 642, 643, 640, 374, 425, 444, 432, 817, 656, + 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 771, 0, 0, 0, 336, 0, 0, 369, 569, + 0, 769, 0, 0, 0, 336, 4119, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 1300, 568, 519, 434, - 385, 586, 585, 0, 0, 879, 887, 0, 0, 0, - 0, 0, 0, 0, 0, 875, 0, 0, 0, 0, - 763, 0, 0, 800, 855, 854, 787, 797, 0, 0, - 309, 229, 514, 634, 516, 515, 788, 0, 789, 793, - 796, 792, 790, 791, 0, 870, 0, 0, 0, 0, - 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 764, - 765, 0, 0, 0, 0, 820, 0, 766, 0, 0, - 815, 794, 798, 0, 0, 0, 0, 299, 441, 460, + 542, 512, 543, 513, 544, 545, 808, 568, 519, 434, + 385, 586, 585, 0, 0, 877, 885, 0, 0, 0, + 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, + 761, 0, 0, 798, 853, 852, 785, 795, 0, 0, + 309, 229, 514, 634, 516, 515, 786, 0, 787, 791, + 794, 790, 788, 789, 0, 868, 0, 0, 0, 0, + 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, + 763, 0, 0, 0, 0, 818, 0, 764, 0, 0, + 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 795, 818, 822, 330, 893, 816, + 334, 350, 331, 398, 793, 816, 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 894, 364, 365, 354, + 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 813, - 0, 631, 0, 470, 0, 0, 877, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 817, 0, 423, - 403, 890, 0, 0, 421, 371, 455, 411, 461, 442, + 0, 0, 0, 0, 0, 0, 0, 0, 627, 811, + 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, + 440, 0, 0, 366, 0, 0, 0, 815, 0, 423, + 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, @@ -2520,61 +2592,61 @@ var yyAct = [...]int{ 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 874, 399, 596, 629, 630, 521, 0, 889, 869, - 871, 872, 876, 880, 881, 882, 883, 884, 886, 888, - 892, 654, 0, 575, 590, 658, 589, 651, 405, 0, + 655, 872, 399, 596, 629, 630, 521, 0, 887, 867, + 869, 870, 874, 878, 879, 880, 881, 882, 884, 886, + 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 891, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 821, 571, 572, 389, 390, 391, 392, 878, + 619, 612, 889, 556, 533, 559, 474, 536, 535, 0, + 0, 570, 819, 571, 572, 389, 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 900, 873, - 899, 901, 902, 898, 903, 904, 885, 776, 0, 828, - 896, 895, 897, 0, 0, 0, 0, 0, 0, 0, + 402, 424, 311, 462, 433, 377, 550, 577, 898, 871, + 897, 899, 900, 896, 901, 902, 883, 774, 0, 826, + 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 783, 293, 527, 370, 169, - 414, 343, 592, 593, 0, 644, 862, 835, 836, 837, - 773, 838, 832, 833, 774, 834, 863, 826, 859, 860, - 802, 829, 839, 858, 840, 861, 864, 865, 905, 906, - 846, 830, 257, 907, 843, 866, 857, 856, 841, 827, - 867, 868, 809, 804, 844, 845, 831, 850, 851, 852, - 775, 823, 824, 825, 847, 848, 805, 806, 807, 808, + 327, 652, 649, 453, 653, 781, 293, 527, 370, 0, + 414, 343, 592, 593, 0, 644, 860, 833, 834, 835, + 771, 836, 830, 831, 772, 832, 861, 824, 857, 858, + 800, 827, 837, 856, 838, 859, 862, 863, 903, 904, + 844, 828, 257, 905, 841, 864, 855, 854, 839, 825, + 865, 866, 807, 802, 842, 843, 829, 848, 849, 850, + 773, 821, 822, 823, 845, 846, 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 853, 639, 438, 439, - 0, 849, 642, 643, 640, 374, 425, 444, 432, 819, - 656, 517, 518, 657, 628, 0, 768, 0, 401, 0, + 622, 0, 632, 633, 635, 637, 851, 639, 438, 439, + 0, 847, 642, 643, 640, 374, 425, 444, 432, 817, + 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 336, 4139, 0, 369, + 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 810, 568, 519, - 434, 385, 586, 585, 0, 0, 879, 887, 0, 0, - 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, - 0, 763, 0, 0, 800, 855, 854, 787, 797, 0, - 0, 309, 229, 514, 634, 516, 515, 788, 0, 789, - 793, 796, 792, 790, 791, 0, 870, 0, 0, 0, - 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, + 541, 542, 512, 543, 513, 544, 545, 808, 568, 519, + 434, 385, 586, 585, 0, 0, 877, 885, 0, 0, + 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, + 0, 761, 0, 0, 798, 853, 852, 785, 795, 0, + 0, 309, 229, 514, 634, 516, 515, 786, 0, 787, + 791, 794, 790, 788, 789, 0, 868, 0, 0, 0, + 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 764, 765, 0, 0, 0, 0, 820, 0, 766, 0, - 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, + 762, 763, 0, 0, 0, 0, 818, 0, 764, 0, + 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 795, 818, 822, 330, 893, - 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 894, 364, 365, + 420, 334, 350, 331, 398, 793, 816, 820, 330, 891, + 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 813, 0, 631, 0, 470, 0, 0, 877, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 817, 0, - 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, + 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 815, 0, + 423, 403, 888, 3997, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, @@ -2584,61 +2656,61 @@ var yyAct = [...]int{ 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 874, 399, 596, 629, 630, 521, 0, 889, - 869, 871, 872, 876, 880, 881, 882, 883, 884, 886, - 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, + 292, 655, 872, 399, 596, 629, 630, 521, 0, 887, + 867, 869, 870, 874, 878, 879, 880, 881, 882, 884, + 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 891, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 821, 571, 572, 389, 390, 391, 392, - 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 618, 619, 612, 889, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 819, 571, 572, 389, 390, 391, 392, + 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 900, - 873, 899, 901, 902, 898, 903, 904, 885, 776, 0, - 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 898, + 871, 897, 899, 900, 896, 901, 902, 883, 774, 0, + 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 783, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 862, 835, 836, - 837, 773, 838, 832, 833, 774, 834, 863, 826, 859, - 860, 802, 829, 839, 858, 840, 861, 864, 865, 905, - 906, 846, 830, 257, 907, 843, 866, 857, 856, 841, - 827, 867, 868, 809, 804, 844, 845, 831, 850, 851, - 852, 775, 823, 824, 825, 847, 848, 805, 806, 807, - 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 320, 327, 652, 649, 453, 653, 781, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 860, 833, 834, + 835, 771, 836, 830, 831, 772, 832, 861, 824, 857, + 858, 800, 827, 837, 856, 838, 859, 862, 863, 903, + 904, 844, 828, 257, 905, 841, 864, 855, 854, 839, + 825, 865, 866, 807, 802, 842, 843, 829, 848, 849, + 850, 773, 821, 822, 823, 845, 846, 803, 804, 805, + 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 853, 639, 438, - 439, 0, 849, 642, 643, 640, 374, 425, 444, 432, - 819, 656, 517, 518, 657, 628, 0, 768, 0, 401, + 588, 622, 0, 632, 633, 635, 637, 851, 639, 438, + 439, 0, 847, 642, 643, 640, 374, 425, 444, 432, + 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, + 0, 0, 0, 769, 0, 0, 0, 336, 1876, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 810, 568, - 519, 434, 385, 586, 585, 0, 0, 879, 887, 0, - 0, 0, 0, 0, 0, 0, 0, 875, 0, 0, - 0, 0, 763, 0, 0, 800, 855, 854, 787, 797, - 0, 0, 309, 229, 514, 634, 516, 515, 788, 0, - 789, 793, 796, 792, 790, 791, 0, 870, 0, 0, - 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, + 540, 541, 542, 512, 543, 513, 544, 545, 808, 568, + 519, 434, 385, 586, 585, 0, 0, 877, 885, 0, + 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, + 0, 0, 761, 0, 0, 798, 853, 852, 785, 795, + 0, 0, 309, 229, 514, 634, 516, 515, 786, 0, + 787, 791, 794, 790, 788, 789, 0, 868, 0, 0, + 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 764, 765, 0, 0, 0, 0, 820, 0, 766, - 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, + 0, 762, 763, 0, 0, 0, 0, 818, 0, 764, + 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 795, 818, 822, 330, - 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 894, 364, + 0, 420, 334, 350, 331, 398, 793, 816, 820, 330, + 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, + 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 813, 0, 631, 0, 470, 0, 0, 877, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 817, - 0, 423, 403, 890, 4017, 0, 421, 371, 455, 411, + 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, + 0, 0, 440, 0, 0, 366, 0, 0, 0, 815, + 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, @@ -2648,61 +2720,61 @@ var yyAct = [...]int{ 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 874, 399, 596, 629, 630, 521, 0, - 889, 869, 871, 872, 876, 880, 881, 882, 883, 884, - 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, + 291, 292, 655, 872, 399, 596, 629, 630, 521, 0, + 887, 867, 869, 870, 874, 878, 879, 880, 881, 882, + 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 891, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 821, 571, 572, 389, 390, 391, - 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, + 617, 618, 619, 612, 889, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 819, 571, 572, 389, 390, 391, + 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 900, 873, 899, 901, 902, 898, 903, 904, 885, 776, - 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, + 898, 871, 897, 899, 900, 896, 901, 902, 883, 774, + 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 783, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 862, 835, - 836, 837, 773, 838, 832, 833, 774, 834, 863, 826, - 859, 860, 802, 829, 839, 858, 840, 861, 864, 865, - 905, 906, 846, 830, 257, 907, 843, 866, 857, 856, - 841, 827, 867, 868, 809, 804, 844, 845, 831, 850, - 851, 852, 775, 823, 824, 825, 847, 848, 805, 806, - 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, + 319, 320, 327, 652, 649, 453, 653, 781, 293, 527, + 370, 0, 414, 343, 592, 593, 0, 644, 860, 833, + 834, 835, 771, 836, 830, 831, 772, 832, 861, 824, + 857, 858, 800, 827, 837, 856, 838, 859, 862, 863, + 903, 904, 844, 828, 257, 905, 841, 864, 855, 854, + 839, 825, 865, 866, 807, 802, 842, 843, 829, 848, + 849, 850, 773, 821, 822, 823, 845, 846, 803, 804, + 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 853, 639, - 438, 439, 0, 849, 642, 643, 640, 374, 425, 444, - 432, 819, 656, 517, 518, 657, 628, 0, 768, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 851, 639, + 438, 439, 0, 847, 642, 643, 640, 374, 425, 444, + 432, 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 771, 0, 0, 0, 336, 1884, + 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 810, - 568, 519, 434, 385, 586, 585, 0, 0, 879, 887, - 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, - 0, 0, 0, 763, 0, 0, 800, 855, 854, 787, - 797, 0, 0, 309, 229, 514, 634, 516, 515, 788, - 0, 789, 793, 796, 792, 790, 791, 0, 870, 0, - 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 808, + 568, 519, 434, 385, 586, 585, 0, 0, 877, 885, + 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, + 0, 0, 0, 761, 0, 0, 798, 853, 852, 785, + 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, + 0, 787, 791, 794, 790, 788, 789, 0, 868, 0, + 0, 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 764, 765, 0, 0, 0, 0, 820, 0, - 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, + 0, 0, 762, 763, 1590, 0, 0, 0, 818, 0, + 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 795, 818, 822, - 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 894, + 300, 0, 420, 334, 350, 331, 398, 793, 816, 820, + 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 813, 0, 631, 0, 470, 0, 0, 877, + 0, 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, + 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, @@ -2712,126 +2784,126 @@ var yyAct = [...]int{ 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 874, 399, 596, 629, 630, 521, - 0, 889, 869, 871, 872, 876, 880, 881, 882, 883, - 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, + 345, 291, 292, 655, 872, 399, 596, 629, 630, 521, + 0, 887, 867, 869, 870, 874, 878, 879, 880, 881, + 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 891, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 821, 571, 572, 389, 390, - 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, + 616, 617, 618, 619, 612, 889, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 819, 571, 572, 389, 390, + 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 900, 873, 899, 901, 902, 898, 903, 904, 885, - 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, + 577, 898, 871, 897, 899, 900, 896, 901, 902, 883, + 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 783, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 862, - 835, 836, 837, 773, 838, 832, 833, 774, 834, 863, - 826, 859, 860, 802, 829, 839, 858, 840, 861, 864, - 865, 905, 906, 846, 830, 257, 907, 843, 866, 857, - 856, 841, 827, 867, 868, 809, 804, 844, 845, 831, - 850, 851, 852, 775, 823, 824, 825, 847, 848, 805, - 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, + 285, 319, 320, 327, 652, 649, 453, 653, 781, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 860, + 833, 834, 835, 771, 836, 830, 831, 772, 832, 861, + 824, 857, 858, 800, 827, 837, 856, 838, 859, 862, + 863, 903, 904, 844, 828, 257, 905, 841, 864, 855, + 854, 839, 825, 865, 866, 807, 802, 842, 843, 829, + 848, 849, 850, 773, 821, 822, 823, 845, 846, 803, + 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 853, - 639, 438, 439, 0, 849, 642, 643, 640, 374, 425, - 444, 432, 819, 656, 517, 518, 657, 628, 0, 768, - 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 771, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 810, 568, 519, 434, 385, 586, 585, 0, 0, 879, - 887, 0, 0, 0, 0, 0, 0, 0, 0, 875, - 0, 0, 0, 0, 763, 0, 0, 800, 855, 854, - 787, 797, 0, 0, 309, 229, 514, 634, 516, 515, - 788, 0, 789, 793, 796, 792, 790, 791, 0, 870, - 0, 0, 0, 0, 0, 0, 755, 767, 0, 772, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 851, + 639, 438, 439, 0, 847, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 817, 766, + 0, 2268, 0, 0, 0, 0, 0, 401, 0, 0, + 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, + 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, + 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, + 542, 512, 543, 513, 544, 545, 808, 568, 519, 434, + 385, 586, 585, 0, 0, 877, 885, 0, 0, 0, + 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, + 761, 0, 0, 798, 853, 852, 785, 795, 0, 0, + 309, 229, 514, 634, 516, 515, 786, 0, 787, 791, + 794, 790, 788, 789, 0, 868, 0, 0, 0, 0, + 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, + 763, 0, 0, 0, 0, 818, 0, 764, 0, 0, + 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, + 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, + 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, + 334, 350, 331, 398, 793, 816, 820, 330, 891, 814, + 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, + 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, + 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, + 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 627, 811, + 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, + 440, 0, 0, 366, 0, 0, 0, 815, 0, 423, + 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, + 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, + 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, + 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, + 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, + 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, + 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, + 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, + 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, + 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, + 655, 872, 399, 596, 629, 630, 521, 0, 887, 867, + 869, 870, 874, 878, 879, 880, 881, 882, 884, 886, + 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, + 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, + 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, + 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, + 619, 612, 889, 556, 533, 559, 474, 536, 535, 0, + 0, 570, 819, 571, 572, 389, 390, 391, 392, 876, + 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, + 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, + 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, + 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, + 402, 424, 311, 462, 433, 377, 550, 577, 898, 871, + 897, 899, 900, 896, 901, 902, 883, 774, 0, 826, + 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, + 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, + 327, 652, 649, 453, 653, 781, 293, 527, 370, 0, + 414, 343, 592, 593, 0, 644, 860, 833, 834, 835, + 771, 836, 830, 831, 772, 832, 861, 824, 857, 858, + 800, 827, 837, 856, 838, 859, 862, 863, 903, 904, + 844, 828, 257, 905, 841, 864, 855, 854, 839, 825, + 865, 866, 807, 802, 842, 843, 829, 848, 849, 850, + 773, 821, 822, 823, 845, 846, 803, 804, 805, 806, + 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, + 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, + 622, 0, 632, 633, 635, 637, 851, 639, 438, 439, + 0, 847, 642, 643, 640, 374, 425, 444, 432, 817, + 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 808, 568, 519, + 434, 385, 586, 585, 0, 0, 877, 885, 0, 0, + 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, + 0, 761, 0, 0, 798, 853, 852, 785, 795, 0, + 0, 309, 229, 514, 634, 516, 515, 786, 0, 787, + 791, 794, 790, 788, 789, 0, 868, 0, 0, 0, + 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 764, 765, 1596, 0, 0, 0, 820, - 0, 766, 0, 0, 815, 794, 798, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 795, 818, - 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 813, 0, 631, 0, 470, 0, 0, - 877, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 817, 0, 423, 403, 890, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 874, 399, 596, 629, 630, - 521, 0, 889, 869, 871, 872, 876, 880, 881, 882, - 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 891, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 821, 571, 572, 389, - 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 900, 873, 899, 901, 902, 898, 903, 904, - 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 783, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 862, 835, 836, 837, 773, 838, 832, 833, 774, 834, - 863, 826, 859, 860, 802, 829, 839, 858, 840, 861, - 864, 865, 905, 906, 846, 830, 257, 907, 843, 866, - 857, 856, 841, 827, 867, 868, 809, 804, 844, 845, - 831, 850, 851, 852, 775, 823, 824, 825, 847, 848, - 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 853, 639, 438, 439, 0, 849, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 819, - 768, 0, 2279, 0, 0, 0, 0, 0, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 810, 568, 519, - 434, 385, 586, 585, 0, 0, 879, 887, 0, 0, - 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, - 0, 763, 0, 0, 800, 855, 854, 787, 797, 0, - 0, 309, 229, 514, 634, 516, 515, 788, 0, 789, - 793, 796, 792, 790, 791, 0, 870, 0, 0, 0, - 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 764, 765, 0, 0, 0, 0, 820, 0, 766, 0, - 0, 815, 794, 798, 0, 0, 0, 0, 299, 441, + 762, 763, 1869, 0, 0, 0, 818, 0, 764, 0, + 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 795, 818, 822, 330, 893, - 816, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 894, 364, 365, + 420, 334, 350, 331, 398, 793, 816, 820, 330, 891, + 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 813, 0, 631, 0, 470, 0, 0, 877, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 817, 0, - 423, 403, 890, 0, 0, 421, 371, 455, 411, 461, + 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 815, 0, + 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, @@ -2841,61 +2913,61 @@ var yyAct = [...]int{ 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 874, 399, 596, 629, 630, 521, 0, 889, - 869, 871, 872, 876, 880, 881, 882, 883, 884, 886, - 888, 892, 654, 0, 575, 590, 658, 589, 651, 405, + 292, 655, 872, 399, 596, 629, 630, 521, 0, 887, + 867, 869, 870, 874, 878, 879, 880, 881, 882, 884, + 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 891, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 821, 571, 572, 389, 390, 391, 392, - 878, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 618, 619, 612, 889, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 819, 571, 572, 389, 390, 391, 392, + 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 900, - 873, 899, 901, 902, 898, 903, 904, 885, 776, 0, - 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 898, + 871, 897, 899, 900, 896, 901, 902, 883, 774, 0, + 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 783, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 862, 835, 836, - 837, 773, 838, 832, 833, 774, 834, 863, 826, 859, - 860, 802, 829, 839, 858, 840, 861, 864, 865, 905, - 906, 846, 830, 257, 907, 843, 866, 857, 856, 841, - 827, 867, 868, 809, 804, 844, 845, 831, 850, 851, - 852, 775, 823, 824, 825, 847, 848, 805, 806, 807, - 808, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 320, 327, 652, 649, 453, 653, 781, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 860, 833, 834, + 835, 771, 836, 830, 831, 772, 832, 861, 824, 857, + 858, 800, 827, 837, 856, 838, 859, 862, 863, 903, + 904, 844, 828, 257, 905, 841, 864, 855, 854, 839, + 825, 865, 866, 807, 802, 842, 843, 829, 848, 849, + 850, 773, 821, 822, 823, 845, 846, 803, 804, 805, + 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 853, 639, 438, - 439, 0, 849, 642, 643, 640, 374, 425, 444, 432, - 819, 656, 517, 518, 657, 628, 0, 768, 0, 401, + 588, 622, 0, 632, 633, 635, 637, 851, 639, 438, + 439, 0, 847, 642, 643, 640, 374, 425, 444, 432, + 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 771, 0, 0, 0, 336, 0, 0, + 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 810, 568, - 519, 434, 385, 586, 585, 0, 0, 879, 887, 0, - 0, 0, 0, 0, 0, 0, 0, 875, 0, 0, - 0, 0, 763, 0, 0, 800, 855, 854, 787, 797, - 0, 0, 309, 229, 514, 634, 516, 515, 788, 0, - 789, 793, 796, 792, 790, 791, 0, 870, 0, 0, - 0, 0, 0, 0, 755, 767, 0, 772, 0, 0, + 540, 541, 542, 512, 543, 513, 544, 545, 808, 568, + 519, 434, 385, 586, 585, 0, 0, 877, 885, 0, + 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, + 0, 0, 761, 0, 0, 798, 853, 852, 785, 795, + 0, 0, 309, 229, 514, 634, 516, 515, 786, 0, + 787, 791, 794, 790, 788, 789, 0, 868, 0, 0, + 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 764, 765, 1877, 0, 0, 0, 820, 0, 766, - 0, 0, 815, 794, 798, 0, 0, 0, 0, 299, + 0, 762, 763, 0, 0, 0, 0, 818, 0, 764, + 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 795, 818, 822, 330, - 893, 816, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 894, 364, + 0, 420, 334, 350, 331, 398, 793, 816, 820, 330, + 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, + 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 813, 0, 631, 0, 470, 0, 0, 877, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 817, - 0, 423, 403, 890, 0, 0, 421, 371, 455, 411, + 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, + 0, 0, 440, 0, 0, 366, 0, 0, 0, 815, + 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, @@ -2905,61 +2977,61 @@ var yyAct = [...]int{ 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 874, 399, 596, 629, 630, 521, 0, - 889, 869, 871, 872, 876, 880, 881, 882, 883, 884, - 886, 888, 892, 654, 0, 575, 590, 658, 589, 651, + 291, 292, 655, 872, 399, 596, 629, 630, 521, 0, + 887, 867, 869, 870, 874, 878, 879, 880, 881, 882, + 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 891, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 821, 571, 572, 389, 390, 391, - 392, 878, 597, 314, 493, 415, 0, 557, 0, 0, + 617, 618, 619, 612, 889, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 819, 571, 572, 389, 390, 391, + 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 900, 873, 899, 901, 902, 898, 903, 904, 885, 776, - 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, + 898, 871, 897, 899, 900, 896, 901, 902, 883, 774, + 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 783, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 862, 835, - 836, 837, 773, 838, 832, 833, 774, 834, 863, 826, - 859, 860, 802, 829, 839, 858, 840, 861, 864, 865, - 905, 906, 846, 830, 257, 907, 843, 866, 857, 856, - 841, 827, 867, 868, 809, 804, 844, 845, 831, 850, - 851, 852, 775, 823, 824, 825, 847, 848, 805, 806, - 807, 808, 0, 0, 0, 478, 479, 480, 502, 0, + 319, 320, 327, 652, 649, 453, 653, 781, 293, 527, + 370, 0, 414, 343, 592, 593, 0, 644, 860, 833, + 834, 835, 771, 836, 830, 831, 772, 832, 861, 824, + 857, 858, 800, 827, 837, 856, 838, 859, 862, 863, + 903, 904, 844, 828, 257, 905, 841, 864, 855, 854, + 839, 825, 865, 866, 807, 802, 842, 843, 829, 848, + 849, 850, 773, 821, 822, 823, 845, 846, 803, 804, + 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 853, 639, - 438, 439, 0, 849, 642, 643, 640, 374, 425, 444, - 432, 819, 656, 517, 518, 657, 628, 0, 768, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 851, 639, + 438, 439, 0, 847, 642, 643, 640, 374, 425, 444, + 432, 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 771, 0, 0, 0, 336, 0, + 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 810, - 568, 519, 434, 385, 586, 585, 0, 0, 879, 887, - 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, - 0, 0, 0, 763, 0, 0, 800, 855, 854, 787, - 797, 0, 0, 309, 229, 514, 634, 516, 515, 788, - 0, 789, 793, 796, 792, 790, 791, 0, 870, 0, - 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 808, + 568, 519, 434, 385, 586, 585, 0, 0, 877, 885, + 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, + 0, 0, 0, 761, 0, 0, 798, 853, 852, 785, + 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, + 0, 787, 791, 794, 790, 788, 789, 0, 868, 0, + 0, 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 764, 765, 0, 0, 0, 0, 820, 0, - 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, + 0, 0, 762, 763, 0, 0, 0, 0, 818, 0, + 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 795, 818, 822, - 330, 893, 816, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 894, + 300, 0, 420, 334, 350, 331, 398, 793, 816, 820, + 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 813, 0, 631, 0, 470, 0, 0, 877, + 0, 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 817, 0, 423, 403, 890, 0, 0, 421, 371, 455, + 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, @@ -2969,61 +3041,61 @@ var yyAct = [...]int{ 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 874, 399, 596, 629, 630, 521, - 0, 889, 869, 871, 872, 876, 880, 881, 882, 883, - 884, 886, 888, 892, 654, 0, 575, 590, 658, 589, + 345, 291, 292, 655, 872, 399, 596, 629, 630, 521, + 0, 887, 867, 869, 870, 874, 878, 879, 880, 881, + 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 891, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 821, 571, 572, 389, 390, - 391, 392, 878, 597, 314, 493, 415, 0, 557, 0, + 616, 617, 618, 619, 612, 889, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 819, 571, 572, 389, 390, + 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 900, 873, 899, 901, 902, 898, 903, 904, 885, - 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, + 577, 898, 871, 897, 899, 900, 896, 901, 902, 883, + 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 783, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 862, - 835, 836, 837, 773, 838, 832, 833, 774, 834, 863, - 826, 859, 860, 802, 829, 839, 858, 840, 861, 864, - 865, 905, 906, 846, 830, 257, 907, 843, 866, 857, - 856, 841, 827, 867, 868, 809, 804, 844, 845, 831, - 850, 851, 852, 775, 823, 824, 825, 847, 848, 805, - 806, 807, 808, 0, 0, 0, 478, 479, 480, 502, + 285, 319, 320, 327, 652, 649, 453, 653, 781, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 860, + 833, 834, 835, 771, 836, 830, 831, 772, 832, 861, + 824, 857, 858, 800, 827, 837, 856, 838, 859, 862, + 863, 903, 904, 844, 828, 257, 905, 841, 864, 855, + 854, 839, 825, 865, 866, 807, 802, 842, 843, 829, + 848, 849, 850, 773, 821, 822, 823, 845, 846, 803, + 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 853, - 639, 438, 439, 0, 849, 642, 643, 640, 374, 425, - 444, 432, 819, 656, 517, 518, 657, 628, 0, 768, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 851, + 639, 438, 439, 0, 3566, 642, 3567, 3568, 374, 425, + 444, 432, 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 771, 0, 0, 0, 336, + 0, 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 810, 568, 519, 434, 385, 586, 585, 0, 0, 879, - 887, 0, 0, 0, 0, 0, 0, 0, 0, 875, - 0, 0, 0, 0, 763, 0, 0, 800, 855, 854, - 787, 797, 0, 0, 309, 229, 514, 634, 516, 515, - 788, 0, 789, 793, 796, 792, 790, 791, 0, 870, - 0, 0, 0, 0, 0, 0, 755, 767, 0, 772, + 808, 568, 519, 434, 385, 586, 585, 0, 0, 877, + 885, 0, 0, 0, 0, 0, 0, 0, 0, 873, + 0, 0, 0, 0, 761, 0, 0, 798, 853, 852, + 785, 795, 0, 0, 309, 229, 514, 634, 516, 515, + 2748, 0, 2749, 791, 794, 790, 788, 789, 0, 868, + 0, 0, 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 764, 765, 0, 0, 0, 0, 820, - 0, 766, 0, 0, 815, 794, 798, 0, 0, 0, + 0, 0, 0, 762, 763, 0, 0, 0, 0, 818, + 0, 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 795, 818, - 822, 330, 893, 816, 468, 303, 0, 467, 397, 454, + 360, 300, 0, 420, 334, 350, 331, 398, 793, 816, + 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 894, 364, 365, 354, 409, 373, 410, 355, 387, 386, + 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 813, 0, 631, 0, 470, 0, 0, - 877, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 817, 0, 423, 403, 890, 0, 0, 421, 371, + 0, 0, 627, 811, 0, 631, 0, 470, 0, 0, + 875, 0, 0, 0, 440, 0, 0, 366, 0, 0, + 0, 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, @@ -3033,189 +3105,189 @@ var yyAct = [...]int{ 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 874, 399, 596, 629, 630, - 521, 0, 889, 869, 871, 872, 876, 880, 881, 882, - 883, 884, 886, 888, 892, 654, 0, 575, 590, 658, + 416, 345, 291, 292, 655, 872, 399, 596, 629, 630, + 521, 0, 887, 867, 869, 870, 874, 878, 879, 880, + 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 891, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 821, 571, 572, 389, - 390, 391, 392, 878, 597, 314, 493, 415, 0, 557, + 615, 616, 617, 618, 619, 612, 889, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 819, 571, 572, 389, + 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 900, 873, 899, 901, 902, 898, 903, 904, - 885, 776, 0, 828, 896, 895, 897, 0, 0, 0, + 550, 577, 898, 871, 897, 899, 900, 896, 901, 902, + 883, 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 783, + 323, 285, 319, 320, 327, 652, 649, 453, 653, 781, 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 862, 835, 836, 837, 773, 838, 832, 833, 774, 834, - 863, 826, 859, 860, 802, 829, 839, 858, 840, 861, - 864, 865, 905, 906, 846, 830, 257, 907, 843, 866, - 857, 856, 841, 827, 867, 868, 809, 804, 844, 845, - 831, 850, 851, 852, 775, 823, 824, 825, 847, 848, - 805, 806, 807, 808, 0, 0, 0, 478, 479, 480, + 860, 833, 834, 835, 771, 836, 830, 831, 772, 832, + 861, 824, 857, 858, 800, 827, 837, 856, 838, 859, + 862, 863, 903, 904, 844, 828, 257, 905, 841, 864, + 855, 854, 839, 825, 865, 866, 807, 802, 842, 843, + 829, 848, 849, 850, 773, 821, 822, 823, 845, 846, + 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 853, 639, 438, 439, 0, 3582, 642, 3583, 3584, 374, - 425, 444, 432, 819, 656, 517, 518, 657, 628, 0, - 768, 0, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 771, 0, 0, 0, + 851, 639, 438, 439, 0, 847, 642, 643, 640, 374, + 425, 444, 432, 817, 656, 517, 518, 657, 628, 0, + 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 1734, 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 810, 568, 519, 434, 385, 586, 585, 0, 0, - 879, 887, 0, 0, 0, 0, 0, 0, 0, 0, - 875, 0, 0, 0, 0, 763, 0, 0, 800, 855, - 854, 787, 797, 0, 0, 309, 229, 514, 634, 516, - 515, 2761, 0, 2762, 793, 796, 792, 790, 791, 0, - 870, 0, 0, 0, 0, 0, 0, 755, 767, 0, - 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 764, 765, 0, 0, 0, 0, - 820, 0, 766, 0, 0, 815, 794, 798, 0, 0, + 545, 808, 568, 519, 434, 385, 586, 585, 0, 0, + 877, 885, 0, 0, 0, 0, 0, 0, 0, 0, + 873, 0, 0, 0, 0, 761, 0, 0, 798, 853, + 852, 785, 795, 0, 0, 309, 229, 514, 634, 516, + 515, 786, 0, 787, 791, 794, 790, 788, 789, 0, + 868, 0, 0, 0, 0, 0, 0, 0, 765, 0, + 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 762, 763, 0, 0, 0, 0, + 818, 0, 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 795, - 818, 822, 330, 893, 816, 468, 303, 0, 467, 397, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 793, + 816, 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 894, 364, 365, 354, 409, 373, 410, 355, 387, + 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 813, 0, 631, 0, 470, 0, - 0, 877, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 817, 0, 423, 403, 890, 0, 0, 421, + 0, 0, 0, 627, 811, 0, 631, 0, 470, 0, + 0, 875, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 307, 477, 1735, 1736, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 874, 399, 596, 629, - 630, 521, 0, 889, 869, 871, 872, 876, 880, 881, - 882, 883, 884, 886, 888, 892, 654, 0, 575, 590, + 380, 416, 345, 291, 292, 655, 872, 399, 596, 629, + 630, 521, 0, 887, 867, 869, 870, 874, 878, 879, + 880, 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 891, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 821, 571, 572, - 389, 390, 391, 392, 878, 597, 314, 493, 415, 0, + 614, 615, 616, 617, 618, 619, 612, 889, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 819, 571, 572, + 389, 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 900, 873, 899, 901, 902, 898, 903, - 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, + 377, 550, 577, 898, 871, 897, 899, 900, 896, 901, + 902, 883, 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 783, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 862, 835, 836, 837, 773, 838, 832, 833, 774, - 834, 863, 826, 859, 860, 802, 829, 839, 858, 840, - 861, 864, 865, 905, 906, 846, 830, 257, 907, 843, - 866, 857, 856, 841, 827, 867, 868, 809, 804, 844, - 845, 831, 850, 851, 852, 775, 823, 824, 825, 847, - 848, 805, 806, 807, 808, 0, 0, 0, 478, 479, + 781, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 860, 833, 834, 835, 771, 836, 830, 831, 772, + 832, 861, 824, 857, 858, 800, 827, 837, 856, 838, + 859, 862, 863, 903, 904, 844, 828, 257, 905, 841, + 864, 855, 854, 839, 825, 865, 866, 807, 802, 842, + 843, 829, 848, 849, 850, 773, 821, 822, 823, 845, + 846, 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 853, 639, 438, 439, 0, 849, 642, 643, 640, - 374, 425, 444, 432, 819, 656, 517, 518, 657, 628, - 0, 768, 0, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 1742, 0, 0, 0, 771, 0, 0, + 637, 851, 639, 438, 439, 0, 847, 642, 643, 640, + 374, 425, 444, 432, 817, 656, 517, 518, 657, 628, + 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, + 520, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 810, 568, 519, 434, 385, 586, 585, 0, - 0, 879, 887, 0, 0, 0, 0, 0, 0, 0, - 0, 875, 0, 0, 0, 0, 763, 0, 0, 800, - 855, 854, 787, 797, 0, 0, 309, 229, 514, 634, - 516, 515, 788, 0, 789, 793, 796, 792, 790, 791, - 0, 870, 0, 0, 0, 0, 0, 0, 0, 767, - 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 764, 765, 0, 0, 0, - 0, 820, 0, 766, 0, 0, 815, 794, 798, 0, + 544, 545, 808, 568, 519, 434, 385, 586, 585, 0, + 0, 877, 885, 0, 0, 0, 0, 0, 0, 0, + 0, 873, 0, 0, 0, 0, 761, 0, 0, 798, + 853, 852, 785, 795, 0, 0, 309, 229, 514, 634, + 516, 515, 786, 0, 787, 791, 794, 790, 788, 789, + 0, 868, 0, 0, 0, 0, 0, 0, 0, 765, + 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 762, 763, 0, 0, 0, + 0, 818, 0, 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 795, 818, 822, 330, 893, 816, 468, 303, 0, 467, + 793, 816, 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 894, 364, 365, 354, 409, 373, 410, 355, + 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 813, 0, 631, 0, 470, - 0, 0, 877, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 817, 0, 423, 403, 890, 0, 0, + 0, 0, 0, 0, 627, 811, 0, 631, 0, 470, + 0, 0, 875, 0, 0, 0, 440, 0, 0, 366, + 0, 0, 0, 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 1743, 1744, 573, 0, 489, 660, 661, + 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 874, 399, 596, - 629, 630, 521, 0, 889, 869, 871, 872, 876, 880, - 881, 882, 883, 884, 886, 888, 892, 654, 0, 575, + 338, 380, 416, 345, 291, 292, 655, 872, 399, 596, + 629, 630, 521, 0, 887, 867, 869, 870, 874, 878, + 879, 880, 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 891, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 821, 571, - 572, 389, 390, 391, 392, 878, 597, 314, 493, 415, + 613, 614, 615, 616, 617, 618, 619, 612, 889, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 819, 571, + 572, 389, 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 900, 873, 899, 901, 902, 898, - 903, 904, 885, 776, 0, 828, 896, 895, 897, 0, + 433, 377, 550, 577, 898, 871, 897, 899, 900, 896, + 901, 902, 883, 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 783, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 862, 835, 836, 837, 773, 838, 832, 833, - 774, 834, 863, 826, 859, 860, 802, 829, 839, 858, - 840, 861, 864, 865, 905, 906, 846, 830, 257, 907, - 843, 866, 857, 856, 841, 827, 867, 868, 809, 804, - 844, 845, 831, 850, 851, 852, 775, 823, 824, 825, - 847, 848, 805, 806, 807, 808, 0, 0, 0, 478, + 653, 781, 293, 527, 370, 0, 414, 343, 592, 593, + 0, 644, 860, 833, 834, 835, 771, 836, 830, 831, + 772, 832, 861, 824, 857, 858, 800, 827, 837, 856, + 838, 859, 862, 863, 903, 904, 844, 828, 257, 905, + 841, 864, 855, 854, 839, 825, 865, 866, 807, 802, + 842, 843, 829, 848, 849, 850, 773, 821, 822, 823, + 845, 846, 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 853, 639, 438, 439, 0, 849, 642, 643, - 640, 374, 425, 444, 432, 819, 656, 517, 518, 657, - 628, 0, 768, 0, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 771, 0, + 635, 637, 851, 639, 438, 439, 0, 847, 642, 643, + 640, 374, 425, 444, 432, 817, 656, 517, 518, 657, + 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 810, 568, 519, 434, 385, 586, 585, - 0, 0, 879, 887, 0, 0, 0, 0, 0, 0, - 0, 0, 875, 0, 0, 0, 0, 763, 0, 0, - 800, 855, 854, 787, 797, 0, 0, 309, 229, 514, - 634, 516, 515, 788, 0, 789, 793, 796, 792, 790, - 791, 0, 870, 0, 0, 0, 0, 0, 0, 0, - 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 764, 765, 0, 0, - 0, 0, 820, 0, 766, 0, 0, 815, 794, 798, + 513, 544, 545, 808, 568, 519, 434, 385, 586, 585, + 0, 0, 877, 885, 0, 0, 0, 0, 0, 0, + 0, 0, 873, 0, 0, 0, 0, 0, 0, 0, + 798, 853, 852, 785, 795, 0, 0, 309, 229, 514, + 634, 516, 515, 786, 0, 787, 791, 794, 790, 788, + 789, 0, 868, 0, 0, 0, 0, 0, 0, 753, + 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 762, 763, 0, 0, + 0, 0, 818, 0, 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 795, 818, 822, 330, 893, 816, 468, 303, 0, + 398, 793, 816, 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 894, 364, 365, 354, 409, 373, 410, + 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 813, 0, 631, 0, - 470, 0, 0, 877, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 817, 0, 423, 403, 890, 0, + 0, 0, 0, 0, 0, 627, 811, 0, 631, 0, + 470, 0, 0, 875, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, @@ -3225,4221 +3297,4092 @@ var yyAct = [...]int{ 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 874, 399, - 596, 629, 630, 521, 0, 889, 869, 871, 872, 876, - 880, 881, 882, 883, 884, 886, 888, 892, 654, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 872, 399, + 596, 629, 630, 521, 0, 887, 867, 869, 870, 874, + 878, 879, 880, 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 891, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 821, - 571, 572, 389, 390, 391, 392, 878, 597, 314, 493, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 889, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 819, + 571, 572, 389, 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 900, 873, 899, 901, 902, - 898, 903, 904, 885, 776, 0, 828, 896, 895, 897, + 462, 433, 377, 550, 577, 898, 871, 897, 899, 900, + 896, 901, 902, 883, 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 783, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 862, 835, 836, 837, 773, 838, 832, - 833, 774, 834, 863, 826, 859, 860, 802, 829, 839, - 858, 840, 861, 864, 865, 905, 906, 846, 830, 257, - 907, 843, 866, 857, 856, 841, 827, 867, 868, 809, - 804, 844, 845, 831, 850, 851, 852, 775, 823, 824, - 825, 847, 848, 805, 806, 807, 808, 0, 0, 0, + 453, 653, 781, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 860, 833, 834, 835, 771, 836, 830, + 831, 772, 832, 861, 824, 857, 858, 800, 827, 837, + 856, 838, 859, 862, 863, 903, 904, 844, 828, 257, + 905, 841, 864, 855, 854, 839, 825, 865, 866, 807, + 802, 842, 843, 829, 848, 849, 850, 773, 821, 822, + 823, 845, 846, 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 853, 639, 438, 439, 0, 849, 642, - 643, 640, 374, 425, 444, 432, 819, 656, 517, 518, - 657, 628, 0, 768, 0, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 771, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 810, 568, 519, 434, 385, 586, - 585, 0, 0, 879, 887, 0, 0, 0, 0, 0, - 0, 0, 0, 875, 0, 0, 0, 0, 0, 0, - 0, 800, 855, 854, 787, 797, 0, 0, 309, 229, - 514, 634, 516, 515, 788, 0, 789, 793, 796, 792, - 790, 791, 0, 870, 0, 0, 0, 0, 0, 0, - 755, 767, 0, 772, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 764, 765, 0, - 0, 0, 0, 820, 0, 766, 0, 0, 815, 794, - 798, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 795, 818, 822, 330, 893, 816, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 894, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 813, 0, 631, - 0, 470, 0, 0, 877, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 817, 0, 423, 403, 890, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 874, - 399, 596, 629, 630, 521, 0, 889, 869, 871, 872, - 876, 880, 881, 882, 883, 884, 886, 888, 892, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 891, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 821, 571, 572, 389, 390, 391, 392, 878, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 900, 873, 899, 901, - 902, 898, 903, 904, 885, 776, 0, 828, 896, 895, - 897, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 783, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 862, 835, 836, 837, 773, 838, - 832, 833, 774, 834, 863, 826, 859, 860, 802, 829, - 839, 858, 840, 861, 864, 865, 905, 906, 846, 830, - 257, 907, 843, 866, 857, 856, 841, 827, 867, 868, - 809, 804, 844, 845, 831, 850, 851, 852, 775, 823, - 824, 825, 847, 848, 805, 806, 807, 808, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 853, 639, 438, 439, 0, 849, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 0, 768, 206, 64, 197, 168, 0, - 0, 0, 0, 0, 0, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 198, 0, 0, 0, 0, 0, - 0, 189, 0, 336, 0, 199, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 140, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 126, - 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, + 633, 635, 637, 851, 639, 438, 439, 0, 847, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 0, 766, 206, 64, 197, 168, 0, 0, + 0, 0, 0, 0, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 198, 0, 0, 0, 0, 0, 0, + 189, 0, 336, 0, 199, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 140, 568, 519, 434, 385, 586, 585, + 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, + 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 167, - 195, 204, 196, 124, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 221, 0, 0, 0, 440, 0, - 0, 366, 194, 188, 187, 486, 0, 423, 403, 233, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 606, 607, 608, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 465, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 224, 578, 581, 511, 234, - 0, 575, 590, 548, 589, 235, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 138, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 232, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 167, 195, + 204, 196, 124, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 221, 0, 0, 0, 440, 0, 0, + 366, 194, 188, 187, 486, 0, 423, 403, 233, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 606, + 607, 608, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 465, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 224, 578, 581, 511, 234, 0, + 575, 590, 548, 589, 235, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 138, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 232, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 65, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 239, - 304, 453, 240, 0, 293, 527, 370, 169, 414, 343, - 592, 593, 61, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 236, 45, - 222, 225, 227, 226, 0, 62, 576, 588, 622, 5, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 143, 237, 517, - 518, 238, 628, 206, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 140, 568, 519, 434, 385, 586, 585, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 239, 304, + 453, 240, 0, 293, 527, 370, 169, 414, 343, 592, + 593, 61, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 236, 45, 222, + 225, 227, 226, 0, 62, 576, 588, 622, 5, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 143, 237, 517, 518, + 238, 628, 206, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 2434, 2437, 0, 0, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 202, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 2422, 2425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 2438, 470, - 0, 0, 0, 2433, 0, 2432, 440, 2430, 2435, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 2436, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 169, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 2426, 470, 0, + 0, 0, 2421, 0, 2420, 440, 2418, 2423, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 2424, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 169, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1336, 0, 0, 228, 0, 0, - 787, 797, 0, 0, 309, 229, 514, 634, 516, 515, - 788, 0, 789, 793, 796, 792, 790, 791, 0, 312, + 0, 0, 0, 1331, 0, 0, 228, 0, 0, 785, + 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, + 0, 787, 791, 794, 790, 788, 789, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 795, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 206, - 64, 197, 168, 0, 0, 0, 0, 0, 0, 401, - 684, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 691, 0, 0, 0, 0, 0, - 0, 0, 690, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 793, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 206, 64, + 197, 168, 0, 0, 0, 0, 0, 0, 401, 682, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 689, 0, 0, 0, 0, 0, 0, + 0, 688, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 688, 689, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 685, 687, 314, 493, 415, 699, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 169, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 1142, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 686, 687, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 683, 685, 314, 493, 415, 697, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 169, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 1139, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1127, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 2598, 2601, 2602, 2603, 2604, 2605, 2606, 0, 2611, - 2607, 2608, 2609, 2610, 0, 2593, 2594, 2595, 2596, 1125, - 2577, 2599, 0, 2578, 397, 2579, 2580, 2581, 2582, 1129, - 2583, 2584, 2585, 2586, 2587, 2590, 2591, 2588, 2589, 2597, - 409, 373, 410, 355, 387, 386, 388, 1153, 1155, 1157, - 1159, 1162, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 2592, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1124, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 2586, 2589, 2590, 2591, 2592, 2593, 2594, 0, 2599, 2595, + 2596, 2597, 2598, 0, 2581, 2582, 2583, 2584, 1122, 2565, + 2587, 0, 2566, 397, 2567, 2568, 2569, 2570, 1126, 2571, + 2572, 2573, 2574, 2575, 2578, 2579, 2576, 2577, 2585, 409, + 373, 410, 355, 387, 386, 388, 1150, 1152, 1154, 1156, + 1159, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 2580, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 2600, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 2588, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 2434, 2437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 2422, 2425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 2438, 470, 0, 0, 0, 2433, 0, 2432, 440, 2430, - 2435, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 2436, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 2426, + 470, 0, 0, 0, 2421, 0, 2420, 440, 2418, 2423, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 2424, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 2455, 0, 0, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 2443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 2454, 470, - 0, 0, 0, 2460, 2457, 2459, 440, 0, 2458, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 2452, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, - 0, 2455, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 2442, 470, 0, + 0, 0, 2448, 2445, 2447, 440, 0, 2446, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 2440, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, + 2443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 2454, 470, 0, 0, - 0, 2460, 2457, 2459, 440, 0, 2458, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 2144, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 2145, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, - 1265, 1266, 1267, 1264, 0, 0, 0, 0, 0, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 2442, 470, 0, 0, 0, + 2448, 2445, 2447, 440, 0, 2446, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 2135, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 2136, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 1260, + 1261, 1262, 1259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 206, 656, 517, 518, 657, 628, 0, 0, 0, - 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 140, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 202, 2195, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 206, 656, 517, 518, 657, 628, 0, 0, 0, 0, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 140, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 2185, 0, 228, 0, 0, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 169, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 206, 656, 517, 518, 657, 628, 0, - 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 140, 568, 519, 434, 385, 586, 585, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 2179, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 169, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 206, 656, 517, 518, 657, 628, 0, 0, + 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 202, 2170, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 169, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 1053, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 1060, 1061, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 169, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 1050, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 1057, 1058, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 1047, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 1034, 468, 303, 1033, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 1051, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 1052, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 1055, 571, 572, 389, - 390, 391, 392, 349, 597, 1050, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 1062, 1048, 1058, 1049, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 1059, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 1046, - 425, 444, 432, 206, 656, 517, 518, 657, 628, 0, - 0, 0, 0, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2076, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 441, 1044, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 1031, 468, 303, 1030, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 1048, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 1049, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 1052, 571, 572, 389, 390, + 391, 392, 349, 597, 1047, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 1059, 1045, 1055, 1046, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 1056, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 1043, 425, + 444, 432, 206, 656, 517, 518, 657, 628, 0, 0, + 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 169, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 2067, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 1060, 1061, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1064, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 169, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 1057, 1058, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 1034, 468, 303, 1033, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 1062, 2097, 1058, 2098, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 1059, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 2991, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 1031, 468, 303, 1030, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 2994, 0, 0, 0, 2993, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 1059, 2088, 1055, 2089, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 1056, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 2977, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 1562, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 2980, 0, 0, 0, 2979, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1558, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 1556, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 1556, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 1554, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1552, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1558, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 1550, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 671, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 1554, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1552, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 669, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 670, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4086, 0, 228, 855, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 0, 0, 0, 0, 0, 0, 4066, 0, 228, 853, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 1554, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 1560, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1552, 0, 0, 0, 0, 0, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1558, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 2487, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 979, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 2499, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 228, 0, 0, 1554, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 982, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 1560, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1764, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 2527, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1772, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 2539, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, + 228, 0, 0, 2529, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 2541, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 2135, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 2144, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 2136, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 2145, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 3196, + 3198, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 3210, 3212, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 2550, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 2562, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 1554, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 670, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 671, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 669, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 675, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 855, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 853, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4063, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4043, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 3819, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 3802, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 3955, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 3936, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1778, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3835, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3817, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 3745, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 3728, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 3242, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 3228, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3260, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 3246, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2076, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2067, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 3458, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 3443, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3371, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3099, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 1554, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 2529, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 2541, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 2895, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 2909, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 2646, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 2659, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2608, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2620, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 228, 0, 0, 2606, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 2618, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 2375, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 2386, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 1926, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 1918, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 2049, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 2058, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 1554, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 1560, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 1954, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 1963, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 1583, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 1589, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 670, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 671, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 682, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 680, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 982, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 979, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 3188, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 3174, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 1904, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 1912, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, + 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 0, 656, 517, 518, 657, - 628, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 309, 229, 514, 634, 516, 515, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 299, 441, 1533, 310, 429, 473, 315, 437, + 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, + 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, + 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, + 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, + 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, + 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, + 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, + 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, + 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, + 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, + 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, + 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, + 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, + 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, + 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, + 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, + 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, + 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, + 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, + 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, + 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, + 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, + 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, + 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, + 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, + 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, + 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, + 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, + 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, + 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, + 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 299, 441, 1539, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 0, 457, - 485, 330, 476, 0, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 501, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 0, 0, 631, 0, 470, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 486, 0, 423, 403, 659, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 329, 399, 596, 629, 630, - 521, 0, 583, 522, 531, 321, 555, 567, 566, 395, - 481, 0, 578, 581, 511, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 490, 571, 572, 389, - 390, 391, 392, 349, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 0, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 636, 639, 438, 439, 0, 641, 642, 643, 640, 374, - 425, 444, 432, 0, 656, 517, 518, 657, 628, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 0, 568, - 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 309, 229, 514, 634, 516, 515, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 441, 1531, 310, 429, 473, 315, 437, 452, 305, + 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, + 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, + 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, + 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, + 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, - 441, 1537, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 0, 457, 485, 330, - 476, 0, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 501, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, + 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, + 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, + 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, + 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, + 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, + 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, + 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, + 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, + 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, + 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, + 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, + 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, + 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, + 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, + 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, + 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, + 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, + 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, + 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, + 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, + 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, + 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, + 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, + 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, + 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 0, 0, 631, 0, 470, 0, 0, 0, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 486, - 0, 423, 403, 659, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 329, 399, 596, 629, 630, 521, 0, - 583, 522, 531, 321, 555, 567, 566, 395, 481, 0, - 578, 581, 511, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 490, 571, 572, 389, 390, 391, - 392, 349, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 0, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, - 438, 439, 0, 641, 642, 643, 640, 374, 425, 444, - 432, 0, 656, 517, 518, 657, 628, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 0, 568, 519, 434, - 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 309, 229, 514, 634, 516, 515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, + 460, 310, 429, 473, 315, 437, 1410, 305, 400, 426, + 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, + 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, + 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, + 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, + 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, + 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, + 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, + 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, + 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, + 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, + 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, + 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, + 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, + 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, + 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, + 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, + 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, + 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, + 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, + 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, + 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, + 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, + 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, + 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, + 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, + 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, + 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, + 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, + 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, + 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, + 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, + 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 1415, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 0, 457, 485, 330, 476, 0, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 501, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, - 0, 631, 0, 470, 0, 0, 0, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 486, 0, 423, - 403, 659, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 329, 399, 596, 629, 630, 521, 0, 583, 522, - 531, 321, 555, 567, 566, 395, 481, 0, 578, 581, - 511, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 466, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 490, 571, 572, 389, 390, 391, 392, 349, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, + 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 0, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 636, 639, 438, 439, - 0, 641, 642, 643, 640, 374, 425, 444, 432, 0, - 656, 517, 518, 657, 628, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 336, 0, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 0, 568, 519, 434, 385, 586, - 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 309, 229, - 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, + 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, + 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, + 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, + 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, + 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, + 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, + 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, + 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, + 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, + 417, 412, 294, 443, 333, 384, 306, 308, 748, 335, + 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, + 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, + 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, + 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, + 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, + 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, + 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, + 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, + 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, + 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, + 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, + 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, + 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, + 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, + 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, + 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, + 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, + 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, + 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, + 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, + 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 0, 420, 334, 350, - 331, 398, 0, 457, 485, 330, 476, 0, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 501, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 0, 0, 631, - 0, 470, 0, 0, 0, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 486, 0, 423, 403, 659, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 750, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 0, 0, 0, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 329, - 399, 596, 629, 630, 521, 0, 583, 522, 531, 321, - 555, 567, 566, 395, 481, 0, 578, 581, 511, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 490, 571, 572, 389, 390, 391, 392, 349, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 0, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 636, 639, 438, 439, 0, 641, - 642, 643, 640, 374, 425, 444, 432, 0, 656, 517, - 518, 657, 628, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 0, 568, 519, 434, 385, 586, 585, 0, + 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 309, 229, 514, 634, - 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, + 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, + 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, + 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, + 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, + 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, + 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, + 0, 421, 371, 455, 411, 461, 442, 469, 705, 412, + 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, + 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, + 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, + 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, + 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, + 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, + 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, + 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, + 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, + 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 706, 612, 466, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, + 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, + 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, + 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, + 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, + 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, + 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 0, 457, 485, 330, 476, 0, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 501, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 0, 0, 631, 0, 470, - 0, 0, 0, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 486, 0, 423, 403, 659, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 707, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 329, 399, 596, - 629, 630, 521, 0, 583, 522, 531, 321, 555, 567, - 566, 395, 481, 0, 578, 581, 511, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 708, 612, 466, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, - 572, 389, 390, 391, 392, 349, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, + 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, + 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, + 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, + 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, + 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, + 657, 628, 727, 726, 733, 723, 0, 0, 2036, 0, + 0, 0, 0, 0, 0, 730, 731, 0, 732, 736, + 0, 0, 717, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 0, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 636, 639, 438, 439, 0, 641, 642, 643, - 640, 374, 425, 444, 432, 2045, 656, 517, 518, 657, - 628, 0, 206, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, + 0, 1260, 1261, 1262, 1259, 0, 0, 0, 745, 0, + 0, 747, 0, 0, 0, 0, 746, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2013, 0, + 0, 0, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3663, 0, 0, 0, 0, - 0, 2048, 0, 2045, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, - 0, 2045, 0, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2048, 0, 0, + 0, 1801, 0, 0, 0, 0, 0, 2013, 0, 0, + 0, 0, 3794, 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2038, 0, 0, 0, 0, 0, 0, - 0, 2022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3811, 0, 0, - 0, 2038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2029, 718, 720, 719, 0, + 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, + 2017, 0, 0, 0, 0, 0, 744, 0, 0, 0, + 0, 2023, 0, 722, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, - 0, 0, 0, 0, 0, 0, 0, 2026, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2032, 0, + 0, 2011, 2045, 0, 0, 2012, 2014, 2016, 0, 2018, + 2019, 2020, 2024, 2025, 2026, 2028, 2031, 2032, 2033, 0, + 0, 0, 0, 0, 0, 0, 2021, 2030, 2022, 2017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2020, 2054, - 0, 0, 2021, 2023, 2025, 2026, 2027, 2028, 2029, 2033, - 2034, 2035, 2037, 2040, 2041, 2042, 2032, 0, 0, 0, - 0, 0, 0, 2030, 2039, 2031, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2020, 2054, 0, 0, - 2021, 2023, 2025, 2026, 2027, 2028, 2029, 2033, 2034, 2035, - 2037, 2040, 2041, 2042, 2032, 0, 0, 0, 0, 2046, - 0, 2030, 2039, 2031, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2020, 2054, 0, 0, 2021, 2023, - 2025, 0, 2027, 2028, 2029, 2033, 2034, 2035, 2037, 2040, - 2041, 2042, 0, 0, 0, 0, 0, 2046, 0, 2030, - 2039, 2031, 0, 0, 0, 0, 0, 0, 0, 2043, + 2023, 0, 0, 0, 1797, 0, 0, 0, 0, 0, + 0, 1794, 0, 0, 0, 1796, 1793, 1795, 1799, 1800, + 2011, 2045, 2037, 1798, 2012, 2014, 2016, 0, 2018, 2019, + 2020, 2024, 2025, 2026, 2028, 2031, 2032, 2033, 0, 0, + 0, 0, 0, 0, 0, 2021, 2030, 2022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2019, 0, 0, 0, - 0, 0, 0, 2018, 0, 2046, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2043, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, - 0, 0, 0, 0, 2019, 0, 2024, 0, 0, 0, - 0, 2018, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2043, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, - 0, 0, 2019, 0, 2024, 0, 0, 0, 0, 2018, + 724, 728, 734, 0, 735, 737, 0, 0, 738, 739, + 740, 0, 2034, 742, 743, 0, 0, 0, 0, 0, + 0, 2037, 0, 0, 0, 0, 0, 0, 0, 2010, + 0, 0, 0, 0, 0, 0, 2009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2036, 0, 0, 0, 0, 0, 0, - 0, 0, 2024, 0, 0, 0, 0, 0, 0, 0, + 2027, 0, 0, 0, 0, 0, 0, 0, 0, 2015, + 0, 2034, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2010, 0, + 0, 0, 0, 0, 0, 2009, 1782, 1783, 1784, 1785, + 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1804, 1805, 1806, + 1807, 1808, 1809, 1802, 1803, 0, 0, 0, 0, 2027, + 0, 0, 0, 0, 0, 0, 0, 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 721, + 0, 0, 0, 0, 0, 0, 0, 3655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3671, + 0, 0, 0, 0, 0, 0, 3655, } var yyPact = [...]int{ - 4154, -1000, -1000, -1000, -346, 15382, -1000, -1000, -1000, -1000, + 4144, -1000, -1000, -1000, -338, 15461, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 50504, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 49945, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 456, 50504, -344, 26260, 32002, -1000, -1000, 2692, -1000, - 49228, 17316, 50504, 559, 553, 50504, -1000, -1000, -1000, -1000, + -1000, 464, 49945, -336, 31443, 48031, -1000, -1000, 2788, -1000, + 48669, 17395, 49945, 560, 559, 49945, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1015, -1000, 54970, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 922, 4268, 54332, 11527, - -215, -1000, 1869, -34, 2602, 527, -200, -218, 1229, 1234, - 1389, 1382, 50504, 1196, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 236, 120, 49866, + -1000, -1000, -1000, -1000, 984, -1000, 54411, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 916, 55059, 53773, 11606, + -228, -1000, 1559, -37, 2671, 467, -196, -214, 1137, 1147, + 1220, 1266, 49945, 1114, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 233, 999, 49307, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 373, 241, 1007, 1032, 22428, 151, - 148, 1869, 515, -103, 270, -1000, 1784, 4185, 222, -1000, + -1000, -1000, -1000, -1000, 4249, 251, 974, 999, 22507, 149, + 140, 1559, 482, -81, 210, -1000, 1804, 362, 197, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 11527, 11527, 15382, -376, 15382, 11527, 50504, 50504, -1000, -1000, - -1000, -1000, -344, 49228, 922, 4268, 11527, 2602, 527, -200, - -218, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 11606, 11606, 15461, -376, 15461, 11606, 49945, 49945, -1000, -1000, + -1000, -1000, -336, 48669, 916, 55059, 11606, 2671, 467, -196, + -214, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -103, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -81, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7455,7 +7398,7 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 148, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 140, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7473,426 +7416,424 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 5100, -1000, 1708, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 5223, -1000, 1775, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2377, 3177, 1707, 2601, 885, 48590, - 48590, 50504, -1000, 146, 885, 48590, -1000, -1000, -1000, 1869, - 3620, -1000, 50504, 50504, 235, 1997, -1000, 549, 488, 452, - 449, 358, 1699, -1000, -1000, -1000, -1000, -1000, -1000, 793, - 3513, -1000, 50504, 50504, 3205, 50504, -1000, 2317, 815, -1000, - 5426, 3362, 1426, 1044, 3213, -1000, -1000, 3167, -1000, 378, - 259, 281, 798, 446, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 350, -1000, 3418, -1000, -1000, 369, -1000, -1000, 345, - -1000, -1000, -1000, 133, -1000, -1000, -1000, -1000, -1000, -1000, - -10, -1000, -1000, 1284, 2312, 11527, 2223, -1000, 4319, 1734, - -1000, -1000, -1000, 7034, 14091, 14091, 14091, 14091, 50504, -1000, - -1000, 2943, 11527, 3157, 3156, 3155, 3154, -1000, -1000, -1000, - -1000, -1000, -1000, 3152, 1687, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2093, -1000, -1000, -1000, 14732, -1000, - 3151, 3149, 3147, 3144, 3141, 3140, 3139, 3137, 3134, 3130, - 3125, 3123, 3122, 3121, 2792, 16668, 3120, 2590, 2586, 3118, - 3117, 3114, 2581, 3110, 3109, 3100, 2792, 2792, 3097, 3092, - 3090, 3088, 3087, 3086, 3080, 3079, 3077, 3070, 3069, 3068, - 3051, 3031, 2996, 2995, 2994, 2991, 2986, 2983, 2982, 2980, - 2977, 2976, 2973, 2972, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2471, 3238, 1774, 2670, 850, 48031, + 49945, -1000, 145, 850, -1000, -1000, -1000, 1559, 3634, -1000, + 49945, 49945, 259, 2000, -1000, 566, 598, 546, 469, 387, + 1762, -1000, -1000, -1000, -1000, -1000, -1000, 782, 3575, -1000, + 49945, 49945, 3249, 49945, -1000, 2487, 821, -1000, 4259, 3420, + 1511, 1020, 3274, -1000, -1000, 3236, -1000, 396, 473, 275, + 475, 462, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 328, + -1000, 3479, -1000, -1000, 376, -1000, -1000, 377, -1000, -1000, + -1000, 138, -1000, -1000, -1000, -1000, -1000, -1000, 19, -1000, + -1000, 1184, 2302, 11606, 2265, -1000, 3011, 1767, -1000, -1000, + -1000, 7113, 14170, 14170, 14170, 14170, 49945, -1000, -1000, 3082, + 11606, 3233, 3230, 3229, 3220, -1000, -1000, -1000, -1000, -1000, + -1000, 3218, 1761, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 2120, -1000, -1000, -1000, 14811, -1000, 3217, 3216, + 3215, 3213, 3212, 3211, 3209, 3206, 3205, 3204, 3198, 3194, + 3193, 3191, 2901, 16747, 3189, 2666, 2665, 3187, 3186, 3185, + 2664, 3179, 3178, 3175, 2901, 2901, 3174, 3169, 3168, 3163, + 3162, 3161, 3160, 3159, 3154, 3153, 3151, 3146, 3144, 3138, + 3136, 3135, 3134, 3123, 3122, 3120, 3119, 3117, 3116, 3111, + 3110, 3107, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1429, -1000, - 2971, 3524, 2853, -1000, 3402, 3399, 3397, 3384, -263, 2969, - 2290, -1000, -1000, 90, 3510, 50504, -285, 50504, 436, -111, - -112, -113, -1000, -75, -1000, -1000, 1188, -1000, 1151, 53694, - 972, -1000, -1000, 50504, 920, 920, 920, 50504, 50504, 195, - 868, 920, 920, 920, 920, 920, 980, 920, 3432, 995, - 993, 992, 990, 920, -52, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1995, 1993, 3275, 1137, 1032, -1000, -1000, -1000, - -1000, 1573, 50504, -1000, 2898, 436, -333, 1789, 1789, 3476, - 3476, 3430, 3429, 835, 833, 820, 1789, 671, -1000, 1941, - 1941, 1941, 1941, 1789, 512, 877, 3435, 3435, 116, 1941, - 79, 1789, 1789, 79, 1789, 1789, -1000, 1974, 304, -269, - -1000, -1000, -1000, -1000, 1941, 1941, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 3412, 3411, 922, 922, 50504, 922, 193, - 50504, 922, 922, 922, 50504, 931, -332, 92, 53056, 52418, - 2151, 2317, 813, 804, 1587, 1968, -1000, 1778, 50504, 50504, - 1778, 1778, 25622, 24984, -1000, 50504, -1000, 3524, 2853, 2781, - 1854, 2780, 2853, -114, 436, 922, 922, 922, 922, 922, - 321, 922, 922, 922, 922, 922, 50504, 50504, 47952, 922, - 922, 922, 922, 9598, 1784, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15382, 2261, - 2322, 213, -7, -319, 267, -1000, -1000, 50504, 3331, 324, - -1000, -1000, -1000, 2875, -1000, 2886, 2886, 2886, 2886, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2886, - 2886, 2897, 2967, -1000, -1000, 2882, 2882, 2882, 2875, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1483, -1000, 3106, 3588, + 2953, -1000, 3466, 3464, 3458, 3456, -267, 3105, 2365, -1000, + -1000, 100, 3571, 49945, -290, 49945, 420, -89, -95, -100, + -1000, -79, -1000, -1000, 1129, -1000, 1094, 53135, 941, -1000, + -1000, 49945, 914, 914, 914, 49945, 49945, 232, 982, 914, + 914, 914, 914, 914, 944, 914, 3500, 970, 969, 966, + 965, 914, -35, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1998, 1994, 3343, 1085, -1000, -1000, -1000, -1000, 1640, 49945, + -1000, 3026, 420, -311, 1836, 1836, 3557, 3557, 3495, 3494, + 834, 825, 824, 1836, 671, -1000, 1947, 1947, 1947, 1947, + 1836, 543, 819, 3503, 3503, 214, 1947, 101, 1836, 1836, + 101, 1836, 1836, -1000, 1958, 304, -276, -1000, -1000, -1000, + -1000, 1947, 1947, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 3474, 3473, 916, 916, 49945, 916, 221, 49945, 916, 916, + 916, 49945, 918, -325, 51, 52497, 51859, 2262, 2487, 806, + 804, 1652, 2009, -1000, 1846, 49945, 49945, 1846, 1846, 25701, + 25063, -1000, 49945, -1000, 3588, 2953, 2883, 1527, 2882, 2953, + -102, 420, 916, 916, 916, 916, 916, 339, 916, 916, + 916, 916, 916, 49945, 49945, 47393, 916, 916, 916, 916, + 9677, 1804, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 15461, 2185, 2249, 196, -12, + -313, 297, -1000, -1000, 49945, 3389, 349, -1000, -1000, -1000, + 2997, -1000, 3010, 3010, 3010, 3010, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 3010, 3010, 3025, 3104, + -1000, -1000, 3009, 3009, 3009, 2997, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2888, 2888, 2896, 2896, 2888, 50504, - -129, -1000, -1000, 11527, 50504, 3349, 438, 2964, 885, 885, - -1000, -1000, 50504, 329, 410, 885, 3524, 3342, 3435, 3470, - -1000, -1000, 1686, 2289, 2578, -1000, 358, -1000, 434, 358, - -1000, 579, 579, 1862, -1000, 1203, -1000, -1000, -1000, -1000, - -1000, -1000, 50504, -10, 440, -1000, -1000, 2559, 2963, -1000, - 677, 1362, 1430, -1000, 394, 5146, 40934, 2317, 40934, 50504, - -1000, -1000, -1000, -1000, -1000, -1000, 128, -1000, -1000, -1000, + -1000, 3013, 3013, 3021, 3021, 3013, 49945, -120, -1000, -1000, + 11606, 49945, 3413, 430, 3092, 850, -1000, -1000, 49945, 321, + 432, 3588, 3408, 3503, 3547, -1000, -1000, 1759, 2364, 2661, + -1000, 387, -1000, 415, 387, -1000, 570, 570, 1813, -1000, + 1205, -1000, -1000, -1000, -1000, -1000, -1000, 49945, 19, 456, + -1000, -1000, 2642, 3091, -1000, 687, 1319, 1655, -1000, 381, + 4537, 40375, 2487, 40375, 49945, -1000, -1000, -1000, -1000, -1000, + -1000, 126, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 378, -1000, 11606, 11606, + 11606, 11606, 11606, -1000, 775, 13529, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 14170, 14170, 14170, 14170, 14170, 14170, 14170, + 14170, 14170, 14170, 14170, 14170, 3079, 1925, 14170, 14170, 14170, + 14170, 28253, 1527, 3273, 1651, 301, 1767, 1767, 1767, 1767, + 11606, -1000, 2012, 2302, 11606, 11606, 11606, 11606, 34633, 49945, + -1000, -1000, 55027, 11606, 11606, 3800, 11606, 3443, 11606, 11606, + 11606, 2878, 5822, 49945, 11606, -1000, 2875, 2872, -1000, -1000, + 2128, 11606, -1000, -1000, 11606, -1000, -1000, 11606, 14170, 11606, + -1000, 11606, 11606, 11606, -1000, -1000, 2907, 3443, 3443, 3443, + 1913, 11606, 11606, 3443, 3443, 3443, 1907, 3443, 3443, 3443, + 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 2866, 2865, + 2862, 10965, 3503, -228, -1000, 9036, 3408, 3503, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -269, 3090, + 49945, 2660, 2659, -346, 183, 468, 49945, 1219, -1000, -1000, + 49945, 2359, 49945, 2356, 80, 1130, 1100, 1107, -1000, -1000, + 49945, 51221, -1000, 49945, 2026, 49945, 49945, 3436, -1000, 3087, + 49945, 914, 914, 914, -1000, 45479, 40375, 49945, 49945, 2487, + 49945, 49945, 49945, 914, 914, 914, 914, 49945, -1000, 3364, + 40375, 3347, 918, -1000, 49945, 1640, 3432, 49945, -1000, -1000, + -1000, -1000, 3557, 14170, 14170, -1000, -1000, 11606, -1000, 276, + 46755, 1947, 1836, 1836, -1000, -1000, 49945, -1000, -1000, -1000, + 1947, 49945, 1947, 1947, 3557, 1947, -1000, -1000, -1000, 1836, + 1836, -1000, -1000, 11606, -1000, -1000, 1947, 1947, -1000, -1000, + 3557, 49945, 123, 3557, 3557, 115, -1000, -1000, -1000, 1836, + 49945, 49945, 914, 49945, -1000, 49945, 49945, -1000, -1000, 49945, + 49945, 4575, 49945, 45479, 46117, 3471, -1000, 40375, 49945, 49945, + 1638, -1000, 940, 37823, -1000, 49945, 1500, -1000, 74, -1000, + 61, 51, 1846, 51, 1846, 939, -1000, 680, 816, 23787, + 616, 40375, 6463, -1000, -1000, 1846, 1846, 6463, 6463, 1784, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1614, -1000, 298, + 3503, -1000, -1000, -1000, -1000, -1000, 2354, -1000, 49945, 45479, + 40375, 2487, 49945, 916, 49945, 49945, 49945, 49945, 49945, -1000, + 3086, 1742, -1000, 3418, 49945, 49945, 49945, 49945, 1606, -1000, + -1000, 20585, 1727, -1000, -1000, 2021, -1000, 11606, 15461, -255, + 11606, 15461, 15461, 11606, 15461, -1000, 11606, 312, -1000, -1000, + -1000, -1000, 2353, -1000, 2350, -1000, -1000, -1000, -1000, -1000, + 2657, 2657, -1000, 2347, -1000, -1000, -1000, -1000, 2343, -1000, + -1000, 2331, -1000, -1000, -1000, -1000, -169, 2855, 1184, -1000, + 2656, 3272, -229, -1000, 21869, 49945, 49945, 430, -355, 1992, + 1990, 1986, 3487, -1000, -229, -1000, 21227, 49945, 3503, -1000, + -233, 3408, 11606, 49945, -1000, 3493, -1000, -1000, 387, -1000, + -1000, -1000, 570, 444, -1000, -1000, -1000, -1000, -1000, -1000, + 1720, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -83, -85, 1589, -1000, 49945, -1000, -1000, 381, 40375, + 42289, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 265, -1000, + -1000, 181, -1000, 938, 289, 1800, -1000, -1000, 228, 211, + 224, 1028, 2302, -1000, 2070, 2070, 2032, -1000, 761, -1000, + -1000, -1000, -1000, 3082, -1000, -1000, -1000, 3841, 2192, -1000, + 1880, 1880, 1704, 1704, 1704, 1704, 1704, 2141, 2141, -1000, + -1000, -1000, 7113, 3079, 14170, 14170, 14170, 14170, 987, 987, + 3758, 2786, -1000, -1000, -1000, -1000, 11606, 180, 2018, -1000, + 11606, 2592, 1654, 2558, 1566, 1790, -1000, 2997, 11606, 1719, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 372, -1000, 11527, 11527, 11527, 11527, 11527, -1000, 1029, - 13450, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14091, 14091, - 14091, 14091, 14091, 14091, 14091, 14091, 14091, 14091, 14091, 14091, - 2942, 1954, 14091, 14091, 14091, 14091, 28812, 1854, 3171, 1575, - 312, 1734, 1734, 1734, 1734, 11527, -1000, 1903, 2312, 11527, - 11527, 11527, 11527, 35192, 50504, -1000, -1000, 4591, 11527, 11527, - 5104, 11527, 3380, 11527, 11527, 11527, 2771, 5743, 50504, 11527, - -1000, 2768, 2763, -1000, -1000, 2092, 11527, -1000, -1000, 11527, - -1000, -1000, 11527, 14091, 11527, -1000, 11527, 11527, 11527, -1000, - -1000, 3960, 3380, 3380, 3380, 1962, 11527, 11527, 3380, 3380, - 3380, 1934, 3380, 3380, 3380, 3380, 3380, 3380, 3380, 3380, - 3380, 3380, 3380, 2756, 2754, 2749, 10886, 3435, -215, -1000, - 8957, 3342, 3435, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -265, 2961, 50504, 2571, 2569, -350, 182, - 477, 50504, 1242, -1000, -1000, 50504, 2286, 50504, 2284, 59, - 1219, 1158, 1172, -1000, -1000, 50504, 51780, -1000, 50504, 1944, - 50504, 50504, 3374, -1000, 2958, 50504, 920, 920, 920, -1000, - 46038, 40934, 50504, 50504, 2317, 50504, 50504, 50504, 920, 920, - 920, 920, 50504, -1000, 3294, 40934, 3282, 931, -1000, 1137, - 50504, 1573, 3372, 50504, -1000, -1000, -1000, -1000, 3476, 14091, - 14091, -1000, -1000, 11527, -1000, 240, 47314, 1941, 1789, 1789, - -1000, -1000, 50504, -1000, -1000, -1000, 1941, 50504, 1941, 1941, - 3476, 1941, -1000, -1000, -1000, 1789, 1789, -1000, -1000, 11527, - -1000, -1000, 1941, 1941, -1000, -1000, 3476, 50504, 119, 3476, - 3476, 101, -1000, -1000, -1000, 1789, 50504, 50504, 920, 50504, - -1000, 50504, 50504, -1000, -1000, 50504, 50504, 4584, 50504, 46038, - 46676, 3410, -1000, 40934, 50504, 50504, 1572, -1000, 971, 38382, - -1000, 50504, 1533, -1000, 38, -1000, 53, 92, 1778, 92, - 1778, 967, -1000, 661, 1023, 23708, 574, 40934, 6384, -1000, - -1000, 1778, 1778, 6384, 6384, 1736, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1571, -1000, 261, 3435, -1000, -1000, -1000, - -1000, -1000, 2283, -1000, 50504, 46038, 40934, 2317, 50504, 922, - 50504, 50504, 50504, 50504, 50504, -1000, 2944, 1648, -1000, 3360, - 50504, 50504, 50504, 50504, 1412, -1000, -1000, 20506, 1631, -1000, - -1000, 2019, -1000, 11527, 15382, -241, 11527, 15382, 15382, 11527, - 15382, -1000, 11527, 309, -1000, -1000, -1000, -1000, 2267, -1000, - 2262, -1000, -1000, -1000, -1000, -1000, 2568, 2568, -1000, 2259, - -1000, -1000, -1000, -1000, 2258, -1000, -1000, 2247, -1000, -1000, - -1000, -1000, -158, 2748, 1284, -1000, 2567, 3211, -217, -1000, - 21790, 50504, 50504, 438, 438, -353, 1988, 1987, 1976, 3422, - -1000, -217, -1000, 21148, 50504, 410, 3435, -1000, -222, 3342, - 11527, 50504, -1000, 3428, -1000, -1000, 358, -1000, -1000, -1000, - 579, 455, -1000, -1000, -1000, -1000, -1000, -1000, 1628, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -105, - -107, 1570, -1000, 50504, -1000, -1000, 394, 40934, 42848, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 262, -1000, -1000, 187, - -1000, 966, 272, 1861, -1000, -1000, 206, 215, 243, 1072, - 2312, -1000, 2032, 2032, 2018, -1000, 823, -1000, -1000, -1000, - -1000, 2943, -1000, -1000, -1000, 1899, 3616, -1000, 1921, 1921, - 1746, 1746, 1746, 1746, 1746, 1887, 1887, -1000, -1000, -1000, - 7034, 2942, 14091, 14091, 14091, 14091, 1038, 1038, 4061, 4412, - -1000, -1000, -1000, -1000, 11527, 184, 2007, -1000, 11527, 3018, - 1629, 2765, 1427, 1860, -1000, 2875, 11527, 1622, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2746, 2743, - 3184, 3505, 2742, 11527, -1000, -1000, 1849, 1840, 1833, -1000, - 2394, 10245, -1000, -1000, -1000, 2740, 1615, 2739, -1000, -1000, - -1000, 2737, 1828, 1413, 2736, 2891, 2735, 2734, 2731, 2730, - 1565, 11527, 11527, 11527, 11527, 2729, 1827, 1825, 11527, 11527, - 11527, 11527, 2724, 11527, 11527, 11527, 11527, 11527, 11527, 11527, - 11527, 11527, 11527, 50504, 178, 178, 178, 1560, 1556, -1000, - -1000, 1824, -1000, 2312, -1000, -1000, 3342, -1000, 2937, 2245, - 1537, -1000, -1000, -341, 2510, 50504, 50504, 181, 50504, 2565, - -286, 50504, -1000, -1000, 2562, -1000, -1000, -1000, 1212, 1150, - 1148, -1000, 50504, -1000, 2560, 3358, 3427, 981, 50504, 1280, - 2930, 50504, 50504, 50504, 299, -1000, -1000, 1378, -1000, 272, - -41, 576, 1330, 3199, 3502, -131, 50504, 50504, 50504, 50504, - 3371, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 45400, - 931, -1000, 2926, 1823, -1000, -1000, 1734, 1734, 2312, 50504, - 50504, 50504, 3198, 50504, 50504, 3476, 3476, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1941, 3476, 3476, 1612, 1789, 1941, - -1000, -1000, 1941, -353, -1000, 1941, -1000, -353, 1610, -353, - 50504, -1000, -1000, -1000, 3370, 2898, 1534, -1000, -1000, -1000, - 3469, 1547, 909, 909, 1135, 755, 3467, 19230, -1000, 1804, - 1373, 964, 3313, 375, -1000, 1804, -154, 888, 1804, 1804, - 1804, 1804, 1804, 1804, 1804, 785, 782, 1804, 1804, 1804, - 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1233, 1804, - 1804, 1804, 1804, 1804, -1000, 1804, 2923, 558, -1000, -1000, - -1000, -1000, -1000, -1000, 821, 709, 287, 3409, 408, -1000, - 406, 1378, 670, 3407, 432, 50504, 50504, 3612, 1369, -1000, - -1000, -1000, -1000, -1000, 29450, 29450, 23070, 29450, -1000, 205, - 1778, 92, -18, -1000, -1000, 1533, 6384, 1533, 6384, 2238, - -1000, -1000, 952, -1000, -1000, 1330, -1000, 50504, 50504, -1000, - -1000, 2922, 1973, -1000, -1000, 16668, -1000, 6384, 6384, -1000, - -1000, 31364, 50504, -1000, -12, -1000, 12, 3342, -1000, 1298, - -1000, -1000, 1519, 1330, 3212, 50504, 1298, 1298, 1298, -1000, - -1000, 17954, 50504, 50504, -1000, -1000, -1000, -1000, 3476, 9598, - -1000, 38382, -1000, -1000, 44762, -1000, 44124, 1977, -1000, 15382, - 2307, 200, -1000, 263, -321, 211, 2045, 208, 2312, -1000, - -1000, 2721, 2718, 1822, -1000, 1821, 2716, 1814, 1806, 2237, - -1000, 63, -1000, 3337, 1331, -1000, 2920, -1000, 1803, 3271, - -1000, 1489, -1000, 1967, 1792, -1000, -1000, 3211, -1000, 11527, - 43486, 11527, 1113, 1331, 1786, 3269, 1489, -1000, 3342, 2555, - -1000, 1484, -1000, 2176, 1609, 221, -1000, -1000, -1000, 50504, - 2559, 1783, 42848, 1414, -1000, 945, 1606, 1605, -1000, 40934, - 346, 40934, -1000, 40934, -1000, -1000, 413, -1000, 50504, 3340, - -1000, -1000, -1000, 2510, 1965, -352, 50504, -1000, -1000, -1000, - -1000, -1000, 1782, -1000, 1038, 1038, 4061, 4226, -1000, 14091, - -1000, 14091, 3135, -1000, 1964, -1000, 11527, 2251, 5027, 11527, - 5027, 955, 27536, 35192, -122, 3347, 3131, 50504, -1000, -1000, - 11527, 11527, -1000, 3098, -1000, -1000, -1000, -1000, 11527, 11527, - 2904, -1000, 50504, -1000, -1000, -1000, -1000, 27536, -1000, 14091, - -1000, -1000, -1000, -1000, 11527, 1399, 1399, 3075, 1766, 178, - 178, 178, 3054, 3044, 2959, 1761, 178, 2910, 2827, 2821, - 2796, 2785, 2745, 2732, 2698, 2637, 2587, 1735, -1000, 2919, - -1000, -1000, 2098, 12809, 8957, -1000, -1000, 311, 1474, 2231, - 2553, 136, -1000, 1960, -1000, 2548, 50504, 50504, 1237, -1000, - 50504, 3500, -1000, -1000, -1000, -1000, 1144, -1000, 2544, -1000, - 293, 239, 2136, 334, 2715, 1469, -1000, -1000, 50504, -1000, - -1000, -1000, 17954, 2898, 2917, 2898, 142, 1804, 662, 40934, - 802, -1000, 50504, 2096, 1958, 3209, 862, 3325, 50504, 2916, - 493, 2914, 2913, 3369, 544, 5163, 50504, 1410, -1000, 1604, - 3496, 4185, -1000, 50504, -1000, -1000, 50504, -1000, 2317, -1000, - 1789, -1000, -1000, 3476, -1000, -1000, 11527, 11527, 3476, 1789, - 1789, -1000, 1941, -1000, 50504, -1000, -353, 544, 5163, 3368, - 4643, 622, 2693, -1000, 50504, -1000, -1000, -1000, 962, -1000, - 1118, 920, 50504, 2044, 1118, 2040, 2912, -1000, -1000, 50504, - 50504, 50504, 50504, -1000, -1000, 50504, -1000, 50504, 50504, 50504, - 50504, 50504, 42210, -1000, 50504, 50504, -1000, 50504, 2039, 50504, - 2033, 3320, -1000, 1804, 1804, 1091, -1000, -1000, 643, -1000, - 42210, 2228, 2226, 2225, 2221, 2543, 2538, 2531, 1804, 1804, - 2203, 2526, 41572, 2524, 1345, 2194, 2193, 2187, 2185, 2523, - 1042, -1000, 2522, 2179, 2175, 2167, 50504, 2906, 2451, 546, - -1000, -1000, 2136, 142, 1804, 401, 50504, 1952, 1937, 662, - 644, 644, 569, -42, 24346, -1000, -1000, -1000, 50504, 38382, - 38382, 38382, 38382, 38382, 38382, -1000, 3241, 3234, 2902, -1000, - 3249, 3233, 3248, 3239, 2791, 50504, 38382, 2898, -1000, 41572, - -1000, -1000, -1000, 1854, 1728, 3741, 1099, 11527, 6384, -1000, - -1000, 31, 42, -1000, -1000, -1000, -1000, 40934, 2520, 574, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3426, 50504, 50504, - 891, 2710, 1468, -1000, -1000, -1000, 5163, 2886, 2886, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2886, 2886, - 2897, -1000, -1000, 2882, 2882, 2882, 2875, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2888, 2888, 2896, - 2896, 2888, -1000, -1000, 3474, -1000, 1463, -1000, -1000, 1598, - -1000, 1830, -347, 15382, 1832, 1829, -1000, 11527, 15382, 11527, - -242, 387, -244, -1000, -1000, -1000, 2519, -1000, -1000, -1000, - 2184, -1000, 2183, -1000, 201, 220, 2031, -217, 8957, 510, - 50504, -217, 50504, 8957, -1000, 50504, -1000, 169, -359, -360, - 165, 2516, 484, -217, 3426, 63, 11527, 3296, -1000, -1000, - 50504, 2180, -1000, -1000, -1000, 3494, 40934, 2317, 1757, 40296, - -1000, 363, -1000, 260, 624, 2514, -1000, 989, 134, 2513, - 2510, -1000, -1000, -1000, -1000, 14091, 1734, -1000, -1000, -1000, - 2312, 11527, 2706, -1000, 1128, 1128, 2229, 2700, 2699, -1000, - 2886, 2886, -1000, 2875, 2882, 2875, 1128, 1128, 2690, -1000, - 2874, -1000, 3347, -1000, 2302, 2575, -1000, 2517, 2511, 11527, - -1000, 2688, 3863, 1541, -62, -189, 178, 178, -1000, -1000, - -1000, -1000, 178, 178, 178, 178, -1000, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 887, -96, - -274, -99, -275, -1000, 2687, 1459, -1000, -1000, -1000, -1000, - -1000, 5104, 1437, 583, 583, 2510, 2509, -1000, 940, 2507, - 1199, 50504, 2503, -287, -1000, 2502, -1000, -1000, 50504, 50504, - 50504, 51142, 702, 50504, 50504, 2498, -1000, 2497, 2496, 1280, - 5163, 2686, 3366, 18592, 3364, 2299, -1000, -1000, -1000, 30726, - 644, -1000, -1000, -1000, 739, 638, 2178, 617, -1000, 50504, - 555, 3284, 1936, 2493, 50504, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 3325, -1000, 1005, 497, 37106, 16030, -1000, - 412, 50504, -1000, 18592, 18592, 412, 503, 1909, -1000, 885, - 1344, 143, 38382, 50504, -1000, 37744, 50504, 2684, -1000, -1000, - 1330, 3476, -1000, 2312, 2312, -353, 3476, 3476, 1789, -1000, - -1000, 503, -1000, 412, -1000, 1383, 19868, 595, 522, 448, - -1000, 689, -1000, -1000, 876, 3306, 5163, -1000, 50504, -1000, - 50504, -1000, 50504, 50504, 920, 11527, 3306, 50504, 936, -1000, - 1247, 487, 492, 874, 874, 1420, -1000, 3347, -1000, -1000, - 1418, -1000, -1000, -1000, -1000, 50504, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 27536, 27536, 3405, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2492, - 2491, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2854, 2839, 2474, 3570, 2837, 11606, -1000, -1000, 1777, 1768, + 1765, -1000, 2367, 10324, -1000, -1000, -1000, 2835, 1703, 2825, + -1000, -1000, -1000, 2822, 1763, 1311, 2821, 1488, 2817, 2800, + 2799, 2798, 1569, 11606, 11606, 11606, 11606, 2796, 1753, 1748, + 11606, 11606, 11606, 11606, 2795, 11606, 11606, 11606, 11606, 11606, + 11606, 11606, 11606, 11606, 11606, 49945, 146, 146, 146, 1535, + 1534, -1000, -1000, 1744, -1000, 2302, -1000, -1000, 3408, -1000, + 3078, 2324, 1513, -1000, -1000, -332, 2590, 49945, 49945, 166, + 49945, 2655, -293, 49945, -1000, -1000, 2647, -1000, -1000, -1000, + 1127, 1091, 1110, -1000, 49945, -1000, 2645, 3399, 3492, 960, + 49945, 1262, 3064, 49945, 49945, 49945, 322, -1000, -1000, 1314, + -1000, 289, -3, 565, 1204, 3244, 3569, -121, 49945, 49945, + 49945, 49945, 3431, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 44841, -1000, 3060, 1743, -1000, -1000, 1767, 1767, 2302, + 49945, 49945, 49945, 3227, 49945, 49945, 3557, 3557, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1947, 3557, 3557, 1466, 1836, + 1947, -1000, -1000, 1947, -355, -1000, 1947, -1000, -355, 1692, + -355, 49945, -1000, -1000, -1000, 3430, 3026, 1505, -1000, -1000, + -1000, 3546, 1615, 889, 889, 1135, 820, 3545, 19309, -1000, + 1829, 1357, 937, 3369, 394, -1000, 1829, -160, 864, 1829, + 1829, 1829, 1829, 1829, 1829, 1829, 776, 767, 1829, 1829, + 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1141, + 1829, 1829, 1829, 1829, 1829, -1000, 1829, 3059, 549, -1000, + -1000, -1000, -1000, -1000, -1000, 798, 705, 319, 3469, 434, + -1000, 429, 1314, 674, 3461, 459, 49945, 49945, 3551, 1495, + -1000, -1000, -1000, -1000, -1000, 28891, 28891, 23149, 28891, -1000, + 205, 1846, 51, 72, -1000, -1000, 1500, 6463, 1500, 6463, + 2323, -1000, -1000, 936, -1000, -1000, 1204, -1000, 49945, 49945, + -1000, -1000, 3058, 1984, -1000, -1000, 16747, -1000, 6463, 6463, + -1000, -1000, 30805, 49945, -1000, 3, -1000, 28, 3408, -1000, + 1189, -1000, -1000, 1468, 1204, 3270, 49945, 1189, 1189, 1189, + -1000, -1000, 18033, 49945, 49945, -1000, -1000, -1000, -1000, 3557, + 9677, -1000, 37823, -1000, -1000, 44203, -1000, 43565, 2004, -1000, + 15461, 2150, 192, -1000, 281, -315, 190, 1991, 189, 2302, + -1000, -1000, 2782, 2781, 1738, -1000, 1736, 2775, 1733, 1732, + 2310, -1000, 97, -1000, 3391, 1209, -1000, 3056, -1000, 1730, + 3338, -1000, 1467, -1000, 1983, 1722, -1000, -1000, -1000, 11606, + 42927, 11606, 1060, 1209, 1721, 3323, 1467, 3408, 2643, -1000, + 1453, -1000, 2290, 1683, 195, -1000, -1000, -1000, 49945, 2642, + 1701, 42289, 1343, -1000, 932, 1682, 1677, -1000, 40375, 383, + 40375, -1000, 40375, -1000, -1000, 401, -1000, 49945, 3405, -1000, + -1000, -1000, 2590, 1968, -349, 49945, -1000, -1000, -1000, -1000, + -1000, 1700, -1000, 987, 987, 3758, 1932, -1000, 14170, -1000, + 14170, 3231, -1000, 1988, -1000, 11606, 2119, 5115, 11606, 5115, + 1009, 26977, 34633, -112, 3396, 3225, 49945, -1000, -1000, 11606, + 11606, -1000, 3221, -1000, -1000, -1000, -1000, 11606, 11606, 2129, + -1000, 49945, -1000, -1000, -1000, -1000, 26977, -1000, 14170, -1000, + -1000, -1000, -1000, 11606, 1381, 1381, 3142, 1698, 146, 146, + 146, 3102, 3096, 3084, 1697, 146, 3023, 3005, 3000, 2988, + 2957, 2869, 2830, 2784, 2780, 2774, 1689, -1000, 3049, -1000, + -1000, 2118, 12888, 9036, -1000, -1000, 302, 1449, 2286, 2639, + 127, -1000, 1965, -1000, 2637, 49945, 49945, 1190, -1000, 49945, + 3565, -1000, -1000, -1000, -1000, 1089, -1000, 2631, -1000, 257, + 242, 2154, 360, 2769, 1444, -1000, -1000, 49945, -1000, -1000, + -1000, 18033, 3026, 3048, 3026, 177, 1829, 664, 40375, 795, + -1000, 49945, 2171, 1963, 3268, 584, 3387, 49945, 3047, 410, + 3046, 3044, 3429, 532, 5349, 49945, 1456, -1000, 1674, 362, + -1000, 49945, -1000, -1000, 49945, -1000, 2487, -1000, 1836, -1000, + -1000, 3557, -1000, -1000, 11606, 11606, 3557, 1836, 1836, -1000, + 1947, -1000, 49945, -1000, -355, 532, 5349, 3428, 4830, 756, + 2648, -1000, 49945, -1000, -1000, -1000, 897, -1000, 1080, 914, + 49945, 2085, 1080, 2079, 3039, -1000, -1000, 49945, 49945, 49945, + 49945, -1000, -1000, 49945, -1000, 49945, 49945, 49945, 49945, 49945, + 41651, -1000, 49945, 49945, -1000, 49945, 2076, 49945, 2071, 3373, + -1000, 1829, 1829, 1040, -1000, -1000, 683, -1000, 41651, 2284, + 2275, 2269, 2268, 2630, 2626, 2624, 1829, 1829, 2259, 2623, + 41013, 2622, 1320, 2258, 2256, 2255, 2349, 2611, 1062, -1000, + 2610, 2345, 2312, 2281, 49945, 3038, 2538, 547, -1000, -1000, + 2154, 177, 1829, 424, 49945, 1959, 1936, 664, 634, 634, + 564, -19, 24425, -1000, -1000, -1000, 49945, 37823, 37823, 37823, + 37823, 37823, 37823, -1000, 3302, 3297, 3037, -1000, 3310, 3296, + 3326, 3298, 2916, 49945, 37823, 3026, -1000, 41013, -1000, -1000, + -1000, 1527, 1686, 3961, 1067, 11606, 6463, -1000, -1000, 57, + 36, -1000, -1000, -1000, -1000, 40375, 2608, 616, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 3491, 49945, 49945, 876, 2768, + 1435, -1000, -1000, -1000, 5349, 3010, 3010, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 3010, 3010, 3025, -1000, + -1000, 3009, 3009, 3009, 2997, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 3013, 3013, 3021, 3021, 3013, + -1000, -1000, 3555, -1000, 1431, -1000, -1000, 1673, -1000, 2014, + -341, 15461, 2006, 1854, -1000, 11606, 15461, 11606, -256, 406, + -259, -1000, -1000, -1000, 2605, -1000, -1000, -1000, 2253, -1000, + 2251, -1000, 201, 222, 2069, -229, 9036, 455, 49945, -229, + 49945, 9036, -1000, 49945, 169, -361, -362, 161, 2604, 453, + -229, 3491, 97, 11606, 3366, -1000, -1000, 49945, 2247, -1000, + -1000, -1000, 3564, 40375, 2487, 1796, 39737, -1000, 374, -1000, + 261, 643, 2602, -1000, 955, 120, 2593, 2590, -1000, -1000, + -1000, -1000, 14170, 1767, -1000, -1000, -1000, 2302, 11606, 2767, + -1000, 1095, 1095, 2384, 2765, 2764, -1000, 3010, 3010, -1000, + 2997, 3009, 2997, 1095, 1095, 2763, -1000, 2994, -1000, 3396, + -1000, 2294, 2743, -1000, 2576, 2531, 11606, -1000, 2759, 3734, + 1414, -40, -197, 146, 146, -1000, -1000, -1000, -1000, 146, + 146, 146, 146, -1000, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 858, -101, -282, -104, -285, + -1000, 2750, 1429, -1000, -1000, -1000, -1000, -1000, 3800, 1393, + 580, 580, 2590, 2589, -1000, 931, 2586, 1125, 49945, 2585, + -305, -1000, 2584, -1000, -1000, 49945, 49945, 49945, 50583, 693, + 49945, 49945, 2579, -1000, 2577, 2573, 1262, 5349, 2749, 3427, + 18671, 3424, 2377, -1000, -1000, -1000, 30167, 634, -1000, -1000, + -1000, 763, 608, 2245, 624, -1000, 49945, 602, 3353, 1927, + 2570, 49945, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 3387, -1000, 1015, 518, 36547, 16109, -1000, 428, 49945, -1000, + 18671, 18671, 428, 523, 1942, -1000, 850, 1433, 141, 37823, + 49945, -1000, 37185, 2747, -1000, -1000, 1204, 3557, -1000, 2302, + 2302, -355, 3557, 3557, 1836, -1000, -1000, 523, -1000, 428, + -1000, 1735, 19947, 637, 519, 507, -1000, 706, -1000, -1000, + 845, 3361, 5349, -1000, 49945, -1000, 49945, -1000, 49945, 49945, + 914, 11606, 3361, 49945, 927, -1000, 1215, 493, 492, 872, + 872, 1388, -1000, 3396, -1000, -1000, 1384, -1000, -1000, -1000, + -1000, 49945, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 26977, + 26977, 3450, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2569, 2568, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 50504, 1727, -1000, 1901, 2174, 2490, 2299, 30726, 1900, 1778, - 2483, 2481, 644, -1000, 2476, 2472, -1000, 2096, 1898, 986, - 50504, -1000, 1299, 50504, 50504, -1000, 1407, -1000, 1896, 3196, - 3208, 3196, -1000, 3196, -1000, -1000, -1000, -1000, 3237, 2470, - -1000, 3235, -1000, 2528, -1000, -1000, -1000, -1000, 1407, -1000, - -1000, -1000, -1000, -1000, 1099, -1000, 3425, 1118, 1118, 1118, - 2683, -1000, -1000, -1000, -1000, 1414, 2680, -1000, -1000, -1000, - 3519, -1000, -1000, -1000, -1000, -1000, -1000, 17954, 3323, 3466, - 3460, 39658, -1000, -347, 1872, -1000, 2138, 202, 2003, 50504, - -1000, -1000, -1000, 2676, 2674, -224, 210, 3458, 3457, 1154, - -1000, 2672, 1409, -217, -1000, -1000, 1331, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -371, -217, -1000, 1331, -1000, 201, - -1000, -1000, 3329, -1000, -1000, 2317, -1000, 257, -1000, -1000, - -1000, -1000, -1000, -1000, 251, -1000, 50504, -1000, 1400, 129, - -1000, 2312, -1000, -1000, -1000, -1000, -1000, 5027, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2465, -1000, - -1000, 11527, -1000, -1000, -1000, 2505, -1000, -1000, 11527, 2669, - 2462, 2663, 2460, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 49945, 1685, -1000, 1924, + 2223, 2564, 2377, 30167, 1915, 1846, 2563, 2561, 634, -1000, + 2560, 2557, -1000, 2171, 1912, 953, 49945, -1000, 1195, 49945, + 49945, -1000, 1340, -1000, 1883, 3242, 3260, 3242, -1000, 3242, + -1000, -1000, -1000, -1000, 3292, 2551, -1000, 3289, -1000, 3040, + -1000, -1000, -1000, -1000, 1340, -1000, -1000, -1000, -1000, -1000, + 1067, -1000, 3490, 1080, 1080, 1080, 2746, -1000, -1000, -1000, + -1000, 1343, 2736, -1000, -1000, -1000, 3583, -1000, -1000, -1000, + -1000, -1000, -1000, 18033, 3384, 3549, 3544, 39099, -1000, -341, + 1961, -1000, 2080, 184, 1985, 49945, -1000, -1000, -1000, 2735, + 2734, -235, 194, 3535, 3532, 1139, -1000, 2733, 1328, -229, + -1000, -1000, 1209, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -364, -229, -1000, 1209, -1000, 201, -1000, -1000, 3381, -1000, + -1000, 2487, -1000, 260, -1000, -1000, -1000, -1000, -1000, -1000, + 274, -1000, 49945, -1000, 1236, 119, -1000, 2302, -1000, -1000, + -1000, -1000, -1000, 5115, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2548, -1000, -1000, 11606, -1000, -1000, + -1000, 2509, -1000, -1000, 11606, 2732, 2546, 2731, 2545, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 3524, -1000, 3456, 1726, 2658, 2652, 1724, 2651, 2649, -1000, - 11527, 2647, 5104, 1104, 2457, 1104, -1000, -1000, 415, 30088, - 50504, 3488, -1000, 50504, 2455, -1000, -1000, 50504, 2136, 692, - 2136, 738, 50504, -1000, -1000, -1000, -1000, -1000, 1020, 412, - 2646, 1354, -1000, -1000, -1000, -1000, 412, -1000, 2454, 266, - -1000, -1000, -1000, -1000, 2172, -1000, -1000, 2164, 1630, 294, - -1000, -1000, -1000, -1000, -1000, -1000, 2182, 50504, 39020, 2297, - 1895, -354, -1000, 2873, -1000, 1804, 1804, 1804, 50504, 1705, - -1000, 1804, 1804, 2645, -1000, -1000, 2642, 2640, -134, 893, - 1961, 1959, -1000, 2169, 29450, 38382, 37744, 1393, -1000, 1594, - -1000, 885, -1000, -1000, -1000, -1000, -1000, 3476, 893, -1000, - 598, 2168, 14091, 2871, 14091, 2870, 665, 2867, 1704, -1000, - 50504, -1000, -1000, 50504, 4131, 2866, -1000, 2864, 3193, 582, - 2862, 2847, 50504, 2464, -1000, 3306, 50504, 824, 3319, -1000, - -1000, -1000, 471, -1000, -1000, -1000, 701, -1000, 50504, -1000, - 50504, -1000, 1713, -1000, 27536, -1000, -1000, 1695, -1000, 2451, - 2450, 5104, -1000, -1000, 266, 2447, 6384, -1000, -1000, -1000, - -1000, -1000, 3284, 2439, 2182, 50504, -1000, 50504, 1299, 1299, - 3524, 50504, 8957, -1000, -1000, 11527, 2841, -1000, 11527, -1000, - -1000, -1000, 2639, -1000, -1000, -1000, -1000, -1000, 2836, 3315, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1897, -1000, 11527, - 12168, -1000, 916, 15382, -256, 385, -1000, -1000, -1000, -226, - 2437, -1000, -1000, 3455, 2435, 2352, 50504, -1000, -1000, 1331, - -1000, 1331, -224, -1000, -1000, 1330, -1000, -1000, 1195, 792, - -1000, 2638, 276, -1000, 2418, -1000, 2360, 178, -1000, 178, - -1000, 292, 11527, -1000, 2426, -1000, -1000, -1000, 2425, -1000, - -1000, 2285, -1000, 2635, -1000, 2424, -1000, -1000, 50504, -1000, - -1000, 1198, 2422, -356, -1000, 2421, 2136, 2420, 2136, 50504, - 688, 5163, -139, -134, 18592, -139, -1000, -1000, 411, 421, - -1000, -1000, 2146, 650, -1000, -1000, 2414, 630, -1000, 1299, - -1000, 1882, 2058, 2395, 35192, 27536, 28812, 2411, -1000, -1000, - 37106, 1897, 1897, 55619, 372, 55695, -1000, 2833, 1239, 1957, - -1000, 2165, -1000, 2155, -1000, 3476, 1393, 138, -1000, -1000, - 1753, 29450, -1000, 1239, 2693, 3454, -1000, 3465, 50504, 3001, - 50504, 2832, 1866, 14091, -1000, 876, 3268, -1000, -1000, 4131, - -1000, -1000, 2065, 14091, -1000, -1000, 2410, 28812, 1051, 1847, - 1841, 1081, 2829, -1000, 741, 3517, -1000, -1000, -1000, 1077, - 2819, -1000, 2025, 1972, -1000, 50504, -1000, 35192, 35192, 901, - 901, 35192, 35192, 2818, 874, -1000, -1000, 14091, -1000, -1000, - 1804, -1000, -1000, -1000, 1804, 1694, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 2297, -1000, -1000, 1298, -1000, 3435, -1000, - -1000, 2312, 50504, 2312, -1000, 36468, -1000, 3453, 3452, -1000, - 2312, 252, 238, 2817, 2811, -1000, -347, 50504, 50504, -228, - 2148, -1000, 2408, 226, -1000, -1000, 1293, -226, -231, 101, - 27536, 1831, -1000, 2632, 355, -146, -1000, -1000, -1000, -1000, - 2630, -1000, 911, -1000, -1000, -1000, 1284, 2629, 2627, -1000, - -1000, -1000, -1000, 50504, -1000, 2387, -1000, 2407, -1000, 2406, - 684, 2136, -125, -1000, -1000, 414, -1000, -1000, -1000, 660, - 2339, -1000, -1000, 416, -1000, -1000, -1000, 2182, 2404, -1000, - -1000, 111, -1000, 1826, 1692, -1000, -1000, -1000, -1000, -1000, - -1000, 866, -1000, 412, 55657, -1000, 1373, 28174, -1000, 1195, - 866, 558, 33916, 700, 313, -1000, 2147, -1000, -1000, 3524, - -1000, 3476, 698, -1000, 652, -1000, 1690, -1000, 1669, 35830, - 2144, 2978, -1000, 5311, 994, -1000, -1000, 4061, -1000, -1000, - -1000, -1000, -1000, -1000, 2403, 2401, -1000, -1000, -1000, -1000, - -1000, 2142, 2810, 105, 3387, 2400, -1000, -1000, 2806, 1668, - 1661, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1634, 1625, 35192, -1000, -1000, 4061, 2141, 27536, 1804, - -1000, -1000, 1613, 1591, -1000, -1000, -1000, -1000, -1000, -327, - 2802, 11527, 11527, -1000, -1000, -1000, 2801, -1000, -1000, 3449, - -228, -234, 2399, 198, 275, -1000, 2397, -1000, -127, 3262, - -149, -1000, -1000, 734, -220, 174, 168, 115, -1000, -1000, - -1000, 11527, -1000, -1000, -1000, 110, -1000, 1817, -1000, -1000, - 2136, 2396, 50504, 718, -1000, -1000, -1000, -1000, 248, -1000, - -1000, -1000, -1000, -1000, -1000, 2395, 2392, -1000, 588, 3448, - -1000, 55695, -1000, 1804, -1000, 588, 1590, -1000, 1804, 1804, - -1000, 535, -1000, 1951, -1000, 2131, -1000, 3435, 3524, -1000, - 530, -1000, 591, -1000, -1000, -1000, 1543, -1000, -1000, -1000, - 5311, 602, -1000, 852, 2800, -1000, -1000, 2622, 11527, 2792, - 1804, 2612, -118, 35192, 3190, 3133, 2893, 2525, 1538, -1000, - -1000, 27536, -1000, -1000, 34554, -1000, 2790, 1526, 1525, 50504, - 2352, -1000, -1000, 2388, -1000, 930, 191, 275, -1000, 3443, - 219, 3442, 3441, 1270, 3258, -1000, -1000, 2013, -1000, 186, - 171, 166, -1000, -1000, -1000, -1000, -1000, 2387, 2380, 2378, - -1000, 594, -1000, 360, -1000, -1000, -1000, 365, -1000, 3439, - 622, -1000, 27536, -1000, -1000, 33916, 1897, 1897, -1000, -1000, - 2129, -1000, -1000, 3435, -1000, -1000, 2128, -1000, -1000, -1000, - 1523, -1000, 50504, 1078, 8316, -1000, 2067, -1000, 50504, -1000, - 3207, -1000, 315, 1513, 365, 901, 365, 901, 365, 901, - 365, 901, 342, -1000, -1000, -1000, 1501, 11527, -1000, -1000, - 1479, -1000, -1000, -1000, 2788, 2116, 210, 203, 3438, -1000, - 2352, 3437, 2352, 2352, -1000, 185, -144, 734, -1000, -1000, - -1000, -1000, -1000, -1000, 2375, -1000, -1000, -1000, -1000, 1804, - 1804, 2374, 2372, 494, -1000, -1000, 1804, 1804, 1804, 1804, - 33278, 595, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 602, 55695, -1000, 8316, 1464, -1000, 2312, -1000, 874, -1000, - -1000, 3138, 2981, 3481, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2787, 2608, -1000, 50504, 3379, 26898, - 196, -1000, -1000, -1000, 2370, -1000, 2352, -1000, -1000, 1800, - -147, -1000, -271, 2110, 2106, -1000, -1000, 50504, 2099, 2085, - 2074, 2321, -1000, 50504, 598, -1000, 55695, 1460, -1000, 8316, - -1000, -1000, 3516, -1000, 3482, 1087, 1087, 365, 365, 365, - 365, 11527, -1000, -1000, -1000, 50504, -1000, 1446, -1000, -1000, - -1000, 1548, -1000, -1000, -1000, -1000, 2306, -150, -1000, -1000, - 2304, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1398, 2693, - -1000, -1000, -1000, -1000, -1000, 2121, 737, -1000, 2592, 1263, - -1000, 1788, -1000, 32640, 50504, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 50504, 7675, -1000, 1390, -1000, -1000, - 2312, 50504, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 3588, -1000, 3531, 1664, + 2730, 2728, 1647, 2727, 2726, -1000, 11606, 2724, 3800, 1049, + 2544, 1049, -1000, -1000, 454, 29529, 49945, 3559, -1000, 49945, + 2543, -1000, -1000, 49945, 2154, 691, 2154, 783, 49945, -1000, + -1000, -1000, -1000, -1000, 977, 428, 2723, 1222, -1000, -1000, + -1000, -1000, 428, -1000, 2539, 285, -1000, -1000, -1000, -1000, + 2222, -1000, -1000, 2229, 1737, 308, -1000, -1000, -1000, -1000, + -1000, -1000, 2372, 49945, 38461, 2374, 1875, -356, -1000, 2991, + -1000, 1829, 1829, 1829, 49945, 1645, -1000, 1829, 1829, 2722, + -1000, -1000, 2721, 2719, -122, 871, 1895, 1892, -1000, 2181, + 28891, 37823, 37185, 1325, -1000, 1670, -1000, -1000, -1000, -1000, + -1000, -1000, 3557, 871, -1000, 597, 2180, 14170, 2990, 14170, + 2983, 663, 2981, 1644, -1000, 49945, -1000, -1000, 49945, 4135, + 2980, -1000, 2978, 3223, 577, 2977, 2963, 49945, 2484, -1000, + 3361, 49945, 805, 3379, -1000, -1000, -1000, 461, -1000, -1000, + -1000, 712, -1000, 49945, -1000, 49945, -1000, 1757, -1000, 26977, + -1000, -1000, 1643, -1000, 2538, 2535, 3800, -1000, -1000, 285, + 2530, 6463, -1000, -1000, -1000, -1000, -1000, 3353, 2528, 2372, + 49945, -1000, 49945, 1195, 1195, 3588, 49945, 9036, -1000, -1000, + 11606, 2961, -1000, 11606, -1000, -1000, -1000, 2718, -1000, -1000, + -1000, -1000, -1000, 2959, 3380, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1454, -1000, 11606, 12247, -1000, 900, 15461, -260, + 403, -1000, -1000, -1000, -238, 2522, -1000, -1000, 3527, 2521, + 2404, 49945, -1000, -1000, 1209, -1000, 1209, -235, -1000, -1000, + 1204, -1000, -1000, 1170, 779, -1000, 2715, 278, -1000, 2453, + -1000, 2403, 146, -1000, 146, -1000, 277, 11606, -1000, 2519, + -1000, -1000, -1000, 2518, -1000, -1000, 2363, -1000, 2709, -1000, + 2517, -1000, -1000, 49945, -1000, -1000, 1119, 2513, -357, -1000, + 2511, 2154, 2510, 2154, 49945, 688, 5349, -129, -122, 18671, + -129, -1000, -1000, 398, 441, -1000, -1000, 2172, 685, -1000, + -1000, 2495, 662, -1000, 1195, -1000, 1874, 2098, 2442, 34633, + 26977, 28253, 2493, -1000, -1000, 36547, 1454, 1454, 5355, 378, + 55131, -1000, 2956, 1155, 1864, -1000, 2178, -1000, 2177, -1000, + 3557, 1325, 139, -1000, -1000, 1750, -1000, 1155, 2648, 3526, + -1000, 3668, 49945, 2910, 49945, 2955, 1858, 14170, -1000, 845, + 3126, -1000, -1000, 4135, -1000, -1000, 2094, 14170, -1000, -1000, + 2489, 28253, 1034, 1853, 1851, 1035, 2954, -1000, 719, 3582, + -1000, -1000, -1000, 1039, 2951, -1000, 2066, 2057, -1000, 49945, + -1000, 34633, 34633, 813, 813, 34633, 34633, 2950, 872, -1000, + -1000, 14170, -1000, -1000, 1829, -1000, -1000, -1000, 1829, 1752, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2374, -1000, -1000, + 1189, -1000, 3503, -1000, -1000, 2302, 49945, 2302, -1000, 35909, + -1000, 3524, 3522, -1000, 2302, 258, 252, 2949, 2947, -1000, + -341, 49945, 49945, -240, 2176, -1000, 2486, 225, -1000, -1000, + 1187, -238, -243, 115, 26977, 1850, -1000, 2700, 366, -148, + -1000, -1000, -1000, -1000, 2698, -1000, 644, -1000, -1000, -1000, + 1184, 2693, 2686, -1000, -1000, -1000, -1000, 49945, -1000, 2431, + -1000, 2485, -1000, 2483, 686, 2154, -116, -1000, -1000, 466, + -1000, -1000, -1000, 650, 2394, -1000, -1000, 439, -1000, -1000, + -1000, 2372, 2481, -1000, -1000, 109, -1000, 1843, 1635, -1000, + -1000, -1000, -1000, -1000, -1000, 842, -1000, 428, 55072, -1000, + 1357, 27615, -1000, 1170, 842, 549, 33357, 699, 305, -1000, + 2167, -1000, -1000, 3588, -1000, 698, -1000, 635, -1000, 1633, + -1000, 1632, 35271, 2160, 2880, -1000, 5417, 975, -1000, -1000, + 3758, -1000, -1000, -1000, -1000, -1000, -1000, 2480, 2464, -1000, + -1000, -1000, -1000, -1000, 2157, 2932, 1, 3446, 2451, -1000, + -1000, 2918, 1623, 1622, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1619, 1618, 34633, -1000, -1000, 3758, + 2156, 26977, 1829, -1000, -1000, 1592, 1582, -1000, -1000, -1000, + -1000, -1000, -320, 2913, 11606, 11606, -1000, -1000, -1000, 2912, + -1000, -1000, 3518, -240, -249, 2449, 199, 244, -1000, 2447, + -1000, -117, 3316, -153, -1000, -1000, 833, -231, 163, 143, + 131, -1000, -1000, -1000, 11606, -1000, -1000, -1000, 108, -1000, + 1837, -1000, -1000, 2154, 2445, 49945, 689, -1000, -1000, -1000, + -1000, 271, -1000, -1000, -1000, -1000, -1000, -1000, 2442, 2437, + -1000, 583, 3517, -1000, 55131, -1000, 1829, -1000, 583, 1565, + -1000, 1829, 1829, -1000, 529, -1000, 1852, -1000, 2153, -1000, + 3503, -1000, 527, -1000, 586, -1000, -1000, -1000, 1538, -1000, + -1000, -1000, 5417, 606, -1000, 836, 2905, -1000, -1000, 2684, + 11606, 2901, 1829, 2681, -107, 34633, 3007, 3002, 2909, 2566, + 1528, -1000, -1000, 26977, -1000, -1000, 33995, -1000, 2893, 1510, + 1462, 49945, 2404, -1000, -1000, 2435, -1000, 898, 207, 244, + -1000, 3516, 217, 3515, 3513, 1180, 3315, -1000, -1000, 2022, + -1000, 185, 171, 160, -1000, -1000, -1000, -1000, -1000, 2431, + 2430, 2429, -1000, 595, -1000, 371, -1000, -1000, -1000, 306, + -1000, 3511, 756, -1000, 26977, -1000, -1000, 33357, 1454, 1454, + -1000, -1000, 2148, -1000, -1000, -1000, -1000, 2147, -1000, -1000, + -1000, 1452, -1000, 49945, 1010, 8395, -1000, 2348, -1000, 49945, + -1000, 3234, -1000, 323, 1438, 306, 813, 306, 813, 306, + 813, 306, 813, 368, -1000, -1000, -1000, 1436, 11606, -1000, + -1000, 1404, -1000, -1000, -1000, 2890, 2145, 194, 186, 3508, + -1000, 2404, 3507, 2404, 2404, -1000, 193, -138, 833, -1000, + -1000, -1000, -1000, -1000, -1000, 2423, -1000, -1000, -1000, -1000, + 1829, 1829, 2414, 2413, 500, -1000, -1000, 1829, 1829, 1829, + 1829, 32719, 637, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 606, 55131, -1000, 8395, 1397, -1000, 2302, -1000, 872, -1000, + -1000, 3014, 2960, 3563, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2885, 2581, -1000, 49945, 3442, 26339, + 187, -1000, -1000, -1000, 2410, -1000, 2404, -1000, -1000, 1821, + -150, -1000, -278, 2137, 2136, -1000, -1000, 49945, 2130, 2127, + 2125, 2401, -1000, 49945, 597, -1000, 55131, 1394, -1000, 8395, + -1000, -1000, 3581, -1000, 3579, 1000, 1000, 306, 306, 306, + 306, 11606, -1000, -1000, -1000, 49945, -1000, 1390, -1000, -1000, + -1000, 1667, -1000, -1000, -1000, -1000, 2400, -157, -1000, -1000, + 2382, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1249, 2648, + -1000, -1000, -1000, -1000, -1000, 2168, 741, -1000, 2458, 1178, + -1000, 1816, -1000, 32081, 49945, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 49945, 7754, -1000, 1657, -1000, -1000, + 2302, 49945, -1000, } var yyPgo = [...]int{ - 0, 184, 3544, 249, 182, 4190, 106, 265, 290, 272, - 254, 248, 4189, 4188, 4187, 3327, 3325, 4185, 4184, 4182, - 4181, 4180, 4179, 4177, 4176, 4175, 4174, 4172, 4171, 4166, - 4165, 4164, 4163, 4162, 4161, 4156, 4155, 4148, 4141, 4140, - 4139, 4138, 4135, 4134, 4133, 4132, 4131, 242, 4126, 4123, - 4122, 4121, 4119, 4117, 4116, 4114, 4112, 4108, 4105, 4101, - 4100, 4099, 4096, 4095, 4094, 4093, 4091, 4089, 4088, 4086, - 4085, 4083, 4082, 4081, 4079, 4078, 4074, 4073, 4072, 4071, - 4070, 4069, 4068, 4066, 4065, 253, 4063, 3321, 4062, 4061, - 4059, 4057, 4056, 4053, 4052, 4051, 4050, 4044, 4042, 337, - 4041, 4036, 4035, 4029, 4027, 4026, 4025, 4024, 4023, 4020, - 4019, 4017, 4016, 332, 4003, 4000, 3998, 3997, 215, 3996, - 263, 3995, 180, 146, 3994, 3993, 3990, 3989, 3985, 3983, - 3982, 3981, 3979, 3977, 3973, 3971, 3970, 3969, 239, 213, - 74, 3968, 47, 3967, 3965, 221, 3964, 159, 3963, 150, - 3962, 3961, 3960, 3959, 3958, 3957, 3956, 3952, 3951, 3946, - 3945, 3943, 3941, 3940, 3938, 3937, 3936, 3935, 3934, 3932, - 3931, 3929, 3928, 3927, 48, 3926, 268, 3925, 78, 3923, - 186, 3922, 75, 3921, 105, 142, 261, 581, 266, 3920, - 192, 3919, 3918, 252, 179, 3917, 3915, 287, 3914, 163, - 232, 161, 116, 114, 3910, 140, 3909, 273, 38, 29, - 250, 148, 3908, 3907, 57, 162, 97, 3906, 218, 115, - 112, 3905, 3904, 141, 3902, 245, 187, 3901, 109, 3900, - 3899, 3898, 3897, 3896, 205, 202, 3895, 3894, 128, 3892, - 3891, 68, 131, 3890, 80, 125, 171, 120, 3889, 2675, - 126, 85, 3888, 113, 101, 3887, 144, 3885, 3883, 3882, - 3881, 195, 3880, 3879, 134, 59, 3878, 3869, 3868, 70, - 3866, 82, 3864, 41, 3863, 56, 3861, 3860, 3859, 3858, - 3856, 3855, 3852, 3851, 3849, 3848, 3847, 3845, 54, 3844, - 3843, 3842, 3841, 7, 14, 17, 3840, 27, 3839, 172, - 3838, 3835, 167, 3834, 193, 3832, 3831, 96, 92, 3830, - 93, 173, 3828, 9, 28, 77, 3827, 3826, 3825, 64, - 3824, 3823, 3819, 276, 3818, 3806, 3805, 164, 3804, 3802, - 3800, 471, 3799, 3798, 3797, 3796, 3794, 3792, 119, 3791, - 1, 219, 42, 3790, 130, 137, 3789, 40, 32, 3787, - 49, 117, 206, 132, 99, 3786, 3785, 3784, 278, 201, - 61, 62, 0, 98, 224, 156, 3783, 3782, 3779, 267, - 3778, 235, 240, 233, 176, 274, 259, 3777, 3776, 58, - 3775, 166, 30, 53, 138, 91, 21, 209, 3774, 1400, - 10, 189, 3772, 208, 3771, 8, 18, 124, 152, 3770, - 3756, 36, 269, 3755, 3754, 3753, 133, 3752, 3750, 175, - 83, 3748, 3747, 3745, 3744, 39, 3743, 190, 16, 3742, - 102, 3740, 251, 3738, 243, 154, 188, 185, 160, 226, - 230, 84, 81, 194, 1905, 155, 104, 15, 3737, 229, - 3736, 174, 135, 3735, 88, 3733, 246, 262, 211, 3732, - 191, 11, 51, 37, 31, 44, 12, 341, 207, 3731, - 3730, 24, 52, 3728, 50, 3727, 20, 3726, 3723, 45, - 3715, 60, 5, 3712, 3711, 19, 22, 3710, 34, 236, - 178, 118, 94, 67, 3709, 3708, 149, 158, 3707, 169, - 157, 151, 3706, 79, 3705, 3704, 3702, 3700, 3067, 256, - 3699, 3698, 3697, 3694, 3692, 3689, 3678, 3676, 217, 214, - 108, 43, 3675, 3670, 3669, 3667, 95, 147, 3664, 3662, - 3661, 3659, 33, 143, 3658, 13, 3656, 25, 23, 35, - 3655, 107, 3654, 3, 196, 3653, 3651, 4, 3649, 3648, - 2, 3647, 3646, 121, 3645, 100, 26, 168, 110, 3643, - 3641, 89, 216, 145, 3640, 3638, 103, 247, 203, 3637, - 514, 241, 257, 3636, 212, 3635, 3633, 3632, 3625, 3623, - 260, 3622, 231, 200, 69, 86, 3621, 222, 122, 3604, - 3603, 87, 165, 136, 129, 55, 90, 3602, 123, 210, - 3600, 198, 3599, 258, 3597, 3596, 111, 3594, 3591, 3587, - 3585, 204, 3584, 3583, 197, 238, 3575, 3572, 275, 3571, - 3570, 3565, 3563, 3562, 3559, 3558, 3555, 3554, 3547, 237, - 255, 3541, + 0, 185, 3600, 251, 182, 4257, 87, 247, 272, 253, + 243, 242, 4256, 4255, 4254, 3393, 3392, 4252, 4251, 4250, + 4249, 4246, 4245, 4244, 4243, 4241, 4240, 4239, 4238, 4237, + 4236, 4235, 4234, 4229, 4228, 4227, 4226, 4225, 4224, 4223, + 4222, 4219, 4216, 4215, 4214, 4213, 4212, 239, 4211, 4210, + 4209, 4208, 4207, 4205, 4203, 4202, 4201, 4200, 4199, 4198, + 4197, 4196, 4194, 4193, 4191, 4190, 4189, 4188, 4185, 4184, + 4175, 4173, 4172, 4171, 4170, 4169, 4168, 4166, 4165, 4164, + 4163, 4162, 4161, 4156, 4155, 210, 4154, 3378, 4153, 4151, + 4148, 4147, 4145, 4144, 4143, 4142, 4141, 4136, 4135, 311, + 4134, 4128, 4115, 4114, 4113, 4110, 4106, 4103, 4102, 4101, + 4100, 4099, 4098, 289, 4097, 4096, 4094, 4093, 230, 4092, + 262, 4088, 175, 149, 4085, 4082, 4081, 4080, 4079, 4078, + 4077, 4076, 4075, 4074, 4073, 4072, 4069, 4068, 236, 213, + 75, 4066, 50, 4065, 4063, 214, 4062, 147, 4061, 145, + 4060, 4056, 4054, 4053, 4052, 4050, 4049, 4048, 4047, 4046, + 4045, 4043, 4041, 4029, 4024, 4022, 4021, 4016, 4015, 4010, + 4009, 4008, 4007, 4006, 54, 4005, 256, 4004, 78, 4001, + 180, 4000, 70, 3999, 45, 132, 264, 2547, 245, 3998, + 189, 3997, 3996, 240, 178, 3995, 3981, 274, 3979, 233, + 226, 163, 108, 125, 3978, 144, 3977, 266, 47, 40, + 246, 156, 3976, 3975, 58, 161, 124, 3971, 208, 98, + 110, 3970, 3969, 148, 3968, 238, 186, 3965, 109, 3963, + 3962, 3960, 3959, 3957, 198, 194, 3955, 3953, 138, 3951, + 3950, 67, 142, 3949, 80, 128, 169, 126, 3948, 1675, + 122, 91, 3946, 136, 100, 3945, 119, 3944, 3941, 3940, + 3938, 191, 3936, 3935, 134, 57, 3934, 3933, 3932, 69, + 3931, 79, 3928, 44, 3927, 59, 3923, 3922, 3918, 3917, + 3916, 3915, 3913, 3912, 3897, 3896, 3892, 3891, 56, 3890, + 3889, 3887, 3874, 7, 14, 17, 3871, 27, 3870, 173, + 3868, 3867, 166, 3864, 197, 3862, 3861, 99, 92, 3860, + 93, 162, 3850, 10, 28, 77, 3849, 3848, 3846, 327, + 3845, 3843, 3842, 273, 3841, 3840, 3839, 168, 3838, 3835, + 3834, 658, 3832, 3831, 3830, 3829, 3827, 3826, 436, 3824, + 1, 212, 41, 3823, 129, 150, 3822, 39, 31, 3806, + 49, 113, 201, 131, 101, 3804, 3803, 3802, 140, 196, + 111, 29, 0, 104, 218, 158, 3801, 3800, 3797, 261, + 3796, 219, 260, 254, 281, 258, 250, 3795, 3794, 61, + 3793, 159, 30, 53, 133, 96, 21, 249, 3791, 452, + 9, 188, 3790, 205, 3789, 8, 18, 123, 154, 3788, + 3787, 37, 267, 3784, 3782, 3781, 130, 3777, 3775, 184, + 60, 3774, 3773, 3772, 3771, 36, 3770, 179, 16, 3769, + 102, 3768, 255, 3767, 215, 160, 181, 177, 165, 220, + 221, 83, 82, 3765, 1844, 157, 103, 15, 3762, 224, + 3761, 171, 116, 3760, 105, 3759, 241, 259, 207, 3758, + 187, 11, 43, 38, 32, 48, 13, 270, 203, 3756, + 3754, 24, 52, 3752, 55, 3750, 20, 3749, 3748, 51, + 3747, 74, 5, 3746, 3743, 19, 22, 3742, 34, 204, + 174, 120, 95, 64, 3740, 3737, 141, 216, 3736, 143, + 164, 155, 3735, 81, 3734, 3733, 3731, 3729, 3050, 248, + 3727, 3726, 3725, 3724, 3723, 3720, 3719, 3715, 211, 3714, + 135, 42, 3713, 3712, 3710, 3709, 88, 152, 3708, 3707, + 3706, 3702, 33, 146, 3701, 12, 3699, 26, 23, 35, + 3697, 106, 3696, 3, 192, 3695, 3694, 4, 3692, 3691, + 2, 3690, 3689, 137, 3688, 97, 25, 172, 112, 3685, + 3683, 89, 209, 151, 3682, 3681, 94, 237, 200, 3680, + 90, 232, 252, 3678, 206, 3677, 3676, 3674, 3672, 3671, + 1248, 3670, 3669, 235, 68, 85, 3668, 229, 121, 3666, + 3664, 86, 167, 118, 115, 62, 84, 3662, 114, 202, + 3661, 195, 3660, 257, 3658, 3656, 107, 3655, 3654, 3651, + 3648, 193, 3647, 3646, 190, 231, 3644, 3637, 265, 3636, + 3635, 3634, 3633, 3631, 3619, 3616, 3612, 3611, 3603, 222, + 499, 3602, } -//line mysql_sql.y:13009 +//line mysql_sql.y:12975 type yySymType struct { union interface{} id int @@ -9009,123 +8950,123 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 26, 27, 29, 429, 429, 426, 28, 20, 19, 19, 23, 22, 18, 18, 21, 24, 25, - 25, 9, 9, 9, 9, 15, 15, 15, 16, 194, - 194, 250, 250, 574, 574, 570, 570, 571, 571, 571, - 572, 572, 573, 573, 120, 120, 509, 509, 509, 509, - 509, 509, 8, 8, 8, 219, 219, 508, 508, 508, - 508, 508, 508, 433, 433, 433, 552, 552, 552, 553, - 218, 218, 211, 211, 510, 510, 398, 554, 554, 518, - 518, 517, 517, 516, 516, 216, 216, 217, 217, 197, - 197, 139, 139, 523, 523, 523, 523, 531, 531, 493, - 493, 288, 288, 342, 342, 343, 343, 184, 184, 185, - 185, 185, 185, 185, 185, 608, 608, 609, 610, 611, - 611, 612, 612, 612, 613, 613, 613, 613, 613, 560, - 560, 562, 562, 561, 215, 215, 209, 209, 210, 210, - 210, 208, 208, 207, 206, 206, 205, 203, 203, 203, - 204, 204, 204, 223, 223, 187, 187, 187, 186, 186, - 186, 186, 186, 323, 323, 323, 323, 323, 323, 323, - 323, 323, 323, 323, 323, 188, 191, 191, 192, 192, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 320, 320, 321, 321, 321, 321, 321, 137, 137, 502, - 502, 319, 319, 189, 189, 190, 190, 190, 190, 318, - 318, 317, 202, 202, 201, 200, 200, 200, 195, 195, - 195, 195, 195, 196, 329, 329, 328, 328, 327, 327, - 327, 327, 330, 123, 136, 136, 138, 222, 222, 213, - 212, 326, 325, 325, 325, 325, 221, 221, 220, 220, - 214, 214, 199, 199, 199, 199, 324, 198, 322, 598, - 598, 597, 597, 596, 594, 594, 594, 595, 595, 595, - 595, 544, 544, 544, 544, 544, 360, 360, 360, 365, - 365, 363, 363, 363, 363, 363, 369, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 39, - 233, 234, 40, 235, 235, 236, 236, 237, 237, 238, - 239, 240, 240, 240, 240, 38, 225, 225, 226, 226, - 227, 227, 228, 229, 229, 229, 232, 230, 231, 231, - 616, 616, 615, 37, 37, 30, 175, 175, 176, 176, - 176, 178, 178, 284, 284, 284, 177, 177, 179, 179, - 179, 575, 577, 577, 579, 578, 578, 578, 581, 581, - 581, 581, 581, 582, 582, 582, 582, 583, 583, 31, - 157, 157, 182, 182, 162, 586, 586, 586, 585, 585, - 587, 587, 588, 588, 346, 346, 347, 347, 173, 174, - 174, 164, 159, 181, 181, 181, 181, 181, 183, 183, - 252, 252, 158, 163, 166, 168, 576, 584, 584, 584, - 430, 430, 427, 428, 428, 425, 424, 424, 424, 590, - 590, 589, 589, 589, 361, 361, 32, 420, 420, 422, - 423, 423, 423, 414, 414, 414, 414, 36, 418, 418, - 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 415, 415, 417, 417, 413, 413, 413, 413, 413, - 413, 413, 413, 35, 180, 180, 412, 412, 409, 409, - 407, 407, 408, 408, 406, 406, 406, 410, 410, 43, - 78, 44, 45, 46, 42, 411, 411, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 141, 140, 140, - 140, 140, 140, 143, 143, 345, 345, 344, 344, 142, - 285, 285, 41, 263, 263, 485, 485, 480, 480, 480, - 480, 480, 500, 500, 500, 481, 481, 481, 482, 482, - 482, 484, 484, 484, 483, 483, 483, 483, 483, 499, - 499, 501, 501, 501, 452, 452, 453, 453, 453, 456, - 456, 472, 472, 473, 473, 471, 471, 478, 478, 477, - 477, 476, 476, 475, 475, 474, 474, 474, 474, 467, - 467, 466, 466, 454, 454, 454, 454, 454, 455, 455, - 455, 465, 465, 470, 470, 316, 316, 315, 315, 271, - 271, 272, 272, 314, 314, 269, 269, 270, 270, 270, + 25, 9, 9, 9, 9, 15, 15, 16, 194, 194, + 250, 250, 574, 574, 570, 570, 571, 571, 571, 572, + 572, 573, 573, 120, 509, 509, 509, 509, 509, 509, + 8, 8, 219, 219, 508, 508, 508, 508, 508, 508, + 433, 433, 433, 552, 552, 552, 553, 218, 218, 211, + 211, 510, 510, 398, 554, 554, 518, 518, 517, 517, + 516, 516, 216, 216, 217, 217, 197, 197, 139, 139, + 523, 523, 523, 523, 531, 531, 493, 493, 288, 288, + 342, 342, 343, 343, 184, 184, 185, 185, 185, 185, + 185, 185, 608, 608, 609, 610, 611, 611, 612, 612, + 612, 613, 613, 613, 613, 613, 560, 560, 562, 562, + 561, 215, 215, 209, 209, 210, 210, 210, 208, 208, + 207, 206, 206, 205, 203, 203, 203, 204, 204, 204, + 223, 223, 187, 187, 187, 186, 186, 186, 186, 186, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 188, 191, 191, 192, 192, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 320, 320, 321, + 321, 321, 321, 321, 137, 137, 502, 502, 319, 319, + 189, 189, 190, 190, 190, 190, 318, 318, 317, 202, + 202, 201, 200, 200, 200, 195, 195, 195, 195, 195, + 196, 329, 329, 328, 328, 327, 327, 327, 327, 330, + 123, 136, 136, 138, 222, 222, 213, 212, 326, 325, + 325, 325, 325, 221, 221, 220, 220, 214, 214, 199, + 199, 199, 199, 324, 198, 322, 598, 598, 597, 597, + 596, 594, 594, 594, 595, 595, 595, 595, 544, 544, + 544, 544, 544, 360, 360, 360, 365, 365, 363, 363, + 363, 363, 363, 369, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 39, 233, 234, 40, + 235, 235, 236, 236, 237, 237, 238, 239, 240, 240, + 240, 240, 38, 225, 225, 226, 226, 227, 227, 228, + 229, 229, 229, 232, 230, 231, 231, 616, 616, 615, + 37, 37, 30, 175, 175, 176, 176, 176, 178, 178, + 284, 284, 284, 177, 177, 179, 179, 179, 575, 577, + 577, 579, 578, 578, 578, 581, 581, 581, 581, 581, + 582, 582, 582, 582, 583, 583, 31, 157, 157, 182, + 182, 162, 586, 586, 586, 585, 585, 587, 587, 588, + 588, 346, 346, 347, 347, 173, 174, 174, 164, 159, + 181, 181, 181, 181, 181, 183, 183, 252, 252, 158, + 163, 166, 168, 576, 584, 584, 584, 430, 430, 427, + 428, 428, 425, 424, 424, 424, 590, 590, 589, 589, + 589, 361, 361, 32, 420, 420, 422, 423, 423, 423, + 414, 414, 414, 414, 36, 418, 418, 419, 419, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 415, 415, + 417, 417, 413, 413, 413, 413, 413, 413, 413, 413, + 35, 180, 180, 412, 412, 409, 409, 407, 407, 408, + 408, 406, 406, 406, 410, 410, 43, 78, 44, 45, + 46, 42, 411, 411, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 141, 140, 140, 140, 140, 140, + 143, 143, 345, 345, 344, 344, 142, 285, 285, 41, + 263, 263, 485, 485, 480, 480, 480, 480, 480, 500, + 500, 500, 481, 481, 481, 482, 482, 482, 484, 484, + 484, 483, 483, 483, 483, 483, 499, 499, 501, 501, + 501, 452, 452, 453, 453, 453, 456, 456, 472, 472, + 473, 473, 471, 471, 478, 478, 477, 477, 476, 476, + 475, 475, 474, 474, 474, 474, 467, 467, 466, 466, + 454, 454, 454, 454, 454, 455, 455, 455, 465, 465, + 470, 470, 316, 316, 315, 315, 271, 271, 272, 272, + 314, 314, 269, 269, 270, 270, 270, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 550, 550, 551, 274, - 274, 286, 286, 286, 286, 286, 286, 273, 273, 275, - 275, 251, 251, 249, 249, 241, 241, 241, 241, 241, - 241, 242, 242, 243, 243, 244, 244, 244, 248, 248, - 247, 247, 247, 247, 245, 245, 246, 246, 246, 246, - 246, 246, 438, 438, 547, 547, 548, 548, 543, 543, - 543, 546, 546, 546, 546, 546, 546, 546, 546, 549, - 549, 549, 545, 545, 253, 339, 339, 339, 362, 362, - 362, 362, 364, 338, 338, 338, 268, 268, 267, 267, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, + 313, 313, 313, 550, 550, 551, 274, 274, 286, 286, + 286, 286, 286, 286, 273, 273, 275, 275, 251, 251, + 249, 249, 241, 241, 241, 241, 241, 241, 242, 242, + 243, 243, 244, 244, 244, 248, 248, 247, 247, 247, + 247, 245, 245, 246, 246, 246, 246, 246, 246, 438, + 438, 547, 547, 548, 548, 543, 543, 543, 546, 546, + 546, 546, 546, 546, 546, 546, 549, 549, 549, 545, + 545, 253, 339, 339, 339, 362, 362, 362, 362, 364, + 338, 338, 338, 268, 268, 267, 267, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 437, 437, 378, 378, 379, 379, 297, 296, - 296, 296, 296, 296, 294, 295, 293, 293, 293, 293, - 293, 290, 290, 289, 289, 289, 291, 291, 291, 291, - 291, 416, 416, 287, 287, 277, 277, 277, 276, 276, - 276, 479, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 385, 385, 385, 387, 387, 387, 387, 387, + 265, 265, 265, 265, 265, 265, 265, 265, 265, 437, + 437, 378, 378, 379, 379, 297, 296, 296, 296, 296, + 296, 294, 295, 293, 293, 293, 293, 293, 290, 290, + 289, 289, 289, 291, 291, 291, 291, 291, 416, 416, + 287, 287, 277, 277, 277, 276, 276, 276, 479, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 385, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 292, 336, 336, 336, 337, 337, 337, 337, - 337, 337, 337, 337, 388, 388, 394, 394, 559, 559, - 558, 254, 254, 254, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 264, 264, 264, 461, 461, 461, 461, - 462, 462, 462, 462, 463, 463, 463, 459, 459, 460, - 460, 399, 400, 400, 506, 506, 507, 507, 457, 457, - 458, 335, 335, 335, 335, 335, 335, 335, 335, 335, + 387, 387, 387, 387, 387, 387, 387, 387, 387, 292, + 336, 336, 336, 337, 337, 337, 337, 337, 337, 337, + 337, 388, 388, 394, 394, 559, 559, 558, 254, 254, + 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 264, 264, 264, 461, 461, 461, 461, 462, 462, 462, + 462, 463, 463, 463, 459, 459, 460, 460, 399, 400, + 400, 506, 506, 507, 507, 457, 457, 458, 335, 335, + 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 514, 514, 514, 332, 332, 332, + 335, 514, 514, 514, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 569, 569, 569, 555, 555, 555, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 557, 557, 557, 334, 334, - 334, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 401, - 401, 402, 402, 511, 511, 511, 511, 511, 511, 512, - 512, 513, 513, 513, 513, 505, 505, 505, 505, 505, + 569, 569, 569, 555, 555, 555, 556, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 334, 334, 334, 333, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, + 333, 333, 333, 333, 333, 333, 401, 401, 402, 402, + 511, 511, 511, 511, 511, 511, 512, 512, 513, 513, + 513, 513, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, - 505, 505, 505, 505, 505, 386, 331, 331, 331, 403, - 395, 395, 396, 396, 397, 397, 389, 389, 389, 389, - 389, 389, 390, 390, 392, 392, 392, 392, 392, 392, - 392, 392, 392, 392, 392, 384, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 391, 391, 393, 393, - 405, 405, 405, 404, 404, 404, 404, 404, 404, 404, - 266, 266, 266, 266, 383, 383, 383, 382, 382, 382, - 382, 382, 382, 382, 382, 382, 382, 382, 382, 256, - 256, 256, 256, 260, 260, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 261, - 261, 261, 261, 261, 259, 259, 259, 259, 259, 257, + 505, 505, 386, 331, 331, 331, 403, 395, 395, 396, + 396, 397, 397, 389, 389, 389, 389, 389, 389, 390, + 390, 392, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 391, 391, 393, 393, 405, 405, 405, + 404, 404, 404, 404, 404, 404, 404, 266, 266, 266, + 266, 383, 383, 383, 382, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 256, 256, 256, 256, + 260, 260, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 261, 261, 261, 261, + 261, 259, 259, 259, 259, 259, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 257, 257, 257, 121, 122, - 122, 258, 341, 341, 486, 486, 489, 489, 487, 487, - 488, 490, 490, 490, 491, 491, 491, 492, 492, 492, - 496, 496, 350, 350, 350, 358, 358, 357, 357, 357, + 257, 257, 257, 257, 257, 121, 122, 122, 258, 341, + 341, 486, 486, 489, 489, 487, 487, 488, 490, 490, + 490, 491, 491, 491, 492, 492, 492, 496, 496, 350, + 350, 350, 358, 358, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, @@ -9161,14 +9102,13 @@ var yyR1 = [...]int{ 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, - 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, - 357, 356, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 355, 355, 355, 355, 355, 355, 355, 355, 355, + 357, 357, 357, 357, 357, 357, 357, 357, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, + 355, 355, 355, 355, 355, 355, 355, 355, } var yyR2 = [...]int{ @@ -9244,124 +9184,123 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 3, 1, 4, 6, 6, 4, 4, 4, 4, 4, 3, 6, 3, - 5, 1, 1, 2, 2, 11, 12, 8, 9, 1, - 3, 2, 4, 0, 2, 0, 1, 1, 1, 1, - 0, 1, 0, 1, 4, 5, 2, 1, 5, 4, - 4, 2, 5, 5, 6, 1, 3, 2, 1, 5, - 4, 4, 2, 0, 5, 4, 0, 1, 3, 3, - 1, 3, 1, 3, 1, 3, 4, 0, 1, 0, - 1, 1, 3, 1, 1, 0, 4, 1, 3, 2, - 1, 0, 8, 0, 4, 7, 4, 0, 2, 0, - 2, 0, 2, 0, 4, 1, 3, 1, 1, 6, - 4, 5, 7, 4, 5, 0, 1, 3, 8, 0, - 6, 0, 4, 6, 1, 1, 1, 1, 1, 2, - 3, 1, 3, 6, 0, 3, 0, 1, 2, 4, - 4, 0, 1, 3, 1, 3, 3, 0, 1, 1, - 0, 2, 2, 0, 2, 3, 3, 3, 1, 3, - 3, 3, 3, 1, 2, 2, 1, 2, 2, 1, - 2, 2, 1, 2, 2, 7, 0, 1, 1, 2, + 5, 1, 1, 2, 2, 11, 8, 9, 1, 3, + 2, 4, 0, 2, 0, 1, 1, 1, 1, 0, + 1, 0, 1, 4, 2, 1, 5, 4, 4, 2, + 5, 5, 1, 3, 2, 1, 5, 4, 4, 2, + 0, 5, 4, 0, 1, 3, 3, 1, 3, 1, + 3, 1, 3, 4, 0, 1, 0, 1, 1, 3, + 1, 1, 0, 4, 1, 3, 2, 1, 0, 8, + 0, 4, 7, 4, 0, 2, 0, 2, 0, 2, + 0, 4, 1, 3, 1, 1, 6, 4, 5, 7, + 4, 5, 0, 1, 3, 8, 0, 6, 0, 4, + 6, 1, 1, 1, 1, 1, 2, 3, 1, 3, + 6, 0, 3, 0, 1, 2, 4, 4, 0, 1, + 3, 1, 3, 3, 0, 1, 1, 0, 2, 2, + 0, 2, 3, 3, 3, 1, 3, 3, 3, 3, + 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, + 2, 2, 7, 0, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, + 4, 7, 6, 6, 3, 5, 0, 2, 0, 2, + 1, 3, 1, 2, 3, 5, 0, 1, 2, 1, + 3, 1, 1, 1, 1, 4, 4, 4, 3, 4, + 3, 2, 2, 2, 2, 2, 3, 2, 3, 2, + 4, 1, 3, 4, 0, 2, 1, 3, 1, 1, + 2, 2, 3, 0, 1, 2, 4, 1, 3, 1, + 3, 2, 3, 1, 4, 3, 0, 1, 1, 2, + 5, 2, 2, 2, 0, 2, 3, 3, 0, 1, + 3, 1, 3, 0, 1, 2, 1, 1, 0, 1, + 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 7, 1, 1, 7, + 1, 3, 0, 1, 1, 3, 1, 3, 0, 1, + 1, 1, 14, 1, 3, 0, 1, 1, 3, 1, + 1, 2, 4, 1, 1, 1, 1, 0, 1, 2, + 9, 9, 7, 1, 2, 3, 3, 3, 0, 4, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, + 1, 4, 1, 1, 1, 3, 3, 4, 3, 3, + 0, 1, 1, 1, 0, 2, 7, 8, 10, 2, + 2, 8, 0, 3, 3, 0, 3, 0, 3, 0, + 5, 1, 3, 0, 3, 3, 0, 2, 9, 8, + 0, 2, 2, 3, 3, 0, 2, 0, 2, 4, + 4, 4, 4, 1, 0, 2, 2, 1, 3, 2, + 1, 3, 2, 1, 3, 2, 0, 1, 3, 4, + 3, 1, 1, 4, 1, 3, 1, 1, 1, 1, + 0, 1, 1, 1, 11, 0, 2, 3, 3, 2, + 2, 3, 1, 1, 3, 3, 3, 3, 1, 3, + 3, 4, 0, 2, 2, 2, 2, 2, 2, 2, + 6, 0, 4, 1, 1, 0, 3, 0, 1, 1, + 2, 4, 4, 4, 0, 1, 8, 2, 4, 4, + 4, 9, 0, 2, 11, 9, 11, 8, 6, 9, + 7, 10, 7, 6, 2, 2, 9, 4, 5, 3, + 0, 4, 1, 3, 0, 3, 6, 0, 2, 10, + 0, 2, 0, 2, 0, 3, 2, 4, 3, 0, + 2, 1, 0, 2, 3, 0, 2, 3, 0, 2, + 1, 0, 3, 2, 4, 3, 0, 1, 0, 1, + 1, 0, 6, 0, 3, 5, 0, 4, 0, 3, + 1, 3, 4, 5, 0, 3, 1, 3, 2, 3, + 1, 2, 0, 4, 6, 5, 0, 2, 0, 2, + 4, 5, 4, 5, 1, 5, 6, 5, 0, 3, + 0, 1, 1, 3, 3, 3, 0, 4, 1, 3, + 3, 3, 0, 1, 1, 3, 2, 3, 3, 3, + 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 5, 4, 5, 1, 3, 3, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 2, 4, 0, 5, 5, 5, 5, 6, 0, 1, + 1, 3, 1, 1, 1, 1, 1, 7, 9, 7, + 9, 2, 1, 7, 9, 7, 9, 8, 5, 0, + 1, 0, 1, 1, 1, 1, 3, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 3, 1, 3, 5, 1, 1, 1, 1, 1, + 1, 3, 5, 0, 1, 1, 2, 1, 2, 2, + 1, 1, 2, 2, 2, 3, 3, 2, 2, 1, + 5, 6, 4, 1, 1, 1, 5, 4, 1, 1, + 2, 0, 1, 1, 2, 5, 0, 1, 1, 2, + 2, 3, 3, 1, 1, 2, 2, 2, 0, 1, + 2, 2, 2, 0, 4, 7, 3, 3, 0, 3, + 0, 3, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 1, 1, 1, 1, 3, 5, 2, 2, 2, + 2, 4, 1, 1, 2, 5, 6, 8, 6, 6, + 6, 1, 1, 1, 1, 1, 1, 3, 9, 1, + 4, 4, 4, 7, 9, 7, 7, 7, 9, 7, + 7, 0, 2, 0, 1, 1, 2, 4, 1, 2, + 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, + 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 1, 1, 1, 2, 5, 0, 1, 3, 0, + 1, 0, 2, 0, 2, 0, 1, 6, 8, 8, + 6, 6, 5, 5, 5, 6, 6, 6, 6, 5, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 1, 1, 1, 4, 4, 6, 8, 6, 4, + 5, 4, 4, 4, 3, 4, 6, 6, 7, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 2, 0, 4, 7, 6, 6, 3, 5, 0, - 2, 0, 2, 1, 3, 1, 2, 3, 5, 0, - 1, 2, 1, 3, 1, 1, 1, 1, 4, 4, - 4, 3, 4, 3, 2, 2, 2, 2, 2, 3, - 2, 3, 2, 4, 1, 3, 4, 0, 2, 1, - 3, 1, 1, 2, 2, 3, 0, 1, 2, 4, - 1, 3, 1, 3, 2, 3, 1, 4, 3, 0, - 1, 1, 2, 5, 2, 2, 2, 0, 2, 3, - 3, 0, 1, 3, 1, 3, 0, 1, 2, 1, - 1, 0, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, - 1, 1, 7, 1, 3, 0, 1, 1, 3, 1, - 3, 0, 1, 1, 1, 14, 1, 3, 0, 1, - 1, 3, 1, 1, 2, 4, 1, 1, 1, 1, - 0, 1, 2, 9, 9, 7, 1, 2, 3, 3, - 3, 0, 4, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 3, 3, - 4, 3, 3, 0, 1, 1, 1, 0, 2, 7, - 8, 10, 2, 2, 8, 0, 3, 3, 0, 3, - 0, 3, 0, 5, 1, 3, 0, 3, 3, 0, - 2, 9, 8, 0, 2, 2, 3, 3, 0, 2, - 0, 2, 4, 4, 4, 4, 1, 0, 2, 2, - 1, 3, 2, 1, 3, 2, 1, 3, 2, 0, - 1, 3, 4, 3, 1, 1, 4, 1, 3, 1, - 1, 1, 1, 0, 1, 1, 1, 11, 0, 2, - 3, 3, 2, 2, 3, 1, 1, 3, 3, 3, - 3, 1, 3, 3, 4, 0, 2, 2, 2, 2, - 2, 2, 2, 6, 0, 4, 1, 1, 0, 3, - 0, 1, 1, 2, 4, 4, 4, 0, 1, 8, - 2, 4, 4, 4, 9, 0, 2, 11, 9, 11, - 8, 6, 9, 7, 10, 7, 6, 2, 2, 9, - 4, 5, 3, 0, 4, 1, 3, 0, 3, 6, - 0, 2, 10, 0, 2, 0, 2, 0, 3, 2, - 4, 3, 0, 2, 1, 0, 2, 3, 0, 2, - 3, 0, 2, 1, 0, 3, 2, 4, 3, 0, - 1, 0, 1, 1, 0, 6, 0, 3, 5, 0, - 4, 0, 3, 1, 3, 4, 5, 0, 3, 1, - 3, 2, 3, 1, 2, 0, 4, 6, 5, 0, - 2, 0, 2, 4, 5, 4, 5, 1, 5, 6, - 5, 0, 3, 0, 1, 1, 3, 3, 3, 0, - 4, 1, 3, 3, 3, 0, 1, 1, 3, 2, - 3, 3, 3, 4, 4, 3, 3, 3, 3, 4, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 1, 5, 4, 5, 1, 3, 3, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 4, 0, 5, 5, 5, 5, - 6, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 7, 9, 7, 9, 2, 1, 7, 9, 7, 9, - 8, 5, 0, 1, 0, 1, 1, 1, 1, 3, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 1, 3, 1, 3, 5, 1, 1, - 1, 1, 1, 1, 3, 5, 0, 1, 1, 2, - 1, 2, 2, 1, 1, 2, 2, 2, 3, 3, - 2, 2, 1, 5, 6, 4, 1, 1, 1, 5, - 4, 1, 1, 2, 0, 1, 1, 2, 5, 0, - 1, 1, 2, 2, 3, 3, 1, 1, 2, 2, - 2, 0, 1, 2, 2, 2, 0, 4, 7, 3, - 3, 0, 3, 0, 3, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 1, 1, 1, 1, 3, 5, - 2, 2, 2, 2, 4, 1, 1, 2, 5, 6, - 8, 6, 6, 6, 1, 1, 1, 1, 1, 1, - 3, 9, 1, 4, 4, 4, 7, 9, 7, 7, - 7, 9, 7, 7, 0, 2, 0, 1, 1, 2, - 4, 1, 2, 2, 1, 2, 2, 1, 2, 2, - 2, 2, 2, 0, 1, 1, 1, 2, 2, 2, - 2, 2, 2, 2, 1, 1, 1, 2, 5, 0, - 1, 3, 0, 1, 0, 2, 0, 2, 0, 1, - 6, 8, 8, 6, 6, 5, 5, 5, 6, 6, - 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 1, 1, 1, 4, 4, 6, - 8, 6, 4, 5, 4, 4, 4, 3, 4, 6, - 6, 7, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 8, 4, 2, + 3, 2, 4, 2, 2, 4, 6, 2, 2, 4, + 6, 4, 2, 4, 4, 4, 0, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 8, 4, 2, 3, 2, 4, 2, 2, 4, 6, - 2, 2, 4, 6, 4, 2, 4, 4, 4, 0, - 1, 2, 3, 1, 1, 1, 1, 1, 1, 0, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 1, 1, 3, - 0, 1, 1, 3, 1, 3, 3, 3, 3, 3, - 2, 1, 1, 1, 3, 4, 3, 4, 3, 4, - 3, 4, 3, 4, 1, 3, 4, 4, 5, 4, - 5, 3, 4, 5, 6, 1, 0, 2, 1, 1, + 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, + 3, 1, 3, 3, 3, 3, 3, 2, 1, 1, + 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, + 4, 1, 3, 4, 4, 5, 4, 5, 3, 4, + 5, 6, 1, 0, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 1, 1, 2, 3, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 4, 4, 1, 2, 3, - 5, 1, 1, 3, 0, 1, 0, 3, 0, 3, - 3, 0, 3, 5, 0, 3, 5, 0, 1, 1, - 0, 1, 1, 2, 2, 0, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 2, 3, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 4, 4, 1, 2, 3, 5, 1, 1, + 3, 0, 1, 0, 3, 0, 3, 3, 0, 3, + 5, 0, 3, 5, 0, 1, 1, 0, 1, 1, + 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -9403,7 +9342,7 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, + 1, 1, 1, 1, 1, 1, 1, 1, } var yyChk = [...]int{ @@ -9474,340 +9413,338 @@ var yyChk = [...]int{ 650, 647, 648, 649, 561, 232, -443, -441, -362, 548, 626, 393, 547, 550, 387, 366, 656, 659, 391, 267, 328, 329, 330, 463, 364, -235, -362, 660, -197, 251, - 646, 40, -249, -362, -197, 646, -87, -16, -15, -186, - -187, -249, 246, -371, 24, 445, -99, 446, 241, 242, - 86, 78, -362, -9, -113, -8, -120, -85, -184, 450, - -369, -362, 328, 328, -369, 246, -364, 277, 426, -362, - -498, 252, -447, -420, 278, -446, -422, -449, -423, 33, - 237, 239, 238, 560, 274, 16, 391, 248, 14, 13, - 392, 260, 26, 27, 29, 15, 393, 395, 30, 396, - 399, 400, 401, 43, 404, 405, 267, 89, 97, 92, - 285, -234, -362, -397, -389, 118, -392, -384, -385, -387, - -340, -534, -382, 86, 145, 146, 153, 119, 662, -386, - -479, 37, 121, 566, 570, 606, 513, -332, -333, -334, - -335, -336, -337, 551, -362, -535, -533, 92, 102, 104, - 108, 109, 107, 105, 157, 190, 106, 93, 158, -187, - 89, -555, 576, -356, 599, 612, 613, 614, 615, 598, - 62, -505, -513, 245, -511, 156, 195, 263, 191, 14, - 151, 438, 192, 607, 608, 609, 573, 595, 515, 577, - 587, 602, 568, 569, 571, 563, 564, 565, 567, 578, - 580, 594, -514, 590, 600, 601, 586, 610, 611, 647, - 603, 604, 605, 642, 91, 90, 593, 592, 579, 574, - 575, 581, 562, 572, 582, 583, 591, 596, 597, 375, - 111, 376, 377, 505, 367, 81, 378, 252, 445, 71, - 379, 380, 381, 382, 383, 512, 384, 72, 385, 374, - 267, 428, 386, 194, 212, 517, 516, 518, 509, 506, - 504, 507, 508, 510, 511, 584, 585, 589, -136, -138, - 617, -608, -323, -609, 6, 7, 8, 9, -610, 158, - -599, 447, 556, 92, 321, 364, 17, 505, 646, 546, - 646, 546, 168, 165, -434, 168, 117, 174, 173, 250, - 168, -434, -362, 171, 646, 170, 644, 331, 273, -411, - -175, 364, 428, 337, 98, 277, -414, -412, 544, -499, - 325, 321, 297, 247, 114, -176, 257, 256, 112, 505, - 245, 402, 316, 57, 59, -570, 646, -571, 234, 235, - 236, -562, 538, -561, -362, 646, 651, 377, 100, 101, - 644, 645, 28, 246, 388, 273, 483, 481, 482, 484, - 485, 486, 487, -65, -515, -497, 478, 477, -375, 470, - 476, 468, 480, 471, 365, 339, 560, 338, 237, 638, - 545, 539, -350, 412, 448, 502, 503, 389, 449, 489, - 491, 472, 111, 198, 195, 247, 249, 246, 644, 364, - 505, 428, 98, 337, 246, -570, 651, 165, 489, 491, - 447, 277, 426, 42, -440, 438, -439, -441, 490, 501, - 90, 91, 488, -350, 111, 469, 469, -608, -323, -185, - -187, -123, -560, 546, 646, 247, 364, 428, 277, 248, - 246, 541, 544, 249, 505, 245, 328, 388, 273, 337, - 98, 170, 644, -191, -192, -193, 230, 231, 232, 70, - 235, 233, 67, 33, 34, 35, -1, 125, 661, -389, - -389, -6, 664, -6, -389, -362, -362, 160, -256, -260, - -257, -259, -258, -262, -261, 195, 196, 156, 199, 205, - 201, 202, 203, 204, 206, 207, 208, 209, 210, 213, - 214, 211, 32, 212, 263, 191, 192, 193, 194, 215, - 177, 197, 553, 223, 178, 224, 179, 225, 180, 226, - 181, 182, 227, 183, 186, 187, 188, 189, 185, 159, - -224, 92, 33, 86, 159, 92, -216, 269, -197, -197, - -249, -241, 159, 662, -216, -197, -608, -207, -208, 11, - -249, -338, -362, 447, 128, -99, 78, -99, 446, 78, - -99, 446, 241, -563, -564, -565, -567, 241, 446, 445, - 242, -118, 159, 285, 17, -369, -369, 84, -249, -422, - 277, -447, -420, 37, 83, 160, 250, 160, 83, 86, - 389, 364, 428, 390, 505, 246, 402, 249, 277, 403, - 364, 428, 246, 249, 505, 277, 364, 246, 249, 428, - 277, 403, 364, 468, 469, 249, 28, 394, 397, 398, - 469, -519, 501, 160, 117, 114, 115, 116, -389, 135, - -404, 128, 129, 130, 131, 132, 133, 134, 142, 141, - 152, 145, 146, 147, 148, 149, 150, 151, 143, 144, - 138, 118, 136, 140, 137, 120, 155, -187, -389, -397, - 62, -387, -387, -387, -387, -362, -479, -394, -389, 86, - 86, 86, 86, 86, 159, 105, 92, -389, 86, 86, + 40, -249, -362, -197, -87, -16, -15, -186, -187, -249, + 246, -371, 24, 445, -99, 446, 241, 242, 86, 78, + -362, -9, -113, -8, -120, -85, -184, 450, -369, -362, + 328, 328, -369, 246, -364, 277, 426, -362, -498, 252, + -447, -420, 278, -446, -422, -449, -423, 33, 237, 239, + 238, 560, 274, 16, 391, 248, 14, 13, 392, 260, + 26, 27, 29, 15, 393, 395, 30, 396, 399, 400, + 401, 43, 404, 405, 267, 89, 97, 92, 285, -234, + -362, -397, -389, 118, -392, -384, -385, -387, -340, -534, + -382, 86, 145, 146, 153, 119, 662, -386, -479, 37, + 121, 566, 570, 606, 513, -332, -333, -334, -335, -336, + -337, 551, -362, -535, -533, 92, 102, 104, 108, 109, + 107, 105, 157, 190, 106, 93, 158, -187, 89, -555, + 576, -356, 599, 612, 613, 614, 615, 598, 62, -505, + -513, 245, -511, 156, 195, 263, 191, 14, 151, 438, + 192, 607, 608, 609, 573, 595, 515, 577, 587, 602, + 568, 569, 571, 563, 564, 565, 567, 578, 580, 594, + -514, 590, 600, 601, 586, 610, 611, 647, 603, 604, + 605, 642, 91, 90, 593, 592, 579, 574, 575, 581, + 562, 572, 582, 583, 591, 596, 597, 375, 111, 376, + 377, 505, 367, 81, 378, 252, 445, 71, 379, 380, + 381, 382, 383, 512, 384, 72, 385, 374, 267, 428, + 386, 194, 212, 517, 516, 518, 509, 506, 504, 507, + 508, 510, 511, 584, 585, 589, -136, -138, 617, -608, + -323, -609, 6, 7, 8, 9, -610, 158, -599, 447, + 556, 92, 321, 364, 17, 505, 646, 546, 646, 546, + 168, 165, -434, 168, 117, 174, 173, 250, 168, -434, + -362, 171, 646, 170, 644, 331, 273, -411, -175, 364, + 428, 337, 98, 277, -414, -412, 544, -499, 325, 321, + 297, 247, 114, -176, 257, 256, 112, 505, 245, 402, + 316, 57, 59, -570, -571, 234, 235, 236, -562, 538, + -561, -362, 646, 651, 377, 100, 101, 644, 645, 28, + 246, 388, 273, 483, 481, 482, 484, 485, 486, 487, + -65, -515, -497, 478, 477, -375, 470, 476, 468, 480, + 471, 365, 339, 560, 338, 237, 638, 545, 539, -350, + 412, 448, 502, 503, 389, 449, 489, 491, 472, 111, + 198, 195, 247, 249, 246, 644, 364, 505, 428, 98, + 337, 246, -570, 651, 165, 489, 491, 447, 277, 426, + 42, -440, 438, -439, -441, 490, 501, 90, 91, 488, + -350, 111, 469, 469, -608, -323, -185, -187, -123, -560, + 546, 646, 247, 364, 428, 277, 248, 246, 541, 544, + 249, 505, 245, 328, 388, 273, 337, 98, 170, 644, + -191, -192, -193, 230, 231, 232, 70, 235, 233, 67, + 33, 34, 35, -1, 125, 661, -389, -389, -6, 664, + -6, -389, -362, -362, 160, -256, -260, -257, -259, -258, + -262, -261, 195, 196, 156, 199, 205, 201, 202, 203, + 204, 206, 207, 208, 209, 210, 213, 214, 211, 32, + 212, 263, 191, 192, 193, 194, 215, 177, 197, 553, + 223, 178, 224, 179, 225, 180, 226, 181, 182, 227, + 183, 186, 187, 188, 189, 185, 159, -224, 92, 33, + 86, 159, 92, -216, 269, -197, -249, -241, 159, 662, + -216, -608, -207, -208, 11, -249, -338, -362, 447, 128, + -99, 78, -99, 446, 78, -99, 446, 241, -563, -564, + -565, -567, 241, 446, 445, 242, -118, 159, 285, 17, + -369, -369, 84, -249, -422, 277, -447, -420, 37, 83, + 160, 250, 160, 83, 86, 389, 364, 428, 390, 505, + 246, 402, 249, 277, 403, 364, 428, 246, 249, 505, + 277, 364, 246, 249, 428, 277, 403, 364, 468, 469, + 249, 28, 394, 397, 398, 469, -519, 501, 160, 117, + 114, 115, 116, -389, 135, -404, 128, 129, 130, 131, + 132, 133, 134, 142, 141, 152, 145, 146, 147, 148, + 149, 150, 151, 143, 144, 138, 118, 136, 140, 137, + 120, 155, -187, -389, -397, 62, -387, -387, -387, -387, + -362, -479, -394, -389, 86, 86, 86, 86, 86, 159, + 105, 92, -389, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, -512, 86, 86, -401, -402, + 86, 86, -382, -338, 86, 92, 92, 86, 86, 86, + 92, 86, 86, 86, -402, -402, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - -512, 86, 86, -401, -402, 86, 86, -382, -338, 86, - 92, 92, 86, 86, 86, 92, 86, 86, 86, -402, - -402, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, -208, 160, -207, - 86, -207, -208, -188, -187, 33, 34, 33, 34, 33, - 34, 33, 34, -611, 635, 86, 102, 657, 228, 17, - -362, 644, -362, -593, 33, 549, 549, 549, 549, 494, - 555, 172, 173, 174, -362, 171, 250, -362, -409, 252, - -409, -409, -233, -362, -235, 388, 249, 541, 249, -176, - -409, -409, -409, -409, -409, 248, -409, 24, 246, 246, - 246, 246, -409, 512, 128, 128, 60, -572, 176, -570, - 160, -562, -215, 86, -593, 652, 653, 654, -374, 136, - 140, -374, -319, 18, -319, 24, 24, 275, 275, 275, - -374, 315, -619, -620, 17, 138, -372, -620, -372, -372, - -374, -621, 248, 479, 44, 276, 275, -209, -210, 22, - -209, 473, 469, -464, 474, 475, -376, -620, -375, -374, - -374, -375, -374, -374, -374, 33, 246, 249, 505, 337, - 639, -619, -619, 32, 32, -498, -498, -249, -498, -498, - 539, -351, -362, -498, -498, -498, -303, -304, -249, -573, - 251, 654, -605, -604, 492, -607, 494, 165, -441, 165, - -441, 89, -422, 277, 277, 160, 128, 24, -442, 128, - 139, -441, -441, -442, -442, -273, 42, -361, 156, -362, - 92, -273, 42, -602, -601, -249, -208, -188, -187, 87, - 87, 87, 549, -593, -498, -498, -498, -498, -498, -499, - -498, -498, -498, -498, -498, -369, -225, -362, -235, 252, - -498, -498, -498, -498, -189, -190, 147, -389, -362, -193, - -3, -146, -145, 122, 123, 125, 629, 383, 628, 632, - 626, -441, 42, -492, 410, 409, -486, -488, 86, -487, - 86, -487, -487, -487, -487, -487, 86, 86, -489, 86, - -489, -489, -486, -490, 86, -490, -491, 86, -491, -490, - -362, -468, 555, -395, -397, -362, 40, -508, 62, -184, - 86, 32, 86, -216, -216, -362, 192, 170, 643, 36, - -509, 62, -184, 86, 32, -216, -208, -139, 40, -210, - 21, 159, 102, 92, -118, -99, 78, -118, -99, -99, - 87, 160, -566, 108, 109, -568, 210, 201, -362, -116, - 92, -7, -11, -8, -9, -10, -47, -85, -184, 547, - 550, -536, -534, 86, 33, 437, 83, 17, -448, 246, - 505, 388, 273, 249, 364, -446, -429, -426, -424, -361, - -422, -425, -424, -451, -338, 469, -140, 452, 451, 327, - -389, -389, -389, -389, -389, 107, 118, 355, 108, 109, - -384, -405, 33, 323, 324, -385, -385, -385, -385, -385, - -385, -385, -385, -385, -385, -385, -385, -393, -403, -479, - 86, 138, 136, 140, 137, 120, -387, -387, -385, -385, - -275, -361, 156, 87, 160, -389, -559, -558, 122, -389, - -389, -389, -389, -415, -417, -338, 86, -362, -556, -557, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 379, 374, 380, 378, 367, 386, 381, 382, 194, - 536, 537, 530, 531, 532, 533, 534, 535, -395, -395, - -389, -556, -395, -331, 34, 33, -397, -397, -397, 87, - -389, -569, 353, 352, 354, -211, -362, -395, 87, 87, - 87, 102, -397, -397, -395, -385, -395, -395, -395, -395, - -557, -331, -331, -331, -331, 147, -397, -397, -331, -331, - -331, -331, 147, -331, -331, -331, -331, -331, -331, -331, - -331, -331, -331, -331, 87, 87, 87, 147, -397, -209, - -138, -517, -516, -389, 42, -139, -210, -612, 636, 86, - -338, -600, 92, 92, 662, 170, 644, 17, 505, -362, - 17, 246, -362, 102, -362, 102, 495, 496, 169, 173, - 172, -362, 171, -362, -362, 118, -362, -362, 36, 86, - -225, -409, -409, -409, -577, -362, 93, -430, -427, -424, - -362, -362, -420, -362, -351, -249, -409, -409, -409, -409, - -249, -284, 54, 55, 56, -424, -177, 57, 58, -573, - -572, -561, 36, -214, -362, -319, -387, -387, -389, 364, - 505, 246, -424, 277, -619, -374, -374, -352, -351, -376, - -371, -376, -376, -319, -372, -374, -374, -389, -376, -372, - -319, -362, 469, -319, -319, -464, -374, -373, -362, -373, - -409, -351, -352, -352, -249, -249, -298, -305, -299, -306, - 269, 243, 372, 373, 240, 238, 11, 239, -313, 316, - -410, 513, -279, -280, 78, 43, -282, 267, 414, 407, - 279, 283, 96, 284, 447, 285, 248, 287, 288, 289, - 304, 306, 259, 290, 291, 292, 438, 293, 164, 305, - 294, 295, 296, 390, -274, 6, 340, 555, 42, 52, - 53, 461, 460, 558, 280, -362, -577, -575, 32, -362, - 32, -430, -424, -362, -362, 160, 250, -200, -202, -199, - -195, -196, -201, -322, -324, -198, 86, -249, -187, -362, - -441, 160, 493, 495, 496, -605, -442, -605, -442, 250, - 33, 437, -445, 437, 33, -420, -439, 489, 491, -435, - 92, 438, -425, -444, 83, 156, -516, -442, -442, -444, - -444, 155, 160, -603, 494, 495, 234, -209, 102, -251, - -249, -577, -429, -420, -362, -498, -251, -251, -251, -364, - -364, 86, 159, 37, -362, -362, -362, -362, -318, 160, - -317, 17, -363, -362, 36, 92, 159, -147, -145, 124, - -389, -6, 628, -389, -6, -6, -389, -6, -389, -496, - 411, 102, 102, -341, 92, -341, 102, 102, 102, 561, - 87, 92, -433, 83, -510, -398, -554, 617, -218, 87, - -211, -552, -553, -211, -217, -362, -508, -508, -241, 128, - 128, 128, 25, -510, -218, 87, -552, -509, -209, 618, - -139, -206, -205, -389, -362, 24, -118, -99, -564, 159, - 160, -214, -448, -428, -425, -450, 147, -362, -436, 160, - 555, 665, 90, 250, -590, -589, 429, 87, 160, -520, - 251, 512, 92, 662, 445, 228, 229, 107, 355, 108, - 109, -479, -397, -393, -387, -387, -385, -385, -391, 264, - -391, 117, -389, 663, -388, -558, 124, -389, 36, 160, - 36, 160, 84, 160, 87, -486, -389, 159, 87, 87, - 17, 17, 87, -389, 87, 87, 87, 87, 17, 17, - -389, 87, 159, 87, 87, 87, 87, 84, 87, 160, - 87, 87, 87, 87, 160, -397, -397, -389, -397, 87, - 87, 87, -389, -389, -389, -397, 87, -389, -389, -389, - -389, -389, -389, -389, -389, -389, -389, -214, -458, 464, - -458, -458, 160, 160, 160, 87, -139, 86, 102, 160, - 658, -345, -344, 92, -362, -362, 170, 644, -362, 92, - 644, -362, 92, 170, 174, 174, 173, -362, 92, 37, - 24, 24, 314, -234, -236, -237, -238, -239, -240, 138, - 161, 162, 86, -249, -249, -249, -579, 415, -591, 160, - 42, -589, 505, -173, 327, -413, 84, -180, 17, 555, - -249, -249, -249, -249, -263, 36, 17, -194, -250, -362, - -573, 86, 87, 160, -362, -362, -362, -421, 84, -362, - -352, -319, -319, -376, -319, -319, 160, 23, -374, -376, - -376, -241, -372, -241, 159, -241, -351, -485, 36, -215, - 160, 21, 269, -248, -359, -245, -247, 254, -379, -246, - 257, -548, 255, 253, 112, 258, 312, 113, 248, -359, - -359, 254, -283, 250, 36, -359, -301, 248, 358, 312, - 255, 21, 269, -300, 248, 113, -362, 254, 258, 255, - 253, -358, 128, -350, 155, 250, 44, 390, -358, 559, - 269, -358, -358, -358, -358, -358, -358, -358, 286, 286, - -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, - -358, 165, -358, -358, -358, -358, -358, -358, 86, 332, - 281, 282, 314, -580, 415, 32, 370, 370, 371, -591, - 366, 43, 32, -181, 364, -304, -302, -373, 32, -325, - -326, -327, -328, -330, -329, 69, 73, 75, 79, 70, - 71, 72, 76, 81, 74, 32, 160, -360, -365, 36, - -362, 92, -360, -187, -202, -200, -360, 86, -442, -604, - -606, 497, 494, 500, -444, -444, 102, 250, 86, 128, - -444, -444, 42, -361, -601, 501, 495, -139, 160, 83, - -251, -226, -227, -228, -229, -256, -338, 196, 199, 201, - 202, 203, 204, 206, 207, 208, 209, 210, 213, 214, - 211, 212, 263, 191, 192, 193, 194, 215, 177, 197, - 553, 178, 179, 180, 181, 182, 183, 186, 187, 188, - 189, 185, -362, -235, -319, -190, -202, -362, 92, -362, - 147, 125, -6, 123, -151, -150, -149, 126, 626, 632, - 125, 125, 125, 87, 87, 87, 160, 87, 87, 87, - 160, 87, 160, 102, -523, 474, 41, 160, 86, 87, - 160, 62, 160, 128, 87, 160, -433, -389, -362, 92, - -389, 192, 87, 62, -139, 92, 160, -203, 38, 39, - 159, 447, -362, -534, 87, -450, 160, 250, 159, 159, - -426, 393, -361, -428, 21, 555, -338, 40, -345, 128, - 662, -362, 87, -391, -391, 117, -387, -384, 87, 125, - -389, 123, -254, -256, 409, 410, -389, -254, -255, -261, - 156, 195, 263, 194, 193, 191, 409, 410, -273, -417, - 552, -203, 87, -362, -389, -389, 87, -389, -389, 17, - -362, -273, -385, -389, -208, -208, 87, 87, -457, -458, - -457, -457, 87, 87, 87, 87, -457, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, 86, 102, - 104, 102, 104, -516, -613, 64, 634, 63, 437, 107, - 317, 160, 102, 92, 663, 160, 128, 92, -362, -362, - 17, 246, -362, 17, 174, 92, -592, 321, 364, 505, - 246, 364, 321, 505, 246, -469, 102, 401, 87, 160, - -338, -226, -215, 86, -215, -582, 476, 417, 427, -358, - -381, -380, 366, 43, -503, 438, 423, 424, -427, 277, - -351, -588, 99, 128, 83, 344, 348, 350, 349, 345, - 346, 347, -407, -408, -406, -410, -575, 86, 86, -184, - 36, 136, -180, 86, 86, 36, -480, 334, -256, -249, - -194, -362, 17, 160, -574, 159, 17, -1, -362, -362, - -420, -374, -319, -389, -389, -319, -374, -374, -376, -362, - -241, -480, -256, 36, -299, 243, 239, -454, 314, 315, - -455, -470, 317, -472, 86, -253, -338, -246, -547, -548, - -409, -362, 113, -547, 113, 86, -253, -338, -338, -302, - -338, -362, -362, -362, -362, -309, -308, -338, -311, 33, - -312, -362, -362, -362, -362, 113, -362, 113, -278, 42, - 49, 50, 51, -358, -358, 198, -281, 42, 437, 439, - 440, -311, 102, 102, 102, 102, 92, 92, 92, -358, - -358, 102, 92, -365, 92, -549, 173, 46, 47, 102, - 102, 102, 102, 42, 92, -286, 42, 297, 301, 298, - 299, 300, 92, 102, 42, 102, 42, 102, 42, -362, - 86, -550, -551, 92, 333, -469, -582, -358, 370, -441, - 128, 128, -381, -584, 96, 418, -584, -587, 327, -183, - 505, 33, -219, 243, 239, -575, -432, -431, -338, -199, - -199, -199, -199, -199, -199, 69, 80, 69, -212, 86, - 69, 74, 69, 74, 69, -327, 69, 80, -432, -201, - -215, -365, 87, -598, -597, -596, -594, 77, 251, 78, - -395, -444, 494, 498, 499, -428, -377, 92, -435, -223, - 24, -249, -249, -501, 307, 308, 87, 160, -256, -321, - 19, 159, 121, -6, -147, -149, -389, -6, -389, 628, - 383, 629, 92, 102, 102, -531, 458, 453, 455, 113, - -398, -518, -517, 62, -184, -211, -510, -553, -516, -362, - 663, 663, 663, 663, 92, 62, -184, -510, -223, -523, - -205, -204, 45, -362, 102, 17, -425, -420, 147, 147, - -362, 394, -436, 92, 416, 92, 246, 663, 92, -345, - -384, -389, 87, -264, 182, 181, -264, 36, 87, 87, - -487, -487, -486, -489, -486, -264, -264, 87, 86, -203, - 87, 24, 87, 87, 87, -389, 87, 87, 160, -506, - 514, -507, 588, -457, -457, -457, -457, -457, -457, -457, + 86, 86, -208, 160, -207, 86, -207, -208, -188, -187, + 33, 34, 33, 34, 33, 34, 33, 34, -611, 635, + 86, 102, 657, 228, 17, -362, 644, -362, -593, 33, + 549, 549, 549, 549, 494, 555, 172, 173, 174, -362, + 171, 250, -362, -409, 252, -409, -409, -233, -362, -235, + 388, 249, 541, 249, -176, -409, -409, -409, -409, -409, + 248, -409, 24, 246, 246, 246, 246, -409, 512, 128, + 128, 60, -572, 176, 160, -562, -215, 86, -593, 652, + 653, 654, -374, 136, 140, -374, -319, 18, -319, 24, + 24, 275, 275, 275, -374, 315, -619, -620, 17, 138, + -372, -620, -372, -372, -374, -621, 248, 479, 44, 276, + 275, -209, -210, 22, -209, 473, 469, -464, 474, 475, + -376, -620, -375, -374, -374, -375, -374, -374, -374, 33, + 246, 249, 505, 337, 639, -619, -619, 32, 32, -498, + -498, -249, -498, -498, 539, -351, -362, -498, -498, -498, + -303, -304, -249, -573, 251, 654, -605, -604, 492, -607, + 494, 165, -441, 165, -441, 89, -422, 277, 277, 160, + 128, 24, -442, 128, 139, -441, -441, -442, -442, -273, + 42, -361, 156, -362, 92, -273, 42, -602, -601, -249, + -208, -188, -187, 87, 87, 87, 549, -593, -498, -498, + -498, -498, -498, -499, -498, -498, -498, -498, -498, -369, + -225, -362, -235, 252, -498, -498, -498, -498, -189, -190, + 147, -389, -362, -193, -3, -146, -145, 122, 123, 125, + 629, 383, 628, 632, 626, -441, 42, -492, 410, 409, + -486, -488, 86, -487, 86, -487, -487, -487, -487, -487, + 86, 86, -489, 86, -489, -489, -486, -490, 86, -490, + -491, 86, -491, -490, -362, -468, 555, -395, -397, -362, + 40, -508, 62, -184, 86, 32, 86, -216, -362, 192, + 170, 643, 36, -509, 62, -184, 86, 32, -208, -139, + 40, -210, 21, 159, 102, 92, -118, -99, 78, -118, + -99, -99, 87, 160, -566, 108, 109, -568, 210, 201, + -362, -116, 92, -7, -11, -8, -9, -10, -47, -85, + -184, 547, 550, -536, -534, 86, 33, 437, 83, 17, + -448, 246, 505, 388, 273, 249, 364, -446, -429, -426, + -424, -361, -422, -425, -424, -451, -338, 469, -140, 452, + 451, 327, -389, -389, -389, -389, -389, 107, 118, 355, + 108, 109, -384, -405, 33, 323, 324, -385, -385, -385, + -385, -385, -385, -385, -385, -385, -385, -385, -385, -393, + -403, -479, 86, 138, 136, 140, 137, 120, -387, -387, + -385, -385, -275, -361, 156, 87, 160, -389, -559, -558, + 122, -389, -389, -389, -389, -415, -417, -338, 86, -362, + -556, -557, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 379, 374, 380, 378, 367, 386, 381, + 382, 194, 536, 537, 530, 531, 532, 533, 534, 535, + -395, -395, -389, -556, -395, -331, 34, 33, -397, -397, + -397, 87, -389, -569, 353, 352, 354, -211, -362, -395, + 87, 87, 87, 102, -397, -397, -395, -385, -395, -395, + -395, -395, -557, -331, -331, -331, -331, 147, -397, -397, + -331, -331, -331, -331, 147, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, 87, 87, 87, 147, + -397, -209, -138, -517, -516, -389, 42, -139, -210, -612, + 636, 86, -338, -600, 92, 92, 662, 170, 644, 17, + 505, -362, 17, 246, -362, 102, -362, 102, 495, 496, + 169, 173, 172, -362, 171, -362, -362, 118, -362, -362, + 36, 86, -225, -409, -409, -409, -577, -362, 93, -430, + -427, -424, -362, -362, -420, -362, -351, -249, -409, -409, + -409, -409, -249, -284, 54, 55, 56, -424, -177, 57, + 58, -573, -561, 36, -214, -362, -319, -387, -387, -389, + 364, 505, 246, -424, 277, -619, -374, -374, -352, -351, + -376, -371, -376, -376, -319, -372, -374, -374, -389, -376, + -372, -319, -362, 469, -319, -319, -464, -374, -373, -362, + -373, -409, -351, -352, -352, -249, -249, -298, -305, -299, + -306, 269, 243, 372, 373, 240, 238, 11, 239, -313, + 316, -410, 513, -279, -280, 78, 43, -282, 267, 414, + 407, 279, 283, 96, 284, 447, 285, 248, 287, 288, + 289, 304, 306, 259, 290, 291, 292, 438, 293, 164, + 305, 294, 295, 296, 390, -274, 6, 340, 555, 42, + 52, 53, 461, 460, 558, 280, -362, -577, -575, 32, + -362, 32, -430, -424, -362, -362, 160, 250, -200, -202, + -199, -195, -196, -201, -322, -324, -198, 86, -249, -187, + -362, -441, 160, 493, 495, 496, -605, -442, -605, -442, + 250, 33, 437, -445, 437, 33, -420, -439, 489, 491, + -435, 92, 438, -425, -444, 83, 156, -516, -442, -442, + -444, -444, 155, 160, -603, 494, 495, 234, -209, 102, + -251, -249, -577, -429, -420, -362, -498, -251, -251, -251, + -364, -364, 86, 159, 37, -362, -362, -362, -362, -318, + 160, -317, 17, -363, -362, 36, 92, 159, -147, -145, + 124, -389, -6, 628, -389, -6, -6, -389, -6, -389, + -496, 411, 102, 102, -341, 92, -341, 102, 102, 102, + 561, 87, 92, -433, 83, -510, -398, -554, 617, -218, + 87, -211, -552, -553, -211, -217, -362, -508, -241, 128, + 128, 128, 25, -510, -218, 87, -552, -209, 618, -139, + -206, -205, -389, -362, 24, -118, -99, -564, 159, 160, + -214, -448, -428, -425, -450, 147, -362, -436, 160, 555, + 665, 90, 250, -590, -589, 429, 87, 160, -520, 251, + 512, 92, 662, 445, 228, 229, 107, 355, 108, 109, + -479, -397, -393, -387, -387, -385, -385, -391, 264, -391, + 117, -389, 663, -388, -558, 124, -389, 36, 160, 36, + 160, 84, 160, 87, -486, -389, 159, 87, 87, 17, + 17, 87, -389, 87, 87, 87, 87, 17, 17, -389, + 87, 159, 87, 87, 87, 87, 84, 87, 160, 87, + 87, 87, 87, 160, -397, -397, -389, -397, 87, 87, + 87, -389, -389, -389, -397, 87, -389, -389, -389, -389, + -389, -389, -389, -389, -389, -389, -214, -458, 464, -458, + -458, 160, 160, 160, 87, -139, 86, 102, 160, 658, + -345, -344, 92, -362, -362, 170, 644, -362, 92, 644, + -362, 92, 170, 174, 174, 173, -362, 92, 37, 24, + 24, 314, -234, -236, -237, -238, -239, -240, 138, 161, + 162, 86, -249, -249, -249, -579, 415, -591, 160, 42, + -589, 505, -173, 327, -413, 84, -180, 17, 555, -249, + -249, -249, -249, -263, 36, 17, -194, -250, -362, 86, + 87, 160, -362, -362, -362, -421, 84, -362, -352, -319, + -319, -376, -319, -319, 160, 23, -374, -376, -376, -241, + -372, -241, 159, -241, -351, -485, 36, -215, 160, 21, + 269, -248, -359, -245, -247, 254, -379, -246, 257, -548, + 255, 253, 112, 258, 312, 113, 248, -359, -359, 254, + -283, 250, 36, -359, -301, 248, 358, 312, 255, 21, + 269, -300, 248, 113, -362, 254, 258, 255, 253, -358, + 128, -350, 155, 250, 44, 390, -358, 559, 269, -358, + -358, -358, -358, -358, -358, -358, 286, 286, -358, -358, + -358, -358, -358, -358, -358, -358, -358, -358, -358, 165, + -358, -358, -358, -358, -358, -358, 86, 332, 281, 282, + 314, -580, 415, 32, 370, 370, 371, -591, 366, 43, + 32, -181, 364, -304, -302, -373, 32, -325, -326, -327, + -328, -330, -329, 69, 73, 75, 79, 70, 71, 72, + 76, 81, 74, 32, 160, -360, -365, 36, -362, 92, + -360, -187, -202, -200, -360, 86, -442, -604, -606, 497, + 494, 500, -444, -444, 102, 250, 86, 128, -444, -444, + 42, -361, -601, 501, 495, -139, 160, 83, -251, -226, + -227, -228, -229, -256, -338, 196, 199, 201, 202, 203, + 204, 206, 207, 208, 209, 210, 213, 214, 211, 212, + 263, 191, 192, 193, 194, 215, 177, 197, 553, 178, + 179, 180, 181, 182, 183, 186, 187, 188, 189, 185, + -362, -235, -319, -190, -202, -362, 92, -362, 147, 125, + -6, 123, -151, -150, -149, 126, 626, 632, 125, 125, + 125, 87, 87, 87, 160, 87, 87, 87, 160, 87, + 160, 102, -523, 474, 41, 160, 86, 87, 160, 62, + 160, 128, 87, 160, -389, -362, 92, -389, 192, 87, + 62, -139, 92, 160, -203, 38, 39, 159, 447, -362, + -534, 87, -450, 160, 250, 159, 159, -426, 393, -361, + -428, 21, 555, -338, 40, -345, 128, 662, -362, 87, + -391, -391, 117, -387, -384, 87, 125, -389, 123, -254, + -256, 409, 410, -389, -254, -255, -261, 156, 195, 263, + 194, 193, 191, 409, 410, -273, -417, 552, -203, 87, + -362, -389, -389, 87, -389, -389, 17, -362, -273, -385, + -389, -208, -208, 87, 87, -457, -458, -457, -457, 87, + 87, 87, 87, -457, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 86, 102, 104, 102, 104, + -516, -613, 64, 634, 63, 437, 107, 317, 160, 102, + 92, 663, 160, 128, 92, -362, -362, 17, 246, -362, + 17, 174, 92, -592, 321, 364, 505, 246, 364, 321, + 505, 246, -469, 102, 401, 87, 160, -338, -226, -215, + 86, -215, -582, 476, 417, 427, -358, -381, -380, 366, + 43, -503, 438, 423, 424, -427, 277, -351, -588, 99, + 128, 83, 344, 348, 350, 349, 345, 346, 347, -407, + -408, -406, -410, -575, 86, 86, -184, 36, 136, -180, + 86, 86, 36, -480, 334, -256, -249, -194, -362, 17, + 160, -574, 159, -1, -362, -362, -420, -374, -319, -389, + -389, -319, -374, -374, -376, -362, -241, -480, -256, 36, + -299, 243, 239, -454, 314, 315, -455, -470, 317, -472, + 86, -253, -338, -246, -547, -548, -409, -362, 113, -547, + 113, 86, -253, -338, -338, -302, -338, -362, -362, -362, + -362, -309, -308, -338, -311, 33, -312, -362, -362, -362, + -362, 113, -362, 113, -278, 42, 49, 50, 51, -358, + -358, 198, -281, 42, 437, 439, 440, -311, 102, 102, + 102, 102, 92, 92, 92, -358, -358, 102, 92, -365, + 92, -549, 173, 46, 47, 102, 102, 102, 102, 42, + 92, -286, 42, 297, 301, 298, 299, 300, 92, 102, + 42, 102, 42, 102, 42, -362, 86, -550, -551, 92, + 333, -469, -582, -358, 370, -441, 128, 128, -381, -584, + 96, 418, -584, -587, 327, -183, 505, 33, -219, 243, + 239, -575, -432, -431, -338, -199, -199, -199, -199, -199, + -199, 69, 80, 69, -212, 86, 69, 74, 69, 74, + 69, -327, 69, 80, -432, -201, -215, -365, 87, -598, + -597, -596, -594, 77, 251, 78, -395, -444, 494, 498, + 499, -428, -377, 92, -435, -223, 24, -249, -249, -501, + 307, 308, 87, 160, -256, -321, 19, 159, 121, -6, + -147, -149, -389, -6, -389, 628, 383, 629, 92, 102, + 102, -531, 458, 453, 455, 113, -398, -518, -517, 62, + -184, -211, -510, -553, -516, -362, 663, 663, 663, 663, + 92, 62, -184, -510, -223, -523, -205, -204, 45, -362, + 102, 17, -425, -420, 147, 147, -362, 394, -436, 92, + 416, 92, 246, 663, 92, -345, -384, -389, 87, -264, + 182, 181, -264, 36, 87, 87, -487, -487, -486, -489, + -486, -264, -264, 87, 86, -203, 87, 24, 87, 87, + 87, -389, 87, 87, 160, -506, 514, -507, 588, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, - -400, -399, 269, 459, 641, 641, 459, 641, 641, 87, - 160, -556, 160, -353, 322, -353, -344, 92, 250, 92, - 170, -362, 92, 644, 92, -362, -362, -362, 314, -362, - 314, -362, -362, 92, 92, 92, -238, -256, 87, 36, - -242, -243, -244, -253, -245, -247, 36, -583, 96, -578, - 92, -362, 93, -584, 158, 368, 42, 419, 420, 435, - 363, 102, 102, 425, -576, -362, -182, 246, 364, -586, - 53, 128, 92, -249, -406, -350, 155, 288, 337, -316, - -315, -362, 92, -242, -184, -249, -242, -242, -184, -481, - 336, 21, 102, 146, -216, 84, 159, -202, -250, -362, - 147, -249, 87, -319, -241, -319, -319, -374, -481, -184, - -466, 318, 86, -464, 86, -464, 113, 345, -473, -471, - 269, -307, 46, 48, -256, -545, -362, -543, -545, -362, - -543, -543, -409, -389, -307, -253, 250, 32, 239, -310, - 342, 343, 348, 350, -437, 313, 118, -437, 160, -203, - 160, -362, -273, -273, 32, 92, 92, -251, 87, 160, - 128, 102, 92, -583, -578, 128, -442, 92, 92, -584, - 92, 92, -588, 128, -252, 246, -351, 160, -219, -219, - -319, 160, 128, -221, -220, 83, 84, -222, 83, -220, - -220, 69, -213, 92, 69, 69, -319, -596, -595, 24, - -548, -548, -548, 87, 87, 15, -228, 42, -320, 20, - 21, 147, 125, 123, 125, 125, -362, 87, 87, -493, - 619, -527, -529, 453, 21, 21, 15, 251, 87, -510, - 663, -510, -531, 46, 47, -420, -436, 438, -249, 160, - 663, -254, -292, 92, -389, 87, -389, 87, 92, 87, - 92, -208, 21, 87, 160, 87, 87, 87, 160, 87, - 87, -389, 87, -556, -354, 192, 92, -354, 364, -363, - -362, 17, -362, 92, -362, -469, 314, -469, 314, 246, - -362, 244, -184, 87, 160, -184, 92, -581, 429, 102, - 42, 102, 158, 421, -504, -174, 96, -251, 33, -219, - -585, 96, 128, 662, 86, -358, -358, -358, -362, 87, - 160, -358, -358, 87, 87, 87, -271, 555, -482, 268, - 102, 146, 102, 146, 102, -360, -202, -362, -319, -574, - 159, -216, -319, -482, -456, 319, 102, -385, 86, -385, - 86, -465, 316, 86, 87, 160, -362, -338, -268, -267, - -265, 107, 118, 42, 407, -266, 96, 155, 302, 305, - 304, 280, 303, -297, -378, 83, 413, 342, 343, -410, - 619, 543, 253, 112, 113, 395, -379, 86, 86, 84, - 322, 86, 86, -545, 87, -307, -338, 42, -310, 42, - 356, 313, -308, -362, 155, -273, 87, -551, 92, -556, - -581, 92, -444, -586, 92, -174, -251, -575, -208, -431, - -516, -389, 86, -389, 87, 86, 69, 11, 19, -382, - -389, -397, 647, 649, 650, 252, -6, 629, 383, -288, - 620, 92, 21, 92, -525, 92, -432, -493, -142, -285, - -350, 285, 87, -291, 138, 555, 87, 87, -457, -457, - -460, -459, -463, 459, 314, 467, -397, 92, 92, 87, - 87, 92, -362, 170, 92, 662, 92, -469, 92, -469, - -362, 314, -230, -256, -178, 555, -271, -244, -178, 21, - 555, 367, 42, 102, 42, 422, 92, -182, 128, 108, - 109, -346, -347, 92, -415, -273, -275, 92, -315, -382, - -382, -269, -184, 36, -270, -313, -410, 555, -141, -140, - -269, 555, 86, -483, 164, 102, 146, 102, 102, -319, - -319, -360, -483, -472, 21, 87, -451, 87, -451, 86, - 128, -385, -471, -474, 62, -265, 107, -385, 92, -275, - -276, 42, 301, 297, 128, 128, -277, 42, 281, 282, - -287, 86, 312, 15, 198, 86, 113, 113, -249, -415, - -415, -546, 344, 345, 346, 351, 348, 349, 347, 350, - -546, -415, -415, 86, -438, -437, -385, -358, -358, 155, - -585, -209, -214, -544, -362, 253, 21, 21, -502, 555, - 648, 86, 86, -362, -362, -342, 621, 102, 92, 455, - -288, -494, 622, -521, -464, -273, 128, 87, 76, 553, - 556, 87, -462, 120, 421, 425, -383, -386, 102, 104, - 190, 158, 87, 87, -362, -349, -348, 92, 92, 92, - 314, -469, 554, -179, 61, 501, 92, 93, 416, 92, - 93, 367, -174, 92, 663, 160, 128, 87, -452, 269, - -184, 160, -313, -350, -142, -452, -272, -314, -362, 92, - -500, 173, 335, 555, 102, 146, 102, -208, -319, -484, - 173, 335, -455, 87, 87, 87, -451, 102, 87, -478, - -475, 86, -313, 271, 138, 92, 92, 102, 86, -511, - 32, 92, -416, 86, 87, 87, 87, 87, -415, 102, - -273, -358, 87, 87, 160, 650, 86, -397, -397, 86, - 21, -342, -495, 623, 92, -530, 458, -524, -522, 453, - 454, 455, 456, 92, 554, 66, 557, -461, -462, 425, - -383, -386, 617, 465, 465, 465, 663, 160, 128, -469, - 92, -232, -362, 312, 438, -347, 92, -418, -453, 321, - 21, -313, -358, -453, 87, 160, -358, -358, 335, 102, - 146, 102, -209, -208, 335, -467, 320, 87, -478, -313, - -477, -476, 319, 272, 86, 87, -389, -401, -358, 87, - -290, -289, 551, -415, -418, 84, -418, 84, -418, 84, - -418, 84, 87, -273, -362, 253, -137, 86, 87, 87, - -343, -362, -525, 92, -532, 251, -528, -529, 457, -522, - 21, 455, 21, 21, -143, 160, 66, 117, 466, 466, - 466, -348, 92, 92, -231, 36, 460, 394, -419, 259, - 356, 357, 96, 555, 342, 343, 361, 360, 359, 362, - 21, -454, -273, -314, -382, -382, 102, -209, 102, 87, + -457, -457, -457, -457, -457, -457, -400, -399, 269, 459, + 641, 641, 459, 641, 641, 87, 160, -556, 160, -353, + 322, -353, -344, 92, 250, 92, 170, -362, 92, 644, + 92, -362, -362, -362, 314, -362, 314, -362, -362, 92, + 92, 92, -238, -256, 87, 36, -242, -243, -244, -253, + -245, -247, 36, -583, 96, -578, 92, -362, 93, -584, + 158, 368, 42, 419, 420, 435, 363, 102, 102, 425, + -576, -362, -182, 246, 364, -586, 53, 128, 92, -249, + -406, -350, 155, 288, 337, -316, -315, -362, 92, -242, + -184, -249, -242, -242, -184, -481, 336, 21, 102, 146, + -216, 84, 159, -202, -250, -362, 147, 87, -319, -241, + -319, -319, -374, -481, -184, -466, 318, 86, -464, 86, + -464, 113, 345, -473, -471, 269, -307, 46, 48, -256, + -545, -362, -543, -545, -362, -543, -543, -409, -389, -307, + -253, 250, 32, 239, -310, 342, 343, 348, 350, -437, + 313, 118, -437, 160, -203, 160, -362, -273, -273, 32, + 92, 92, -251, 87, 160, 128, 102, 92, -583, -578, + 128, -442, 92, 92, -584, 92, 92, -588, 128, -252, + 246, -351, 160, -219, -219, -319, 160, 128, -221, -220, + 83, 84, -222, 83, -220, -220, 69, -213, 92, 69, + 69, -319, -596, -595, 24, -548, -548, -548, 87, 87, + 15, -228, 42, -320, 20, 21, 147, 125, 123, 125, + 125, -362, 87, 87, -493, 619, -527, -529, 453, 21, + 21, 15, 251, 87, -510, 663, -510, -531, 46, 47, + -420, -436, 438, -249, 160, 663, -254, -292, 92, -389, + 87, -389, 87, 92, 87, 92, -208, 21, 87, 160, + 87, 87, 87, 160, 87, 87, -389, 87, -556, -354, + 192, 92, -354, 364, -363, -362, 17, -362, 92, -362, + -469, 314, -469, 314, 246, -362, 244, -184, 87, 160, + -184, 92, -581, 429, 102, 42, 102, 158, 421, -504, + -174, 96, -251, 33, -219, -585, 96, 128, 662, 86, + -358, -358, -358, -362, 87, 160, -358, -358, 87, 87, + 87, -271, 555, -482, 268, 102, 146, 102, 146, 102, + -360, -202, -362, -319, -574, 159, -319, -482, -456, 319, + 102, -385, 86, -385, 86, -465, 316, 86, 87, 160, + -362, -338, -268, -267, -265, 107, 118, 42, 407, -266, + 96, 155, 302, 305, 304, 280, 303, -297, -378, 83, + 413, 342, 343, -410, 619, 543, 253, 112, 113, 395, + -379, 86, 86, 84, 322, 86, 86, -545, 87, -307, + -338, 42, -310, 42, 356, 313, -308, -362, 155, -273, + 87, -551, 92, -556, -581, 92, -444, -586, 92, -174, + -251, -575, -208, -431, -516, -389, 86, -389, 87, 86, + 69, 11, 19, -382, -389, -397, 647, 649, 650, 252, + -6, 629, 383, -288, 620, 92, 21, 92, -525, 92, + -432, -493, -142, -285, -350, 285, 87, -291, 138, 555, + 87, 87, -457, -457, -460, -459, -463, 459, 314, 467, + -397, 92, 92, 87, 87, 92, -362, 170, 92, 662, + 92, -469, 92, -469, -362, 314, -230, -256, -178, 555, + -271, -244, -178, 21, 555, 367, 42, 102, 42, 422, + 92, -182, 128, 108, 109, -346, -347, 92, -415, -273, + -275, 92, -315, -382, -382, -269, -184, 36, -270, -313, + -410, 555, -141, -140, -269, 555, 86, -483, 164, 102, + 146, 102, 102, -319, -319, -483, -472, 21, 87, -451, + 87, -451, 86, 128, -385, -471, -474, 62, -265, 107, + -385, 92, -275, -276, 42, 301, 297, 128, 128, -277, + 42, 281, 282, -287, 86, 312, 15, 198, 86, 113, + 113, -249, -415, -415, -546, 344, 345, 346, 351, 348, + 349, 347, 350, -546, -415, -415, 86, -438, -437, -385, + -358, -358, 155, -585, -209, -214, -544, -362, 253, 21, + 21, -502, 555, 648, 86, 86, -362, -362, -342, 621, + 102, 92, 455, -288, -494, 622, -521, -464, -273, 128, + 87, 76, 553, 556, 87, -462, 120, 421, 425, -383, + -386, 102, 104, 190, 158, 87, 87, -362, -349, -348, + 92, 92, 92, 314, -469, 554, -179, 61, 501, 92, + 93, 416, 92, 93, 367, -174, 92, 663, 160, 128, + 87, -452, 269, -184, 160, -313, -350, -142, -452, -272, + -314, -362, 92, -500, 173, 335, 555, 102, 146, 102, + -208, -484, 173, 335, -455, 87, 87, 87, -451, 102, + 87, -478, -475, 86, -313, 271, 138, 92, 92, 102, + 86, -511, 32, 92, -416, 86, 87, 87, 87, 87, + -415, 102, -273, -358, 87, 87, 160, 650, 86, -397, + -397, 86, 21, -342, -495, 623, 92, -530, 458, -524, + -522, 453, 454, 455, 456, 92, 554, 66, 557, -461, + -462, 425, -383, -386, 617, 465, 465, 465, 663, 160, + 128, -469, 92, -232, -362, 312, 438, -347, 92, -418, + -453, 321, 21, -313, -358, -453, 87, 160, -358, -358, + 335, 102, 146, 102, -209, 335, -467, 320, 87, -478, + -313, -477, -476, 319, 272, 86, 87, -389, -401, -358, + 87, -290, -289, 551, -415, -418, 84, -418, 84, -418, + 84, -418, 84, 87, -273, -362, 253, -137, 86, 87, + 87, -343, -362, -525, 92, -532, 251, -528, -529, 457, + -522, 21, 455, 21, 21, -143, 160, 66, 117, 466, + 466, 466, -348, 92, 92, -231, 36, 460, 394, -419, + 259, 356, 357, 96, 555, 342, 343, 361, 360, 359, + 362, 21, -454, -273, -314, -382, -382, 102, 102, 87, 160, -362, 268, 86, -396, -390, -389, 268, 87, -362, -296, -294, -295, 83, 472, 310, 311, 87, -546, -546, -546, -546, -297, 87, 160, -395, 87, 160, -539, 86, @@ -9830,8 +9767,8 @@ var yyDef = [...]int{ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0, 316, 317, 318, 319, - 320, 321, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 0, 0, 0, 0, 0, 721, 722, 0, 685, + 320, 321, 984, 985, 986, 987, 988, 989, 990, 991, + 992, 0, 0, 0, 0, 0, 721, 722, 0, 685, 0, 0, 0, 0, 0, 0, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, @@ -9839,407 +9776,405 @@ var yyDef = [...]int{ 591, 592, 593, 594, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 0, 350, 346, 258, 259, 260, 261, 262, 263, 264, 357, 358, 534, 0, 0, 0, - 0, 807, -2, 102, 0, 0, 0, 0, 339, 0, - 330, 330, 0, 0, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, -2, 735, 0, + 0, 804, -2, 102, 0, 0, 0, 0, 339, 0, + 330, 330, 0, 0, 993, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, -2, 734, 0, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 414, 415, 416, - 410, 411, 413, 412, -2, 0, 0, 735, 0, 0, - 0, 815, 0, 0, 0, 858, 876, 23, 0, 7, + 410, 411, 413, 412, -2, 0, 0, 734, 0, 0, + 0, 812, 0, 0, 0, 855, 873, 23, 0, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 0, 19, 0, 0, 0, 1418, 1419, - 1420, 1421, 2224, 2194, -2, 1956, 1930, 2118, 2119, 2013, - 2026, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, - 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, - 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, - 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, - 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, - 2310, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, - 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, - 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, - 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, - 1926, 1927, 1928, 1929, 1931, 1932, 1933, 1934, 1935, 1936, - 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, - 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1957, - 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, - 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, - 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, - 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010, 2011, 2012, 2014, 2015, 2016, 2017, 2018, - 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2028, 2029, 2030, - 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, - 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, - 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, - 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, - 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, - 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, - 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, - 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, - 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2120, 2121, 2122, - 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, - 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, - 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, -2, 2152, - 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, - 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, - 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, - 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, - 2193, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, - 2204, 2205, 2206, 2207, 2208, 2209, -2, -2, -2, 2213, - 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, - 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, - 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, - 2245, 2246, 2247, 2248, 2249, 2250, 0, 314, 312, 1900, - 1930, 1956, 2013, 2026, 2027, 2066, 2118, 2119, 2151, 2194, - 2210, 2211, 2212, 2224, 0, 0, 1013, 0, 785, 0, - 0, 0, 790, 1365, 785, 0, 351, 723, 724, 815, - 841, 683, 0, 388, 0, 1946, 392, 2201, 0, 0, - 0, 0, 680, 382, 383, 384, 385, 386, 387, 0, - 0, 986, 0, 0, 378, 0, 345, 2016, 2223, 1422, - 0, 0, 0, 0, 0, 201, 1137, 203, 1139, 207, - 215, 0, 0, 0, 220, 221, 224, 225, 226, 227, - 228, 0, 232, 0, 234, 237, 0, 239, 240, 0, - 243, 244, 245, 0, 255, 256, 257, 1140, 1141, 1142, - -2, 130, 1011, 1858, 1744, 0, 1751, 1764, 1775, 1504, - 1505, 1506, 1507, 0, 0, 0, 0, 0, 0, 1515, - 1516, 0, 1546, 2265, 2306, 2307, 0, 1524, 1525, 1526, - 1527, 1528, 1529, 0, 141, 153, 154, 1797, 1798, 1799, - 1800, 1801, 1802, 1803, 0, 1805, 1806, 1807, 1715, 1491, - 1418, 0, 2274, 0, 2296, 2301, 2302, 2303, 2304, 2295, - 0, 0, 1699, 0, 1689, 0, 0, -2, -2, 0, - 0, 2091, -2, 2308, 2309, 2310, 2271, 2292, 2300, 2275, - 2276, 2299, 2267, 2268, 2269, 2262, 2263, 2264, 2266, 2278, - 2280, 2291, 0, 2287, 2297, 2298, 2199, 0, 0, 2246, - 0, 0, 0, 2241, 155, 156, -2, -2, -2, -2, + 0, 0, 19, 0, 19, 0, 0, 0, 1415, 1416, + 1417, 1418, 2221, 2191, -2, 1953, 1927, 2115, 2116, 2010, + 2023, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, + 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, + 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, + 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, + 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, + 2307, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, + 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, + 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, + 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, + 1923, 1924, 1925, 1926, 1928, 1929, 1930, 1931, 1932, 1933, + 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, + 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1954, + 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, + 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, + 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, + 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, + 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007, 2008, 2009, 2011, 2012, 2013, 2014, 2015, + 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2025, 2026, 2027, + 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, + 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, + 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, + 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, + 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, + 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, + 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, + 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, + 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2117, 2118, 2119, + 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, + 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, + 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, -2, 2149, + 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, + 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, + 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, + 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, + 2190, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, + 2201, 2202, 2203, 2204, 2205, 2206, -2, -2, -2, 2210, + 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, + 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, + 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, + 2242, 2243, 2244, 2245, 2246, 2247, 0, 314, 312, 1897, + 1927, 1953, 2010, 2023, 2024, 2063, 2115, 2116, 2148, 2191, + 2207, 2208, 2209, 2221, 0, 0, 1010, 0, 782, 0, + 0, 787, 1362, 782, 351, 723, 724, 812, 838, 683, + 0, 388, 0, 1943, 392, 2198, 0, 0, 0, 0, + 680, 382, 383, 384, 385, 386, 387, 0, 0, 983, + 0, 0, 378, 0, 345, 2013, 2220, 1419, 0, 0, + 0, 0, 0, 201, 1134, 203, 1136, 207, 215, 0, + 0, 0, 220, 221, 224, 225, 226, 227, 228, 0, + 232, 0, 234, 237, 0, 239, 240, 0, 243, 244, + 245, 0, 255, 256, 257, 1137, 1138, 1139, -2, 130, + 1008, 1855, 1741, 0, 1748, 1761, 1772, 1501, 1502, 1503, + 1504, 0, 0, 0, 0, 0, 0, 1512, 1513, 0, + 1543, 2262, 2303, 2304, 0, 1521, 1522, 1523, 1524, 1525, + 1526, 0, 141, 153, 154, 1794, 1795, 1796, 1797, 1798, + 1799, 1800, 0, 1802, 1803, 1804, 1712, 1488, 1415, 0, + 2271, 0, 2293, 2298, 2299, 2300, 2301, 2292, 0, 0, + 1696, 0, 1686, 0, 0, -2, -2, 0, 0, 2088, + -2, 2305, 2306, 2307, 2268, 2289, 2297, 2272, 2273, 2296, + 2264, 2265, 2266, 2259, 2260, 2261, 2263, 2275, 2277, 2288, + 0, 2284, 2294, 2295, 2196, 0, 0, 2243, 0, 0, + 0, 2238, 155, 156, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, 1710, -2, 1712, -2, 1714, -2, 1717, - -2, -2, -2, -2, 1722, 1723, -2, 1725, -2, -2, - -2, -2, -2, -2, -2, 1701, 1702, 1703, 1704, 1693, - 1694, 1695, 1696, 1697, 1698, -2, -2, -2, 841, 934, - 0, 841, 0, 816, 863, 866, 869, 872, 819, 0, - 0, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 340, 341, 329, 331, 0, 335, 0, 0, - 331, 328, 322, 0, 1178, 1178, 1178, 0, 0, 0, - 0, 1178, 1178, 1178, 1178, 1178, 0, 1178, 0, 0, - 0, 0, 0, 1178, 0, 1046, 1144, 1145, 1146, 1176, - 1177, 1250, 0, 0, 0, 740, 735, 736, 737, 738, - 739, 829, 0, 831, 834, 0, 0, 660, 660, 901, - 901, 0, 606, 0, 0, 0, 660, 0, 620, 612, - 0, 0, 0, 660, 0, 0, 836, 836, 0, 663, - 670, 660, 660, -2, 660, 660, 657, 660, 0, 0, - 1190, 626, 627, 628, 612, 612, 631, 632, 633, 643, - 644, 671, 1882, 0, 0, 534, 534, 0, 534, 534, - 0, 534, 534, 534, 0, 742, 1972, 2061, 1953, 2032, - 1910, 2016, 2223, 0, 287, 2091, 292, 0, 1955, 1975, - 0, 0, 1994, 0, -2, 0, 367, 841, 0, 0, - 815, 0, 0, 0, 0, 534, 534, 534, 534, 534, - 1249, 534, 534, 534, 534, 534, 0, 0, 0, 534, - 534, 534, 534, 0, 877, 878, 880, 881, 882, 883, - 884, 885, 886, 887, 888, 889, 5, 6, 19, 0, - 0, 0, 0, 0, 0, 109, 108, 0, 1859, 1877, - 1810, 1811, 1812, 1864, 1814, 1868, 1868, 1868, 1868, 1843, - 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1868, - 1868, 0, 0, 1857, 1834, 1866, 1866, 1866, 1864, 1861, + -2, 1707, -2, 1709, -2, 1711, -2, 1714, -2, -2, + -2, -2, 1719, 1720, -2, 1722, -2, -2, -2, -2, + -2, -2, -2, 1698, 1699, 1700, 1701, 1690, 1691, 1692, + 1693, 1694, 1695, -2, -2, -2, 838, 931, 0, 838, + 0, 813, 860, 863, 866, 869, 816, 0, 0, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 340, 341, 329, 331, 0, 335, 0, 0, 331, 328, + 322, 0, 1175, 1175, 1175, 0, 0, 0, 0, 1175, + 1175, 1175, 1175, 1175, 0, 1175, 0, 0, 0, 0, + 0, 1175, 0, 1043, 1141, 1142, 1143, 1173, 1174, 1247, + 0, 0, 0, 739, 735, 736, 737, 738, 826, 0, + 828, 831, 0, 0, 660, 660, 898, 898, 0, 606, + 0, 0, 0, 660, 0, 620, 612, 0, 0, 0, + 660, 0, 0, 833, 833, 0, 663, 670, 660, 660, + -2, 660, 660, 657, 660, 0, 0, 1187, 626, 627, + 628, 612, 612, 631, 632, 633, 643, 644, 671, 1879, + 0, 0, 534, 534, 0, 534, 534, 0, 534, 534, + 534, 0, 741, 1969, 2058, 1950, 2029, 1907, 2013, 2220, + 0, 287, 2088, 292, 0, 1952, 1972, 0, 0, 1991, + 0, -2, 0, 367, 838, 0, 0, 812, 0, 0, + 0, 0, 534, 534, 534, 534, 534, 1246, 534, 534, + 534, 534, 534, 0, 0, 0, 534, 534, 534, 534, + 0, 874, 875, 877, 878, 879, 880, 881, 882, 883, + 884, 885, 886, 5, 6, 19, 0, 0, 0, 0, + 0, 0, 109, 108, 0, 1856, 1874, 1807, 1808, 1809, + 1861, 1811, 1865, 1865, 1865, 1865, 1840, 1841, 1842, 1843, + 1844, 1845, 1846, 1847, 1848, 1849, 1865, 1865, 0, 0, + 1854, 1831, 1863, 1863, 1863, 1861, 1858, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, - 1825, 1826, 1827, 1828, 1871, 1871, 1874, 1874, 1871, 0, - 428, 426, 427, 1740, 0, 0, 0, 0, 785, 785, - 789, 1363, 0, 0, 0, 785, 841, -2, 0, 0, - 684, 389, 1423, 0, 0, 393, 0, 394, 0, 0, - 396, 0, 0, 0, 417, 0, 420, 404, 405, 406, - 407, 400, 0, 181, 0, 380, 381, 0, 0, 347, - 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, - 212, 208, 216, 219, 229, 236, 0, 248, 250, 253, - 209, 217, 222, 223, 230, 251, 210, 213, 214, 218, - 252, 254, 211, 231, 235, 249, 233, 238, 241, 242, - 247, 0, 182, 0, 0, 0, 0, 0, 1750, 0, - 0, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -2, 1744, 0, - 0, 1510, 1511, 1512, 1513, 0, 1517, 0, 1547, 0, - 0, 0, 0, 0, 0, 1804, 1808, 0, 1740, 1740, - 0, 1740, 1736, 0, 0, 0, 0, 0, 0, 1740, - 1672, 0, 0, 1674, 1690, 0, 0, 1676, 1677, 0, - 1680, 1681, 1740, 0, 1740, 1685, 1740, 1740, 1740, 1668, - 1669, 0, 1736, 1736, 1736, 1736, 0, 0, 1736, 1736, - 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, - 1736, 1736, 1736, 0, 0, 0, 0, 836, 0, 842, - 0, -2, 0, 860, 862, 864, 865, 867, 868, 870, - 871, 873, 874, 821, 0, 0, 105, 0, 0, 0, - 0, 0, 0, 71, 73, 0, 0, 0, 0, 0, - 0, 333, 0, 338, 324, 2053, 0, 323, 0, 0, - 0, 0, 0, 1010, 0, 0, 1178, 1178, 1178, 1047, - 0, 0, 0, 0, 0, 0, 0, 0, 1178, 1178, - 1178, 1178, 0, 1196, 0, 0, 0, 742, 741, 740, - 0, 830, 0, 0, 70, 595, 596, 597, 901, 0, - 0, 599, 600, 0, 601, 0, 0, 612, 660, 660, - 618, 619, 614, 613, 666, 667, 663, 0, 663, 663, - 901, 0, 637, 638, 639, 660, 660, 645, 837, 0, - 646, 647, 663, 0, 668, 669, 901, 0, 0, 901, - 901, 0, 655, 656, 658, 660, 0, 0, 1178, 0, - 676, 614, 614, 1883, 1884, 0, 0, 1187, 0, 0, - 0, 0, 679, 0, 0, 0, 444, 445, 0, 0, - 743, 0, 266, 270, 0, 273, 0, 2061, 0, 2061, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 310, - 311, 0, 0, 0, 0, 301, 304, 1357, 1358, 1134, - 1135, 305, 306, 359, 360, 0, 836, 859, 861, 855, - 856, 857, 0, 72, 0, 0, 0, 0, 0, 534, - 0, 0, 0, 0, 0, 717, 0, 1026, 719, 0, - 0, 0, 0, 0, 909, 903, 905, 981, 141, 879, - 8, 126, 123, 0, 19, 0, 0, 19, 19, 0, - 19, 315, 0, 1880, 1878, 1879, 1813, 1865, 0, 1839, - 0, 1840, 1841, 1842, 1853, 1854, 0, 0, 1835, 0, - 1836, 1837, 1838, 1829, 0, 1830, 1831, 0, 1832, 1833, - 313, 425, 0, 0, 1741, 1014, 0, 763, 777, 758, - 0, 766, 0, 0, 0, 1365, 0, 0, 0, 0, - 744, 777, 747, 0, 766, 0, 836, 813, 0, 791, - 0, 0, 390, 0, 401, 395, 0, 402, 397, 398, - 0, 0, 419, 421, 422, 423, 408, 409, 681, 376, - 377, 368, 369, 370, 371, 372, 373, 374, 375, 0, - 0, 379, 151, 0, 348, 349, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 202, 186, 706, 708, 1126, - 1138, 0, 1129, 0, 205, 246, 178, 0, 0, 0, - 1745, 1746, 1747, 1748, 1749, 1754, 0, 1756, 1758, 1760, - 1762, 0, 1780, -2, -2, 1492, 1493, 1494, 1495, 1496, - 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1765, 1778, 1779, - 0, 0, 0, 0, 0, 0, 1776, 1776, 1771, 0, - 1530, 1359, 1360, 1508, 0, 0, 1544, 1548, 0, 0, - 0, 0, 0, 0, 1161, 1864, 0, 142, 1735, 1639, - 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, - 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, - 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 0, 0, - 1744, 0, 0, 0, 1737, 1738, 0, 0, 0, 1627, - 0, 0, 1633, 1634, 1635, 0, 772, 0, 1700, 1673, - 1691, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 933, - 935, 0, 781, 783, 784, 810, 791, 817, 0, 0, - 0, 101, 106, 0, 1217, 0, 0, 0, 0, 0, - 0, 0, 74, 1191, 75, 1193, 342, 343, 0, 0, - 337, 325, 2053, 327, 0, 0, 0, 0, 0, -2, - 0, 0, 0, 0, 0, 1062, 1063, 532, 1120, 0, - 0, 0, 1136, 1165, 1174, 0, 0, 0, 0, 0, - 1223, 1048, 1053, 1054, 1055, 1049, 1050, 1056, 1057, 0, - 742, 832, 0, 0, 950, 598, 661, 662, 902, 602, - 0, 0, 609, 2016, 614, 901, 901, 621, 615, 622, - 665, 623, 624, 625, 663, 901, 901, 838, 660, 663, - 648, 664, 663, 1365, 652, 0, 659, 1365, 677, 1365, - 0, 675, 629, 630, 1225, 834, 442, 443, 448, 450, - 0, 499, 499, 499, 482, 499, 0, 0, 470, 1885, - 0, 0, 0, 0, 479, 1885, 0, 0, 1885, 1885, - 1885, 1885, 1885, 1885, 1885, 0, 0, 1885, 1885, 1885, - 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 0, 1885, - 1885, 1885, 1885, 1885, 1342, 1885, 0, 498, 1188, 489, - 490, 491, 492, 497, 0, 0, 527, 0, 0, 1061, - 0, 532, 0, 0, 1103, 0, 0, 914, 0, 915, - 916, 917, 912, 952, 976, 976, 0, 976, 956, 1365, - 0, 0, 0, 278, 279, 267, 0, 268, 0, 0, - 281, 282, 0, 284, 285, 286, 293, 1953, 2032, 288, - 290, 0, 0, 294, 307, 308, 309, 0, 0, 299, - 300, 0, 0, 362, 363, 365, 0, 791, 1192, 703, - 1361, 704, 705, 709, 0, 0, 712, 713, 714, 715, - 716, 1028, 0, 0, 1112, 1113, 1114, 1115, 901, 0, - 910, 0, 906, 982, 0, 984, 0, 0, 124, 19, - 0, 117, 114, 0, 0, 0, 0, 0, 1860, 1809, - 1881, 0, 0, 0, 1862, 0, 0, 0, 0, 0, - 107, 793, 752, 0, 757, 774, 0, 778, 0, 0, - 770, 762, 767, 0, 0, 787, 753, 763, 1364, 0, - 0, 0, 0, 746, 0, 0, 751, 745, 791, 0, - 814, 843, 844, 847, 1424, 0, 403, 399, 418, 0, - 0, 0, 0, 189, 1123, 0, 190, 194, 184, 0, - 0, 0, 1128, 0, 1125, 1130, 0, 204, 0, 0, - 179, 180, 1208, 1217, 0, 0, 0, 1755, 1757, 1759, - 1761, 1763, 0, 1766, 1776, 1776, 1772, 0, 1767, 0, - 1769, 0, 1745, 1514, 0, 1549, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 847, 0, 0, 1617, 1618, - 0, 0, 1622, 0, 1624, 1625, 1626, 1628, 0, 0, - 0, 1632, 0, 1671, 1692, 1675, 1678, 0, 1682, 0, - 1684, 1686, 1687, 1688, 0, 841, 841, 0, 0, 1588, - 1588, 1588, 0, 0, 0, 0, 1588, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1533, 0, - 1534, 1535, 0, 0, 0, 936, 811, 0, 0, 0, - 0, 0, 1215, 0, 91, 0, 0, 0, 0, 96, - 0, 0, 76, 344, 332, 334, 0, 326, 0, 1179, - 0, 0, 0, 0, 0, 1016, 1017, 1019, 0, 1022, - 1023, 1024, 1028, 834, 0, 834, 1073, 1885, 536, 0, - 0, 1122, 0, 1092, 0, 0, 0, -2, 0, 0, - 1174, 0, 0, 0, 1227, 0, 0, 0, 729, 733, - 0, 23, 835, 0, 605, 603, 0, 607, 0, 608, - 660, 616, 617, 901, 640, 641, 0, 0, 901, 660, - 660, 651, 663, 672, 0, 673, 1365, 1227, 0, 0, - 1187, 1293, 1261, 460, 0, 1378, 1379, 500, 0, 1385, - 1394, 1178, 1456, 0, 1394, 0, 0, 1396, 1397, 0, - 0, 0, 0, 483, 484, 0, 469, 0, 0, 0, - 0, 0, 0, 468, 0, 0, 510, 0, 0, 0, - 0, 0, 1886, 1885, 1885, 0, 477, 478, 0, 481, - 0, 0, 0, 0, 0, 0, 0, 0, 1885, 1885, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1333, 0, 0, 0, 0, 0, 0, 0, 0, - 1349, 1350, 0, 1073, 1885, 0, 0, 0, 0, 536, - 1117, 1117, 1090, 1108, 0, 446, 447, 507, 0, 0, - 0, 0, 0, 0, 0, 942, 0, 0, 0, 941, - 0, 0, 0, 0, 0, 0, 0, 834, 977, 0, - 979, 980, 954, -2, 0, 914, 959, 1740, 0, 271, - 272, 0, 0, 277, 295, 297, 269, 0, 0, 0, - 296, 298, 302, 303, 361, 364, 366, 853, 0, 0, - 1251, 0, 1029, 1030, 1032, 1033, 0, -2, -2, -2, + 1825, 1868, 1868, 1871, 1871, 1868, 0, 428, 426, 427, + 1737, 0, 0, 0, 0, 782, 786, 1360, 0, 0, + 0, 838, -2, 0, 0, 684, 389, 1420, 0, 0, + 393, 0, 394, 0, 0, 396, 0, 0, 0, 417, + 0, 420, 404, 405, 406, 407, 400, 0, 181, 0, + 380, 381, 0, 0, 347, 0, 0, 0, 535, 0, + 0, 0, 0, 0, 0, 212, 208, 216, 219, 229, + 236, 0, 248, 250, 253, 209, 217, 222, 223, 230, + 251, 210, 213, 214, 218, 252, 254, 211, 231, 235, + 249, 233, 238, 241, 242, 247, 0, 182, 0, 0, + 0, 0, 0, 1747, 0, 0, 1780, 1781, 1782, 1783, + 1784, 1785, 1786, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -2, 1741, 0, 0, 1507, 1508, 1509, 1510, + 0, 1514, 0, 1544, 0, 0, 0, 0, 0, 0, + 1801, 1805, 0, 1737, 1737, 0, 1737, 1733, 0, 0, + 0, 0, 0, 0, 1737, 1669, 0, 0, 1671, 1687, + 0, 0, 1673, 1674, 0, 1677, 1678, 1737, 0, 1737, + 1682, 1737, 1737, 1737, 1665, 1666, 0, 1733, 1733, 1733, + 1733, 0, 0, 1733, 1733, 1733, 1733, 1733, 1733, 1733, + 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 0, 0, + 0, 0, 833, 0, 839, 0, -2, 0, 857, 859, + 861, 862, 864, 865, 867, 868, 870, 871, 818, 0, + 0, 105, 0, 0, 0, 0, 0, 0, 71, 73, + 0, 0, 0, 0, 0, 0, 333, 0, 338, 324, + 2050, 0, 323, 0, 0, 0, 0, 0, 1007, 0, + 0, 1175, 1175, 1175, 1044, 0, 0, 0, 0, 0, + 0, 0, 0, 1175, 1175, 1175, 1175, 0, 1193, 0, + 0, 0, 741, 740, 0, 827, 0, 0, 70, 595, + 596, 597, 898, 0, 0, 599, 600, 0, 601, 0, + 0, 612, 660, 660, 618, 619, 614, 613, 666, 667, + 663, 0, 663, 663, 898, 0, 637, 638, 639, 660, + 660, 645, 834, 0, 646, 647, 663, 0, 668, 669, + 898, 0, 0, 898, 898, 0, 655, 656, 658, 660, + 0, 0, 1175, 0, 676, 614, 614, 1880, 1881, 0, + 0, 1184, 0, 0, 0, 0, 679, 0, 0, 0, + 444, 445, 0, 0, 742, 0, 266, 270, 0, 273, + 0, 2058, 0, 2058, 0, 0, 280, 0, 0, 0, + 0, 0, 0, 310, 311, 0, 0, 0, 0, 301, + 304, 1354, 1355, 1131, 1132, 305, 306, 359, 360, 0, + 833, 856, 858, 852, 853, 854, 0, 72, 0, 0, + 0, 0, 0, 534, 0, 0, 0, 0, 0, 717, + 0, 1023, 719, 0, 0, 0, 0, 0, 906, 900, + 902, 978, 141, 876, 8, 126, 123, 0, 19, 0, + 0, 19, 19, 0, 19, 315, 0, 1877, 1875, 1876, + 1810, 1862, 0, 1836, 0, 1837, 1838, 1839, 1850, 1851, + 0, 0, 1832, 0, 1833, 1834, 1835, 1826, 0, 1827, + 1828, 0, 1829, 1830, 313, 425, 0, 0, 1738, 1011, + 0, 760, 774, 755, 0, 763, 0, 0, 1362, 0, + 0, 0, 0, 743, 774, 745, 0, 763, 833, 810, + 0, 788, 0, 0, 390, 0, 401, 395, 0, 402, + 397, 398, 0, 0, 419, 421, 422, 423, 408, 409, + 681, 376, 377, 368, 369, 370, 371, 372, 373, 374, + 375, 0, 0, 379, 151, 0, 348, 349, 0, 0, + 0, 195, 196, 197, 198, 199, 200, 202, 186, 706, + 708, 1123, 1135, 0, 1126, 0, 205, 246, 178, 0, + 0, 0, 1742, 1743, 1744, 1745, 1746, 1751, 0, 1753, + 1755, 1757, 1759, 0, 1777, -2, -2, 1489, 1490, 1491, + 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1762, + 1775, 1776, 0, 0, 0, 0, 0, 0, 1773, 1773, + 1768, 0, 1527, 1356, 1357, 1505, 0, 0, 1541, 1545, + 0, 0, 0, 0, 0, 0, 1158, 1861, 0, 142, + 1732, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, + 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, + 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, + 0, 0, 1741, 0, 0, 0, 1734, 1735, 0, 0, + 0, 1624, 0, 0, 1630, 1631, 1632, 0, 769, 0, + 1697, 1670, 1688, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 930, 932, 0, 778, 780, 781, 807, 788, 814, + 0, 0, 0, 101, 106, 0, 1214, 0, 0, 0, + 0, 0, 0, 0, 74, 1188, 75, 1190, 342, 343, + 0, 0, 337, 325, 2050, 327, 0, 0, 0, 0, + 0, -2, 0, 0, 0, 0, 0, 1059, 1060, 532, + 1117, 0, 0, 0, 1133, 1162, 1171, 0, 0, 0, + 0, 0, 1220, 1045, 1050, 1051, 1052, 1046, 1047, 1053, + 1054, 0, 829, 0, 0, 947, 598, 661, 662, 899, + 602, 0, 0, 609, 2013, 614, 898, 898, 621, 615, + 622, 665, 623, 624, 625, 663, 898, 898, 835, 660, + 663, 648, 664, 663, 1362, 652, 0, 659, 1362, 677, + 1362, 0, 675, 629, 630, 1222, 831, 442, 443, 448, + 450, 0, 499, 499, 499, 482, 499, 0, 0, 470, + 1882, 0, 0, 0, 0, 479, 1882, 0, 0, 1882, + 1882, 1882, 1882, 1882, 1882, 1882, 0, 0, 1882, 1882, + 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 0, + 1882, 1882, 1882, 1882, 1882, 1339, 1882, 0, 498, 1185, + 489, 490, 491, 492, 497, 0, 0, 527, 0, 0, + 1058, 0, 532, 0, 0, 1100, 0, 0, 911, 0, + 912, 913, 914, 909, 949, 973, 973, 0, 973, 953, + 1362, 0, 0, 0, 278, 279, 267, 0, 268, 0, + 0, 281, 282, 0, 284, 285, 286, 293, 1950, 2029, + 288, 290, 0, 0, 294, 307, 308, 309, 0, 0, + 299, 300, 0, 0, 362, 363, 365, 0, 788, 1189, + 703, 1358, 704, 705, 709, 0, 0, 712, 713, 714, + 715, 716, 1025, 0, 0, 1109, 1110, 1111, 1112, 898, + 0, 907, 0, 903, 979, 0, 981, 0, 0, 124, + 19, 0, 117, 114, 0, 0, 0, 0, 0, 1857, + 1806, 1878, 0, 0, 0, 1859, 0, 0, 0, 0, + 0, 107, 790, 750, 0, 754, 771, 0, 775, 0, + 0, 767, 759, 764, 0, 0, 784, 751, 1361, 0, + 0, 0, 0, 744, 0, 0, 749, 788, 0, 811, + 840, 841, 844, 1421, 0, 403, 399, 418, 0, 0, + 0, 0, 189, 1120, 0, 190, 194, 184, 0, 0, + 0, 1125, 0, 1122, 1127, 0, 204, 0, 0, 179, + 180, 1205, 1214, 0, 0, 0, 1752, 1754, 1756, 1758, + 1760, 0, 1763, 1773, 1773, 1769, 0, 1764, 0, 1766, + 0, 1742, 1511, 0, 1546, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 844, 0, 0, 1614, 1615, 0, + 0, 1619, 0, 1621, 1622, 1623, 1625, 0, 0, 0, + 1629, 0, 1668, 1689, 1672, 1675, 0, 1679, 0, 1681, + 1683, 1684, 1685, 0, 838, 838, 0, 0, 1585, 1585, + 1585, 0, 0, 0, 0, 1585, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531, + 1532, 0, 0, 0, 933, 808, 0, 0, 0, 0, + 0, 1212, 0, 91, 0, 0, 0, 0, 96, 0, + 0, 76, 344, 332, 334, 0, 326, 0, 1176, 0, + 0, 0, 0, 0, 1013, 1014, 1016, 0, 1019, 1020, + 1021, 1025, 831, 0, 831, 1070, 1882, 536, 0, 0, + 1119, 0, 1089, 0, 0, 0, -2, 0, 0, 1171, + 0, 0, 0, 1224, 0, 0, 0, 728, 732, 23, + 832, 0, 605, 603, 0, 607, 0, 608, 660, 616, + 617, 898, 640, 641, 0, 0, 898, 660, 660, 651, + 663, 672, 0, 673, 1362, 1224, 0, 0, 1184, 1290, + 1258, 460, 0, 1375, 1376, 500, 0, 1382, 1391, 1175, + 1453, 0, 1391, 0, 0, 1393, 1394, 0, 0, 0, + 0, 483, 484, 0, 469, 0, 0, 0, 0, 0, + 0, 468, 0, 0, 510, 0, 0, 0, 0, 0, + 1883, 1882, 1882, 0, 477, 478, 0, 481, 0, 0, + 0, 0, 0, 0, 0, 0, 1882, 1882, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1330, + 0, 0, 0, 0, 0, 0, 0, 0, 1346, 1347, + 0, 1070, 1882, 0, 0, 0, 0, 536, 1114, 1114, + 1087, 1105, 0, 446, 447, 507, 0, 0, 0, 0, + 0, 0, 0, 939, 0, 0, 0, 938, 0, 0, + 0, 0, 0, 0, 0, 831, 974, 0, 976, 977, + 951, -2, 0, 911, 956, 1737, 0, 271, 272, 0, + 0, 277, 295, 297, 269, 0, 0, 0, 296, 298, + 302, 303, 361, 364, 366, 850, 0, 0, 1248, 0, + 1026, 1027, 1029, 1030, 0, -2, -2, -2, -2, -2, + -2, -2, -2, -2, -2, -2, -2, -2, 1934, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - 1937, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, 1027, 720, 892, 904, 911, 983, 985, 142, - 907, 0, 127, 19, 126, 118, 119, 0, 19, 0, - 0, 0, 0, 1870, 1869, 1855, 0, 1856, 1867, 1872, - 0, 1875, 0, 429, 797, 0, 0, 777, 779, 0, - 0, 777, 0, 0, 786, 0, 754, 0, 0, 0, - 0, 0, 0, 777, 853, 793, 0, 850, 848, 849, - 0, 0, 682, 152, 424, 0, 0, 0, 0, 0, - 707, 0, 1127, 186, 0, 0, 206, 0, 0, 0, - 1217, 1212, 1739, 1768, 1770, 0, 1777, 1773, 1509, 1518, - 1545, 0, 0, 1551, 1563, 1563, 0, 0, 0, 1554, - 1868, 1868, 1557, 1864, 1866, 1864, 1563, 1563, 0, 1162, - 0, 1163, 847, 143, 0, 0, 1623, 0, 0, 0, - 773, 0, 0, 0, 1584, 1586, 1588, 1588, 1595, 1589, - 1596, 1597, 1588, 1588, 1588, 1588, 1602, 1588, 1588, 1588, - 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1582, 0, - 0, 1798, 1799, 782, 0, 0, 824, 825, 826, 827, - 828, 0, 0, 61, 61, 1217, 0, 100, 92, 0, - 0, 0, 0, 0, 336, 0, 77, 78, 80, 0, - 0, 0, 0, 0, 0, 0, 90, 0, 0, 1021, - 0, 0, 0, 1371, 0, 1077, 1074, 1075, 1076, 0, - 1117, 537, 538, 539, 540, 0, 0, 0, 1121, 0, - 0, 1085, 0, 0, 0, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, -2, 1182, 0, 0, 0, 1371, 1201, - 0, 0, 1206, 1371, 1371, 0, 1235, 0, 1224, 785, - 0, -2, 0, 0, 731, 0, 0, 0, 951, 604, - 610, 901, 634, 839, 840, 1365, 901, 901, 660, 678, - 674, 1235, 1226, 0, 449, 499, 0, 1281, 0, 0, - 1287, 0, 1294, 453, 0, 501, 0, 1384, 1412, 1395, - 1412, 1457, 1412, 1412, 1178, 0, 501, 0, 0, 471, - 0, 0, 0, 0, 0, 467, 504, 847, 454, 456, - 457, 458, 508, 509, 511, 0, 513, 514, 473, 485, - 486, 487, 488, 0, 0, 0, 480, 493, 494, 495, - 496, 455, 1310, 1311, 1312, 1315, 1316, 1317, 1318, 0, - 0, 1321, 1322, 1323, 1324, 1325, 1409, 1410, 1411, 1326, - 1327, 1328, 1329, 1330, 1331, 1332, 1351, 1352, 1353, 1354, - 1355, 1356, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, - 0, 0, 1346, 0, 0, 0, 1077, 0, 0, 0, - 0, 0, 1117, 530, 0, 0, 531, 1092, 0, 1110, - 0, 1104, 1105, 0, 0, 755, 901, 354, 0, 946, - 937, 0, 921, 0, 923, 943, 924, 944, 0, 0, - 928, 0, 930, 0, 926, 927, 932, 925, 901, 913, - 953, 978, 955, 958, 960, 961, 967, 0, 0, 0, - 0, 265, 274, 275, 276, 283, 0, 556, 289, 809, - 0, 1362, 710, 711, 1252, 1253, 718, 0, 1034, 890, - 0, 0, 122, 125, 0, 120, 0, 0, 0, 0, - 112, 110, 1863, 0, 0, 799, 166, 0, 0, 0, - 775, 0, 780, 777, 761, 771, 760, 768, 769, 788, - 1366, 1367, 1368, 1369, 0, 777, 750, 749, 812, 797, - 845, 846, 0, 1425, 391, 0, 1124, 186, 191, 192, - 193, 187, 185, 1131, 0, 1133, 0, 1210, 0, 0, - 1774, 1550, 1519, 1552, 1564, 1565, 1553, 0, 1521, 1522, - 1555, 1556, 1558, 1559, 1560, 1561, 1562, 1523, 0, 1164, - 1619, 0, 1621, 1629, 1630, 0, 1679, 1683, 0, 0, - 0, 0, 0, 1593, 1594, 1598, 1599, 1600, 1601, 1603, - 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, - 841, 1583, 0, 0, 0, 0, 0, 0, 0, 822, - 0, 0, 0, 63, 0, 63, 1216, 1218, 0, 981, - 0, 0, 97, 0, 0, 79, 81, 0, 2017, 0, - 0, 0, 0, 88, 1009, 1012, 1018, 1020, 0, 0, - 0, 1372, 1373, 1375, 1376, 1377, 0, 1045, 0, 0, - 1065, 1066, 1067, 1079, 0, 542, 543, 0, 0, 0, - 555, 551, 552, 553, 533, 1116, 1099, 0, 0, 1088, - 0, 0, 1098, 0, 1183, 1885, 1885, 1885, 0, 0, - 1295, 1885, 1885, 0, 1203, 1205, 0, 0, 1299, 1238, - 0, 0, 1229, 0, 976, 0, 0, 901, 730, 733, - 734, 785, 833, 611, 649, 653, 650, 901, 1238, 441, - 1259, 0, 0, 0, 0, 0, 1291, 0, 0, 1263, - 0, 472, 502, 0, -2, 0, 1413, 0, 1398, 1413, - 0, 0, 1412, 0, 461, 501, 0, 0, 0, 515, - 520, 521, 0, 517, 518, 1452, 0, 519, 0, 506, - 0, 512, 1313, 1314, 0, 1319, 1320, 0, 1344, 0, - 0, 0, 452, 522, 0, 0, 0, 523, 524, 529, - 1118, 1119, 1085, 0, 1099, 0, 1109, 0, 1106, 1107, - 841, 0, 0, 918, 947, 0, 0, 919, 0, 920, - 922, 945, 0, 939, 929, 931, 353, 962, 0, 0, - 964, 965, 966, 957, 291, 854, 1031, 0, 875, 0, - 0, 908, 0, 19, 0, 0, 115, 1873, 1876, 801, - 0, 798, 167, 0, 0, 0, 0, 765, 776, 759, - 1370, 748, 799, 851, 852, 188, 183, 1132, 1220, 0, - 1211, 0, 1476, 1532, 0, 1631, 0, 1588, 1585, 1588, - 1587, 1579, 0, 1536, 0, 1538, 1539, 1540, 0, 1542, - 1543, 0, 820, 0, 59, 0, 62, 60, 0, 99, - 93, 0, 0, 0, 82, 0, 0, 0, 0, 0, - 0, 0, 1051, 1299, 0, 1051, 1078, 1064, 0, 0, - 544, 545, 0, 548, 554, 1080, 0, 0, 1082, 1083, - 1084, 0, 0, 1096, 0, 0, 0, 0, 1175, 1189, - 0, 0, 0, -2, 0, -2, 1200, 0, 1244, 0, - 1236, 0, 1228, 0, 1231, 901, 901, -2, 727, 732, - 0, 976, 654, 1244, 1261, 0, 1282, 0, 0, 0, - 0, 0, 0, 0, 1262, 0, 1275, 503, 1414, -2, - 1428, 1430, 0, 1188, 1433, 1434, 0, 0, 0, 0, - 0, 0, 1483, 1442, 0, 0, 1446, 1447, 1448, 0, - 0, 1451, 0, 1792, 1793, 0, 1455, 0, 0, 0, - 0, 0, 0, 0, 1392, 462, 463, 0, 465, 466, - 1885, 1453, 505, 459, 1885, 475, 1343, 1347, 1348, 1345, - 528, 525, 526, 1088, 1091, 1102, 1111, 756, 836, 355, - 356, 948, 0, 938, 940, 971, 968, 0, 0, 1035, - 891, 899, 2246, 2248, 2245, 116, 121, 0, 0, 803, - 0, 800, 0, 794, 796, 177, 764, 801, 137, 169, - 0, 0, 1520, 0, 0, 0, 1620, 1670, 1591, 1592, - 0, 1580, 0, 1574, 1575, 1576, 1581, 0, 0, 823, - 818, 64, 95, 0, 98, 68, 83, 0, 84, 0, - 0, 0, 0, 1037, 1044, 1058, 1194, 1374, 1043, 0, - 0, 541, 546, 0, 549, 550, 1100, 1099, 0, 1086, - 1087, 0, 1094, 0, 0, 1184, 1185, 1186, 1296, 1297, - 1298, 1254, 1202, 0, -2, 1307, 0, 0, 1198, 1220, - 1254, 0, 0, 1232, 0, 1239, 0, 1237, 1230, 841, - 728, 901, 1241, 451, 1293, 1283, 0, 1285, 0, 0, - 0, 0, 1264, -2, 0, 1429, 1431, 1432, 1435, 1436, - 1437, 1488, 1489, 1490, 0, 0, 1440, 1485, 1486, 1487, - 1441, 0, 0, 0, 0, 0, 1790, 1791, 1481, 0, - 0, 1399, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, - 1400, 0, 0, 0, 1391, 1393, 464, 0, 0, 1885, - 1101, 352, 0, 0, 972, 974, 969, 970, 893, 0, - 0, 0, 0, 111, 113, 128, 0, 802, 168, 0, - 803, 139, 0, 160, 0, 1221, 0, 1531, 0, 0, - 0, 1590, 1577, 0, 0, 0, 0, 0, 1794, 1795, - 1796, 0, 1537, 1541, 94, 0, 66, 0, 85, 86, - 0, 0, 0, 0, 1059, 1060, 1068, 1069, 0, 1071, - 1072, 547, 1081, 1089, 1093, 1096, 0, 1148, 1256, 0, - 1204, 1187, 1309, 1885, 1207, 1256, 0, 1301, 1885, 1885, - 1222, 0, 1234, 0, 1246, 0, 1240, 836, 841, 440, - 0, 1243, 1279, 1284, 1286, 1288, 0, 1292, 1290, 1265, - -2, 0, 1273, 0, 0, 1438, 1439, 0, 0, 1689, - 1885, 0, 1471, 0, 1148, 1148, 1148, 1148, 0, 516, - 474, 0, 949, 963, 0, 900, 0, 0, 0, 0, - 0, 792, 129, 0, 138, 157, 0, 170, 171, 0, - 0, 0, 0, 1213, 0, 1479, 1480, 0, 1566, 0, - 0, 0, 1570, 1571, 1572, 1573, 65, 68, 0, 0, - 87, 0, 1036, 0, 1070, 1095, 1097, 1147, 1197, 0, - 1293, 1308, 0, 1199, 1300, 0, 0, 0, 1233, 1245, - 0, 1248, 725, 836, 1242, 1260, 0, 1289, 1266, 1274, - 0, 1269, 0, 0, 0, 1484, 0, 1445, 0, 1450, - 1459, 1472, 0, 0, 1380, 0, 1382, 0, 1386, 0, - 1388, 0, 0, 476, 973, 975, 0, 1740, 895, 896, - 0, 805, 795, 140, 144, 0, 166, 163, 0, 172, - 0, 0, 0, 0, 1209, 0, 1477, 0, 1567, 1568, - 1569, 67, 69, 89, 0, 1038, 1039, 1052, 1149, 1885, - 1885, 0, 0, 0, 1155, 1156, 1885, 1885, 1885, 1885, - 0, 1281, 1313, 1302, 1303, 1304, 1247, 726, 1280, 1268, - 0, -2, 1276, 0, 0, 1742, 1752, 1753, 1443, 1449, - 1458, 1460, 1461, 0, 1473, 1474, 1475, 1482, 1148, 1148, - 1148, 1148, 1390, 894, 0, 0, 804, 0, 131, 0, + 1024, 720, 889, 901, 908, 980, 982, 142, 904, 0, + 127, 19, 126, 118, 119, 0, 19, 0, 0, 0, + 0, 1867, 1866, 1852, 0, 1853, 1864, 1869, 0, 1872, + 0, 429, 794, 0, 0, 774, 776, 0, 0, 774, + 0, 0, 783, 0, 0, 0, 0, 0, 0, 0, + 774, 850, 790, 0, 847, 845, 846, 0, 0, 682, + 152, 424, 0, 0, 0, 0, 0, 707, 0, 1124, + 186, 0, 0, 206, 0, 0, 0, 1214, 1209, 1736, + 1765, 1767, 0, 1774, 1770, 1506, 1515, 1542, 0, 0, + 1548, 1560, 1560, 0, 0, 0, 1551, 1865, 1865, 1554, + 1861, 1863, 1861, 1560, 1560, 0, 1159, 0, 1160, 844, + 143, 0, 0, 1620, 0, 0, 0, 770, 0, 0, + 0, 1581, 1583, 1585, 1585, 1592, 1586, 1593, 1594, 1585, + 1585, 1585, 1585, 1599, 1585, 1585, 1585, 1585, 1585, 1585, + 1585, 1585, 1585, 1585, 1585, 1579, 0, 0, 1795, 1796, + 779, 0, 0, 821, 822, 823, 824, 825, 0, 0, + 61, 61, 1214, 0, 100, 92, 0, 0, 0, 0, + 0, 336, 0, 77, 78, 80, 0, 0, 0, 0, + 0, 0, 0, 90, 0, 0, 1018, 0, 0, 0, + 1368, 0, 1074, 1071, 1072, 1073, 0, 1114, 537, 538, + 539, 540, 0, 0, 0, 1118, 0, 0, 1082, 0, + 0, 0, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, + -2, 1179, 0, 0, 0, 1368, 1198, 0, 0, 1203, + 1368, 1368, 0, 1232, 0, 1221, 782, 0, -2, 0, + 0, 730, 0, 0, 948, 604, 610, 898, 634, 836, + 837, 1362, 898, 898, 660, 678, 674, 1232, 1223, 0, + 449, 499, 0, 1278, 0, 0, 1284, 0, 1291, 453, + 0, 501, 0, 1381, 1409, 1392, 1409, 1454, 1409, 1409, + 1175, 0, 501, 0, 0, 471, 0, 0, 0, 0, + 0, 467, 504, 844, 454, 456, 457, 458, 508, 509, + 511, 0, 513, 514, 473, 485, 486, 487, 488, 0, + 0, 0, 480, 493, 494, 495, 496, 455, 1307, 1308, + 1309, 1312, 1313, 1314, 1315, 0, 0, 1318, 1319, 1320, + 1321, 1322, 1406, 1407, 1408, 1323, 1324, 1325, 1326, 1327, + 1328, 1329, 1348, 1349, 1350, 1351, 1352, 1353, 1331, 1332, + 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 1343, 0, + 0, 0, 1074, 0, 0, 0, 0, 0, 1114, 530, + 0, 0, 531, 1089, 0, 1107, 0, 1101, 1102, 0, + 0, 752, 898, 354, 0, 943, 934, 0, 918, 0, + 920, 940, 921, 941, 0, 0, 925, 0, 927, 0, + 923, 924, 929, 922, 898, 910, 950, 975, 952, 955, + 957, 958, 964, 0, 0, 0, 0, 265, 274, 275, + 276, 283, 0, 556, 289, 806, 0, 1359, 710, 711, + 1249, 1250, 718, 0, 1031, 887, 0, 0, 122, 125, + 0, 120, 0, 0, 0, 0, 112, 110, 1860, 0, + 0, 796, 166, 0, 0, 0, 772, 0, 777, 774, + 758, 768, 757, 765, 766, 785, 1363, 1364, 1365, 1366, + 0, 774, 748, 747, 809, 794, 842, 843, 0, 1422, + 391, 0, 1121, 186, 191, 192, 193, 187, 185, 1128, + 0, 1130, 0, 1207, 0, 0, 1771, 1547, 1516, 1549, + 1561, 1562, 1550, 0, 1518, 1519, 1552, 1553, 1555, 1556, + 1557, 1558, 1559, 1520, 0, 1161, 1616, 0, 1618, 1626, + 1627, 0, 1676, 1680, 0, 0, 0, 0, 0, 1590, + 1591, 1595, 1596, 1597, 1598, 1600, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 838, 1580, 0, 0, + 0, 0, 0, 0, 0, 819, 0, 0, 0, 63, + 0, 63, 1213, 1215, 0, 978, 0, 0, 97, 0, + 0, 79, 81, 0, 2014, 0, 0, 0, 0, 88, + 1006, 1009, 1015, 1017, 0, 0, 0, 1369, 1370, 1372, + 1373, 1374, 0, 1042, 0, 0, 1062, 1063, 1064, 1076, + 0, 542, 543, 0, 0, 0, 555, 551, 552, 553, + 533, 1113, 1096, 0, 0, 1085, 0, 0, 1095, 0, + 1180, 1882, 1882, 1882, 0, 0, 1292, 1882, 1882, 0, + 1200, 1202, 0, 0, 1296, 1235, 0, 0, 1226, 0, + 973, 0, 0, 898, 729, 732, 733, 830, 611, 649, + 653, 650, 898, 1235, 441, 1256, 0, 0, 0, 0, + 0, 1288, 0, 0, 1260, 0, 472, 502, 0, -2, + 0, 1410, 0, 1395, 1410, 0, 0, 1409, 0, 461, + 501, 0, 0, 0, 515, 520, 521, 0, 517, 518, + 1449, 0, 519, 0, 506, 0, 512, 1310, 1311, 0, + 1316, 1317, 0, 1341, 0, 0, 0, 452, 522, 0, + 0, 0, 523, 524, 529, 1115, 1116, 1082, 0, 1096, + 0, 1106, 0, 1103, 1104, 838, 0, 0, 915, 944, + 0, 0, 916, 0, 917, 919, 942, 0, 936, 926, + 928, 353, 959, 0, 0, 961, 962, 963, 954, 291, + 851, 1028, 0, 872, 0, 0, 905, 0, 19, 0, + 0, 115, 1870, 1873, 798, 0, 795, 167, 0, 0, + 0, 0, 762, 773, 756, 1367, 746, 796, 848, 849, + 188, 183, 1129, 1217, 0, 1208, 0, 1473, 1529, 0, + 1628, 0, 1585, 1582, 1585, 1584, 1576, 0, 1533, 0, + 1535, 1536, 1537, 0, 1539, 1540, 0, 817, 0, 59, + 0, 62, 60, 0, 99, 93, 0, 0, 0, 82, + 0, 0, 0, 0, 0, 0, 0, 1048, 1296, 0, + 1048, 1075, 1061, 0, 0, 544, 545, 0, 548, 554, + 1077, 0, 0, 1079, 1080, 1081, 0, 0, 1093, 0, + 0, 0, 0, 1172, 1186, 0, 0, 0, -2, 0, + -2, 1197, 0, 1241, 0, 1233, 0, 1225, 0, 1228, + 898, 898, -2, 726, 731, 0, 654, 1241, 1258, 0, + 1279, 0, 0, 0, 0, 0, 0, 0, 1259, 0, + 1272, 503, 1411, -2, 1425, 1427, 0, 1185, 1430, 1431, + 0, 0, 0, 0, 0, 0, 1480, 1439, 0, 0, + 1443, 1444, 1445, 0, 0, 1448, 0, 1789, 1790, 0, + 1452, 0, 0, 0, 0, 0, 0, 0, 1389, 462, + 463, 0, 465, 466, 1882, 1450, 505, 459, 1882, 475, + 1340, 1344, 1345, 1342, 528, 525, 526, 1085, 1088, 1099, + 1108, 753, 833, 355, 356, 945, 0, 935, 937, 968, + 965, 0, 0, 1032, 888, 896, 2243, 2245, 2242, 116, + 121, 0, 0, 800, 0, 797, 0, 791, 793, 177, + 761, 798, 137, 169, 0, 0, 1517, 0, 0, 0, + 1617, 1667, 1588, 1589, 0, 1577, 0, 1571, 1572, 1573, + 1578, 0, 0, 820, 815, 64, 95, 0, 98, 68, + 83, 0, 84, 0, 0, 0, 0, 1034, 1041, 1055, + 1191, 1371, 1040, 0, 0, 541, 546, 0, 549, 550, + 1097, 1096, 0, 1083, 1084, 0, 1091, 0, 0, 1181, + 1182, 1183, 1293, 1294, 1295, 1251, 1199, 0, -2, 1304, + 0, 0, 1195, 1217, 1251, 0, 0, 1229, 0, 1236, + 0, 1234, 1227, 838, 727, 1238, 451, 1290, 1280, 0, + 1282, 0, 0, 0, 0, 1261, -2, 0, 1426, 1428, + 1429, 1432, 1433, 1434, 1485, 1486, 1487, 0, 0, 1437, + 1482, 1483, 1484, 1438, 0, 0, 0, 0, 0, 1787, + 1788, 1478, 0, 0, 1396, 1398, 1399, 1400, 1401, 1402, + 1403, 1404, 1405, 1397, 0, 0, 0, 1388, 1390, 464, + 0, 0, 1882, 1098, 352, 0, 0, 969, 971, 966, + 967, 890, 0, 0, 0, 0, 111, 113, 128, 0, + 799, 168, 0, 800, 139, 0, 160, 0, 1218, 0, + 1528, 0, 0, 0, 1587, 1574, 0, 0, 0, 0, + 0, 1791, 1792, 1793, 0, 1534, 1538, 94, 0, 66, + 0, 85, 86, 0, 0, 0, 0, 1056, 1057, 1065, + 1066, 0, 1068, 1069, 547, 1078, 1086, 1090, 1093, 0, + 1145, 1253, 0, 1201, 1184, 1306, 1882, 1204, 1253, 0, + 1298, 1882, 1882, 1219, 0, 1231, 0, 1243, 0, 1237, + 833, 440, 0, 1240, 1276, 1281, 1283, 1285, 0, 1289, + 1287, 1262, -2, 0, 1270, 0, 0, 1435, 1436, 0, + 0, 1686, 1882, 0, 1468, 0, 1145, 1145, 1145, 1145, + 0, 516, 474, 0, 946, 960, 0, 897, 0, 0, + 0, 0, 0, 789, 129, 0, 138, 157, 0, 170, + 171, 0, 0, 0, 0, 1210, 0, 1476, 1477, 0, + 1563, 0, 0, 0, 1567, 1568, 1569, 1570, 65, 68, + 0, 0, 87, 0, 1033, 0, 1067, 1092, 1094, 1144, + 1194, 0, 1290, 1305, 0, 1196, 1297, 0, 0, 0, + 1230, 1242, 0, 1245, 725, 1239, 1257, 0, 1286, 1263, + 1271, 0, 1266, 0, 0, 0, 1481, 0, 1442, 0, + 1447, 1456, 1469, 0, 0, 1377, 0, 1379, 0, 1383, + 0, 1385, 0, 0, 476, 970, 972, 0, 1737, 892, + 893, 0, 802, 792, 140, 144, 0, 166, 163, 0, + 172, 0, 0, 0, 0, 1206, 0, 1474, 0, 1564, + 1565, 1566, 67, 69, 89, 0, 1035, 1036, 1049, 1146, + 1882, 1882, 0, 0, 0, 1152, 1153, 1882, 1882, 1882, + 1882, 0, 1278, 1310, 1299, 1300, 1301, 1244, 1277, 1265, + 0, -2, 1273, 0, 0, 1739, 1749, 1750, 1440, 1446, + 1455, 1457, 1458, 0, 1470, 1471, 1472, 1479, 1145, 1145, + 1145, 1145, 1387, 891, 0, 0, 801, 0, 131, 0, 0, 161, 162, 164, 0, 173, 0, 175, 176, 0, - 0, 1578, 1040, 0, 0, 1152, 1153, 0, 0, 0, - 0, 0, 1257, 0, 1259, 1270, -2, 0, 1278, 0, - 1444, 1462, 0, 1463, 0, 0, 0, 1381, 1383, 1387, - 1389, 1740, 897, 806, 1219, 0, 145, 0, 147, 149, - 150, 1415, 158, 159, 165, 174, 0, 0, 1025, 1041, - 0, 1150, 1151, 1154, 1157, 1158, 1159, 1160, 0, 1261, - 1277, 1743, 1464, 1466, 1467, 0, 0, 1465, 0, 132, - 133, 0, 146, 0, 0, 1214, 1478, 1042, 1258, 1255, - 1468, 1470, 1469, 898, 0, 0, 148, 1416, 134, 135, - 136, 0, 1417, + 0, 1575, 1037, 0, 0, 1149, 1150, 0, 0, 0, + 0, 0, 1254, 0, 1256, 1267, -2, 0, 1275, 0, + 1441, 1459, 0, 1460, 0, 0, 0, 1378, 1380, 1384, + 1386, 1737, 894, 803, 1216, 0, 145, 0, 147, 149, + 150, 1412, 158, 159, 165, 174, 0, 0, 1022, 1038, + 0, 1147, 1148, 1151, 1154, 1155, 1156, 1157, 0, 1258, + 1274, 1740, 1461, 1463, 1464, 0, 0, 1462, 0, 132, + 133, 0, 146, 0, 0, 1211, 1475, 1039, 1255, 1252, + 1465, 1467, 1466, 895, 0, 0, 148, 1413, 134, 135, + 136, 0, 1414, } var yyTok1 = [...]int{ @@ -16108,30 +16043,9 @@ yydefault: } yyVAL.union = yyLOCAL case 726: - yyDollar = yyS[yypt-12 : yypt+1] - var yyLOCAL tree.Statement -//line mysql_sql.y:4839 - { - // Single-Table Syntax - t := &tree.AliasedTableExpr{ - Expr: yyDollar[7].tableNameUnion(), - As: tree.AliasClause{ - Alias: tree.Identifier(yyDollar[9].str), - }, - } - yyLOCAL = &tree.Delete{ - Tables: tree.TableExprs{t}, - Where: yyDollar[10].whereUnion(), - OrderBy: yyDollar[11].orderByUnion(), - Limit: yyDollar[12].limitUnion(), - IsCdc: true, - } - } - yyVAL.union = yyLOCAL - case 727: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:4856 +//line mysql_sql.y:4839 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -16141,10 +16055,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 728: + case 727: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:4869 +//line mysql_sql.y:4852 { // Multiple-Table Syntax yyLOCAL = &tree.Delete{ @@ -16154,36 +16068,36 @@ yydefault: } } yyVAL.union = yyLOCAL - case 729: + case 728: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:4880 +//line mysql_sql.y:4863 { yyLOCAL = tree.TableExprs{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 730: + case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExprs -//line mysql_sql.y:4884 +//line mysql_sql.y:4867 { yyLOCAL = append(yyDollar[1].tableExprsUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 731: + case 730: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4890 +//line mysql_sql.y:4873 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, nil) } yyVAL.union = yyLOCAL - case 732: + case 731: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:4896 +//line mysql_sql.y:4879 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) @@ -16191,35 +16105,35 @@ yydefault: yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, nil) } yyVAL.union = yyLOCAL - case 733: + case 732: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4905 +//line mysql_sql.y:4888 { } - case 734: + case 733: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:4907 +//line mysql_sql.y:4890 { } - case 735: + case 734: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4910 +//line mysql_sql.y:4893 { } - case 740: + case 739: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4919 +//line mysql_sql.y:4902 { } - case 742: + case 741: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:4923 +//line mysql_sql.y:4906 { } - case 744: + case 743: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:4928 +//line mysql_sql.y:4911 { rep := yyDollar[4].replaceUnion() rep.Table = yyDollar[2].tableExprUnion() @@ -16227,22 +16141,10 @@ yydefault: yyLOCAL = rep } yyVAL.union = yyLOCAL - case 745: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL tree.Statement -//line mysql_sql.y:4935 - { - rep := yyDollar[5].replaceUnion() - rep.Table = yyDollar[3].tableExprUnion() - rep.PartitionNames = yyDollar[4].identifierListUnion() - rep.IsCdc = true - yyLOCAL = rep - } - yyVAL.union = yyLOCAL - case 746: + case 744: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4945 +//line mysql_sql.y:4920 { vc := tree.NewValuesClause(yyDollar[2].rowsExprsUnion()) yyLOCAL = &tree.Replace{ @@ -16250,20 +16152,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 747: + case 745: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4952 +//line mysql_sql.y:4927 { yyLOCAL = &tree.Replace{ Rows: yyDollar[1].selectUnion(), } } yyVAL.union = yyLOCAL - case 748: + case 746: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4958 +//line mysql_sql.y:4933 { vc := tree.NewValuesClause(yyDollar[5].rowsExprsUnion()) yyLOCAL = &tree.Replace{ @@ -16272,10 +16174,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 749: + case 747: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4966 +//line mysql_sql.y:4941 { vc := tree.NewValuesClause(yyDollar[4].rowsExprsUnion()) yyLOCAL = &tree.Replace{ @@ -16283,10 +16185,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 750: + case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4973 +//line mysql_sql.y:4948 { yyLOCAL = &tree.Replace{ Columns: yyDollar[2].identifierListUnion(), @@ -16294,10 +16196,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 751: + case 749: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Replace -//line mysql_sql.y:4980 +//line mysql_sql.y:4955 { if yyDollar[2].assignmentsUnion() == nil { yylex.Error("the set list of replace can not be empty") @@ -16316,10 +16218,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 752: + case 750: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:5000 +//line mysql_sql.y:4975 { ins := yyDollar[4].insertUnion() ins.Table = yyDollar[2].tableExprUnion() @@ -16328,10 +16230,10 @@ yydefault: yyLOCAL = ins } yyVAL.union = yyLOCAL - case 753: + case 751: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:5008 +//line mysql_sql.y:4983 { ins := yyDollar[5].insertUnion() ins.Table = yyDollar[3].tableExprUnion() @@ -16340,39 +16242,26 @@ yydefault: yyLOCAL = ins } yyVAL.union = yyLOCAL - case 754: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL tree.Statement -//line mysql_sql.y:5016 - { - ins := yyDollar[5].insertUnion() - ins.Table = yyDollar[3].tableExprUnion() - ins.PartitionNames = yyDollar[4].identifierListUnion() - ins.OnDuplicateUpdate = yyDollar[6].updateExprsUnion() - ins.IsCdc = true - yyLOCAL = ins - } - yyVAL.union = yyLOCAL - case 755: + case 752: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5027 +//line mysql_sql.y:4993 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 756: + case 753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5031 +//line mysql_sql.y:4997 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 757: + case 754: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5037 +//line mysql_sql.y:5003 { vc := tree.NewValuesClause(yyDollar[2].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -16380,20 +16269,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 758: + case 755: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5044 +//line mysql_sql.y:5010 { yyLOCAL = &tree.Insert{ Rows: yyDollar[1].selectUnion(), } } yyVAL.union = yyLOCAL - case 759: + case 756: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5050 +//line mysql_sql.y:5016 { vc := tree.NewValuesClause(yyDollar[5].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -16402,10 +16291,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 760: + case 757: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5058 +//line mysql_sql.y:5024 { vc := tree.NewValuesClause(yyDollar[4].rowsExprsUnion()) yyLOCAL = &tree.Insert{ @@ -16413,10 +16302,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 761: + case 758: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5065 +//line mysql_sql.y:5031 { yyLOCAL = &tree.Insert{ Columns: yyDollar[2].identifierListUnion(), @@ -16424,10 +16313,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 762: + case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Insert -//line mysql_sql.y:5072 +//line mysql_sql.y:5038 { if yyDollar[2].assignmentsUnion() == nil { yylex.Error("the set list of insert can not be empty") @@ -16446,58 +16335,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 763: + case 760: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:5091 +//line mysql_sql.y:5057 { yyLOCAL = []*tree.UpdateExpr{} } yyVAL.union = yyLOCAL - case 764: + case 761: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:5095 +//line mysql_sql.y:5061 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 765: + case 762: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.UpdateExprs -//line mysql_sql.y:5099 +//line mysql_sql.y:5065 { yyLOCAL = []*tree.UpdateExpr{nil} } yyVAL.union = yyLOCAL - case 766: + case 763: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:5104 +//line mysql_sql.y:5070 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 767: + case 764: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:5108 +//line mysql_sql.y:5074 { yyLOCAL = []*tree.Assignment{yyDollar[1].assignmentUnion()} } yyVAL.union = yyLOCAL - case 768: + case 765: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Assignment -//line mysql_sql.y:5112 +//line mysql_sql.y:5078 { yyLOCAL = append(yyDollar[1].assignmentsUnion(), yyDollar[3].assignmentUnion()) } yyVAL.union = yyLOCAL - case 769: + case 766: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Assignment -//line mysql_sql.y:5118 +//line mysql_sql.y:5084 { yyLOCAL = &tree.Assignment{ Column: tree.Identifier(yyDollar[1].str), @@ -16505,155 +16394,155 @@ yydefault: } } yyVAL.union = yyLOCAL - case 770: + case 767: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5127 +//line mysql_sql.y:5093 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 771: + case 768: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5131 +//line mysql_sql.y:5097 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 772: + case 769: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:5137 +//line mysql_sql.y:5103 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) } - case 773: + case 770: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:5141 +//line mysql_sql.y:5107 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) } - case 774: + case 771: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5147 +//line mysql_sql.y:5113 { yyLOCAL = []tree.Exprs{yyDollar[1].exprsUnion()} } yyVAL.union = yyLOCAL - case 775: + case 772: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5151 +//line mysql_sql.y:5117 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 776: + case 773: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5157 +//line mysql_sql.y:5123 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 777: + case 774: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:5162 +//line mysql_sql.y:5128 { } - case 779: + case 776: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5166 +//line mysql_sql.y:5132 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 781: + case 778: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5173 +//line mysql_sql.y:5139 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 782: + case 779: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:5177 +//line mysql_sql.y:5143 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 784: + case 781: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:5184 +//line mysql_sql.y:5150 { yyLOCAL = &tree.DefaultVal{} } yyVAL.union = yyLOCAL - case 785: + case 782: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5189 +//line mysql_sql.y:5155 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 786: + case 783: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5193 +//line mysql_sql.y:5159 { yyLOCAL = yyDollar[3].identifierListUnion() } yyVAL.union = yyLOCAL - case 787: + case 784: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5199 +//line mysql_sql.y:5165 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].cstrUnion().Compare())} } yyVAL.union = yyLOCAL - case 788: + case 785: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5203 +//line mysql_sql.y:5169 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].cstrUnion().Compare())) } yyVAL.union = yyLOCAL - case 789: + case 786: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5209 +//line mysql_sql.y:5175 { yyLOCAL = yyDollar[2].tableNameUnion() } yyVAL.union = yyLOCAL - case 790: + case 787: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:5213 +//line mysql_sql.y:5179 { yyLOCAL = yyDollar[1].tableNameUnion() } yyVAL.union = yyLOCAL - case 791: + case 788: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:5218 +//line mysql_sql.y:5184 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 792: + case 789: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.ExportParam -//line mysql_sql.y:5222 +//line mysql_sql.y:5188 { yyLOCAL = &tree.ExportParam{ Outfile: true, @@ -16666,10 +16555,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 793: + case 790: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5235 +//line mysql_sql.y:5201 { yyLOCAL = &tree.Fields{ Terminated: &tree.Terminated{ @@ -16681,10 +16570,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 794: + case 791: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5246 +//line mysql_sql.y:5212 { yyLOCAL = &tree.Fields{ Terminated: &tree.Terminated{ @@ -16696,10 +16585,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 795: + case 792: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5257 +//line mysql_sql.y:5223 { str := yyDollar[7].str if str != "\\" && len(str) > 1 { @@ -16722,10 +16611,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 796: + case 793: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fields -//line mysql_sql.y:5279 +//line mysql_sql.y:5245 { str := yyDollar[4].str if str != "\\" && len(str) > 1 { @@ -16748,10 +16637,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 797: + case 794: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:5302 +//line mysql_sql.y:5268 { yyLOCAL = &tree.Lines{ TerminatedBy: &tree.Terminated{ @@ -16760,10 +16649,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 798: + case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Lines -//line mysql_sql.y:5310 +//line mysql_sql.y:5276 { yyLOCAL = &tree.Lines{ TerminatedBy: &tree.Terminated{ @@ -16772,18 +16661,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 799: + case 796: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5319 +//line mysql_sql.y:5285 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 800: + case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5323 +//line mysql_sql.y:5289 { str := strings.ToLower(yyDollar[2].str) if str == "true" { @@ -16796,131 +16685,131 @@ yydefault: } } yyVAL.union = yyLOCAL - case 801: + case 798: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:5336 +//line mysql_sql.y:5302 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 802: + case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:5340 +//line mysql_sql.y:5306 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 803: + case 800: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5345 +//line mysql_sql.y:5311 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 804: + case 801: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5349 +//line mysql_sql.y:5315 { yyLOCAL = yyDollar[3].strsUnion() } yyVAL.union = yyLOCAL - case 805: + case 802: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5356 +//line mysql_sql.y:5322 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].cstrUnion().Compare()) } yyVAL.union = yyLOCAL - case 806: + case 803: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:5361 +//line mysql_sql.y:5327 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].cstrUnion().Compare()) } yyVAL.union = yyLOCAL - case 808: + case 805: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5368 +//line mysql_sql.y:5334 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion()} } yyVAL.union = yyLOCAL - case 809: + case 806: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5374 +//line mysql_sql.y:5340 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), TimeWindow: yyDollar[2].timeWindowUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), SelectLockInfo: yyDollar[6].selectLockInfoUnion()} } yyVAL.union = yyLOCAL - case 810: + case 807: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5378 +//line mysql_sql.y:5344 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), TimeWindow: yyDollar[2].timeWindowUnion(), OrderBy: yyDollar[3].orderByUnion(), Ep: yyDollar[4].exportParmUnion()} } yyVAL.union = yyLOCAL - case 811: + case 808: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5382 +//line mysql_sql.y:5348 { yyLOCAL = &tree.Select{Select: yyDollar[1].selectStatementUnion(), TimeWindow: yyDollar[2].timeWindowUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion()} } yyVAL.union = yyLOCAL - case 812: + case 809: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5386 +//line mysql_sql.y:5352 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), TimeWindow: yyDollar[3].timeWindowUnion(), OrderBy: yyDollar[4].orderByUnion(), Limit: yyDollar[5].limitUnion(), Ep: yyDollar[6].exportParmUnion(), SelectLockInfo: yyDollar[7].selectLockInfoUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 813: + case 810: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5390 +//line mysql_sql.y:5356 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Ep: yyDollar[4].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 814: + case 811: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Select -//line mysql_sql.y:5394 +//line mysql_sql.y:5360 { yyLOCAL = &tree.Select{Select: yyDollar[2].selectStatementUnion(), OrderBy: yyDollar[3].orderByUnion(), Limit: yyDollar[4].limitUnion(), Ep: yyDollar[5].exportParmUnion(), With: yyDollar[1].withClauseUnion()} } yyVAL.union = yyLOCAL - case 815: + case 812: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.TimeWindow -//line mysql_sql.y:5399 +//line mysql_sql.y:5365 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 816: + case 813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.TimeWindow -//line mysql_sql.y:5403 +//line mysql_sql.y:5369 { yyLOCAL = yyDollar[1].timeWindowUnion() } yyVAL.union = yyLOCAL - case 817: + case 814: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.TimeWindow -//line mysql_sql.y:5409 +//line mysql_sql.y:5375 { yyLOCAL = &tree.TimeWindow{ Interval: yyDollar[1].timeIntervalUnion(), @@ -16929,10 +16818,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 818: + case 815: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.Interval -//line mysql_sql.y:5419 +//line mysql_sql.y:5385 { str := fmt.Sprintf("%v", yyDollar[5].item) v, errStr := util.GetInt64(yyDollar[5].item) @@ -16947,18 +16836,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 819: + case 816: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Sliding -//line mysql_sql.y:5434 +//line mysql_sql.y:5400 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 820: + case 817: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.Sliding -//line mysql_sql.y:5438 +//line mysql_sql.y:5404 { str := fmt.Sprintf("%v", yyDollar[3].item) v, errStr := util.GetInt64(yyDollar[3].item) @@ -16972,28 +16861,28 @@ yydefault: } } yyVAL.union = yyLOCAL - case 821: + case 818: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Fill -//line mysql_sql.y:5452 +//line mysql_sql.y:5418 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 822: + case 819: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Fill -//line mysql_sql.y:5456 +//line mysql_sql.y:5422 { yyLOCAL = &tree.Fill{ Mode: yyDollar[3].fillModeUnion(), } } yyVAL.union = yyLOCAL - case 823: + case 820: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.Fill -//line mysql_sql.y:5462 +//line mysql_sql.y:5428 { yyLOCAL = &tree.Fill{ Mode: tree.FillValue, @@ -17001,50 +16890,50 @@ yydefault: } } yyVAL.union = yyLOCAL - case 824: + case 821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5471 +//line mysql_sql.y:5437 { yyLOCAL = tree.FillPrev } yyVAL.union = yyLOCAL - case 825: + case 822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5475 +//line mysql_sql.y:5441 { yyLOCAL = tree.FillNext } yyVAL.union = yyLOCAL - case 826: + case 823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5479 +//line mysql_sql.y:5445 { yyLOCAL = tree.FillNone } yyVAL.union = yyLOCAL - case 827: + case 824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5483 +//line mysql_sql.y:5449 { yyLOCAL = tree.FillNull } yyVAL.union = yyLOCAL - case 828: + case 825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FillMode -//line mysql_sql.y:5487 +//line mysql_sql.y:5453 { yyLOCAL = tree.FillLinear } yyVAL.union = yyLOCAL - case 829: + case 826: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:5493 +//line mysql_sql.y:5459 { yyLOCAL = &tree.With{ IsRecursive: false, @@ -17052,10 +16941,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 830: + case 827: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.With -//line mysql_sql.y:5500 +//line mysql_sql.y:5466 { yyLOCAL = &tree.With{ IsRecursive: true, @@ -17063,26 +16952,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 831: + case 828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:5509 +//line mysql_sql.y:5475 { yyLOCAL = []*tree.CTE{yyDollar[1].cteUnion()} } yyVAL.union = yyLOCAL - case 832: + case 829: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.CTE -//line mysql_sql.y:5513 +//line mysql_sql.y:5479 { yyLOCAL = append(yyDollar[1].cteListUnion(), yyDollar[3].cteUnion()) } yyVAL.union = yyLOCAL - case 833: + case 830: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.CTE -//line mysql_sql.y:5519 +//line mysql_sql.y:5485 { yyLOCAL = &tree.CTE{ Name: &tree.AliasClause{Alias: tree.Identifier(yyDollar[1].cstrUnion().Compare()), Cols: yyDollar[2].identifierListUnion()}, @@ -17090,196 +16979,196 @@ yydefault: } } yyVAL.union = yyLOCAL - case 834: + case 831: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5527 +//line mysql_sql.y:5493 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 835: + case 832: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:5531 +//line mysql_sql.y:5497 { yyLOCAL = yyDollar[2].identifierListUnion() } yyVAL.union = yyLOCAL - case 836: + case 833: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5536 +//line mysql_sql.y:5502 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 837: + case 834: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5540 +//line mysql_sql.y:5506 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 838: + case 835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5546 +//line mysql_sql.y:5512 { yyLOCAL = &tree.Limit{Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 839: + case 836: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5550 +//line mysql_sql.y:5516 { yyLOCAL = &tree.Limit{Offset: yyDollar[2].exprUnion(), Count: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 840: + case 837: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Limit -//line mysql_sql.y:5554 +//line mysql_sql.y:5520 { yyLOCAL = &tree.Limit{Offset: yyDollar[4].exprUnion(), Count: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 841: + case 838: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5559 +//line mysql_sql.y:5525 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 842: + case 839: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5563 +//line mysql_sql.y:5529 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 843: + case 840: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5569 +//line mysql_sql.y:5535 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 844: + case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5575 +//line mysql_sql.y:5541 { yyLOCAL = tree.OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 845: + case 842: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.OrderBy -//line mysql_sql.y:5579 +//line mysql_sql.y:5545 { yyLOCAL = append(yyDollar[1].orderByUnion(), yyDollar[3].orderUnion()) } yyVAL.union = yyLOCAL - case 846: + case 843: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Order -//line mysql_sql.y:5585 +//line mysql_sql.y:5551 { yyLOCAL = &tree.Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].directionUnion(), NullsPosition: yyDollar[3].nullsPositionUnion()} } yyVAL.union = yyLOCAL - case 847: + case 844: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:5590 +//line mysql_sql.y:5556 { yyLOCAL = tree.DefaultDirection } yyVAL.union = yyLOCAL - case 848: + case 845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:5594 +//line mysql_sql.y:5560 { yyLOCAL = tree.Ascending } yyVAL.union = yyLOCAL - case 849: + case 846: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Direction -//line mysql_sql.y:5598 +//line mysql_sql.y:5564 { yyLOCAL = tree.Descending } yyVAL.union = yyLOCAL - case 850: + case 847: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.NullsPosition -//line mysql_sql.y:5603 +//line mysql_sql.y:5569 { yyLOCAL = tree.DefaultNullsPosition } yyVAL.union = yyLOCAL - case 851: + case 848: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.NullsPosition -//line mysql_sql.y:5607 +//line mysql_sql.y:5573 { yyLOCAL = tree.NullsFirst } yyVAL.union = yyLOCAL - case 852: + case 849: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.NullsPosition -//line mysql_sql.y:5611 +//line mysql_sql.y:5577 { yyLOCAL = tree.NullsLast } yyVAL.union = yyLOCAL - case 853: + case 850: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.SelectLockInfo -//line mysql_sql.y:5616 +//line mysql_sql.y:5582 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 854: + case 851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SelectLockInfo -//line mysql_sql.y:5620 +//line mysql_sql.y:5586 { yyLOCAL = &tree.SelectLockInfo{ LockType: tree.SelectLockForUpdate, } } yyVAL.union = yyLOCAL - case 855: + case 852: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5628 +//line mysql_sql.y:5594 { yyLOCAL = &tree.ParenSelect{Select: yyDollar[2].selectUnion()} } yyVAL.union = yyLOCAL - case 856: + case 853: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5632 +//line mysql_sql.y:5598 { yyLOCAL = &tree.ParenSelect{Select: &tree.Select{Select: yyDollar[2].selectStatementUnion()}} } yyVAL.union = yyLOCAL - case 857: + case 854: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5636 +//line mysql_sql.y:5602 { valuesStmt := yyDollar[2].statementUnion().(*tree.ValuesStatement) yyLOCAL = &tree.ParenSelect{Select: &tree.Select{ @@ -17292,18 +17181,18 @@ yydefault: }} } yyVAL.union = yyLOCAL - case 858: + case 855: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5650 +//line mysql_sql.y:5616 { yyLOCAL = yyDollar[1].selectStatementUnion() } yyVAL.union = yyLOCAL - case 859: + case 856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5654 +//line mysql_sql.y:5620 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17314,10 +17203,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 860: + case 857: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5664 +//line mysql_sql.y:5630 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17328,10 +17217,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 861: + case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5674 +//line mysql_sql.y:5640 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17342,10 +17231,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 862: + case 859: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5684 +//line mysql_sql.y:5650 { yyLOCAL = &tree.UnionClause{ Type: yyDollar[2].unionTypeRecordUnion().Type, @@ -17356,10 +17245,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 863: + case 860: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5696 +//line mysql_sql.y:5662 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -17368,10 +17257,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 864: + case 861: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5704 +//line mysql_sql.y:5670 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -17380,10 +17269,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 865: + case 862: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5712 +//line mysql_sql.y:5678 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UNION, @@ -17392,10 +17281,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 866: + case 863: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5721 +//line mysql_sql.y:5687 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -17404,10 +17293,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 867: + case 864: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5729 +//line mysql_sql.y:5695 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -17416,10 +17305,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 868: + case 865: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5737 +//line mysql_sql.y:5703 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.EXCEPT, @@ -17428,10 +17317,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 869: + case 866: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5745 +//line mysql_sql.y:5711 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -17440,10 +17329,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 870: + case 867: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5753 +//line mysql_sql.y:5719 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -17452,10 +17341,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 871: + case 868: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5761 +//line mysql_sql.y:5727 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.INTERSECT, @@ -17464,10 +17353,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 872: + case 869: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5769 +//line mysql_sql.y:5735 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -17476,10 +17365,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 873: + case 870: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5777 +//line mysql_sql.y:5743 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -17488,10 +17377,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 874: + case 871: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UnionTypeRecord -//line mysql_sql.y:5785 +//line mysql_sql.y:5751 { yyLOCAL = &tree.UnionTypeRecord{ Type: tree.UT_MINUS, @@ -17500,10 +17389,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 875: + case 872: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.SelectStatement -//line mysql_sql.y:5795 +//line mysql_sql.y:5761 { yyLOCAL = &tree.SelectClause{ Distinct: tree.QuerySpecOptionDistinct&yyDollar[2].selectOptionsUnion() != 0, @@ -17516,146 +17405,146 @@ yydefault: } } yyVAL.union = yyLOCAL - case 876: + case 873: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5808 +//line mysql_sql.y:5774 { yyLOCAL = tree.QuerySpecOptionNone } yyVAL.union = yyLOCAL - case 877: + case 874: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5812 +//line mysql_sql.y:5778 { yyLOCAL = yyDollar[1].selectOptionsUnion() } yyVAL.union = yyLOCAL - case 878: + case 875: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5818 +//line mysql_sql.y:5784 { yyLOCAL = yyDollar[1].selectOptionUnion() } yyVAL.union = yyLOCAL - case 879: + case 876: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5822 +//line mysql_sql.y:5788 { yyLOCAL = yyDollar[1].selectOptionsUnion() | yyDollar[2].selectOptionUnion() } yyVAL.union = yyLOCAL - case 880: + case 877: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5828 +//line mysql_sql.y:5794 { yyLOCAL = tree.QuerySpecOptionSqlSmallResult } yyVAL.union = yyLOCAL - case 881: + case 878: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5832 +//line mysql_sql.y:5798 { yyLOCAL = tree.QuerySpecOptionSqlBigResult } yyVAL.union = yyLOCAL - case 882: + case 879: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5836 +//line mysql_sql.y:5802 { yyLOCAL = tree.QuerySpecOptionSqlBufferResult } yyVAL.union = yyLOCAL - case 883: + case 880: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5840 +//line mysql_sql.y:5806 { yyLOCAL = tree.QuerySpecOptionStraightJoin } yyVAL.union = yyLOCAL - case 884: + case 881: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5844 +//line mysql_sql.y:5810 { yyLOCAL = tree.QuerySpecOptionHighPriority } yyVAL.union = yyLOCAL - case 885: + case 882: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5848 +//line mysql_sql.y:5814 { yyLOCAL = tree.QuerySpecOptionSqlCalcFoundRows } yyVAL.union = yyLOCAL - case 886: + case 883: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5852 +//line mysql_sql.y:5818 { yyLOCAL = tree.QuerySpecOptionSqlNoCache } yyVAL.union = yyLOCAL - case 887: + case 884: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5856 +//line mysql_sql.y:5822 { yyLOCAL = tree.QuerySpecOptionAll } yyVAL.union = yyLOCAL - case 888: + case 885: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5860 +//line mysql_sql.y:5826 { yyLOCAL = tree.QuerySpecOptionDistinct } yyVAL.union = yyLOCAL - case 889: + case 886: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL uint64 -//line mysql_sql.y:5864 +//line mysql_sql.y:5830 { yyLOCAL = tree.QuerySpecOptionDistinctRow } yyVAL.union = yyLOCAL - case 890: + case 887: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5886 +//line mysql_sql.y:5852 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 891: + case 888: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5890 +//line mysql_sql.y:5856 { yyLOCAL = &tree.Where{Type: tree.AstHaving, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 892: + case 889: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5895 +//line mysql_sql.y:5861 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 893: + case 890: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5899 +//line mysql_sql.y:5865 { exprsList := []tree.Exprs{yyDollar[3].exprsUnion()} yyLOCAL = &tree.GroupByClause{ @@ -17666,10 +17555,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 894: + case 891: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5909 +//line mysql_sql.y:5875 { yyLOCAL = &tree.GroupByClause{ GroupByExprsList: yyDollar[6].rowsExprsUnion(), @@ -17679,10 +17568,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 895: + case 892: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5918 +//line mysql_sql.y:5884 { yyLOCAL = &tree.GroupByClause{ GroupByExprsList: []tree.Exprs{yyDollar[5].exprsUnion()}, @@ -17692,10 +17581,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 896: + case 893: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.GroupByClause -//line mysql_sql.y:5927 +//line mysql_sql.y:5893 { yyLOCAL = &tree.GroupByClause{ GroupByExprsList: []tree.Exprs{yyDollar[5].exprsUnion()}, @@ -17705,106 +17594,106 @@ yydefault: } } yyVAL.union = yyLOCAL - case 897: + case 894: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5938 +//line mysql_sql.y:5904 { yyLOCAL = []tree.Exprs{yyDollar[2].exprsUnion()} } yyVAL.union = yyLOCAL - case 898: + case 895: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:5942 +//line mysql_sql.y:5908 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[4].exprsUnion()) } yyVAL.union = yyLOCAL - case 899: + case 896: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5947 +//line mysql_sql.y:5913 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 900: + case 897: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:5951 +//line mysql_sql.y:5917 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 901: + case 898: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5956 +//line mysql_sql.y:5922 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 902: + case 899: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.Where -//line mysql_sql.y:5960 +//line mysql_sql.y:5926 { yyLOCAL = &tree.Where{Type: tree.AstWhere, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 903: + case 900: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:5966 +//line mysql_sql.y:5932 { yyLOCAL = tree.SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 904: + case 901: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExprs -//line mysql_sql.y:5970 +//line mysql_sql.y:5936 { yyLOCAL = append(yyDollar[1].selectExprsUnion(), yyDollar[3].selectExprUnion()) } yyVAL.union = yyLOCAL - case 905: + case 902: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5976 +//line mysql_sql.y:5942 { yyLOCAL = tree.SelectExpr{Expr: tree.StarExpr()} } yyVAL.union = yyLOCAL - case 906: + case 903: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5980 +//line mysql_sql.y:5946 { yyLOCAL = tree.SelectExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].cstrUnion()} } yyVAL.union = yyLOCAL - case 907: + case 904: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5984 +//line mysql_sql.y:5950 { yyLOCAL = tree.SelectExpr{Expr: tree.NewUnresolvedNameWithStar(yyDollar[1].cstrUnion())} } yyVAL.union = yyLOCAL - case 908: + case 905: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.SelectExpr -//line mysql_sql.y:5988 +//line mysql_sql.y:5954 { yyLOCAL = tree.SelectExpr{Expr: tree.NewUnresolvedNameWithStar(yyDollar[1].cstrUnion(), yyDollar[3].cstrUnion())} } yyVAL.union = yyLOCAL - case 909: + case 906: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:5993 +//line mysql_sql.y:5959 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} tn := tree.NewTableName(tree.Identifier(""), prefix, nil) @@ -17813,28 +17702,28 @@ yydefault: } } yyVAL.union = yyLOCAL - case 910: + case 907: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:6001 +//line mysql_sql.y:5967 { yyLOCAL = yyDollar[1].fromUnion() } yyVAL.union = yyLOCAL - case 911: + case 908: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.From -//line mysql_sql.y:6007 +//line mysql_sql.y:5973 { yyLOCAL = &tree.From{ Tables: tree.TableExprs{yyDollar[2].tableExprUnion()}, } } yyVAL.union = yyLOCAL - case 912: + case 909: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6015 +//line mysql_sql.y:5981 { if t, ok := yyDollar[1].tableExprUnion().(*tree.JoinTableExpr); ok { yyLOCAL = t @@ -17845,34 +17734,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 913: + case 910: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6025 +//line mysql_sql.y:5991 { yyLOCAL = &tree.JoinTableExpr{Left: yyDollar[1].tableExprUnion(), Right: yyDollar[3].tableExprUnion(), JoinType: tree.JOIN_TYPE_CROSS} } yyVAL.union = yyLOCAL - case 916: + case 913: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6035 +//line mysql_sql.y:6001 { yyLOCAL = yyDollar[1].joinTableExprUnion() } yyVAL.union = yyLOCAL - case 917: + case 914: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6039 +//line mysql_sql.y:6005 { yyLOCAL = yyDollar[1].applyTableExprUnion() } yyVAL.union = yyLOCAL - case 918: + case 915: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6045 +//line mysql_sql.y:6011 { if strings.Contains(yyDollar[2].str, ":") { ss := strings.SplitN(yyDollar[2].str, ":", 2) @@ -17893,10 +17782,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 919: + case 916: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6065 +//line mysql_sql.y:6031 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17906,10 +17795,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 920: + case 917: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6074 +//line mysql_sql.y:6040 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17919,10 +17808,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 921: + case 918: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6083 +//line mysql_sql.y:6049 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17931,10 +17820,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 922: + case 919: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.JoinTableExpr -//line mysql_sql.y:6091 +//line mysql_sql.y:6057 { yyLOCAL = &tree.JoinTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17944,10 +17833,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 923: + case 920: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ApplyTableExpr -//line mysql_sql.y:6102 +//line mysql_sql.y:6068 { yyLOCAL = &tree.ApplyTableExpr{ Left: yyDollar[1].tableExprUnion(), @@ -17956,27 +17845,27 @@ yydefault: } } yyVAL.union = yyLOCAL - case 924: + case 921: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6112 +//line mysql_sql.y:6078 { yyVAL.str = tree.APPLY_TYPE_CROSS } - case 925: + case 922: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6116 +//line mysql_sql.y:6082 { yyVAL.str = tree.APPLY_TYPE_OUTER } - case 926: + case 923: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6122 +//line mysql_sql.y:6088 { yyVAL.str = tree.JOIN_TYPE_NATURAL } - case 927: + case 924: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6126 +//line mysql_sql.y:6092 { if yyDollar[2].str == tree.JOIN_TYPE_LEFT { yyVAL.str = tree.JOIN_TYPE_NATURAL_LEFT @@ -17984,40 +17873,40 @@ yydefault: yyVAL.str = tree.JOIN_TYPE_NATURAL_RIGHT } } - case 928: + case 925: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6136 +//line mysql_sql.y:6102 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 929: + case 926: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6140 +//line mysql_sql.y:6106 { yyVAL.str = tree.JOIN_TYPE_LEFT } - case 930: + case 927: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6144 +//line mysql_sql.y:6110 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 931: + case 928: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6148 +//line mysql_sql.y:6114 { yyVAL.str = tree.JOIN_TYPE_RIGHT } - case 932: + case 929: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6154 +//line mysql_sql.y:6120 { yyVAL.str = tree.JOIN_TYPE_DEDUP } - case 933: + case 930: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6160 +//line mysql_sql.y:6126 { yyLOCAL = &tree.ValuesStatement{ Rows: yyDollar[2].rowsExprsUnion(), @@ -18026,148 +17915,148 @@ yydefault: } } yyVAL.union = yyLOCAL - case 934: + case 931: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:6171 +//line mysql_sql.y:6137 { yyLOCAL = []tree.Exprs{yyDollar[1].exprsUnion()} } yyVAL.union = yyLOCAL - case 935: + case 932: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Exprs -//line mysql_sql.y:6175 +//line mysql_sql.y:6141 { yyLOCAL = append(yyDollar[1].rowsExprsUnion(), yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 936: + case 933: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:6181 +//line mysql_sql.y:6147 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 937: + case 934: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6187 +//line mysql_sql.y:6153 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 938: + case 935: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6191 +//line mysql_sql.y:6157 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 939: + case 936: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6197 +//line mysql_sql.y:6163 { yyVAL.str = yyDollar[1].str } - case 940: + case 937: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6204 +//line mysql_sql.y:6170 { yyVAL.str = yyDollar[2].str } - case 941: + case 938: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6210 +//line mysql_sql.y:6176 { yyVAL.str = tree.JOIN_TYPE_STRAIGHT } - case 942: + case 939: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6216 +//line mysql_sql.y:6182 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 943: + case 940: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6220 +//line mysql_sql.y:6186 { yyVAL.str = tree.JOIN_TYPE_INNER } - case 944: + case 941: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6224 +//line mysql_sql.y:6190 { yyVAL.str = tree.JOIN_TYPE_CROSS } - case 945: + case 942: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6228 +//line mysql_sql.y:6194 { yyVAL.str = tree.JOIN_TYPE_CENTROIDX + ":" + yyDollar[2].str } - case 946: + case 943: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6234 +//line mysql_sql.y:6200 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 947: + case 944: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6238 +//line mysql_sql.y:6204 { yyLOCAL = yyDollar[1].joinCondUnion() } yyVAL.union = yyLOCAL - case 948: + case 945: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6244 +//line mysql_sql.y:6210 { yyLOCAL = &tree.OnJoinCond{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 949: + case 946: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.JoinCond -//line mysql_sql.y:6248 +//line mysql_sql.y:6214 { yyLOCAL = &tree.UsingJoinCond{Cols: yyDollar[3].identifierListUnion()} } yyVAL.union = yyLOCAL - case 950: + case 947: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:6254 +//line mysql_sql.y:6220 { yyLOCAL = tree.IdentifierList{tree.Identifier(yyDollar[1].cstrUnion().Compare())} } yyVAL.union = yyLOCAL - case 951: + case 948: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IdentifierList -//line mysql_sql.y:6258 +//line mysql_sql.y:6224 { yyLOCAL = append(yyDollar[1].identifierListUnion(), tree.Identifier(yyDollar[3].cstrUnion().Compare())) } yyVAL.union = yyLOCAL - case 952: + case 949: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6264 +//line mysql_sql.y:6230 { yyLOCAL = yyDollar[1].aliasedTableExprUnion() } yyVAL.union = yyLOCAL - case 953: + case 950: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6268 +//line mysql_sql.y:6234 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].parenTableExprUnion(), @@ -18178,10 +18067,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 954: + case 951: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6278 +//line mysql_sql.y:6244 { if yyDollar[2].str != "" { yyLOCAL = &tree.AliasedTableExpr{ @@ -18195,26 +18084,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 955: + case 952: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6291 +//line mysql_sql.y:6257 { yyLOCAL = yyDollar[2].tableExprUnion() } yyVAL.union = yyLOCAL - case 956: + case 953: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ParenTableExpr -//line mysql_sql.y:6297 +//line mysql_sql.y:6263 { yyLOCAL = &tree.ParenTableExpr{Expr: yyDollar[1].selectStatementUnion().(*tree.ParenSelect).Select} } yyVAL.union = yyLOCAL - case 957: + case 954: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableExpr -//line mysql_sql.y:6303 +//line mysql_sql.y:6269 { name := tree.NewUnresolvedName(yyDollar[1].cstrUnion()) yyLOCAL = &tree.TableFunction{ @@ -18227,10 +18116,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 958: + case 955: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AliasedTableExpr -//line mysql_sql.y:6317 +//line mysql_sql.y:6283 { yyLOCAL = &tree.AliasedTableExpr{ Expr: yyDollar[1].tableNameUnion(), @@ -18241,34 +18130,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 959: + case 956: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.IndexHint -//line mysql_sql.y:6328 +//line mysql_sql.y:6294 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 961: + case 958: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.IndexHint -//line mysql_sql.y:6335 +//line mysql_sql.y:6301 { yyLOCAL = []*tree.IndexHint{yyDollar[1].indexHintUnion()} } yyVAL.union = yyLOCAL - case 962: + case 959: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.IndexHint -//line mysql_sql.y:6339 +//line mysql_sql.y:6305 { yyLOCAL = append(yyDollar[1].indexHintListUnion(), yyDollar[2].indexHintUnion()) } yyVAL.union = yyLOCAL - case 963: + case 960: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.IndexHint -//line mysql_sql.y:6345 +//line mysql_sql.y:6311 { yyLOCAL = &tree.IndexHint{ IndexNames: yyDollar[4].strsUnion(), @@ -18277,182 +18166,182 @@ yydefault: } } yyVAL.union = yyLOCAL - case 964: + case 961: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintType -//line mysql_sql.y:6355 +//line mysql_sql.y:6321 { yyLOCAL = tree.HintUse } yyVAL.union = yyLOCAL - case 965: + case 962: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintType -//line mysql_sql.y:6359 +//line mysql_sql.y:6325 { yyLOCAL = tree.HintIgnore } yyVAL.union = yyLOCAL - case 966: + case 963: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintType -//line mysql_sql.y:6363 +//line mysql_sql.y:6329 { yyLOCAL = tree.HintForce } yyVAL.union = yyLOCAL - case 967: + case 964: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6368 +//line mysql_sql.y:6334 { yyLOCAL = tree.HintForScan } yyVAL.union = yyLOCAL - case 968: + case 965: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6372 +//line mysql_sql.y:6338 { yyLOCAL = tree.HintForJoin } yyVAL.union = yyLOCAL - case 969: + case 966: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6376 +//line mysql_sql.y:6342 { yyLOCAL = tree.HintForOrderBy } yyVAL.union = yyLOCAL - case 970: + case 967: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.IndexHintScope -//line mysql_sql.y:6380 +//line mysql_sql.y:6346 { yyLOCAL = tree.HintForGroupBy } yyVAL.union = yyLOCAL - case 971: + case 968: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6385 +//line mysql_sql.y:6351 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 972: + case 969: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6389 +//line mysql_sql.y:6355 { yyLOCAL = []string{yyDollar[1].cstrUnion().Compare()} } yyVAL.union = yyLOCAL - case 973: + case 970: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6393 +//line mysql_sql.y:6359 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].cstrUnion().Compare()) } yyVAL.union = yyLOCAL - case 974: + case 971: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6397 +//line mysql_sql.y:6363 { yyLOCAL = []string{yyDollar[1].str} } yyVAL.union = yyLOCAL - case 975: + case 972: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:6401 +//line mysql_sql.y:6367 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 976: + case 973: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6406 +//line mysql_sql.y:6372 { yyVAL.str = "" } - case 977: + case 974: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6410 +//line mysql_sql.y:6376 { yyVAL.str = yyDollar[1].str } - case 978: + case 975: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6414 +//line mysql_sql.y:6380 { yyVAL.str = yyDollar[2].str } - case 979: + case 976: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6420 +//line mysql_sql.y:6386 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) } - case 980: + case 977: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6424 +//line mysql_sql.y:6390 { yyVAL.str = yylex.(*Lexer).GetDbOrTblName(yyDollar[1].str) } - case 981: + case 978: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6429 +//line mysql_sql.y:6395 { yyLOCAL = tree.NewCStr("", 1) } yyVAL.union = yyLOCAL - case 982: + case 979: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6433 +//line mysql_sql.y:6399 { yyLOCAL = yyDollar[1].cstrUnion() } yyVAL.union = yyLOCAL - case 983: + case 980: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6437 +//line mysql_sql.y:6403 { yyLOCAL = yyDollar[2].cstrUnion() } yyVAL.union = yyLOCAL - case 984: + case 981: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6441 +//line mysql_sql.y:6407 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 985: + case 982: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:6445 +//line mysql_sql.y:6411 { yyLOCAL = tree.NewCStr(yyDollar[2].str, 1) } yyVAL.union = yyLOCAL - case 986: + case 983: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6451 +//line mysql_sql.y:6417 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1009: + case 1006: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6493 +//line mysql_sql.y:6459 { var Language = yyDollar[3].str var Name = tree.Identifier(yyDollar[5].str) @@ -18464,22 +18353,22 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1010: + case 1007: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6506 +//line mysql_sql.y:6472 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1011: + case 1008: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6512 +//line mysql_sql.y:6478 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1012: + case 1009: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6518 +//line mysql_sql.y:6484 { var Name = yyDollar[3].procNameUnion() var Args = yyDollar[5].procArgsUnion() @@ -18491,101 +18380,101 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1013: + case 1010: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ProcedureName -//line mysql_sql.y:6531 +//line mysql_sql.y:6497 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewProcedureName(tree.Identifier(yyDollar[1].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1014: + case 1011: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ProcedureName -//line mysql_sql.y:6536 +//line mysql_sql.y:6502 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(dbName), ExplicitSchema: true} yyLOCAL = tree.NewProcedureName(tree.Identifier(yyDollar[3].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1015: + case 1012: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.ProcedureArgs -//line mysql_sql.y:6543 +//line mysql_sql.y:6509 { yyLOCAL = tree.ProcedureArgs(nil) } yyVAL.union = yyLOCAL - case 1017: + case 1014: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ProcedureArgs -//line mysql_sql.y:6550 +//line mysql_sql.y:6516 { yyLOCAL = tree.ProcedureArgs{yyDollar[1].procArgUnion()} } yyVAL.union = yyLOCAL - case 1018: + case 1015: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ProcedureArgs -//line mysql_sql.y:6554 +//line mysql_sql.y:6520 { yyLOCAL = append(yyDollar[1].procArgsUnion(), yyDollar[3].procArgUnion()) } yyVAL.union = yyLOCAL - case 1019: + case 1016: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ProcedureArg -//line mysql_sql.y:6560 +//line mysql_sql.y:6526 { yyLOCAL = tree.ProcedureArg(yyDollar[1].procArgDeclUnion()) } yyVAL.union = yyLOCAL - case 1020: + case 1017: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ProcedureArgDecl -//line mysql_sql.y:6566 +//line mysql_sql.y:6532 { yyLOCAL = tree.NewProcedureArgDecl(yyDollar[1].procArgTypeUnion(), yyDollar[2].unresolvedNameUnion(), yyDollar[3].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1021: + case 1018: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6571 +//line mysql_sql.y:6537 { yyLOCAL = tree.TYPE_IN } yyVAL.union = yyLOCAL - case 1022: + case 1019: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6575 +//line mysql_sql.y:6541 { yyLOCAL = tree.TYPE_IN } yyVAL.union = yyLOCAL - case 1023: + case 1020: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6579 +//line mysql_sql.y:6545 { yyLOCAL = tree.TYPE_OUT } yyVAL.union = yyLOCAL - case 1024: + case 1021: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.InOutArgType -//line mysql_sql.y:6583 +//line mysql_sql.y:6549 { yyLOCAL = tree.TYPE_INOUT } yyVAL.union = yyLOCAL - case 1025: + case 1022: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6590 +//line mysql_sql.y:6556 { if yyDollar[13].str == "" { yylex.Error("no function body error") @@ -18617,127 +18506,127 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1026: + case 1023: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FunctionName -//line mysql_sql.y:6623 +//line mysql_sql.y:6589 { prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewFuncName(tree.Identifier(yyDollar[1].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1027: + case 1024: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FunctionName -//line mysql_sql.y:6628 +//line mysql_sql.y:6594 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{SchemaName: tree.Identifier(dbName), ExplicitSchema: true} yyLOCAL = tree.NewFuncName(tree.Identifier(yyDollar[3].cstrUnion().Compare()), prefix) } yyVAL.union = yyLOCAL - case 1028: + case 1025: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FunctionArgs -//line mysql_sql.y:6635 +//line mysql_sql.y:6601 { yyLOCAL = tree.FunctionArgs(nil) } yyVAL.union = yyLOCAL - case 1030: + case 1027: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FunctionArgs -//line mysql_sql.y:6642 +//line mysql_sql.y:6608 { yyLOCAL = tree.FunctionArgs{yyDollar[1].funcArgUnion()} } yyVAL.union = yyLOCAL - case 1031: + case 1028: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FunctionArgs -//line mysql_sql.y:6646 +//line mysql_sql.y:6612 { yyLOCAL = append(yyDollar[1].funcArgsUnion(), yyDollar[3].funcArgUnion()) } yyVAL.union = yyLOCAL - case 1032: + case 1029: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FunctionArg -//line mysql_sql.y:6652 +//line mysql_sql.y:6618 { yyLOCAL = tree.FunctionArg(yyDollar[1].funcArgDeclUnion()) } yyVAL.union = yyLOCAL - case 1033: + case 1030: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FunctionArgDecl -//line mysql_sql.y:6658 +//line mysql_sql.y:6624 { yyLOCAL = tree.NewFunctionArgDecl(nil, yyDollar[1].columnTypeUnion(), nil) } yyVAL.union = yyLOCAL - case 1034: + case 1031: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FunctionArgDecl -//line mysql_sql.y:6662 +//line mysql_sql.y:6628 { yyLOCAL = tree.NewFunctionArgDecl(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), nil) } yyVAL.union = yyLOCAL - case 1035: + case 1032: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FunctionArgDecl -//line mysql_sql.y:6666 +//line mysql_sql.y:6632 { yyLOCAL = tree.NewFunctionArgDecl(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1036: + case 1033: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6672 +//line mysql_sql.y:6638 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1037: + case 1034: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReturnType -//line mysql_sql.y:6678 +//line mysql_sql.y:6644 { yyLOCAL = tree.NewReturnType(yyDollar[1].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1038: + case 1035: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6684 +//line mysql_sql.y:6650 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1039: + case 1036: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:6688 +//line mysql_sql.y:6654 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1040: + case 1037: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6694 +//line mysql_sql.y:6660 { yyVAL.str = "" } - case 1042: + case 1039: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6701 +//line mysql_sql.y:6667 { yyVAL.str = yyDollar[2].str } - case 1043: + case 1040: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6707 +//line mysql_sql.y:6673 { var Replace bool var Name = yyDollar[5].tableNameUnion() @@ -18753,10 +18642,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1044: + case 1041: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6722 +//line mysql_sql.y:6688 { var Replace = yyDollar[2].sourceOptionalUnion() var Name = yyDollar[5].tableNameUnion() @@ -18772,10 +18661,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1045: + case 1042: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6739 +//line mysql_sql.y:6705 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = yyDollar[4].exprUnion() @@ -18791,81 +18680,81 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1046: + case 1043: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6756 +//line mysql_sql.y:6722 { yyVAL.str = yyDollar[1].str } - case 1047: + case 1044: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:6760 +//line mysql_sql.y:6726 { yyVAL.str = yyVAL.str + yyDollar[2].str } - case 1048: + case 1045: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6766 +//line mysql_sql.y:6732 { yyVAL.str = "ALGORITHM = " + yyDollar[3].str } - case 1049: + case 1046: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6770 +//line mysql_sql.y:6736 { yyVAL.str = "DEFINER = " } - case 1050: + case 1047: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:6774 +//line mysql_sql.y:6740 { yyVAL.str = "SQL SECURITY " + yyDollar[3].str } - case 1051: + case 1048: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6779 +//line mysql_sql.y:6745 { yyVAL.str = "" } - case 1052: + case 1049: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:6783 +//line mysql_sql.y:6749 { yyVAL.str = "WITH " + yyDollar[2].str + " CHECK OPTION" } - case 1058: + case 1055: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:6797 +//line mysql_sql.y:6763 { yyVAL.str = "" } - case 1061: + case 1058: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:6805 +//line mysql_sql.y:6771 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1062: + case 1059: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6811 +//line mysql_sql.y:6777 { var str = yyDollar[1].cstrUnion().Compare() yyLOCAL = tree.NewNumVal(str, str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1063: + case 1060: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6816 +//line mysql_sql.y:6782 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1064: + case 1061: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountAuthOption -//line mysql_sql.y:6822 +//line mysql_sql.y:6788 { var Equal = yyDollar[2].str var AdminName = yyDollar[3].exprUnion() @@ -18877,36 +18766,36 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1065: + case 1062: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6835 +//line mysql_sql.y:6801 { var str = yyDollar[1].str yyLOCAL = tree.NewNumVal(str, str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1066: + case 1063: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6840 +//line mysql_sql.y:6806 { var str = yyDollar[1].cstrUnion().Compare() yyLOCAL = tree.NewNumVal(str, str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1067: + case 1064: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:6845 +//line mysql_sql.y:6811 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1068: + case 1065: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6851 +//line mysql_sql.y:6817 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedByPassword, @@ -18914,10 +18803,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1069: + case 1066: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6858 +//line mysql_sql.y:6824 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedByPassword, @@ -18925,10 +18814,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1070: + case 1067: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6865 +//line mysql_sql.y:6831 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedByRandomPassword, @@ -18936,10 +18825,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1071: + case 1068: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6872 +//line mysql_sql.y:6838 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedWithSSL, @@ -18947,10 +18836,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1072: + case 1069: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.AccountIdentified -//line mysql_sql.y:6879 +//line mysql_sql.y:6845 { yyLOCAL = *tree.NewAccountIdentified( tree.AccountIdentifiedWithSSL, @@ -18958,20 +18847,20 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1073: + case 1070: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6887 +//line mysql_sql.y:6853 { as := tree.NewAccountStatus() as.Exist = false yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1074: + case 1071: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6893 +//line mysql_sql.y:6859 { as := tree.NewAccountStatus() as.Exist = true @@ -18979,10 +18868,10 @@ yydefault: yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1075: + case 1072: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6900 +//line mysql_sql.y:6866 { as := tree.NewAccountStatus() as.Exist = true @@ -18990,10 +18879,10 @@ yydefault: yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1076: + case 1073: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.AccountStatus -//line mysql_sql.y:6907 +//line mysql_sql.y:6873 { as := tree.NewAccountStatus() as.Exist = true @@ -19001,20 +18890,20 @@ yydefault: yyLOCAL = *as } yyVAL.union = yyLOCAL - case 1077: + case 1074: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:6915 +//line mysql_sql.y:6881 { ac := tree.NewAccountComment() ac.Exist = false yyLOCAL = *ac } yyVAL.union = yyLOCAL - case 1078: + case 1075: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountComment -//line mysql_sql.y:6921 +//line mysql_sql.y:6887 { ac := tree.NewAccountComment() ac.Exist = true @@ -19022,10 +18911,10 @@ yydefault: yyLOCAL = *ac } yyVAL.union = yyLOCAL - case 1079: + case 1076: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6930 +//line mysql_sql.y:6896 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Users = yyDollar[4].usersUnion() @@ -19041,10 +18930,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1080: + case 1077: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6947 +//line mysql_sql.y:6913 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -19061,10 +18950,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1081: + case 1078: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6963 +//line mysql_sql.y:6929 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -19082,30 +18971,30 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1082: + case 1079: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:6982 +//line mysql_sql.y:6948 { yyLOCAL = &tree.AccountsSetOption{ All: true, } } yyVAL.union = yyLOCAL - case 1083: + case 1080: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:6988 +//line mysql_sql.y:6954 { yyLOCAL = &tree.AccountsSetOption{ SetAccounts: yyDollar[2].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1084: + case 1081: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:6997 +//line mysql_sql.y:6963 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -19123,20 +19012,20 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1085: + case 1082: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageStatus -//line mysql_sql.y:7015 +//line mysql_sql.y:6981 { yyLOCAL = tree.StageStatus{ Exist: false, } } yyVAL.union = yyLOCAL - case 1086: + case 1083: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageStatus -//line mysql_sql.y:7021 +//line mysql_sql.y:6987 { yyLOCAL = tree.StageStatus{ Exist: true, @@ -19144,10 +19033,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1087: + case 1084: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageStatus -//line mysql_sql.y:7028 +//line mysql_sql.y:6994 { yyLOCAL = tree.StageStatus{ Exist: true, @@ -19155,20 +19044,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1088: + case 1085: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageComment -//line mysql_sql.y:7036 +//line mysql_sql.y:7002 { yyLOCAL = tree.StageComment{ Exist: false, } } yyVAL.union = yyLOCAL - case 1089: + case 1086: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageComment -//line mysql_sql.y:7042 +//line mysql_sql.y:7008 { yyLOCAL = tree.StageComment{ Exist: true, @@ -19176,20 +19065,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1090: + case 1087: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageUrl -//line mysql_sql.y:7050 +//line mysql_sql.y:7016 { yyLOCAL = tree.StageUrl{ Exist: false, } } yyVAL.union = yyLOCAL - case 1091: + case 1088: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.StageUrl -//line mysql_sql.y:7056 +//line mysql_sql.y:7022 { yyLOCAL = tree.StageUrl{ Exist: true, @@ -19197,20 +19086,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1092: + case 1089: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.StageCredentials -//line mysql_sql.y:7064 +//line mysql_sql.y:7030 { yyLOCAL = tree.StageCredentials{ Exist: false, } } yyVAL.union = yyLOCAL - case 1093: + case 1090: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.StageCredentials -//line mysql_sql.y:7070 +//line mysql_sql.y:7036 { yyLOCAL = tree.StageCredentials{ Exist: true, @@ -19218,61 +19107,61 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1094: + case 1091: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7079 +//line mysql_sql.y:7045 { yyLOCAL = yyDollar[1].strsUnion() } yyVAL.union = yyLOCAL - case 1095: + case 1092: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7083 +//line mysql_sql.y:7049 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].strsUnion()...) } yyVAL.union = yyLOCAL - case 1096: + case 1093: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7088 +//line mysql_sql.y:7054 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 1097: + case 1094: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:7092 +//line mysql_sql.y:7058 { yyLOCAL = append(yyLOCAL, yyDollar[1].str) yyLOCAL = append(yyLOCAL, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1098: + case 1095: yyDollar = yyS[yypt-3 : yypt+1] -//line mysql_sql.y:7099 +//line mysql_sql.y:7065 { yyVAL.str = yyDollar[3].str } - case 1099: + case 1096: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:7104 +//line mysql_sql.y:7070 { yyVAL.str = "" } - case 1100: + case 1097: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:7108 +//line mysql_sql.y:7074 { yyVAL.str = yyDollar[2].str } - case 1101: + case 1098: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7114 +//line mysql_sql.y:7080 { var ifNotExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -19283,10 +19172,10 @@ yydefault: yyLOCAL = tree.NewAlterStage(ifNotExists, name, urlOption, credentialsOption, statusOption, comment) } yyVAL.union = yyLOCAL - case 1102: + case 1099: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7127 +//line mysql_sql.y:7093 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) @@ -19297,132 +19186,132 @@ yydefault: yyLOCAL = tree.NewAlterPublication(ifExists, name, accountsSet, dbName, table, comment) } yyVAL.union = yyLOCAL - case 1103: + case 1100: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7138 +//line mysql_sql.y:7104 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1104: + case 1101: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7142 +//line mysql_sql.y:7108 { yyLOCAL = &tree.AccountsSetOption{ All: true, } } yyVAL.union = yyLOCAL - case 1105: + case 1102: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7148 +//line mysql_sql.y:7114 { yyLOCAL = &tree.AccountsSetOption{ SetAccounts: yyDollar[2].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1106: + case 1103: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7154 +//line mysql_sql.y:7120 { yyLOCAL = &tree.AccountsSetOption{ AddAccounts: yyDollar[3].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1107: + case 1104: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountsSetOption -//line mysql_sql.y:7160 +//line mysql_sql.y:7126 { yyLOCAL = &tree.AccountsSetOption{ DropAccounts: yyDollar[3].identifierListUnion(), } } yyVAL.union = yyLOCAL - case 1108: + case 1105: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:7167 +//line mysql_sql.y:7133 { yyVAL.str = "" } - case 1109: + case 1106: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:7171 +//line mysql_sql.y:7137 { yyVAL.str = yyDollar[2].str } - case 1110: + case 1107: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:7176 +//line mysql_sql.y:7142 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1111: + case 1108: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:7180 +//line mysql_sql.y:7146 { yyLOCAL = yyDollar[2].tableNamesUnion() } yyVAL.union = yyLOCAL - case 1112: + case 1109: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7186 +//line mysql_sql.y:7152 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropPublication(ifExists, name) } yyVAL.union = yyLOCAL - case 1113: + case 1110: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7194 +//line mysql_sql.y:7160 { var ifNotExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropStage(ifNotExists, name) } yyVAL.union = yyLOCAL - case 1114: + case 1111: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7202 +//line mysql_sql.y:7168 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropSnapShot(ifExists, name) } yyVAL.union = yyLOCAL - case 1115: + case 1112: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7210 +//line mysql_sql.y:7176 { var ifExists = yyDollar[3].boolValUnion() var name = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewDropPitr(ifExists, name) } yyVAL.union = yyLOCAL - case 1116: + case 1113: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:7218 +//line mysql_sql.y:7184 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1117: + case 1114: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:7223 +//line mysql_sql.y:7189 { var Exist = false var IsComment bool @@ -19435,10 +19324,10 @@ yydefault: } yyVAL.union = yyLOCAL - case 1118: + case 1115: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:7235 +//line mysql_sql.y:7201 { var Exist = true var IsComment = true @@ -19450,10 +19339,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1119: + case 1116: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.AccountCommentOrAttribute -//line mysql_sql.y:7246 +//line mysql_sql.y:7212 { var Exist = true var IsComment = false @@ -19465,26 +19354,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1120: + case 1117: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7355 +//line mysql_sql.y:7321 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 1121: + case 1118: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7359 +//line mysql_sql.y:7325 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 1122: + case 1119: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:7365 +//line mysql_sql.y:7331 { var Username = yyDollar[1].usernameRecordUnion().Username var Hostname = yyDollar[1].usernameRecordUnion().Hostname @@ -19496,26 +19385,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1123: + case 1120: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7378 +//line mysql_sql.y:7344 { yyLOCAL = []*tree.User{yyDollar[1].userUnion()} } yyVAL.union = yyLOCAL - case 1124: + case 1121: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.User -//line mysql_sql.y:7382 +//line mysql_sql.y:7348 { yyLOCAL = append(yyDollar[1].usersUnion(), yyDollar[3].userUnion()) } yyVAL.union = yyLOCAL - case 1125: + case 1122: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.User -//line mysql_sql.y:7388 +//line mysql_sql.y:7354 { var Username = yyDollar[1].usernameRecordUnion().Username var Hostname = yyDollar[1].usernameRecordUnion().Hostname @@ -19527,50 +19416,50 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1126: + case 1123: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:7401 +//line mysql_sql.y:7367 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: "%"} } yyVAL.union = yyLOCAL - case 1127: + case 1124: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:7405 +//line mysql_sql.y:7371 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 1128: + case 1125: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.UsernameRecord -//line mysql_sql.y:7409 +//line mysql_sql.y:7375 { yyLOCAL = &tree.UsernameRecord{Username: yyDollar[1].str, Hostname: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 1129: + case 1126: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7414 +//line mysql_sql.y:7380 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1130: + case 1127: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7418 +//line mysql_sql.y:7384 { yyLOCAL = yyDollar[1].userIdentifiedUnion() } yyVAL.union = yyLOCAL - case 1131: + case 1128: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7424 +//line mysql_sql.y:7390 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByPassword, @@ -19578,20 +19467,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1132: + case 1129: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7431 +//line mysql_sql.y:7397 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedByRandomPassword, } } yyVAL.union = yyLOCAL - case 1133: + case 1130: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.AccountIdentified -//line mysql_sql.y:7437 +//line mysql_sql.y:7403 { yyLOCAL = &tree.AccountIdentified{ Typ: tree.AccountIdentifiedWithSSL, @@ -19599,16 +19488,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1134: + case 1131: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:7446 +//line mysql_sql.y:7412 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1136: + case 1133: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7453 +//line mysql_sql.y:7419 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Roles = yyDollar[4].rolesUnion() @@ -19618,26 +19507,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1137: + case 1134: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:7464 +//line mysql_sql.y:7430 { yyLOCAL = []*tree.Role{yyDollar[1].roleUnion()} } yyVAL.union = yyLOCAL - case 1138: + case 1135: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Role -//line mysql_sql.y:7468 +//line mysql_sql.y:7434 { yyLOCAL = append(yyDollar[1].rolesUnion(), yyDollar[3].roleUnion()) } yyVAL.union = yyLOCAL - case 1139: + case 1136: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Role -//line mysql_sql.y:7474 +//line mysql_sql.y:7440 { var UserName = yyDollar[1].cstrUnion().Compare() yyLOCAL = tree.NewRole( @@ -19645,66 +19534,66 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1140: + case 1137: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:7483 +//line mysql_sql.y:7449 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1141: + case 1138: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:7487 +//line mysql_sql.y:7453 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1142: + case 1139: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:7491 +//line mysql_sql.y:7457 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1143: + case 1140: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7496 +//line mysql_sql.y:7462 { yyLOCAL = tree.INDEX_CATEGORY_NONE } yyVAL.union = yyLOCAL - case 1144: + case 1141: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7500 +//line mysql_sql.y:7466 { yyLOCAL = tree.INDEX_CATEGORY_FULLTEXT } yyVAL.union = yyLOCAL - case 1145: + case 1142: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7504 +//line mysql_sql.y:7470 { yyLOCAL = tree.INDEX_CATEGORY_SPATIAL } yyVAL.union = yyLOCAL - case 1146: + case 1143: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.IndexCategory -//line mysql_sql.y:7508 +//line mysql_sql.y:7474 { yyLOCAL = tree.INDEX_CATEGORY_UNIQUE } yyVAL.union = yyLOCAL - case 1147: + case 1144: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7514 +//line mysql_sql.y:7480 { var io *tree.IndexOption = nil if yyDollar[11].indexOptionUnion() == nil && yyDollar[5].indexTypeUnion() != tree.INDEX_TYPE_INVALID { @@ -19735,18 +19624,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1148: + case 1145: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7545 +//line mysql_sql.y:7511 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1149: + case 1146: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7549 +//line mysql_sql.y:7515 { // Merge the options if yyDollar[1].indexOptionUnion() == nil { @@ -19779,20 +19668,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1150: + case 1147: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7583 +//line mysql_sql.y:7549 { io := tree.NewIndexOption() io.KeyBlockSize = uint64(yyDollar[3].item.(int64)) yyLOCAL = io } yyVAL.union = yyLOCAL - case 1151: + case 1148: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7589 +//line mysql_sql.y:7555 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19805,60 +19694,60 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1152: + case 1149: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7601 +//line mysql_sql.y:7567 { io := tree.NewIndexOption() io.AlgoParamVectorOpType = yyDollar[2].str yyLOCAL = io } yyVAL.union = yyLOCAL - case 1153: + case 1150: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7607 +//line mysql_sql.y:7573 { io := tree.NewIndexOption() io.Comment = yyDollar[2].str yyLOCAL = io } yyVAL.union = yyLOCAL - case 1154: + case 1151: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7613 +//line mysql_sql.y:7579 { io := tree.NewIndexOption() io.ParserName = yyDollar[3].cstrUnion().Compare() yyLOCAL = io } yyVAL.union = yyLOCAL - case 1155: + case 1152: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7619 +//line mysql_sql.y:7585 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_VISIBLE yyLOCAL = io } yyVAL.union = yyLOCAL - case 1156: + case 1153: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7625 +//line mysql_sql.y:7591 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_INVISIBLE yyLOCAL = io } yyVAL.union = yyLOCAL - case 1157: + case 1154: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7631 +//line mysql_sql.y:7597 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19870,10 +19759,10 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1158: + case 1155: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7642 +//line mysql_sql.y:7608 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19885,10 +19774,10 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1159: + case 1156: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7653 +//line mysql_sql.y:7619 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19900,36 +19789,36 @@ yydefault: yyLOCAL = io } yyVAL.union = yyLOCAL - case 1160: + case 1157: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7664 +//line mysql_sql.y:7630 { io := tree.NewIndexOption() io.HnswQuantization = yyDollar[3].str yyLOCAL = io } yyVAL.union = yyLOCAL - case 1161: + case 1158: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7673 +//line mysql_sql.y:7639 { yyLOCAL = []*tree.KeyPart{yyDollar[1].keyPartUnion()} } yyVAL.union = yyLOCAL - case 1162: + case 1159: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7677 +//line mysql_sql.y:7643 { yyLOCAL = append(yyDollar[1].keyPartsUnion(), yyDollar[3].keyPartUnion()) } yyVAL.union = yyLOCAL - case 1163: + case 1160: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7683 +//line mysql_sql.y:7649 { // Order is parsed but just ignored as MySQL dtree. var ColName = yyDollar[1].unresolvedNameUnion() @@ -19944,10 +19833,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1164: + case 1161: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7697 +//line mysql_sql.y:7663 { var ColName *tree.UnresolvedName var Length int @@ -19961,74 +19850,74 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1165: + case 1162: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7711 +//line mysql_sql.y:7677 { yyLOCAL = tree.INDEX_TYPE_INVALID } yyVAL.union = yyLOCAL - case 1166: + case 1163: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7715 +//line mysql_sql.y:7681 { yyLOCAL = tree.INDEX_TYPE_BTREE } yyVAL.union = yyLOCAL - case 1167: + case 1164: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7719 +//line mysql_sql.y:7685 { yyLOCAL = tree.INDEX_TYPE_IVFFLAT } yyVAL.union = yyLOCAL - case 1168: + case 1165: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7723 +//line mysql_sql.y:7689 { yyLOCAL = tree.INDEX_TYPE_HNSW } yyVAL.union = yyLOCAL - case 1169: + case 1166: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7727 +//line mysql_sql.y:7693 { yyLOCAL = tree.INDEX_TYPE_MASTER } yyVAL.union = yyLOCAL - case 1170: + case 1167: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7731 +//line mysql_sql.y:7697 { yyLOCAL = tree.INDEX_TYPE_HASH } yyVAL.union = yyLOCAL - case 1171: + case 1168: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7735 +//line mysql_sql.y:7701 { yyLOCAL = tree.INDEX_TYPE_RTREE } yyVAL.union = yyLOCAL - case 1172: + case 1169: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7739 +//line mysql_sql.y:7705 { yyLOCAL = tree.INDEX_TYPE_BSI } yyVAL.union = yyLOCAL - case 1173: + case 1170: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7745 +//line mysql_sql.y:7711 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].str) @@ -20042,76 +19931,76 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1174: + case 1171: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7760 +//line mysql_sql.y:7726 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1175: + case 1172: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7764 +//line mysql_sql.y:7730 { var From = tree.Identifier(yyDollar[2].str) var Publication = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewSubscriptionOption(From, Publication) } yyVAL.union = yyLOCAL - case 1178: + case 1175: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7775 +//line mysql_sql.y:7741 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1179: + case 1176: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7779 +//line mysql_sql.y:7745 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1180: + case 1177: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7784 +//line mysql_sql.y:7750 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1181: + case 1178: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7788 +//line mysql_sql.y:7754 { yyLOCAL = yyDollar[1].createOptionsUnion() } yyVAL.union = yyLOCAL - case 1182: + case 1179: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7794 +//line mysql_sql.y:7760 { yyLOCAL = []tree.CreateOption{yyDollar[1].createOptionUnion()} } yyVAL.union = yyLOCAL - case 1183: + case 1180: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7798 +//line mysql_sql.y:7764 { yyLOCAL = append(yyDollar[1].createOptionsUnion(), yyDollar[2].createOptionUnion()) } yyVAL.union = yyLOCAL - case 1184: + case 1181: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7804 +//line mysql_sql.y:7770 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Charset = yyDollar[4].str @@ -20121,10 +20010,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1185: + case 1182: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7813 +//line mysql_sql.y:7779 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Collate = yyDollar[4].str @@ -20134,35 +20023,35 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1186: + case 1183: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7822 +//line mysql_sql.y:7788 { var Encrypt = yyDollar[4].str yyLOCAL = tree.NewCreateOptionEncryption(Encrypt) } yyVAL.union = yyLOCAL - case 1187: + case 1184: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7828 +//line mysql_sql.y:7794 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1188: + case 1185: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7832 +//line mysql_sql.y:7798 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1189: + case 1186: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7838 +//line mysql_sql.y:7804 { var TableName = yyDollar[4].tableNameUnion() var Options = yyDollar[7].connectorOptionsUnion() @@ -20172,18 +20061,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1190: + case 1187: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7849 +//line mysql_sql.y:7815 { yyLOCAL = &tree.ShowConnectors{} } yyVAL.union = yyLOCAL - case 1191: + case 1188: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7855 +//line mysql_sql.y:7821 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20200,10 +20089,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1192: + case 1189: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7873 +//line mysql_sql.y:7839 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20220,10 +20109,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1193: + case 1190: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7891 +//line mysql_sql.y:7857 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20240,10 +20129,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1194: + case 1191: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7909 +//line mysql_sql.y:7875 { var Replace = yyDollar[2].sourceOptionalUnion() var IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20259,26 +20148,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1195: + case 1192: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7925 +//line mysql_sql.y:7891 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1196: + case 1193: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7929 +//line mysql_sql.y:7895 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1197: + case 1194: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7938 +//line mysql_sql.y:7904 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20291,10 +20180,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1198: + case 1195: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7950 +//line mysql_sql.y:7916 { t := tree.NewCreateTable() t.IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20304,10 +20193,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1199: + case 1196: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7959 +//line mysql_sql.y:7925 { t := tree.NewCreateTable() t.IsClusterTable = true @@ -20320,10 +20209,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1200: + case 1197: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7971 +//line mysql_sql.y:7937 { t := tree.NewCreateTable() t.IsDynamicTable = true @@ -20334,10 +20223,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1201: + case 1198: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7981 +//line mysql_sql.y:7947 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20348,10 +20237,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1202: + case 1199: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7991 +//line mysql_sql.y:7957 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20363,10 +20252,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1203: + case 1200: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8002 +//line mysql_sql.y:7968 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20377,10 +20266,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1204: + case 1201: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8012 +//line mysql_sql.y:7978 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20392,10 +20281,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1205: + case 1202: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8023 +//line mysql_sql.y:7989 { t := tree.NewCreateTable() t.IsAsLike = true @@ -20404,10 +20293,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1206: + case 1203: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8031 +//line mysql_sql.y:7997 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20417,19 +20306,19 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1207: + case 1204: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8042 +//line mysql_sql.y:8008 { yyLOCAL = yyDollar[1].loadParamUnion() yyLOCAL.Tail = yyDollar[2].tailParamUnion() } yyVAL.union = yyLOCAL - case 1208: + case 1205: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8049 +//line mysql_sql.y:8015 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20440,10 +20329,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1209: + case 1206: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8059 +//line mysql_sql.y:8025 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20457,10 +20346,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1210: + case 1207: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8072 +//line mysql_sql.y:8038 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20469,10 +20358,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1211: + case 1208: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8080 +//line mysql_sql.y:8046 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20482,10 +20371,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1212: + case 1209: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8089 +//line mysql_sql.y:8055 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20494,55 +20383,55 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1213: + case 1210: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8098 +//line mysql_sql.y:8064 { yyVAL.str = "" } - case 1214: + case 1211: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:8102 +//line mysql_sql.y:8068 { yyVAL.str = yyDollar[4].str } - case 1215: + case 1212: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8108 +//line mysql_sql.y:8074 { yyLOCAL = yyDollar[1].strsUnion() } yyVAL.union = yyLOCAL - case 1216: + case 1213: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8112 +//line mysql_sql.y:8078 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].strsUnion()...) } yyVAL.union = yyLOCAL - case 1217: + case 1214: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8117 +//line mysql_sql.y:8083 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 1218: + case 1215: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8121 +//line mysql_sql.y:8087 { yyLOCAL = append(yyLOCAL, yyDollar[1].str) yyLOCAL = append(yyLOCAL, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1219: + case 1216: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.TailParameter -//line mysql_sql.y:8128 +//line mysql_sql.y:8094 { yyLOCAL = &tree.TailParameter{ Charset: yyDollar[1].str, @@ -20554,22 +20443,22 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1220: + case 1217: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8140 +//line mysql_sql.y:8106 { yyVAL.str = "" } - case 1221: + case 1218: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8144 +//line mysql_sql.y:8110 { yyVAL.str = yyDollar[2].str } - case 1222: + case 1219: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8150 +//line mysql_sql.y:8116 { var Name = yyDollar[4].tableNameUnion() var Type = yyDollar[5].columnTypeUnion() @@ -20591,10 +20480,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1223: + case 1220: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8171 +//line mysql_sql.y:8137 { locale := "" fstr := "bigint" @@ -20609,44 +20498,44 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1224: + case 1221: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8185 +//line mysql_sql.y:8151 { yyLOCAL = yyDollar[2].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1225: + case 1222: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8189 +//line mysql_sql.y:8155 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1226: + case 1223: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8193 +//line mysql_sql.y:8159 { yyLOCAL = &tree.TypeOption{ Type: yyDollar[2].columnTypeUnion(), } } yyVAL.union = yyLOCAL - case 1227: + case 1224: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8199 +//line mysql_sql.y:8165 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1228: + case 1225: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8203 +//line mysql_sql.y:8169 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20654,10 +20543,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1229: + case 1226: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8210 +//line mysql_sql.y:8176 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20665,10 +20554,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1230: + case 1227: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8217 +//line mysql_sql.y:8183 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20676,10 +20565,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1231: + case 1228: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8224 +//line mysql_sql.y:8190 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20687,42 +20576,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1232: + case 1229: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8231 +//line mysql_sql.y:8197 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1233: + case 1230: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8235 +//line mysql_sql.y:8201 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1234: + case 1231: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8239 +//line mysql_sql.y:8205 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1235: + case 1232: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8243 +//line mysql_sql.y:8209 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1236: + case 1233: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8247 +//line mysql_sql.y:8213 { yyLOCAL = &tree.MinValueOption{ Minus: false, @@ -20730,10 +20619,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1237: + case 1234: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8254 +//line mysql_sql.y:8220 { yyLOCAL = &tree.MinValueOption{ Minus: true, @@ -20741,18 +20630,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1238: + case 1235: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8261 +//line mysql_sql.y:8227 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1239: + case 1236: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8265 +//line mysql_sql.y:8231 { yyLOCAL = &tree.MaxValueOption{ Minus: false, @@ -20760,10 +20649,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1240: + case 1237: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8272 +//line mysql_sql.y:8238 { yyLOCAL = &tree.MaxValueOption{ Minus: true, @@ -20771,46 +20660,46 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1241: + case 1238: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8279 +//line mysql_sql.y:8245 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1242: + case 1239: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8283 +//line mysql_sql.y:8249 { yyLOCAL = &tree.CycleOption{ Cycle: false, } } yyVAL.union = yyLOCAL - case 1243: + case 1240: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8289 +//line mysql_sql.y:8255 { yyLOCAL = &tree.CycleOption{ Cycle: true, } } yyVAL.union = yyLOCAL - case 1244: + case 1241: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8295 +//line mysql_sql.y:8261 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1245: + case 1242: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8299 +//line mysql_sql.y:8265 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20818,10 +20707,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1246: + case 1243: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8306 +//line mysql_sql.y:8272 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20829,10 +20718,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1247: + case 1244: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8313 +//line mysql_sql.y:8279 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20840,10 +20729,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1248: + case 1245: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8320 +//line mysql_sql.y:8286 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20851,58 +20740,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1249: + case 1246: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8327 +//line mysql_sql.y:8293 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1250: + case 1247: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8331 +//line mysql_sql.y:8297 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1251: + case 1248: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8336 +//line mysql_sql.y:8302 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1252: + case 1249: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8340 +//line mysql_sql.y:8306 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1253: + case 1250: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8344 +//line mysql_sql.y:8310 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1254: + case 1251: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8349 +//line mysql_sql.y:8315 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1255: + case 1252: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8353 +//line mysql_sql.y:8319 { yyDollar[3].partitionByUnion().Num = uint64(yyDollar[4].int64ValUnion()) var PartBy = yyDollar[3].partitionByUnion() @@ -20915,18 +20804,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1256: + case 1253: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8366 +//line mysql_sql.y:8332 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1257: + case 1254: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8370 +//line mysql_sql.y:8336 { var ColumnList = []*tree.UnresolvedName{yyDollar[3].unresolvedNameUnion()} yyLOCAL = tree.NewClusterByOption( @@ -20935,10 +20824,10 @@ yydefault: } yyVAL.union = yyLOCAL - case 1258: + case 1255: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8378 +//line mysql_sql.y:8344 { var ColumnList = yyDollar[4].unresolveNamesUnion() yyLOCAL = tree.NewClusterByOption( @@ -20946,18 +20835,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1259: + case 1256: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8386 +//line mysql_sql.y:8352 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1260: + case 1257: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8390 +//line mysql_sql.y:8356 { var IsSubPartition = true var PType = yyDollar[3].partitionByUnion() @@ -20969,42 +20858,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1261: + case 1258: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8402 +//line mysql_sql.y:8368 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1262: + case 1259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8406 +//line mysql_sql.y:8372 { yyLOCAL = yyDollar[2].partitionsUnion() } yyVAL.union = yyLOCAL - case 1263: + case 1260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8412 +//line mysql_sql.y:8378 { yyLOCAL = []*tree.Partition{yyDollar[1].partitionUnion()} } yyVAL.union = yyLOCAL - case 1264: + case 1261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8416 +//line mysql_sql.y:8382 { yyLOCAL = append(yyDollar[1].partitionsUnion(), yyDollar[3].partitionUnion()) } yyVAL.union = yyLOCAL - case 1265: + case 1262: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8422 +//line mysql_sql.y:8388 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -21018,10 +20907,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1266: + case 1263: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8435 +//line mysql_sql.y:8401 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -21035,42 +20924,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1267: + case 1264: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8449 +//line mysql_sql.y:8415 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1268: + case 1265: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8453 +//line mysql_sql.y:8419 { yyLOCAL = yyDollar[2].subPartitionsUnion() } yyVAL.union = yyLOCAL - case 1269: + case 1266: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8459 +//line mysql_sql.y:8425 { yyLOCAL = []*tree.SubPartition{yyDollar[1].subPartitionUnion()} } yyVAL.union = yyLOCAL - case 1270: + case 1267: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8463 +//line mysql_sql.y:8429 { yyLOCAL = append(yyDollar[1].subPartitionsUnion(), yyDollar[3].subPartitionUnion()) } yyVAL.union = yyLOCAL - case 1271: + case 1268: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8469 +//line mysql_sql.y:8435 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options []tree.TableOption @@ -21080,10 +20969,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1272: + case 1269: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8478 +//line mysql_sql.y:8444 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options = yyDollar[3].tableOptionsUnion() @@ -21093,53 +20982,53 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1273: + case 1270: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8489 +//line mysql_sql.y:8455 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1274: + case 1271: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8493 +//line mysql_sql.y:8459 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1275: + case 1272: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8498 +//line mysql_sql.y:8464 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1276: + case 1273: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8502 +//line mysql_sql.y:8468 { expr := tree.NewMaxValue() var valueList = tree.Exprs{expr} yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1277: + case 1274: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8508 +//line mysql_sql.y:8474 { var valueList = yyDollar[5].exprsUnion() yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1278: + case 1275: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8513 +//line mysql_sql.y:8479 { var valueList = yyDollar[4].exprsUnion() yyLOCAL = tree.NewValuesIn( @@ -21147,18 +21036,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1279: + case 1276: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8521 +//line mysql_sql.y:8487 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1280: + case 1277: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8525 +//line mysql_sql.y:8491 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21168,18 +21057,18 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1281: + case 1278: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8535 +//line mysql_sql.y:8501 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1282: + case 1279: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8539 +//line mysql_sql.y:8505 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21189,10 +21078,10 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1283: + case 1280: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8550 +//line mysql_sql.y:8516 { rangeTyp := tree.NewRangeType() rangeTyp.Expr = yyDollar[3].exprUnion() @@ -21201,10 +21090,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1284: + case 1281: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8558 +//line mysql_sql.y:8524 { rangeTyp := tree.NewRangeType() rangeTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21213,10 +21102,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1285: + case 1282: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8566 +//line mysql_sql.y:8532 { listTyp := tree.NewListType() listTyp.Expr = yyDollar[3].exprUnion() @@ -21225,10 +21114,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1286: + case 1283: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8574 +//line mysql_sql.y:8540 { listTyp := tree.NewListType() listTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21237,10 +21126,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1288: + case 1285: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8585 +//line mysql_sql.y:8551 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21250,10 +21139,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1289: + case 1286: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8594 +//line mysql_sql.y:8560 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21264,10 +21153,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1290: + case 1287: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8604 +//line mysql_sql.y:8570 { Linear := yyDollar[1].boolValUnion() Expr := yyDollar[4].exprUnion() @@ -21277,58 +21166,58 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1291: + case 1288: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8614 +//line mysql_sql.y:8580 { yyLOCAL = 2 } yyVAL.union = yyLOCAL - case 1292: + case 1289: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8618 +//line mysql_sql.y:8584 { yyLOCAL = yyDollar[3].item.(int64) } yyVAL.union = yyLOCAL - case 1293: + case 1290: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8623 +//line mysql_sql.y:8589 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1294: + case 1291: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8627 +//line mysql_sql.y:8593 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1295: + case 1292: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8633 +//line mysql_sql.y:8599 { yyLOCAL = []*tree.ConnectorOption{yyDollar[1].connectorOptionUnion()} } yyVAL.union = yyLOCAL - case 1296: + case 1293: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8637 +//line mysql_sql.y:8603 { yyLOCAL = append(yyDollar[1].connectorOptionsUnion(), yyDollar[3].connectorOptionUnion()) } yyVAL.union = yyLOCAL - case 1297: + case 1294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8643 +//line mysql_sql.y:8609 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21338,10 +21227,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1298: + case 1295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8652 +//line mysql_sql.y:8618 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21351,42 +21240,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1299: + case 1296: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8662 +//line mysql_sql.y:8628 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1300: + case 1297: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8666 +//line mysql_sql.y:8632 { yyLOCAL = yyDollar[3].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1301: + case 1298: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8672 +//line mysql_sql.y:8638 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1302: + case 1299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8676 +//line mysql_sql.y:8642 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1303: + case 1300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8682 +//line mysql_sql.y:8648 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21396,10 +21285,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1304: + case 1301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8691 +//line mysql_sql.y:8657 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21409,348 +21298,348 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1305: + case 1302: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8701 +//line mysql_sql.y:8667 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1306: + case 1303: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8705 +//line mysql_sql.y:8671 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1307: + case 1304: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8711 +//line mysql_sql.y:8677 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1308: + case 1305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8715 +//line mysql_sql.y:8681 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1309: + case 1306: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8719 +//line mysql_sql.y:8685 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1310: + case 1307: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8725 +//line mysql_sql.y:8691 { yyLOCAL = tree.NewTableOptionAUTOEXTEND_SIZE(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1311: + case 1308: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8729 +//line mysql_sql.y:8695 { yyLOCAL = tree.NewTableOptionAutoIncrement(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1312: + case 1309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8733 +//line mysql_sql.y:8699 { yyLOCAL = tree.NewTableOptionAvgRowLength(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1313: + case 1310: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8737 +//line mysql_sql.y:8703 { yyLOCAL = tree.NewTableOptionCharset(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1314: + case 1311: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8741 +//line mysql_sql.y:8707 { yyLOCAL = tree.NewTableOptionCollate(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1315: + case 1312: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8745 +//line mysql_sql.y:8711 { yyLOCAL = tree.NewTableOptionChecksum(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1316: + case 1313: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8749 +//line mysql_sql.y:8715 { str := util.DealCommentString(yyDollar[3].str) yyLOCAL = tree.NewTableOptionComment(str) } yyVAL.union = yyLOCAL - case 1317: + case 1314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8754 +//line mysql_sql.y:8720 { yyLOCAL = tree.NewTableOptionCompression(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1318: + case 1315: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8758 +//line mysql_sql.y:8724 { yyLOCAL = tree.NewTableOptionConnection(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1319: + case 1316: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8762 +//line mysql_sql.y:8728 { yyLOCAL = tree.NewTableOptionDataDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1320: + case 1317: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8766 +//line mysql_sql.y:8732 { yyLOCAL = tree.NewTableOptionIndexDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1321: + case 1318: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8770 +//line mysql_sql.y:8736 { yyLOCAL = tree.NewTableOptionDelayKeyWrite(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1322: + case 1319: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8774 +//line mysql_sql.y:8740 { yyLOCAL = tree.NewTableOptionEncryption(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1323: + case 1320: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8778 +//line mysql_sql.y:8744 { yyLOCAL = tree.NewTableOptionEngine(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1324: + case 1321: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8782 +//line mysql_sql.y:8748 { yyLOCAL = tree.NewTableOptionEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1325: + case 1322: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8786 +//line mysql_sql.y:8752 { yyLOCAL = tree.NewTableOptionInsertMethod(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1326: + case 1323: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8790 +//line mysql_sql.y:8756 { yyLOCAL = tree.NewTableOptionKeyBlockSize(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1327: + case 1324: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8794 +//line mysql_sql.y:8760 { yyLOCAL = tree.NewTableOptionMaxRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1328: + case 1325: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8798 +//line mysql_sql.y:8764 { yyLOCAL = tree.NewTableOptionMinRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1329: + case 1326: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8802 +//line mysql_sql.y:8768 { t := tree.NewTableOptionPackKeys() t.Value = yyDollar[3].item.(int64) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1330: + case 1327: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8808 +//line mysql_sql.y:8774 { t := tree.NewTableOptionPackKeys() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1331: + case 1328: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8814 +//line mysql_sql.y:8780 { yyLOCAL = tree.NewTableOptionPassword(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1332: + case 1329: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8818 +//line mysql_sql.y:8784 { yyLOCAL = tree.NewTableOptionRowFormat(yyDollar[3].rowFormatTypeUnion()) } yyVAL.union = yyLOCAL - case 1333: + case 1330: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8822 +//line mysql_sql.y:8788 { yyLOCAL = tree.NewTTableOptionStartTrans(true) } yyVAL.union = yyLOCAL - case 1334: + case 1331: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8826 +//line mysql_sql.y:8792 { yyLOCAL = tree.NewTTableOptionSecondaryEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1335: + case 1332: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8830 +//line mysql_sql.y:8796 { t := tree.NewTableOptionStatsAutoRecalc() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1336: + case 1333: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8836 +//line mysql_sql.y:8802 { t := tree.NewTableOptionStatsAutoRecalc() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1337: + case 1334: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8842 +//line mysql_sql.y:8808 { t := tree.NewTableOptionStatsPersistent() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1338: + case 1335: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8848 +//line mysql_sql.y:8814 { t := tree.NewTableOptionStatsPersistent() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1339: + case 1336: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8854 +//line mysql_sql.y:8820 { t := tree.NewTableOptionStatsSamplePages() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1340: + case 1337: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8860 +//line mysql_sql.y:8826 { t := tree.NewTableOptionStatsSamplePages() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1341: + case 1338: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8866 +//line mysql_sql.y:8832 { yyLOCAL = tree.NewTableOptionTablespace(yyDollar[3].cstrUnion().Compare(), "") } yyVAL.union = yyLOCAL - case 1342: + case 1339: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8870 +//line mysql_sql.y:8836 { yyLOCAL = tree.NewTableOptionTablespace("", yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1343: + case 1340: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8874 +//line mysql_sql.y:8840 { yyLOCAL = tree.NewTableOptionUnion(yyDollar[4].tableNamesUnion()) } yyVAL.union = yyLOCAL - case 1344: + case 1341: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8878 +//line mysql_sql.y:8844 { var Preperties = yyDollar[3].propertiesUnion() yyLOCAL = tree.NewTableOptionProperties(Preperties) } yyVAL.union = yyLOCAL - case 1345: + case 1342: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8883 +//line mysql_sql.y:8849 { var retentionPeriod = uint64(yyDollar[4].item.(int64)) var retentionUnit = strings.ToLower(yyDollar[5].str) @@ -21760,26 +21649,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1346: + case 1343: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8894 +//line mysql_sql.y:8860 { yyLOCAL = []tree.Property{yyDollar[1].propertyUnion()} } yyVAL.union = yyLOCAL - case 1347: + case 1344: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8898 +//line mysql_sql.y:8864 { yyLOCAL = append(yyDollar[1].propertiesUnion(), yyDollar[3].propertyUnion()) } yyVAL.union = yyLOCAL - case 1348: + case 1345: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Property -//line mysql_sql.y:8904 +//line mysql_sql.y:8870 { var Key = yyDollar[1].str var Value = yyDollar[3].str @@ -21789,96 +21678,96 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1349: + case 1346: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8915 +//line mysql_sql.y:8881 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1350: + case 1347: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8919 +//line mysql_sql.y:8885 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1351: + case 1348: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8925 +//line mysql_sql.y:8891 { yyLOCAL = tree.ROW_FORMAT_DEFAULT } yyVAL.union = yyLOCAL - case 1352: + case 1349: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8929 +//line mysql_sql.y:8895 { yyLOCAL = tree.ROW_FORMAT_DYNAMIC } yyVAL.union = yyLOCAL - case 1353: + case 1350: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8933 +//line mysql_sql.y:8899 { yyLOCAL = tree.ROW_FORMAT_FIXED } yyVAL.union = yyLOCAL - case 1354: + case 1351: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8937 +//line mysql_sql.y:8903 { yyLOCAL = tree.ROW_FORMAT_COMPRESSED } yyVAL.union = yyLOCAL - case 1355: + case 1352: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8941 +//line mysql_sql.y:8907 { yyLOCAL = tree.ROW_FORMAT_REDUNDANT } yyVAL.union = yyLOCAL - case 1356: + case 1353: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8945 +//line mysql_sql.y:8911 { yyLOCAL = tree.ROW_FORMAT_COMPACT } yyVAL.union = yyLOCAL - case 1361: + case 1358: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8959 +//line mysql_sql.y:8925 { yyLOCAL = tree.TableNames{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 1362: + case 1359: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8963 +//line mysql_sql.y:8929 { yyLOCAL = append(yyDollar[1].tableNamesUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 1363: + case 1360: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:8972 +//line mysql_sql.y:8938 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[2].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1364: + case 1361: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:8978 +//line mysql_sql.y:8944 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) @@ -21886,18 +21775,18 @@ yydefault: yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[4].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1365: + case 1362: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8986 +//line mysql_sql.y:8952 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1366: + case 1363: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8990 +//line mysql_sql.y:8956 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPTIME, @@ -21905,10 +21794,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1367: + case 1364: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8997 +//line mysql_sql.y:8963 { var str = yyDollar[4].cstrUnion().Compare() yyLOCAL = &tree.AtTimeStamp{ @@ -21918,10 +21807,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1368: + case 1365: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9006 +//line mysql_sql.y:8972 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPSNAPSHOT, @@ -21930,10 +21819,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1369: + case 1366: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9014 +//line mysql_sql.y:8980 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATMOTIMESTAMP, @@ -21941,10 +21830,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1370: + case 1367: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9021 +//line mysql_sql.y:8987 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ASOFTIMESTAMP, @@ -21952,74 +21841,74 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1371: + case 1368: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9029 +//line mysql_sql.y:8995 { yyLOCAL = tree.TableDefs(nil) } yyVAL.union = yyLOCAL - case 1373: + case 1370: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9036 +//line mysql_sql.y:9002 { yyLOCAL = tree.TableDefs{yyDollar[1].tableDefUnion()} } yyVAL.union = yyLOCAL - case 1374: + case 1371: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9040 +//line mysql_sql.y:9006 { yyLOCAL = append(yyDollar[1].tableDefsUnion(), yyDollar[3].tableDefUnion()) } yyVAL.union = yyLOCAL - case 1375: + case 1372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9046 +//line mysql_sql.y:9012 { yyLOCAL = tree.TableDef(yyDollar[1].columnTableDefUnion()) } yyVAL.union = yyLOCAL - case 1376: + case 1373: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9050 +//line mysql_sql.y:9016 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1377: + case 1374: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9054 +//line mysql_sql.y:9020 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1378: + case 1375: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9060 +//line mysql_sql.y:9026 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1379: + case 1376: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9064 +//line mysql_sql.y:9030 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1380: + case 1377: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9070 +//line mysql_sql.y:9036 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -22033,10 +21922,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1381: + case 1378: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9083 +//line mysql_sql.y:9049 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -22050,10 +21939,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1382: + case 1379: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9096 +//line mysql_sql.y:9062 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -22095,10 +21984,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1383: + case 1380: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9137 +//line mysql_sql.y:9103 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -22139,10 +22028,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1384: + case 1381: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9179 +//line mysql_sql.y:9145 { if yyDollar[1].str != "" { switch v := yyDollar[2].tableDefUnion().(type) { @@ -22157,18 +22046,18 @@ yydefault: yyLOCAL = yyDollar[2].tableDefUnion() } yyVAL.union = yyLOCAL - case 1385: + case 1382: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9193 +//line mysql_sql.y:9159 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1386: + case 1383: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9199 +//line mysql_sql.y:9165 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22182,10 +22071,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1387: + case 1384: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9212 +//line mysql_sql.y:9178 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22199,10 +22088,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1388: + case 1385: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9225 +//line mysql_sql.y:9191 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22216,10 +22105,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1389: + case 1386: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9238 +//line mysql_sql.y:9204 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22233,10 +22122,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1390: + case 1387: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9251 +//line mysql_sql.y:9217 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var KeyParts = yyDollar[6].keyPartsUnion() @@ -22252,10 +22141,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1391: + case 1388: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9266 +//line mysql_sql.y:9232 { var Expr = yyDollar[3].exprUnion() var Enforced = yyDollar[5].boolValUnion() @@ -22265,327 +22154,327 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1392: + case 1389: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9276 +//line mysql_sql.y:9242 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1394: + case 1391: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9282 +//line mysql_sql.y:9248 { yyVAL.str = "" } - case 1395: + case 1392: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9286 +//line mysql_sql.y:9252 { yyVAL.str = yyDollar[1].str } - case 1398: + case 1395: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9296 +//line mysql_sql.y:9262 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = "" } yyVAL.union = yyLOCAL - case 1399: + case 1396: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9302 +//line mysql_sql.y:9268 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1400: + case 1397: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9308 +//line mysql_sql.y:9274 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].cstrUnion().Compare() yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1412: + case 1409: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9330 +//line mysql_sql.y:9296 { yyVAL.str = "" } - case 1413: + case 1410: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9334 +//line mysql_sql.y:9300 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1414: + case 1411: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ColumnTableDef -//line mysql_sql.y:9340 +//line mysql_sql.y:9306 { yyLOCAL = tree.NewColumnTableDef(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[3].columnAttributesUnion()) } yyVAL.union = yyLOCAL - case 1415: + case 1412: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9346 +//line mysql_sql.y:9312 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1416: + case 1413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9350 +//line mysql_sql.y:9316 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1417: + case 1414: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9355 +//line mysql_sql.y:9321 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1418: + case 1415: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9363 +//line mysql_sql.y:9329 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1419: + case 1416: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9367 +//line mysql_sql.y:9333 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1420: + case 1417: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9371 +//line mysql_sql.y:9337 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1421: + case 1418: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9375 +//line mysql_sql.y:9341 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1422: + case 1419: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9381 +//line mysql_sql.y:9347 { yyLOCAL = yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) } yyVAL.union = yyLOCAL - case 1423: + case 1420: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9387 +//line mysql_sql.y:9353 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1424: + case 1421: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9391 +//line mysql_sql.y:9357 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1425: + case 1422: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9396 +//line mysql_sql.y:9362 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1426: + case 1423: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9403 +//line mysql_sql.y:9369 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1427: + case 1424: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9407 +//line mysql_sql.y:9373 { yyLOCAL = yyDollar[1].columnAttributesUnion() } yyVAL.union = yyLOCAL - case 1428: + case 1425: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9413 +//line mysql_sql.y:9379 { yyLOCAL = []tree.ColumnAttribute{yyDollar[1].columnAttributeUnion()} } yyVAL.union = yyLOCAL - case 1429: + case 1426: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9417 +//line mysql_sql.y:9383 { yyLOCAL = append(yyDollar[1].columnAttributesUnion(), yyDollar[2].columnAttributeUnion()) } yyVAL.union = yyLOCAL - case 1430: + case 1427: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9423 +//line mysql_sql.y:9389 { yyLOCAL = tree.NewAttributeNull(true) } yyVAL.union = yyLOCAL - case 1431: + case 1428: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9427 +//line mysql_sql.y:9393 { yyLOCAL = tree.NewAttributeNull(false) } yyVAL.union = yyLOCAL - case 1432: + case 1429: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9431 +//line mysql_sql.y:9397 { yyLOCAL = tree.NewAttributeDefault(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1433: + case 1430: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9435 +//line mysql_sql.y:9401 { yyLOCAL = tree.NewAttributeAutoIncrement() } yyVAL.union = yyLOCAL - case 1434: + case 1431: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9439 +//line mysql_sql.y:9405 { yyLOCAL = yyDollar[1].columnAttributeUnion() } yyVAL.union = yyLOCAL - case 1435: + case 1432: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9443 +//line mysql_sql.y:9409 { str := util.DealCommentString(yyDollar[2].str) yyLOCAL = tree.NewAttributeComment(tree.NewNumVal(str, str, false, tree.P_char)) } yyVAL.union = yyLOCAL - case 1436: + case 1433: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9448 +//line mysql_sql.y:9414 { yyLOCAL = tree.NewAttributeCollate(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1437: + case 1434: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9452 +//line mysql_sql.y:9418 { yyLOCAL = tree.NewAttributeColumnFormat(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1438: + case 1435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9456 +//line mysql_sql.y:9422 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1439: + case 1436: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9460 +//line mysql_sql.y:9426 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1440: + case 1437: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9464 +//line mysql_sql.y:9430 { yyLOCAL = tree.NewAttributeStorage(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1441: + case 1438: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9468 +//line mysql_sql.y:9434 { yyLOCAL = tree.NewAttributeAutoRandom(int(yyDollar[2].int64ValUnion())) } yyVAL.union = yyLOCAL - case 1442: + case 1439: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9472 +//line mysql_sql.y:9438 { yyLOCAL = yyDollar[1].attributeReferenceUnion() } yyVAL.union = yyLOCAL - case 1443: + case 1440: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9476 +//line mysql_sql.y:9442 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), false, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1444: + case 1441: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9480 +//line mysql_sql.y:9446 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), yyDollar[6].boolValUnion(), yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1445: + case 1442: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9484 +//line mysql_sql.y:9450 { name := tree.NewUnresolvedColName(yyDollar[3].str) var es tree.Exprs = nil @@ -22600,98 +22489,98 @@ yydefault: yyLOCAL = tree.NewAttributeOnUpdate(expr) } yyVAL.union = yyLOCAL - case 1446: + case 1443: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9498 +//line mysql_sql.y:9464 { yyLOCAL = tree.NewAttributeLowCardinality() } yyVAL.union = yyLOCAL - case 1447: + case 1444: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9502 +//line mysql_sql.y:9468 { yyLOCAL = tree.NewAttributeVisable(true) } yyVAL.union = yyLOCAL - case 1448: + case 1445: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9506 +//line mysql_sql.y:9472 { yyLOCAL = tree.NewAttributeVisable(false) } yyVAL.union = yyLOCAL - case 1449: + case 1446: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9510 +//line mysql_sql.y:9476 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1450: + case 1447: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9514 +//line mysql_sql.y:9480 { yyLOCAL = tree.NewAttributeHeader(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1451: + case 1448: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9518 +//line mysql_sql.y:9484 { yyLOCAL = tree.NewAttributeHeaders() } yyVAL.union = yyLOCAL - case 1452: + case 1449: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9524 +//line mysql_sql.y:9490 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1453: + case 1450: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9528 +//line mysql_sql.y:9494 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1454: + case 1451: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9533 +//line mysql_sql.y:9499 { yyVAL.str = "" } - case 1455: + case 1452: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9537 +//line mysql_sql.y:9503 { yyVAL.str = yyDollar[1].str } - case 1456: + case 1453: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9543 +//line mysql_sql.y:9509 { yyVAL.str = "" } - case 1457: + case 1454: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:9547 +//line mysql_sql.y:9513 { yyVAL.str = yyDollar[2].cstrUnion().Compare() } - case 1458: + case 1455: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AttributeReference -//line mysql_sql.y:9553 +//line mysql_sql.y:9519 { var TableName = yyDollar[2].tableNameUnion() var KeyParts = yyDollar[3].keyPartsUnion() @@ -22707,10 +22596,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1459: + case 1456: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9570 +//line mysql_sql.y:9536 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22718,10 +22607,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1460: + case 1457: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9577 +//line mysql_sql.y:9543 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22729,10 +22618,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1461: + case 1458: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9584 +//line mysql_sql.y:9550 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22740,10 +22629,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1462: + case 1459: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9591 +//line mysql_sql.y:9557 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22751,10 +22640,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1463: + case 1460: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9598 +//line mysql_sql.y:9564 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[2].referenceOptionTypeUnion(), @@ -22762,354 +22651,354 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1464: + case 1461: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9607 +//line mysql_sql.y:9573 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1465: + case 1462: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9613 +//line mysql_sql.y:9579 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1466: + case 1463: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9619 +//line mysql_sql.y:9585 { yyLOCAL = tree.REFERENCE_OPTION_RESTRICT } yyVAL.union = yyLOCAL - case 1467: + case 1464: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9623 +//line mysql_sql.y:9589 { yyLOCAL = tree.REFERENCE_OPTION_CASCADE } yyVAL.union = yyLOCAL - case 1468: + case 1465: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9627 +//line mysql_sql.y:9593 { yyLOCAL = tree.REFERENCE_OPTION_SET_NULL } yyVAL.union = yyLOCAL - case 1469: + case 1466: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9631 +//line mysql_sql.y:9597 { yyLOCAL = tree.REFERENCE_OPTION_NO_ACTION } yyVAL.union = yyLOCAL - case 1470: + case 1467: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9635 +//line mysql_sql.y:9601 { yyLOCAL = tree.REFERENCE_OPTION_SET_DEFAULT } yyVAL.union = yyLOCAL - case 1471: + case 1468: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9640 +//line mysql_sql.y:9606 { yyLOCAL = tree.MATCH_INVALID } yyVAL.union = yyLOCAL - case 1473: + case 1470: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9647 +//line mysql_sql.y:9613 { yyLOCAL = tree.MATCH_FULL } yyVAL.union = yyLOCAL - case 1474: + case 1471: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9651 +//line mysql_sql.y:9617 { yyLOCAL = tree.MATCH_PARTIAL } yyVAL.union = yyLOCAL - case 1475: + case 1472: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9655 +//line mysql_sql.y:9621 { yyLOCAL = tree.MATCH_SIMPLE } yyVAL.union = yyLOCAL - case 1476: + case 1473: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9660 +//line mysql_sql.y:9626 { yyLOCAL = tree.FULLTEXT_DEFAULT } yyVAL.union = yyLOCAL - case 1477: + case 1474: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9664 +//line mysql_sql.y:9630 { yyLOCAL = tree.FULLTEXT_NL } yyVAL.union = yyLOCAL - case 1478: + case 1475: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9668 +//line mysql_sql.y:9634 { yyLOCAL = tree.FULLTEXT_NL_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1479: + case 1476: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9672 +//line mysql_sql.y:9638 { yyLOCAL = tree.FULLTEXT_BOOLEAN } yyVAL.union = yyLOCAL - case 1480: + case 1477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9676 +//line mysql_sql.y:9642 { yyLOCAL = tree.FULLTEXT_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1481: + case 1478: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9681 +//line mysql_sql.y:9647 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1482: + case 1479: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9685 +//line mysql_sql.y:9651 { yyLOCAL = yyDollar[2].keyPartsUnion() } yyVAL.union = yyLOCAL - case 1483: + case 1480: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9690 +//line mysql_sql.y:9656 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 1484: + case 1481: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9694 +//line mysql_sql.y:9660 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 1491: + case 1488: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Subquery -//line mysql_sql.y:9710 +//line mysql_sql.y:9676 { yyLOCAL = &tree.Subquery{Select: yyDollar[1].selectStatementUnion(), Exists: false} } yyVAL.union = yyLOCAL - case 1492: + case 1489: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9716 +//line mysql_sql.y:9682 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_AND, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1493: + case 1490: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9720 +//line mysql_sql.y:9686 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_OR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1494: + case 1491: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9724 +//line mysql_sql.y:9690 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_XOR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1495: + case 1492: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9728 +//line mysql_sql.y:9694 { yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1496: + case 1493: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9732 +//line mysql_sql.y:9698 { yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1497: + case 1494: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9736 +//line mysql_sql.y:9702 { yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1498: + case 1495: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9740 +//line mysql_sql.y:9706 { yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1499: + case 1496: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9744 +//line mysql_sql.y:9710 { yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1500: + case 1497: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9748 +//line mysql_sql.y:9714 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1501: + case 1498: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9752 +//line mysql_sql.y:9718 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1502: + case 1499: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9756 +//line mysql_sql.y:9722 { yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1503: + case 1500: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9760 +//line mysql_sql.y:9726 { yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1504: + case 1501: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9764 +//line mysql_sql.y:9730 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1505: + case 1502: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9770 +//line mysql_sql.y:9736 { yyLOCAL = yyDollar[1].unresolvedNameUnion() } yyVAL.union = yyLOCAL - case 1506: + case 1503: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9774 +//line mysql_sql.y:9740 { yyLOCAL = yyDollar[1].varExprUnion() } yyVAL.union = yyLOCAL - case 1507: + case 1504: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9778 +//line mysql_sql.y:9744 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1508: + case 1505: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9782 +//line mysql_sql.y:9748 { yyLOCAL = tree.NewParentExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1509: + case 1506: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9786 +//line mysql_sql.y:9752 { yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) } yyVAL.union = yyLOCAL - case 1510: + case 1507: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9790 +//line mysql_sql.y:9756 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1511: + case 1508: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9794 +//line mysql_sql.y:9760 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1512: + case 1509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9798 +//line mysql_sql.y:9764 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1513: + case 1510: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9802 +//line mysql_sql.y:9768 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1514: + case 1511: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9806 +//line mysql_sql.y:9772 { hint := strings.ToLower(yyDollar[2].cstrUnion().Compare()) switch hint { @@ -23152,35 +23041,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1515: + case 1512: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9848 +//line mysql_sql.y:9814 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1516: + case 1513: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9852 +//line mysql_sql.y:9818 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1517: + case 1514: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9856 +//line mysql_sql.y:9822 { yyDollar[2].subqueryUnion().Exists = true yyLOCAL = yyDollar[2].subqueryUnion() } yyVAL.union = yyLOCAL - case 1518: + case 1515: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9861 +//line mysql_sql.y:9827 { yyLOCAL = &tree.CaseExpr{ Expr: yyDollar[2].exprUnion(), @@ -23189,42 +23078,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1519: + case 1516: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9869 +//line mysql_sql.y:9835 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1520: + case 1517: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9873 +//line mysql_sql.y:9839 { yyLOCAL = tree.NewSerialExtractExpr(yyDollar[3].exprUnion(), yyDollar[5].exprUnion(), yyDollar[7].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1521: + case 1518: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9877 +//line mysql_sql.y:9843 { yyLOCAL = tree.NewBitCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1522: + case 1519: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9881 +//line mysql_sql.y:9847 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1523: + case 1520: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9885 +//line mysql_sql.y:9851 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) @@ -23235,66 +23124,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1524: + case 1521: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9895 +//line mysql_sql.y:9861 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1525: + case 1522: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9899 +//line mysql_sql.y:9865 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1526: + case 1523: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9903 +//line mysql_sql.y:9869 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1527: + case 1524: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9907 +//line mysql_sql.y:9873 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1528: + case 1525: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9911 +//line mysql_sql.y:9877 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1529: + case 1526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9915 +//line mysql_sql.y:9881 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1530: + case 1527: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9919 +//line mysql_sql.y:9885 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1531: + case 1528: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9923 +//line mysql_sql.y:9889 { val, err := tree.NewFullTextMatchFuncExpression(yyDollar[3].keyPartsUnion(), yyDollar[7].str, yyDollar[8].fullTextSearchTypeUnion()) if err != nil { @@ -23304,16 +23193,16 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1532: + case 1529: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9936 +//line mysql_sql.y:9902 { yyVAL.str = yyDollar[1].str } - case 1533: + case 1530: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9942 +//line mysql_sql.y:9908 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23323,10 +23212,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1534: + case 1531: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9951 +//line mysql_sql.y:9917 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23336,10 +23225,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1535: + case 1532: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9960 +//line mysql_sql.y:9926 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23349,10 +23238,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1536: + case 1533: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9971 +//line mysql_sql.y:9937 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, "block") @@ -23363,10 +23252,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1537: + case 1534: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9981 +//line mysql_sql.y:9947 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, yyDollar[8].str) @@ -23377,10 +23266,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1538: + case 1535: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9991 +//line mysql_sql.y:9957 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), true, nil) if err != nil { @@ -23390,10 +23279,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1539: + case 1536: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10000 +//line mysql_sql.y:9966 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), true, nil) if err != nil { @@ -23403,10 +23292,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1540: + case 1537: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10010 +//line mysql_sql.y:9976 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), "block") @@ -23417,10 +23306,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1541: + case 1538: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10020 +//line mysql_sql.y:9986 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), yyDollar[8].str) @@ -23431,10 +23320,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1542: + case 1539: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10030 +//line mysql_sql.y:9996 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23444,10 +23333,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1543: + case 1540: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10039 +//line mysql_sql.y:10005 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23457,58 +23346,58 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1544: + case 1541: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10049 +//line mysql_sql.y:10015 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1545: + case 1542: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10053 +//line mysql_sql.y:10019 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1546: + case 1543: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10058 +//line mysql_sql.y:10024 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1547: + case 1544: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10062 +//line mysql_sql.y:10028 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1548: + case 1545: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10068 +//line mysql_sql.y:10034 { yyLOCAL = []*tree.When{yyDollar[1].whenClauseUnion()} } yyVAL.union = yyLOCAL - case 1549: + case 1546: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10072 +//line mysql_sql.y:10038 { yyLOCAL = append(yyDollar[1].whenClauseListUnion(), yyDollar[2].whenClauseUnion()) } yyVAL.union = yyLOCAL - case 1550: + case 1547: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.When -//line mysql_sql.y:10078 +//line mysql_sql.y:10044 { yyLOCAL = &tree.When{ Cond: yyDollar[2].exprUnion(), @@ -23516,9 +23405,9 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1551: + case 1548: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10087 +//line mysql_sql.y:10053 { t := yyVAL.columnTypeUnion() str := strings.ToLower(t.InternalType.FamilyString) @@ -23531,10 +23420,10 @@ yydefault: } } } - case 1552: + case 1549: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10099 +//line mysql_sql.y:10065 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23552,10 +23441,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1553: + case 1550: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10116 +//line mysql_sql.y:10082 { locale := "" yyLOCAL = &tree.T{ @@ -23570,10 +23459,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1555: + case 1552: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10133 +//line mysql_sql.y:10099 { locale := "" yyLOCAL = &tree.T{ @@ -23587,10 +23476,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1556: + case 1553: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10146 +//line mysql_sql.y:10112 { locale := "" yyLOCAL = &tree.T{ @@ -23604,10 +23493,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1557: + case 1554: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10159 +//line mysql_sql.y:10125 { locale := "" yyLOCAL = &tree.T{ @@ -23620,10 +23509,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1558: + case 1555: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10171 +//line mysql_sql.y:10137 { locale := "" yyLOCAL = &tree.T{ @@ -23638,10 +23527,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1559: + case 1556: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10185 +//line mysql_sql.y:10151 { locale := "" yyLOCAL = &tree.T{ @@ -23657,10 +23546,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1560: + case 1557: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10200 +//line mysql_sql.y:10166 { locale := "" yyLOCAL = &tree.T{ @@ -23676,10 +23565,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1561: + case 1558: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10215 +//line mysql_sql.y:10181 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23697,10 +23586,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1562: + case 1559: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10232 +//line mysql_sql.y:10198 { locale := "" yyLOCAL = &tree.T{ @@ -23715,95 +23604,95 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1563: + case 1560: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10247 +//line mysql_sql.y:10213 { } - case 1567: + case 1564: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10254 +//line mysql_sql.y:10220 { yyLOCAL = &tree.FrameBound{Type: tree.Following, UnBounded: true} } yyVAL.union = yyLOCAL - case 1568: + case 1565: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10258 +//line mysql_sql.y:10224 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1569: + case 1566: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10262 +//line mysql_sql.y:10228 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1570: + case 1567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10268 +//line mysql_sql.y:10234 { yyLOCAL = &tree.FrameBound{Type: tree.CurrentRow} } yyVAL.union = yyLOCAL - case 1571: + case 1568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10272 +//line mysql_sql.y:10238 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, UnBounded: true} } yyVAL.union = yyLOCAL - case 1572: + case 1569: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10276 +//line mysql_sql.y:10242 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1573: + case 1570: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10280 +//line mysql_sql.y:10246 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1574: + case 1571: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10286 +//line mysql_sql.y:10252 { yyLOCAL = tree.Rows } yyVAL.union = yyLOCAL - case 1575: + case 1572: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10290 +//line mysql_sql.y:10256 { yyLOCAL = tree.Range } yyVAL.union = yyLOCAL - case 1576: + case 1573: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10294 +//line mysql_sql.y:10260 { yyLOCAL = tree.Groups } yyVAL.union = yyLOCAL - case 1577: + case 1574: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10300 +//line mysql_sql.y:10266 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23812,10 +23701,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1578: + case 1575: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10308 +//line mysql_sql.y:10274 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23825,82 +23714,82 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1579: + case 1576: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10318 +//line mysql_sql.y:10284 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1580: + case 1577: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10322 +//line mysql_sql.y:10288 { yyLOCAL = yyDollar[1].frameClauseUnion() } yyVAL.union = yyLOCAL - case 1581: + case 1578: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10329 +//line mysql_sql.y:10295 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1582: + case 1579: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10334 +//line mysql_sql.y:10300 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1583: + case 1580: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10338 +//line mysql_sql.y:10304 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1584: + case 1581: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10343 +//line mysql_sql.y:10309 { yyVAL.str = "," } - case 1585: + case 1582: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10347 +//line mysql_sql.y:10313 { yyVAL.str = yyDollar[2].str } - case 1586: + case 1583: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10352 +//line mysql_sql.y:10318 { yyVAL.str = "1,vector_l2_ops,random,false" } - case 1587: + case 1584: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10356 +//line mysql_sql.y:10322 { yyVAL.str = yyDollar[2].str } - case 1588: + case 1585: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10361 +//line mysql_sql.y:10327 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1590: + case 1587: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10368 +//line mysql_sql.y:10334 { hasFrame := true var f *tree.FrameClause @@ -23925,10 +23814,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1591: + case 1588: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10394 +//line mysql_sql.y:10360 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23941,10 +23830,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1592: + case 1589: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10406 +//line mysql_sql.y:10372 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23957,10 +23846,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1593: + case 1590: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10418 +//line mysql_sql.y:10384 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23972,10 +23861,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1594: + case 1591: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10429 +//line mysql_sql.y:10395 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23987,10 +23876,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1595: + case 1592: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10440 +//line mysql_sql.y:10406 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -24002,10 +23891,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1596: + case 1593: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10451 +//line mysql_sql.y:10417 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24016,10 +23905,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1597: + case 1594: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10461 +//line mysql_sql.y:10427 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24030,10 +23919,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1598: + case 1595: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10471 +//line mysql_sql.y:10437 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24045,10 +23934,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1599: + case 1596: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10482 +//line mysql_sql.y:10448 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24060,10 +23949,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1600: + case 1597: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10493 +//line mysql_sql.y:10459 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24075,10 +23964,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1601: + case 1598: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10504 +//line mysql_sql.y:10470 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24090,10 +23979,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1602: + case 1599: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10515 +//line mysql_sql.y:10481 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -24105,10 +23994,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1603: + case 1600: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10526 +//line mysql_sql.y:10492 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24120,10 +24009,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1604: + case 1601: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10537 +//line mysql_sql.y:10503 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24135,10 +24024,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1605: + case 1602: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10548 +//line mysql_sql.y:10514 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24150,10 +24039,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1606: + case 1603: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10559 +//line mysql_sql.y:10525 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24165,10 +24054,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1607: + case 1604: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10570 +//line mysql_sql.y:10536 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24180,10 +24069,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1608: + case 1605: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10581 +//line mysql_sql.y:10547 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24195,10 +24084,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1609: + case 1606: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10592 +//line mysql_sql.y:10558 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24210,10 +24099,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1610: + case 1607: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10603 +//line mysql_sql.y:10569 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24225,10 +24114,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1611: + case 1608: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10614 +//line mysql_sql.y:10580 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24240,10 +24129,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1612: + case 1609: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10625 +//line mysql_sql.y:10591 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24255,10 +24144,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1613: + case 1610: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10636 +//line mysql_sql.y:10602 { name := tree.NewUnresolvedColName(yyDollar[1].str) var columnList tree.Exprs @@ -24276,10 +24165,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1617: + case 1614: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10660 +//line mysql_sql.y:10626 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24289,10 +24178,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1618: + case 1615: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10669 +//line mysql_sql.y:10635 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24302,10 +24191,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1619: + case 1616: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10678 +//line mysql_sql.y:10644 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24315,10 +24204,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1620: + case 1617: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10687 +//line mysql_sql.y:10653 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24328,10 +24217,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1621: + case 1618: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10696 +//line mysql_sql.y:10662 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24343,10 +24232,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1622: + case 1619: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10707 +//line mysql_sql.y:10673 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24356,10 +24245,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1623: + case 1620: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10716 +//line mysql_sql.y:10682 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24370,10 +24259,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1624: + case 1621: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10726 +//line mysql_sql.y:10692 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24383,10 +24272,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1625: + case 1622: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10735 +//line mysql_sql.y:10701 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24396,10 +24285,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1626: + case 1623: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10744 +//line mysql_sql.y:10710 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24409,10 +24298,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1627: + case 1624: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10753 +//line mysql_sql.y:10719 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24422,10 +24311,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1628: + case 1625: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10762 +//line mysql_sql.y:10728 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(0), "0", false, tree.P_int64) @@ -24438,10 +24327,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1629: + case 1626: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10774 +//line mysql_sql.y:10740 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(1), "1", false, tree.P_int64) @@ -24453,10 +24342,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1630: + case 1627: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10785 +//line mysql_sql.y:10751 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(2), "2", false, tree.P_int64) @@ -24470,10 +24359,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1631: + case 1628: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10798 +//line mysql_sql.y:10764 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(3), "3", false, tree.P_int64) @@ -24486,10 +24375,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1632: + case 1629: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10810 +//line mysql_sql.y:10776 { column := tree.NewUnresolvedColName(yyDollar[3].str) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24500,16 +24389,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1639: + case 1636: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10833 +//line mysql_sql.y:10799 { yyVAL.str = yyDollar[1].str } - case 1668: + case 1665: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10869 +//line mysql_sql.y:10835 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24523,10 +24412,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1669: + case 1666: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10882 +//line mysql_sql.y:10848 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24540,10 +24429,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1670: + case 1667: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10895 +//line mysql_sql.y:10861 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24555,10 +24444,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1671: + case 1668: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10907 +//line mysql_sql.y:10873 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24568,10 +24457,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1672: + case 1669: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10916 +//line mysql_sql.y:10882 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24580,10 +24469,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1673: + case 1670: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10924 +//line mysql_sql.y:10890 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24592,10 +24481,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1674: + case 1671: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10932 +//line mysql_sql.y:10898 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24609,10 +24498,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1675: + case 1672: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10945 +//line mysql_sql.y:10911 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24622,10 +24511,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1676: + case 1673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10954 +//line mysql_sql.y:10920 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24637,10 +24526,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1677: + case 1674: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10965 +//line mysql_sql.y:10931 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24652,10 +24541,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1678: + case 1675: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10976 +//line mysql_sql.y:10942 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24665,10 +24554,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1679: + case 1676: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10985 +//line mysql_sql.y:10951 { cn := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) es := yyDollar[3].exprsUnion() @@ -24681,10 +24570,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1680: + case 1677: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10997 +//line mysql_sql.y:10963 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24695,10 +24584,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1681: + case 1678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11007 +//line mysql_sql.y:10973 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24709,10 +24598,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1682: + case 1679: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11017 +//line mysql_sql.y:10983 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24722,10 +24611,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1683: + case 1680: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11026 +//line mysql_sql.y:10992 { es := tree.Exprs{yyDollar[3].exprUnion()} es = append(es, yyDollar[5].exprUnion()) @@ -24737,10 +24626,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1684: + case 1681: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11037 +//line mysql_sql.y:11003 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24750,10 +24639,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1685: + case 1682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11046 +//line mysql_sql.y:11012 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24764,10 +24653,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1686: + case 1683: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11056 +//line mysql_sql.y:11022 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24777,10 +24666,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1687: + case 1684: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11065 +//line mysql_sql.y:11031 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24790,10 +24679,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1688: + case 1685: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11074 +//line mysql_sql.y:11040 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24803,34 +24692,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1689: + case 1686: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11084 +//line mysql_sql.y:11050 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1690: + case 1687: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11088 +//line mysql_sql.y:11054 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1691: + case 1688: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11094 +//line mysql_sql.y:11060 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1692: + case 1689: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11098 +//line mysql_sql.y:11064 { ival, errStr := util.GetInt64(yyDollar[2].item) if errStr != "" { @@ -24841,20 +24730,20 @@ yydefault: yyLOCAL = tree.NewNumVal(ival, str, false, tree.P_int64) } yyVAL.union = yyLOCAL - case 1699: + case 1696: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:11117 +//line mysql_sql.y:11083 { } - case 1700: + case 1697: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:11119 +//line mysql_sql.y:11085 { } - case 1735: + case 1732: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11161 +//line mysql_sql.y:11127 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24866,106 +24755,106 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1736: + case 1733: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11173 +//line mysql_sql.y:11139 { yyLOCAL = tree.FUNC_TYPE_DEFAULT } yyVAL.union = yyLOCAL - case 1737: + case 1734: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11177 +//line mysql_sql.y:11143 { yyLOCAL = tree.FUNC_TYPE_DISTINCT } yyVAL.union = yyLOCAL - case 1738: + case 1735: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11181 +//line mysql_sql.y:11147 { yyLOCAL = tree.FUNC_TYPE_ALL } yyVAL.union = yyLOCAL - case 1739: + case 1736: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Tuple -//line mysql_sql.y:11187 +//line mysql_sql.y:11153 { yyLOCAL = tree.NewTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1740: + case 1737: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11192 +//line mysql_sql.y:11158 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1741: + case 1738: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11196 +//line mysql_sql.y:11162 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1742: + case 1739: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11202 +//line mysql_sql.y:11168 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1743: + case 1740: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11206 +//line mysql_sql.y:11172 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1744: + case 1741: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11212 +//line mysql_sql.y:11178 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1745: + case 1742: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11216 +//line mysql_sql.y:11182 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1746: + case 1743: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11223 +//line mysql_sql.y:11189 { yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1747: + case 1744: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11227 +//line mysql_sql.y:11193 { yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1748: + case 1745: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11231 +//line mysql_sql.y:11197 { name := tree.NewUnresolvedColName("concat") yyLOCAL = &tree.FuncExpr{ @@ -24975,355 +24864,355 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1749: + case 1746: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11240 +//line mysql_sql.y:11206 { yyLOCAL = tree.NewXorExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1750: + case 1747: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11244 +//line mysql_sql.y:11210 { yyLOCAL = tree.NewNotExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1751: + case 1748: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11248 +//line mysql_sql.y:11214 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1752: + case 1749: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11253 +//line mysql_sql.y:11219 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1753: + case 1750: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11257 +//line mysql_sql.y:11223 { yyLOCAL = tree.NewMaxValue() } yyVAL.union = yyLOCAL - case 1754: + case 1751: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11263 +//line mysql_sql.y:11229 { yyLOCAL = tree.NewIsNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1755: + case 1752: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11267 +//line mysql_sql.y:11233 { yyLOCAL = tree.NewIsNotNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1756: + case 1753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11271 +//line mysql_sql.y:11237 { yyLOCAL = tree.NewIsUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1757: + case 1754: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11275 +//line mysql_sql.y:11241 { yyLOCAL = tree.NewIsNotUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1758: + case 1755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11279 +//line mysql_sql.y:11245 { yyLOCAL = tree.NewIsTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1759: + case 1756: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11283 +//line mysql_sql.y:11249 { yyLOCAL = tree.NewIsNotTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1760: + case 1757: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11287 +//line mysql_sql.y:11253 { yyLOCAL = tree.NewIsFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1761: + case 1758: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11291 +//line mysql_sql.y:11257 { yyLOCAL = tree.NewIsNotFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1762: + case 1759: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11295 +//line mysql_sql.y:11261 { yyLOCAL = tree.NewComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1763: + case 1760: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11299 +//line mysql_sql.y:11265 { yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) } yyVAL.union = yyLOCAL - case 1765: + case 1762: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11307 +//line mysql_sql.y:11273 { yyLOCAL = tree.NewComparisonExpr(tree.IN, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1766: + case 1763: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11311 +//line mysql_sql.y:11277 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_IN, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1767: + case 1764: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11315 +//line mysql_sql.y:11281 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.LIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1768: + case 1765: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11319 +//line mysql_sql.y:11285 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_LIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1769: + case 1766: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11323 +//line mysql_sql.y:11289 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.ILIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1770: + case 1767: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11327 +//line mysql_sql.y:11293 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_ILIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1771: + case 1768: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11331 +//line mysql_sql.y:11297 { yyLOCAL = tree.NewComparisonExpr(tree.REG_MATCH, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1772: + case 1769: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11335 +//line mysql_sql.y:11301 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_REG_MATCH, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1773: + case 1770: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11339 +//line mysql_sql.y:11305 { yyLOCAL = tree.NewRangeCond(false, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1774: + case 1771: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11343 +//line mysql_sql.y:11309 { yyLOCAL = tree.NewRangeCond(true, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[6].exprUnion()) } yyVAL.union = yyLOCAL - case 1776: + case 1773: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11349 +//line mysql_sql.y:11315 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1777: + case 1774: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11353 +//line mysql_sql.y:11319 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1778: + case 1775: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11359 +//line mysql_sql.y:11325 { yyLOCAL = yyDollar[1].tupleUnion() } yyVAL.union = yyLOCAL - case 1779: + case 1776: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11363 +//line mysql_sql.y:11329 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1780: + case 1777: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11370 +//line mysql_sql.y:11336 { yyLOCAL = tree.ALL } yyVAL.union = yyLOCAL - case 1781: + case 1778: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11374 +//line mysql_sql.y:11340 { yyLOCAL = tree.ANY } yyVAL.union = yyLOCAL - case 1782: + case 1779: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11378 +//line mysql_sql.y:11344 { yyLOCAL = tree.SOME } yyVAL.union = yyLOCAL - case 1783: + case 1780: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11384 +//line mysql_sql.y:11350 { yyLOCAL = tree.EQUAL } yyVAL.union = yyLOCAL - case 1784: + case 1781: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11388 +//line mysql_sql.y:11354 { yyLOCAL = tree.LESS_THAN } yyVAL.union = yyLOCAL - case 1785: + case 1782: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11392 +//line mysql_sql.y:11358 { yyLOCAL = tree.GREAT_THAN } yyVAL.union = yyLOCAL - case 1786: + case 1783: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11396 +//line mysql_sql.y:11362 { yyLOCAL = tree.LESS_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1787: + case 1784: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11400 +//line mysql_sql.y:11366 { yyLOCAL = tree.GREAT_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1788: + case 1785: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11404 +//line mysql_sql.y:11370 { yyLOCAL = tree.NOT_EQUAL } yyVAL.union = yyLOCAL - case 1789: + case 1786: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11408 +//line mysql_sql.y:11374 { yyLOCAL = tree.NULL_SAFE_EQUAL } yyVAL.union = yyLOCAL - case 1790: + case 1787: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11414 +//line mysql_sql.y:11380 { yyLOCAL = tree.NewAttributePrimaryKey() } yyVAL.union = yyLOCAL - case 1791: + case 1788: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11418 +//line mysql_sql.y:11384 { yyLOCAL = tree.NewAttributeUniqueKey() } yyVAL.union = yyLOCAL - case 1792: + case 1789: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11422 +//line mysql_sql.y:11388 { yyLOCAL = tree.NewAttributeUnique() } yyVAL.union = yyLOCAL - case 1793: + case 1790: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11426 +//line mysql_sql.y:11392 { yyLOCAL = tree.NewAttributeKey() } yyVAL.union = yyLOCAL - case 1794: + case 1791: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11432 +//line mysql_sql.y:11398 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25337,35 +25226,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1795: + case 1792: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11445 +//line mysql_sql.y:11411 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1796: + case 1793: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11450 +//line mysql_sql.y:11416 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1797: + case 1794: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11456 +//line mysql_sql.y:11422 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1798: + case 1795: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11460 +//line mysql_sql.y:11426 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25379,51 +25268,51 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1799: + case 1796: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11473 +//line mysql_sql.y:11439 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1800: + case 1797: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11478 +//line mysql_sql.y:11444 { yyLOCAL = tree.NewNumVal(true, "true", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1801: + case 1798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11482 +//line mysql_sql.y:11448 { yyLOCAL = tree.NewNumVal(false, "false", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1802: + case 1799: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11486 +//line mysql_sql.y:11452 { yyLOCAL = tree.NewNumVal("null", "null", false, tree.P_null) } yyVAL.union = yyLOCAL - case 1803: + case 1800: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11490 +//line mysql_sql.y:11456 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_hexnum) } yyVAL.union = yyLOCAL - case 1804: + case 1801: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11494 +//line mysql_sql.y:11460 { if strings.HasPrefix(yyDollar[2].str, "0x") { yyDollar[2].str = yyDollar[2].str[2:] @@ -25431,69 +25320,69 @@ yydefault: yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1805: + case 1802: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11501 +//line mysql_sql.y:11467 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1806: + case 1803: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11505 +//line mysql_sql.y:11471 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1807: + case 1804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11509 +//line mysql_sql.y:11475 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1808: + case 1805: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11513 +//line mysql_sql.y:11479 { yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_ScoreBinary) } yyVAL.union = yyLOCAL - case 1809: + case 1806: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11520 +//line mysql_sql.y:11486 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.Unsigned = yyDollar[2].unsignedOptUnion() yyLOCAL.InternalType.Zerofill = yyDollar[3].zeroFillOptUnion() } yyVAL.union = yyLOCAL - case 1813: + case 1810: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11531 +//line mysql_sql.y:11497 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.DisplayWith = yyDollar[2].lengthOptUnion() } yyVAL.union = yyLOCAL - case 1814: + case 1811: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11536 +//line mysql_sql.y:11502 { yyLOCAL = yyDollar[1].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1815: + case 1812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11542 +//line mysql_sql.y:11508 { locale := "" yyLOCAL = &tree.T{ @@ -25506,10 +25395,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1816: + case 1813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11554 +//line mysql_sql.y:11520 { locale := "" yyLOCAL = &tree.T{ @@ -25522,10 +25411,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1817: + case 1814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11566 +//line mysql_sql.y:11532 { locale := "" yyLOCAL = &tree.T{ @@ -25538,10 +25427,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1818: + case 1815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11578 +//line mysql_sql.y:11544 { locale := "" yyLOCAL = &tree.T{ @@ -25555,10 +25444,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1819: + case 1816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11591 +//line mysql_sql.y:11557 { locale := "" yyLOCAL = &tree.T{ @@ -25572,10 +25461,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1820: + case 1817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11604 +//line mysql_sql.y:11570 { locale := "" yyLOCAL = &tree.T{ @@ -25589,10 +25478,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1821: + case 1818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11617 +//line mysql_sql.y:11583 { locale := "" yyLOCAL = &tree.T{ @@ -25606,10 +25495,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1822: + case 1819: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11630 +//line mysql_sql.y:11596 { locale := "" yyLOCAL = &tree.T{ @@ -25623,10 +25512,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1823: + case 1820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11643 +//line mysql_sql.y:11609 { locale := "" yyLOCAL = &tree.T{ @@ -25640,10 +25529,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1824: + case 1821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11656 +//line mysql_sql.y:11622 { locale := "" yyLOCAL = &tree.T{ @@ -25657,10 +25546,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1825: + case 1822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11669 +//line mysql_sql.y:11635 { locale := "" yyLOCAL = &tree.T{ @@ -25674,10 +25563,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1826: + case 1823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11682 +//line mysql_sql.y:11648 { locale := "" yyLOCAL = &tree.T{ @@ -25691,10 +25580,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1827: + case 1824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11695 +//line mysql_sql.y:11661 { locale := "" yyLOCAL = &tree.T{ @@ -25708,10 +25597,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1828: + case 1825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11708 +//line mysql_sql.y:11674 { locale := "" yyLOCAL = &tree.T{ @@ -25725,10 +25614,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1829: + case 1826: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11723 +//line mysql_sql.y:11689 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25756,10 +25645,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1830: + case 1827: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11750 +//line mysql_sql.y:11716 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25801,10 +25690,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1831: + case 1828: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11792 +//line mysql_sql.y:11758 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25841,10 +25730,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1832: + case 1829: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11828 +//line mysql_sql.y:11794 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25881,10 +25770,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1833: + case 1830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11864 +//line mysql_sql.y:11830 { locale := "" yyLOCAL = &tree.T{ @@ -25900,10 +25789,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1834: + case 1831: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11881 +//line mysql_sql.y:11847 { locale := "" yyLOCAL = &tree.T{ @@ -25916,10 +25805,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1835: + case 1832: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11893 +//line mysql_sql.y:11859 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25940,10 +25829,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1836: + case 1833: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11913 +//line mysql_sql.y:11879 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25964,10 +25853,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1837: + case 1834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11933 +//line mysql_sql.y:11899 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25988,10 +25877,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1838: + case 1835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11953 +//line mysql_sql.y:11919 { locale := "" yyLOCAL = &tree.T{ @@ -26006,10 +25895,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1839: + case 1836: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11969 +//line mysql_sql.y:11935 { locale := "" yyLOCAL = &tree.T{ @@ -26023,10 +25912,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1840: + case 1837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11982 +//line mysql_sql.y:11948 { locale := "" yyLOCAL = &tree.T{ @@ -26040,10 +25929,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1841: + case 1838: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11995 +//line mysql_sql.y:11961 { locale := "" yyLOCAL = &tree.T{ @@ -26057,10 +25946,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1842: + case 1839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12008 +//line mysql_sql.y:11974 { locale := "" yyLOCAL = &tree.T{ @@ -26074,10 +25963,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1843: + case 1840: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12021 +//line mysql_sql.y:11987 { locale := "" yyLOCAL = &tree.T{ @@ -26090,10 +25979,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1844: + case 1841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12033 +//line mysql_sql.y:11999 { locale := "" yyLOCAL = &tree.T{ @@ -26106,10 +25995,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1845: + case 1842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12045 +//line mysql_sql.y:12011 { locale := "" yyLOCAL = &tree.T{ @@ -26122,10 +26011,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1846: + case 1843: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12057 +//line mysql_sql.y:12023 { locale := "" yyLOCAL = &tree.T{ @@ -26138,10 +26027,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1847: + case 1844: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12069 +//line mysql_sql.y:12035 { locale := "" yyLOCAL = &tree.T{ @@ -26154,10 +26043,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1848: + case 1845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12081 +//line mysql_sql.y:12047 { locale := "" yyLOCAL = &tree.T{ @@ -26170,10 +26059,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1849: + case 1846: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12093 +//line mysql_sql.y:12059 { locale := "" yyLOCAL = &tree.T{ @@ -26186,10 +26075,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1850: + case 1847: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12105 +//line mysql_sql.y:12071 { locale := "" yyLOCAL = &tree.T{ @@ -26202,10 +26091,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1851: + case 1848: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12117 +//line mysql_sql.y:12083 { locale := "" yyLOCAL = &tree.T{ @@ -26218,10 +26107,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1852: + case 1849: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12129 +//line mysql_sql.y:12095 { locale := "" yyLOCAL = &tree.T{ @@ -26234,10 +26123,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1853: + case 1850: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12141 +//line mysql_sql.y:12107 { locale := "" yyLOCAL = &tree.T{ @@ -26251,10 +26140,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1854: + case 1851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12154 +//line mysql_sql.y:12120 { locale := "" yyLOCAL = &tree.T{ @@ -26268,10 +26157,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1855: + case 1852: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12167 +//line mysql_sql.y:12133 { locale := "" yyLOCAL = &tree.T{ @@ -26285,10 +26174,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1856: + case 1853: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12180 +//line mysql_sql.y:12146 { locale := "" yyLOCAL = &tree.T{ @@ -26302,10 +26191,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1857: + case 1854: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12193 +//line mysql_sql.y:12159 { locale := "" yyLOCAL = &tree.T{ @@ -26319,20 +26208,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1858: + case 1855: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12208 +//line mysql_sql.y:12174 { yyLOCAL = &tree.Do{ Exprs: yyDollar[2].exprsUnion(), } } yyVAL.union = yyLOCAL - case 1859: + case 1856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12216 +//line mysql_sql.y:12182 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26341,10 +26230,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1860: + case 1857: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12225 +//line mysql_sql.y:12191 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26353,10 +26242,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1861: + case 1858: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12235 +//line mysql_sql.y:12201 { locale := "" yyLOCAL = &tree.T{ @@ -26369,75 +26258,75 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1862: + case 1859: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12258 +//line mysql_sql.y:12224 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1863: + case 1860: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12263 +//line mysql_sql.y:12229 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1864: + case 1861: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12269 +//line mysql_sql.y:12235 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1866: + case 1863: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12276 +//line mysql_sql.y:12242 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1867: + case 1864: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12280 +//line mysql_sql.y:12246 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1868: + case 1865: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12285 +//line mysql_sql.y:12251 { yyLOCAL = int32(-1) } yyVAL.union = yyLOCAL - case 1869: + case 1866: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12289 +//line mysql_sql.y:12255 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1870: + case 1867: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12295 +//line mysql_sql.y:12261 { yyLOCAL = tree.GetDisplayWith(int32(yyDollar[2].item.(int64))) } yyVAL.union = yyLOCAL - case 1871: + case 1868: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12301 +//line mysql_sql.y:12267 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.NotDefineDisplayWidth, @@ -26445,10 +26334,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1872: + case 1869: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12308 +//line mysql_sql.y:12274 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26456,10 +26345,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1873: + case 1870: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12315 +//line mysql_sql.y:12281 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26467,10 +26356,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1874: + case 1871: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12324 +//line mysql_sql.y:12290 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: 38, // this is the default precision for decimal @@ -26478,10 +26367,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1875: + case 1872: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12331 +//line mysql_sql.y:12297 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26489,10 +26378,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1876: + case 1873: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12338 +//line mysql_sql.y:12304 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26500,52 +26389,52 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1877: + case 1874: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12347 +//line mysql_sql.y:12313 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1878: + case 1875: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12351 +//line mysql_sql.y:12317 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1879: + case 1876: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12355 +//line mysql_sql.y:12321 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1880: + case 1877: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12361 +//line mysql_sql.y:12327 { } - case 1881: + case 1878: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12363 +//line mysql_sql.y:12329 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1885: + case 1882: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12373 +//line mysql_sql.y:12339 { yyVAL.str = "" } - case 1886: + case 1883: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:12377 +//line mysql_sql.y:12343 { yyVAL.str = string(yyDollar[1].str) } diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.y b/pkg/sql/parsers/dialect/mysql/mysql_sql.y index 354482031929c..79ed5d3610dd9 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.y +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.y @@ -4835,23 +4835,6 @@ delete_without_using_stmt: Limit: $11, } } -| DELETE CDC priority_opt quick_opt ignore_opt FROM table_name partition_clause_opt as_opt_id where_expression_opt order_by_opt limit_opt - { - // Single-Table Syntax - t := &tree.AliasedTableExpr { - Expr: $7, - As: tree.AliasClause{ - Alias: tree.Identifier($9), - }, - } - $$ = &tree.Delete{ - Tables: tree.TableExprs{t}, - Where: $10, - OrderBy: $11, - Limit: $12, - IsCdc: true, - } - } | DELETE priority_opt quick_opt ignore_opt table_name_wild_list FROM table_references where_expression_opt { // Multiple-Table Syntax @@ -4931,14 +4914,6 @@ replace_stmt: rep.PartitionNames = $3 $$ = rep } -| REPLACE CDC into_table_name partition_clause_opt replace_data - { - rep := $5 - rep.Table = $3 - rep.PartitionNames = $4 - rep.IsCdc = true - $$ = rep - } replace_data: VALUES values_list @@ -5012,15 +4987,6 @@ insert_stmt: ins.OnDuplicateUpdate = []*tree.UpdateExpr{nil} $$ = ins } -| INSERT CDC into_table_name partition_clause_opt insert_data on_duplicate_key_update_opt - { - ins := $5 - ins.Table = $3 - ins.PartitionNames = $4 - ins.OnDuplicateUpdate = $6 - ins.IsCdc = true - $$ = ins - } accounts_list: account_name diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go index 0c9e92d0b1a1a..3ef99b4364390 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go @@ -3221,18 +3221,6 @@ var ( input: "select t.a from sa.t centroidx ('Vector_ip_ops') join u", output: "select t.a from sa.t centroidx ('vector_ip_ops') join u", }, - { - input: "insert cdc into t values (0, 1)", - output: "insert cdc into t values (0, 1)", - }, - { - input: "replace cdc into t values (0, 1)", - output: "replace cdc into t values (0, 1)", - }, - { - input: "delete cdc from t where a in (0, 1)", - output: "delete cdc from t where a in (0, 1)", - }, { input: "alter user u1 lock", }, diff --git a/pkg/sql/parsers/tree/delete.go b/pkg/sql/parsers/tree/delete.go index fa971e52d5f43..4c65cdd8ea2f7 100644 --- a/pkg/sql/parsers/tree/delete.go +++ b/pkg/sql/parsers/tree/delete.go @@ -24,7 +24,6 @@ type Delete struct { OrderBy OrderBy Limit *Limit With *With - IsCdc bool } func (node *Delete) Format(ctx *FmtCtx) { @@ -32,11 +31,7 @@ func (node *Delete) Format(ctx *FmtCtx) { node.With.Format(ctx) ctx.WriteByte(' ') } - ctx.WriteString("delete ") - if node.IsCdc { - ctx.WriteString("cdc ") - } - ctx.WriteString("from ") + ctx.WriteString("delete from ") prefix := "" for _, a := range node.Tables { diff --git a/pkg/sql/parsers/tree/insert.go b/pkg/sql/parsers/tree/insert.go index 05795965f2906..8dfcdf9815f00 100644 --- a/pkg/sql/parsers/tree/insert.go +++ b/pkg/sql/parsers/tree/insert.go @@ -27,15 +27,10 @@ type Insert struct { IsRestore bool IsRestoreByTs bool FromDataTenantID uint32 - IsCdc bool } func (node *Insert) Format(ctx *FmtCtx) { - ctx.WriteString("insert ") - if node.IsCdc { - ctx.WriteString("cdc ") - } - ctx.WriteString("into ") + ctx.WriteString("insert into ") node.Table.Format(ctx) if node.PartitionNames != nil { diff --git a/pkg/sql/parsers/tree/replace.go b/pkg/sql/parsers/tree/replace.go index bc2c3386d7b0a..68935d181bd94 100644 --- a/pkg/sql/parsers/tree/replace.go +++ b/pkg/sql/parsers/tree/replace.go @@ -31,15 +31,10 @@ type Replace struct { PartitionNames IdentifierList Columns IdentifierList Rows *Select - IsCdc bool } func (node *Replace) Format(ctx *FmtCtx) { - ctx.WriteString("replace ") - if node.IsCdc { - ctx.WriteString("cdc ") - } - ctx.WriteString("into ") + ctx.WriteString("replace into ") node.Table.Format(ctx) if node.PartitionNames != nil { diff --git a/pkg/sql/plan/build_delete.go b/pkg/sql/plan/build_delete.go index 6162489e4467c..f00246a831ffb 100644 --- a/pkg/sql/plan/build_delete.go +++ b/pkg/sql/plan/build_delete.go @@ -36,7 +36,6 @@ func buildDelete(stmt *tree.Delete, ctx CompilerContext, isPrepareStmt bool) (*P return nil, err } builder := NewQueryBuilder(plan.Query_SELECT, ctx, isPrepareStmt, false) - builder.isCdc = stmt.IsCdc queryBindCtx := NewBindContext(builder, nil) lastNodeId, err := deleteToSelect(builder, queryBindCtx, stmt, true, tblInfo) diff --git a/pkg/sql/plan/build_insert.go b/pkg/sql/plan/build_insert.go index ae92d61eb56dc..8601c1d1b6fb5 100644 --- a/pkg/sql/plan/build_insert.go +++ b/pkg/sql/plan/build_insert.go @@ -74,7 +74,6 @@ func buildInsert(stmt *tree.Insert, ctx CompilerContext, isReplace bool, isPrepa builder := NewQueryBuilder(plan.Query_SELECT, ctx, isPrepareStmt, false) builder.haveOnDuplicateKey = len(stmt.OnDuplicateUpdate) > 0 - builder.isCdc = stmt.IsCdc if stmt.IsRestore { builder.isRestore = true if stmt.IsRestoreByTs { @@ -739,7 +738,6 @@ func getRewriteToReplaceStmt(tableDef *TableDef, stmt *tree.Insert, info *dmlSel PartitionNames: stmt.PartitionNames, Columns: stmt.Columns, Rows: stmt.Rows, - IsCdc: stmt.IsCdc, } return replaceStmt } diff --git a/pkg/sql/plan/types.go b/pkg/sql/plan/types.go index 9a3826de4c5a2..7e9a9bdd85097 100644 --- a/pkg/sql/plan/types.go +++ b/pkg/sql/plan/types.go @@ -185,7 +185,6 @@ type QueryBuilder struct { isRestoreByTs bool isSkipResolveTableDef bool skipStats bool - isCdc bool // if it's a query from CDC or index update deleteNode map[uint64]int32 //delete node in this query. key is tableId, value is the nodeId of sinkScan node in the delete plan From 9006006ef5cf918c3b9951eda18a45a176a7220c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 27 May 2025 12:10:43 +0100 Subject: [PATCH 060/335] update sca --- pkg/vectorindex/hnsw/model.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index c1b5b442e56a2..78a9e164134aa 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -434,7 +434,6 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC } else { err = usearchidx.Load(idx.Path) usearchidx.Reserve(uint(tblcfg.IndexCapacity)) - fmt.Printf("LoadIndex Reserver %d\n", tblcfg.IndexCapacity) } if err != nil { return err @@ -458,7 +457,6 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC idx.MaxCapacity = uint(tblcfg.IndexCapacity) } } - fmt.Printf("LoadIndex Check cap %d\n", idx.MaxCapacity) return nil } From c2a30cbca909abafb7d9eac8598480087f8bb0a1 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 27 May 2025 12:26:37 +0100 Subject: [PATCH 061/335] fix sca test --- pkg/cdc/sinker_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cdc/sinker_test.go b/pkg/cdc/sinker_test.go index c091f8cd0b91a..cd6a4b10535be 100644 --- a/pkg/cdc/sinker_test.go +++ b/pkg/cdc/sinker_test.go @@ -119,7 +119,7 @@ func TestNewSinker(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, err := NewSinker(tt.args.sinkUri, tt.args.dbTblInfo, tt.args.watermarkUpdater, tt.args.tableDef, tt.args.retryTimes, tt.args.retryDuration, tt.args.ar, CDCDefaultTaskExtra_MaxSQLLen, CDCDefaultSendSqlTimeout) + got, err := NewSinker("", tt.args.sinkUri, tt.args.dbTblInfo, tt.args.watermarkUpdater, tt.args.tableDef, tt.args.retryTimes, tt.args.retryDuration, tt.args.ar, CDCDefaultTaskExtra_MaxSQLLen, CDCDefaultSendSqlTimeout) if !tt.wantErr(t, err, fmt.Sprintf("NewSinker(%v, %v, %v, %v, %v, %v)", tt.args.sinkUri, tt.args.dbTblInfo, tt.args.watermarkUpdater, tt.args.tableDef, tt.args.retryTimes, tt.args.retryDuration)) { return } From 04f097d8cc2e8c748257399af24858c486ddee76 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 27 May 2025 12:35:35 +0100 Subject: [PATCH 062/335] check nil vector --- pkg/cdc/hnsw_sinker.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 60503152e392f..7bdb82caa6c7b 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -368,10 +368,16 @@ func (s *hnswSyncSinker[T]) sinkSnapshot(ctx context.Context, bat *batch.Batch) vecvec := bat.Vecs[s.veccol] for i := 0; i < batchRowCount(bat); i++ { pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, i) - v := vector.GetArrayAt[T](vecvec, i) - // TODO: check null - s.cdc.Upsert(pk, v) + // check null + if vecvec.IsNull(uint64(i)) { + // nil vector means delete + s.cdc.Delete(pk) + } else { + v := vector.GetArrayAt[T](vecvec, i) + + s.cdc.Upsert(pk, v) + } // check full if s.cdc.Full() { @@ -453,9 +459,16 @@ func (s *hnswSyncSinker[T]) sinkUpsert(ctx context.Context, upsertIter *atomicBa pkvec := bat.Vecs[s.pkcol] vecvec := bat.Vecs[s.veccol] pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, row.Offset) - v := vector.GetArrayAt[T](vecvec, row.Offset) - s.cdc.Upsert(pk, v) + // check null + if vecvec.IsNull(uint64(row.Offset)) { + // nil vector means delete + s.cdc.Delete(pk) + } else { + v := vector.GetArrayAt[T](vecvec, row.Offset) + + s.cdc.Upsert(pk, v) + } if s.cdc.Full() { // send SQL From d21748a002207967c3312751473333960e33f582 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 27 May 2025 13:28:09 +0100 Subject: [PATCH 063/335] fix sca --- pkg/cdc/hnsw_sinker.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 7bdb82caa6c7b..1684ab23290de 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -53,14 +53,9 @@ type hnswSyncSinker[T types.RealNumbers] struct { err atomic.Value sqlBufSendCh chan []byte - // only contains user defined column types, no mo meta cols - upsertTypes []*types.Type - // only contains pk columns - deleteTypes []*types.Type - pkColNames []string - pkcol int32 - veccol int32 - exec executor.SQLExecutor + pkcol int32 + veccol int32 + exec executor.SQLExecutor } var NewHnswSyncSinker = func( @@ -452,9 +447,6 @@ func (s *hnswSyncSinker[T]) sinkUpsert(ctx context.Context, upsertIter *atomicBa // get row from the batch row := upsertIter.Item() bat := row.Src - if err != nil { - return err - } pkvec := bat.Vecs[s.pkcol] vecvec := bat.Vecs[s.veccol] @@ -483,9 +475,7 @@ func (s *hnswSyncSinker[T]) sinkDelete(ctx context.Context, deleteIter *atomicBa // get row from the batch row := deleteIter.Item() bat := row.Src - if err != nil { - return err - } + pkvec := bat.Vecs[s.pkcol] pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, row.Offset) From 5747b921763234f2363a20b923ed9df47dc3da19 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 27 May 2025 14:30:46 +0100 Subject: [PATCH 064/335] bug fix --- pkg/frontend/cdc_test.go | 2 +- pkg/sql/plan/function/function_id_test.go | 4 +++- pkg/vectorindex/hnsw/model.go | 18 ++++++++++-------- pkg/vectorindex/hnsw/model_test.go | 4 ++-- pkg/vectorindex/hnsw/sync.go | 7 ++++--- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/pkg/frontend/cdc_test.go b/pkg/frontend/cdc_test.go index ea66b4126a025..cfb03d091f175 100644 --- a/pkg/frontend/cdc_test.go +++ b/pkg/frontend/cdc_test.go @@ -2891,7 +2891,7 @@ func TestCdcTask_addExecPipelineForTable(t *testing.T) { }) defer stubGetTableDef.Reset() - stubSinker := gostub.Stub(&cdc.NewSinker, func(cdc.UriInfo, *cdc.DbTableInfo, cdc.IWatermarkUpdater, + stubSinker := gostub.Stub(&cdc.NewSinker, func(string, cdc.UriInfo, *cdc.DbTableInfo, cdc.IWatermarkUpdater, *plan.TableDef, int, time.Duration, *cdc.ActiveRoutine, uint64, string) (cdc.Sinker, error) { return &mockSinker{}, nil }) diff --git a/pkg/sql/plan/function/function_id_test.go b/pkg/sql/plan/function/function_id_test.go index 156665bb40eb5..567e564465f89 100644 --- a/pkg/sql/plan/function/function_id_test.go +++ b/pkg/sql/plan/function/function_id_test.go @@ -391,7 +391,9 @@ var predefinedFunids = map[int]int{ L2_DISTANCE_XC: 341, L2_DISTANCE_SQ_XC: 342, - FUNCTION_END_NUMBER: 343, + HNSW_CDC_UPDATE: 343, + + FUNCTION_END_NUMBER: 344, } func Test_funids(t *testing.T) { diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 78a9e164134aa..379789bb0983d 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -20,6 +20,7 @@ import ( "math" "os" "strings" + "sync/atomic" "github.com/detailyang/go-fallocate" "github.com/matrixorigin/matrixone/pkg/catalog" @@ -46,9 +47,9 @@ type HnswModel struct { Checksum string // for cdc update - Dirty bool + Dirty atomic.Bool View bool - Len uint + Len atomic.Int64 } // New HnswModel struct @@ -107,7 +108,7 @@ func (idx *HnswModel) SaveToFile() error { return nil } - if !idx.Dirty { + if !idx.Dirty.Load() { // nothing change. ignore return nil } @@ -282,8 +283,8 @@ func (idx *HnswModel) Add(key int64, vec []float32) error { if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } - idx.Dirty = true - idx.Len++ + idx.Dirty.Store(true) + idx.Len.Add(1) return idx.Index.Add(uint64(key), vec) } @@ -292,8 +293,8 @@ func (idx *HnswModel) Remove(key int64) error { if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } - idx.Dirty = true - idx.Len-- + idx.Dirty.Store(true) + idx.Len.Add(-1) return idx.Index.Remove(uint64(key)) } @@ -441,10 +442,11 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC // always get the number of item and capacity when model loaded. idx.Index = usearchidx - idx.Len, err = idx.Index.Len() + idxLen, err := idx.Index.Len() if err != nil { return err } + idx.Len.Store(int64(idxLen)) idx.MaxCapacity, err = idx.Index.Capacity() if err != nil { diff --git a/pkg/vectorindex/hnsw/model_test.go b/pkg/vectorindex/hnsw/model_test.go index 18f4afa8031a9..84bcf03691da8 100644 --- a/pkg/vectorindex/hnsw/model_test.go +++ b/pkg/vectorindex/hnsw/model_test.go @@ -81,7 +81,7 @@ func TestModel(t *testing.T) { doModelSearchTest(t, idx, 0, fp32a) - require.Equal(t, idx.Dirty, false) + require.Equal(t, idx.Dirty.Load(), false) err = idx.Unload() require.Nil(t, err) @@ -117,7 +117,7 @@ func TestModel(t *testing.T) { err = idx.Add(int64(key), v) require.Nil(t, err) - require.Equal(t, idx.Dirty, true) + require.Equal(t, idx.Dirty.Load(), true) err = idx.Unload() require.Nil(t, err) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index b1ba04acb8d1e..061b1fe345d95 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -253,8 +253,9 @@ func (s *HnswSync) run(proc *process.Process) error { } else { last = s.indexes[len(s.indexes)-1] // last model not load yet so check the last.Len instead of Full() - if last.Len >= last.MaxCapacity { - os.Stderr.WriteString(fmt.Sprintf("full len %d, cap %d\n", last.Len, last.MaxCapacity)) + idxlen := uint(last.Len.Load()) + if idxlen >= last.MaxCapacity { + os.Stderr.WriteString(fmt.Sprintf("full len %d, cap %d\n", idxlen, last.MaxCapacity)) id := s.getModelId() // model is already full, create a new model for insert newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) @@ -429,7 +430,7 @@ func (s *HnswSync) ToSql(ts int64) ([]string, error) { metas := make([]string, 0, len(s.indexes)) for _, idx := range s.indexes { // check Dirty. Only update when Dirty is true - if !idx.Dirty { + if !idx.Dirty.Load() { continue } From ea5e8e67843665c7ffe8776b0bac3fb7c03bd586 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 09:43:09 +0100 Subject: [PATCH 065/335] add test --- pkg/vectorindex/types_test.go | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 pkg/vectorindex/types_test.go diff --git a/pkg/vectorindex/types_test.go b/pkg/vectorindex/types_test.go new file mode 100644 index 0000000000000..520f3c6d254b6 --- /dev/null +++ b/pkg/vectorindex/types_test.go @@ -0,0 +1,62 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package vectorindex + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestCdc(t *testing.T) { + key := int64(0) + v := []float32{0, 1, 2} + key2 := int64(1) + v2 := []float32{1, 2, 3} + + cdc := NewVectorIndexCdc[float32]() + + // Insert + cdc.Insert(key, v) + + js, err := cdc.ToJson() + require.Nil(t, err) + + require.Equal(t, js, `{"start":"","end":"","cdc":[{"t":"I","pk":0,"v":[0,1,2]}]}`) + + // delete + cdc.Delete(key) + js, err = cdc.ToJson() + require.Nil(t, err) + + require.Equal(t, js, `{"start":"","end":"","cdc":[{"t":"I","pk":0,"v":[0,1,2]},{"t":"D","pk":0}]}`) + + // upsert + cdc.Upsert(key2, v2) + + js, err = cdc.ToJson() + require.Nil(t, err) + + require.Equal(t, js, `{"start":"","end":"","cdc":[{"t":"I","pk":0,"v":[0,1,2]},{"t":"D","pk":0},{"t":"U","pk":1,"v":[1,2,3]}]}`) + + require.False(t, cdc.Empty()) + + require.False(t, cdc.Full()) + + cdc.Reset() + + js, err = cdc.ToJson() + require.Equal(t, js, `{"start":"","end":"","cdc":[]}`) +} From 390e9075bc4437347a97cc7cb2aa62e8c0a9f959 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 11:26:29 +0100 Subject: [PATCH 066/335] clear cache after cdc sync --- pkg/vectorindex/hnsw/sync.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 061b1fe345d95..9925580854cfa 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -26,6 +26,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" + veccache "github.com/matrixorigin/matrixone/pkg/vectorindex/cache" "github.com/matrixorigin/matrixone/pkg/vectorindex/metric" "github.com/matrixorigin/matrixone/pkg/vectorindex/sqlexec" "github.com/matrixorigin/matrixone/pkg/vm/process" @@ -177,7 +178,15 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc ts := time.Now().Unix() sync := &HnswSync{indexes: indexes, idxcfg: idxcfg, tblcfg: idxtblcfg, cdc: cdc, uid: uid, ts: ts} defer sync.destroy() - return sync.run(proc) + err = sync.run(proc) + if err != nil { + return err + } + + // clear the cache (it only work in standalone mode though) + veccache.Cache.Remove(idxtblcfg.IndexTable) + + return nil } type HnswSync struct { From 66eef842ca17e4c95847fb39376463f3338feb87 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 11:31:30 +0100 Subject: [PATCH 067/335] add bvt test --- .../cases/vector/vector_hnsw_sync.result | 28 ++++++++++++++++++ .../cases/vector/vector_hnsw_sync.sql | 29 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 test/distributed/cases/vector/vector_hnsw_sync.result create mode 100644 test/distributed/cases/vector/vector_hnsw_sync.sql diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result new file mode 100644 index 0000000000000..41b25054a9a74 --- /dev/null +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -0,0 +1,28 @@ +SET experimental_hnsw_index = 1; +create database if not exists hnsw_cdc; +use hnsw_cdc; +create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)); +create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +insert into vector_index_01 values (0, "[1,2,3]", 1); +select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +a b c +select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); +hnsw_cdc_update(hnsw_cdc, vector_index_01, 3, {"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}) +0 +select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +a b c +0 [1, 2, 3] 1 +DELETE FROM vector_index_01 WHERE a=0; +select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); +hnsw_cdc_update(hnsw_cdc, vector_index_01, 3, {"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}) +0 +select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +a b c +insert into vector_index_01 values (1, "[2,3,4]", 1); +select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); +hnsw_cdc_update(hnsw_cdc, vector_index_01, 3, {"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}) +0 +select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; +a b c +1 [2, 3, 4] 1 +drop database hnsw_cdc; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql new file mode 100644 index 0000000000000..e09385cff9ef2 --- /dev/null +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -0,0 +1,29 @@ +SET experimental_hnsw_index = 1; + +create database if not exists hnsw_cdc; +use hnsw_cdc; + +create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)); + +-- empty data +create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; + +insert into vector_index_01 values (0, "[1,2,3]", 1); + +select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; + +select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); + +select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; + +DELETE FROM vector_index_01 WHERE a=0; +select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); + +select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; + +insert into vector_index_01 values (1, "[2,3,4]", 1); +select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); + +select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; + +drop database hnsw_cdc; From eddf530af86ec9f291c13bdebafa325e27d6718d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 13:05:03 +0100 Subject: [PATCH 068/335] fix test --- pkg/vectorindex/types_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/vectorindex/types_test.go b/pkg/vectorindex/types_test.go index 520f3c6d254b6..9c7f24261c17f 100644 --- a/pkg/vectorindex/types_test.go +++ b/pkg/vectorindex/types_test.go @@ -58,5 +58,6 @@ func TestCdc(t *testing.T) { cdc.Reset() js, err = cdc.ToJson() + require.NoError(t, err) require.Equal(t, js, `{"start":"","end":"","cdc":[]}`) } From 3f355c7457287ff31fe039903ec1fc3e21d3bfa3 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 17:01:51 +0100 Subject: [PATCH 069/335] update unittest --- pkg/cdc/hnsw_sinker.go | 102 ++++--- pkg/cdc/hnsw_sinker_test.go | 565 ++++++++++++++++++++++++++++++++++++ 2 files changed, 633 insertions(+), 34 deletions(-) create mode 100644 pkg/cdc/hnsw_sinker_test.go diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 1684ab23290de..3a8aa81116a84 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -42,6 +42,8 @@ import ( var _ Sinker = &hnswSyncSinker[float32]{} +var sqlExecutorFactory = _sqlExecutorFactory + type hnswSyncSinker[T types.RealNumbers] struct { cnUUID string dbTblInfo *DbTableInfo @@ -58,6 +60,17 @@ type hnswSyncSinker[T types.RealNumbers] struct { exec executor.SQLExecutor } +func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { + // sql executor + v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) + if !ok { + os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) + return nil, moerr.NewNotSupportedNoCtx("no implement sqlExecutor") + } + exec := v.(executor.SQLExecutor) + return exec, nil +} + var NewHnswSyncSinker = func( cnUUID string, sinkUri UriInfo, @@ -72,12 +85,10 @@ var NewHnswSyncSinker = func( ) (Sinker, error) { // sql executor - v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) - if !ok { - os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) - return nil, moerr.NewNotSupportedNoCtx("no implement sqlExecutor") + exec, err := sqlExecutorFactory(cnUUID) + if err != nil { + return nil, err } - exec := v.(executor.SQLExecutor) // check the tabledef and indexdef if len(tableDef.Pkey.Names) != 1 { @@ -200,11 +211,22 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { for { + txnbegin := false // make sure there is a BEGIN before start transaction - for sqlBuf := range s.sqlBufSendCh { - //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) - if bytes.Equal(sqlBuf, begin) { - break + for !txnbegin { + + select { + case <-ctx.Done(): + return + case sqlBuf, ok := <-s.sqlBufSendCh: + if !ok { + return + } + //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) + if bytes.Equal(sqlBuf, begin) { + txnbegin = true + break + } } } @@ -215,26 +237,36 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { err := s.exec.ExecTxn(newctx, func(exec executor.TxnExecutor) error { - for sqlBuf := range s.sqlBufSendCh { - if bytes.Equal(sqlBuf, dummy) { - - } else if bytes.Equal(sqlBuf, begin) { - // BEGIN - } else if bytes.Equal(sqlBuf, commit) { - // COMMIT - end of data - return nil - } else if bytes.Equal(sqlBuf, rollback) { - // ROLLBACK - return moerr.NewQueryInterrupted(ctx) - } else { - res, err := exec.Exec(string(sqlBuf), opts.StatementOption()) - if err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) - os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) - os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) - return err + for { + select { + case <-ctx.Done(): + return ctx.Err() + case sqlBuf, ok := <-s.sqlBufSendCh: + if !ok { + // channel closed + return nil + } + + if bytes.Equal(sqlBuf, dummy) { + + } else if bytes.Equal(sqlBuf, begin) { + // BEGIN + } else if bytes.Equal(sqlBuf, commit) { + // COMMIT - end of data + return nil + } else if bytes.Equal(sqlBuf, rollback) { + // ROLLBACK + return moerr.NewQueryInterrupted(ctx) + } else { + res, err := exec.Exec(string(sqlBuf), opts.StatementOption()) + if err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) + return err + } + res.Close() } - res.Close() } } @@ -327,13 +359,15 @@ func (s *hnswSyncSinker[T]) SendDummy() { func (s *hnswSyncSinker[T]) Error() error { if ptr := s.err.Load(); ptr != nil { errPtr := ptr.(*error) - if moErr, ok := (*errPtr).(*moerr.Error); !ok { - return moerr.ConvertGoError(context.Background(), *errPtr) - } else { - if moErr == nil { - return nil + if errPtr != nil { + if moErr, ok := (*errPtr).(*moerr.Error); !ok { + return moerr.ConvertGoError(context.Background(), *errPtr) + } else { + if moErr == nil { + return nil + } + return moErr } - return moErr } } return nil diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go new file mode 100644 index 0000000000000..4c7c4087a430e --- /dev/null +++ b/pkg/cdc/hnsw_sinker_test.go @@ -0,0 +1,565 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "context" + "errors" + "fmt" + "strings" + "sync" + "testing" + "time" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/testutil" + "github.com/matrixorigin/matrixone/pkg/txn/client" + "github.com/matrixorigin/matrixone/pkg/util/executor" + "github.com/matrixorigin/matrixone/pkg/vectorindex" + "github.com/prashantv/gostub" + "github.com/stretchr/testify/require" +) + +func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + "dummy": 2, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "hnsw_meta_idx", + TableExist: true, + IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), + IndexAlgoTableType: catalog.Hnsw_TblType_Metadata, + IndexTableName: "meta_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"m":"16","ef_construction":"200","ef_search":"100","op_type":"vector_l2_ops"}`, + }, + { + IndexName: "hnsw_storage_idx", + TableExist: true, + IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), + IndexAlgoTableType: catalog.Hnsw_TblType_Storage, + IndexTableName: "storage_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"m":"16","ef_construction":"200","ef_search":"100","op_type":"vector_l2_ops"}`, + }, + }, + } +} + +func newTestDbTableInfo() *DbTableInfo { + return &DbTableInfo{ + SourceDbName: "test_db", + SourceTblName: "test_tbl", + SinkDbName: "sink_db", + SinkTblName: "sink_tbl", + } +} + +func newTestActiveRoutine() *ActiveRoutine { + ar := NewCdcActiveRoutine() + // ar.Start() // Don't start by default, let tests control + return ar +} + +type MockSQLExecutor struct { +} + +// Exec exec a sql in a exists txn. +func (exec MockSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { + + return executor.Result{}, nil +} + +// ExecTxn executor sql in a txn. execFunc can use TxnExecutor to exec multiple sql +// in a transaction. +// NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to +// TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. +func (exec MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { + return nil +} + +type MockErrorTxnExecutor struct { + database string +} + +func (exec *MockErrorTxnExecutor) Use(db string) { + exec.database = db +} + +func (exec *MockErrorTxnExecutor) Exec( + sql string, + statementOption executor.StatementOption, +) (executor.Result, error) { + if strings.Contains(sql, "FAILSQL") { + return executor.Result{}, moerr.NewInternalErrorNoCtx("db error") + } + + return executor.Result{}, nil +} + +func (exec *MockErrorTxnExecutor) LockTable(table string) error { + return nil +} + +func (exec *MockErrorTxnExecutor) Txn() client.TxnOperator { + return nil +} + +func (exec *MockErrorTxnExecutor) commit() error { + return nil +} + +func (exec *MockErrorTxnExecutor) getDatabase() string { + return "" +} + +func (exec *MockErrorTxnExecutor) rollback(err error) error { + return nil +} + +var _ executor.TxnExecutor = new(MockErrorTxnExecutor) + +type MockErrorSQLExecutor struct { +} + +// Exec exec a sql in a exists txn. +func (exec MockErrorSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { + if strings.Contains(sql, "FAILSQL") { + return executor.Result{}, moerr.NewInternalError(ctx, "db error") + } + return executor.Result{}, nil +} + +// ExecTxn executor sql in a txn. execFunc can use TxnExecutor to exec multiple sql +// in a transaction. +// NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to +// TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. +func (exec MockErrorSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { + + txnexec := &MockErrorTxnExecutor{} + err := execFunc(txnexec) + if moerr.IsMoErrCode(err, moerr.ErrQueryInterrupted) { + fmt.Printf("ROLLBACK...\n") + return nil // Simulating successful handling of rollback signal + } + return err +} + +var _ executor.SQLExecutor = new(MockSQLExecutor) +var _ executor.SQLExecutor = new(MockErrorSQLExecutor) + +func mockSqlExecutorFactory(uuid string) (executor.SQLExecutor, error) { + return MockSQLExecutor{}, nil +} + +func mockErrorSqlExecutorFactory(uuid string) (executor.SQLExecutor, error) { + return MockErrorSQLExecutor{}, nil +} + +func NewMockWatermarkUpdater() *WatermarkUpdater { + return &WatermarkUpdater{ + watermarkMap: &sync.Map{}, + } +} + +// Constants that might be missing in the test context +//const sqlBufReserved = 0 // Assuming 0 for tests, original code might have a value + +var ( +// Define these if they are not exported or available in the test package context +// For this test, we'll assume they are defined as in the original package. +// If not, they would be: +// begin = []byte("BEGIN") +// commit = []byte("COMMIT") +// rollback = []byte("ROLLBACK") +// dummy = []byte("DUMMY") +) + +// --- Test Cases --- + +func TestNewHnswSyncSinker(t *testing.T) { + + dbTblInfo := newTestDbTableInfo() + ar := newTestActiveRoutine() + watermarkUpdater := &WatermarkUpdater{ + watermarkMap: &sync.Map{}, + } + + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + t.Run("success float32", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) + sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.NoError(t, err) + require.NotNil(t, sinker) + require.Equal(t, int32(0), sinker.(*hnswSyncSinker[float32]).pkcol) + require.Equal(t, int32(1), sinker.(*hnswSyncSinker[float32]).veccol) + sinker.Close() + }) + + t.Run("success float64", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float64, 128) + sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.NoError(t, err) + require.NotNil(t, sinker) + sinker.Close() + }) + + t.Run("invalid pkey count", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) + tblDef.Pkey.Names = []string{"pk1", "pk2"} + _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + }) + + t.Run("invalid hnsw index count", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) + tblDef.Indexes = []*plan.IndexDef{tblDef.Indexes[0]} // Only one index + _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + }) + + t.Run("invalid index parts count", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) + tblDef.Indexes[0].Parts = []string{"vec1", "vec2"} + _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + }) + + t.Run("invalid pkey type", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int32, "vec", types.T_array_float32, 128) // PK is int32 + _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + }) + + t.Run("missing meta index", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) + tblDef.Indexes[0].IndexAlgoTableType = "invalid" // Corrupt meta index type + _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + }) + + t.Run("invalid hnsw params json", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) + tblDef.Indexes[0].IndexAlgoParams = `{"M":16, efConstruction":200 ...` // Invalid JSON + _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + }) + + t.Run("unsupported vector type", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_int32, 128) // Vector is int32 + _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + }) +} + +func TestHnswSyncSinker_Run(t *testing.T) { + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + watermarkUpdater := NewMockWatermarkUpdater() + + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) + sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + require.NoError(t, err) + defer sinker.Close() + + s := sinker.(*hnswSyncSinker[float32]) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + s.Run(ctx, nil) // ActiveRoutine not used by Run directly + }() + + t.Run("happy path commit", func(t *testing.T) { + s.ClearError() + //var executedSqls []string + + s.sqlBufSendCh <- begin + s.sqlBufSendCh <- []byte("SELECT 1") + s.sqlBufSendCh <- commit + + // Wait for processing or timeout + time.Sleep(100 * time.Millisecond) + require.NoError(t, s.Error()) + //require.Contains(t, executedSqls, "SELECT 1") + }) + + // To properly test sinker.Close() and stop the Run goroutine: + cancel() // Signal Run to stop its loop if it checks ctx.Done() + // Closing sqlBufSendCh is done by sinker.Close(), which should cause Run to exit. + wg.Wait() // Wait for Run goroutine to finish +} + +func TestHnswSyncSinker_RunError(t *testing.T) { + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockErrorSqlExecutorFactory) + defer sqlexecstub.Reset() + watermarkUpdater := NewMockWatermarkUpdater() + + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) + sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + require.NoError(t, err) + defer sinker.Close() + + s := sinker.(*hnswSyncSinker[float32]) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + s.Run(ctx, nil) // ActiveRoutine not used by Run directly + }() + + t.Run("exec error", func(t *testing.T) { + s.ClearError() + s.sqlBufSendCh <- begin + s.sqlBufSendCh <- []byte("FAILSQL") + s.sqlBufSendCh <- commit // This commit might not be reached if error handling is strict + + time.Sleep(100 * time.Millisecond) + err := s.Error() + require.Error(t, err) + }) + + t.Run("rollback", func(t *testing.T) { + s.ClearError() + s.sqlBufSendCh <- begin + s.sqlBufSendCh <- rollback + + time.Sleep(100 * time.Millisecond) + require.NoError(t, s.Error()) + //require.True(t, rolledBack, "Rollback was not processed as expected") + }) + + fmt.Printf("finihsed......\n") + // To properly test sinker.Close() and stop the Run goroutine: + cancel() // Signal Run to stop its loop if it checks ctx.Done() + // Closing sqlBufSendCh is done by sinker.Close(), which should cause Run to exit. + // We already defer sinker.Close(), but for this test, let's be explicit. + wg.Wait() // Wait for Run goroutine to finish +} + +func TestHnswSyncSinker_Sink(t *testing.T) { + + proc := testutil.NewProcess() + + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) + watermarkUpdater := NewMockWatermarkUpdater() + sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + require.NoError(t, err) + defer sinker.Close() + + s := sinker.(*hnswSyncSinker[float32]) + ctx := context.Background() + + t.Run("snapshot", func(t *testing.T) { + s.Reset() + + bat := testutil.NewBatchWithVectors( + []*vector.Vector{ + testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{[]float32{0.1, 0.2}, []float32{0.3, 0.4}}), + }, nil) + + defer bat.Clean(testutil.TestUtilMp) + + output := &DecoderOutput{ + fromTs: types.BuildTS(1, 0), + toTs: types.BuildTS(2, 0), + outputTyp: OutputTypeSnapshot, + checkpointBat: bat, + insertAtmBatch: nil, // Not used for snapshot + deleteAtmBatch: nil, // Not used for snapshot + noMoreData: false, + } + s.Sink(ctx, output) + require.NoError(t, s.Error()) + js, err := s.cdc.ToJson() + require.NoError(t, err) + require.Equal(t, string(js), `{"start":"1-0","end":"2-0","cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}`) + }) + + t.Run("noMoreData", func(t *testing.T) { + s.Reset() + s.cdc.Upsert(int64(100), []float32{1.0, 2.0}) // Add some data + require.False(t, s.cdc.Empty()) + + var sqlSent bool + doneCh := make(chan struct{}) + go func() { + // Need to consume from sqlBufSendCh or Sink will block + for range s.sqlBufSendCh { + sqlSent = true + close(doneCh) // Signal that SQL was processed + return // Assume only one SQL for this test + } + }() + + output := &DecoderOutput{ + fromTs: types.BuildTS(3, 0), + toTs: types.BuildTS(4, 0), + outputTyp: OutputTypeSnapshot, // Can be any type + noMoreData: true, + } + s.Sink(ctx, output) + require.NoError(t, s.Error()) + + select { + case <-doneCh: + // SQL was sent and consumed + case <-time.After(1 * time.Second): + t.Fatal("timed out waiting for SQL to be sent on noMoreData") + } + require.True(t, sqlSent) + require.True(t, s.cdc.Empty(), "CDC should be reset after noMoreData flush") + }) + +} + +func TestHnswSyncSinker_SendSql(t *testing.T) { + + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + watermarkUpdater := &WatermarkUpdater{ + watermarkMap: &sync.Map{}, + } + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) + sinker, _ := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + s := sinker.(*hnswSyncSinker[float32]) + defer s.Close() // Closes sqlBufSendCh + + t.Run("send sql happy path", func(t *testing.T) { + s.Reset() + s.cdc.Upsert(int64(1), []float32{0.1, 0.2}) + s.cdc.Delete(int64(2)) + s.cdc.Start = "ts1" + s.cdc.End = "ts2" + + var receivedSql []byte + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + receivedSql = <-s.sqlBufSendCh + }() + + err := s.sendSql() + require.NoError(t, err) + wg.Wait() // Wait for the goroutine to receive the SQL + + require.NotNil(t, receivedSql) + sqlStr := string(receivedSql) + + /* + expectedJsonPayload, _ := json.Marshal(map[string]any{ + "start_ts": s.cdc.Start, // These were reset before json was made + "end_ts": s.cdc.End, + "op_type": "hnsw_cdc_v1", + "upserts": []map[string]any{{"pk": int64(1), "vector": []float32{0.1, 0.2}}}, + "deletes": []int64{int64(2)}, + }) + */ + + // The cdc.Start and cdc.End are part of the ToJson output, but sendSql resets cdc *after* ToJson + // So we need to capture the state of cdc *before* it's reset for the expected JSON. + // Let's reconstruct the expected JSON more carefully. + cdcForJson := vectorindex.NewVectorIndexCdc[float32]() + cdcForJson.Upsert(int64(1), []float32{0.1, 0.2}) + cdcForJson.Delete(int64(2)) + cdcForJson.Start = "ts1" + cdcForJson.End = "ts2" + expectedJsonBytes, _ := cdcForJson.ToJson() + + expectedSql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", + strings.Repeat(" ", sqlBufReserved), + s.param.DbName, s.param.Table, s.param.Dimension, string(expectedJsonBytes)) + require.Equal(t, expectedSql, sqlStr) + require.True(t, s.cdc.Empty(), "CDC should be reset after sending SQL") + }) + + t.Run("send sql empty cdc", func(t *testing.T) { + s.Reset() // Ensure CDC is empty + err := s.sendSql() + require.NoError(t, err) + select { + case <-s.sqlBufSendCh: + t.Fatal("SQL should not have been sent for empty CDC") + case <-time.After(50 * time.Millisecond): + // Expected behavior + } + }) +} + +func TestHnswSyncSinker_ErrorHandling(t *testing.T) { + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + s := &hnswSyncSinker[float32]{} // Minimal struct for error testing + s.err.Store((*error)(nil)) // Initialize with nil error pointer + + require.Nil(t, s.Error()) + + testErr := errors.New("test error") + s.SetError(testErr) + err := s.Error() + require.Error(t, err) + require.Equal(t, "internal error: convert go error to mo error test error", err.Error()) + + // Test with moerr + moTestErr := moerr.NewInternalErrorNoCtx("mo test error") + s.SetError(moTestErr) + err = s.Error() + require.Error(t, err) + require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) + require.Equal(t, moTestErr.Error(), err.Error()) + + s.ClearError() + require.Nil(t, s.Error()) +} From 53e2f96853fd175062c85c96b918c3f2fc717768 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 17:08:23 +0100 Subject: [PATCH 070/335] bug fix check channel closed --- pkg/cdc/hnsw_sinker.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 3a8aa81116a84..4ac8779148a6e 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -209,7 +209,8 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { logutil.Infof("cdc hnswSyncSinker(%v).Run: end", s.dbTblInfo) }() - for { + closed := false + for !closed { txnbegin := false // make sure there is a BEGIN before start transaction @@ -220,6 +221,7 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { return case sqlBuf, ok := <-s.sqlBufSendCh: if !ok { + closed = true return } //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) @@ -244,6 +246,7 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { case sqlBuf, ok := <-s.sqlBufSendCh: if !ok { // channel closed + closed = true return nil } From 89efa85e8e4908e84db806ea2fce8bda52a00b9e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 17:18:40 +0100 Subject: [PATCH 071/335] fix sca --- pkg/cdc/hnsw_sinker_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index 4c7c4087a430e..3e083aab8c3a5 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -16,7 +16,6 @@ package cdc import ( "context" - "errors" "fmt" "strings" "sync" @@ -546,11 +545,11 @@ func TestHnswSyncSinker_ErrorHandling(t *testing.T) { require.Nil(t, s.Error()) - testErr := errors.New("test error") + testErr := moerr.NewInternalErrorNoCtx("test error") s.SetError(testErr) err := s.Error() require.Error(t, err) - require.Equal(t, "internal error: convert go error to mo error test error", err.Error()) + require.Equal(t, "internal error: test error", err.Error()) // Test with moerr moTestErr := moerr.NewInternalErrorNoCtx("mo test error") From f6609deb4e1bc27a17c37fbba90177178148582b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 17:40:55 +0100 Subject: [PATCH 072/335] fix sca --- pkg/cdc/hnsw_sinker.go | 3 --- pkg/cdc/hnsw_sinker_test.go | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 4ac8779148a6e..b15fecd07c096 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -227,7 +227,6 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) if bytes.Equal(sqlBuf, begin) { txnbegin = true - break } } } @@ -273,8 +272,6 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { } } - return nil - }, opts) if err != nil { diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index 3e083aab8c3a5..4c66d30f4ef62 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -134,6 +134,7 @@ func (exec *MockErrorTxnExecutor) Txn() client.TxnOperator { return nil } +/* func (exec *MockErrorTxnExecutor) commit() error { return nil } @@ -145,6 +146,7 @@ func (exec *MockErrorTxnExecutor) getDatabase() string { func (exec *MockErrorTxnExecutor) rollback(err error) error { return nil } +*/ var _ executor.TxnExecutor = new(MockErrorTxnExecutor) From 1575bd9fb609101f346ac6e99cac15858732d501 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 2 Jun 2025 17:54:05 +0100 Subject: [PATCH 073/335] fix sca --- pkg/cdc/hnsw_sinker_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index 4c66d30f4ef62..56270bd4a4ec2 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -405,7 +405,7 @@ func TestHnswSyncSinker_Sink(t *testing.T) { bat := testutil.NewBatchWithVectors( []*vector.Vector{ testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), - testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{[]float32{0.1, 0.2}, []float32{0.3, 0.4}}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), }, nil) defer bat.Clean(testutil.TestUtilMp) From 94549ac960a4fbadecde69495dce82863ce72197 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 3 Jun 2025 10:36:57 +0100 Subject: [PATCH 074/335] check vector dimension when cast from string --- pkg/sql/plan/function/func_cast.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/sql/plan/function/func_cast.go b/pkg/sql/plan/function/func_cast.go index 85f8f978d027b..b2787aefffd64 100644 --- a/pkg/sql/plan/function/func_cast.go +++ b/pkg/sql/plan/function/func_cast.go @@ -4394,6 +4394,8 @@ func strToArray[T types.RealNumbers]( from vector.FunctionParameterWrapper[types.Varlena], to *vector.FunctionResult[types.Varlena], length int, _ types.Type) error { + toType := to.GetType() + var i uint64 var l = uint64(length) for i = 0; i < l; i++ { @@ -4403,11 +4405,17 @@ func strToArray[T types.RealNumbers]( return err } } else { - - b, err := types.StringToArrayToBytes[T](convertByteSliceToString(v)) + arr, err := types.StringToArray[T](convertByteSliceToString(v)) if err != nil { return err } + + if int(toType.Width) != len(arr) { + return moerr.NewArrayDefMismatchNoCtx(int(toType.Width), len(arr)) + } + + b := types.ArrayToBytes[T](arr) + if err = to.AppendBytes(b, false); err != nil { return err } From e34c04f018a96afa1fb1647f5b4c3d33fbbc60ca Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 3 Jun 2025 13:13:37 +0100 Subject: [PATCH 075/335] bypass dimension check when width is max dimension --- pkg/sql/plan/function/func_cast.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/sql/plan/function/func_cast.go b/pkg/sql/plan/function/func_cast.go index b2787aefffd64..b957b02466bf6 100644 --- a/pkg/sql/plan/function/func_cast.go +++ b/pkg/sql/plan/function/func_cast.go @@ -4410,7 +4410,8 @@ func strToArray[T types.RealNumbers]( return err } - if int(toType.Width) != len(arr) { + // bypass the dimension check if width is max dimension + if int(toType.Width) != types.MaxArrayDimension && int(toType.Width) != len(arr) { return moerr.NewArrayDefMismatchNoCtx(int(toType.Width), len(arr)) } From 1f626f383cdfdb6377b0c9d6cefcc9e6b6b7891b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 3 Jun 2025 13:53:03 +0100 Subject: [PATCH 076/335] fix bvt --- test/distributed/cases/array/array.result | 4 ++-- test/distributed/cases/vector/vector_hnsw.result | 2 +- test/distributed/cases/vector/vector_index.result | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/distributed/cases/array/array.result b/test/distributed/cases/array/array.result index b0ef7775263c1..24f96fb2b8d8d 100644 --- a/test/distributed/cases/array/array.result +++ b/test/distributed/cases/array/array.result @@ -54,9 +54,9 @@ select b + "[1,2,3]" from vec_table; b + [1,2,3] [2, 4, 6] select b + "[1,2]" from vec_table; -invalid input: vector ops between different dimensions (3, 2) is not permitted. +invalid input: expected vector dimension 3 != actual dimension 2. select b + "[1,2,3,4]" from vec_table; -invalid input: vector ops between different dimensions (3, 4) is not permitted. +invalid input: expected vector dimension 3 != actual dimension 4. select cast("[1,2,3]" as vecf32(3)); cast([1,2,3] as vecf32(3)) [1, 2, 3] diff --git a/test/distributed/cases/vector/vector_hnsw.result b/test/distributed/cases/vector/vector_hnsw.result index 0181cc7eb6dd4..ab662db603d07 100644 --- a/test/distributed/cases/vector/vector_hnsw.result +++ b/test/distributed/cases/vector/vector_hnsw.result @@ -114,7 +114,7 @@ create index idx01 using hnsw on vector_index_07(b) op_type "vector_l2_ops"; select * from vector_index_07 order by L2_DISTANCE(a, "[16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]") ASC LIMIT 2; invalid argument function l2_distance, bad value [BIGINT VARCHAR] select * from vector_index_07 order by L2_DISTANCE(b, "[16, 15, 3, 0, 0, 4, 3, 5, 51]") ASC LIMIT 2; -invalid input: vector ops between different dimensions (128, 9) is not permitted. +invalid input: expected vector dimension 128 != actual dimension 9. select * from vector_index_07 order by L2_DISTANCE(b, "abc") ASC LIMIT 2; internal error: malformed vector input: abc create table vector_index_08(a bigint auto_increment primary key, b vecf32(128),c int,key c_k(c)); diff --git a/test/distributed/cases/vector/vector_index.result b/test/distributed/cases/vector/vector_index.result index dfd896abe5482..8d734ce5f5734 100644 --- a/test/distributed/cases/vector/vector_index.result +++ b/test/distributed/cases/vector/vector_index.result @@ -125,7 +125,7 @@ create index idx01 using ivfflat on vector_index_07(b) lists=5 op_type "vector_l select * from vector_index_07 order by L2_DISTANCE(a, "[16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]") ASC LIMIT 2; invalid argument function l2_distance, bad value [INT VARCHAR] select * from vector_index_07 order by L2_DISTANCE(b, "[16, 15, 3, 0, 0, 4, 3, 5, 51]") ASC LIMIT 2; -invalid input: vector ops between different dimensions (128, 9) is not permitted. +invalid input: expected vector dimension 128 != actual dimension 9. select * from vector_index_07 order by L2_DISTANCE(b, "abc") ASC LIMIT 2; internal error: malformed vector input: abc create table vector_index_08(a int auto_increment primary key, b vecf32(128),c int,key c_k(c)); From 22eee6ba82ce15f651b110564c89512bc25b7f39 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 4 Jun 2025 11:50:10 +0100 Subject: [PATCH 077/335] test atomicBatch --- pkg/cdc/hnsw_sinker_test.go | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index 56270bd4a4ec2..dc633518edcfa 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -24,6 +24,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/pb/plan" @@ -33,6 +34,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/prashantv/gostub" "github.com/stretchr/testify/require" + "github.com/tidwall/btree" ) func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { @@ -406,6 +408,7 @@ func TestHnswSyncSinker_Sink(t *testing.T) { []*vector.Vector{ testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), + testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int32{1, 2}), }, nil) defer bat.Clean(testutil.TestUtilMp) @@ -564,3 +567,92 @@ func TestHnswSyncSinker_ErrorHandling(t *testing.T) { s.ClearError() require.Nil(t, s.Error()) } + +func TestHnswSyncSinker_Sink_AtomicBatch(t *testing.T) { + + proc := testutil.NewProcess() + + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + watermarkUpdater := &WatermarkUpdater{ + watermarkMap: &sync.Map{}, + } + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) + sinker, _ := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + s := sinker.(*hnswSyncSinker[float32]) + defer s.Close() // Closes sqlBufSendCh + + bat := testutil.NewBatchWithVectors( + []*vector.Vector{ + testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), + testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int64{1, 2}), + }, nil) + defer bat.Clean(testutil.TestUtilMp) + + fromTs := types.BuildTS(1, 0) + insertAtomicBat := &AtomicBatch{ + Mp: nil, + Batches: []*batch.Batch{bat}, + Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), + } + insertAtomicBat.Rows.Set(AtomicBatchRow{Ts: fromTs, Pk: []byte{1}, Offset: 0, Src: bat}) + insertAtomicBat.Rows.Set(AtomicBatchRow{Ts: fromTs, Pk: []byte{2}, Offset: 1, Src: bat}) + + delbat := testutil.NewBatchWithVectors( + []*vector.Vector{ + testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), + testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int64{1, 2}), + }, nil) + + defer delbat.Clean(testutil.TestUtilMp) + + delfromTs := types.BuildTS(2, 0) + delAtomicBat := &AtomicBatch{ + Mp: nil, + Batches: []*batch.Batch{delbat}, + Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), + } + delAtomicBat.Rows.Set(AtomicBatchRow{Ts: delfromTs, Pk: []byte{1}, Offset: 0, Src: bat}) + delAtomicBat.Rows.Set(AtomicBatchRow{Ts: delfromTs, Pk: []byte{2}, Offset: 1, Src: bat}) + + dout := &DecoderOutput{ + fromTs: types.BuildTS(1, 0), + toTs: types.BuildTS(2, 0), + outputTyp: OutputTypeTail, + insertAtmBatch: insertAtomicBat, + deleteAtmBatch: delAtomicBat, + } + + var receivedSql []byte + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + receivedSql = <-s.sqlBufSendCh + require.NotNil(t, receivedSql) + }() + + s.Sink(context.Background(), dout) + + wg.Wait() // Wait for the goroutine to receive the SQL + sqlStr := string(receivedSql) + + cdcForJson := vectorindex.NewVectorIndexCdc[float32]() + cdcForJson.Upsert(int64(1), []float32{0.1, 0.2}) + cdcForJson.Upsert(int64(2), []float32{0.3, 0.4}) + cdcForJson.Delete(int64(1)) + cdcForJson.Delete(int64(2)) + cdcForJson.Start = "1-0" + cdcForJson.End = "2-0" + expectedJsonBytes, _ := cdcForJson.ToJson() + + expectedSql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", + strings.Repeat(" ", sqlBufReserved), + s.param.DbName, s.param.Table, s.param.Dimension, string(expectedJsonBytes)) + require.Equal(t, expectedSql, sqlStr) + require.True(t, s.cdc.Empty(), "CDC should be reset after sending SQL") + +} From ecfeab809b9a2c8027656948fa727915deb049a2 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 4 Jun 2025 13:38:49 +0100 Subject: [PATCH 078/335] check errors --- pkg/cdc/hnsw_sinker_test.go | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index dc633518edcfa..a5568da1ac28a 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -16,6 +16,7 @@ package cdc import ( "context" + "errors" "fmt" "strings" "sync" @@ -111,6 +112,7 @@ func (exec MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn execu type MockErrorTxnExecutor struct { database string + ctx context.Context } func (exec *MockErrorTxnExecutor) Use(db string) { @@ -123,6 +125,16 @@ func (exec *MockErrorTxnExecutor) Exec( ) (executor.Result, error) { if strings.Contains(sql, "FAILSQL") { return executor.Result{}, moerr.NewInternalErrorNoCtx("db error") + } else if strings.Contains(sql, "MULTI_ERROR_NO_ROLLBACK") { + var errs error + errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error")) + errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error 2")) + return executor.Result{}, errs + } else if strings.Contains(sql, "MULTI_ERROR_ROLLBACK") { + var errs error + errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error")) + errs = errors.Join(errs, moerr.NewQueryInterrupted(exec.ctx)) + return executor.Result{}, errs } return executor.Result{}, nil @@ -169,7 +181,7 @@ func (exec MockErrorSQLExecutor) Exec(ctx context.Context, sql string, opts exec // TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. func (exec MockErrorSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { - txnexec := &MockErrorTxnExecutor{} + txnexec := &MockErrorTxnExecutor{ctx: ctx} err := execFunc(txnexec) if moerr.IsMoErrCode(err, moerr.ErrQueryInterrupted) { fmt.Printf("ROLLBACK...\n") @@ -367,6 +379,28 @@ func TestHnswSyncSinker_RunError(t *testing.T) { require.Error(t, err) }) + t.Run("multi-error no rollback error", func(t *testing.T) { + s.ClearError() + s.sqlBufSendCh <- begin + s.sqlBufSendCh <- []byte("MULTI_ERROR_NO_ROLLBACK") + s.sqlBufSendCh <- commit // This commit might not be reached if error handling is strict + + time.Sleep(100 * time.Millisecond) + err := s.Error() + require.Error(t, err) + }) + + t.Run("multi-error with rollback error", func(t *testing.T) { + s.ClearError() + s.sqlBufSendCh <- begin + s.sqlBufSendCh <- []byte("MULTI_ERROR_ROLLBACK") + s.sqlBufSendCh <- commit // This commit might not be reached if error handling is strict + + time.Sleep(100 * time.Millisecond) + err := s.Error() + require.NoError(t, err) + }) + t.Run("rollback", func(t *testing.T) { s.ClearError() s.sqlBufSendCh <- begin From d9a6023e2d4170b76871c1c2218c6259255fa523 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 4 Jun 2025 13:52:07 +0100 Subject: [PATCH 079/335] test sendX --- pkg/cdc/hnsw_sinker_test.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index a5568da1ac28a..a90e8797f0343 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -331,9 +331,9 @@ func TestHnswSyncSinker_Run(t *testing.T) { s.ClearError() //var executedSqls []string - s.sqlBufSendCh <- begin + s.SendBegin() s.sqlBufSendCh <- []byte("SELECT 1") - s.sqlBufSendCh <- commit + s.SendCommit() // Wait for processing or timeout time.Sleep(100 * time.Millisecond) @@ -370,9 +370,9 @@ func TestHnswSyncSinker_RunError(t *testing.T) { t.Run("exec error", func(t *testing.T) { s.ClearError() - s.sqlBufSendCh <- begin + s.SendBegin() s.sqlBufSendCh <- []byte("FAILSQL") - s.sqlBufSendCh <- commit // This commit might not be reached if error handling is strict + s.SendCommit() // This commit might not be reached if error handling is strict time.Sleep(100 * time.Millisecond) err := s.Error() @@ -381,9 +381,9 @@ func TestHnswSyncSinker_RunError(t *testing.T) { t.Run("multi-error no rollback error", func(t *testing.T) { s.ClearError() - s.sqlBufSendCh <- begin + s.SendBegin() s.sqlBufSendCh <- []byte("MULTI_ERROR_NO_ROLLBACK") - s.sqlBufSendCh <- commit // This commit might not be reached if error handling is strict + s.SendCommit() // This commit might not be reached if error handling is strict time.Sleep(100 * time.Millisecond) err := s.Error() @@ -392,9 +392,9 @@ func TestHnswSyncSinker_RunError(t *testing.T) { t.Run("multi-error with rollback error", func(t *testing.T) { s.ClearError() - s.sqlBufSendCh <- begin + s.SendBegin() s.sqlBufSendCh <- []byte("MULTI_ERROR_ROLLBACK") - s.sqlBufSendCh <- commit // This commit might not be reached if error handling is strict + s.SendCommit() // This commit might not be reached if error handling is strict time.Sleep(100 * time.Millisecond) err := s.Error() @@ -403,8 +403,8 @@ func TestHnswSyncSinker_RunError(t *testing.T) { t.Run("rollback", func(t *testing.T) { s.ClearError() - s.sqlBufSendCh <- begin - s.sqlBufSendCh <- rollback + s.SendBegin() + s.SendRollback() time.Sleep(100 * time.Millisecond) require.NoError(t, s.Error()) From ea822666466430d03729f8469a7fb0e89ec5e8c7 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 4 Jun 2025 16:51:50 +0100 Subject: [PATCH 080/335] update bvt with manual pitr and cdc task --- .../cases/vector/vector_hnsw_sync.result | 24 ++++++++++++----- .../cases/vector/vector_hnsw_sync.sql | 27 ++++++++++++++++--- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index 41b25054a9a74..9c1a60a52a2c5 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -3,26 +3,36 @@ create database if not exists hnsw_cdc; use hnsw_cdc; create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)); create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +drop pitr if exists `__mo_table_pitr_hnsw`; +create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc vector_index_01 range 2 'h'; +create cdc `__mo_cdc_hnsw_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.vector_index_01' {'Level'='table'}; +select sleep(30); +sleep(30) +0 insert into vector_index_01 values (0, "[1,2,3]", 1); +select sleep(1); +sleep(1) +0 select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c -select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); -hnsw_cdc_update(hnsw_cdc, vector_index_01, 3, {"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}) -0 +0 [1, 2, 3] 1 select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c 0 [1, 2, 3] 1 DELETE FROM vector_index_01 WHERE a=0; -select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); -hnsw_cdc_update(hnsw_cdc, vector_index_01, 3, {"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}) +select sleep(1); +sleep(1) 0 select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c insert into vector_index_01 values (1, "[2,3,4]", 1); -select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); -hnsw_cdc_update(hnsw_cdc, vector_index_01, 3, {"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}) +select sleep(1); +sleep(1) 0 select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; a b c 1 [2, 3, 4] 1 +drop cdc task `__mo_cdc_hnsw_idx01`; +drop pitr if exists `__mo_table_pitr_hnsw`; +drop table vector_index_01; drop database hnsw_cdc; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index e09385cff9ef2..1c96db5472184 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -1,5 +1,5 @@ -SET experimental_hnsw_index = 1; +SET experimental_hnsw_index = 1; create database if not exists hnsw_cdc; use hnsw_cdc; @@ -8,22 +8,41 @@ create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)) -- empty data create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +drop pitr if exists `__mo_table_pitr_hnsw`; +create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc vector_index_01 range 2 'h'; + +create cdc `__mo_cdc_hnsw_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.vector_index_01' {'Level'='table'}; + +-- show cdc all; +select sleep(30); + insert into vector_index_01 values (0, "[1,2,3]", 1); +select sleep(1); + select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; -select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); + +-- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; DELETE FROM vector_index_01 WHERE a=0; -select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); +-- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); +select sleep(1); select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; insert into vector_index_01 values (1, "[2,3,4]", 1); -select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); +-- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); + +select sleep(1); select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; + +drop cdc task `__mo_cdc_hnsw_idx01`; +drop pitr if exists `__mo_table_pitr_hnsw`; +drop table vector_index_01; + drop database hnsw_cdc; From 6539fffb3ecfd6ab1e2e477db796b4e1621e5896 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 4 Jun 2025 17:28:47 +0100 Subject: [PATCH 081/335] increase sleep --- test/distributed/cases/vector/vector_hnsw_sync.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index 1c96db5472184..3e484764a3c10 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -18,7 +18,7 @@ select sleep(30); insert into vector_index_01 values (0, "[1,2,3]", 1); -select sleep(1); +select sleep(4); select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; @@ -29,14 +29,14 @@ select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; DELETE FROM vector_index_01 WHERE a=0; -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); -select sleep(1); +select sleep(4); select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; insert into vector_index_01 values (1, "[2,3,4]", 1); -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); -select sleep(1); +select sleep(4); select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; From 917356b935a202c25be851a1ddbdc27c8ec22dc2 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 4 Jun 2025 17:34:01 +0100 Subject: [PATCH 082/335] update --- .../distributed/cases/vector/vector_hnsw_sync.result | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index 9c1a60a52a2c5..bac0ceabc6c39 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -10,8 +10,8 @@ select sleep(30); sleep(30) 0 insert into vector_index_01 values (0, "[1,2,3]", 1); -select sleep(1); -sleep(1) +select sleep(4); +sleep(4) 0 select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c @@ -20,14 +20,14 @@ select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c 0 [1, 2, 3] 1 DELETE FROM vector_index_01 WHERE a=0; -select sleep(1); -sleep(1) +select sleep(4); +sleep(4) 0 select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c insert into vector_index_01 values (1, "[2,3,4]", 1); -select sleep(1); -sleep(1) +select sleep(4); +sleep(4) 0 select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; a b c From 397f518fdf4bb1a46727a388dbdd4921d647ccb0 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 5 Jun 2025 11:54:39 +0100 Subject: [PATCH 083/335] add tests --- .../cases/vector/vector_hnsw_sync.result | 33 ++++++++++++++- .../cases/vector/vector_hnsw_sync.sql | 40 +++++++++++++++--- .../resources/vector/sift128_base_10k.csv.gz | Bin 0 -> 1391404 bytes 3 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 test/distributed/resources/vector/sift128_base_10k.csv.gz diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index bac0ceabc6c39..9a31d6ce6c57a 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -1,4 +1,5 @@ SET experimental_hnsw_index = 1; +drop database if exists hnsw_cdc; create database if not exists hnsw_cdc; use hnsw_cdc; create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)); @@ -16,9 +17,13 @@ sleep(4) select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c 0 [1, 2, 3] 1 -select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; +select sleep(4); +sleep(4) +0 +select * from vector_index_01 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; a b c -0 [1, 2, 3] 1 +0 [4, 5, 6] 1 DELETE FROM vector_index_01 WHERE a=0; select sleep(4); sleep(4) @@ -35,4 +40,28 @@ a b c drop cdc task `__mo_cdc_hnsw_idx01`; drop pitr if exists `__mo_table_pitr_hnsw`; drop table vector_index_01; +create table t2(a bigint primary key, b vecf32(128)); +create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; +create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc t2 range 2 'h'; +create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; +select sleep(30); +sleep(30) +0 +load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; +select count(*) from t2; +count(*) +10000 +select sleep(15); +sleep(15) +0 +select * from t2 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; +a b +9999 [14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7] +select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1]") ASC LIMIT 1; +a b +0 [0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1] +drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; +drop table t2; drop database hnsw_cdc; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index 3e484764a3c10..98eede02432ec 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -1,5 +1,7 @@ SET experimental_hnsw_index = 1; + +drop database if exists hnsw_cdc; create database if not exists hnsw_cdc; use hnsw_cdc; @@ -7,25 +9,27 @@ create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)) -- empty data create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; - drop pitr if exists `__mo_table_pitr_hnsw`; create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc vector_index_01 range 2 'h'; - create cdc `__mo_cdc_hnsw_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.vector_index_01' {'Level'='table'}; -- show cdc all; select sleep(30); insert into vector_index_01 values (0, "[1,2,3]", 1); +-- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); select sleep(4); select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; +-- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[4,5,6]}]}'); --- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); +select sleep(4); + +select * from vector_index_01 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; -select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; DELETE FROM vector_index_01 WHERE a=0; -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); @@ -40,9 +44,35 @@ select sleep(4); select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; - drop cdc task `__mo_cdc_hnsw_idx01`; drop pitr if exists `__mo_table_pitr_hnsw`; drop table vector_index_01; +create table t2(a bigint primary key, b vecf32(128)); +create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; +create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc t2 range 2 'h'; +create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; +select sleep(30); + +load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; + +select count(*) from t2; + +select sleep(15); + +select * from t2 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; + +select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1]") ASC LIMIT 1; + + +-- delete whole table won't work for now. +-- delete from t2 +-- select sleep(10) + + +drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; +drop table t2; + drop database hnsw_cdc; diff --git a/test/distributed/resources/vector/sift128_base_10k.csv.gz b/test/distributed/resources/vector/sift128_base_10k.csv.gz new file mode 100644 index 0000000000000000000000000000000000000000..3c3b52655c35d6174ad5bd7772d89b2f80ee2b4a GIT binary patch literal 1391404 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 z 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� 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 Ucz#w zoYvB%Hq}pFr{CtEiEUtQDp8n+hssmcT9o+Cj5w7^n7`H3Wli9W2Hz|;JJLeK;l~c7 zRXTnEf*XhGH9^h-+9B__3HN*{7IqtY)#mdQ1prr}_cyACBEy_=yTRKWuhIq1$g`HG zN>Niu+uSu6+NjZ@@FeOCWnTI*I)m5ySo0PA(GKUMB#ktuQtB4LQ_Dzl61o3^t-xZ(OPnjszQ2 zMXf6kdbIuL_5we%sMp#AQNAb+gda%G>~u_DoebC3OI`ppUqH>JPFIO)`D)16@f4>+ zyI=FQ`Jr*jwvxoC;>P<%>FQ7nk{H}{&U=aNr8rYJ4uK$|huRv<@I_O_$JBBmX z=p=)1fI+y}SykCXDAGP#@&C^^L-gW#y9PxWH>helkW?+~#EEIEK~cPY(?APA+WPxC z(C&|VhgH_tjA_ng0tl-*{LOZ!XzA2441H)NwPIb$C~qmSKz0 zF4^Wm|%6Iyb#u-z)d#HFeAM zOP$RKRC~U>Nj(O-P4DI4e&W5ib5+~fZ)+|?brQ@tj3^lxy4$asZdhbpPW86!AKO&U zp0JQeDzot7H8;~8UvvhNz#;RdJCk!uqR{qgI<<78Po=Xd5l9;0D>#VIP?ZpE>pmE7hfvwTb5^7$@uyaS*^2=D?Dj5M*A)A z{qvLeMZA*qPQ2k*%Tw81MyS~J=kGzdI#sh7P)TzIvpkhFTjS(qZb`$t^N162oihuZ zi_-joNm#uv`spbJ2RQP|Ka>8hkF1*J1Y2_mI|0y~*+S7?zo_(Sc%=D}klvii@WtMHp645vsfWdS51eGjjP2Kr%uY zCtU3S@&IiD4GFFX)|I|&)jrJ@Sr^%@|M86ZmBbH^9v)~{lV0)oJ50c!k6G7^XnCHM zeiulnKDg=EXEfgCN^!F!jqLwBx92Ot@}ZuXpOl26IwULxi>D0>d;6zDMtO^4f4S5I z0ldKfh*byAU&|Fy{NFmTgcO1EXn4I3<8$=Xd3|vYsI6Oh# zrH3i=VWUKCFT!QXqb6E#3N&6RRoM|Mm*?F2siEdYuyEgGG6+s`HZa0j5LvzG=zRYv z+CDE-t)vo5e<-UE4joE{rdl`1ofu575?1r_$aF)3zQhx{22bGIWF3KNMHAi(<$(%m zWORbBAkWpwEy9T##%suHxIW81FoK=$g2Gz6pbpG)uc8|xTI*x(TQd+iq|P`G#*uDZ zGdRRc9z5;p|$r|1)IOZar$l zRYMXMNfjr3NP3mn$U9Y@5-~3V7X+e(%v%}Opy}}o`0a*V4%SZN4S!42@t3TewDOo)3`zIXtfJ*zrb(bf$GYp%`7aa08riZjte0G z*NO4HO>ALhvnGa{x|<1i-#IAXr|_g!H@D5KaL-I7e;6IhU~SU1qvw2(4htk}qF^7z zjv(V5vuea}e3Bi6*?C_1)#RQv?ttO+MT(E6%(=#tIh4SuXxR%ZNw=HldTG5NC&K1b z8wgJ8kFr1p^#v;5#q+~bY&5trW1CaJ%u+J=rak37z4jVmpZjcQO$U!b{iPhY+U|#i z$tsxGA#C(2&+YY?jtknDxX&aFMTbcR`5L*KM~5UU*_XAeTB-DIGx4c-S5+B=Mz8uG zWQXQB2ht?@HO#|4XA|mA^b#{Le`2Q=9!L0tlx$vp<~yMzXhE1(iUPW@{Z;ip77E^BkJTAdUj}956xo3xmF`U6v zod18oS9}dCwscZdQ!>%NE!Ur)U?tDrEI^napna7K^2k~s!t}SY()zZ-8hO0z$vor} zPY_G+X}|O(^X{uAzIm(3XK}E}_9;tOl3ippG?DQi&9P&1pK^(XX*0}&A5IVeeyepQ&sn#C>r}!)+;^6kc*$pfKl-5Q1#gUp|daR+O zi~!U5=q%>6b+7(-afX9l#WY?Fjz)*6U+fEW@-*>%MTcJXZSFpU266u^MYA=Co5>52 zz)s7$Zt4@!WuBiz>`0{P`{KelMyXYxMM${*+JcpFI%`{QQ9^d&#QuQr~1knlk= zbPyxdnDq-6k#&b1h%JunUw6i*sNL*QBX>yO!-usaliWXNFX~ zbTkj~N?%8nlR2wWgCtiB^fCCdQ}3U@V?C{!n~+ZYT8Aa67h#jR0Y_Plqe(-hkzoO4 z-LKFreg`Ja1FSWDImF6mQIIfNEM(?{_&9pI`%(UtZoP^SOPlwz*IY&NKZ4Qmw3Iw1 z#to$TsFX`*8q;uxUyz`;@^_ws0j&APd1n#epol40!Fn0k!69C`iB4T_`b};ofjQiz zKjdnkrQq+FtU4(_ul`Y~WBv2j#SKD?EL2!Bhl0|FTTS|CZi0qg6CpdX73;hxLLTzH z>KY+#b)n!+sVCNWl$Sl5ro7eK{y>cZCK8*ARI14i;xhCb6YqDXV2Sps)!fd~a&=X* zpWFw2F?q)($3*$H2wwdsQ$C%ATAyTCUcg4IrDy`p~8hh`3 zC{@|lUUE#)<$ z1X>%69S~YLhMM%ltecMX)^CG)*Z<67Nhys@(m6_#j@KV|@xe(Ui^W*PDV7VmVp$=p zj_qI2w~We*Yo;th;TD#n;Fo69_lq8~o6_ZzFh5f^4ihi5b+NJmyJW$9aq>~UP^*rE zU-W&I7~8&Ow8B=vL%9X3@A`bp>jZMT)|de7pXa6J@eSFBvND65%aQUDm-%PX`c~OP zilH&TdVD926Nrb zL@3t&&k@Q)O5?_4d;*h8qtdhcf?Y_l$_=Y|-qwLn1B*SSJ+dgt5uOaNC<6HSvVzOs zfb`rGUyqUbEd0EbV!>DX`DBv}>@aJl#_Pgl&3bRNMkS-YgPfWpJovK&U7Id#!=c|>R=6zhjxuUgs3 zUJIAS3W)Ot)0nf%Ns;g@I4lVoF5n=R;A+46WA?I!Ho%AGlc3%KGu!)dt=FYq_NCD8_O=u!)@iC!>!EflqtB&boHOmuU=ZFI*iO)tt?#^46K@Z zs@Z-Yc4IQi>o&=)xx~t@SldxfS+AFPFhyn&7boz;l;H*e54^neK`U9z}%LQY3-sCElZ zLW?Z)=l*UE?b!3-&p9`R)9F`V{%S@c@;grhejobdRlFE0&nv6B8Hy;)&B0_h-)Yf4 zbRH`_A@ebWGBd%{)cO5fzMaakusXMzR9`jrbFYoIV^(GsW=PXi%6~30oaBtR33B7H z4;p{eMc;jN%yhEU(R{#fX(W8=+cl_{Y3Ic*dF}07@g-o#19OvpC>n;hK6v;-TQm0^ zDitG%@5Tr54HVMHMqClRL4aA>5F=@jYJiX$iL;QEActOdK_xfG>ml^ixs60lGD4(W zTncZ)UBj2SrnSqO^y3&+J27p(*X1cc8`#tp2H5zaIZRE$8wvJ5B-98QT-dJOceYE= zQhXwcjjnIy<5*?U`KI|y*GA+}IrE`rN~qe~@0!T;g_Nt(z3DO(KUK{R$D4{ebXy(~ zd`Rfwvmx`^$KbG39zd3_*iuAS;@VXs_8!X@U2G)*Kf9OmK+KNGc#mepH6ZLXKfrWw zSeC)Q_1`?6w~nC>5WSY!h7bK%n6fVoBWw;3H|bp#c`RMts=AIG(MF^D>?mzbR`+kt zDSE{p>Ld4g8SHoZ>inrBV;1I=n74`)h${y$o@q;|olCobAtcdPjVIlZhb2J;P-MNq zv`!#zPwZj;uc;yr);pP5xD|7^d4Iz)t_)CLsgorVr7l75kW1zTGjk9Y$hX-b!+iHm zK{n9+?Jw}^VQCL8`|y`Tu}lwso@)A6ZiM;ueZG{l3y1MmUs#s}1Pb#np`4Z}Pto z5FzXi$#fc|V8uC%}+zps@!J;3%(1i$(kD zAB`m1g=oF`@+jeb8&#s=dR%&9(*kMcw7`xA_IgSn@M67j&ZF$u1~7oQh{8_bpChxn zvfSfSbN*xWLh1H?GP>lIB>l9r@lVu5xQZ^N;XatV9nM+{F_va1hBrawW$x7#)EEn$ z%H1f3hUj}hgn51aBNS#VPV)N#Gk;wq4&yt~<9#4c;%_=1v#_ z058MZ#S$p8t3f7?r&RX;wYHP1W;M-j-y6GBgCp7OaFnD;d4_pU-!@2$M6-osSBD?ixjbEx5&&M5c+V(-`Ea3Q0}I1KLFN4rX4zdA-u zU?bR;wNt=MWa>n#<n*1Hl79cqYl(uJ+uH zyjtXD2R0d8fU%SLeHU}1H7pT#_Ciznz-eN%G4ypbiWF}HvLUm&>9a8VIa8<)8b~Ja zRB~vx{b|hQ=#WP_5`=XxTu(%-F}0YL!V0o(^2U1-JcjjzDGA=$xlv8O+~dz4`ORyA zuMRFE+!VO&27aSbM3&nSpyj?wHBBtFGbJ_Ujju~FR2p8I^BTm?g=qE**SKeFd40vUR77Ojg>_`C2+iR|Zl(yjw#D z439A7ShuCPwc(Jk#&_u}ui;CX5ueC=oFu`z4gkXSk-G&5<$C`7y+te6r8NdMpL)kh zJ(Rc=~<{KL{GYCG(Ltz_4lFsx2G7&df`&ly|!7VN-ugJ^E3AeSK@ zF7@juMUxv-c}Vh_H;Ao^fsf^*7TGVyY&-nLuskxtym)M=nO=4Fr6=?|zq?ABdC#Dh zruuVho_7oCQU6YWKz<;1riN2{omEU&_a78M+2W?~Gj#i@qG2|g=JY{thG!g4D|T`| zSxfM)T!p4g;Q8o0>-AI7rsgtyKbIz0!W=A87(vL7-1s(Ut_A@&D8~A69w0o`1SKit zo5R_?tOlfy@nr9N-t8)7&3GjI^QNu|dlx3)cdzK6Oh#M-VhD|%@tEkGas1dfx}?oc2fudYox@yL1BkE>RZ5hr-P;1 zUC08M5f_Zz0hpLCZ}K=zpb?SSgDyqiE*wUl7xmY`i z{Y~S}JV_YBn}=?PX|vrARXTaHKR=^jDRJ51GhFZ8h({mibHpm28h?KA#jKF*XzJq$ zdBQSujrv|i1!`e{C8uP+!!5enyt?n-c+*Y?_LX3)uq=9%%=SAy(xgc~#`(>wcg;F- z$FqJ8h#skgkUh*eY=;w!b=rT0Z6VZ6;vI0?&eEn28p6^MWK2V*kj+EMUvEtCC5_>> zir%Gn87XJ9BrmZ7JrWn15QmyA#|u2zQo%Z=1h@O}NWag~F|h_$9)Y;9DuBWdLfBnI zXKLH4`Q0$0JDzVmn6#O}jzw_LsEaUz{WIqRM$L;|L)e$Pvw<{yNk*uO12Mc7KedZlk_aPu4UhC$qduUg5J4xR*G=8}E~p%%2q(&NCSNp@)**}!5)*KdFbiuPD` z<~iC})z8iBi_~Y5EPBjJ3wkXJ2BKR-j-wU95&rrzKLALIrsgBcEvQfbBb4p>XVq%h zw`wjFygfkqYOj*bGZwnZzRXd}Ss#UFUPe3Iv*WNm*Pw4CTQ)->V#%jV5~tTU8Ur)( z|E_W*5uAmj!#>|E7tPQCgJHMDvO_l9pJZByTo3BF!(`x*9%$ZkDf0vkYHO!80LbJ1X@G%uZt0{pPO6{y|)dc6Q3!F z-gErJg97M47^g!zgYa8$8AElwx8dl($_q|S4~_|f>QHwQ-ti_Rx2!HKoRkRcYo-%x zb{D0<7u~kELzhfch3!&Un-9d2oZ(AIGX#8EGIed4sVv)E3DjtQ)R0{d*|e2?YtYV1 z*(&FILqKL19C4mr3LOu_W#EvDEuI#cP zm#og`DOXG{5LkA@VG+;)?98(!ze*i|VFoM=WUDjnJ20j6tLl{lIWf=-WQI{P% zShmzC0A@p7kD5V!0-#)92g^55XN`2Mpy5(;j-H}e|-~{!RJa7^P23ii9 z`wH_f6AK1oJ>1_RaT%;)G>b9N zySiljrZo==uP`VMg)DJwmsEJ zSel~Qq5R4vBs)DkNs8uaE@r~_8f+roprter*H3*3(&%rM zs!_h;Y&a6jLMAZrF&{}Y3uU-Qlu>Hx*DkkP@k2u_7p7PK4(;m|&H_INGH7&{AN$ zV1+(~LX!Nq!7^91tR;0;u9+CZHT}c{tvs_k=#zj3{BZyo^VBRes=pIh;i93aKw<~! z8DA7g#}bWSyvVr;Fg9lAtYnc(e!`5B*6lL{RctVYs*SfcX>CFxySsgSwa*e_d|;Au z4(cxnF4eWEuX>L#*p>At>WbohzU;7ilM+iNO~brb8|h#(_mpq?-Hu=e{uFfuB7x5X z;{fIIK3Owf7AqdO9e{0ZIO|4QbFzKo3H8< zyX)Ba6pU0kIyCswVn68%mfU#_!5z5)=Hv13U`zWR)C$v+paiq#{(YlJ$-;ZTHf!jF zz73mkqE&GqtGadK3(x5bM5V^4(Pud6CZ|p47L9Mbp(2eM3cqF;^a*zFa5sjcbjdTC zwA|g%qb?z|Jc-#@OFJ*uQ$W|4HNuo3RRe_2j5dMOXCv`VPvW6G-0_r_^tJ;C{9_|R zx1N7qajCw#ne-qk(gV3`6uUVT7BJ>8+6A3S(+M(czN@t3Qovl3n)Cx^#9OAv;#YvjJmVN60jkDa zH(s&}TzNCZQWjV|nP#|mBhrNf*vm`vO#?41>P~UKYE2!FN{0Wm{5R;d-<}rP;HpXkjY`u zC6kH)szKukBhp~WhFk<*GnC++-vKL~8hA=7`r1|02j1=k_)1-v^?_v8#Xry5Pjl#P zZLlWh!ZsqmvKKe}9RYiwonqUa?=}6lOy)kC4r#H3rDWdkbn_0gS-{@ME#@)cijc!- zFlPxYu#ypZpN`9Sb)(#<2D5Qs;R(L$YQQvSoE5`DlI6K{7IyFnTW<+C(U>{BUQ76r zoU<+%x%-Rt!U7P^bEQsF4UJ%X=4Y@%F@?MORdJ}WOm`f3sv#d-4!uP`Iy3RKu4G4f z*$&(CN;}r6z1;YNk*^-U{_MECgJB-OJm)$h7l<8`*}N%VMyz^(mq+@h1txvPI{~jH zggmf}6)Dw72FViXaAwpHGNU+R3!GhdmdE@jm||hyQ2A78Ks{0JzGO?lU;%z*1Db|p61`-{bTl~Q47DKPLk@3Q-Qu4FWp{furTjSflE>yQJ z>jNs^~h~(OojV($i6*HVQ>C4M)lrN zZ%5I>kTHw}80*jFy4W%h0nu|(>`967QA4D7P4s3$8 zkVNV%rJrZDAMmvwHM!lL=JFP;q`K;~UGu~K%8qM9{>X38t)#GlL**2`{uc+JGK;ga zrvNxx8nzGyByLKB)-jB7F$2Ay0TD#OGA{5O*`ZmTW$nENpZd|Gi6CnL3|33hs>04k zo2@Djy&kS}*^I-w67}o0BvEVuS^M0=5za}{09e(rpR*t~kXEb~7DXi~4x9v@|FR+X z77+@OV_mhCDr_Nq1jY@`)w**!B1}4&7E6Rnk5)bH&(gMRn(R98`UW@y#{)fkbU-catgKAU{cxF9uEdyD(ys6a_!qTk>px?e0 zf?(RVxi|IXZ*%@+)*q^_N?4)2VUZ-UV-QzJ)^fL9gk&~Jj)rj%OjpTu37e{-Ym5AAa1DUd@!Fxh9B_l zea#J`_O6V0pbUby-vIZ|m_n_tKY#1Ocfq@KK3d;-L2tOih>-cvmj*%j_1ov7nY|AL z(jvrw$2gq`vn%QHxrp&Hy+~-8AemUAW||M&kQOb$B=5*tBbWYQV|}aA^Y+Eg)UV9s zBK{LHDI8eV8B^GpXEY$J;qQGxZ{LSe9S9SU0p+Pb_IWvE>NHeWZ?BM`7~>FR)wsPH z5TJajadVF}4vCP5@@V5{eVTxZ+1`7vL&c&74s(x8PzfmzVet(#;xvvPyoj-U(WgQQ z^9IQ-RX{EB>QL`WWtSOxg#t!g5pxk3Fs7jzdDDVuZ?Cy=t6yV+)HiY9pjOjCZ*{{ycvv1*mkYOvAok&Ov59^{&F4l>R8#Na|Wno25 zhGFwmhTYK5(>{&xE~&5FwGt}o|Mz++>*5_RdbiIjKmNLA)-}0Wed-}N-iR}0-}+VK z5>3b{&rnJ060~GPRp~LoIa%OMz1>t{D3n~PV)Sh(eDe;3+VsC&2+;fCVT*dbOPl`X zm$lftWQ>goz)zYe<0(~3|FZ&rP0&;=dBENXShnb2_Xtf@EZHONf45Nf~ z1#67m(N&xgZl+1tHRI1_1SC!knpjX(Yj>zjSNJ312DV$an?{t*<8XtHb%>JLBi0Yu zRC*8xBS(23Q$wWA3Cff}oE|0#IA0oPoMN|7r*wbf|aQdjuOWrdv4k1KUq1;^o{Beyc z%?Ru9@CK!RYKqjL%oG7>&xnQ{+x<1Nmzu1NZX=k%bv;yig zeoA%RB$~c&>q0lM9e^y~k@(;jN?l=yG*i{FXir}38wm!Mh1Fbl`kV+9~;zpuaq${>3_K=*C)FYZ_|baWL3UfpI%We3r|Vt3hel4?lk{ z=CTwqG;jr0m9+(DMO~edGsJ(m-ew7$7V|C_!A(Uhhb>0D+9C8MvF?>T+VzXg#xgYn zN`J`J5%soG4z*;kw3P(U-~uAvpOsN`%o4%ujx{zajtLEK8)IR2LMnvIq$WJVHfUV& zwu>miRbeu?W)b9|M6zYBEHv?0>Z&%{=yij_cQHoiU=npbeukxA<29ISk_0y|lvWCZ z9e@62TA6^T#^54F`Gw9c@z%&DsusZsVRB>uwf_;@`o5ZBAA@Kz>rQh$V1Cy#fYGiZWugeM?%Fq ze~*=wsv4Z>f21G1svn}wl3p>BOib(jH?KSup)Lv_M`*y?e_S0cufN)8k3S0Qkv0OI z>A~5qe`bVc>j7ACIU<3M7d}*8$JB#2L%g`sI-#59{d2q-q`m+$Itbn+t_s*)LC!YI zH`4obfC(cr(w|C_1AaRJlk;PpJ2V|ULoLt%&>{ktr>4qe!>&Jn(};k&WWPR5UTh3t znI0^MP>-&Kg?nyM zirP!1VGZ>Y>TbngX+C&|eW}@CHecj?Ljf#eqc=i$Us}_)Y7WXlF#_HPl-7S>{x1Ad z()pxAG=h*+;0l1#E}wa5rpi4`T7q-D1m&nIDVE?RV8<~*{_J`Y|Oo9et zI6N7kUrlsF^KJm&RE?|(QZulTqsBuw*{|o%-@_2N4_7^cR>!nUhhA{?dkyWwh1%U~ zmn8uSsSTKsa)cAU)76bcz<6ish85b0f56erT6AmLLTLS}c}BHq%(2*Ir1F|Nz|ZH7 zq@?)>Xe4#nWvhg@dshk2rawSW$^jC+t$~$HBbK`>k3R6^oF56$+gJv!K*p^krvMez zD%?=0ImN3Q9p2=+@J!)QljQCy_Wn~bNlH|JRw=OKF)bjnXYeCLPcZDho9ScM`%L=a zkp^bqTV^d|G|fR$^apnLQwc1Ds4;pe`yAq6W2-=N>-)z95AJ|?;?yX5YQt((zmFw4 zjTqO(t2iy_=^@P-jt0{nQ~j{uc4$saCUc;!+*)_#9tOhKytT2m1q0WwWLWw0nCU8} z)6e`2^PfIF>koCWRCX2QAz8c*-0LIh8KZxptFek^q~-$|ho2ws2k{CS-Bzb6MU#a! z%kKA?H1#E8k*ZJRKs5bGT%tw13u`OgTCoP|ewMO^`Ep^{TMNTm9n8(c?h)5?nB@^^ zo#pkM7SXJjkD& zL|lC;L&1Is{AyRwcM~Q~;8X?bTTcnvH_NY_r!-e#CYO>Lp{+&3t?_k!VlCsA- zpbXS0Um#7$f^g;|h>ac)eE<8bNskRKPVMyFV~)`ePu<`S;m!J%Z9iA&tp7s*2efaj zvAQK}Y8r<-cQpTwChWmsoXux@vMu0ZAwSVK4^oL!-GE*b-j} z^XcFu&tmT`9vUuT@;n-%W8?VH=4W>Z#-VOWeU~IwiM=-{ zujD$2Px;zu-i!(I^+eeqaQRoX*{H!dXb^z;nbtPe^TDalC}r&vlQ9L6q3aeqJ2FU$ z++8(0Ho==FcwS><6%NeJX9k+-lKfVv)Zr{+Ta5k&Nf;Roi3sr@a57K4dzT^-)fBLh<@sn6I#B6TG0V+5C+T&#b$$HxHF*P!{S{J^b-<`o}bU}vc`e&HRKCz{*&JRsJ{5#bh z9=Q9Wx)!5DtELk3c1t2sZ`m5yp0G?1t>n;3Im$qt)pN?twwj~VK%A)4oN4}gNQO(} zTyiB^Pbt8OttuA@nKlVOB?{#U(GmYxOeROkiA zzG>9SjQGj|Y#pIVJ_^GN*CR0>P$QXTlba~dgjU@?k0Gr%;0SgCm7$omec+|`UpO17 z4D@Rc0zplK69`e<2u;$ZK#9>A8UP%q7JW_KUWI?SCb zILfsE`wr&2s$^sSGv+p4(PWq3pTEssk=eyl<*HyUM2bNl^%pgofmg(JU0PyNtbVF; za1ZHI25T2@g#=@65ROC`YW4KOZl@He^S$JAq->eah+c=D6*%U?9Eq?(8pMaxVkFZ< zq^G?MJ_8l6CKHl2CoC2$Xik2Fb+@#plGo+%k>YJ`{L9@4VJ!Ke!Hg6}V z=X8Nfnxx3l_vrBIepU3BNEkCz5&@Kb*~^etw85L#(%Ts3gkqZe(W`gZJ0j<;WG0u& zVJt-{(*T5|pm|_*Gt-Oo6T>kNJAg$h<*UF2w0`!@v*ul4n+s(|e(8V$JDd?%N(kgD z3Jy{|hd+=pc)%G7rgBFc0r8I6V@Li@*m(m+dP*XC>@3Erp=crBfYZ(Xp_Bpg{=S}L zaqOFGJS-Hm75%pIOP^3KAHwPJ^hx)ZVi;~s8~ZRhVZNI(tKA&bHwjNGlLvK!TOPE? z*3cmdQuSJ6p>BBoOLkJuXR3Btu0UZj>3}n!Y)1J}yS56H&A@OYxN{19#(}N-NBjTj z0nAoD^UCDaXPkIX7j~qxYNkId{2_g+j{8OF ztk#+(5I0edelxiKwX4<7eX?5gq<$SA;_fcIObQ{KX~j-EGnNi1`iupygbIQ>u-3B> z(n8qc^YjVDWp26O2^u}J+Em?G)s4~ zZHm%dTpBNS8lE8<`dpTOp0?-{ZbQT<1ouRr=uF0Iye|vuRCl1e!zEmD3m-^94Czezqbf zi#m;*{EKfC8A?ie1GZAvZO`qf>W$)nyfb*0sC>7NXQy2LknXHDjrP>>ql@A^+@M(#HRUyy$@hfb~eQ&M<=KC?ivYn zHb|k|`bNfSBFU7B1MhwUf+j&M7aeJ_1-Si2&Po1XbN z^diHo;I8?2v)mv2L@6$3csiUEdNtV(_!|Hy?+8tY1u#q!LQWf`BBkEZmBobA z;Xb7)JnC09z(akxiB!Y-L|>$D7*MtrmQs)BAb0WyxO~$9%0=htl3}1@ zjCRIF43;4saU9>I_kUe?;2U4>e(WZU#E%DBQUB7rU8pqTQoI4D_4n;6u z3lfTT{lj0^)Iy&1UNzyll~{|SKA5*4!M}b^J@PW4akW(KVX|$z-jr5CLZK5`(3U7@ z)fWX0FbmCP>C?unMqU#6qlv%VxpKEjC5JP8?Qlcbi}6kyX^4Y1f%r>;I<(Y6!vhl< zDC?^lPA**NL26}50=vdRaC>R8Perrp&pGH)Da3;lS-Q7*K|LAbX!R8m)X~`xyK6oC zbTky}?%M=4&9jo-K%Pbe#LxPHliq+UFQnurJl-V%NAUIIkn^mbESQ@fJSP5-mu%h1 z9Iiay93=@Z5anEcYK3spB!@e8yYnKqH(kqXz$&t=KI-69aK>ozwJ@^2{8Y}RTte0y0-k^ucHJzDHivq&>|(S^=gGbS-$v~WCXku@X|JG81-zKOLfLC=sU_pm{h zYF-Azm3AF0^#1Z1=Zp`52CbKm_iy7C)lj#MZ@zw_!OCEaSmT|dbS_>ZfyINj^iEB9 z`hA$0imvKU;QL-h-nLFdmuPoCaPWVsv0WOIuU0$Mi*gKIHfe(g|J+MewLPu;3~|+7 zH?^oH-Ua)XBu|>n+1At~#m$>Sq26An>(-2WJ?t8}gsJre*hw6{DyH0=W_b3MLNY4Eae1=L}g!3E^Tl8dg^R{et(^=*0t-%FuR z9cvF(0X&%1;Zf51T1*rIJ^=My?^&tI-b!Mkk)emH|>?Om6`au8abM4XuY%R=m0 z)%v+==s+e|R>d%3*8jsO*>w}-JgNwW3fyCdcE+w=OUv*{i@X?{ruDJ3S8DoTzAME1 zW#SG82{6S7k#HJOBi7WFTXQiK_p!b4vEHz2AUC8UuICE!U?fyF!#+jcvca#2PZ= z&ZDTnrkUQP`GZaTn$1?u+$_@$o)IPas|F${N%vZZ2)V18xU(eTfvq z!Mva3KdBh~46dsJ5#PM<%9DH+Vy`cz5c%VkVbVf?=PVBC)6drUXZkD;P!jm~U-hBc zrBQiq?#W|2as4`C*5c-@U0jWzI4e}l7K(mJ z+{st6+*obivhpl-(QNjs_iPffFu?^&?pkN_!#6G3#=o+0Ou1&~ zgbv^4$=u0)4)@*`0}>i__7wC9CnhM2y(Kl}0EkoLnh9>va@^;emY!-rD zX4^-T zi8ngl+*S-ru1;#2qSjkqO%{&-@YE5>L0lyU&s34H5vDme{$bi?TyPOgQGP&v7B+P_ zUZ_5LH`k-7aLEm*wqgcCw|*+ki(z#EH_>HCQEEa#}{VF7URIOgSVL zgF^Q!uZEQX2U8o1vh$(a{pat4gRyOzjpayKKFv(HzBJ6) zho5}Z``mf$$fu0#Ct3u``zBD^Duiwz{TUtFl6HSK?MFM&u5j*~>b)yl= z^zX)J5)admX1gyU1~GN(Zab#;p6D%3Gy5ULcM>T=s_34 zYC(=T68-4Zpm*`C8XZ(~R^YFi|GFA}Su?CF8P@OObE!lKfX^BZ{g{{f=MdP&`-|C_ zZOdayI_7fg+Vtjbm_xtpyEMx@68ya-aa)O=~L24r_ z^~%6NH1I8HyC$+Qj;6PazReG=`qx2>kU98D-qrP2DQ6a*P>U<09*!!&;2P2AhCg4z zN)7)?V8mMK+O@C$vrubU>aN7WiBlL;)!3I>NBsef)`t~arqe8CGy=?3#ktJ?>xK%2pbH$j);U zjxws7>4kkvqHL1WKsoYqSFFw8i|ET0m}}xR_fXbX#S;%A6o#sOf_ZyAOS7BBmU7T6 zbZjdWmdv+S=VMDHF{R0>qorpK0#jxztidm?e0J6x&k)F|FPY3F`j&e-{C+B=4rkIc zM)DFq^`#3PkY3pnC8iOa3o&SwO(aSqN^PI}0$Q!Mtnuc~3nl)&?O<!_XAT9I#~a zHzlhV6Hd~1I7ktT>Ci`-(yNt6RwgnY$(Z*p4@kF4VL%7ovj_Hq5k?8c+W#3Zq?kuE zKJHF^c{J#b{bsIUrH8LggE$)5WXQ3dcoixH6XKYR#ng&nkPL7nxfvc*K*28Nuv&r| zs51Gv-ot^*I0jU9vU#y;Yr6OT_hX^#SW)R4(0a263}d4;yh?+HPC-BV#QN9xHR!8j zHYBTFa^i{KsuOtXHZ(+sLMXQLuz5})(Soa{E(WlnUB^G|if8Su)ikbmsfUEZn!lCH zVdY%vbBz_tH!EZSd^cYzd%K)&k#sjR z*|0=e9R`BUC7OMbQ)W0lJX~V(s%XV#ZL3_3%OCAfum@I-#hm%-Rnr2Zi`4}Z6}qU) ze<&nx)s1Duh~`)k1==k%B6q3f;L^O=Kh*2|^OqoCaO+F8*o(YEeVuFiY07u$#6x&f zf3(&QmfR3Wt(w$c{b&022FULx8_zmc{jdup4>27)`BYTvH3ya2w({rftQ&_BYFjWZ z^}9oLar&Na5}(g~#{-p0cE$B|I4A2vP|kt1?~SahS?42h3w619KOihob_vNlil@*SW}SDduA{O!?>!` z@|IcCbWm3oi;Ks`s6PC6il8b$C3N<#Q%?^B_bMV%PL5(*xrQWG3t&Vl6d~>g*=+$Q zDJpWa*&q^ISfT>iF1e8j4a$FL&_=PH_ci+BuJvBsX zm^92@o|ui^#J>c6)W!~55sTtv4}mrYNcbAi(es4+`{ys!w`5E8g+fjX2n+^1n86!2 z$5ATeuCM2*Uj7TLToDB`ZWiq5y-4m0>MA5$-tqOStMF zBG9-TD!VR<%TyD( zk{~RjWT4OHRaU0GLYb3wRe$RvHI9W#=aQpIfmOY#>~<$mLi$5conCCf!S?8(g|XB$ zv`e4mTsUHFp9EHyB0+Y)I%Rfijo5n|9ZEVu*@2N}?uR&JFL~GMp0GKmv3m7baNI#1 zo)+D=FcEym4jmquHtsp-4~9Sik?g|8nc zH9KfyXvjRf8-CAupA*ZWuictl*Dkxt$CD@MP0VmIcY&&1wKzl|ZFWM3p|u7$MJ%CD z+n>Lw(XYhE3%1f|jL-vKw2CqYm2qmOqXzqQ3J*f;`R{ntV`_10MKT&%s9ukHj} zNgs0SK&e+m6l&HvRqN!RL#0;V5e4<9c(Y^eN6J$Eg?J(cd7(Dg52L}97Sm31#{!nX zzaIFs)N#5g8x6!sdKDtq%H?EHMpo*N_AZs(nGMT2-6{r=e?#<`3uJqpTu$g#sS1yZ z6Z|DBT2+$pBrL;gI`|+Gcg1Sgfj^81Mqb<8KkU)wzAq!7?tvkpgU_uam3(O~f9EW+ z7<(i3CBjuFJ36}26k@JSTZ+gn)vgx#v!b!;n6;(p`4>7hHAEoP5aLuMmmwjM4i7|p z=4b{pxs=`C1e;_OhFprUQYktWL2NvD)`xbQH5BG@TGk9^+T~@0%tcv+mT5aYj0<#{ zSI`d0HSn+@`b#34?#x9qoOuLLWpRp1hw9(0{2QcPz?^qv^S@31^Hp&N<|DU`8jusk zoDy|EnPL5XfMk`=u>nzYmwh{HW&rr-)c2bBPT%<%-Kyz>ZuVrq;IzRiU<@#SH#3GY z+UuINdaOty{LHSg_+ohjlHFk!TIFJNChV4yYCXG-UENFC>Nx9F%&cD9oI=@99KuR{ zCvgjz50g3aff!65MBK=4$lAIl3q_07{Zy8)1dnF_q~DsUv|2D^;T4mrorW^xmBdeV zPN6Z0di4g@c0q;Q;fq@-RhMOoK^?anFO{3ME}cv)PuwgfhcwU_jw+?a(xiTcNYfM$ zzRQ~LkQJLaDwP^J`9C3?1_7OYgX&DL;SPax@|m{)|M02tC7V)~uKp+B=O`pjZzD^c z1}2I@Fhj-yh4dLhNQpd076XTxE#6;`vbO7mb7l_MK!%qH0_mNe_2qFI!68NS#Rxmm zLk5xN(_FZ<4kHxNn+a|-0l;yQa-&!Ww(G*V-Z(Z_P+&D>KF5odAo}Cn91fy5Cpdv< z7eMw9*vJ{{xx<9nY2Fg!EGvT9pn`fR+Vkh{JBSNwLtK{=UbVVJJWb8|6wDCcYG(Qt zRlrAyaQ_ePFBi87OlZVqExVau|HlJ;2Gt!}+og>VR{e6ytMAH$FYS`O)FP_meT;%e zhnYnQIGrRZi_(Q*hjkB93~g%MhE66sO5%ic%TOTkVC~^jt0AffSx>aiFd#_d1@zD$MW=Z~EQN*%)KQQUPrxj?))5`sh_xuGkbYU+r3zZEIG zYHT8s+`xfipLJD#Wb4g_vPXQp^Lg`d=9lbdd9wcfhg8LYddP$CU7*0uH9aCd2**np zV)j222M%mwVfzrWEB!-S)Hi2kLd9>x1!ejHFMY(8U5GDNQC7W6hq3YC1~Qu`Z0DK& z=Sm1Pi@O_{r?eweoE0Rs1nCKQ`;pXkLy@IBysVmEr3A&(?}`ce&SGGKd|rw3RxmS! z1`_Hf;s5r!aGjUhmGK)IOov4pYx;QWdenX@XEjYApj|>05j8}0sOl!c_-3$AJ2~!H z^0CI}Egu?9?%&!FPATUYA46y2i03zTRwLIUGXI=xYkFIMG;=1EiLOhrpMl<|7xaj! zz{I5}DS5rb-8g*0-_UW<>I$i$3_}&zKvRPNhWeT9v?`>zSiOtc!94OX>q-_6)9`;$ zlfFe6s4_P#i?sdu%ZP9d&`Yr20$_?LlS2yg6Jr3WS8+3u4vLU?nxhqFdqK$)jE zW9xKD|GB(1fDqE`qedD=#P)~4iXzSGyu;0lP^+1Zhg2$2qW=kFu!x{{6lzHC^`UWi z*i6xEPfB#=D$v*L4?=1oF*kqA=H9t+pW0^U7n9i3-L;E7H0$`MS#&33x%IbB+_p{` ztbH~cI*z-@r7z2LD$MI4{&qW#BFu{55jm9 z$~SZ_YvFEPyWf|_4)0|rJhhS!$62RjVI%0piBOrVew$dy)eyW@W0_Q}6I7mJ7wJrg zDL~4_L`6+vV3*#%xlt7DHIzOoh19K7^!0H!KZfPzvz;E}T@C?q-+W`$&M)fimS_O<2`p`7MsOj}(J8ZpaK&y)98xQ2oLFf4Y+AzwM!-Yf~F$bbn6FU>o zFsP=N1|PrifP=n9w{Z>}xI}YfJ?3#D(YC1D4GO~kXf0!RUuhi+4Oij|V?r`;u`9wmRxSIp|m1~H0 z_NCyi=g;5&HNz6X{}T6*`SAXxVeFF6e|CoM-UGR)PDIp<+Ws#Eu^Ro)2^;Ea{I?J# z>i@Bt%98tE>Rpz>|5P_?<^NKF9K)lz`ppy+Yw?CHL+0c{W8zCOjRbpZ#du(VU4eR^se3Hm)>uxTVEUK@) z%bFM-YmXQM>xXzm?BM}=^3}qAab59NoWE-s;LHQO+?L2vJmhR(vpb@3j;>tyIXy8H z^(c7<49^C>$&CoGQ?7ji_+KS7@5);>rg9V4B~e4Bu9DXQlUR<+uo4f2y?CgE?ziTX zY6n01cCEd{RwnW*=~9)|q^Jv4^DutZ@7OHIG&Wiu-jw0flRJN?$xw}f2^v#i$QS~2 zCw~ouhD^vp)~S=u37%x;Vxq30BM!_wCbWPOkGT9*vOO{P2OlUR6SV2Ya6y3^NXh(i z^IcJwocCaFb2_JLt-ycfQVD=EV#ltf$>u32$&LKxL7ZaP+k0kM+?KU$jz}1}F~6jy zkFIL1S4g5XL2ep@2{aVXg0rEvj1aaLb@L9sgpCBjgwQTplkMOuxp>NXLdrASxJW`#8e>Y67ovD?tF8w<8}ix~;@c3GL^f*}ZRXChejz74fs zVig?_;L#)=n8~n76#Q9v>t1@4W(R*1qG4kRa5Qunv0ZjRSsn|&;GO)yN@<8Mfq8)$ zT{NLyyVOfq)Z;wqBFqc^w{KTB-9)79IXWP@E`}^=Rc{>aKcDdNTdE-B5-T{!PRwYb zlYEu#f&FH8PHs`LJfWCtDpre0#%@lm-7NVU!%XE%PDo-#<5xBeT#z9gp?&n83{f75 zFr$Xvt-N&BW~cXVOmQtenI~w}^PbZ5G1MugWXqh+?@L5Ys0OLkv&hR@wn%or9r|_r z(=SDVrKE?x6d$FyIf$DpphX-@$$i~$BWL(xh^I%tl?iaS9ee6oA9tccT$jE!rC1O+%DXUBjo z7K_+UAQE|`+-ohf--w08CcNa&R*hhnAJO8@KCNb$H-urZ7GqyEMrTn*PMXP;i3$Zf z|NP~)5Ns)z@`R3oFgHY#b@>4y)*0shbP$xPKtv;fWx`QDDpSYe8~UjZVyKK9GHai!JRY{c`GRIh| zhQk0jUCB}KYQX`H{bDmgfDIGzV86dxxLJWX;8HAs*0FA-#1p8kX5=KcbbrFBeZ-+( zKU?V!%^(`g)=G?_mJkB<7J>~l*sN)lVL8-p;2%;fNDUi{6Lyh#-;Qi%gD;|rXn%&| zVI4@onH4|fel<7L-s*3)=K>Iybjfu-p#h({b(>Dxf%1%_ zD7-xgP3G<%P4I@gjE>rE`Y28wXOcB)L@(aIn@9f8r<>UJR|GSB~`3GaESTfsdm$m|n6IJ+!iUC4srR z0t2+WW3ipaVMUrX!aJ8;FQ|sNdMtnp*?6B0`vAM{np@_`kvevWt*M?7R0LdgRkaw)0}ZP zPu~TaJd@36ZF-aWuT2qd^zY^|A<3@JZ7#$_I=9rQ(iFg<3xnaB4_%U(A>XIr4DUe~hPR$V873#nqzr91l(5Jp#euG<^oqVjm>>332Z$s!eLMy}B zm(4JPRdaeRs%YU_9I!Ucu#ee^!J;+yCjZ<9t(Mw)3$}%#pF9VQZ>b9@FM!2EdXLFj z6-to0B}!?a}`n*B)8-pXu7%S;6Mi0*1Z+%ioRQHZEF zrUw()$O0A>0SB=NH1o#YX0jc_=hog~u~?k6+!bG#TmK!%$pO8}c)EPdlp;Mq%)A^U%-!{CJ5IL$R?ToHl*B)5w| zEmzat6L%yVHED#FWovac5rG68ihjU%+Tx!q%>(qDW*0@wEbY=E=6+nsE@-Ar9OFlJRj{NkbnT{gKsiB4KBr7 z2LRn02s)3qzxo$sT22L7)k=b*;Egk^!2RLe%kAh&55)|~%pez#$tcM+ptf{aZFgu6GIeL8qNlc7XlVht6OAiLah zLa#OUzGW9#rj^v2#M>N>^EP;*9=U00gEH)C9c>S_6p6mFq-Y4`k;>#zlbC^1!(#=8 zN}G!)+pnvkdJ6&ks;yzssW&^0_A>2>*D@go$47O4AqL4ien*tBk->c-a~@Exci{G) z4O$BTox3>{cQRXDyWV~PR;&?PdFYqwpVoiOzMcH!Pzd}QpoZX17P|s?eE6gtOXH2bE}1!_`;COj4F#!S$r)(xGAp&X^n~0N zIBeJ2>P!Ady`HsSVfQ`%t@m%HF~opjZEk(!%YS`3B8(pvp#ikaJJF+=q2Hx}D2Vg4 zJ9(>HR54l>6CR7ps?bb8$x?cMcR#3@%5K8GT992J)z=F>8c#n@J~L+zhAq=DkDBBB z^5JHELvi|h+$!D9jfvH@_nNG>!B_;ZLwQNmYFi3F*Sxc^sO+idWlGk?0WY$Xi?w3y}?v+3=|LK&lh_~jn}+H_K@E_15sSOx^aA%D|VWM(3oR@ z!C4!Wo^5~rKJv{FRV3I>=?J?(ki*HsYX<&=9biDMTQWH(o@8G9KKjCO$;U|8kkBd8 z!Q8$O7cQf-<6?Kf6G_8ObNeu!(9N6pW@q7LMMQxGyj&W}0|7X!*Z8~gqHfqQ|2p>u z#)MYd*97h{J?pTR)W)vS)hG#fXAJn_VlSYYx@vMPMjVeLBUj;c1iFLJ>F>!qWW+E!Dc^Ua{E$V~%r%Fp={!??}Xu$iRMV?g*+mKs_%s z7Hj&&;fhX;&a9S;O4c_enZkPhR?tFwn+vFHEbXCFA;=06@+HMclQu8`5c_lTpl}W}>p;*z3Fl==0W5*Ob1$$$JOTIFXug@w^ zBV>}i6$IdtHJzn0yRnCTP-sY)@OUhS!s^9l6O>+rO}P?2&%B9vHs8!pL18p<-y557TtIi^B-NdAxqXJb}$;jj8!p;@yZ(vSv>A zbajP?78w>tye}LIWIp`U>XC)qi3FNs$e35C7$~`6%(v+>afaaJFhrNl*HTs({LR5I zn0Jz3sQ_AsJE}C)rX3(ujsOUusoG1^vHsqfw`9g+vY>(r<)B7Fo1VOmS|5d0K9UKW zuLd=WST>eojQHwbKXAYze-z-9Nlm*tCF_JdDlDu zi+!}P^TN3#X}n3g;a9^(EM{ZV{^0iNoSrP79tF;py<>DN%8f=1y%N6&_prlNyQC%N z(-%T<=ERph6u)Qdc~*c}M&*sYU9>XoOj*zMJnwig#}rdc1ej?EP*!y!&x+Ur5jJR9 zX2m6X+RF(LK|A7vA7s!3emNNCN{rl7X~G|0=~`zC9YAn0b@Di zl)SqwprUiea6@gjDeOm)b^xbqeP6WPi$UR+e8JBJCSU2-iF>VN{!X<}D{iO~gi7%WBn&<#fPFEF`CV zOi+Y&g>8$)MVG@j8UjNSHz=B<%2x*PiIejrZ5Trs+u`%BXzkD63t|WCD5Z+k2h4DJ zEXiAM^HzbTVa`8%Fz_n4Q20b&i#&UXerTYnPtH9(*y-FJ_q zHpP=z*9zFuy!v|aa*vFf(0>$kggR|`7HqFPqy$pOt{!New5k1A;iaqFZCehjM!oLE9-^TQ##i zAZ688^%h%{VMxu(HXt&2o@yANui4%JG$j>w;>`z~LvJ>EKARLLj3MqJrmI02P&d98 z1JE_;rxs0Uk>-QNt$!bgplk%!{Gw2#{tykPA@<)oQxX2ag_M@+h(MIqiRPP;$fKY@ z`p2vP3~4DXDi+@7THlgHtGs#z`b8wG;!`N=Wvv_Iy-Qyzq?h&+B&?jeJ7P5Z0xrl@ z=1Ws*M@VL-j`QU$!K)>t#-sQ5W@v%&IiRoxW3UuR8d~(ju^+@-v&KpzX<(ZjTU`Uw z%?#DLR$DxnAOKA|3S8;Ol!e@Ep@4S7;t$=dU9!C5e>HOXj9{e)2V}*(PengD`NwDZ z){v+NjGw3%b;yrgudI=u)ud;<5HG}%RcAHyKiuDcjxGh3q9hcVXCrq(pwhQGGFUl+ zk{^``B|7^Bn#q3umLX_-*-PTLL6kMMVfW{UB*dQL`0ZW&+XOSm+{QjN)II>PNouPm zsUMt`(`eIsLyP@h5q<6wHp_P?Y~{Nh3hTS`QnBF9@>@gSP%BpQyn?-hcVNfSgt}N$ zOWd2!;Xp=Aq&is7#YXZ|vOp2t?w*7SU4Q;&biIQ}Ke`bOy*%`}EJW|ejre-T-%N_} z@A}IVy^Y^=FJ$U|9Kelbbgi6`@Lm&7(!7jC0l-;Qd)zzoUqZRvna^VK*W0fGi@@qG z5B)ON@gh6!1G`&h(Ox-5gMI!4UK?%Qq4s|Aop1woU z9I0Nfi8%fF3Nb-+mdQc#TI`_DGix&tW=s)0MP!&S4jVKtx^faJ!#!drG5|%sK+$w* zh$qH?$2p}*vog{sp?uu}myy5p1c8tg?D>`++N4mXoGTQh z8@Ek$Ze0lHPp*O4QW%}&MTLp3(Skl!CKWrL92C<*6bOGKTjOoM9gEA~E9jT(cRo$B zBz~8cWf^yHmjgD9FXf-Z?nRJOdEly~2BCd^l<&rG4HFPPB|5iiem@Ib?U!Tbg+JEM zflkGYK{XB6LnR7GN15Hi*UWmlfeBEKNqs`A-b}_QW`uSDyqQM>(e}JxoD@KfhVy6y#%I?6FIbXL&0(iQ8&$Cmk%ec{ z!+AvWPs1cUIMH&;Ok-zbD_c~~W!eSOx1fhRzyuzw=4xjWijTn!yhKdwt3Os zTQe-(&4u)Kgo9b{v$eaEROFP|r4tzp(6J9D!!+g<@tITEm*RLCX2_MGt~XqvyRgI; z)I%j`M^7kN`-ipubE3`6up46#csS|}U0KYHcaKPJxKxb2lFa>nT6fm2U$l1%+dqZi;~*94}zlZ3e~feY&zs&}i!qIwQ% zG0)8#wg+9f&=`E($2i1l*^wQ~(#w@aldBqna9la$Abce0qsCziLR2#0p>g(Ax#f~ACvQUBp&dxz0JINf|aRi&Ug*fL526Z;g4M_JYy^jQ*$n52g$=jhsbt)7ec}QQmZWtP~)p4UPwEW zZ;9p1J*oc6*vZ8qP&wT~zzaLV#%a^(Re-nOuXUNxBs7`48Rz$VorZVav)~7Wm5cF6 ztDHl9=_2>BDDD--Q4ZJXyBi2jGjXdij#Llnvb2JLGg+%NR7^o`=(D+Jof1rux=rtc zfpt`gH9VZF3@Hw??&xrrWRKc0mve1SU2_@np~1Y^`p}EBM#}NdgD)re+4w)SzH0!> zOWX<+D=LeYVu>bO&L6L|0@u`c7XhyO1ypSrG2R8d+l&W?LJC?&YAm$t=xLd)F5+EX z#Rlar3QZ!a_BMJM~26YPI-lDP<7-L7WbDU3o10Ue?o)vJ<-b6tG`= z5j^aWT%@d$bdvJ)=wb+DH~7h+c5><4t?B4>WZ2|`9d(j(DSpbA7QIN4GxG9^xw9iy zdo{Cq^@-*J{t>slM(&DZZhgR6qBFFNue=^5vO?eKyiA#lOsLoS&v?B|mjp$qgzvT9 z0*vE9yngaCp+2L7mnqIurY03ChRYESJC~Sq(D{pN@Rcn?^_w8a64b;vbaZ679h$l#~AHUSJIq_>n-G?@Jq`Y@UyZX(UF3ObH zdHnCD?)W^0e$(%q-ZVfq#mbg^$_wp)6OKKAoV>TG>3_)lrlC9@iC3<`_H;YBaplnb z^zuDkP)x$k28P4L>V?fx(2F0;ZAk!wMLI4049w{5U+z)8;(ReC>%Y!U9h$o8q!Nx_ zngGj~xYU=k6{uwQX128ctjt2;dHei(N;Rq!XJCW4y@H15H?&(9> zlS)wneJ{E*0O*Tp`svprkXD~#$#e!&J`K38k;O}^6WKIpF*I4oQ#vwqX47+B6V35{ zfIq9hm5l~N5O!(W%O!tZjO+-q7DIQ1cI3aL{w7t*wT&q&@v8fb2k20#V7;fkJeTpqNH_RduhGJNB9;&PlDptLk^WD=P<_=ixhx1UVi2>Z&N8Uz33f(q&m$h%h%lgY-ho^q0p zAF^MHUV~knzF;~4D}ev3;B=|0GO^gfFfBG4d4g}{|0Z{r5+ZMWe!+)Oa7J-|GiWz? z%91=8veY=_^Sb4*NUQz@NsuxLj7dmbt!(N1q0!Fy2iFSSAUwg!hz7UVDSJqpa%PX% z+MD!aaV8lxfWO@@*-JCCNB_~Ww*H(a90)HtJ^sB*!F-Y5<{4b9!VIHUfPbZ9RV+KM z#aBcQ3~#xn)YdhX2&;>&rsTk49Mc9p6(6 z`u_n1oX>Hn^`i@~9(*uXSOasJr7s7Wgnk@~n64VFQo?%`lsx(~C-H`Bwa8V1Xdb`2 zb_wFJ$}_nZkm@V9I+!*KqZcb449rsE`&g;24Tlv7zgp*1inR3$zT{!+q8WTqsXsC& zh-f9P>B@t@JhN($&u^bzbuK<#*?4_F6d~!?R|xNydZ71^_nDzzC=c~YH;FEkJ(?Ah z1Fr4=?`PZAWzu@tnmpj=l6?AVD0$%lqKosKhYwDh^f2J`pK`1)cU4tlZOb$oND$W_ zPH9&eEFy$0kXmV``BKJDykfS!JnDnlawcILo3!Tu7aXkM+YNc!Md`d# z-Z^vuxvf026UexjLG&WlMobO~uu>J3;K3zU65M%qb79TcotX4=6fywg#qp;16=_z} z8f^?oTqDz^7SfPfIlEr5+g+^zX>7T|?vNrruv6sX;dRmqp5t`-Y7oRBz1xac!)Eu- zUMZu7DkU~N9n^)uS8I%jJzW~C{B4%6Fqe`OxZl|!pHXcdl!9ug-2VSkukll7A%m~i z4=n3|ck^awH}csXC{vw@gH?+uX=Z#`d8-3?t+TpDv*gDqnc|sncni@z{g&8NuY zZD*HeDAv{YJGdn9XH(%$6yM!SSj0KP(v1Vc`>7BVPnEigH|NgB*FfD1?wQNGC?mvGoJY$_)+-dY35aj!w zYh)qeCAqO_c1X)t!;9(41LAcNrDUV0Gp96=X8BCsb%X>Y4x45$O5gYvP#z8wbD`O7 zHiEgMqaysbCIKq^%QKJe`KK;N^2wKbFsVvc#`5PoH)(oD?vvkfz;0Q&7Y0#G;oTCotbOUfi~_#fk0*`g^m zKX8S+2036vIW9>MINoC~c?hDy52gaBy1d%#R>A@Yq?0YK#LWXuny;x%0vdLLn2M-g z?uc7w8A}~VGz=%N8?8BXt@dg~SXRehsi93hMj5P;wJ{fa%<}xFrfujENi-K;tg_^r z8M>x?smgN%wzdPnlA(7(#Pp2W;Jq6{F z?)A2xQteGo4QI~vL*_fv-y)2L8A;K}w$6-izB-fqm0_BHxN9^fR8;d|F*RBgu@3!} z+GI2PZ^U3&5qIT-IU!g%;@EksU45!gLojYUbAOiyGuw8*>$Bc^#Z`i_*^K$nFB#h7 zT)y+Ad50qWxWqx4w;87*D$T@Geuq8J<*;@Q+Qy@UG@U*`CTx~kGmFY8h_f_Ka=RbL zdo?9T?ajHY1L;+L_b}3aO{nBGuZDO}^Mmf!90eq^l3Y({sFZA*UfCqz&k<+Bd0)p% zg#;!XCnLf1o=r;OJY@Ku`866p%Vqm*Jun~MJoiydADDM%*6BS8#dl!o;02b|)Wa$5 z*?awB{TNv|37H!uFwdbCVFYZT$;aOiKuV7LH0%LyHr!T(EAO1xs*d``8-m9+U*n<$ zB6*Z7e{2B_V}3Hx2mgXD9F9rEbf7xkMVpmafX*4xBCqI)6Z!kFTG_nNrgnxxQn}Ts zxfVfg_O3%KhbIZ4f*jrI!X-5BY@r6ryNYWZv@>Cizi! z%K{H|`?(Z#hP7xMCVo1AvWO_ONTMrln7G^<#kZ1tTNG;|f!X-)wKME(Dt9JA>s6vP zx5FmG;&B@Z!;S6gslSk1fiInXGzqY><*vv6jrinbG+IQbqjIeC^+AcVv;+k3 z4fcI^){tlzPz@;SGEtDwYw&`Euem0eAXg`N=vOr*_>_D*TWl-VXHviiFk}vJW}D)7;HEo40%H9{Yui*ezHwLoTtatJl@m!YeXX=IWOp_jCQbVyY z7M zjyK&8_1>6rzL%;BI1Ts{s(R}~+bhWQJf;y77OvD=4L~+^)7FnE4&A!5n4=F>reUvu z34nvAI0qIgJDnP+{L5h2ocg*zU4z`q&Q*D?+<8lCDETV19P2mSUG=&T&mhr$W>jNP zRC!1zl7M(L%f%e@ADG3aP}ODqIDcT{XEj`3n!hzPIhmf4_7gr7!*+V4aH(PR$u}lJ zM*4P|4>2QoCnHujkZ2k;<>?&b)7WbQxM5BQ$OJ*}OL}{$nRhFtW>{VqFfum@;}bM9 z0e@nYp~x^19CVUB@J&{ktz0!CwdoWJkv0mdm1;&e9SaLuGr-bGG?W0~VETN6v9HU8 z*SLA&P+Q@>Gu1MVA@^Xyne_vPLQAZAb*-CN0M1j|EgcJ)Jo0#h%P>HQ(E<2|hpv~EE-sYSIWZSn7o%VR6_3g(r#pyy77KMRKR*DM=O?f=nrZdsP2IuM=E zU0%lcSyQR`&*N4~#13I+e`I!b9v=fjNTCpjVf#Kfa-2d$cOk9Tr7&D+H14Pr@k;JoNVVUPMvT_y~;)|EAUcafbC{pE$Kk^ zr7H$==P+8m4Nk%+jy42Foi4bX-EQ3NG?}Q3=0mYoY1dm@eJTV`IB8L{HFS;h_BNcm zpUU(p&rcu&GH-XUrvxMs1I{lqU&2td$#iye7pq7oo;uujGY$kPFmH->kV z@Y4u3Br3G7e1~sAPDr8!!q`X;?I6stiG3*=>od$AaCOwX2lw%W2#$+ALcIn*pRfZ5 zfVp~V^NNjY{N_uSF<+UMt1HQGhc#!~rBuE%z10QAN%!s^0(E60&hp=>ylv^PB3Trn zJe+$N+&1WwnGH83r{$yHocYX!ixagoU!^^pr8SM_n0$_Yn!cNElkaXd_(lojs?*-q zHmXu%G1In2kFWB%2MuOAi^O0dH)Gc#}x9qw;44kUcLOIL*XM~?;SQ=j}bHBYIr{vD>Q zf{2fCZ9o`pW>{L{@eXUW8BJF`$>(e(Qhb=C+Aik&Qv9z^s#A7=O8CjK&sEbKR@mF6 z1X!R+H+a$+K+1{ybU0M%hnoK_pNTe1FPc7$slem)UmkHhJ^4dq7vBqO3!iTyE*73_ zDzMGxBT>u%J4SOie{4hq8a7F(v3vPZ+cLem-v^Uh_G9T)c3X7<%UKhPzd0+#QrgM~ z@k(+UHDq=o>;Va}HMC9-9`Co@%b=1?M|3w{9}T~8@|mykk;)m~#=4Gv6Gu8_uYrbQ z9pjAP`D)1J9K54MjtPrDj+dB3IeK{&p=qv6Z%0aIzBY&xnCUByPCt70fuGYP6V)v8 zWZ9ofuWO|&PMxDyayfYT`e_I+JL)N&^b?ZhFCc zs*xQzKx_*8Si4x7O<&2UV(}edlnD?!PK9n^4RpPxR7j{o!vp5-@Ph_NX&rhByFiUTNHV=m%8(`t`a*O=sMq!9?=2ZXqFr7Z`oRbqrpoZ7 zh`o><)|tqT5uciU=S0OFR@Hu`9#bwUH z>ZK*KB3wY?xbth3-uTp^%zLV2KH>Cq(W1-d$_KbUiy%L<#fJ@n!o*E!)oG4ggf+o_ z=*dlwKWZ!Ft-KLnYg%)J^m+V>FHI#pb$+7XBRl<0has~=Sm%?R%6w;xw|?_tnnPK) z`VQUz(FFUkX3iXlf@NW2E_LqSGx9O5+Fobr;Y5?nXvNP7+lmo-xBRc&;L*2_0)T zLJ3#3teC%?D0 zZaT~%;)dU;y3psLSo``fJd_@68sBtkJ3}<+%~CVDio9$u+cjY&(<*aedV!$HyA0rF zv2@ge$h|zWPf$BG&wU%GJg$RL?k$YTC<)=WD)f^Bw6mLXYO#8Kxu6GF`h_##{O|VGWOAijHKdyK@1t zPvOQTv3fOJ$A|U6US7?8*M~_7`Njj^|4R=N@mJ)gxr0d<`wPo(!Y##gy|S4KJIy2| zgs|nJYvOiN2|WNcK+3k>r z0N9v#k~bOVc}2D&lQk`+1m>m{Z|_}=xU*@)^2Z0#OR1DpA%vCH4<8ACx@i#4WII8J z!4RQleOxv7rZCd&Ax@19l$Jx^`R)CYNvnf06Iqj{I*5UtwP$@wVGeyc-b}t{c<=DE zVfL`MfbDYru@-d+GtblF>xgdqXEbXji3 zHT&V|JMWSFu`z8HFFUcr9)SAt%i&!%snRCwCFx~R?@iyC()U=T@tw512B`6QbYLbv zPFx8K;$(e$S61`MS@wE~Kq$qPFTixKeF`B)1cIS)EOB9&Ek>`B{6ct`n7dWoaBa-X zVaTnf74qd4Tyy7eFEzooSt|&beE_}dHC-`ObAv-JcFNcyHE%cLiUaraZv7#E#3+7C^Al9l{-dReh1jLKjl#u4AnHnb8w`2U{1dC z91tx`##tAPv7*+R5$ahV0(^&QJ$Z;tC6mG5`CRT=P7;7NZB#(N7q&bXARn+GG_b;+ zvOlLA*)&MAo%j&D+`*!d0EgZU@a$NsyK`3x( zakNsGJ8|j(jpS1#G|FFrJS_a`VsrWcQQe-Ad9|BK;&+E#I@MBq3$L5!8se*$XK?Xi zFINi~QA2{^v=c>H({b?LR@yxsF3ahQ-%JlZtfg!%)>&GaSabwhwf7wIqmRw>`PuSs<+RW>3BiMSIGv7R}(jl3U(_TJkol6j63B z_vFd~m6H^*_92=>Gbf|&&>AI5t^;F~7ZZLKS0ID1(Xp&z445Q!Y6Cm_mfBHqoj?t_ zz^Y6+dV_AAYr$~NuUKh|uHi7U4 zBH0EW0te+wl5GZSC%P(q-Ef*Q$pJ7Qvz>a}OAS`$=hZ)IcC3H?9+g_%3EZ%UJ4{`k zf!#H&uF=GBGaG=RzY&>SydUV0>oTTzW5@@%&&yI6e;Ld=-Ob%Ea4>o-FLuUU_)A=z zkRpn1;S05rK@_gN(=n`FGqA%~`?`j;uJhUN4%z@i1^kU3WtSqO6gWi$`j>0U3wA?W zkiV>0-oXYTu#{j8;QL5m-bVirR|ABx9)ZGh^ZuiE2?ycMOycz6F^`|x@#3f(Cdhgp z3nSz4d9J*jl=zECAf~vhFPZ0M;bF@%9TL644Ovw?e=j^%Wg*}MuR@HGAMsWhz&dMT zM3OKj4O6ld?|B1BIaXhzFc+0)%684Ti=uQz;y8*7cHL!sF}Cu?e)(FDllk$lc?YcF z2ziZNLd$D z$AN3(f&$zc4VHTNx8q^Ke2G`UBJ&LK{Yv$X?Zr?6J|GN1-{`9^icM*N+n5Jgn{?Cp zB|`VmQPV%lZ;mbi?Wa)rcHD>)1q&smaa&Fjvj1d7xS=J?Hd(~vfFCDPBsq8nS+4n{ zF9AIh8$MF<`1(y5_3c`Z9YIH{64%SC}x^5v7DOAl-Jd~EfxP@!q%T1#r+XRnqg zi0D&=l#t&^B&J~GJt~>vAaFwqyI>}J0z%DxE`gQVpcB{fGPn;xaw#=F=R0yGZ|b6h zw46oR@m~)*9R|lzzYFfihj1!ucA1pE2#wB4#9(g^Y+wwd)c@XUCnhh`JsK&{$)8LG zSL+R~%7-3!7osEmVJ>{N0jh__5e?1pIE>E*6*DrC81{sf*qy}}VJFd(XG7II* zQ618qv$WT&S6RFaCaKztohT)XRIM6Q+RIiYP_33z2IUW9V34EU+&8TfUxIGjKN*y1 zJd$!~)%nk6Rhv53#BEHX$04W7x+bbR!VJ5m7~{>fcspBb^Me<- z16-q_cn3~=$41T>VmvEmH~CQpP&Ip;V8)Z35-7XQPZJCTVZLp^l-F4eHyTkdBMeQ_ zQ(D44MSBovxtcx&hmpul%&X;rUO_Ub$St}=SzUoBdn)IH6bdk~tn8@>B<}IBYH!S^7UZFMY~JFON9^$IUD*UAno2MaA6rRDq^G%ZZMxVo);kG!z64D9?0^ZS}O@c3&AkvYC)Pw*sG-~B3 z*B@-&bVG~InZ4a+|4#G1+5%E zdxjm;t3lTr-ZizPVnqTw$JHyE2U?Jn4ugv%X``2qX3|s$LGk7Yi8Z^~g;&SH>1wcJ z^z^|VcZ0b`I074u$ICF#m-6NYf+-;p#Db$pwAxwHvQLBooeshdEIaq7I=DRzigspJ zLXYf4xg0KEr#Mzo?#XiSMK043JwnaG9Kn%S@Vn}di2)r=OqI)RwaRS-niz6YN>rZf zIC(Vr%~f-_lge?C*&0QUmu9OssZg-Nhao^UEjGRIa2rX-1_PFC<^-g?`%-4c z_ph8xZ*!Sg19^!lL#vg?pi*tJHBCNB7rysqa2G*@Yi8kp^0fzltl%SSAw6!qO4#vc zGTVR{NSmo+cs{~Yz;UV1e@=aqe%+FWi$sL-PPU_aM9W(4^VGUQw$G4$XxPtg{_-Jw z+&(jY???-tx)!P2>q~6$*Vki&VqO9Ihj;JQ##pFnVR#xF_SBwdk_%%th+3W{6;n2X zN4nLgeq92X{ftSQ+T@NuJDKVo`iXdq-41o9oZMx;H!sl*y1)fEkpS^vF7l^*SDJ*W zJEu-m%+!dhIx2fqFByH>dHD&JNw5Ibq^UXx2T;LLLsZH(_=1KOj;`F;t8ifz57v`nqYQESC$&F zxk7hUpMZ;yNsO^;orgVJ^+qSOn{>fI4BUn@J1d-$3H#a0AH!mePf00tJU+f`9L!B< zVu{PsmL>*n`lBKM9~v!D@cBNXG|`V7~8({*ylTyd?8aL9I#q(hRV) zB=!3Ij?5BPPwh;QY`Wbtq_In!XX*Ap%6 zpFCE{Zs5HL=6xqh!X(U#vU6;Rx0z#ZQp1QiWO{weTHQxfbsPy?M%Nn5YyWBZ^ik%N znIZ(;O0(sD8i3%`;6~@;E5CP3q0|3#OTZ>kRUH_{Y4h*jyhHfqb17lWMbsDVL80rfr=j^DstG97jv6 zox_X)c-|lNFP8^I6BPvvrc7$in?B zJS_vCzQW#1#qb|;(vRNx0KHr>?!;a0B%V;Pu5r5xi!#|;X-%b}ulBtUG&(_~VG=x-O+?JH)t9$wgG22$8r(^i`DP}=GUv2!(^KATC>x-G zCTxw^8ylge>5Y0DV?M~__=rnML#e0vtTFM(5mpAk1L6iqpFO}alFys+AK}8{7ev`j zp0wj^rtgH-I4j*W6f z??IgZIR+ zWa_H(Hf+6%9aI1Sv#oOZ<4$K-HkM??j?G78rdiSK;*^i&m${R8s2K|Aopz{sYDoE# z71w)8{la%EU`my;zXrFiB{dgiSWMRWhSkES{?F()cGH}=qzOB!(H+v^U=4h@z0q!7 zfmK(m{>@MckZNOT**cO}WIVNzwNX17LISU<+d+ITeZ&0nd>K?j1*$?o=#$xdmA5%f;oY9SLnZ|NOmSA!~~=#7uoP^Wc()Sl?$F zz2gf*8=`UL%Ti~tOquMXle;WSVtXmRzDw8he1H7ur1=J25A&hPIvkQc>oU7HQ{Fzu zu)(Le&Yi0au_-G5r}6H~zDx<~)jccsa2&R8;s$)vch!%}-!GI$VDC`dw=u5nGn3_H zhd=7k^uBIF{*f4@el@rs{2;qhhVq1FU86#;FGFfI%A2hF?x5=VEPQj24XO=;Y%1o~ zwAU}6JR5xsHOTqPx55cdU0Q_VMv^`Hh5If7O{Gs$;~`MR^gu);kR;M9Q4q6OZ0N4> zoih0!7q@{|Hk7jzy=QsV?;NPdPAvAZQ(3(~Fb26VNr$4dZ0)YL_A38>*a9upJ(TgE zgbe}@?=f~VtOfpuQr&<4HkcZhSgBAproAx5PynSH4g#?E=c^ysv}tpz;2ID;T8=P_ zG<=2_MA`}JR;Jqs9MhKT{??~EF2L%f?y<(ZoUB1j4Q9^Tax2*e z%O8sKOga;-RvJ(#^h4wH63}ZwGzXN9eTKhHe(T+>l7c+SD{orApoI0cLwz2U;IR}> zAm>f;>NMzVV%ntpO=oi(|My8g;L^2L>QdvoP>_ z`vE1!v2J|{rv}hr--x=pIpAcL-r-7MP*T1CAx&TiK8=KN$-_)dz7Y=Z@$;_jI62@X zxUgd-j$1XG@fW;2%fq3%L*9+lo?ryiS2752il=1N-9COTI%rwV78m&l05;=8!|Kqe2VHOIk65xsZX=EBrI~p!aZ{%b{i>Du<|}8L-jla>nZ8s^8zRW8 zzJM!G-Xv+eUaj~JmZ^5oMz=8U5jo_b;HNicMtL$!O=#B5+w&An2o8+(S#GPo(&dvT zewoPrjey3!5XPfXC`V`|UL}odsMn?vm85&d_om!u^qZ+na${LbO2-F0^VDG|WsPPA zBUx=Vu;}3}F8Xw#t!L@S@SYk3|OHm(&atw?aQ5G1{7L2H-a zdUw7)Zv<^Z1HJ_E)+C==9~H<>iawocfB#&dhu@yC2M>7wGNv~y#rcL#?V~8*Cm*1% zkMajt!PAisNnn?VIiy<7{cc8@8aDb;EsqU)KHRN<@$sAW7LW!>5n#p&cS%E{$p;gD=7}{@E-JzLge*AdnYDo@%cCwN` z%`rae;~y zAZTxuzMCjpdfqg$d6UPA_SBy)?c$O3^OrI%&Hq*5*8Aa1I@S>!`m6bu8cxzKleZRyy7Fv9 zDS^O3lmxm&t%E6{u_7P}V?TDmxft&C_NitH|NG|k(18dC2p4`M0oq&TyJ$H|>7Y zNRSTHk3+*$YPm{+@#e;psG61rA;v{c&J|a*24cyBz9}cIP?_=;&T@3U_C^w=MDr1R2JT>8bEm4O)XMV5q2Q!~_QmhFAmU=AS`O|2x(kfOnl&t-;WO{-rJ=J1o{X*vZK@aR8TG>b*a>mp(+p?yxBe$kW zStk3T^?8GY1Wj@~_NCdnpkxVLLqb-BQJ%KxYf>-xrUWdW>D?Lc@e@S#RdjM0-ZN_t zo$9;uN25P1_PZz<%#?!W;L0DUHLh_Y;hCquP-OG`9vbQnYr`2T@@-2|+f}XQ;Y3nP zc$Tq=urc{Wu-l{prBJ=*EWED_#W9p@`}6lk9Mwm=1m8(mEp|5KX+Ceq6c3iWjEWT! zD&y_YWJar-jvt4bD7K5(+=Li;i2?JD;FSJmx5~f~fb}Wyc@>E59jvzl3$QeS z@_jbsL7M=#heV0{ESW#ymuDzgR{>l)Cc6TNS86sf@(Ns*NSQ5M?m*MDUx8Bx;MZZD zrQzn|zqDQ7asa~zdIqCRfr?z*t*?xusx>))J0@Y8oV09-EMMgnUcHHF3f-6glnb+e z$vXB^F5VgXdXCk3Nb-L&cL%x6+(An!t!p4v#a$?-A`{5!Og3T>-;q??mRH9X8^g+H zWKlq2(@?0N8(;x;Etw{nAdI_-PuI0PaIkMahzm(+p}Ab@V&{NY8g(?_H{@^KVkI|V zNThjZArlB((K)qh%Y$uBZbQww)ba;rfI#i zyfxx90`B?+1BSF*c>HBv`_|Gh4VW;3q*YR#2;9k+4yHb|q)UYAjNWr#WqdT&S4bXc zNL3tj3e4n1SE8vzQwohV$e0$ZZm-_5=?eq@`7Bj=Aoo+0CGsguyOHAX4Ki%=lcZpa zy=$kT<6D*RW>}ga7%ew_fKrx~%ZpM0&~oJvsJlDgbQ)@G5+9glB;eLM>aLdkQVe7pGd&9Q**#0gkYl)B(6;%r zhWQe7ucmkBjTgN+D-M%FWF)`ykXah@(@7&e`WxYNcT3555cQA$`b4^^Upep4*Y{S5 zQj3LU@z70HgYo8IwCJGs-Jo>i)0H^*Q9~{UvFZC8lRw#<4Q&wq$jUA62_6SR1F78n z+BBIpRLM(nh&Q=)a?%yz`F&&;pXZ+uJ0*5XOTe4KjwPt>l7G1o%TPXs@3kAVcj&dg zn|GgBlU%;mfvONm!vRwuWDL=pEkdiik0)wi)vJ2JuEhXOF2Ut6U4zoqF@1H#U>7j7 z4ibRvF}Jugn>NLggZg4E$q=TkhvF#b7@9_?;L#h{ec^&#k$&hoZew@kqu1)c7R+Ug zv3RurFo9X6$c~h|D*E}OYJFYTk;q;Obc$&eI>UAn0^91T7YaNB>X>P)))A<)l<=Qo zQ2NwhbF)=P0OY>UH@e?T2YdrvsL)*=ooydMzmEz%ez@V_B^Otr1TDEXYVHU&4yWt~ z*}^354OcfH?CAJuh^gP`gZh!AO2lJ?Yn%S=v=^H0a$@Dyg#$DVmva)h>>`_ZEdft% zOu^jy(xs`Y2`gY9D%P?%Tb9<9st{uc2E-i1;;d9g8XMq(?S;aecu(~3RvQ_OOvsTe;>i69Zuj`{cI|G!IzR%yk^_?55Kb?AL|ehl~bNLv!`Ra_oFVe7Nj z5-@$QD}9{8j)gP%I$q&!?V7+hkU8s+l82O`e1}Nm)*74U(ic`5>gNg|6F~surtC+n zKiANx%|`32Zx5ag$7x)>6x)%4D`y(sL+&0+sAIKUli&6;KI7><+kt%@x;*+@We7+1 zI9~C%SC^Wd>eSlflIih1Faj3pXmcWHl@G!NDUqbE)-R6z`yN{jh3*@+fb=K@{4G|>$wL2u_J=8 zYQz=zi!_=*H=lE#PP2k9nOm2fnU~bJ#{<_ml~OiS11SlBsq&Kq4@~4(3Ga0*O*q}i zw12mmiL6UTUUK&{2X`)rtDz+@cW=$yJPQtzP&K*UdQmg~>1_ z4kW9@%4%G=g$It;(AYsZQG>j?ZP2^J>{m3>PTLu7dRw2=N{Hf^pE=g@ch-7>@mRaW zAYolL{VJEja+LZc+;#fP@O92IZIy+@TsW}o%or(ZR+!Lh3?=#vG@&YzR`7*zAXOcF zO>OT4W-_0f(2M-v4<|2Kp1Vj*Wzguh&rEeGN;f~EAi$h&+Q6cK7fT!$4y{iOLhsYhp+=LyP zaK#(b%5I%%>Uj?$rVF}`=!c6+Vy)O@GD`CxGGgxxQK->R#dkOoRCU@#5vw34Db;c_9SLJusDpRM8=mQs4owEC zW(L>yi16sH7J4f9t-A?MQgHA%dY&7dTuPx=XmWvqn2%KrzPqwYSEkbzlhSuabN?1w znXoQY$23|S0sF%~l_kx90$6 zc%@@DChA0+WtuLLR?nZmr7Rf4mthw{Fo#Z9VWXB*yc3vvkdE3lpFT-CvI&!ye$=ot z82DP*6SKzUYI@6ix{W@yH`Fk#oEy<5zk!rnnNzSAVC)rxodnleB zoAcqH#}P=lgkLeW{mFcZ7&3%ZGUNG%O9z0B`g4=`-~~U`5#F<9^gQh*R)C7ES?lqG z!PhI9&fkDt3e1gAQEP%RBSAG~#ca20?_w5WN^1@{xwBY7?k@+3~$Gu}2zoo6$x1ude=yzetLJPQI!kYEiPm24RfdA6>Hv zlJV}uF{_3^ixqq;D@8NoO+KqW+y?Y&eUt;_`?n^^o%QVvS^(u7kRj{=#_rSC8#)_4 zHFLpHap>T3oB4@J&A>Zj#=>&6Bs5QYQ}}x1Q4Q+VD(+ihxTUSebAvyACzNQyhmY; z6fju@GInERp;qTV4ED}UI~u|`y!q&Cbme!fmv>4uEN|?B_ZAB0LT5^woAhE7@2Dit z_n#VyFIunmqC01BI5p~fWYq7+^v=ly5K8!HWOFSsjmj6wdJo`k2wS8 z)fWK03@Dpn%6M)Ud9o&(f4Qhr!5mBPKf7DZg7oV*;m5m8-PO*0)F zM^Yf^>xO&p0~c6BINVhGndWQ(f3J+gwuUI4q~edJUl>u8C{5lIaiD zz-9QR0M!TZh|ZGVT#7+pi(NVOQmNMwP(|PH-)iL0TgvvHop1z8G-aqggJX8Q9XWSx zLMwYsBQe`K`*Wo>#kSjkWx#+k6*hJAze?BgbK)%N8$)A@RjAmLuxmn%#6%=Erz`hB zDhY5y2hy|1uGc470I3??;rZwoQ-^T_Wj%{`zm#2WhZKRB&fGmxedv+TdB4GKXrHU% z`_yQ)zqwb|69{8e-y}nt7CpnZ=a&{ok4Aq%uoHgD&xpwyY*!@!9bv@O;BBU*xoeT+ zRuoeM5;8I+WmxKDaPfw?wa59T#S8Fdw6=8wi8bp2@BnsqG|l*=WS5!#a#n2D2h_mS z%jB%Q@Hh06({Ehhh(Q_oV^;3)wCN}(=I*5ZRqdO?#BN16Ms+x1Ln00Kn^-LeDT~(x z!zE&h88BP@%jHjy;*S#nZ+A0FtA)+N+fTdNc-7(5Fv@^hb@jTLjGIDw*7|#IKc-R& z10P&Y8=PWACeW*va!;$2tmQ_VQbH4~iP3?L5i8v_$2_7xcr#VE4sbveFpyUtY^Z?D z7ghjXAxo;gMGS_i$0l;K={pvO)9PjnOZFcNYrSyoh25m=c=QHoae%~Sh){s_t7DaL z0s3qN(0MbmJ&wEg#`W?A3qj}^F%b-t`hD~;{oZi| zAT`ntI1p59`)9|{tm*!m9D2+Wwli;~#J5|9OkkE_S<@jO1 zr%aiZf2S`O&6k?(I5l)V*44PFF5X#Jo)6}fyTt%hC4d5)dJ{%n7-`<2NpeBHeP{@x zykvA$6V3t~x3b79Nd^RI2eD9YVWhtzAEu?~*c2GS!(PcWSSQ3 zX;_9jLl=%7B~EhezKkUe8hMkQ8(GjKx;81o1PIMCs-el9swsW%M7XvV1IuswKd1O% z5QRQSMSpIc%PMBxmEgN8C%@ICG$B&BO%}rYd88>Z1LAz4qIrIBJ5$(94w-G7&^gQ^ z2C5Z){?(uO0(q@cANd=RVNLh?&MqCOyB&t?2qF9NYI^rjE;W?9+N-9ZRU=y(Zmwc(bbYk75Qh~^DKrGVpH+c+1szB{v&Egu&U zWxrod*Pu$XpzjZ&bUX7%>w8t^EQAsP>c)?3@Cbck9Q!ZNKuCox`?#)UE_ftcTKj4; zWdplzkUup(KmCwtBdt&QQp|311tPsbR2`E*7|(7PjJ3KFATw<3NgO&|IIG1v8jL(b zsQ_J`a`;?s4tY=K2uq@wYJ0kRnekZavzvXiPCxGFdW&s}V8?KGuzYSdtn7)LMrhKd z3!i4<$W)pX!^xcyQETxP=vfzc;L(v5SlyUbM786aqt@N(=OA7U=FVa) zF*%L0ed9gO&)vS1kl73;KR255(l$)H5aHWax~A}S#8YiFavZ|t_m>b&Q(c$t`zK8; zA!|5jOGj;*my9(YLW6Rw!oj?W-{TcA*02)Q+Gvf0HWC2_hs2SDap60f0ByRXZDS`1 z8y+f^yH2km8qY8^{>8hbK(P?q!dCPQxo$4)Dp%fOTYqjwD2@vr zTp$4VwC*$4utBuEH3qvbuw`QEF-wm7qRJ1rT;s8oHJTe-65J zXjU*+=lq!lUCMcSP`>6)R@7l>=w0`tnitoa(z?FELWml9Pk65RdZH;|2E`W)iZ8a` z?2M(;*v+myOz2npXR|5{aD_r?Y*r=hn#r4q>&y_YFROmJFT^O$E5Q|w1Fx&*y0a{- zimQf}EKr4?aFT=5OjH!=BZ127;CvH`=ko%o4W>d*?S)Vku+KdPOHo_)bizT!AYy7B zUhv@&E#F%!lE4*uCMzS-v1;vLy|ONWjQfGv>fp91jqmT!aU7kqryIKpBs-riJ+M7; za&qIjszB#s%%NV}pT7@$);m;@IdUcYT$Bn*HPs{zrN>z(2inbrtJ+*RN1yR|=yI09 z&5ZzW>xbjY4QQ-bmMwF^;v#-)KJ!}r?}?%6(njI*1VJzMrJcf;z6DumMe0OBk_xTc_fH55G34HyT|J*NhTX(0+uFPAFw0}W zf4I4ca>*iOmfj5UKh)>4mQw4V^RKH$+g$a{_qf*=dAG0cCYL#fWI{bvMyv0ccFu|u zETcI(TXdMkDT%snF`1+thhE7R)nJ4HWkTp$z6L2B>dtI{h@?=XaPz@b9h!t`<@rL4 z&O_n_XdK>9-*P$oDdZxapXjTdmBUh*5CFrRZ;+xCzR=3csvHcyrn<}5NGVfC`=*2MS1uWjGB@pjM&@X9QMEJ87O$ zfoFMH=`f8Re&xG}=}y0-Zsv77kS7ydbw!H>vsPZPd2)E6{-od!!r>j;XS8Db@P4LA zM~X*q9C5zhmK?=Bh8ZdqSGdA7v9oS{{gi^U9dGhR87?T0hG7MdK;$fQmS%*Ut2zv( z3#|&Lt4HVFxJ&mmVl{*}bC84eJ8)J|>J#Y6zm`}|a@H!9kTB&Z-(x>M{!wrKIF3Uql4 z?+2^)CzK?s3@VDR!|}Jf1e=w`Yib0l5Qb=g)Vj*BW24;K%3@z;1umuBM)|a=eHyB0 zio;LedYe?F*pAdyQ0WAqGTMnJY8;V1#_J!yLvZEF0KUecjwVUQG7?Ij2*7y9l&@{X zt8pDvRn;B;R&JiC&v@bZrp~uN87bAyO#K$p36$<)8$zw_%nt52iaDLFNi~=0ir16! zZyMzdyr{bO=ow_QmoBxcJ3F50<2J)^gcZ8z%IHuL=>$7V;ip%<*ZyiDzS=d-CbNp~ zlSisH`sMmMe76kNt#7hJ1oG>`*EPqr+pABL$FpIUD9Bz`#O}>LKE5IPpg~pny;Vmx z%=st;$7-2WE<^}?RXNPisb}nlxri%&^{}!1_kx1+xt%(h4Fup+N1gC%DVALeOprCE z6c#XVkyLlk65oE7#cE^Z!jHgi=mbpthLLT)+l@r0Yl6f1kxIh|Vqs*ew?YOqwb(v| zC1{|Y$*S>gqlx_RCOXJk9v@%0wL+kvp7SLUN~A{F}#27(xkigIgF}HNH5Li zsOkgxr%5VH`bV?&HLcZ0WmDJ~viIj>*?2X5xOx^%PG}^jE=3wO+8~H<1sS613DdMu ztOS$R-c1dy-}v3#O(_PRn7Fn%5tU(QRdztqhmt)c8|M(f$m1u>&%v+&TOHqs|D7Dn zcw-HJKVsc07-We~q0M3>>(KIzII=VBzGaco;ds9++{ctExgE;X{``G=83r$x5CH$E(n(C|T;c+*E^{BsR zi$Qk$g`a+8$N5Y@7tdT1EYRAx{E}8;a5aWO8I%_D@a~%L^(v(rUe8Iz@>JlhXW#p| z4k^UW0s(c<{xzAycW?4)!+)wYioA2Pq-J^Eis@io7$o2)8XX=^D_2Z@QwL%sdEIGU zy(b2aUNJLxB{@#7h`2~7LNemh2GVtT!|XrxOtF-OT4;ko`~0klhaH?5V{6Q zWwXbYOmdmql(H)g`u^1l0$3D<4yyLC17RLbPU!7}@l;cF%6GST;{x89pxZs)neQn~ zBSFHR)^Y{!h=oF{dX~oWJvFO@>Qb2m*g!XYal9B@iOPGPVn#L|qwF1%7=O5UJF2L# z$4lS4dNW|g7E6W!xnh`|2J<;LqqVp_Dxk|ex;GX+i;(rylPHn|vJoS3- z%bOyDdnnhQP%2EeDOf#)`A8uYyZz=WwZ^X!;LEht-a)Op+V|UVcT%-`f3=dP!tr+= ztMa5hr6*24`nupzVjAo-$&CcRPmxt;Va|XBFId)%sO;6S+~EO?gRWBp~d>Y>YALJ4wH~pFVFaX5-j~}0JkswCZz;8e4+lZ9*kXub%Cw#k z0mqUDak|#ct(fpgQor@m-LPn*WBJ?r zYT-3y=1^4Q(+)mc`Fkmgk`v~!!vmMA*=yVJk+c@q6)V_cmeTGZa`dRNAbza_lgGuw zxqEru)d6mLWw_s=aG^oy@K#<}iYiDV9KRn8hm!r=$qHgIwTl$7XN69iwBdI=Ph%RYvV@y|tDsi#xmq?-YIkpCyUkS6x_s|7%0 z89VN<0c)LUAkmoL-a&i-uv;CxCRS0sJo)bUJ*7T0!V!Apk$UU`k*qKIl+TAe=wM10 zk0kg#u=d`dPn+xD+u~HNZg;4YW)gS`bZ%a*AZdq+2abk4av0M=HnXlB(p-#T z1?tL|AGO`bL2j#m&$<(#T1Oq1q+i0t@f(Y(ZfeDb&weqy)Z1rjKy;Gc*W%y)3_Tp|tWjg-bzSi4jX$)Sh%LZRt%}Sy4i+ z_H^is_b^mCJU7~HuP0ndiR7TuJ|~K#)(S-h@lj=7Bz&+seV$$x6<37k2 zNO1{>eE_iIryP9r*a>ul1-l?h~>&Y3Z-4PbvgzN*>GM}>Ef>=|xs$IzN z1V@qQ0OD_<*rBQz^LS&^R1i~GC4*ADNGF2=%|P3xvGO+0Kk=HYh-K&3xe1q1V?IU} z(^^zbL2knLOOg;Y*5+;gmt%Wq8!o<}Rv&sCx>&gfn|&74Ie5{M#<|t;-Pl0Z!LCK$ zI~n;Pz>dM$%gvz$NWYrqOv12Qd-*u)6NQFGAIv_f%LG?q?b_@e;Vy9hC!BYxjH0p} zWQaZg$x5u*Qf{_8jllB?DolYEyGDK^=xAnD%dBU|m0b6iZtsyw)C*nUAIX1|&716w zFo-XxKU4g+ewy?_;KW!gokc*ZB4b=+IIUCioOT0|e$TqMuSJHf9_y11zcsNz~KaF{|cUwK8@q>O^^?s79zm z*s$o6;%w5Duq&RMF^M#VpLa&608Bu$zievYpo~Mc3EfL5Usv zKZogvK~o*-9i(Jv57=vnod}6Y&{r%zl7Bq4lXLi-fgym&oF#-E#(k(N&dS+jE$Z&& zl@oW)WH$|{YUYSvOL7Q&RQ6Q z9_86Wb6)F9Q?yF{CkZj!C`^;xg)t=|vR;r|4-cgA=wB7R6CJmuuFsu8zk#>3>=;*! zZR(*Ob^#sN9GI^EISb2(YrK#01m+lJ5#{b^>Ub$Lz)!0Aj#3J7nzH9yMscdx=A=@=D=@6hn#$zMqlU}MQ?s5L}n8FuW zy)+)=N?0>;$ga7Q^Na`OHkEMHXlinoEJPw~B`h-0gKg9@EqjTi!}^9aBsExu?1$jrG(T!7^HGOn zXNyI70$*IFEF>CgHHz0^Wuz^R#`H0lRZ1lAy84n&qn0B%-wJC0&JK67*4HlDz~lm~ z#&j~jPGGU&F{|42@~V&n%A25y5WLRps%L8PwyH(({_FKXX7X1IJYeL;G2piqwqOE~ z0)feR$_15KksYwzK?zIs%xP=FK*U67X6!hsgu8;tJA+BJoX|;_8-4THCT}NT>ytex zj(BC(#(X*Zw2`~Q^tAF|7+32HiM9uWjBe$cO3Uh4smz$%;b!}uzkBuIMtqqC!glI> z@c#g5&GnC>V>zg*MFY$l?EeahnRH{P(C&#QU1VD>$!~{H(E5cng!c+0c$PNvfL8mh z7n*99LaLEl2CLY@o$%hq?fN<*gh`*fihTVSKEadl z^Ag_26{Z@o2G`feIwHBuE8XS7(zAr`BH(sS11yYBo>gn^(VfplxyfN6hiKhg1=tmuFus8bam_L82v%$x`mp1rI&8V?6c7Za`a%v# z`O#P`D2gVJA}tRU+y4ALNX1D&8Xd8u?;JfOBl}JMg3-fD2Pz0TK`qXyHjI%J%vIsj zT)-V?$Uz{_|M>=<7(rTwli$1la8w5ook|S1tA7Jh$$o1JIZaZQ^`M6F?kt5nNe0eN2BRu;a5(a4@Ta1em!t>k_SpE zgJ9nU^Aw$uj{R)Q$5i1yG>~-FM5}p|1nVe2=(TUrW3guHlYp?gKqrU~6LSzyn6Qja!_1t^>LL*2szbNJ zOA&Jb^rh^DeH_h)mi_F{*9zJt+6JKa)nd}ZZAPgj#{>J*?IvV6ra3fubL0N@^58kW zW0T+$1~M>xL-KNA?gNHo1WYX4=>#~D+DLK&8?#PSh!U?Is{mx=3l377q$DiS==8yB z^N9nbENpqYf2}C%QY;_TP#G0}M_qe(GbzkVyw)!D7f8j1_r;dyqWqslw$->z!c zjTP!VcD>w($WR{zZX-eGevNZZND>8J6i@kCCl7pMMJaXd1#mG|%(@TD_44Cg8@U8n zk-&>_sTGmLR2erjMCWTT*rQe2loKd`AN~^r_pn>I%Nr4W{MuTJA z3FNc1^QBjg4PSO=gwFC!n3Ps3Gx-Z$ff@b^8o3r;b`?%sIjf_iIaAHaCMk?Jgo0@K zLSzT|n?>o*#l+x)_!5rDW67qD{a~O68r{{3_k`9Cl`Z6}W)95Hd=ji%-9ki}TyfC8E+{k>EBdWf-d4Int`X~XV zxX^i;0+9qdp*=rP4lt=&;c*6o5NW zs(d0RJ$$j}$@x<+L5B=gbGp>&IOaxI6Oy>C`rW+r6qY9D;GV#rag%RZa%$g)LL6JH zuOGPXP^~-bFjY-R$cOX&+!(3#H7pUSiAn7MKqn8~(@+=d@s1wZIJ$b8kSd3ix*Qgv}%4&1Rh+E<+XH$D>+{sOIzDCOVmfg;}SRCkjyd*RX39Z>>5qj#@p;s8M5iq z2x%Wefimj!Xq$wKz4|FmkG^gCXhuuI@PP_Ub_=3bCC;OT@i3n2Eg)Idk4}Y zoNCh=3VaHyG%b^^ziJ-j9pPi|LQ}p34c9SX2J3wzm1SCq>i5*C57pX7;gcNS%mAR? zGF)#rTZ%g;OE5VXdcumnMD!qoOC!|ltL0{iS%tXmX?wq_S@7k0?CAg^cxy#6B+2a9 zjox^aaFDg$fq_1U$ch;C;J^_E_=GVz7_XFfRC0hodGl(;QokTfJFe^0(5km641>Yr zJ6Lk2ew>VYuO7V7GhUzjHENvRq*lkDzt{8nz=vNZkxj1;-Gt{F=e&RG=xu;uF1L<3 zw^u;DIYWW;E=^Laf2p%Dj&DVmk@YsmY+6>`5oB)oAtv#$a*zPVZEPy73v45Lp1bi< z+~@N}=Vx5s>&7Nc=)qq;KX`CFdmqcZD(ef%6|DU4g%39ZStdIH-S9>Yh}DNqv8rgh}(nBX~@9~as#1Fmq9aGL^fGomKGjT4JtwlO8v_TULion`* zF-}3gCa3F6W;dE=3cEA;>rLYcYx39>LMWd4a-~Q}0Br>fI^!qnDs0*u4|S3=<=CV= z`o#I;M8cX)_5kzc2uv`83qVTofxW_%x{~r9nYDg>5mmB?pMM*Wc%w1s2xddUuDQG_ zV>=1ctGRQ+id0&jlL3+YgfAH*A~aG*N&Aoyt#%id6(DyzK$(Kli8BZxY|}iYmX%8c zr3DD9>_o3yWHL25THT>vKUH+>XG@RLmv(6b z2-9at-ey13oHdewH!-Q^j2=r29&jVe;k}puZZu?7zZ^Xg6ohq&u)t=j+mb*=YXV=) z$^-4R5#~3XMA>P5^F6z1PEn0tduf}krK(_9y2&}u|NEkMj+{gbxbCtNcHQnK$)Q=4Ohu|r*GYf z$><<%EUD2jA#Z06WFU<0q?NS3T0N&o9zvO#bx}ri<*9Nw?tC@4kql|xnDr|U7Ak>J zptFmql$0%gwvOr68|pz{{{P(;7-iIndSk6ge z`rVgx=u@kyp2@$I_ar-UEY)&6H&wTY>NQ_UG@7M$`!=?{UD_sO708Ahf;AJBQ^;H)na-m7d4&m&GILAf5@O1=e9YZmy@xwv z)TYhg-byCBlV@zCD7&8Fz?;Cd#2j;aXw2fAqc?)~A^7;KoDTylg@jj4{{!%@2U;sQ zy#QPJtLfJ}&`OOXATU?XY!Q%Wy6>P*kJgKo%4Kw26mWtd#6E*UL~x%CTq9k%tMzY@ zb?L}3ZnurMSGpH{&X#EyDIB(ER&BdFqU!KO~eYS!+$q=UD6Fse(uM3Xp{V{V9a+Y@uZ8|d& z>;S}H?{Lf*;_z?Ll=Y#qIjJxVuZPO5Qvazo2PDVmRy7z_#e)aRA~hF~I1B`X1td?I zL1JCRS(69avEvq}p1&okzU9gHhwi+e*)8-blEk`3ntz9!$~@J?zBQhZY5EO?YxL<9 zPs`^wl_4W`>Hl^;%F2$HI+BofOgm@C!U<)%{$Y3Tr65iDS$1iBSQTyZ5Cko;t~dSK z-_dTXgP;I=eIh&pE;j?pj}zS7gM)n1C-Ta(ID}WD$18D^kQ`1>7IjBMT+$eWmgTlq zJ+{@Q=VlI*yj5!wicG7K;K=uYk8({hZI#q9h5o}g4mXq z!pX88h~I^f>T}zW+Q`BRC52+$<9YBQYgfz*(_GD;mdOnBOEeGbInA=Z;i5-BFjW`3JaQbE-|B zR!NNSrW>K7F%{AQIKLYjc;#_tz|Ok0W@T(z(d9fAT$z8GY;nv0Sh>7gi$4l#DaQ( ztsmuj)<1vGO6^Z@Gu%Kz_BY#OC3sd@Sxpk1E^%B zV^HzHoCOE!*@{PdTlpHxSu(r;ndNINITt`@?3dj82ykOEt95afL<1b^6IQn3v-ql) zWmaf_g19C7cujFqjMdqxnD=NcyStHwjs_#q}JnMTlqB{*3`2a6a3%F)`;t?kd>3((+= zp&!9v3@zb?ao922oPEvYxA_CFMdu~PfP4@hT=JkSSfhg3OTUIiHTCo6K#Uwt9&fIf zOa2=3#z2#H!87H)Ej-H}I)GPb+HW0Ez8!j$yR6Qlw7u*|$ zJY*#wqL1^h#wBwx3}3T$x@Ql@*B8e?RQu9`+(~=$HO}}0VZ77T_d5C(rU^qmONoHT zUY=Ctn7_StK{_^$$9h=Y7gdaF`SeyNlhGmoDiG4YG?0ncDk5eCs||$4-Xy;R`t)-E z(1-sHD_#w0>l?|Vhn^itn;z=WuC+0N=|^%a2^2B5_y`bdW*vqOAo#?X$(Qcs+Myt8;qOSQ9EbXlp4L)VUH{GGb z2_|@JNr&EYy`MMdeK}Ytla7CVG`0hOo@W5+dp6InW$${fpO;2Un>zTuJv}t*%3Fe_ z(Wu$I@G;AG1Kn)~(K}6On^}8!>V9`J*dxMJAzGjT?+P7`1%}4Fr=U=#83dU}oW`Yw z#vKai$0Xu5R}$USGxCCYgdUI1mvLLZ%smU~V}wlKQUjhPHijLqyaXy&DU?Xx#n?n{ z$@SQp(E=X`i;d0NP>eQ=BqYKQK4wAH{^(hUa{*^~{a3BJ|NMPlKI>%#socWO^p2$7#P081tn=q4Y89VJBw%x2z>nwK*a{3b(w|*y%6$Dk1Z|i-ORDCtNZD z(_KPzFmp^KITW}Q*s!{)Vh)57CjYu2~veIIO9QDO%Y2&Fw;?rscVCRmb zw_+TS9mL5e?}$IcGE;J|EQK-Xn`H4?npS3i8+!GsR1;DlhedSvFj}Zj61>PgOX-%E zDNgrowAIFJ4x!BOlQO{P`YJv{`(1xOh$mgMgs}8Pw(l^7d~sI$gA{j3S*SCxf&Jlw zaO(D3xUmY}t1q~020d)3y}dR0{-(dDWs<({3)uw;Br_69`aB$nzv-QL(L9!pAUHEDI8R=WKK;l2q+ylNMKMcExY4LQ)k0jw4_Cn5)kV&&OP+Yhgd`RgU zbh-1bhkkWd-Pm69FMj^>m)%p?$b*Pw)fcEl;@)_B>js(Wo3aUX<2#NQ6FXxaSvh6) zH6+dDfo0gq&@@Q=19A$~V~h5N1EIR7{)JkKU#@^!-SmiC8>(73#19*w_p)5*$F^!K-J_Y70L?L z$8bO66eoe;SjS-6i4I`O#uuRYOC^`deRgcF_u~|1x+6nu`M}*|5ISDP#FAj3E*70c#4vVn#^TjIP9O-3VrZ!FlYBEa>;S+*?!j<^ zGB0KxdCX`2Q{7||KI~3yO(K9IbF^Rgy3tLSk~0#EXu7G;Q*JH9c<&`jJEz1uaQFn zpm!9??Dwia?RKH*bgF4Qp{g@;d5>WdAa@#ZaacW+2Q-{IiRWuZDRlFYN~MHuI#Tbr z#mNXthrs&lSpo$uDV$^?UBjQ_nw1-4qGEau{-!h)hV85>zu0cL#QsSC zK=9t`!GUgFHcyzkH{mFI*|83&oce?RdmuCRURq@GG6GGPb!%$Kj-mdj<Qf zxiW@AJe=c3n4BTKOr&gu#)3;!4`B<46tJj`m){aCN#^aSk0Sz!YY<;X-7t|0tCD`N)a9`x4+Pr?%1nGK~mg9lG>njV;;jkFX|YU}{AD+{%RI@>^cE zGqhkuOS(k=3zekDeZK0q=os?e_r&TihP1v;>aB520vxp=8D}tx({017n*o2A&0lrE z?OtzTmXA_iAj9?DTyqsBS0yOTaGZJ6{*~V9St*Wz-z(+EBrzR>|NeE+MYB$NU^45- zM-153+z|M&MmyaVM4PlaFk5ulp{Js9JxK7K49%fA`Se$;mze~J>{kt&viFlv(d>S? zp*q?Aoj+b!J1uilCI?R)Q%ZXA!q1&Sv=(EzSWhO>;6p|VV4r)X_CaR(*-bdsOWW`f z&%_WqGRFu#z$DgErR+*6PuRrfqPE^|l-jgeXasa*x^8`|oZ28(+_Aj(Xfaf56sSR_ z0xRBhqmNjYdOW-fB#JV0ti46Fn>V2)USn{wrgkuI%b0__kOpl_oJ3eID0kpw%blu~ z-PtAAA>6zCUVd4u^?wME9+m?M+>?;#bm~XMS^=>eOio63=exxL5qa#L>UXyl(S*96 zh+sk|Ar6o6s`iiZIi$~e0wxa}@Q19czkUDCuXt2cT`$KG-*;n?lB5lL4~K1#3RshmE+aNP2ub5nGu!N=l^ zm$h7s^GwSx{U(TU!lJTfm!#dLT+;BY)PW^3^X#L7c|a#zhk?VioGx`={l29@H^vjU zk8auQXjLP=R5ISrEONL&#RP7>84KfoL$r5RT2$kVIWU zp~jgko9V@z%-WSH@e;A5M=kG&IWNV5*=6;a)9LPB3u`)i6r(!TAw4UHE+v1pJ+44ajEVNXqitI`p7jym+n7WcIQQOk~yF2&T!Gph{IXre6!jEP5>4e}g- z*_Bo{!Y^-yvhQOtyEarVa3c>q&a}pwD?jDAdauHbWxFn3P#W8~k|#t8!+&|0qYW3_ zL`z2iDs);l*GGe)O&ial=?x-qydaM4+`!BUUvwVxCRFcfW(5HoBgBgpT=Qnt$PY3q zUMYMs8SazD=6=gm-%JNE*EMbzThh?7{sf=C z#0-Su)i}<(*`-b77CT`>*{WX^)>qAzl6btZ?Af0e(1m(|xC~q-7>-9&o`wjrT8*+1 zK6f7yU(A@-cdvxnklLzii5iL!Ba$&ZR`bpygR*HtJ7UQ#rD;juc?0;K6ARU25=fXD&R1o(r9Jp_>EeuZz?Xjmc0xk2pFhMt z+5a#k&`Iwna^3El=~be5|73*Yi%LI^Q~_w&^)^gf?fAi4Vm8$S9R4mn$%nlErt+=Y zE#v(0VBhr`2DaEwpC-8_&W+iYn>`%GuA24m-9BBzny)HeYPx6<4jLIA0Zl56H>l)- zLl*-_j1`Uxc(~fbj)&PqA|vLaT5XX7uWqfHL|OCDq(Qv%_u2j366RzqF04GU9R5E2 zaF?{v?GWrldS&M8oiu@L$3%T9B>E-*sneW7FSRt*n&>EX?b&ZIuC~x)+r%ue9;Dha zw#GN!>xO_jAhYyLidozVyfF3LMGA~S=|O(~(M+|qjRUt@Fv=V{Oq%+u`N))C8g-WQ z`zN*Ud0q{dpC3Ki%C7g&=u2~%zH*8e!&pyh?85&uto$TpZphwAQR*W}YkxpVx`CLC z&}vN$>ofcT!D=~oGqx3Y{Z0#_@!<{n--wE?t2EKEZszmINerWcFxsi6| z7Sf5Qx~e}|)wRqVA4*$)YhlJzhqNCl#e2x)C0EVtrm5;Ek}Gfd&Z_BlnR2t2_d`Tz z@O=0x^}gISG47(SPZC)<*!no}z)jsTI;2nGsY61K+9c$5pzk5<)GVXsDtz_U z72szpO#04eNqk%BC{I$8#V3D`s5vY}iln`oUYYC6q`&d|=xS)!<|K}Koj^4d9BOHL z^|F3$3XOpx7t!sPlw$|zbk*LD486&JoCE@lEf4T%XfoPRA0U;w5pIX4;K>gj&HA8*VD){vO=!W+r2WS(zy0?e#EKq^D43oGddQR~#d0<|ZP*&nDIK z^=7>!e@MghSL@ywf!`;0b7;h_I3{{v!_uoi%rsz2e@zUwNsv1fAbiqp$+3N8_GyL} z-%sczv;l?7 zx~j8jp**CrI_tAJ&B}a`5wcJ6Ui*VkvvNM7n{m}x=##Epdd9iHysrcF>DoJ6)vu7r z+t5St@2vhtBvgOO;Uc+w5zePR>DQ~#Pc?s>a=G+pg1Xg0IqvYm^zuw-)-^UL=iVY1 zC?7h~DjO+~P$%pqt9Pjz`2ri}I+Yp-#F3d01v8ge2S}B|f8YUjBeWcLKW|uG zO45z5jxhO_3HHs1S0Zmzv4v|8f7ei^%qg}c(1s~nX zjuZ1mCS=#7p7uzW^x*kG8+SLm=CBsm8x|-qjfv4@a3o!W&$8*+Wa3nGCu0CY@~%#P z_I?lnb(psa@owsj3)Ky|pNmcAI1z}g@$QgOEL}#herYVc9|h~{pT8+JEhs6BqRI|g zGM~2z-vmRLpz~LnI2KVkG+J4>E)|NEebN!ic&Xb)_I{DDg?`8Y=e;*Tj`>9Yra$i( zfMx-IESMxQop~0$m{idFoNQ z{zjD2C3OU;jSVhMQ;B;gmwO0B6VsG(Y1QQ&a1whZadD$Nec~i({;$iWX}Xevx;%(p z+A#%V8q)7^p)aOx2i}oK$(w5qeSe>s8!&P1s}EsW&&aB!kB|PrBQ3>v=AC*%alY_~ zYMv5}Y}N*GVApK2AIlj%1J3zTAa~dvlb7<{)27nUuOIdvP6_z2T?6sPUr2F<+07|rgo9wuNeWDaJ z4Yt|d;5^4x#9$*Q8sd}tLy;4*9D26YWsovUFGA7!xYBMhZ$MO24PP~uIXk$O6)}Bw z+@x!O>}xLGfUSc$^FWI`PuclGv3COk9l4KFc6g<&DL;$7hAPa5#6uqFQ-kWDI)YR* zHEf#b@!xpY#pI0+)CHUcd^#VB36%rbq02M8BEB2XjKx9<;BZ@2cG9Vw%+q~A(N;;8 z2^;|$5L;LTLdfB-xAYM(RM)tB*G+D87P&Jj65P^@=wetUQamLyqRkX7^6tQav(rEH)qC+gx6%!9TZSVAo@?iX;w&dPR-=8GO3>QzwDCQ!wzh%%i!Tm3FA_ zDezgUJ~`6y*ZJ;5{C#r;!n+L+@|8R{(Wjh2wy8IiNO+fz0epi+-Hx$uY$_)c9K5L< z%16fQRg0+;Q*-8mq0$qWM!pPEJKoU-!@w3N_ni2uG8>Pi2wqQP?Xrc7|4yei(%)Vh z^bhM$(>z;8pLC#4*wg)d``T~}(Q4HrrYlAtcXjM1s5vz=Y@h5}@Xt3ju$QFlC2SgA zb?T14F4Ju!Q#w61y*A93Z={OijUL~}>E56XOd z&}Q|V_=EP=q&V0|5}6Jd?J}%uu2$m!NKTKpS9xS1muG++0wi9@1jMw1X**PCEldNB z?EirQ8`c)H+&3>y4hY6zazMA$Dy>ZpVfdREOz3Wv(Qp`z@)uL_OyQWe+2t5JvrXR} z>sn_Iihs!uGP(1-t-7#7-OXQ5mLPFS7GY)-rb(Zi0g^*az8_8^*I0+?fH&&PHdxlY z<)=E~Vjp2y_qfPTFJeb0Pu^iWr$MDsVzR<9f1rqkiFrzU(`NsW1Rx$FRjSc5(w7j0 z+SkclUUZ5wZ&O`ILQEdUB+mJ!Fm~2XkOz6+VBY`sNV;OGO(k{dsrgEQSx5Q%TOv8I z+G;JAa|qZ&uRB~kQFdx4)Y+;v5Q~PPldVi$VjW3jJ>lGTMB8nim%8Ul2B?lR?8CDD zE_ZEe18RTUDzkR1tA2&m|6%HfA;hK**OW;>ZC3|LcX*U{G;s#Se;}CRaz230hSS@( z(ki}I@3_WrN+lL!$jXbKO@}mcsA0})9Q?w*W;VEy*wq(9v85tcb@4qb$R6vZ zIC_)hNB-z7?bG=&WMO#Ck5d@(?(~h$G#_nR!*nweLoQxHodD#}lYm-f!zK}=!!r!` z>;P5uqF;75dh2f_&Cx|o$+zK6t7r+j@9E;Zi4MHyH@bt$469f^Y$?su?Cu(kUB*&*!f5AUE7c!1q|*j3Nneg9k$CDY#HApqV7frzs?J9$IU% zidDmy-|FQJ&YNuALi9ZBy^3_eZ!cQix6rz7Zc)Tu)bbEjh_;QmnHB+|6++<6`D`^omK*!qyR2- z<&NBnOkxw-X%^b6oxHlbhH%B;Jh678Va}6jIsqlTF=iaju*-Cmi@mBQgUTnX)YS8@ zTOpU;F?1BDv)LwbPgl`e6ViOln)g&u)3OU{EXjX0%KF948_)Ms($U3$Tmez)23FbS zzqSG5eGZ8d3sQ=$R`Ceg@ypbC8U*Eer2!@nHsa|y2hfAw0nB9v-s;_@^v$y%T20x- zrDx_sd9eRDf?I25;9vBe&7TL{zM0jwGs;5;$?1VhrLf>b4GsftYRpN3C~2p%+{)3{ zyCkyJ+--BSn`)#BjK)TA!28tfjjce67Cv!YFkvj=Y-o%Wrd(HoZ)T}DX~%^IwQ7FX z6|Wewe(!2dURekHW-?zqxNL?Sujt^R zogCQ<3SkPsF9IUrQHV7~3oM8rdaKTsSGt9hh(|^v5D!E3tt0VJ%p=+96^sV%H_;Z@ zFp7jum;eTkYiY|ocao&v>HV~u_VSCCWBYjO;W7^CiUL+ zy6I!TEa9CLQS(~+fe*M-d z-4)`sSE+750!(u)ALl|BUiyB%LS61Oohq!^q5IX4jfI;V;cpI7rQBqMCTlS`HKaGmAazFI%l*Tx#1Zm){-0H=g> z+$~P1ad#!Y>@`G~@XHAPVN$p6Irq&P&KynT`tF;JD!FexY6OT~-Ucb;Fg9f6j0uIR zR{}!si)YJ3X@1?5T2A)TP1BcgAWIY&0MOvgCo#&QB2Q0pJtLZY%%iPzC#ynd`7LP5 zFDl3K*Qb|W<2h{x)Gw32DcS z4g(IxjMY3c{x;nhf%jV_r*S7^(=Y49@miQu_Gh1XI z7-eqRSpBZ@@(ZX-QTN^{C*pp)bN!@(Nh-fJ z8QTF@b?0jvI#$S)q8^+{bTA_O1P*x4_;5@ zwaioveP|!R27O-!YrfR@ofqYjVSveA9l3dDU^}aBbGJ8zyLp{F=`+~ST^$!R6VDD0 zg$S!xK5pwvnqL=6pHkYrzFx{Qj^j=3=gx;sN-DhpY`Md?h*tNJ^y;$bP38z*2J+xN zg;u?vHN~q&&>%JlG+kYejJGdk-g#Y#YEA?AxkjqrO|_l@s*cU)xe0U~xVrgN3aRx{ zj|Sbs!USLS>Aez6TrURcFbWs)kmgerXL%LRvyCkl5+OZ>W_CBUPI}s%|sVsK$XiWg{Q1COUV+7S8?o83X>C-BQMmu zq=xEA`pi`yxGtlZ>QE}c8|TGWSSoc1EKqnr3;H8$YaCOfRAMZFtc*%bs;1sCoqaj? zB^ey>W@ujIzN;xa!)xWI+PA{+snKVDZp66x(afq1U{fmKud=jUhH>FagA-f&h%u=j zVGuaG6Z`RLY2H0?pqS=Man3rAWR&hRL0pvJ4z%gG{BuH5S&js{H-l8ub(8d$G3yex z#UrY5t@`TN_^;qHg)Hej{t@r4ZhJHd>pILZG&>#%7hDOZ7-GY(?O0S!58RrP!dd_A zJJ;u(c0Pd! zxAtC@U&`H$Pr_a0LDJO$I1=p(AaE(z{g6#jD%xOtG_yA-^?2mXOCwjkBtd}?6gMs? zV>ay2{!D!+MvbNb{(by6tm_<*OPvo*0znjgdDOBNAiEQWv+MEwH}IDi>Sd-%%kSb4 z#6%r>^O*HHIdwD)aW?6AlLpH9YNhx1E_eAX-;xNzc3SzsVRGJh5OOec;FJIQ`;A#= zyZqWWRvMKTIJLcwk|=S=|J@qA zw?kSZ1ng?z5|P|;p3rL_Vbi_JYrN0?;PLSHA2wBvLZJI&L(W<=I^P8IloHCf$+b!G z%@?S@-TcQT0`(`)x^b|HL4~MmILN#18}IS`${#T>=2qk(;qQpMrBN8wo!1{CZy4X{ zY4WpjB+ryZMvC-K9=+fzgNXU4W%e47Z#NE=f?$(qp3+#;mU!T^qp>z0!YMBCwkNynUr&nvf&N+eF6ov>QR zQzjEag*zD63r|~?Kpk09&bvj7`#z`**nC3cRUZdne|~=13gL^RCSS~?%jCucaBXFG zbshglGjg9zemlmKCEXfYPu}{CDJkiXH)2XSk44<}()76?-5(0Hsd> zJl%ch@1j*##Ka1{XJRsmc(}1bOUTU}wO+gDjYgiQO9?CTMn2DV3O|3n4h!n$Kc^mN&auD0HyQq# z&QhKG#tn?EH_;pt`j{R|j_X}g-+Gi)l%1UQTbnjEWE zG}~K(3ZUBJd~Rd!e9eXA$}?UPjq-?i#wx?f?S0IX=u3obf_Due7zGK!8)!Tx>XzZv zSyn|1uG{}EzEI@>+Z(>;pf#oM4`&%z)OxR^*$wa5)Go3g7jw?cT|<1+mFBhanh)kr>W|Bk*< z=mV*4h*9NOA3t|io8qicBCk@%N5V|a`_JP`k8-7SWEgO+o4tz<3@e8TLJ2(7;d0{} zRFJA(tvRso1O_q=E^d+S}gp`s4 zS^viS?hhKQ=>d84cat#R!8kDlS=Sp#?8B`7SaSvYi8!F4G@Q;mEN+*{XevpliMqR_ zA&lvpZyNLLmJ;YN=H2WTh{xobm`uklW&87uc*$=MxA~SpWT#iZ_)D8MT%Z0+kQENv z{Su!c^|j0bLzd|5TaPY!{a$RKPn$0tc8OyOPNhHpF(#Ls&)T=zq^?S6Uo$naPxoM- z-rt5(Xg<~Xs{)(`ecY0xHssrrgQ@C<*4T(;c&w>Jzq?CcmsERNePasrOs|i4e?N=H z&>^{H7MxplXpNtTR-Xqz=ht9pDg%Qm%W&R!(k9%j224hd9SLeWLltTMuR{>0M}#;Z z$x(=;hoR-TbHPG&FA%0SFdda;aUT|=~ML~6ZIHH{Ld&>-CfBWN;f|mW?bIY?0Ea3TrZ4E_o5P*bcd{E*rd;G3mI=z zn+}FnjeBEgQ1(qFeu^ADjF5F&I{@eePXf3kK^NF} z_krDk;$JRcWh3205%}5z_v{>)K; zwg2mRe>_0?^>IarwXeS(j!z#uy$cb*_6S6Vc#briz~&knhMI_1-X3 z(eq9mygoD!$|4S<^N3KI7C<$2P2mx6X}((a^I)7yy3DFdE^e#YdKeuPNM5Cl#Z6Fx zj1|{1;;;cJ^16K79Xd#Ghd}`+Q6Y~lvT$vuR6yv z`3kdMWi%gA?c%#Ty?^sMohh9|uSx#oWzvIZmT_r_?^bT^E z1T^wa&(fJ4^h{9%B6!0NnvdTF0EG<_%5U8ERP4!ZwLwh~*Y)#YfCQRcK0&hI49pA? zWL2R7;%yf@lcc7}rPA7!Enh%gwHCAyQMDwOlWKiG^=k%WwgbW>vWG z&}AYptC9*WbD$+P`^GSZ_$syAUJVA(=s)jo+>lxIQN)Z#?#rj1FK3F(BuR-1#VtK$ z#`1nf^E;ew!@A9#R&ULTl@yYAI5|jGmUeI~>z*L{+Xn#;&J0(4(omi9s&s4`evi+a z*AvSgcmPl@u)-g93wyeLeyJBN>nA@{j=4D0gR6$7__jm{25LTyM~?bIzs#?b;7VF- zq)`bbES!R7q(skD4^ZDps(rd=59E!Fpj+5PG`eXdj}zwR zh0Mid*ycGdYf>)w$G4O2<>m|c4cUYl+2a3WRPrid>AFgV0%%ilgMl%l)x9hn3;H-c zpPVPfR9_362r}~MaG95$-Y28=YLyc^x=cn@G8o}`B)5K-^G(*IIlFs0`#UF{V4{Yg z$nIG*J25C_Y0ROFT#b|#W;!4mk?CJH3sG2aesDPY8iUAeU=`Xln@Od(C){UrR-n`& zOW%m<`S~3|MJ;w18cHv-_D8$7 zh|!tWNNwiyi#4mvHudn3`Rww2AAt@yl?U_aF_EHS?5p0A>|-WHa^aHj!ox+0eXGM zxMlp&009Z(MTeUn@Q&|VCvFb=%o5e1f0cuLo3zIfM7c<*rYzl^TtAR1?!Y|nxXKKC$DLGz_Wn(e)Q7c?0&+>(ffByBPjoNVSuvy5B02VIY6 z`AfVM65rSJ%!j@LRC3!pjq;&2?eJCrJB#MakzoXy2{fJi1E)tuJo zI%II+BPO&+D7=-d4~Ke{@2^N9{E0irB6fIM_<;i+6LgkE!6DzUu|M{G@sbw_)NUIx z)yJ)m{*29~A>CW5#liZhmo%#kjk~O)5r(*5nltCp6DsCuYCMvhSET|PF@SyP8d(uO3!OA*XVR<2@AK5$O7BNtggHtr!Q7C#=aRQaohF?oGN-^G>t!m1 z{_Vh^au6Y;0tqrRy6}%wXrcd=4qpT;SJc#T2m{Lv|G0Po-$3*C_Veo!f?;3{+o8OO zx@iFb^obP+9I#4jc}zFyvV;Tqxl4+>`d&SLV2KOj?c*fA&HZSw(+<$A8RWe9oLH$X zsGwHqd6VEPkDcO<232l-NDWUsQ_N4CR3^jlj|n~=e;<54#_dYv4w1x^ez2jMKjrpT z^?^z0ut(6GQpk%=Y&dFPSdR0I&p?w_KZjc3hswkMBowx_|NL%D2lS?Y03<3}=}@$k z-{~(WX`Xh#)7f!jbqx%K^i~nhF};3#u^blRSho`(%o*CHgh#x zD?dcdPX#hUe21Ej^Jdyoq7<<^zIo~yVy1)FaA0H9you6faFY{cvHod$gG!eCK;CUbx&crOVtltweUqnT~b%oeB{#&@8mk(C+)S8+5 z{M;T$6eWqT-^9Qd`Ga)zz>c?qR~bsOM%ax~3Y0MQp{eZzw#ZFMH>lSxWA1O(!}-A) zXjJJ-avQs1%UcXg3qP<;Tb--Ck~S`l@V&C$YkRerkb{P^f|d98%ntjl8t=^aZ{7Do zmK{}9Vfp+#ww(*b9>^XJdjG&WOHQINqCcWtyhG(4q4+k8KR0T?lN63asee`qj24xn zAChJPw!tK0e4ZWJ59QwHM z6fp)U0kq~S=4i*qESR+nTxU(#Y_0>!Z4e}@IJs%G>U#*SuviFt zDBpau)5}99wBuqOiG88A{JDAz?nKTNy9Zg0Df&e zgGi7$kIS8?M0V=Tzmzn6_4h3cNG=$wkY9^SQpqsnIutN`)SJ)wmt*geW4M=HL4ZCa zUzU?D@^R3&&+6Id94ZwNzBwMH0Te3@OALeSOR-1!^m?(KxrD4A+1_Q+)OgC_v3Vv* z7zvdkY4=c<%av0h%nfCV;DQg>rL^W7W4Jb~`-4Ms>?$v0pySImNu1CJyGWW4^#5F8 z(Kl)iT2fdu=AxaNbpQaAX<+UrBby+FWHvzj^LJ{D(x8qjnt*S39$4$k@V+#f?&}$~ zb*xN{YQ(yUxE0c+JPs_0I`cG!^gp5AG%Dmd^_xJ}{e_SHM_c(jn@sBtc^EhZx&T~` z%BIBgjfTuN`<^w?Kp@vCk8V=*UrhG_F4eyI`nPvi=+4?eW92_$MRz{e|uX=Z9m661!Zg|SBYOp4c*Od$Mv6Nx>ErcAu zfg9@n-N$K5U1EJ|p>qQCSxLO>6Y-9K$>8F5#r5e7|MX&tvIY(7+o7(DH)+j#&Fec4 zK<9g6NU9r%bnpq!_VerD@*aMpdG0_5l>(3|nBbdf)6D*FS$zXKO-CvEoAy~XLABJ| zYnQmtBeLfd;9cs8WIXw4IIzj1!3C8|m^_iK^~Gi=VW+=RH$NUtt1c;m zcXOe&Ao0*K@Yaa-z7e{= zIpV-*@eU`*Uj{+NFlWyC;bB<{OIMDWdXtHy3io$lfXg8l^L2f~)e?zxH!yH{|Mk%& z>1d>}a$0sf>*DmY*N%++g<5tY;#_WU9AYvtihlK?Flc|hy8}kQq1cW&EbI4u;vGWc zblQn=EyW>rzx1t308<1*z(3yMt#<{pFs5T*?rHxj{+ub+zlGnY@EYXM@0c^L$fOiE z-RV`WHRqo37JqCSo39Rl?vnP-`At5&r+L+*WPt1^R5nEwe-Uz?L6RsJ-gMFeG-mBVLUtL4FETvFzvT1d$bRU zQ~;t*k<6+Ql9Zr-L=)k$@Mv%o)s0>dqvmbjfjNTcNB%w;W`qi6^ZaR;()C%5F}H#C zUM+HTQ`nhIB!*|75MOyaHdqES%x|e{60tb>wf@5qOK6o6Pf#@=o*408@~#$+miL#ohpRm8s06O+Lh2`z=$-jlJ@b zV?HIuiC%6Rl$Wd)11lyz@AqZSS={Mz-V(ehl_{N35baPF<0kTaVUv>Ule~+}!uz^Q z9=-e2kM~LZ{|v0JfBbm;PGw5tn^*lNcxY_XRl<{$BH;zLAG{q7nOL)fc|XwDDqZV2 zn}q3m7QBb0I=OLY@g+5nr9qeiufS3wpm%?(3L2YQCBEjCqdol2ya{cWHPpssNxjDH z%ja)|QdL>1Gb|W&3gG-90&&a(k1X1{Dz2Y(lH(1>!i{pfIPn_4=Ny2x^fv7{0>6d2&}Lpo2oZ6DXFwvVNjkdj_rP^4q05|5IJFg-ThBjj4LNBYVq@1oN1qkeBF({!Po>0_!)(cOb zu$SVQql)EQJhFMr=;5gW`wYUp+gSZ}<=lZFs=2EuF=l zP6`i_1wuo*U0q-WxEINneU0|Tr2Sd$rk?5@(q?)OPxYnL^o4+#y?LHRf_8+*1`Kr8 z^}n=>705Dxh6rJiDCGbQ4 zkNx6PK0BnT%Zymfbt>e^1(Rf@nQ1U@D<=>=cqE-Hdm07m@gYK{hGVXmAl$>w_MhMT z8x!Cqw_Z_%%`X#jE@Al6C!PPM!VYQifX3Q!kae2I8<}$_Pez(Inb`%Dx%4GNp^BMH zUq7w}@O8;bJ9l+|YU>TYJF_RHA8$~QqdN*Np(Q7=r&(_euVfT55y}YQqzCLo$J0D4 zY*+$&f$;?2dgQA!y)rLPyC=wdD|x_!lJ$2SCODH6w=vIl`h1C{*oLhg<2K4PlR$ot zOrq)}eZtP4zE^~Kr4eKUpCRYNpO!KeIB3&aWZ%n%O&zj?gIUW;l(L_)cI?r^C#?`` z_mbkRZ%g;dwugBPQVN;Ki)(U8A4rw+e5GO~D1Z@-tf3~v;fW0a;YIiIng-a|32*BD zs_={Nok}=qYb%&Y>6a9pi$36Y2qu`1h~tm5+`^=B_NvB)b)7%IC#+IM0AwR!atF@( zCceS~$}k$S=|L-1b{wLZgc}I+gC`xb$7?h7i6F&|y4_0gO)MVi1Pkq{|A3U2!yk zoob;FDXgCvcYKtImco)8ncSP&t|hl}FJ2 zxK0=El}dKvAkFEewG*VhkLPBuaG)|A2N2J@yLMjI>vL)DNVU9B*r`{MMR@6c zBRtiaT+U9ti7=Y-CHnZ)zMjxGf0uhbKoCpy-Q$6j6n4|lvcsBh=%PnTD)+?1kZyTg z5$P_^1F5}f2;v&Us{SrKoyn1o3!T=x5n@Y5Y$A0!8}4#5u1j&`z~a+y1MS4*p>-b) z4;P@ex#e}E)#;4-qkumC9&2u(4&KJ){A$+_vLOD^rHSt(Ql)olQ$OnD*0XL6<~`N& zsGgr+ zFYgw%nbM3EKb5z?KFb%MrcNDFc0`E%?bK)zU5-BD!y&)ZVko%4J_=;)ZuRwwhEF`8=4V_ApJN*m6>`rGYB?TQ9+Qm=!)bCt?7s0Hf+KM;<^8+V9MTO#E zQKoD!7wvg`9j!(&NMHZBm^}0y2A+%e6OCGxwXP8&bC7< zZOj|TJTAcu%QMPCL8ViZQ-EL3%%Kr>p@r;l^zOWlkk{6g!eMA_UJ%iw%NvKtS74NV zWY_^gX{~N>+RAz|1&q$GQs%ULP*R6_!Q<$Q4+h>z-t{;78T*wtnNBVu-6V>s{_G92 zx3g@{r^Rmw!{)Y-rEK;}x*JHuF1d1yOrb$`u(pJInBBWwc+zbDixEMQnO9H^SaIf>&w&A zH;0{ufy9&1A4!#LO5JpkYm;Aq+ZeZh13(5{cvXDslPKI-SuNw2BtK%0rEk}!M> zq%n(xND2SJ8p)hU?DHkjv5vr}Q=;RMa=Bq7IW9-gDy>c~LlT~=d^N!Xt?x1w^TSh3 z%n^6;_ec4~IC-HaHJ2l(jKair3cI7fUDId+%S|nJiZS)`vyQ?GNO5u}`R8nnfUJv* zdUAX&hnZ>`W~CF}QyNG8rnya#CY$rlS_UZ9?Zj5$U=rtsd3pQ6d)N69@1G2dF(IbPyL7s{o1`qBS>tCM zrc_OHKG`lq>Lp!=LI}0}Tc0lHk<&kM2)bkYn+*k zztgnw1)DK%yL4$*phm5-ok`t_&~_6$#?wAFcI*Gp@)v0)-YH&AHkkX~a>M-0o%hDD2zJySCT;S6S3%ccnY@NNjpvL#dR!Ym(L zZ>qUh^Q}lCq{cgv0YQ1PR?>auWH&D~R|wsq?Z2fp>@@oH5t$Gr=|Zlk{#KnsS)~T? ztql>RdD-~84e8o}AD><^Z0SjW4sWA31UMzht*#kU&mb@5al!WVmYkFXs<4WWi*JPGd5H$W5y-XS+QL?Kyxg-!G%vIu}bS3G~K(+HLU4xnfqEXaL52&As*Kd z#D|B=toY*3k7EK>{c;?{Pp0v1lvgH^L~>x8;_5anhx68<_p{1bbz?!0Ft}QTmdqWN zC8?9o^_MR)p=)tg$0U^>!?o_`nk}G&si<<(OT`ME zX)ea=8?;_|O=Fuh+o5W&#!jdZ&_nYYZy?kLked2l^7W-SNVs!_T?sqEwML8eqeTV? zUTm(h*H#$7$PR><$%>`|f|w(!JCMV*Y%;liNe!EB?#(x-ziB*NTv2_xezysF4^F%W z8cin_A%Hw4Fh}L%`z7Kx2Sx#Ad^C1Lo?))ML1yL ziP3UY@jk!>u+DkzzrPC`WGF3fx`E#ZxPbp*AtK+DGqt~a6&9f<16uxVkGMOrpSk|(o#*10B{ARvci!iCck|*+&s9lyjT2^R_-3=Q>Y}cGN z(qLqe8!26+kLSV+ls>kyi=Po8i?9ufu`;!g#;VS2io#z1&CJ=PCKhbvYH~cDPi16@ zcbG(8XH17!6GlbHr8N<`<-mP)BuwpZp*n6v7Um5E%tMf;$eeUnc-GE{yl;kZmdZ$T ztFZ%X-eI$nmXxBHB8kKE5-Jz_^_*QA-W2E40p*1Vov+3s#={j7&`ra~>_%h5F2nwDW$3&3k z&RY-de;Q&K_d+hke;v|sMZ}x~n7%-XpiY@loPmuJ5^Kx>Inq!`#KaWTF8OV8x%ih5 zceY~gSD4>rHamXK=T{)E410$LZ;STUu8mIBeS$W<@msL&rFZ7Y{FQR?`BIqI&})Cq ztkIwmL61Jcd($)>+c%Hq^T%!8smY2 zE}mg4&Wl{F@XNiczHE2jPUdZ1{rbopvTPCEH$C6gj-^vz^pcfEXE&*-qU@V6vAg$^ zN4xZ{Wcag_JD32&!bUq${dw5Xh4qtqUi`5^SW0emd_`6(YO9HE zA|_yG`n`Q|u8SIcKgNl3)ErJd$9xaKMfM}0aj7q_D@qtkphMvL10z)`_~&>}yJ!QFfq1=;rkvUmV6k>xhtJHeZYiQbNt1r+I44sSC! z$p&FE)H;`vzCD)zL^hHzz^%lCj$vi}U!JLMl{7~sXxnZ^-ooBuClZp;(+ZL}08rpx zZ*NN^+GIe&8+N1QB~9YrHHCd@UiKu^I`*PY**B@R^{|)x;80sHRrS4A4n@AmW@Bg? zbA*@};*<{Md5{Q@8D}chy_GYk?wFfmRvztw5q#1igV`u~U&Jsu2YR$&=st)}aLB9L zbDK>ViJ%l#kW=H3y(MQb0emJc(S6ga!`8M@N?hs$M8A?jtr` z<)^#QlPBI7Y527b_#n#WmPw5BofIfm3}ilNS<3Jt0CZdj&7`SCr|AUgOB&rRY0j3f zkJ`ZzmpXsQ{)d@_QSIaWKmC4VP)#QDvCbv@y|KD4b(`*}5hc{zsIhzr$>=2;cIAdN z%DE$BStZC>6Gd)N-~b&*@M)9xm_BCo(2oQcl$8W-+kFQ4RI zrw76kD;AZIl}`g-T-}*I+xx3L*-EaMOXsFTdd_Rm+Jv8(wob2w4tYi{P z_81gOgiaKtmWnD9^9mO#>stfqz*_#P*gp^+EyNlfo6ZR-P>EBpNC# z==zresvF_;y50e0;4>y?RhB%%OxIFre#$3FQyFDxWd2YV6R(hGl@r_{14h{kha~GE z(;mAK9J73lcC{bsXwyD&_P%xv&3kWhZdVx5hscr_kEl&1BvZRITFc^qQY%4Krlp_m z6e%0kndBpuiE8v|lMcOsV0^R@qXLCe{YB87x1At?k7DhJkswbQm2WH#GqnbvU>f>RSwHd*NTc z$rQ`m32jq6n0%~{diXdmjbGLxVV$X(2w_jpU`OQd*TqUi|?~koWIQkO?w|eNyA`ezn@C9Vy5EC=u47opjGFf$W>JHa6CK-j2Pm^%eucj+|h`_&|^7b%%z;FQRT0iM&$L0fT>54I5e3|L_%zC=(QG?Iuy{n^?MnU#V6KS z)Eb#^)fCa7Gw?)VW?k2Xmom!o3b@&63U&3fTwFJpy;Y-mhyLd%t&mU+O#=aK*w&_= z?&Xt87*1O7IlN(pov)-5iMH?1!{m5eecTD?HOeJuiI79!Qy()PM1wjFXRlmF*QUjL zzGs}QW`1&Z9T!>qzGFNrWPHbyM^K}NT2Hh?FQ|hRDN|EneRl8%G|;w81W?%2HbUj= z$*}RuaR2Wvt9Q9_qH-(x)XM(4G=4{?M|m$eZt?UGZ^a$dM92|AWCyvoKysu~!kish zm$IeMN$4|N&_qSjZ7;@gUWHIY|Bs~L6K$&+TbXsMt?GRpP5PJ2AKo+YBagw=>)c)? zmsN$n(j}vN4eg!>hs!hijrweFx^#c3WU4L&haRG-v%Vc{~2OTFzy7XjQsr2 z*J0BZGhJD)kl|tDQlNu|;3AXrCLVxO%gIis6m-d#`?F5bZz2`pB1VI^Hb^4$fY3Pt z#!wsOpIm*%n_?!2Ax5jz*>#ekfJtd_f2qk}>r_GzX-P{LEw*BdN*} zO>?!h482C2BSP<0OK)c;}23gHLZ0zqS_l%4D!6Bh@7z`81e>MME?G|z=_=7Zx zN8_rERAZasX&FQFfsnN?j&& zp}P)nZxcLjl3$uaxKp~QhHt6*Zb#p@p@@`o@{odkOXatiV#4}*XYtLoj2(db9@RnKB^1>vxf^3=MlfveqR=`?t+?*9}_*|ca1t?TnzR7Z+ z=OvvSSiq5sG;h~TBke8+yO$$NS0Pl8QH+b6BGZwasa5t}3fSBQT)5A;OLHN0mbJbr z(vidl6#+~ z>Y*{hKzAM?k%@cx2*7oSzNhpvf?ovl3ejN1E;!Idh#r_RlkbgBF zaId%T7D@O6`U}bJw|N<>Gkyx5WBx#~*q7P!PWWpnYi!3cTC1KTK^np2AGZ7PYK6%>w~y{ku(woe>?#!ngj} zda%SW%|>s=-C8IAobJPx+rRwzQPXPg0RaB=S(pxQzH7-lcJiyMU(P}+uKM+dKC|p2 z|L#yCME7?&%;zq-R7lvL&R5^(2+eJK04hAX&yW1rH4L@V^}h)vEQNb`bj8W`>T=n^ zA;Ye(7@?SC)YrkjBmYo93^LpvNTmYBQ)BDcw@j~*<873LV7YPmVSDLKBhocq?Mu%p z3+N>(hrhMUum$avRu|At-1D6et`v6lZ8uaIab2u2snX-fH?D|Mbk^G)7cM#Oi68@U zB_SuF)!dTVcw?%GFaT!J!D0weJqPPp(HsGb$A6+28RF4?4Cv$FzT^IaB|}y-hWiGqtzc z#mRH$8W=aq75xC#Izf(V%sD|<9O!KF_ROws>6_3r-sSZkPuZ6ijZWn?6eRT{VIXH&kL0&oL%zgmqcMraxIa*3DY?HGjsBAk!rbdJ zhn_4@fWN9x0st83J$_krNsT}OR%qpvO(vdCD3aOlWUeQ!mV{)jm5=9(9`eDmYcaYu zj$-6XNrcDKy8HPEWz1}?uY_eEbsqL(UZ;iwBbiI1GLDB&6qfeApUx5)dQ1k>P^Eme z%n?e?YadtpqLO9y`!=rfq1hKA&%|#uSNSP1d2gN%t>3Vp+Jkq(AhhO9KE5Ql>^>jg zGHpyusv9zIsRz&QMG!u@-p zEfLeF$O0GO^ZSMOU5P))g*1CN3DLXsPhu`$YfU96oTIv_|=|8Q!O8#n`k5^~F#cy&gh;Krx!H`LF zx_O^a0A%+9k;=?}1DTxn49FMEl}{KTwx`nmT%L7F>we%NQ38`6JPVx24l9Ru_vw-yphbSD*p_>|6;fHLGVMMJ zdEFKH9q+`%dmF+_-k-zJcrS>~yJ8$n!rk13h{M4Cu32rekxcB~2?3Nzax2j#=Md#Z zdBNc=8_Pqqsusii9`#nErgj48;)^#5saX4xc21K)jWKHYwiXVpAG!Y_c`}{@?cxw( z1bW+vff>Of&>KJJMX&aB%Wy}59?N~vuUi8T{$y>zX?!a`R1RH>Uqz66BXnq>vXdTG zS27eRIqWYRpx;ho)2C#YLwtvxyn6!I0rg>D_rGj0rimXg&Fk?q(x8~I4!*B}q1CYs zALv{y^>WsF=#QE?j)WoH=fpDBFul1u7ig~CuRd|gMHZJ14?!c7I=p_l`Oq`4CaYIZ zvELzsLyzKpjR#bCN~~^E2LMKzNcBFtPJsb?1{cBjJ<-4F#9DWF64Qj>=s+R;On$E9bxr&Ukd zsYVWTR@J%?2g0Iu@+X4za_iRn^bh%xNuLC%WAh@wul zO)vIWqk?9XiT@eb`L~RI)theq^#W>RnYq)N={i#>ZO03az1iWcre1VuELm32$c%(S z3uGx9{9J!G8rdH(cw!CKG0wrg7!}v_OfoD(!&DBtG>tNp00mZV`>P&nteGLQJ2Ngl z+aLuy)w$d0E9fK!Kw!<4h`YwCaPDR3Y>4N4543+8CUyysh2vBcPVh02%!kyGR2&*k zIS{EYW?hC;2oq~RzXz$W@AE{fFv9Ptn}-Nv9-BD;4Sh1x1RfFbS$IWaCuKJV-6T#& zKA!X~yUJ zcvHT>j^NkXe}2nm9$7}%Ck}a0dAAJAq8k|+q_#pT5p|sU6XS5?wG8Fk?P%$TU<&Eq zcqKq}g3^m>9;;cceD^oQBF&i$0Yp}rpUoPnSURT$%xi@iF0v=#_oxxGb4Q8M(P!~8 zAnHEjm2Y+=X$9&hVbIJ{!b4@II}f`oKj?XUq0=*Yp%e$qnKuDU*-4lSZh0G~RnDV1 z)$57Ci*MAqX=JWXlS;T=Uz)=m%LS?-Ox*euAN|PbD6&;w(i0B5xbgGw&3Ay8oMVFD zZ%gB1)uc1)0~(LK>aS0UnRYw;!;DL=7#zKi%k_Z32n z((Jl@?GLum$;BpW|IPUA{H(;nxX-86;-8D1j<}k_Jpx zsKJb5z6J$<9^VZryxv4@eE66&lbF4mgz;{4(dMBNBmFqVUu3eCawxYRg0OrbPo0}x zZM6FZpMQU~PS>>u`+(FW(#@srEK2Hiz~t`HPgndYqlE6g39B-kFECS0h4)g`Hy|IBQ+;AQw=*tvN!=TQe-zs&I(}l$P zZBgOmie`e)XsDr19rKhxxIC-wo1&!;eaD;PISk*&lE{Y$^WqC0dt+BnKFn|R=Z(Pr zb=oKlrCT@qw0$fhl2~>C^_V}UM)eIarpQ-)dS(BzbjNffm$VKO8kZhZ{}1luguql zuntr*T@091)KY92l}~;p?9I;@7oxqr>NuX!tiIb$JPrPTQP834p?;VkWu}92<2iw$ zLK8|Fx)Iq@mc=^7xYcNg4;;LynM|nM=7$b5-Q*dL6Y4e@%u$UlR8Nn2U9I@}WjxCZ zot84UPCX(79v)5Bryho7-Fa_{7m%n!N?ES@=C%B1=Uqe3-zYT1)m-j?F`kqRAzv=) zre|O}NLS4_Grc2Hf=~}SwN;96a<$`pyj)EDJ+xD?GfXKb%YPg4WobYO&P#FESBv}g z2p3qd_ji3eAx8ropp>nWDmC;p_i1zaO$w4oa+Na+1-!%#;EYuCl}qXyfg^0{8Pq2| zklQS@_;>Fcf=%gA8v2jXo4dW9+9QZ`87_QceVq+0_oP7AO{Cj@)l?-#^Q;5?jSE}qZ1xbEInVcy$3aQ1k)XTEXZXPIw<7>^ znD6xy_R;5VUz!0B-~KN60kSvA%}^;RP$LUdV>?}8ng2iGSrwQ zhP&SH{{ccby4-w12p+`QX=&mUy7S}-xrL;!#Ff*PKlj3mXZHmE!WCaXSeH{yM-{j4$4oXJS0~>RyPSaf54x>N>;5RXOqCQylr{d4pG}Yi?n1bHDa;MSZNKUyq}IGJ{bcP%NK7nXH63g14|{+0SZ= zkhlnAve!Qg2?N`7z9c9nzIdUOr8+9ES@zjOq)vte5}GSuRgP3@Vn#&IG&k@Cz7E0* z?>2<#Gf#&})6lE-iBNdXUb~e?7hJTW(Fp2j48n~7hWJaPV@A0uj9)2E=U0zg@HN6Kc!=DWNi}wMEAf5E)T%8x>gE!t5h~KH*!Qd+v@*88i3i zoVF|*?T`w2kQ)BTw_HsXy(-z|<(bF+5G@1mi!iLe z1K_a`B|`Oqz5nwLM zYCHVpatXID^r#VbY&Uz}e@<3oh9v9{YAHnGvD1vKxxF5H^F-2SXFl1Y7Ip-RBD-Dn z3Qes?ufs#hd^0f!7u01+Bqyho$zd^AQUYMtR_N|DtE7h9s5%wvs@2GEojA-h*2L4_2d)=j8>H46PU_1Up|$^=XHr_Ck!9z_(L!_B{n+)P%3qfjn3qsml4NQ zuo4K4!F4|Veljr~a@wOQx=BLg_&~6Bt6oKH354~oR7;&z>-lcQCPUc1aRs^D9th!V zQsyUDd;$SM6bEqBmkasem_bPG3>Oz(-D^0)rL30i`0s(*!@912)DJ(AEU3yZNF=3lV?L}xynL_o%_mx-4bZ{d8iPPUYVY*;v zQtsq3PF`l-+#fo}0?5R8LYt_a@>~($%t*&&+7%_ps6q}hA!K1 z01Trh&#IBRs~awANMyKnCah4edXg0_S6g$!-R=^xXngS$A}x1ywsMkS6*0Xvl=MT@ zDtEQZfRQT>b>HTGX+~fTX)vb16(n+BPUG8o1d3V!UO=J0Xr^TP93rlhGdHv$?@~LF zsK_6EXRdxui?Wl8WA|W=^cg5X`kqTca`fvktiJ=~WhGu?;=5^CBr-^3H1E~!6gh>v z%T0^nnjs&gjoq%4S57c*8FT5xZ*oNZMC**3PGC$g=xs8FZL;adUpNUQLSea87>dWo zxy#jum9Kh5MG(m0!S%`^%CU6|uuaS4V`NxuJsuFdSc+fF#K$NBoLl2~`sro(wh+@% z-PSJ2G{W*z;T0nH`E8sB2MI^~zVxwR+Mj9N>(6geH%x?g*<_{+@_4&<9+5F61_>}c z-k#MrcyM{h+d)4(Cy{py`E7V7jdZJMWack0IRK%tbtZ|;f>FP3p5#TYT{goA>AcVS z`Jm^^js?Q4@RF3@;_p6nlVm%Ie+9muh&cswj&MC=1=dFuFxhAp_=&FJA|h^)_60 zuPG>5Pac+?dqS{MsPZDN8~YyR3v8tdEBccU=GURi7=K6tv}fL4?-)0hrQJoJ_tFbW z5qU2pY$c49hhl=V4%)>6#ZliFG+is%)#K^3=L#?}TY!KBqI9r2x6B=4hQ^%u5^%z< zws~=B(=eM)osl49JkC|~SQN1CT}NNz_;62&vRpb@Ofv}MlDR-NH#GR5P#P@53iBKl zJfS2%SO8gdg$@oWh4w9j-3WxId`dYugZ=f@7@0HE0vqP#XmRydi|H&)Vz>8a)P$J1 zWbxpo^>sxLBluH-<-82A+%^sFF#x9)kdA@Lptt!12}~b1q1AvVaF_ZIWT%nzSDPeyHyZZx&#E{Clb|ct z;KU%5cLgjo%$B5q8sSoKNj}?ko&=k7aM&>Mxnn4+TJ-XG(uG@7PcJX$5a8rwBV*-b zt<6mHI({*x1G~Wbk-*Bcthzhq550GpK)xEN_W5;K zF@L^S?N%>c%6V|o64&A~IrDuf{3cYe9-Q~HOP)ec@-COtt?BABoV-V)2VXEz(-Jy; zYuruigr8@llG`Fsnwsq^L>)AU&t@Axu!5$B^I10z<(pjhl2JyUAV7%V;Wr*IOGu|r z7z?1IJ~ieHhq{C@o&Ss}J`ys43-!r`6ir-#0lFQ)xr7;J_A%U(-lh`_kQo}A$W#f8 z1Xk(1jK}vVJv5$bSrj5P6QlDH2SEbW*A9j#Z6shWp}u;H1`PHIM)IiT9Etftj5@TD z?8Wb4E%US?_&QB0`S!w@mB(u?sdaeCY91294oyI)+uu##hfh(0gHnED9M|10cSoI` zu<=lSSk~WR@NZv<>j=2>?d#04fiGsYXv{eKP$hQg8sD@Z7_#r0t+PU`TzIXlCPCxG zzUPEC#xB>&)C!GPP2_bZRA0RB-^IyGGL3)uv8a^ZFLKElhAD4Pvxm>qrhQ;>jm9R(%#i*vTB|203AZIl|(r3F76T5qzZ+AEdklV<=E=x2DLu&a9p>bR1)w3QKun75+{lt_)(jEyyzfnqK-5Fq|?tA=Kon)F3=~Ob^pJm6Z~{HM^Uf zXv|bO;6`eB@TG{n3Q(Ph(afoNt(&6s*lBN%WAAMGI*?nFg0rx!lA9sT$_S!cczzX7 ze0a#o^eFo`7dyd~j5(MaQDdt@C9h11=P;trlmj|uHXjWOs zN9OCSbF0Qt-KH-gh!A?>CwZ3PhmXhjTtk$nSZvE$D|Y1=Dz&@l7IPpE+O9eqi`J>9 zkX|J;27q;%<)u=fK{(V$zdrQ8Botnv-I+x@fq5Cu;?Xw`3F&?pMmmD&>Pr`DmE!?B zhZOIc!Av%}yK6osAO8We@Li0XOsstdMa`gbpMxSTfag@F1{c_6Dx~F`hIbG=V^Ze@ z3c@Ya3}iWhzg)wZ{T6g`nKlHkj7o>zGxp$ijn>yK_*fP)ikJnNW_#W5$NuX)zYKE0 z$6#+nI{ie;Rb6ftWt&NrauwGFN8K4P zywKnOs^6zNBj&_3?7K|ilgNkP301;E?B(fwsXj5i8$9Pt`A*`Qpg}lV42odxm7kTW zg|u*+kM+K(g=8XVJ0YopS6B33@lhC17@x3Ij1n4kfnsg%tpNri!h5aZEtl!ErW?B z7i^H%&D|ROcnwqyl|iWD!zw(T17YD+qhsad3ZpI$2&l?aJ|a3OS+#r4ePC})?y|X; z-d#YIa}f*bSC5l%t8RVhE~kU;uCaH0c#`l;W`ng}qJ>g)Oc$m%+yp3hNQ2l>y%C;L zY;*@IW)T354=Wp_ywFuvdhmOirQAe;<77W#**xi01eCDte;=CV7C7YXc`BB$qDR=m z2y}3w@iZ!DrhL7D!h83})fYz<4QX*IDdc;*hqVq0d_joKc(2!Il_d%h1a)Df8_jaYzI6kQVFO7OhldmsrfXny##?%C#ZQC@9QXuBjuO7Srg z^2Wyu?OQrBDDJpA%TKwRW~*|CGQ@_4HWe0D0&SQP1(OoOhdKV;0u+hm(e~ zD$zxeohI9`vFGRa5V)@90cyw<+V2#D!ddei2ocu;X^whB=Y(!G8g3a`Nn_r6D{Vtc z9hAEp!6DP66fkxG9B*&Zk)jJ z9p<&ItJf{d0mab6l$j8dY69D3GM3Lp#P>8&%Oi77TFDvpnUIN0RyO7HQ4-3Pd>H@@ zWf2pcVqY%7b((1IgcB}i?9nN!;Y4J)gu~>$T^lTyfWWLR4i%4IJgwltCw8Zv@y}D= zoTQw`z>@)dfD-aZ&ibn_BcGWdO&8eRIAhY?)oSx8>iUL!T}*P1xvsc&&|A z)ykD<8a74acvJjND4y&V@aVYOOvmlzr!F%;N!<0e2xQr8l@jro5rJXAIfLBUrjJ*w zqs6gi+2*aqRgVtDb`v9ayy{{P%)g@r;hj4?!=koveWsO+4O2M5{GsIXt&z5gNpO5WnK_adT_4L)pSWFwCfqG%cC93=MbjJMLcH&@7~KxmGxj z%#j$T)1+@x&$ zA!ceUPP}+0y{!1YG3Ml;CF%*|EyFy?wPjN~-SJt2ouJXGefxm_!)VMWiq)`jd6WU) zZh8EvQxOVsgm0yXg>F3LKm^PetTvn@oU>QneB9Vzdf}!nJQ;QvuzSvhHZ>5Ilkqs2 zZLg6WG0=KDhduo*muGJ4hixHZ69#LUJx;_elbAG@ zL1jGTC_F>n{7MoyDOA50Q8X;^8&Pd6)1CCW%uh=&Nw} zl{zA{nbmG(yZ%cp4d~@nQ)a^TyiInMS#xNyJpQW9R(_v%CgG*34sv-8?7Q>mn7X?ZkLU^;tH0t6AAFxMHFM9q2cb$y(IJYmejJz^T>kp8Dnu zHqS*R@!{JQY=*?m&zyF=>#cWxHTXPkb)FTK#>5s5Vo|K4=fT)zeDI$8K>cfj9s0o`s68q^S`hESy5ZZfwzel zSE>Ws>*aY_Yy=X*d7-SMl8k`ED-bly_vJ1_nwrj1@MPZc4qyJ3Auc{}(tTqGJIQ=5 zemeD1FTOAZ*^2$FOUXR=RPYCeE}o0Y z6VzxK2G<5yH_d=$9;jfI#f`-jObh`d_Cx560f7o6qig(h1P>zS~DnX6XYHKJ~H6Vo(5yn$O!GH^`hA z$2Li*nFNjJ?eI`u2k67v^VBH}U$4w*B`ce`v6C>`(H_ggy)mj>1l&>WskfC4EFVB6 zq~Nl{*oLvSLC6zOcZeoj2sCOryJ{!!#{UTLC;XiQC~N&PXu0aaA+nl&Ao?2@h>5*Y zAneuG5TspzLN?g>n25KB0a`0OZ!Tcz^o_l$+u}%`oartV-ng}6wkFU31~j&*X`tYU zq*>r%B77VI$Ih7e@`Wrg6KP@x`ffPY?Oh~EYlh$%GYzT65Qs z-LK4Up!&A`{62^+GZs$#!9+t8uCix9LZ(xg9!KSd?KL!4;hayJ^3}aWr)gGe%m{cF1)EzI- zVWMtFZCH6IDkG1EL{wcXSo~0382t7hEljG^aEs7M<*O`-A#xpzLeDp??PzO%qZou5@G5>e4Uk!^pxjWd(2PNtVoXTS5Lu)(4TonuBDqLa*lk*80pxYCb9h zB3n}-^n~0FPq_1~T?~*ii`*uOw>V(1>uB@1IWYJKZz}Bdx~tU=q*TyRGo16Hf_BnqGKQZXL%}RwNvX z&ShH82)qiSTCJg4L;DRHH~$X%Dp$AO`kq{V*vC~@0yN$m03)*?uZOLui9Bq8*e3lQ zpq&rhoe&fH5i942&LgU}!Y=YL_x!eULkGn-tTZRZ;cu)$#UMn1L1uDd<*@A9|9H|_ zwLkb$KnvJ3wY%{c=y>m7T~=+c&TdWVgb$&|mG6@L2LZzy2`@j1s~`^ zFo*RGQ-&l^>7Qo`+ZwCl!Na=|yhK+0c4t;W6CbRF*hE*!?JzpXvkmZ>@Zy7M`ylPe znolNgb&269B3*ZWPvYFTTnO#~NW1g-I0lp1SSoFpnj#s+;!9St6A7Wr5?n_W~-Q$;g0=jd5ba?oKm% z;WNMLo4lfax8M4f8}!1ODTtW9CU$wTOnREx5^mtW9CEIhp95`^zlVfvA51WLSuWa- zQLg$gVZXY5pL1w-PQHGU2qRq8vbYPj+^241rpC8TAQRu9ZPk<_R{yUfZvHKY2DIUrBqC!fwB}}Zd-K~4#Q!|P~O0d}&< zjQTXt>jTtXFg`mhqeHbTpqTtpKuTCgNsRx@s;_zFfLWpOQ;MB3709wnYKJ?*syoCX zIpU7sYz?b=yAgs>x?p+pnXJILX0luJXFC1=q|MFu`kM<_rLR1Z(tHRxK6wwfmAVM) z$R3vGH%`ajCf^#*msdW4O77OY?OS4lihgQAF9R?E!AAsjDi)b>!bmP&2dhWxLW8dN z$~v4?b*ain7vlV4EM~Cv(CYC1uu53gxXU$<8UZ1yc{S~epg~^rki7ulT6L61N$NF> zBve0|A}qY87po;ANn~O5Xl^P2a^BcFjAnFP4nz_p1vqdQ`IXZEeR*Z_AT7;+1Ap8= zGSeElac@Qli>U#^_dS-atlz9MZ|+y2HAcUf#a>&cE?2og@5;?23906!A}lBv_$u74 zG}a}lQ?|O9!2pl$h-1XU-hX~?;GmaKd-j_E8M zyJU8Nzi-9?dbj`pft$ z%<%yxQGHnwUVSn{0VkO8dQ%E3P0)qD;WmN}zKU30u$dfSo_-K7;T>bvT^f<}6~+kE z?vw{V_u7G;a&F7Iwx3__sRWtex8pyn-jPTBWFMLo&8|DI=FMXG$tolti?xw6``AjB zk7S}xq&OHlNyD3FE=VR~lXvP@m2%?H0DA=lF{M~l+fjU{T7`i&Rl9dW{8PFVbE~1J zd_XG=zy#6bO;40U%9`R6AUB`GD?Crc@HGmVOyFRv1tGvOY=t?88z>{EMvJX94?hSy z5a5!A&hqaLxw#MP(xUihdYM4hCgn`qUbqZ+Q&-2e>f^!FmK&+|VO-RNwx_hS8t?M- z4%FA2J0T8m%NelYbz?YGNS! ze~aKDaHmtSC!0@Gix<}{QVET0JQM6N=`a?^1-+VDgRA-8Nr%S65W~ve0yi4F{O9_v zaR`2qqt@o#Y}$~lOCH5!4t?M(-xs=k$S24>XXmUq>S1prIKww!=V0F!Ot;i|5zdca2s2(VBA{i z-bO~B06#S5mgwRYtI_*nXO&YYjEyiOAt4d>r+Ep4xl8>m)pTb&L3C=uLxRbFl8ctz zT=>MbGH*4yRg3$2`TX|k?qqE-7vo!Iu0C$Jxulys5`eghc)uBqFHEXF8X_PGx# z=y0dI+qV}u+{<5uNnIl!l!#W@#5t9BIEYTOE1dJHp`VlbBWgXH z8!sGGWncHd7^opBoofyPkjwL>fUStHN%KAt8p4kxAn8AXH^ZS(cxwU@)wvpAGvbr^ zw5hy?7|JmqrR2)Kq?$D5wFai?UpZ6=4Q?n2!=Twf$_*;dM=vP;c4_GGq&~ouP=rDI zqV)qFLH#W!06lz>aBa3dRCY-Su1QR>2Qvt9GLv$fay5}A8_Vr*w}y_SWfrGmidjbu z{u~ze{PSQFz4Z3Q%>;~>cwUxQmpF)BUTlz+pJRHO#9G!Nd>}we^@cP4SkK+wrtz2q zSUkHGBFl>Syh91pI=$9M`g9wYH2Y{^8|mwg>KY7r*^_@vc@MUb`%Of+my*W8H#0Is zM{w`lT9nh8Vz8zRi>P5t8XE96XK)q7$>o7O>ew`OW3tCg_0UdU%}QSTzG{>*G! z$Jw}EduXgCpdksJ5TA);q8CI(4Ks6tgqsjkaz?PtDYp1SVKH9pZlG#7w3t+eMWO1O z_mI{)e`@M)I0+J=Y+rVBLox$u!^MSPB+e@satPrR@3Yns6m7g`DksR~Q$3rzP@W>r z@qhIWJKq^!E@ETcmx0Ktce0+$Z0;C;hZLeRmvP29FeKqe#&Wu6xyT?=4!Nd^!M%3- z87#!s^5VK@G8`Y|PF?_Fk!OT9+_A34ZNm^YQ+8AC)PZxLdcI>C=Cf4{CvQ4%G=>nG zcf{la;5PVexr~ZSFTHJCIBAw#DQeo!<0Bl)-b=@OPCzWDYk~BzyB+Q@WjMIh?T@L) zJ8^Tz+_`1sF4AiDPU$8_z?!|BMuqlSN(xSl#XZftsW&})psP2s@X~{15aV&=un63> z7o6s}#t_abrK!0Xv-KntdV`}6J|&T1=775W=*&#e$roIn_KJ4(JmZccI)Z7X4@$u) zN5domBM2IrUd#znr`nWj#P}4-C@@%)aKd5Npr~~zWfJn1f%vy=T;~ItDrum6NJ)&8 zHZclKNET3d_i%c$_hdS2FCqpi4nO5*^EowjQD5{orNcCoTf<+Dm1EOOZ?$w_OcY!FS-B*L0$X{`oA7Jp%tXXC zT^&XIPz1P%2AB;VHR8vLee4sI{!8 zsRW*Mlz;a!{Q*;mwBJ+$b8RdccFyR66d+Zh{6KbIRUzHNQI=g=FAB^YT)Y@Bki`LT zM+l?IG~~ba8hrA=rFz? z?vV8X@1oWymc{5ad8g$=;eg15h3${ALzZ-+tBVlGT<|U@x~d~%5kY)@FE6zoQc)HN zS6K@bm!>qY-z3aS#t3FlHV6`GIzJhVUb5W>$7`FkYrZ9q!4^lig&7@5Pqp3s^lM6J z;)Alp59A_1GS-hZ|2gM$<<#qOp8}#=O6(bciC$%;x$1hpa8N_yC|wDH+fV!fhlD zn;Bbt9E?um3#aXA!^jMba+Zd7+0>-Ypj=2qM&ZS9w~QT06ZB9H=kv({YzEOG!U}b; z@W5)G8W&mUVn5@ns9?XnKX$w=Ozav3B9WxnA+0w_J3Hqot{4j9@)5=(HG-0mZC+B^ z4I#Ucu>jo{t+63V9hu-_-<_c*`P;@nYl^U{M=6VgM#KuBgl5L+)F005P?*Iv8ro7+ zGk$lsrt=F(KGR=Ld63X)LI?-ay@mw>*agAz!lT4l*J}0VkT?Xra~8M@pPmh3EE7qB z%oPR+$#(`z_$92aL#<(8_rFMaNp#aOwV|+3pmU-4FDaJ94mV^DF!xQF^OLK__(>O= zOsDJ>N+cHGX_vMoX@Fej!iFv;dqI zug~X22Mvzbq{~b}+FGD6;6^qPL`Vlf#WP|S3FB1G8BKEX>mRwi-MtAj(7>&@U)>A>g`<634kU1`x-ESx&Bth3) z3kTFfL=#YR)30#$CuoI>(5emsP(zE;N`&UvXlmjGG41dZ_NF|6&NDZhOn$mb%X+x% z9-QO%)i)#;wc$vHW04#9HiEkw&0w*o!i0g9>#dsBZB{e{Wj6mgY9cL0iAf^FS=JgM zhdU)w8{QR|kI%fb2{;NBs z$0zZuRZ>(9=Cd|&xe35T+Sv8md>x+D`#*))20{PNrIf0;ibO7Fggti9a!jx?a9^|y zmGmjb4+St4mzF^EHkNHF9iA)DYU-jHT*j;MC&tPLp!wwTG*!8SqLL-@7kk&M{qweh znEjXTf9Q!u)32>yHPpf1nmJ!$elp7A%Nw(>OjTi|raMoY#8AJ>OHUK3!EWZ%v#z$@ z4r)-3y}s%|ZJ*p9SrcG_uT}R^AkG->?s7TRTDlt!ad*q_z;&Bn=)+$5#k?TRJuPAlKY=nS_fY1MJ=nYsW*Q%B-H9}%ltBEThT{w;;gdK@AQ)B z^{4iKT_j&u6Kk%5$#Grgg`30T{aoQ$M=*XRK-sOSBrT6wOiG9mTBDnuQ*U$LjgY5F z&==OM8oSvdUT8;M6JM=s`8=!0%tm@Ljy;$kcsK{l03-}!gC zaQqjP!OhzjR^+M)4KbKJ+w`7~?K|XH>V@T;wW~9qo;hNZi%|?r1m;! zT3!8g;%FZs1CG>U;GIVT}@2TqsWTM-+`sLn2F3{<}vv98G%$>z}Hc>ke~7;}}1 z!4_;vspQs>!-=KT1a2B-&)yub_m`I2wS{7kj;w4s1&)C7zppw!>@5RtmFNq_V!Hr_ ze5;KU!1w#N;D9#AcUV$0@tGjVEn$yZ?*CUn(SY8WwF;iKX%09l4W9y9_Tk4oQY?fO z(E93{!bpMp@#0 zFyO&#UY7YGQ95-l8}9-!CmTY-$@E^@B<~KuOJY!dxiF-X6O3(2I>7CoATB#vBSHT%{>AA#`@Y zS~Y491-LyED|GCfn~HX0%%q>BTU*cZWHB!m>D;+;$I@6ScpZA?2lV-Fh1ZPM_Y-ST z+AS7i+G#Ue-{vpxE!YP+X)3~!gncCx&149Vd(-K8O#LbF@LUSOWXFaJeUejmEUYn% z*uBQE;xys|lZUVR(hsy(fy6@a6zn8JD@;RNxjh$`UH(por=TjYe;^0#BE5tZidk>d zD?}O+>`>N2=V8x1E4%ThX-0-a6EZ&DlXIX)%T&hU7GL|J}He}HHux8Y6&oA&y*L%{IO3_^m(!0+|9=I~aHb0Dg!=7uF%yH=e^Z|Sq@337uQLsW+e z&6n;RUu3ltcMQQt!BtQ*?SmK6(>TYbJ~WUQ5|&gGf}^WptPQzZ*^DY&jwFmzE+Ev9 z)WMk#!ApbvPkT2|AThke)AwE};<7DXm>szb9~33cjkJwb6U+u=HgJh{Q=B}r5Xeq@aF z|8tLHDAxT?vFwfn`ZxO$Iih|TGheHvQs-iW2gtn*0Suv%^ptjy`0{`qkXQjtZzK9H zELgVHHq@-_Yii!sF5xeoLm&doRAJV%3Xy9y+A((p$er-GPl+bTgBw&clfJo4hFpr^ zEH-y@lDt}dmQM3l{i~u*@aqPY$j$2J%haC6Tg7>@K%M+C`5p~d^e=OjRbk(;?MahX zBospFI~~qHE zM7sfudiWW?ghGx6jOliX_P~HScNj_x3%qFznKm$_5G0HzUpE|h0-mjE!m25`1-gJl zMSh&t483}%oeuqvulyZPh%Pfld>b#Fi>(+8QdYE#AC((%Bpdy;(A1)1yx#50A~+-( zoS3r&wPaeksM-u60UT^yzt?0m1j$5~HKN&I!MGljq!SX4^#u#|6pfK3#0dAkt}KXh z-Kpjj+ke3YxHKO1Lmo+s$+Ewa3?e_?sq_Z~KXOW>MqGrc8jU>kj8)#cid}zI zYf!wQ?6Pc`;)JX%fi*&z;&oaqBoI%at2aSII%c$fNK&t+UnW7uwWq9BoYz2QD0FN% zxN?*=Cpe@K%aL!^Opyu4Uy6Zf zmiUE*m`;1eLx+C!g9?XaQe#&eKukbyv0^P#Yhd@Z5i!KFdZ%fYdrVc`nU5YaURy`@ z8c?V&Xskh1lJ0?ZIZga^5#!P~02J!oi@NR%c4zJ@5*o1Q0c{o|wa?(Yz8Bj@IL*cB z&at4&|1k)@q^hAnhY3rWa4e>tK4>eH+Slzl4d)b9kw6ug*4O1vSH^b@NDu8{$y}^E ztEag$+(hPnLK|02zCwwUb!~8X0M}e>!1r4FAZMwazG|x22nHCz7AC16+xExQ!>_rJ zhTKK6@;i!z2z{wJ-wW zua`aH4Sj1G#e?BfG?8Uv1m1-!@duh)Wl$JVmct7bt6XUI>1JZfIS>H-srlcH!QAUp zUlmyEJL)SzvKKmQv7;VBKHs(Od+dkHc#7dxA1_CHfQyO*V54>%Q_fA!lk{nhS6B7q zc3wuYywl>u!_9Cry6^aKn_Ga>f4mfAd`<)X>P=YEm&20InJiw%<+9o40(b*;w)Exl z8WesUQZYs%s>M?gA;(K%4#I`tc?Uw)3|uMcdaJLQOT9EmlbpsQ z7BLP?tP7U2-zymiS`X0GTsau->}#@3^4F{v8FUu_ui8^?84Or&)?MCKcDrZ7UVbKO z0I2HCV9dVD!e7{j#epdr5Ck7}#Ns^8QkLF^QB4P;xCNffTUtnO*SX$3>anP^S?6Uf zH=rtBF-*}nP)aC(jabL@UiPL3>_i8)|B({`d=v4H8L2Qu7j7f@{ZcogFH!= zSE=!AT}0W(w48)Ppi_v)n9kRA32}C5f>@RktvZ9&W*5y8Pf7Pz|@pF2^VSzv=j_+ zL4sZC*3h9H;TvkYu0&CUzaP_ZtaoE^e%jFonxyBo4!mOwZYYu6u z2Fx^vgY)S^$%UR;i?N-lbAzD$9RE2OJ}`P#j|iIJ1@z%i$ztO(_0g+Yyz#u`?eMu9 zZ`6t=AKb?=XI(Ue6Fln+{{jLMqOpAH;?CWn^9#ADbc6aCpiGECD^!05^VNWOQjQHa zN0G%JunB#7etyTzAmfn=Tx4`6eM4ZeTPjeIM{YfFoSl>OfyN-A=UB{nh0v zfl}bJTpKSf#t+;O?}ee>_^Lxz8AU=v^BhN2q;kP(g--;no1|1H1X1bq*s*-h>0K$3 zL+^52NNl-|N+rP&B&?{8#_?*XbSgx+Emh|afXVXcbm=Xa$K+r5bs}Uh4c_N-cUheDMA5NW+f~&UI*;K3+Jgl z>k#GHfh4ykoBEuSLe40`>eEciEA$5wZYI}=P8%Ucr%z2+4DfW3={12OFMWSLjh30e zpI3O+XfgZskUXih1#hpTPvaCHh5PN0>Ryf2C8Rtvrr%)HHW(JLCqbh3E;Is+ zvYjmi8zQX}gUdxP@Qx=mjaFb5#(?!GH<%8ELudEdM7#9<`cYYNnSPqydBh|ik%bGe znug(?B14ZfI$)W~JfvSDdfxyMl=;!x8Sh#sLtSSO?Y&_Mx1F9?3IRruyXcOLT_}jh z#*GM)q85EtnbJ~MACr^8fu|rsvD(jXMpkQip{9r2aM?QY5#laokEzz&6;!JS8-}}LWwxCj$6Dm`pL{BuZ=F{6vT4%coc;s4#j+OMrMHQ zCryU2J~ik(8bLTwSnWi-(OoQ|Z@eb?-OSuKm$NrbX7($@j$}^=XP5pX@XWEDOT{Fo zQ>l$1y+~tal&j`atJc?LcWMMfbXefBCtc+|s)N}d?gf=}Prc@3nRwA`>Tk1Zpy%U^OytBij#{acNU!_T~qO;&5sv33&Ko*7pX0V7aEFw*c`+o8!}!-XqHFN zLL1a1YUI=lN6dpm16qii{Uvlz`B?dK;?kl1KyK&W$jkFENf&{hi!# zpI^j4$Q7;U?X{cQI_O)2a4?wiDN!2J(B;j&O*&;txUYxsnwieRzz+rz|9X-TJ%#c# zi%lZck_k;yLHfqxb&8a0=^(z!y%j@!4lSi}wk5MMl@&lq0imu~i?6>I@!3p`!$f~j zXf@~Q^5&kS^b6JU5@@6_eg0!98pcN`(vUW{uDL?Lg71A$7_`8(jK%tcC*hz!s%!P6jcnR)g5ot`2uad-*EMBco z*RJd5H&1p+g4oriWd1UjOu*|RVRE(&tA^Jp*=bTXim^ip;p@zmX%>7WQL-Om{=+;{ z-#Hkatl+jf@`HQ7NN%H>mG&dp3*cmX72`5NQNqkAkam z)6R=E?+t7Q6OZX3^OUgd!+6!J3;+eVdd?Xj?86EhvydH&PoWgENEeioU`}-3;$D9o5JL^MJc7t4fC(J(k?S>1qlSTUZ_7c!R_3k7R$m2dO%4i^(j@!DVnVl^DV5ZN#MH)uEdv zV|Y0$GZp=i1TH#sR9j%Hni}AKa~-7b8d4wSS~?hQ63#|^rde3k-ay?|`ae2exH=!V zV;KOm^LBbA>g8rLLx!?sfCo9KC=V8gq<=pR1s+rO%Ei+9FY^8+N5#D5C=VV(i}4@1 z<s;&k;bqMX`Bom{ z{M=A?`}P-P9e`Lw%BuS97~ZyfnfOgfIP0aNs6JgbILgdq`Su<*^S(5DBmd!0QLL(+ zZ_BjGm_(atv#U?^8*9u_m!c0%UDKzzzwGbhILxzGn*wLhFKy9Km~7CqHsL?(KQzB; z+`K23hQlUQd+5m`59}T9*YV|{-BDe0K#7%F^*!VC++vDpfm0<*q~8n%BXl?n=&nia zyO1$Oj1cAU<(p;yy^K`<6~q=0a#+HNMPypE6!Ps}mR^5&vMLkyL*nBcCtrFU#wd@b z)UJllA|_E7s!nO0KAx{~B%un1Y%+yZ%JKfCu(QMZFLh#~nXX;!=hvx4mKR}^8pdh@ z;ZrV;Is`LSS5Yibl+Nd^%jOn_S>w`ku%hL3BdK-gt7L`x@!5x;1Ul%9g#v>MNtUO= zq{@IPb!z3c>f_ahU*QV9QK0mt4F!R~_4$R6AuMr)Rf!`Hv~go)Ms;kJrZrpaKK%Ue>Z>-nY-3LP;{3T5{S$ z3TmkR^6j2R&4W!b$yia(xi~b-*-FP3+9Snp<&W0v>F1hr5cruG$l5!e_7g)T8?-s) zp%oy*rAK=Xk`WETd2}N%gk%h`gPR$8NK--}7pBCgVNYoHia;?QWh-FSe^Lp)+xbM; zKIiPLMkt~$ZsI0P2?ynjm&zgjarc+TzRwyZdEbCJ?~6xI;^i^@B&LS!NB&4r)drZ7 zWi9u?_saYX2D>~&5JcALhjvK5>WDeq;}L-Ygn|)UU-hGS9seT78@Geg(`fue{Bzt@`Co z&~$x!<^Z&R-LRN#owW5a>!@HrteV+*dYv2ZPh%#jMxSj{h1 z7;_E8BbdZW4>Hg1J6{*^(`*uAN5u(FpcMMB9-){+gTUK)ao@b|$>eyDWI}F$Czb{R zg$0q{xvF5OQ`!?ox2Am7R~2232C*1(?^wf}agqCBVG)>g97r^fs4Ql3)x$~7#UjD+ z_#kX@Q6X%YQ2iQ8Af>6EnCXQ-EzIb7ugf#@0U3Ey6C(+dCs4|Xg zp(HCb$b;?z#p-jvY>ZfBRacU-CP1pgHJZw=c*Yc=K!u!m-3Rqyvz`cDZwJ8;_V~dq zhg#iP9Nd9k=r3wf#nBlckmT&p?9g|ouNSnq7^FbnA;r%d&DP3e62zwvN-t`bz z{5kjJSnFWW?VBFW9=Y5mQSKX`9!f>^KCyX3Md{3sCFvQ+UrfpHd}xL&(E&ZQYP_d= zwv-(WKExKvR#_d=VH8Yrwb#z0Km7{V9Zdz;mh$fXeJ?IbYUiC=_5e^18hC(=EPeyf z>wj|E2fII17nksNv*C>$@DQGAJ`KE`W4Xn4nxKSI2T#86Q@(Fw;MS@JM2FJa!~P5u z!6HUd0_1eG-RuX5SfvBE9};3c%Y$V9hVj7pedu%V(1A4^+zJY(zbnK&GOa6hhlNlcLdycy zxNSEDF_aQYAWcUxl_kC zVr7RnTcvwbIZfr1iWV~~oDW?1lPo$TkYd&uC@FJw0N=-x_)irJ)2}cGuoxM>Y6k? ze;N7tg#k@&zzyf5v1Jm1)n%JbP*EaB(8LcV_kN3k(rDsFSq!6z(tYp)iDTHQ73!cq-E{APo#BSw2MITKb&cD4HX~XJ$ zoW`DjeWsXYN*Jc8`%s!N$4z3wNO|qnp|g17t7})UU8$JzA%edE4s-l+&}d%w1(#6Q zKA~S;-+&d=GTZpAmh|(bnM?s-wbaPa6Kub|aO zgUmxY4{c)Ep#22xx~#&b4~&+A?FWaRC+WkNhuXes)(qZ;H*nA)mk z`VH@s_32E#-Fjm}Ax$Qx{E%WO&k=fd{`@{4kORZPHWCQ9v}&tnIWL$YKK9wI&B~}f zH@)@LNT#@AIdh~;qtCv34|5V-4o_r)z&$ZX`MC2nD=P!Lb4w}ms*K`@jpJ~DuxiPA zle>$xCSak7FB)~wc<)XBqIDsD?P(tF=z|BmyqSc=8-Y$18T%yEUECTQ#AONbl|w%$ z(NoLu1-`O*i0-U$4ar)X-Y9BO6=d(i8H1FHzT^nvks*+_M z0L8j`$0(L5`erA|9if0@f;HbnB+FH5+vN&7HJ4B}_;9&ew8p1#+lOwG&cYrMp=j|V zaB6889s`ysyFT+Xe`5^=>)bot*a;p(IasPkBA6jd_`4ER3$mG>1LpL54eK|2$-^-#%Ff&~0sj8_J^)b8z zbjHQqP9iBs6$zVV2P%@q#w6l~upCahH6&Z*xMTMlD?Ai@)BI(!n{}vflkf0>KT$B= zQ|;=Q9LbYW(((!&dvZ%(#VfEz-rQ@hVkxe)Y_`2LW-XJ2?P{l0x$^2bE)$bB%jsc`rcS9yIjW9o|#$^nPqdZIQdcogp7@RM*@R+`jg zMQJs_uYrn%nD}paUK6x?r94GVFyf2o6@jnuqG7k;dd}q#a!fV~+)+8>OnB)IWEl_J zYORIaQX8U%{3eooBp!Na3#PeYMH)Nr(6lCHogzGW>*3W>E!6|aFKi>@#@nYoJJv5$ zzC)vaJ60Kj{$$D`yiZ8uQg@}1!U}yxPJXJdIL!D5mgUobLXmd3AL1EEdfB(b&h>#U z&HsN~dR@r(tS;eThZR&Cq2yvKy^!}Ef;-mEg{ATdA2zAw8!jL~7nj86qto65G}A}t zz>Q3|C`(UonGTYq{WS7jU)%R&8hMY04+hHfWWr|pO#=+YYPoM~W9a4D!r}R&yvgJ zRZ=v(7eMBJE@j>0S09iDLF!TLa=abhN7gX=WqPTc5{HtW4I5r3w=51t0Ys=$WRG)X zW=VxLxfkO5Hs4h5&y{p;&Pt9cf6sYSlvg(&iE)=s;SIFZ800H$P9{kJ>Xk6=M#U6tNw)%I4+LV4`2i^$|r5;bBkf zJCsx_Qnz{$sDQPmrk|;IujO*&FMFb`G&Fc~$)q%~>J_;MhA9UcfhRQz#pqaqtP@Uf z>r#cXxf!d4s!Fi4dCbii5D;6}u%q9bu@6>w2?>vUQn-mYx6Xm|#C}zyL2{`(1hxzvUl}zkT%P;}m~?=f(gpbWcV% z!~}+Nq4(XXsZGDDhTdhVW5oF{aH1r4VbTX+NdV((EppFb<<&ziVujxxv8=vP66;-2 zOTVYG>398nxp=k=XLAt%Gt1>4{73?C;|-VE1`VM8CzB;4DO-jA_od>uozT%0qSPY0 z`C#)_gV?wI5|D&+zl9y~mXL$AY$`RsTPU~YKyF*lfD`gYLC0YaeDB)7l4yHp`htyb z(leA`DXC3)9BX<2gyMP?b2*y;=qP8ESaC1F%q2XG&JV=LWxeGVThyu*&m3)opf+a9 zXkHSFLE0}WIPtk&xw|l+As10BHrybl%D=^mkonKzT-M8FE!19}wOtwl`ldV{9Bfur z2kwlUITH7IK`X|`#OM8UB#hs#Wq<5`vHr{Y5smorr9?u6^dI2}+N5)c(?c>3C%Dao zN?i}37q{?A6;rc3a|;tOIP=dkM@!QU5m=hg(~RQZ2_j<>wX$%+b*a&45_D$BeB_=% zzQ~1rS2a58XM!@3xiO8)7-AM;s$A8DY19xoT}W*5fK*3G=EA`2-q0O&x)Q<0zqH`@ zIm+CD{E8=^pWhpVLTXlv@S$OGng-{WhTjWHk`I&T*nq9MC73lRO^_vdP!}Whkcm0* zkOc~`YR)-_;6SZxQZy-iFe=UJ&8xf3gFQ%3OzKOW%~EJ^6B2PL5580a7eAU+CJ$PY zW?rM@@)Akm%OMDCzSrRM9F3errqBS?^(9a`F>NW%uun5Jvg$oOXBOSnVr%7Xz7ULK zpfX3@9fxlHk@)>rr&Qsvztv}#I!Nddx*KW`qiT$=ibgZh@ixy@{ zU=qDbxoU#Ll0Ke?a?_a$I1a$r6kUywe{!sn59~ol7v^dJQU~EJNu4nJm-MTfGz#x1lsPTRXjpE2iG;Q#&}n3EAF|5 zTsiH<=dJu4+`*=2JJI9Eb}gq$s`%1BbYIxnB|l&rV#S2cORSG3y#e-;H&5IrTPBMS z*6CNoZ}si96^?41MBcMRz#QEHNHb=XGRt9hi&B|#slg0(I_cHg2;*^kVGf!GtWH{k zAn1F+7MLZBjl50x8INtYz~xSq`jb6m;5^I{$M2IHYtpEfKzrD} z^E#H4hx8RW`_$}HXBeFEy8A@RVQ;MDpxY45qy9RjT<82%ORs=ORX)&0*oX)4qUqZP z?Ha177@F!pe(2Wz$v61y&qYA}S<%`%IC?lCco35uR?5#hTIclEsy-(|cr>yN*jD{0 zxYQ?IE*aH9FqN$@nBhXrCDNT=lr0s$(g7v9P@)WhKzP;5G|~X+2JPp1OFgL{&VvCK zu^bpcM%!PV;X{^@(rCRUSS#GMw!*HHEKyu28w)#{BagRY%)pZQ60>VHVguNb)vj0v zi}G~+`rCL9V=Cc#ZZ`d!oNER}x66#i7|K zJ~H&H-}&lY8?iJQlcwRuAU%*tRF=h6LW>xkFIKne3n~7<`jE<<8mrjAMogZ!rsvGr zNorC=k`jmI5 z-|GBe4(t-^M4qsmbqu+z;jXzpYCun`js5kNI9#Pw$%;qYl_`XSdHjpesKUT24%)h8 zZ?EsEB{R?IG~CCbKZ~?97@h!sRjHln*4$F6Grc~fJ#;t^YSO%mLBGLcwo(y&>Y3MT zufO2r62XP09JJ+gLRow<{v||;Ln#C~_Id!QJFPx)PZAarR_`s)2gD1F2wLcZJ&EgxTX#dbnOwCPD$PzBk7VPY(b|xG(cbB{W$gc)~2=@j# zn+#{A2%#35JrgU1grlT%YbIC;r7~1C(1QtY&W4-y!^nZP)PR@?-&w>03hl77pQP3h zY9_*B4j^=R%2`fMJ93d96D8>W{QUY15wyTk=$d`Zx)NxI+(P{EeXx(@i3%o36kQ>+ zAj@OC3?x1Y&y3;)m3<^9(>L*yuv!nJ$gC6!zg2rc$dzG0{7Q|;Sf`^3a2EeX5MTDX z_(*Ixr_@g^=R-XVvvk^z?gn2j9T3A?>0103;7bP71g;B901ZMWJ1ffPjx@Y1_-9wm z?l9-MT+B4ymNnH@IxRH-f!d;wrXb5BkN9^JEaOBCZq3u9o&ZxZybm+Ka z(wjUB6Ko59U{ zbb3@8$`z;vh%Jnh!FlxZm2{yK9Ro_)tLi=gjiJI(T|7r+S@88cP}o;fD=5#+~|FcXFZq)sk2rGc3|jT7Fw#NPfR5f zu{mE+9ps@e)+=vk(``=xP@eysU7^l@;b9DDe!yjj;hH}zSZ4oTiDw`#HPo(mVdg;S z1Jqq)wZf(}^?1CaYr_ZbSh!cx2A!sYgzbXlDHp%!F`nwzp86NF9y8&uCiK-ScgEe{ zHDG3JlkawJTh-EyJXZCur`Flad(YCP8qSug12Ifk7aw%-E$&-?QNLjg1!+|#jz14g zE|x(0C%x3fO&W2?0bXOFLF58|`5pGg+`>lrrk>#)OIO8ym88R>S)=jfdJV?3Bi>xAl5^&~~)vxd!Uyp}0XgPj`NntjCdDe0&+;u)|#XkZ<>T1cRHqO2{R- zuzpWdY_58&?zx}{dj@)0Xa@XoT?IHXAA01Qs@~>_i&&RoEE$$ogL5-m?UNU^wl#!u z-QUaZChw5!)Utj@*!^G&{-ser!GK}ahgmHTFXO6sXEk@?AHH>|-l{|wtC2}q0ygP2 zpY2EV*iv2LN?*YuE~1v}*1lSQ zb5+;cyczyOW@TR1Y5@n=6Gk}}g%@3Yi6rhK>bsCrwKkzoPok>1jSJk&;+`J~2fKra zn}d@2l>A0=#9q46o?-OWs<<9jye68EzUpril%;OX&X3Ks>Qd}Ep0uuronBQj;+y$p zme<{?EQjGtd&>f>6z?$USCfiRH?A2oPD(XbAlQB+dR;Td{1%&~mR)-`Hh z|LQ#$R7fWEi^-7#Fm?}jFkN}lk2G|rDOOnsCc-j(c_r$HiL@RzR~7ppZ9?y3!boC2 z_w-CCEa{H=PCbb_uPpb>fr9X*H=8@ZBa06M?mL3Kuj9j3`Jl1G;=GU-%c8k=fw-kA z{JPXL^0?iNcw1SZl}?B_G)W>UhOyJf^6h4NeP(l;)nh!NB!m&l)&BXvSAyIT&EN|q zicAq@wcRn#15WeqicHfrkS$5h4B}%jC>B7uizI{d5Zb|fpF@+eG@ax*aoAjyfGZgD ztF6!>LuGYSBLS8HFsV?QvBWds15h7OJ^5GCaWsnYBuv=yT%S)C1^f0hE6VkyMb&O~}_(&Y1Net7UT!{2VHFV+Ol> zCX~1TG=ewt*g~veVXt$rqu_p+NIh{SD2*~I;am}`_q3ujJC2) z00a)a+kbK_AuHU1^>7K2Yrl;+{z+_g)i>lWtuQw-AWph%q?yVd&1Ka56Chnq)ykFP zI<%6LwRK?lkqnE$l64wF=n}`;6@I;VHkaQnDL4!UOu>^af_C>Z8pjdgm%UCisLjs< zT#%~~iiSmjoa^R0bn34f4Sw59?X2_LWEZ|ISistgJ7F>2i?eT`G$-m&l_22`6ZxO( ztFGz)Fb*KD_)h8moEDIwO|F+jFxEKfw}VNV=^gu?G%@`Dzbui=W6or{s9hS9W^|yB z>;THBWj-Wm%gW48%4F4KeIyw31-bLlgHAUI}y9F{rFW zN%F)~H=qEPEr4pQMCWE2kvAZS#;Ib6`x`5xG+r15`2UqJ^x{CfX3c0$Yc~0$z&!-({f&7~s9Br3aAZdwe4bAuvOYG` z3n-UxLD{93oxCBgB(~@}q)s`M43$zL)7D?!;1z1TlWdBU6!0olshVUJ8hFo(7i_Tf z`4$$GT&3Iu4Dp=3srFc%PQGBitOZtmqr4~AYCdDyVc^TP| z$2d)qV5P#gSm+EaQShN0*3V)nQnZa3qYv{y)#;f&1R#v=Iu`qsTCw- z3cv&rJpwW!pI76P$+&QD2Z3$bl#ObJwRcEGf{Hy+du2};OG5spR->aVN5v*paJ*Bf z#g<;es|s;iV9A4iOlJR5&l`9x__@%i?dR8V^YDVuW^-mQ4^{0-_AR4LO{j~$5O#)T z*!*aGI7dwq)J>oX?Sa!=r3b^sony3q`e*pZR|6qI8xO>)Z~vb@5ugm}bYULJ$_-_| zF0%tTF&8)vn`4UG>{@m9D}CC(^(oPd9)5ZFkQipcc7zw2+$7%*r*x?EsQ2)Wf$gfF z2$hCP?Vo$AE}~6uW}6LVOM*|Jw-ETAERMhpeh4JicI$Y30$Y(mT3#;s@fy9#)ZR7IBLY#!zo1WIUNvLhx+6*2 zt!7CIdOLIuvO0vyHA}Ah2wSj2kP$4!4=|JBUAXF4%Ysrp*Xk_~K3hK!6zclJGkqO9 z3trSAy)R$%Rxz`&o2FChV;q$UU^!6_urJ!|%pT_iK(au95I7eSiX zP-k(O)j<#@-HtEt&AXP_jCy=UZ8?rON-^w{cWx$|g1}AZ zuX+N=fR${daiC#HFl~exnm+|3nU0pu=SC4iKO*zonv%SQqOH0H_aVG0^`{^ZIDMbQ z1lX8b;P^LYp5rPq!<)q3)ykf`>I4apt7@Fa)cj4?JLE_=MFdv;R)e{u8dr@rtI5y! zkGc2l9X8X1G6S$GCk$hx1j(eRy%WF*n5#=LbnEKZp3H7`)102bb=38hoLtnI`k88~ zN5*&qCMrSAQpjgIYuo6;<>Re_*pQc}(7EKz)z-i~3OD38(&kEWS30FNS4&&qq1I*a zeV9GM^95X7xiX=u+&i+F0xdmrDV5gGctQEsOoXpe+VNY%C3!&gXjDNOc}imsz2}9S zaoKwEdkx4L4(B5EK08Pfaamni{_sC`u3vUxMN9+mNeuz)SN0cdQWh9^{({L;*HZh% zHht?(mWN?K=sY!{IIkZG{ae4hFPB4J9N<^(vX>voW0iHnj4#!D%l15)xFJ#oKw}?{ zXL^Pl((aC3%jfu0qp=SIO)~YpY;CEdiQme`qIJW7SAEj6T6oc~z3HjrfR!SnAJ4?7 z*>Hp9h#i>%&$*1Kn)*#{G0V*|q3Gk|Y6sAW2 zc{{+;TSZGxJ}0@Ej)^ZQA{orW?K}~D`d!yX7;ncui-Xv~F13=hdFx1c>Q&EOsJr>% zhW-@Xu`dGutZ$*iH0Sy+kl56Ou~2;KlO^d?G8Gw%PXQ9H}3m82J^eA1(tiz zPV7ixb#TOg<429Ddc8;KxqDbGuCH;59tR$rUGrts>qBkcNsD7TuwlptSlBN>B|aFo z!FEI);&KEG!iTPKVk;BK@#0vDaucvxyYn@RnG#I03vM>#nC4ms zbKhVwNb+Z*M-JEJ_ zIcQ~|e_NlXn}7f`99B^4h>qNggVoFL`-n*Os;t`*FRVtfOjGF6p48|31}y7wOkc)E z^<@%M9STB> zy)!JRs@q$kC1EOfWpr@W)a2nL&6rmO{H*UgAB67QQdR-{hO$X|jW6S54!(TuF27vr zez=Izn`I${W*Zoad}@|CX;Wi$IliMO`et2R)!cZaijiXV^NbhHBMzc^~;;(6*=76==b^W$beGlu206(13Eu?DtLE^Aj z$9wJSz&o38p8arx40qb30qSWYhTfm379Qr9A42K+p_OnzU!9dk{?03HH{fQPh_`Ji zo795zBltfnWDed!T{xY%Lo=ZB4u=D>jwUv5dNu4e&mABJ`VTz)7%0W8KTaXDzhX2* zIID;eZ!lNoNsd87QdHK{%9@C5Ypv$JP{&Dk9F44YBBS;o^k8>LO|@A_x4i1_rq zRxNj4<<%s)-2WEJFJXl3XY+?A=3=ME5Rp7eZb!U43AN|!4}Ehl*}bK>*K|hv^mDk6 z0G*+;^-&=|Jaf+3*OfZ?o}2Th2XY$f zELz{j;aG_wWQ50PJ}W(&rDzvJC#elpYmmGWHe-nboB@*ZEtorqQ=;ry4nmWv-m8Au zKW77=-B`8n7l?Q1>NXrFs0!6%l40uBw1q@No^}ocMsXTI7rkk3q+Z z_V;s7$?REOh`EzY@J$=}gkk!s={t;O2_vdC@01(~Sa^6f-nlg^{=PlVbMTl$WRVq?**@XR_grFz=&T&^<@;<9`qQs#{rSy2z_)lht&p5# zhDQUm%P~F@c%6AtCjF>;-aKV?4b8zMH)g%ml?W9N?Fmi9HIHZC2d|k_?oQMFYKCXA z=Ri&3mw2JPug>sfSX!^%O5VfOE&2xYl|jkRS?71UFMVrtiv+<87<#Q@Cfk=cm4}`g zM5bjy6u2{bmphK6T_(JmMt(a>QT>Q?zh4rkU(I^F^_<|<{;CTh%~^XSqZA6(W++Ai zB^5%mMIgW{@!Hu1xR>rY+q21F=P8y-2r>4-_s?T}H5ea~P0%PU(R+^t1*gZHSF)vdj;F^eVx4a($jWCI_70RuvIy9<6R$nx zBN1~4G3yO4*6*_(sHkWe=J1p`0P8ScQ~;3OQpp#m4#_)_TMBiJDRuHmuv#vyLC;Rb zIDM%kVY3a?p-wv4M+E1p?78W*5?+KPUEC%j@<84)VyX~e2<6~$uA;%_vBE-g^Z2dA zrH7K9WX`mpjR$J&^tzLYu4rXbH%w%rM zJ;JVw_CYf{0N2|>xsJs1L=?@5!<%`xL1AH0eh5y@8fbG7n_6i-{0-pc0yp-e z(3(3IBep)z?K(ZtMnynX<#%33_(-6{9zaZe)TwJA2$5pGVkQ~@g1IbKUS7k9!%_W( zvxiK>6}YFU18&txM3XzqT5c0P=G0PHDO8fE@F^`uhBme?rqRTZ4hF{fR};ZefeHcT z5zpMhr*=;CWH6AAUiy$Wtpj&vs%aP(o_g>&5ZKte+W%D=Q|)~(Zi&ui^uEKLy4(k9 zg*Bs8OB(%~Z#rO)UJdXA% zjs4$;IZB_*z#7sryC?LgdVXIEyt~8q*I?aFG=r&EKe#zfYd7~-XpTa&u5^fVk|nwj z`n&7LkX3@2OwdIa>N6P>hR()1I{E)#g)jk)_&*<-lVY+yfbiiqgon5LlEiI@a#l@4 zDY@L-DcM&OD}$%WEocH(5FB^ign$_tR#U0XeSEZ52Ul_fGvIg!?K?BNe->PHQQy3Qf9ye)oA)h}`!hQUPisWEv{yvkuegIUX5?x)h+6 zWES>foNl0?{EjS->lF6XTR2ZG#VR9i!R)jT0mq3wsjBHbLuw1L1l2xrBgm;Ycz2)d z`|j);+iS$M^*t63PiR0=#F8c~H>6j!2($2NxW1WF*i|uBQWu!}hKZhCVoBHbCP8fV zvB#Y*Wg+Xp4+&HoN<*`rpI@jVGb}?MRkM?OPB(z)kc(Von!`YBnxO{Tga*d8cDbgm zJ{nn0SiInpV75V3fd#{>cZ+r#o~3MA!~*Nm*Wdxt15t4 zI`gGvuUBl6R2B>?#AL&o4Q4`W+_g6Pb1Tqyb!7(@vQd)f+RLN0 zrvwsE3VDVnuZP~NQppqK^|mBLs-uR~9j<}~V%^vh$r1n&a{?uY!oVbljbOS5hZgS% z00Nn{rbgZC_uZg9!T$j|>z^Lb0BnyrzZUDv4?Pe(8aC0-&ZD`tqxx4Q2YEJ>N&o`n z(DG+Y*XHh3VVJ*O%M-rLNE&o9u(Sj*X#ip{C!EZNrPk_{JYJ-=J58Hgob=eL58*W* z9s;Cn2wB(wHeH$kXy!zesDQkLk94n86~Z_n+9-y>5G~z=?lZ(K^iU7~?v{5$FxR3T zr|u!K|B`Dsc;GWh+(9jJr9zi{)n=Ff|Cj7dS^IE08lxCn39Ygsms#cgj#!9CeQI2-{5auSs_o=leNoY2G}y$`%;{#& z*}v_Ba=GvijeanSN_~Y|Ox0PMKmLZ`Nm@8MHuonjA=J|3*9gg_)vTzSgYIPBQeYk6%!MmX0We#3V?TJlq zbJz1l#U9w{d|q*w{fzlYTmEPos--`)B0a-PiH&O4Hb(ZCO>vLu}7jyX=4#K^z7L^>>N0KVx}2Bjb(+SpOP^GxFs+(s$8 zx@>mL%Ijp^U@O&u15Zpc&30(yCjmk(?vb3Rq)6**!+rkzz7_usu76p} z{&1hP&A!DqOc#(;F~^2KzZp!H&8{n|23WB&Ud?F2HgZElves7~Beh-g-OAD4-M?V3 zpVMs)4p$!I`qfzyJ5l4#tYfk(`gZ;8+7q^>^O{6S>mb#^j0ErnV$S}_yV|le3(2^} z2*~HClO_%a5Zq?crk zUp3#s;s`;w+ry#%0VAXUYnRKPP^&v*!@(grIA|oAKD^c z3n@gyI@$;un#~_vK!5tsu-4&gJ}Lok=fkpim8&#&7!{+dRs4MqW()`um;1y9c+%8* z1v1T-saLJ~yWTXk2)R{XDSxR%MZDC($vhXXe64plCB?X6 zS*7zKT~a%@6Zt%(tkGteVAPC~cfx2jJ}5U5J@|riPC8@zy9FZyL^|GXl6_roSFE>} zN!ti5mV#jnTQncNT6a7#%(GOgmxv%hVIAR7LTzep3ufD_FPP)w*6&z_EQOOS;a;O& zpFAfF>8m0s??)qsS-jO%$G53VKv(Agt6s_)J{r^qJ&o1`ihVKA!)hz%`*!r0EoVZb zxuYVQ0{Oq1h0*-L-(cFR08>dL>IA}mY!&LzB4#oKHV4*?#g^N?WHsfz(Ptg6~ zM{z&#Qt;mpV&$!@bn7N>T00p+h+YPX^44^eJT`W$?4$NZDaAWwA1UfnV~sRzhh)AL zM_0Yd!>@PZs>Uo1Vsj1aHf)UB`Elbms;N)9M2pmS&GVAZaYkPUs)7WRl;)V_#ggZK zq0J-k9o2Ibu$N(`3!5H@#+oMV>v8gKc-4z904bEJjkkP9zb;S6rZzsbG*OG`z4I%* zw`0KbDPN{KELH~D2pGq^`*wZ}dF3-@?w47~q%K#9{)Vzu#138Vgl`@hs2LV40N!~B zsN)@3dkE9H&#BR~#DloUKH^XfV#r57kWG`wZqVS2QeyQSRTR)!+2=`k=#8tgn)mj0L$kQOp`$Rc)g~S>?8b6_rf_7-nH6Xh(g_lB*%fs_9cl zty~GaR|)IDvJbo3K!&kih@5uA*?8+EK{`nmt5ET98o-TdU8M{MsfoeNZXI)mh8_Jb zO4}b_#^tMdC4)4!E*4mI*57z}$ft*^6*x7j6DCU>kuT_Uz$F)B1dv@U&G;LGbKW!( z#?>pYO>e3rfHXL8`)1A$zhW`5Np1E;LQ=U=^eXmwO0s5PT<^N^cSdvN6%_ zz={wCv8S!U(Krw7Wy!iCb58iueXP0UJ}V&?GCI9Z{6Y*E3U>C(xx^5j1LBm}ODTwn z6R$$b1Cz0s4$G@)e0nsfp+gcnK;6|Qa2#OcIlaQ>Oqg8X_cRlv@hN*MLa+V`%wXK#W&MQZiH@OX9FbPB_uX79 zAh@1^STp~j?*$=DEM>RXOd9OVNR2UxKCDw?_u;Wcap~@t0?(^Zp-3QN%06j~TJCcu ze>MXb7vu`w>B9F^k?MsFek#EpjPpDI+v7afDTjf3%L16Bsuc!F7kA)|H!}#@?w(Sq zZ@vRlCPz|5yD>!4>HVWnsXI^RB>nn)!TSG)eY%~^sh9@1{^A!-0+Lyw$89~ei3BV% zWn($r2bpP<<#MZmE2E3A(;}ALG_xm*#aD#0Mt4HG%|X~_eAw)Z%Kv8>HspVUSZ9Uo zI~Fhf(_q$N(xaEZQ{w}R7Gfcbsz#5GNeuu3BKS7~#B(!(4n+9{~f2mL# z&o%HBMi7g5kSAF+=iSmBlDGn3audy0J3B9k1?p|)mg>!6wYbvgf1q720nO6}#E8i_ zh#AU_yF>JasLHO6ZL!KiRilt;J)sV>k^%IFzGotA(N+Qe+fmm0$HbE(@^r5f3&Pu> z9Tki_1Z^9u$e||m!A*MaATFn+bV~#2hiR5YvF({XwD>Ow@j>fs@If-J^ zO$xFxmM2izcgW~JO#BT6wKEyy#Y$Cxpr;2pi!Y^n8zGconNG;yb~qb zi)foBvDz+1l!qqBEGbHlx9=AD$x9S-gl@!eSqeir1>%9dQ(bTS`Mtmz)wE-D!3}BX z6~F-%pUQp8RghTjl=+J9sqox-;bXVkIQG-7!Wal1o3Qsn!AcqD{8_$-6G7b)#AK?$ zJ2||=X`o?J8wdhlbuYiU3cyhh!wldv^@&B%k1E9s;O1egP}R`S3r=fO$TYAnTEUuZ zyF#+>YzT2c`+dnk+Xo|)7SGUKkpKwld z8aW)PZ7hXJ^mT)0Nt5Ev;b+*A(ohJa*&0ghs7>F>|N7ZFN)~r+t2lYqHz{g~lcy{v zRYOfC=5gtvn+-%=j{%u#%Z zwF>QMI*e2|qDLa81s53h1QSj~q&d@DyHUBia_!m{I5;b*k1JZZ%FTuEq-0sCRa7z? zY)~6F{OA|@1YJSDV!E&fb6|5oDfXi|V|^Dbp93WK>PrWNgRd=ZAL}nB!6P{8N_!aX z?ApVsYV0?^G7?ycSmTGW+8=yYzSJFBG7_fejj z<6H01Q>Wzkg8hafD1(nYq!OW5e4RpHuYOiakgWP{-q;Y&KOgil3VHaY9~^8vu=y<- z=&YYUnxv3ZTI(ZUuM}fLCDc^(9X0bPhizlSL_Xupe1k~koGEc6rhM&+bdDQLu_GBm z>>65Ky@qrL4}BbKFd&QQ=azW3Df4;u%sdkEV8d3~r-U#A)>E zi~Xv86A2lq7|)#3gFZIrythHPG=5WfuZhUbJ~!XxU%r5#>|h;^3+?E*lZ((DAqC?n zZX#A(nsIK}9iYGQFN^Ckyv#h6FfRmpV#d4lYZjyK?|P6(Ki50}U8&2-e5Vs8!?+QO zW2GKuWADt?J6(}VOl@0FK~&7~qH{U<(As}@5ypWH4oT@isJ_~!1mBC*&Z9;*xMwtJ zoX`)aXfPQY&^S-wy>8NBj}XhyR3H~eoS6ZrL*8J;y?yc^Vy|4KgZGD)FGXe}2w)BM zb9L1yMKnQsLLkhJr2Vkzs@yc!%6rtUh&QsN{H>>l-bgMc5q!vyhjz6l`s?G^%^@c1 z`T1qqV9d})LLJy*O~4CDH?YqK=`c++*Lme`omUF=;Y@L;H5aM2FM#U_H(VWK@_)kx z75sDXU8_2g@Owj4*VLzy$<(xBXfHCAC-ws1no5$EVApf+UEA@sk)k1>Kl02V5Ov;- zle?Znd4cX2=%f1DYOM|ly?KZC03ET5z~Veel5sBi#z z94tgypVM+-a1Fa=KKEiaB$MV>SiR)#Z)rfMCLaAign?HhQ9KqCBP=$cDl_FYPt z3DSNElnx0occ+E)%&#FF%{w9W>0Lvcx}b^5q$bo9=pZeFRe*mPXxJF7ON}H_*UokA zyJ)~ox{;b!?36BpsbcB^X2Q(H8O8cJ_@CI zYN&Z|@EYWh9{#3#(I1~Rq+)j2E*l>*2ppmDaN(uUhVg37ayrdhYnX^o6%(hvvItgs zH+fsCkfDm81;3;uC>pXvvI?2eZ>C^aPLJ};B_1KuvPw#o?oF?7YeviqZ~8qI-9qjD z3d6V3k&;pYQ5qKR_`FRhL|$BWG%!yd@Cn76!#Z@w_o+RaV8sMyrNNZc&fQVbj3M{O zl{GR1d10V~3YyKG_j06c9(XWz{S+q%Li78M$+4771wF;eULWy$2qZ?J@Mb8Yy%!5j zogVMOM==0^{StzGnKoQuGUTqlS5aw(ZE1lOE(=C$YIUm~TXuxQp3=s~5`S9PtF2$* zM71Uyv?T6Zs6!%<3CuO6d>ox$_MZ|eyE3!(gB?g2E$Y-rc~{B{-Orhiwb}UR#oz|y zRg!dm^{^=rEh(E>Pj!2;l>O^4gw>nJ-xEh{)&+pxctVYzAnP5r?4a?AIlCr=tg7l} z082o$zm4kEZL76mHZe_o=lRZ10`tanRVBrZ`d|w-rZ2Jzm4;lL2)HW z`vkPNJQY0?N4QrO^ug%$r&1&gRy2XN+p!9BDuY<2$aA#Q&^rBT>QDy2ihMC3KK4Cx zgE8i82g4QaP1Zx>w>b#^<_>+Zp!vfO%nNz0VYfX4UO(eI#w59>$Bd|X|fjyyXy+`ZL{M6wWwryw>O(MH)dK`Xg#pn$PL zV}w+S!w_gM6($@SZ(S8To_#Z_s?+gtc7-)vp81fD48mrGz6lAdb|mmT=6RP%?aXIL zQOID<8eIyFfL{)$)ZyU_hjURwZBfGa&n@MHTYRg|461HB@gX%lQUoCLw+Wq;=8-y` z{m_M8=fK0!MSM>vv#u&%ApR0$Ru%y|PdADUI{=czU)EZ;iQhS#^JY2U8Ya)Ou@3## z=#Ddd@n5GQU_MPtK6Gt!${*+`p~c#M$ZR;zw?l#YZn_w)Y14T51<%T5)D}(N7aN+&*$H`3BZ8GM6)&0)AxC!u|} z2O6Y>7BJ5(zEDN^|6_pNsdhGixnUts$UOBy+;^G?@;Xc9+*Wt+Q1{V-3;cPL=jANs zgCWR}o8K>8=T6w_fzr`>O=9gMCF7#%2a{ni5CTU_%w2nrU)c(Q6LU2shzO`R{eih) z&tRxp-#u@-ofS*ZPh{NZESy)2rCPCg_l8tgzVKE@Q!X?H9C-C>f|xGK4dZBq{Y!Q{ z`KLS?rm+L(^6o35-5ypS{yBtew*xmqsNwRcO9OP>HYP><*I{7|d5Kshho-sg!C|?% zbFT*8Pe+1+QIpe@uEt9?>9BsNhg}5@2Z^^dLh!_tk-h=C+@Zh>bo80TqmlIChI;kF z@iixr3sOHuMsFaB)Fr2T*3yzsH+aK(b*TO&Bu=IZ!1z*fPt+?(w{q;z2<6n2U+N54 z$hDlCE0L%h7q2B=yotL_Ca(&f1ul}4)o%~;qrMNJsaq!oLX7WHD5YFo{R8YdoTmug z#Ocoo!{_B{qFv{TqYtV)YX^&j=3Jav5VWTx-LV3#f=Xc00 z@nqi=iL|)tWe5@<=zQ<*c6nFx2P-yMJ=j@hpxFVbUc)Ga8Hzm#t*RLQ)VI2?3o)i8 zu^_j>R8SX?G{b4u@R(sQ!A)ld!rqM#vp<<~2s0EbGA0hLfJrF(W8(|XZmPu;vOKbn zC(B~N80(jr;1xqsqY$JU@cKcktJ_ah7#)p&gh8$>&xMWu784M^{i#-4e|{gmSYFk~ z0Z80DP+t1m()D>VVN^r9w19pV<)t!Ye7|);fBt$Is?`$Td;gs@QWj5AB0T7y zWl9em)V8{6EBNdLBr{d5F0*qpSLQL1;f;1+6f2G4)AgmCuW^qn(Jx*-oe+7)r-sQQ zHoDZ0USuv-7Y?U>1+i36Ckvvd`Ym*R;+|U0uEm5ZYGGo~?y|8zOpD#cm)YLjsU4tM z0rMr1l#6fyTv}O9P{^S(`+c2;Ms2B4)tWI&FSGcuE)tEWDuvDo)G!E;V&S6ir!>JT z(TvmM+8Xe*pO_F%6!?~klmg4{Q2z5H=3YeUZwS#_v_F=W**H-T>0AX*5q7N97<Id_oMLx^0~ZJ6#p#L%sy zUtK-~Y_S5Pzb0p=7vv7SL)~jb&4*o@Kw0ZVx4tZI(>M=|sN!OmYQJlLa<3)dvwg-L zY*0D7e?;Tq%j7dltusis-m`&q0zjZW{iz$l1Ppp44Ikl*StBvGk4ziMBi>kQ^(0}- za*)|fXe-p!qY!eMHmW|^Kh@EdqfIjy)+Nksm;*(igFS~Fv*WoTu6O3CNyxAv_t2n# zmde-&xw;r+xpzJ~w@I>mn7n5!=T$$v6^V>SPF6@U#AU|&8vbRX4s!6YRfl;!fFSsA zsVM>2V@#e~ac}TLq7^iCst6upQs z+c~2cAShP`XSEP35#0KQFiLK5It?t57(6M-?%b%a9ZWUo3USxLI%>w}= z0CxTST4k%>y$oVua>8&6a7g!k9zaGdPf4lcxdW-X?c7~1(+8e#LZsYrbCf??OAop< z?@XNy_o@%{${9KEuwQp=%lZL~%Z^sTVXiA_#bn1*1SA8jj`n4?W64}hU+pT_yoL6_ zE9f^u;x7OJgf;}4J!Y7#)qr-=0M5aTw9Xet%pzUYv^-|0(*5&GA!9XBzkM2dvY&bW z6MA%`kgFugwnZS}fPI?8J_Hj3PS`;?!w9lJ*Q`7|bE>yvaaC-r@YSF!G1{1BNcL3% zJ?cX@&=@G$*z7kebKV&U;X4R`Pnvo3c`P&juQA;!u|sG3#%+0Zavngp9>I{~U|cwk zByKi`ExUwjbQ1#zywd$xXwxI8#p13JkJLK*6W_ZeZ_P1zCD*u%CHL?~85Zv;rtkp9 z66c-wRmTsO%@C+8ebMy_K^R}xK;_QGtNh&=@Dp{ZiASfK$Ku_9e#wU+os!<-qhW5;vUnhwLIQQA_ve8@02Sq?W;n9OTfYT?_otRH1 zbyTO#leN`uxFjoZ>2E}#XK%l549{2;U>gNa%$jBnca1mLflkJ1PO}`uO+L0oS%xpU z0;6spcz3Z6-jJM8OmZwDGE=f4`enU;aW1ZVfC8?lr>VMB7f z%zU-iCLX;5wilZ}w=dVcnhB(E)>qS=HEv0M36<67dKqGv(!A~_L~YEDGGWKRdcKV4 zK&RiHsb@|v32pXGof6&0fBFn!NLw;?3TzJJg-SAsO~@$$3QZo^zf&C=?#*P;m96yj zU)ItGNH?Z=UrK_0DT>_xkBJ%RYPrjJD|WEb2PcNH105n6y1QxqWC22xdWCs4d6lNg z2kiQBmVOMN!L_l!O>lyRuR^pAXcD0ps_}t#Vc`-#sW0@j?L#Q>u?YOkfA+?QQ@ThG z{qh68ZB8~db4c^xGa>Nm^AFZ7Z6+zCZ~Z!?I?Zpq1_lZ;(GEI?S?48L`%9h9LFUWI z0q4F3I3o&O0zNh^vQUw=t5Pp04~TdSM#yIv++{GE{)Ar|6E>!^M6vATmdZkhWSj{Q zJeGn0>=YOh1g=5L%j}$P_ExZn(-Bg?j2=!Nr(_No*tw6SBUY0PV7N~C31H0HW;E_shl3=z(_^`I?a(2+Imh zCh*ZW7jJ?=jYy`+`R!Q{!dW}$l|&7sIDI3eH}LHm=FRjtXXerm03@=6QoF-O1X$_> z7fjI(m1)RO4%XNEcMIayyI>5B|GkNXu}p&Yg7#)OlcbviDKV5<*P&Hub4!*$Ym5Op z*U+S{pA1GTw>ZPJ12YSdH`k6-51`qGCp+q7WV^Q-ZFoMe^>CfVV-(ZrR&g6iorV<1 zH28Xzu9Ts2$Iq`1eW3iXo5B(0>ghn9_Sa@to~lrtipC6pKZtH_y?TJwx%KANLm+-y z@Q$x;(c$~-WQ=_s0_r85+HQP+aGh6)?wvfRsVqr3NL=;tCeGXJ_f~V~QjwcZ?z~@G z;3<9itof1v7pdVv;>CXFx|vwMwL9RIA$m054*b)GhZJF2TxC*!;>)+2!})FYy+9Z# zf-G04+v#h6fI=C)LZ-pDnRc}q%f;aw%D#N^0BL!%fFp2#ZG9$D7a4h*YI%r_6et1U zRbf|?v^o}ta7@>Ti5}p0K3m9QM9aoe1YFuSoYGq#2_no~#)X z{r|SEigP-a64@H>T$oy6I%EBQqLQ4}T3ULU&KQIjb_EHo>sGIZ8-zdZq`6$_#(#%;b0LvOy*U7E zBvXuhKo2z`)!k75a|ab-(WQ(1hC(_6rUF7WsABKdvbpT#63qhwCpEHER-y+!t6{h4 z(nQCPG^UgjluS(YTX4IEH7pyTLl(QoZ!h@4P_E}65(DK6#BzKYV)2zpuLdPg<)4!M z9EIm{NWc+O77qcc)zi%kG7={n&yd1O0^<#Nsv@Tc%;Xw#(s!xMPNnB~O2TdXpm=hp zEWGID-$?*!)XDZ8-*3>B$`{b!)SAt%#n+^_Pz`RGw0^H z@W;2wmE-(3SrWB}vuHM`x8y9ZCdl!pW&8T`yA6iR=i>{g9cXD-jvT&YaF>wKc!V0l zK;<#2R|5g#k+`KoQ5#k*(Ul8xoF*4msmq3TlxY634|OCe`{^84`n#|UO-&25fC@7I z7L5wt=90qDH8k!ZV%SV@A- zx9qGscj4D6*psE)F@78WE#u|fTVbJaN;eWBN+0eb_IKDnCcAI~g-UVT-layDARk~M z(?BOAvMIXjGkf{d>TPz*k<)sc>AaH$r*8kl4He}obxC78eW7y!l8#%1{ zUfz_!gji$P@=&Y2)Qpp9gg@W$#xpv0>g^(T@_bu6q3Nr7`P7fhE2^I%8aoew996WT za7P!Kj8*uqSL02q5#in{g#bTxPAu1(@JRITHvo^jwE~Y~R7R%_I)C8AZlTNZmyXr{Jt@zaCNUK_iA~Dd4AMs z*K1w673%tXt9RS5BJkK2NUym6&ExEZrOA!WJ@0P|)%s)Wr4v5RF#5xUL{4;wRKspH z-!Z}(1NI}*(5)M!U<52SWH5*uT>s)_oDJPXg+vBlSoq#46C?8?jqdoZZ{;jWObOiF zaC6*~<06JxDigeYk_0$VG_5BGo~tEiODnQ0k6j!*F<`0q%!!w@e@i#cyVqJ7uWhkQ zI7_G`{#QM8lfe^`dg*3i>PnXk3`DYpc3nTeLrG>=31EGYdF#T?t%&6 z!V@0Sxd;b?sU??dge5!&DvH|BbN6ZXb@-w?{XPqek+NbAcSxN1e$z(YLn zpEe!q&+je5t4`}BSw2{n3Nm}SSeTGf#J{(1Q6#!Yj4p8|ys_1<5U+h~zE8ik!8y;f zdeNm`BJ}VtK13aYNSs~1H;0-mY#(!#kR1Kue|*AXC@<~nftJw)pu8d6rQhzYY@4)He|(8&VB^c*2_#_;RU1#$ zx%Bn%lHwPS1^cy3`ez_udS~fyJ(|1~ib@B{H4C+VPDM@tL{hjX!Dzfj6R}TSqG_)G z;!GwyKsCsYzkse)&%mN0G~@(Z*QUSv^kL~oOi?w8kSc9;tcrP#A$+{`YZDX3(B$w-hD!rg@-9D_I5+36CQ<8pjN=j-SuQge`tmV4m7!W|%#7-Tx zoOY-2243ZmdIIs-|Jf&@PSi+hN0M+jM;(g6$aW_v)nBZygORYjq2e$Jbq$rf$@uRO zRk~2tMXX!%q5S|tBH)l&C{(nF8B<8+GO1a-#NRzwxs!y`r8&!rYL`96rhURm#;dN< zEyn2mi=~2Z9=RQ9Klr6QD7+FtXd0wRJG2J7OVX)A8$t3t*oMdBhQ3>5l4FsCO3bbk)2L z`(9uw^NG-_esk=2$9H%vb7K9gx1&!|GY$M(!W9#4-ZgK50)h&2b~9zMMq_p!$&piKclF_tm9lNUh^|~&C74XKk2Oxg z%6+!Y)8p-c{TZKm40PXg!qhQG01$SybLEKrGqfb$C)L8cInk1n@JfU9Ek0eduB;o5 zF0s#Mz!|=`rIkG(RVAdsecx?3&dQ8L`l9h-w@BNv??vBNH19iJUS7kR%1o>QmFeMcz+~HCt$P+ za95s^cyLbS6X7{z{8}U@JRU%Hwk&p6=?Lc*Y~f#;$z3&HpIla*b90FG(dp10Y!wwJ zEA!EOEz|68R(g=N$RxY@*$oFoY?OLig;WD9D7_0_54`*}M3ELet#sL-rL)N5K^fGBJA?Be8qW^+8dvS z4&B4uEoGO|LIAM*!f_&!=P6})kK4K&?jta-( zbtURqos)FsyE=-TPj~E?1Rm?efb@{~M$rb1*8ALi17sq3fNp14z9*hYvm8SNQ^HF5 zhVInvXhAZDK-_I=B#SJ(kIoQtA^=TNXG zk0qWOyi4iTWYu1O9fERdzz7@BdXEqQX}1PkYO5;IG(aZWMmeY=*yS)P_|ep67#5Nd zZtmdAPq6p!5b-*RCE|NI(qrxvs308`OD{|LY;J$rg&h-Hzat2&9lIpa?(Af%Z(wR4 zO#pOZpSl&l4;T`I!-=!jVs13VQr>1F8cCF?bGcLZ&Abo2I@VDTynJoww>d~ytg;iZ zuC+PoB*D}s6&e-$ZzgGXKfK8ZS_B)*E>T$P9Z*O;h$#$RX>DAJu}St-eSzF#%b0I0 zs@{MYp$ohaJURpG3meo>xwW8zklZWk=F0W36?b`id?}hc+1njL>44hI%9t=89}w_r zb*l6Yx>@iH8h9=f>1$#L4QITbR7V#!3B_vvJmMNpYSHmNKzWJLnA-J{lLAR9T zsD44OIsAf4gw6j=XOX&um&NHXRK-V$D>5z>*t&Ztpt2LBn5T}(Km*-A;#Y5)x&M%L zOk2?_lVo#2$H~`)(~jjOg^)|av28=OHt#3J(8MeOWDiZOW{1w@WeGV^I0Lw!rDl>d zb5b@0A=gH*#v-5c7Gc-JTwslf8d*b)HyzL|86-8gdudwmPTc^?8=hRvl6{9BTv!pu zr>VsGw{s1ni4Obe@b7dkRg*mm1Nfh#*4Sd^H}8uBE1mpn6Wx1jAY=)0lPb^~hsnUk zHr9AQiD)3nveu&rxs|5|ii9v7#)`FC#lzD#gF|KxCu~n&JBBo+ee#Z} z!=CKiA_d`wR*?gNCCLNWrn zs9<^Y?#v&OM(Ab+f79q@;+M@z2V(I7{&H6&({KS^02Yf~OM+fGEyH@2vrly%*vwi- zP;!(CC!&oxurHeGBGY1)Ue=GRa~ZoFj-S%>>iMbh>ETcU@m?cY7Y2x!<->sIJnm{+ zR-nR(A;Nu`=??s0w<1e~i`UZFk^V3>9b#ni*CJ`gale?#&qL$CqrhMV7}H~&l~942 z)b?<%k6u2Xpe^f}$(j-w022wezuB+3Gm1Cfe8=ubw*Pp+iS{`__)U1&m3P8;^f%Ne zE{S~umsWm|Nr>NQBF*_t`2Al`w2%0!&%f*UOltOS#Cz$cFZuNnpLFqGZ&|`NXxntK<%F%WO%Rl-;iiy`Ku5V3P@}4!H2i zs0B*MTF)uVEl>M?DZDZ97&r!~N3w(UKCdF&f%LD`lyJ~{ z@v}>ZP;-7w0u~HvCJUnfAeFzJlzl3u8=4pn>pS+GrgA`qWEBy%@e#c^$Q zM_sCm#(&20J9%y zCz-gg(aGct4>KP-Ec=GS;43=axt0=>j+X7-%sYpa?E@4A;Lua-$PG1*KH zOjl#VD>U$r)^)l3{i>9&es&bEy<)hyqIrFNd*L}017d@B_o8$@69tS*&aoKRWmxtu z-$O3aUiRlFky5`wVBQ;<;$>RQ-ZRNsd7*4ADO9Kx6JZ?p!Or-ok`?VCjPOlz z;8ru21Xx__qPIUFEXim(xB!KeiW)H9K_cy!l?73hqrWVa@zCXcXB)yX_8H(;G`0%I7QT!mt3NU-OJ zpF1no#DE4Cy;zp(>(4!OYWwr|fPSqH;9R_=>Jzso%EvWt@9%RIjh^o2^CXOA^~RlU z$;6B2u=SS0P)z$+T(XFlr5OQvJQcG@=%wa%xeIv0lzMLj0y0#_6$ zyuN5HuOA0rWkF?0T-CE6A^ij-AgTJ|MiMDbRd+q@0v5yNIDWuq$N+8TDD%+TD)OY& zUbJ$ZGzh+`_s{wa&FX*thG%1^SOrsoRqXOYSF?>ep{!?hbSuwDo^Wiw)6thK${1|? zZtT;N5(2&TU?^j#087bWcH(vFh_#~`459}ps*=RQfzkKHK4X&y1lq;aX$A;}Pm5gs zzBBR_+l%a8WP1?+fTDV|%|XwOKM-C{Ot>*hk;+(jwUujUMTZVa&J!`IQ07_@tGC2z zeth52n6=QaJ;^WNaM_ndh79gKMQqP`(~yQiypwc4KzAv=?Otqf*g`I0kF9bzJNUbp zAw2q7f-v09XU`#p%EGQ~?tSUfrAawJ(s)BX^YBZKsveqX$esL)$e~WEPh?PmU6wXO z7kABPm7Om2mLW5td8JNtt|r+l*WnwD&o{kZO0^#(6Xi&;@hiP*Tm^eL?YG#_@8*g| zO6UC91z+dG6so!z^HvwnfzId|U&wZjcaN*`KAa6m&K;aIVHr*eZ46ZuMs{q~Tog9C z1XCg7*|Cb@lT7~}8YPCoP7Mys)w<;D#vv+#kI)@OcusS9*CM`Y8S#Gdhu~bqVFIOI zR-h-Af^wRp*9P*lPp(j79TGc%T$Sm~j6h~V0sn78D;&XNp#S=sl@Xq9td~%!^Uq)3 z`hkX4>v1BEcbntOaikd2`ED4)?0dc>txt|XgGcqI4G1ojssT122dCM_#U2pSKr6i| zsT!CXZxt2_rV} zX9)pgj2B<%^`O(0Za2fT3K4a3C{P2oLs%ZDo@Fqq)86nKUB3Bb3078{wK=J7;v~{n zF_HMEMfomN;*fBz8nQwXEFyGD5tX4`_qdyrWAm~}xFN`91iV8l~M8IqE=w(4N8WS6;v{5uSB)1X=KyeU)&av2T|U%yDV z^KB>%!SJP4Lf~?^sexuCZdR*wje&`9!+Zc^N<5}zrr@N1(H?C!h~i$TtDfx`@C%}0Qln6mDbsf9XI=iRL(YH? z+GW14gV$l8SE)%qRMP%jRvpkhnMj>Z$ z3KPn8?JhZ*A6*aqYJdL5T3W=zOcbxg-O%scw=q>!hC(@j>nG%f{s3AJhtM`SWe$@! zCJfq_Z%ArH^(Mnf=o><@e7=9mq<1ZZ4_=d*8-QYc$tr5*UuyT#ijG6>z@x@Vj)!HN`9&q}s$96Z~u@_%BI> zr}E=l&-xgG{^U@A5EYB%ahpxke~Cjfyq>HJ?=WwXMH`K8r6A*;t#2)*&%|;APv-6}p`^*eMQ4eDu}Sqk-j9?7jM)#Y*C-G~koU_4 zAd(GWcT6^Ng`K}^X6Y?GWg#d2sI z*|kJYIXPz`;O#e*!doK_02}5){|&LlJ3+*HrbCBMZiG13^CS_ zQ$ZV6QWhWg-inTm?_vpERZ6QS)Fj>^Vb{ezmH`CK6m2rOxq)^V+)AXPLE~mqmSAdh zwc=s}G@o5`I9LpFEW|)9q>+u5XT~IT=jzTnH0T*0&8D(rsMeW>@}W+q!ZnA33luzI zgFLD&s+o|EyFaivlN~(tec7&8HE7es@4y7=8S-$cU;F^gNCZh#bysv(*D zVf#&LumVlAAihdaaaTcijeax49%x*C5U3OrJ%{C4%I?%~vwE_lO9E?~)z~+2I2T36 z_DvGx?{*D|E#s1=5NNrgj$G(c3_*G3F6H(od}2f&);2v!6C_?YB6hX#78y4236GE9(MY2?cNigg$Y~v zMVTS!>~4P_>LQ3DxK={>i)l7>y3`1?R7zU;f9_bKvUJB;W`WUa5Q(UL9SOI96xGE- zDyVZ!x7;NP1W6w!4`bYSlfIvl@T;2k)l;sj-9Gvl@8z#fZbxeqI@^2s3jhVId5(C4 z%)grS5tK_4b`i_40Hk5hpT8&GctX_Mg4QoJY;=CE zu)Y3VabHGBn1Z}sLYl1rvDX!m(!iGy!(wwFW{J4DCwg~>Kp%Roevu(28z}W1>D*D| zFW)i+nG$q<=Zy(hjmy%{TmgxU_uZZs6qo%&{eX0CK6|z=LmQw%; z3Ep5|juIcK#cJNMRPm=X7&?b+oltnpQDw*UJ@eiH9y7oKFe;tddKRIU9^rO0I6+WXrY0RrXaZ@ zL-$fNyKo4LcOjP&%F(GnY=ZSZJTZd7NPy<-EzuFF6n<&i5L5nyif!|qhpS|K;8fos z)XIQD_+8`Z7-TdX?|Ip18T(c#(yRmx$%_l|70QztYns+^SqeP$=A_spJR;p4-A^uE z^49|Cn4gftO&BICmyV3sf(>>~5H^zyCzv>fmN%I15}B8Q7=sYmL&PaCz4KQyh@FW? zU&vBT;yA>WjUzNpuZtTUX}o+)E^d54S%*ec;39)QwJH3rdo}N#wcC3A^^Vh$eobf2 zK~-NTQG+i*@u7mD!Pn>NXE+P6v<}Hc)Ht*R8>|%Q z)N7ZT3c+k>sY&N#9(Ik*m$ySRyD^*z2Ke5K2=TPrUu7ox*aWoi8_OnHvg@t<8pEWW~qe^!bI%$eR zIH31Ho$L?;WtrCw-8_@oqm7qt>XlR?)HR@RtTQ_Yxms%#+cDrqvkjMp-8Gi#;`77; z!VKLUCw6vehODiYSQrDMpB?6H8G87*b#kp%J#rEmXqKxhE4egw9X4|hhu)AtA3DiK zs%qVIwNb8EAdm0fnf9Xk{+L{DIL}Fw$)MG{aznv>>cz*K(2me8=s6q zBCxz6KhSW!yL_T)U_uh#X;~=R8xtnowt49qLZT&~UE3F{a-#q6=vs4{ZFJ_W*#j4x zS~c3oIu&-;+{3a`q+1ci*s0^?pdn&tNC8UN+RSxd-po~1lDLj&ZPuoEbBxTH4-K>; zmYAo2)Zpgd0uPYg@%j>vR;r;cwq*vVBjCh7wHxyut#>ue)Z zhJ9#y_+VZ5II%bIo-~UT^pk^K|;P3L_W0=^0Yr<(Zk2 zN_G=S@B4nqe}Gvp+CTK(n~yq4$z{&q76YM=W`n&9c$0A^h+hhVHJlxCDUsl)VVpRgpmJvVH&`YuCX@Od zL$jW7A`$VJ);Fj>`0Q7+(fOud~%5}L7&3Ys5f$0Nn z6BiJwss|gXe*>Nj!-0|~JT*+l31%t9h@cl98XiKy0#(f$C=Tz2rZW2IfgpSLaFVlm zdxLu8RsN07oH$BC>IV|n8}zr@tWRW;ij!TFLwuTwBgq`yammB`5MHk?A!POj6cSmA1OQ<_ zM%2^s-Zs&hbd3LHdbrp*gVT#{oz~J48|Ffm{rb7Ubpr0O0PuD)kEaQf9l;VUy5@w_ z748P7H_W$`1iU`Se=b9A;*^aZEA968NylEis3kM|?2ek(Tg^_WC z>>R%|EH$(R^X%p^wIsCCS&xr^F!51h#WXh|e*iBPer`2$V6;yh;@fx2pV~z z|64&lsUyrgxWhYPn?|$~aCZc3-{5pvDbA05fbJ&pv7Jj3h+W`TADIRh2FwE(JcJw| zIM9vc|6);Z8cj2=0Lom3JIy*7Afv5(-wcY%u2ttj!4si?H#RBv0Lgqd>5R)nfiG^k zU=bj>HT~4=WU?IA$(K2yq&tv#6Td=2gt$ZOZ>ZSMb*_;5hgO*ucZi(`;z2>3FsT%d zCJHXV1rshK5m~O&@|4-x96+17nr{dj63WyM@k?_cjb}H9R%yl8`iR9+@v`j zBR0n!r(ptS!a+ea9U%n_JQOyjpj@d1+zaK4w_a$%!H}fVL=-}T6;HrWAcT&jwPxYl zGG+`7jiFWCCm53ubK`Z)nZgmE9{bWl%}%EuR}F!aRn{pPu*%ZMe{V^$nbLiYG3oOV zi9x!NdL8jQ@E$i_DCmG#+sX&g18C?lPT8T3^{zdNQNo5(u>h!+Q(z@UEZ+jFdtB*aqLEY?9oW(1x9iM+j)-@tCyr`EP4%6X?#x+QC@K>oDWcX2FJVapjMZIZ-Jd{kZltLWMg z&>vac18_V1n`S~ylXM&K`A}1t#>L5FLv#5M*o{M9)n=c}J%M)~-p0p`N&}vdBFK!R z+!=X7Xs~^5m6s5(=kc(ZDCNYgP+Wa?)Sqlb0|%?Lb}AW?rtf`H$@c+2%z_wFDLm{t zcd-vY6#Di2`Kv^UZ;(U<$B_>Us=s<40^@5lc4JI@+w!Mn3-W;cgbaC<#53Q#JyLc@wI>-t@w= z{C2LQiW0<%fX6uiQN4O*{Rx|%SR1Xtngi2z8XZZBWi2%z(r3c~?eJ^xnRcis7!@}E zsn@yw6u#kA@R6-*A}YKQ4$fP60UeNyxmU)X8_wQrg3P|wFuHNL<8_(w^E^JZ&st{G zk+i|$jDI8inW}oq#xr{WgrbMLEx;zxJxsoN%SM`Nm2`?CYY5SC!u(rEL2~xt``Xcp zh(li!fn&UPIg$f!hoZmojh4epc1b3 zF#!cT(%`~iICwh$rh4wG34r@bhMlO*yWAuEzPHjupLk4ZWb>UMvZ`jA0e$jvzHnqD zaACJT@h5tH00lb{2o}!~@@UvM-&Akfj0|%li5{=AyIx{@)VKOjW3J<0_t34L{6r}e z?`+BY4b3prfl2KQ(aXTp1PPOxDhhMA}wUex<6KzGFC#Ved#+GN7&W z4{wBqf=4;%b^Y>leMK1zZy2awvsWX@ z$#;kHq@UA5nHK&sOkUojBda^j0#bHa&(|wLseZ1B%?|SWD$Rs8en;wb?MW$niy9+ax6N~wIh_#)tJSvC(R*b>* z2o`U_?({;6*Xy?<-ulf3IVNN3-<=HrbIVd|7NArXnJx_! zOEGPQ9{whj>H4Qk>SrtO@pk$28_};S7N-J;u=7qRk;m`8%Pd!!%_lygujHr`6XwMP ziX{gc#7m>|^aTO$a6>h)hU+Q+53BERTC;Q3u_UxgQ@Ux22kR?fMTa&?a2ya>H5ng_ zeDH$ptrYnGaTS&E+ix;%#F=R!e@#2yyyvONqyD)qWS>H;55(+*aq6Qlp-uOEC>two z9ho=PI}FSTLwUz3giF7WcOmX5`;F5>5kA~n{?#i@mT}a1#Ho|>DA)MKmxQW=#&x+pzQD-J9|8&+voilHv?u@v|`+9Js4&b9jPBqt;o*+{z){=V5PzpQwbQaifb zEn3G!1V&i2I~~CT%!8JA(vPb?CO#f=!Pr*=8UHps8m1t$>t}2I`tFr88CHw-YN)}Y zUAPPqBJR5Rv{TbZzX`MtMX@-5E>ZGHET0Fc%RMW&%}p;Vl`h8V2t?ZI8w+8Vd&;e; z%YaSubtEjk&IG&IeS!FpV>!Tw7JR)jqAt7pvx*PhV{nN8AzmG|%Yi$(>XI>xYV}c4 z%{)a7ZjjrnYdf!|3O#^IoII#2c|f9Kcyg?3YFJx`hIy}rL`+A0D{aJmW_>9;`dqxJ+*2EJloCLll*_c~rwL=$Thm*ibZ~MI zFwNk9a--lB=R;)7$m5iRj|^Pc)x^cIU@Y}TG&_yn`n*x7?PcPniVoe7=#VcyLe zZ5mcLv%aaPzG@U!>;TRfvMbaB_KuzP6dW?I=P9+Oba&PLFcgbSo_^6T-hjxsG{ zap&zsEayDv!P4DqLFpL4*vVMgxnta@4ipYgNc1TObt8t!4~-H<4$a@#E<~NEyV1=` zWy({@>TuT}cspgZsR?gdkcx(|vFiC~#7m(D_nS}hay)pvYpk_P2+@)Og;O&OlhCWJa98UU$d&qHXw-BC zQA`0s8dw5`LQh(KPDyTDLUKqvP5vT2*_dmBtVf;BEi%zC-VCEw@$7}|td33aaIJ zdR`#Ndk7_nd8-b>{=TD{{6S=CVg&+DcTQvpxfNLpVW#EZQceUL8ZlUQGVH zSGycjuBxH6iBUblPz1KsB)MK|xkB|jcNX06EyCyddPvN0SC~%}ab-6z` z&a$doXM!~DOl-fik5hdUT^6a|sgrIjPosgnrs2Dl6EHX3S%XF9y@VfD7tF&sb!xgx zYmj$4v$J}3-g(*$YLP27<_ZYr7~$d_(hD!*d-IN zT*Ty?(Mq|S-1cQKlcp@Vf|W-F)p1%)bM8`MIO9_8BPB#+4Rd}Nb(m#pL|>(4?|gQg zzt4}9+$qqYvto$SY?++NxJh1U_^}vbiU?k(8|q&@Eq4RV)jT!?qfpRaX*&c=%9?*Or-wFJwSYZ!t#1)>-rhEOGja z)j?CecW?1Bmg4Efnx7p@CiVhc)IIVan8 zIYIAqBLOkZFnWgt$r@4E5+Px&SC|M__ntx&2MfXl{ngxbq&U>;rznmI&pOMNXZ|b3 z4S`liua*ckcC?&pLq%KHrL+;-PiEYEsw7FE8xxvmYO2nooS`U;6E_Vtdx5?t9oAeY zVO7qXEn4%-48k;uvCp~M0R6epn#L6~_4~u$`2xA1M5EB@Am`2PVNct?27V zUx%@g$<~WPx#I&CvgwblyvD>?d^(aqThEK~>Re@XCk;H??l*=S3JcBoZiw~p({>TkPV zSe1MO;YNnxLcv*X(g)YF=6dkS$l*4S1wwu4MFHiMgsnKqo=P+u{v>4U1oP zWL5^zmks)quk1dd^M&*wJX}JmxwSl?7IV}1|4(`JLOwM3VQR}87sS7UN+rA(HCkd{aSMSQBp$ zk2!bpI%as71DER%!5cdEvvq!%EqEtg;XB=Al)z7{{3vvG1Iri~@pzsn4Qoy;qgOWU zd&W{&*=aol_zWSFVNu7n+FbhVk~+UwsC8GvLW9t(9)iuMo1{=pfr;HTMnZG9USV1bSg-GQbPFM(;i#tjtL9S0QZ@htc1rlV znMIhg_V>~tyVBU9U}v%r_sjuxJpW{nk0&G?<`;d7?1 zxvi_p@jvFG`BYz6JglVWx2Qlo!oTtmK6>3t$I|K%>(~fB#FQIx8%wij@h-E?;8&JG z$t=``V|$!u*{|0dtUEB@NmvQ5?iy?(Cy-n6$Q;h4=Pr#R{b@sf7|J2lPHePmytPy3 z(638XF6DbN7?8145-n9*rhs;G?E?~9rFU>CW49F%I%Go(k!21*HgZ{t4fjjTxK#{+ zgbK;r%8%YKAx~@PCqEn=3SFVUEB>A)u^=<_DM0z9G$~jZld-(tLk8J@^<2o z&1rKV0=@a)=>l9$^1;{M9kHQJ+yKle;sUGVeUHuJcss|W8{anr1udD4kMF{dzxnLb zGDe`gRvdT+`lp-{7PuwqZ%AY_?mVQoB&-n9xRRl1YQvRm2mrkRg-zC!tD-~4o&;go zmadncm2GRxw2_vqxdQaFQPBvP-=xg@9MO z#W8dR60RjQ4jJLo)%oZUV1pgojv`kO@_aTd1PPmbI8VRTr&3z5FW&3DOTPkph*43~ zj!#m5rzA|wCCj}!u7-6=Ej7KN^~S>CE-K*m$eoJSs6w(e0VMpW&X02SbzBT;LsJui zAm$B7lXt0}Zx{|r&ls4z!UW(JDd#5HaPAWKxY7nUm<}DTof>B|%!qHqbG28y9Q`Om zb^Fo9OV^eC3a<{Opf%#HZyn9f zfDMvJ?o4R3v8(Y(l&kyT0$-?8qsYn01ir+&df0yN+d4h(hCe-{&FQ)imRQGJ z`C<-lke}XkO}`n^s3>h>2yMq8lIL4bWCzQgXe0%6<{*@5pHtNG^~t7p38CTvZ^WQ;Q;7pWA0LFf)=uq7w+i+AmFdV5Km}o?)<$n(CoVKkRw~aJ+p-3@m0B3%jxK)63d;ND3iTJV5Tqnh1|=JX9jy z9P=Wh6N`zMHLr+=X!4kA4#4TglkZx&;38z={I`@OmKhIh~-atJ1WduNdCINkeE?=~u-K<*vVp!)BgR z_BH+SHbuwa*8BZ0@DpoLSD*dQseEJgqvg=DuMH(;9}hcKMKKI#hfGswR6{X@7+e-1 zIjW}F?0OodaEiTLh3*pWQG0omUdy-M z2y{%#dzgq}Btl{Y}*ug<4Wk0mT5UO4wP5ebWoKqON+Z zS(`cm@I@@<{7ML(4H|ibI3_dXjIf)@A-|ps*Tib(vDwft>)SiN%j3@v$`!AF1E4Gh z>A)lt!K+NAgvh`LR|`QhAtZn@1&ikDZXgX`nVDsWE4Y?L8j~Ih8M^r9Mw;NyG1>_Q zYh1mu*giYe30LEKv7KaykF<4+r*9BE#bT0U3LnT$Gj^9MHbZbpZ$Vu)*wn=~aqI<8 zZXqNm=vM_}Mz)+x#0f?_f2oPr(`BufaF(IoYI?_L?9LqHDgjAp2Adn)0Iu&;g#l7|GFjuI zN_kZs>m>`v5yQJ8U7C^Vd_oms@nv`1DK^KfuP)sJpofNd$djPJhnTNUyn73i!2_)x zR@FeQ7{@u=TY)E6R=Mr>w3|fz(5>o)#1tCUM<%f2bIKMc{WA0(7v~}_Q~X4l&O4)B zs}#fy85{QNW*R^Fug5MgdL9dFUyNkNp{y`}A^cc%m_95+m~?#csAi-cA3$utus3LU zAD|I1y3s1628*V>iBUrv$nQYrRorO84$#~rE>2DZgnzG%c?V%5O&l@ zQ~S9iEi^^S>J40Jhz|*`eV~V9A(^pbly_K+dCU<=-K(o<(vjTggPP69)SH^mod=1l ziB}2D(Hxn&i#V*8_R0zQ9Mgez>8ViAl_y3eDN{02sYY~W+$iGip{>ddTbL_`tC4i@ z{lF+mhDEC;*hQZ6ASA}2v}s1YiURUxL&O>^>f;nXK~DfW`CM)CIEV*xV_nSOMEf9i z=(`I8r?+W_4>O-&HE#>hoQ8UxbH;E|Am79JSzMj3qnyU|Yd$r)b7;&)gA>tV7K!}m zJ9dH@EG&XCkfUBy$LEQgF*CZ@$e z#em-F`Z{DNj|e<&VCZMAk|L0Mlp@sE6-E?F(iW*)qqadnf|ozAdxvRpg@$RW`p~PN zTVG=Vf@F7PQR_?F*!W0v;=rvwR;ux+{Rar-Em$OV2a~1$1*QVlH}Y7YN)^rhx*%|( zYnr}Qb9zHZusp|5WE=AErhJa~He)#bn?oC9i0*eBh+l;*Q^s$n&sh%4P581hTfb@es<#QxPJyaOZ{pH-tuYHwX;8D>|y#F7DleE*~ZD=n2m+0C)f$HwM? zz|IeddL$zni{?YPBr-02u9h$6P_l{PoH@WiEJXV?NT>Jij!a za06Q6ZBap4l3NTVRvda-Dr$S9Qzm?gw>4Sg7!_7HPmZ9d+CQg(`{y`D%w7?4v8|evvXua_FS1!qd4vXqz{Rdi z;ErLBi6yt8ASlg~pCiH9j^LJ+}f$(K19xDvBvufNA1lmPyj5Es+s9`ZfAeh_^ zkgVZTo6U_6^FsmU+{?d@O5YJhU*NAdP@{k0-f~}))aAiAt3RdU zH_6}TnDdQI6>@}jsmA=o0$rL3AEMYbJVP9(XciE{B;Wv(n)Ig0nFHdy51_8l6z3-z zH6vz1Nvi?;=7W^0rn|BG2{$fxZ;+OE-G9j|v=&gFo48IU&P!uVMhWvXQx<+HoLR*a zc@IYzHN{wy>DTXKWeTLyqwr}oi)MlRP~t{vO*&L}SFAMjpu+k` z?X=IEKb@aonB^h$^f77riV+Xb8wy-;X(LdM_Hgwy!p{miIe&31tVSY-L| zLFuTVQ}V1DZfrv|jTO7=ACps9){>jOus5V4Fo17hvitQ@zAio>1zRo`+JH0m(g!$U z2Wn$qvjB};5B|lxJ?m43jbT;*r58`Ei)j`n#hZ|kl2)~MV?t@xx82gOke{o6Ox3kU z2;uZC|B^#0bpxiUxn7eN>h;6PSJ7liyEl!zE9lWbRX@z9iOZh?(MwL4_wc)!JSS=&kOIvY4@qVJxPpnH>3)aSu?@ zEhr|&3Wi6BeiDHYmzx015?~lYOrBYoFk`Wxq2J%@A4wBkO?bQOh3QAN;3fkUnv3L) z--rgetV=#1bn5=|*ZUPaG5&`QKs^TiT){67nFxT$JKvrXYj)`$TSbQ}^6WJ05Rgep zHi6H4H|c@AF)Y3tvjCQxQQ%D!KtGcAF>O|m{=8*6h%$>M0|1QsGJMcYo;c|k0wX$6 z-VwTm1n@#IKK=bR1Lsn0*e`+W$q>hNp@;i0=hIsGdl~lds&Lf%>ZHm_^c+70 zXeJhv<@Si4@QR%8ySUX%tiY^pP$ysxSI6E2w882F+b)cms0*ANPcx>;xu;Vztjg$U z0;UJe?ntOB?rE$YU0sOR!CY(H>5W4X4`~XK;0;d#RHAF$@6Q_5HNMXM9;HV9t{1^O z+ltC)Zu;6=e)B>b46r)4^NB3)ZRaXBX9rnnwmbdgdgLUTsdd?cEp-w-oTIE5TM0b2a{(kSsZ#yKR;zwKlx=;XgDPz2K|m~PZn@g)E5JQ8hAGd_sUkH`t76N{(9_{ zKy?Ur{cS-L;oTBIDAP8MA&y@XB7Kk(&-e<a?;-xs@lCG=xl;lf%}JAsOryV|r0Tm)iT_Pkl?wXg~JulA1~l zG85|!_|4^6(I$pD?!6!f`nlupBLj>jyir|pLbqY@+%2y9Yz2T18U{>#r5ACx<9%Xgl* z_$0!`ee7O1kADhvsmGrh6Jm%Eac+&PzI$?FF_!SuG86R?1bjZfydd>=)AW6mGvL=j z139PY%w$28X1saj!@{T@8nT@PYli~xwT{j8-fO3@Qm31tIzCPXriz-zdZf6k<}0kE zalU|J(Po7eNEUH7%;h^G$UU$C-jBKz!@vG!c~W5IsX7CK|K$Ry5iN!~o#QsJDHbnE z1m~E$OOctcBCcktY@@pvF1|w34xmWCLXKI&1Af1?+qv^}Q87MIh;<1l1y*9Q+~B!Y zO`W(uzt%T|u?}tt@I5~<_(CaFWFN1M)f3oDW{0pJ$2B5Ja@5o0yGKKxh`T>(Akmus zsxQ(EjQu(>GjG5JHKcOn;$A*$KQtYVrj5MJ`9qwu+Feus^YfgM9GfGs*I?=%&|Teq zk4b^3OU<{B3`Y~UM)z4^0E{se5Xhei^Q0b{)SQ>;_M@t>ofvJt{Nz`pUsUl@Z>zc% zrA}*9Uw{S8T_x-VyIws?d$FoVT4lG)g~C}B3UlaGt^TL1`fz=aY!EGQOR!iwNwj4c znN436GZgxC=V50<>>Gx%Mt7+rL{gQOqe^&?OjafrYt zaxU-$F=A3D$W+}6W4o#6&gW_(>cmCV{1AIjF4S01=D(i#3*+Pd7zp|IqvscLISV5u zF_qK7`V)E-?aeR|ZukUBsI6%+k2=k*zPK*%)5Gvpc^dkyH{}Bz60uU`hbB?i?}Tdo zT&;R)j$J#76Fp4X2~+Glx~sV=h;?0x9{-l&V=`c(6pY#bknnYkuAv^b%FccCS34(= zucO1>_$N5BSKcv)-z9BdtsM%7GE4;^;C#*1l(@ew1y}7J+t&l4RayB5D6!Z^jBC<~ zps5O$Q0BuN>km|Ww-+@G>tq)uT8#YL>BW6|0hCEMZM{n5Kbm!|<2n-}_q~AmW$5Cr zv`&|Zn-i|Et1QjBKfKqB5NLlHHYhnFX|O{1&F?@TZM*SPA!(l}&l1hm(vpfL68|`JOH2ju}fko7k0wQuo^Z(R}(d#^e$cw=Fl<^ zBy~%c+vv|z{+)RaRK%%JANa=`9&o~z$jJ|&+u+E|lNGoSTGsv{ciw-X&`rrzMDJwx zz#Nq@0J?a;$L9H5ypGC^SF8TDzoC2gWOCbtECJm8fG3Auu(PoSsL&)S??+Ck<=Yuq z^uD0Ui8P;WF5JJN-BpPws5REj5L5NQ@xiUvAJPD(+mu;zKRL$NmST%y@RmbTb@4)A zg#xge$<4#}Qi4aL$Qndgn|UdEEi@ufbzw6#jX@wktEBR^{rTH*pK~h5$0==1z03bV zv0wL0QzN1ov=#7z!XE0?r8$<`W>P;i6^UtSZlpV1S7_jKF4^v^FxNqC%n(LzWEGr@R~Ty@hR~W!-DcM9Ejulrga$?r22jaT!*2Ox z;l}*BHW+CwCGIkF6JmKJ$F=q?RLWAhoK2Sd5XCI*%=6lPXq)!7KT8Q2n4?>gBWlSx z&cn;*i0wi2f38y6ki2(&5*c^w+(hVv1!NI0t!BM9H8CJc{2&0rWZAAU)U<>K7xlm) zBmv-(j$On+)EP>bQ|O1qCQY=Nk65xZEi~xVC%(g0J^^=>N2v^L4}ib%P=Aes!$i5u zdE&koBc8cF89&VZ00arX!W;9s5u4xO(k^7;?c*C$zTpAnIrpFYqt*9N<((Xqbe`F$ ztE^YT!48h)mRAftdeS^Exff2xYfagM#Kd9bi2(@&!hD@-C5uTk#s^6WBu7{`QR5?C z40F|x0FE{%MSZj>iFt(xD^$>4_<#;Kpa?KApiGevH z+l3xWR(tU|YT)F5Z764P4p&fYu4W&24rouiI>Opew4aMvW9W}Yq2Thc`J!_>$OUjq zUvi~3O#$eFwBuxDiAo=oq?(6utgE30(MUL; z61_foXxHaB^&7l^ZCwP9B^FlDZ-)^#^U7< zE{~9SGsH0p!qPJdhD}+-MnFzhFcUUJ>O@Cr)nKl-(PF6BPpNpJ(Ga?|Rc>~IsP<#SaXtzxssT!6AVfKgVn?IdgPee( ze}NyW`Vij}-8Sp|YyX@*~O8$~U%#n;ic~(A)?y38 z@vqVX4e+fdCk=v6+R&`~dx|H-5^Hq(ZFV)}4iLAZE)&Jc0J7$dp^R&p-jF@Mbs?YXau%`9D|u5PmT2I(PqHf zYg2@J{w-_YXE^dY?+jf9mFW<{MbkXj=Q{{i!jAvqpAO9*=uQ4L=^D`VIQ!yhdTR<_ zyPDETlr_OZ^)rJ4U|2Oxo5s}q-sZw@vN!(N;VDN>XJdpPO*r$hIC?l%?Ws|(h)2Z0 zh6`2gWc}2XK`dDyM=6F^TMU)~29e2lb?Qf`x~5@3g%X#$0BHQC+{aFn5L%e>Vl1nRHG$N+_EF~20zqnf*H z!X?Rnc0wf@R-74Wm#b=E^A*(;5`=(p;A_tfE;2hY^1GsHO>#jQ5o#eH7(~=*s_P}W zy14a9yG??Buej;uO^2lKHv7LrEoV_U_=Rd;!{9huRCbLdOu;=J>gS`khRLrSkZann zi({qQ-|$WG<*K>ZF=_;<&dxdZFWYn~+NsK###75W6oJqf^)eSiaPGtgG)%U3YB(j+ zmzG?SYbroYqZzC3vEBU6rjkWGT~^>*Lb8Sz6Z~G=8`>7sO<{1!dZFMslQoKoe*+Hz z)Ok(iVzy%w90=7KRpOg#0ZXLL|BZIs%vdI9fO4l#-NpM4LwG`;fSc z~K?BgBcb=EWYh@mWrk$=Vz|ic4+Rdo33CcPC)HT zvYEIVNuj%sfH0cDnK$T^PVfwr=@O_{Ya>ayNfuO0+K7N3qRcm1bIJW1y_$t1R7spAn9V_!4PQhh-{3^!ZKnv`W173+h^~BiSTXM8DNv<`v6AtI)QLh=@hkpI= z^Q}HWGdt!Kf_hTZ9hJz%2qvmesaJ;slZvAPu}J8qdgrS^F?(IK$5suf=#sEEK`QwS zaC1Ep86vf&qrb5hkv`!nz9_WWp&BRzqO_FZmKjNI^CCp&|HkG=7*887UXW_vPPO|$6|Y}dm2(=cn$1pv!^h@x*ps}6%L(OtCSt!|TZ zhfN&!i?#8-l2{Kv11a-&nxe6NX#WSpnkDHu~3W5{c)Do6mM_z|9E2V#a@? zQZ9c#qA&(qHFjiPDwwTcADe%uU#05R?|n)uxalt}Ond@{7}^CCH@2izdx21v!hD>X?J5!Wyh-eHRbWribWhSp zA3!P}ero&)ZMyzxQ)SA?jYvGcLT9qAu~u(Q#0C$b=9N0k)b*;TEoWd7`_(uBFfr-I z#=eQ+bIn~w$Yw@u&mR_4{d4P^+hD>4N~SljlHfrw=rZ)|fHP3qhybSYAz1wy!~6R* zixpDZ_~r`)C8QkQO652Xs8dZ9!Q>7Rd^+lEa!_SwUPvd2jgYG;-=#zsouC;`+nIXh zYC^~EKYv~S$oI;;S@5x2lgwVJLRO!W$YZ`P%n=FSMG37TpSN~<_hj_vgjY5R0~9;$ zEZCu-0S8dULlfep8a0?#4_A&E#W`e*qLuiEFpKWeiuN{})~2b!QJyAq zVtc=@U^40LD{REYGrJ&nsiC)U`c&L!rERoX{`oyOlQr?Z=Qy*laBVUTOyW?jM`y}} zcsj;gug1ovHs55qCU!!E*2(S%!)=U@@B~@#rm-{6l_x{G5 zh+WfJDZzNyBzK31y!4dW{&*e|_l8-Tl*X)j-ft0HTLS%4Qa^r7Vw6_JhQoo*`{q@rg z!f$hw0+zuZiIXX*R9Tds%?@ z#0GkLhqoalU{xbTFzZfp0O0^w?p$5w?B9OeY=ZAPxSfx?pE%xgH~2SXc>mIMUu2(0 z4EJB2;aN-P*8}T--+X3&&l?g!Z9lJRQmFmU--9GsB|?ZqcdUFfxjY_nW(rjOt05be zx}lD?_gaF_k9bX5Gz};hHzD3z2Uot%zjyw%y**j2O8fY&ze#af%fX3NZR0=-1-6uJ zJL9%N2?;~nXzX!FJ^qmN-T!Bg$}z_wq!U|ZR0F@XN!Zg-qV)IRj9&PW^1HNp(H=q7 z+W})$wEOD$+4atOq^hw#snp+2Ia&m|kDEh&!%xu}7`-WHR^K&FGQ5Y=!_+9_7c(jXnh=_eI$CvUl(KgTRcT|& zXN;Ck8}dU-t_tt2T-*Ck9*$i#i{Z5ii=noTxf$mKKG^ME>e~38m|KTNodcGqTX?IM ztOsX>VZ%yR%FOX*gAGcbNujarX|LUZN#g_HNU{v!Xq0f8X*6Oh7mDz;$%^;#4JU?9 zD-|@g@(|`M!NghK!jA7vb2D}^LWP)B!wu(Nm_%mMRxR};=Eip5DFw=EM3uq{khS50 zGG;=H9yZ9H2`XVHYv^)Q%)vUC;UW`9|V%I*1181t!YO$vy-Vn)So7#~L8OBJU1;3tFFaFmxac zM8ta&oLCf<@Z_jwR@Y{-nbG9TpTo6u$dE-KFSE&&*qrRYn;H#XNE8=0Mpd3_j;7J$ zgOG1yMR}14{zF-fS1<{N6Y!3{y~?}N^Jh1qsXRQ`KNr?&f6lC{x5g1@ZMhO@f)zlE zlJ~|Q<8T1%pB=>x+kCnym_dMgmIqxa-)_)0W>}W?FCY|TgYaS>>cf6(K zrw)yXof#)HDSH5u>V1;6uH&ZnbTBKzDz(%~I_@eTC}pF0yqsao60hrIbhKU-=co|S z*k6Ed@1_sIzvj-;egwwbK_cY{g1cJo6qDnF{J6mQno=`R8=}BpQ<*@1J5w0ouNUrs z_2hR4#L;QpRIl(*TEdEu#lMp$_@`;ts(tX28IcNmLlW-x1kzV;c}og;xTUJ2n2(82 z(sImW%};rJ+RdlmkTMy7WdlfnGRP1{*K80;#(F8216YeunZ`Tr8j4|JV9KEu4a+F` zSg^GS4C4`W1XL^+BTvkv$K;dJTa}$u%W0M!P&OUAX!_KUo;|2E#~?G0eQ7jxG80qA z5&;b!^)2;nC04xFHf|JnAS-{PM0PK{Q1wTKX&Mbd-DM&kN^BXv0d8@+VF!$sfF+D^ z^r-G>fVygaJ!HiF_LUFQVISGZlVi<+S)sL9L7Q{p4U-i<9b6kcX@E;;-vM-@2mzGb ztrkDsH1#pg8aLvXV;IL-zbCS-s{^M6$uSqw9e>h{#9IiDK<}GmH(w74+JuoU!D6V> z&#re-dYX_}1zox^g0Vvlf5NOqL^TfTk+#gIdjy<1h`d3UR%IC1*uiLMQf%P^33r}i z=QmFgF!{t_R*%sFyfrO^C=TjVsT=4Chmi zlu`B-v#v+^Bia)Y+!U~4h#UWH?iBr{+|Q7 zE*ChcrGfNzx;*dkU8N=v8^$lP_}y|$y9xt?vd2=3?nQrgjpF(kKF_B@)=;utC+y>^ zU80yO!rz*bSTh-kt_`R2Xi7dtguy;Y(_}n`dAp!r zykmZsSP~w@W2c5%>Nf$MWp<-y;YdtSk3Xk4f|A>gpM=mKwOCF9dGAlx|K-^$VAR2o z(?_0c5JOz&%QS+7YIc8yVf8a(NkK@m!* z*$**acKXOZO4Bp#Na$MbvwD-n=(Ir%hj8D2vQi6#$LDMB`lwdJ+EwoKGF+%{x+JGE z;1~(yzxk4-Aa}FGeEm$F+TK|_Z;!nU0Vhfgr+Py2Dr_T1e*34?s8OeUw?S_I$cZBB zz_%YV_auFEeA>SJ34iz>;8G3d8`Rm$8zv@6lmMl?F zQ?H8UhuoPOUmirhSSzn2FHd!Y9&QB=|rCNVK2 zyiNuIAbC9%*y;v`!_g60U2wh`2FgW)lc8EJI^|ozKcS?0G9Wkej<~g|h}IrLk+Nyc z{2YR5i}w?Ghn5UqsWH!1_qP$>tOoPFMKY~uD$`Zc;ZvRxV|@=Hd@mNlJ?@pTdiy3< zwi=&?M%{n@J^-xDTS~L5+ewHWvsj$TTcr*%6Rzfb0}yx;iX}l)EA80>;(&e8hR+QlXG2or%^ieW^W`XER1w)4>sIEAhBpiE72 zgD2mmS6J0WwjZFX&AYF|%8AZ}b6^}L`?ew<+0f)UP}sc2a@A96anuO*l36wPQ&EqM zMY?AD7z*~}o%bCIL%xJ;!%~q=d;?W>fWp&ao|2O>eyBF~=LCpMx*1j-J?0V{r+{{S z*Gj>J@@E}0UaGdA3K?3x#F15V5PS`4tS+mSPcDc_JnqBC;0Iq@fk{Y#_(jDuYlaVr z(WSMgH5OhEmW#$lkOYHlXNCkhkf69^TdKZ|ngG9v#qs*7E>4HWaIM5xecAyrH0VdQ z+M0Vv$1xcoGpnSg4zn1Q)(4a_I4PA3+##=Omd{04y(Tp%NEM7pSO=n~QCDM^S|E^B zKiXJM`PfPSO;#}V%UaUjw*!LD-Hw>vVsar7eEsG@#sO9`<5$0$kbs`YlL7GJwUr`= zA$aUB)f>G#aS550gVasc0c6^EQGy1R7PyxpkMdDn@K&%s{aFy2|7=+8DinpJ7Qv~)J9^vnT-JA?yE!sqvIXDEIS#i0Jf*l12NoXDKA6Cshhdk6z0(&!t(hB7ZeTW zq*>R$4@s|qQcHPgEhaQ?vp8HH=rgIEhkU6K|2K3yl&k0Ft!kAa%1%}SfRJU;H0E*^ zuGRS~r|LS2I>4Y_$zrL9eXmPTvy@3I$BbS`%j$jhC*CyAR6F2vc^z*M03(i_3DIU) z9hSo!X-FE*e|7uJ@dt1eN_my>R{C}0W1phVXD8?uogx2zVn=GX!gQXWDVU&Atm)`< z%&+79qqY{JjMYl6dkAmBW=;B~)lag9oy%O z$J9NV_I+~EvFhQES&5%BY8z>xlEs1J9}k`GMb78y|DOWkcm>hP$bGy?iHni`2+`th}Vmji>#t>zW_)%WGrr2JQX zMsYk0;RMtp_lM<{kc8!oINt7Vlsv$>eyqNDRy(G1nU#7g^y9|gHB_QRT)Ke`1NYH^7_JG3 zw=Khg56p*`^5dEq1%YGt;HIe|s?KWfQ{2D5`$SmCooTqSDfNKmBJr4bN{H^gKnKBD z0sqjlP4bD)s$%KCY2NAz%4QTg!pBtEuBPsV%04okcGvcajFH6-b^6&6uNgKef~(qK z-dtq6fj&&cG;+7DXyHWC#metyS`AbP==?Jdn(R^}vtyac-Xw!vLbC_n)ZY<{hQ^{3 zlqV!XmdOvl+&Al$i=!~sZ?#$ip<9w>L-r_#6VY+-OGlv(*Q-_jMcKLlbtcW|G0je3$n@s!wqFS%I&;gF^Z}M_(Eacp7>y?l`8ntqFYMD zqN&eayNaFQ`sPDP??1z^%Pd!ml9T!H{ZwQFD{t9;s2O6fQD6`t@ax_1^;e{7z06v{%68h_@N_plZyR6sG)vmBm#IeNep7{OszN|LNGbxT$UH(<%F=_EgMJ@Hk z&0bz$z&@GCVw%`Yr|mS)=O-T#hP>tSxYv_=DE~gt`rLL(+(m?JMr;v58Pn;s;$lyi zn}6Kf&)MF5w`crQ&(+E&-e_zK{ST?9L78r^{*Sf!UytD4T`Fzraca^wc=ykgo|4@( z)=9?CGz}A6=EH;$==@3iw7#FL+VL6cYSBAC@_tKJg0b#6A3Hr3CJYeTJ~s?crmX_f z$CIeeBAik~fVmje$8fX%vqNVkB#((AZqSm>XM`-KB+oXl)zh4(WV#{c zK$M{w6(&x?6le=w`YA306qPoGt#txHj&|UWaD%aI%$Y9s7zvv?3kRD#>1mqND)xE8 zp`0eYiTS&wA_ZMF=Qk(O*U55x{M#%w9@&5WI){C!12dzvh_v)hwMzZb9qfM~Cn6h( zp>jv7=5V^-Pcw7~2a~>BjEl#Kw2$B!i^sYtyr|DXR`~`|`G+dl(bG_)?a$wY4LnY3wzTEGz4sOiA`y&_z$uVH0eWodaxBf?G=} zm;BhKkV1o@!e6pi6Zg{f`@EAh0|@p2P9*Qc8&)1Q$2jp;W%C@!_v<|+)L43WI41BZ z%}9*iD+l3YvNd7>Nrp%|x3`>23ANx%@IcONCmnHd$SjGC}$78rPfCO@*2Lh8VFbYBApX!D^}6t8RW03Qsv*S zc;t+bs3GrtgV4eZC8^cu(x;w2UCZyAseo$8FEyNuzeJM1xvNFde_^JYxAth71jHYU z>QYRnK^OA~hw%0ao8$+}!vWd%^Z?GBJ^I!SMZp`%BrYIj(T{7n|0}Tikzc4%l#_uk z_{}K0s*nq8j0=nFQ&=n#3*JKispvFok`Ma&?ea zb5rjy?Xp#xiLeYelBdA^q%AI*sGjAy5^{b?*9hZ4IE8qd8o*|yT?%pWuwe&3nLKhB08rgGacz%nbocX(?T|cE|Af!UX+cIle zvVibSS=sbW^!Ol%%_M<^DCueE5b&(jebKM-kZV{%5}DN|_!jhWC_hwKA=3a@K&QVf z_zd`Rc!y*j2K{6TWKVG3!)cPe_2p~CA(MzU9=8Ixx+fmMoxP=fv4WV@tlb}Cga+3d zPQC(KY(p&%@~j`Pz34p9P0J4T%D}x#%vN7RIIt8H82ae&hHMmXhI0MvVaMXfTKnJ> zUt+$q;!pAlb0eWgr=&3LLBMOkuMxg5GOUg%@Eg%V0cs!zre>(urFWQ4B-5KMh7Vgc zp1FKQMFC+uFI#DdGdMXH+{jBGoBri13xGt#%;P?n`gfH|w&jTO@;0&AYKK}r>VS_H zy(T_X;u2bou>%VypVMJ=4)gxyq0VNDSZn96L?=1;N1_Q0yZ<>yFAhDttmV3^KGPQ$ zlkXgd)gLgLPAFC>Ca7k*c7{>|Knzsl=Vd#9q*KD-6Z!Bjy)SDsFtOo$PhNXXgoSU2 z?4ZJOImCFQDRo?kEHYu!I(G}jH=qG= z06dIf^XAwZX|jkZE6qkEYkxjZQy&EIq$oWUaaczSdc6J?+qor!K9E*qVk|8-g3p4U5xWT z>0*e!R?cW|N}P+5g)lYNc06Vd3&2-f2&0TIm7z>mb-%lW{*}9C+q=($TsZk#CZ9;B zy$0lx5oJKW+E1G4O_tLD3Y53QeLZyCuRc9$YMRqsqVk4oBJHKD`=KwPP(LMRURj|> z)3Bo@jiBy?_hXOy39$99j`--%mt@g23n%W(2d9zsAr0{UOZ-o0)1@Vmt1^pdcjkSs zw4WUu*ryYt?o^s2sJp}TXA|A9lv2Mf4{RxUf;j*Or9r1m+Y8^ z7y=3X?i&5b+QoY(|G}DOyFuXF`)&8yQnn_(vw78m?cUSCZZqMQ{q@3Xj5?S_eS5nC zZ|u$~hcb8zXo}7?-|(n;dKV~Lv9FOz-Lbpz&o@2X{Z+kW+aY%c*Da3N(YBqmKEcDCH6RKHIPdxCZkQ3e$v zjFPB&w-&qc|2359`13ajg8lUd<0@w$&eD~K#0Jo?&6QMP52VQ45l+;6;b9qNTD?QU zVmbvBAHKnwP!lF3bz)He4v-Zu0mm)JYk#nH`B zs~=i^*Wml}>WB#wvUQWcidl(ufUSNRLNUVGVHSU-GGNfRNm}Vws;wMB(^Y;e6);ti z4QUlOP8Ch_7D%Up|vnFZuYh!+V7l&-a)~y7X6ydv4e_ZHvuBDZ3}c~d$^c!Z z-f>r+7~0e)=Pv}R>!>d?7}W!14HDRaRkMeuQ&dTn~)5@jtV`Xuj~SBF$I5g)v? z((%h)7=a?xc_(B1=BPq19zNMvqPUNjD;n8+{U$~kI&LHUyjWP(;eumH4QX`}k>AAM zNarT%(o|(y81%LwI?2FMaeS)v8oKrT`CIYRQQn({DZ^|C0d^8CoSO0+n2~!V#dEUS zi_Emf`l0W3HMSAUSf5#}ISb@8T~oJ$*PVr&8*qx3c`Ks}sAr(m^rI=3h;cUF@=T~Q zJ})lD$MPqXgo3zy<1pb(v6##oaoNtQI&Dtgkb(uIUUm1DA-X7Hosw}iBfN)x?I3%c zZh|TGA)xW!axtes^pA4w>p$gsFChY@hM{sa^%z3+v8<16CIJh5H2$15ECWe;*ULWC zs{P#5yVzKjvt~*rv(B5#%sOV4VKjH1$`h@;wNW#BNeE8`I36K{qP+AqnK?f+9({9R z&daQ7=|Tu}ovby+i`)u~hThn`M-E`UYTbq$%HS)n1Juv&9`&FO*q$J<$D3=b;bRsr z24hS<_mrpFr8sxhFf|WC*iSXBP_vl*b+LV} zjpxW#DZocJ)U^{j(IH7S+IML&Yq(AGs>gku&UDEJjv*D_CwK1p0=;Bh&$ZU?!;4R9 zIB|>P+|hj2rcCwNM;^j`TL@h2Xi}zivJ&yjSi*`l!jfKkx2A}P2Mh!WEsAsC4@#3& zLtXd2^M(iZ9y-3RfA+lRu9)rhT&U8h8e^P&*B{qi3p)y`$K5F0K} z0H(}RlOb38T$fv_YecGbdKf_cTN5Lsv;StyXZREEUtf>WIintEC+N0<}7neM|sh}mi$QCb_i_3Qxbu`pb|`v&JvUf#41%qMbV`18VpW#GCLvOos}J4!+4v65bC!O( z9|HnI2J!@w&=c-w*AEi=I0(FuHM}Ps0uhJl!DLE!p%s^~R47DsyNRc6|E=H2*)^2G zRrqC;ntxq#*Qg(G-`NHrhQ`;4(^iK=@hyNXzj1+-#M{L0hg&XUZ)ASY^7gfc7x)ry z5LULgMm0__<@H9)@Us+$v#d2cKFVcZuhv$zvt#bKm7oBC(5>^I`-2AiSR8sS--SOq zB(@7i>XANFpkcblXxjmWrZ0_Jh@?w(PyyDcmz3?hmP9En=`Hj%oRIercYy|vISzR% zx=`Tcs3(a~_Z3H!K^8Q*_aPjtrnFQsRZs*qh5<&mD#50gH<#m({d2m5fDvptzQq-pD1LkO<*IxDc9d1MA@UOdn1KLOqkg5+-SwI}&{7m? zS5Ky~9i><0^Ic6o&Ln?}2jq{l|FJUhht>BBuOAYwixO}`b1DwuUC&|~n)8~`yHkpB z*3d`h*(cLWmCsk-)kIhPcaMuEz6B=KwCf7_#?^N`T&fVO6~+Eu==-Zb5L3YJ6gqSJ z{?nu%`OJ+>Hpmx3!OH6vrhLOw{i+uxoi64$)7)i$=(W5oc>WcRzRKJf`Y3OhGH48F zY+Sy02hEW{N@akEHSxRaDcO@)IHpSpl0G*Pj=ePLE1`;D++8}s3eI#o)_$1#V)R3~ z9_jY~cgNHl!yxEuiTXf3D-iS`H2SoB>YIyPpKrF`@Z>2^jPxZF6z^b!xdiZL)GJ&i znKHBK6+GzAZVP9k&Z4StB$9}6S4{M&#@m=BZY}P5FiA=03EVLrBe2Ln(Y`HXljJ^Msl4bhn0N7z8w;DzL^E%qN9!S0 zD1CzaZuTLvrFn~EthEVB;Z^PFt4WHlQ^iiT#YvnBUvh(e&Th_~tqx>I4Z4REQyvHZ zej{f>+>4PQq;OQE8B0kUlSY1V{_Q(e(=hCOlX*A1ty7UD!rQTFYL5k#%rf!80a3~9= zqXhUZxlq6<(MD*dZ70-@Oi6nqd)N8r&)}De*{HDzjv#PWR%Mx-iT(gIYm$Mp;P?d@ zxGcdTrlDNsWLt9RiR`(<1nIc932x;NtA7w*$NuMU;yu6NdOxdGGIp{Pz{q`DcK^@U zxn{|Z^2~ZdXL%Xl-BaoL&*OAS#1jJN`~9eWsdO3;LJEaI0DhZy%nHCkkolB41Z4&I z&Pbe9BZgPS+CO>lkys&kqzyp6+j;U!)K-O;vH-brN6UbKz8uRK3V-1tR=wB*--!N< zxc0ft4UGJF;Kx~>^6Z2J(f{Vz*s2e$-SX)pjX5;+meKy6V2kdU?RwR*OL+!r| zH#Gol1-mbD1DN;b;v+-PQKnpx82DjjvEx)!&_2v$QsD7AVgmBA(bw>;iu;HNqN}l% z!f`__J!p}Hk@?Y0%_NbdwV`ebHTsH>nN@Sllf?e~*)-s7prVHd79pnGY9~kdSI#{H zFqo5}vX?t=uB7i7N6)M6%ht1OYO>`3cUGpvzR&$DKebb+QW0Md!erQ8VO$ctNEuMb zpcis{{Q5q>RH28LAH6ILa(q?^Z$55Qr)K%bn@>Kzj%AYD>!|Vs-MDfc=d5!Zq%A$J zRrcISPr45-9**dEvt0_9XtY|azU2p4aS9m?3c9Riiw&xEmmBS69}a@*TuU)yn5jI$ z&)UXNUaTlzVdoona2t$@u(VF6Z~Fz$<$jE?1uzwWtP&Vz(q)LjnKu`mI?Wqy0~=Iv zLWT>tY!UqND4!?4f?5Umb8Ol{+a@J(kqlpid-6NR6hk+p4Bn6$?@T3gxw)f{{@b)Z z>PjrgQ}(jj%+lqDm4B6==*%inZ;+m!lA?s%s@Qh^m2zK38v;rtTThYxVT?`zmU}&3 ztr)`qmj1QWl}Ko)wN6N1ZM*L*F1sd{)yHM18}5BhE_&OmxoY8)(lN33oI(dTH?6QwHAL+LGQ|}mjboevE!_JA7uG70q0!^K~<_BGCWd{ge z%!0IHBMj(uo@Q1$gy5W5G`}MM$=`))z5o0RN4+>s&r&U-7uYsbJ=umAJkU0gVH$hJ z)Ugr>nA8;ON?qds{|GACP4Ge(3D#Go9OAI@i`wOQwq!jrVT z64hj4(QRUL9X7ny+zVI=Mm^Fg{fL{*u&R;s@xey@C%*dd6j8gMJ~gn+vf~oehT1%w zmmn^CaBGOMUvzmewMA0ieb7ocdPoe77B--A*~BnXx+J|J#uz)Ux-VM zH9RmRL1SSCMv7_04Y5JaNXd*R48BJH;yi}cIo*}Is^7$_x3gb*DCP_fBDuaG+h$Mg zV&1z_GNEHFb*$pf%o9FpIV@Lo(SWC3sm^$D*tF3{br8w=DDr1BK$rtKcHes(qKSUR zcpz&p%&C`DZfIR4`xDRU44ueX=J}bT{&gniwL&~n(Qi)HntEIbSu?Ua_~lDj9X}5A zR@}WrJTOtmF*HnQ06)mb)gs7%u6p-PXq^&?S6348g!8;i2O6}($r^18F!0tFyQK@& z+ETS3jA0uLiLlx^5szj%H=UFg(v0PoZJib`I;q@7-tEEA)U}tpu|ivqp%<@4mOR2s zQ{xRfQXlBao4oXnlj2+~rrNt4kCjcmTrcE4qRD{tllq zCOjiK$;)od7~XKor+Is$S~V7Q1wUsY2SM)(uHT08s;G{5t^eK2Kgv5E|NL7qww78c zDGec9Dz#`jbIhbnSePl?`O0YIfsA2G&8h~hJ*59znz9su{V59>8U zo2NF0I>#;nl%=S{?p4H+aNDu4s1+7w2>8_0J5$}C$r~<+jP-Q@VXAE3>SZp)ii|l+ zcmQ4JXG?1gDMWP54hKyC&}f!8hHk1#alx(}V0lw*Uadgru3zUr|7KAT>EfWin%J}r zyW~AQGX$8qyfvkOH=IwhE|rk1@HfM;U60I7g-;8Cg{HFiHG3|pr-K0W-%icb72AHQp; zpXOwLer8Voe)39@mw~U- z_YMuYd0P{4_Mz|Qj)mw9rq0nWOR>U~pZ7)D4Q_6-ezUSaS&*k`+zPZR^W}R^ZhAS- zn6&Bs4_*B)1?+V^Nn{Sy`YY=}njVzt%dvmz-8Rzx)mHVp9sifM=8~a&sPqNC=0J>MitSA-ivZ}|M|$^%Sbw~`dyx0`L)_kQ#Dqvuge{2=>(U~V@u zH@=TSi#@&(R*u+xzQ}v2Hl{qVmj|{YTNn2mN}s5;JOCdE(8zd5LGP?9AL?qv#IRW? z%7V=%;Ro<>#u8ul+rXS;yZ9zGAExiMW z8jxnwn0>22DRvckS9bvZ!DZBTXbrW`sL+xf2ZQX0X6?&Vgk&{0-w|){c$r;++NCRI@GeyBm z;$Gi6q&8;$ma-A0?~0P|SI_jqkoM^Z&1K9Or=X5diy6i8tlxIc{?9$aHj|SgqDyKm zpQ@3hes3cSd5?sHpx+wV^y=?lqJ z)%2P#QkNPGU)&|Vixga}#kF)X(;^ky_Kg-ZtB2F1JSs!Aj1z)b~75vw2kSUN8%&(fa!t5fH=U9r57Rd z1{T!%j+Nw0K>x{N?iH|aHIMyj1i6Gk0IcfE;$h87gf~4p^v-G{a0D)t72k^Hs&Z3S z`{LnrRH8~tA%vJ~zjWYZK@bn7JL%BPOs4tPVlX7&zUs?kc`RI*A0n`18= z*Rs}=YvdrxwTM!SkT+&>cUrmvW%ACUS$k5UuZG1M!)M~hDzr+_uxWx~TI!}SMi6Qo zruzY4;*1hhU45Xo-65E2|5LKa#d#v)S7QuiD^nI;smz8FF-q6UaQL zGpd-TuEd~BvvSE|uvc03+;$47=39`erohlO(`)s!go|)92iZY5n~tHi67 zr^av0x37wAIYciuw3``-YE;CA(1&&aknE zaFQwG%7(Qzcnff7B@sp#0+3@zS7fp-2OK3@i}%)!%k`Ebtefpt=~5miQ{2D#b-qNY z{IaT@?|CTLn`ajB3y4(xp3?C-SWI;CTp~| z0nnYJJG)|?Jq%Pgs(pxQtp>A|P`LUxQch)8N}QF;?WYweq-1^rkto!C0%P%4TRB$7UP-C|## z&J#ZLFaWIc1qmSnrk6Frdtv0{r_{@gLT-J9e5O`9=|EfzAw8(-)~!v^1*w1IH&_V_ z3Ca@EHQn;O#Ca;2H(J8T5*IDM@2{TnC(koeq@XXi*@nhG5U<* zym~1pMG*KzVUMX>5I{>Yf4Q4i`W+h9%fGXI4ce2iLmf+&HV3mxL4+xzNhFa8gjJyu zQ5meBX1G9GmN27XUyYo+^Demxclwe`NX*nkx1c!PQt{nGI>0LQ)e$aJIc&8)uzjE# zQx1>5vR^~nY5~vP;4t-h%t7O$+|Nnk(EFX!6{E|UnKt#XcqMa%MW#QaZ}AKui8c(M zuTSj1F_X<3**CsAm`0FlH_dD6*t2HtkTQ^mS%skvTrV&fo`m>!y!e`d6&8R~JJsDe znNPe>4I;}BaomLXv9AA(Hkiy|!T5-=KID%G)#Wg~eh-YFX zZ4jyp;_yZ6Sz_5vo<8kAXGv3=!#1_*yv3~<#Zo^I0Z>dVq7t$lXuuE_OX&!EoD<1q zg`wC;bTtM{QR!%eRE&jEP6e3s`Vc8jn^ z3ARvBiJ@q{YK<1DoK|Y%rM}Wyll-v&kHJBK7oZ%YOEBc4X%p2IGr}x+_ku6ylSc2* zWJItauLYwU;ska7xb+(tm*Lkg;g#rRDJhUVT%&#jdbuIfxEg)1>sE`^FpNZ9aYPwN z(^RRf=!hLKE*-%Rp0uMm*+we;#_^q+kyQH_!~lJO1)fUJB|U;pZ9H(-7^M~!3I*G< z#Hqwz>E@2Ah%V(njh}j%pQcgH>}@aZ8NGBdY}LM- zOv!z7#Gy5OdNtI++!&-mS1r{kI24p#x%_Qb|8PL5R`ha57|fBkpA_=5GZxPuZ9iuu z3c>A7S3{9ztmcVDaf!~_l|-eFW}p)XvXrJWfLM;waL?7Y-ViW(8cX<1__RkFfTno+ zOOzVsx&az8SvULQ(r4k4grGry20!%@(IukAmfS7*Pmz)71#)&uXn6lnE0 zDiPpRiyTIr@F(6H;$p2l{4cC&Rn@n=929K(lqv%e??BHnEWzh( z{_X(CFU2jLdV`Pt$N$X1$yVTJPW|D}iKXMamF9CS9L^gP9b-%n0+hs0)m+*QweDyL zt2KzwYS-0^i%8O|`t<GUOrAyEdEy__QLw-(=a~wR>2j76QkO^?J zX&}^5rXFyAlNUGEN7eVKeUbXj@^TQKM;hT%D7AAKS4dSjkgUFHUeF~;QEMGE4S%!a z2L_&kksE4Wb0VeOj@)fzDAyl}KbuA^|2!&o>*a$j#&G6whWT>>m~csHLMkOh*C7nT z#pPMJfo9^#Snl{bS0#0qUjO-O#Ge~FolUshty4o*YiM;XR2kIqsYT()LarkwA9r3> zd(28zvcQx#PR%zlz)v;3tMCbrMz&!Bd`S{VqvHJ-V}?!YS1_!XGn4bQ1CR@ykrLS! ztA&E-I);i(A)G4a(b``mM>3tG9?>X7Xb~3J`16{=`%iq}ChoS%1{%h1yp~@en2`4EMo&hm?ae4)Wv zrUeWu8nmQZLaMm2t$a&jOh_7Ct8nlU%3%>m0%c2SxvO=6P+g)~Rdfj7PFt=T;%|ta zL`u1uR__fL0XZoc;*C{S+iw}RvIHFY6j78m^Uoc^*p)7FPwK`?U{TIxoVu3@ZtBgj z@lz&gxbil}E6Y3BAFq|Z>kT-9O0f=5uoqaVL#r^C?3`17kWPqZmk|Lq2~nBmK>N z(-4NPidwVlJiUH|w?nJ;tOy7xxtp1;S*KD*R~W82HZUo|#9(JwaZamy%iu3PseTwM z(UVJ^*Yhci!B z>OISYQ{xA=-1l3M>o_3hN||&7l)!a1Ke=@gUhMF<=ONdw{{kwfq3Q!$u3K z$lky~%3CJ7j#m-1bLUfFOKy4gu^Z2ZcgxOlWL=)~N)qhOPQ3C$RA?z7efKH4&bWr@Hv!PE2dy(sxzEehfh$v~91Q{HTFJPY^w^ z2zx=GA=uxsW84hIq!9Sa17M$pSq2)6>1di{nJ>X@;`&glbMl3YFbAy0fa~Jb;Xs<6 z?5Cp#{wz&fjF^;N(`X+U_hmH5u}}vcfJHDfo%>FN>I~|j32yaHO4cN^1P3B?!OhwC zz+dI8y%-P-fNqlv?!M2AiC~lmYa&v+ClyEi;p^LLsJ(E{;F)j|9SWz zJmKkQ>OvA$@Xe8>o`L*4TpR4B-!t(|p<7q(;;Iy3^plt?UIxG@)3yP@FJ6hDUK zPBF02xk2~Z=pHl@-xN0d$uQA*Umg;G!{boZeLt zcI~c)*c%pb!?*K*9*^NH_8t3_*)nrGpLCk~_S6X0S57BxtLjw>oUtIhs~ZJm)nLoU zBh03deip}(T?^&9N5kcUPtFvlp>u+)sY5SAfey}10gt3FbvNK(KTZv69%&5G_KC+Q+`O>vNm7y}m^7QtO_<)Grk$`XKIhl_|RBAth zDZ?T9xh;ep@#{@r5YY|B>btf8;l92@E&9q8l8P1i(CvacK@i}ec#`oqA22v()iH_u zN(?vNX(7!N+V%YNZ@n-M^YC%+l4{%0h56^ev*bg^%+}`jor#o0s#PhB7a0wX2Mrz^ z)$w8Bc_B&bUerG)nn20ih0bW4d=Ehx@T_R&^(M7VpX z8)?je43Iu^U$6jUx$Fu;Doq;izdXBDI-H~Nq2WuUQ!Hk&4R2mTFz)}1*MxJq%6HOM z;}El>vCQ_;yRAfUkoRqeWkw7M4+qX6rc(<&ztgIZUNxtW1LBJbY|i|~$D}wUm2TKr zn6ey|Sn358>#l(s$TtJLU$d9o>na|8)@)ySAb@#KFUY;jmGs-{>m{FFDRn@8!!lcB zc8n{gkMrmm+XQ}%C>QId*>-VK>pjXK6ppMeiWQFQfDZ1CC0OPCTA;;EjW2*IEjIn zY(DdtNb8#PSA=HPjoO1mq>hV2)Z6q0Aa`Dcv})k9TyEYd%r!UL*nT6hGvLvKMw)YA zbq%jo32u_d4X;KVdTIu#6fXA$Et08Qd1)=IW|oYsd-KT#J*v1SK|IMm4LU$ZqL>T42`Vn(bHe^%_yeEQe^Issp+0zImg;>>csS-qI7fqY3fZ**oS=1k7Nyo zp@%aIqjJ-R3!TChX-%CFej$!fZ^sukSUaRdz81L(Z}+fgUj;GNHwA~5>y<;ie5vy? z0nvd=-}e!x&y}*I=@YgsisYX4$deJZLp!9uY)4Y%G3PI`XE5<$OyZ@c`tAW?+q!%X z*{!##(90l(BoQ{csTUk0=@%&az&A$5_rk_3G%AuDcGQveFlb6Fuk3f38Ph%8ib=&1Z$_SV@VFbnHTU%8|aC&sCtFVLva1s@%_ znXPz*H~s*l=23Y)^%_qhZIVa_+$u-!8kvgxmw`}oeJ7LPz7AL;%)JAe-p~ZTGJNCk zOCRHtUBcbQPPejIVzIIB=e(HK(A?u=q(bXaCB?*=Llp8E+hntUHFh-B+E0zdGbLD# zS6s`eFv97-O3-LV_958$Jm#!an|nD?HzpDl+yR+R7=~YNd;`8lYY!>6K_phQlJ|K1 ze_=w+T=qPOj~93)6tWS&vzHT;B}cORryfk->NDn~-^wpGu>nY)~wt8LX;%)1;KE2t3}a=7`pcS^Y3Z4 zXCNY3J5F4{a)n2E^e^m5KkI9LgA@kl3syS2=(hWNHstBeHoMLCSpDu*H_+K|%SMEy zjDBM)4@@iWDwe$YfohNiiF> z?yovLvjxgID|(2A^&k1Iur+-PawG$ z3%XQHu8KzNv=N}Sa;X<89~$k0o_&kM#w(eDRU&aEQ?9wj?Y?@MFYDkdVQu>nuV$Go zvTaE4z%x4;9&z5um{`LH%1`2BlO(t^oLHn0fQG)awPcrCarg@wX@?Js-B1^j(af=O zjHVl;MRBNqn%35G9!!9wuy!P2Wv35)Uar4bVZj*SBS~zA-H^Vw!#>PUEepV@9d#;C zdjN1!HSr7VO~`#Ptft2xs`(SOg|;5dcv;P;@75>&ap0Ca{ueI&%!UAzWYW1k~Y2$+GJ9Dwi*;bz8ytK@l_n83qw+@+k&1+iV#M-QA>BcH9013zZV zp@6{OHYx(^3$5srEXaV68nq8n(Qe|MZu2fs! z?qDlL_--}{{)2!mIpvteRl*1M4>e*BkbmN$m`GbzjTLacNo{Hn&SU++jxFdMge9=4 zdxm%aqUMcV7{<=Pmys;8MSUcJAs;dcK7$>q&h&8J=q6B0);|944`)Q@;qj+K#zuSKkTf1+vaYL_j8H5Hvt^7R1K*)ArE6c~BSBEQWg}UKMz~h_XDx<+R=TXXC zgR4W<`j0tDJBPzAN+m_{DWky*!4~`Wl;(J=zpq=fn9Gm{j{CK(T*?+a!dVBBrUHiw zLzkw^o+SQ(ZE;oyed;?CUOIJD(!_nOe;&BJBAYA`1Bp27>}I{~81bH=Eb|~CJrEHW zPj zo`FH!L1ou6t;khx50SVUpHU)6A1>Q+u)C^YoeU_dsk zNWWmku4<8Hmwt{Ktp)I_N^ZH743PEKE`)SGNUNm6LKAOweV-kS3^$q2y!m(bR$3>S z!VB9{15bgi>z{vfwS~>7v&t-P7R{|W`CRn?O4tmBNu6}xTh^BenYqtBVKWd;`b_S< zml!(v^S!3-tePDnu{K^6gCp)gopIONtSe;Y+lRnHn|{h(v#lC$t>caXq00z3iM`4T zYMfkGBQ|FT34|s9iierA9R&sInOn-xi`#d}y5J|$>%*?|Br+u$3z!HWbGivk)=`P%%L?3(xsZ;I2lASPoIN$(&4;u>EXdoQEDHNNuU)HuaMpN zXt#x}Y}>{+LcL7nmQG*pFDsB=UDdXhB7`w8fAe<<8azKS3A1gBH|$N41OhuB3`yT~ z5Ty51k;xQ&E-w#NdOI`f@M0*4fVC4rkyIm`AN5_GG8Btsni|}f*WL~}PWD={;$!+6a%tmZR6N8x^?VIB zkfe}8?Z@NvPML-s_px3Vq;;*hy$Fd|LY%2jg>6K`E+?y_M7K1n*D)nH!DiKCP4VEX ze+kwy&ubUVpO$UwKmVTK(^W$|H0up2`2dvHQUyCujqG*S@AQL@FevHJ$1j1iuDQ}p zB5A(hAZ^dfFNF?ExwO8m53tHy3kNAauLEF)my*&-u=A=#(brC|#0m=QOt!>~lX%{6hKAc6y@Rkd!>w4GHw6pZ$zcr6C5+?P+z{H3kxOe~q%D%GZ zR6y_g&f)3rb?nzE)hjp>4ah@LAv0-yeCLt|G$&sw#8X#y9=U7pSM@#vq*uBE z;07o4FJp706@cjshuls^6S%kvmV|K#06)QfFMJC!XtT(}s>gzZ`M@8=Yq$C>sX?gM z9|7Mq?x7%zr0NsBPT~x`TS_j)cTMm1k+Mny03@|lE^Lw*lhnt_EIuZaJ3Z4prefdz z_dfM1NmPF6T4>p?WQ-|0$@36 zbQ+4=cz?jTQzI7S-n?Z0$MA>n(24%NYSDnQcNRF)2Pi0ot9%c9;au|q z6a2RHSa36K@b1Cm1AJX)HTVheZ3kQ}K@DqM;Dzw%c%M+Hre7({iaCa_ODu>6Bt}&R zVW={U&mlA@V&IuIu0hGtAlM<`Y?J9LrX>FoeDTq#AIJHu9OZi7EHx0O%Xy&){|az{@TE#ANf=puLalQQW;JL4;-P1f`Fa^Kt4JeE#V&c>0d@l* zD{S+#RCEVk<{-Tbb(aNI*K+&p6kcj}SO|HeFX72>H%#ZSN-qY!!RLxLKa#dK%+jVg z->{lQ=iI97dT8a)(^8^EF&|AW?j$vl>RuJ}k@Pbk3Fa9K?b7#?K<<*B{ne+bsoqyj zIL!AZN9fUiQH@mSq~NZ4$KvTzpho(}~dkA>nt5KZL`I|FAx z@kfoJQUsN-d)+fE=`A@lR@s9(?sh$g{@8KY^1zVE5^U(!`yZ~K#EEws&}}O}z`|01 zQ)|irUYL;>P|TX~&4gy?*s^{zIXv+i8llRPvzM#0P`Cd(k8PF2Td91{)kUwQr#@Yn znmp}>n{@Rhxae1(38n+i_iA06cetljm={@Jt^{a`WH;my%bQ8gbB;!si&=E6d6s$)syE`+Rgek#lorA+qop#=HjK5oPLJsaIJNO!`NW(7P%!Y<~!gJrI zLtvP{H@#%{KkUV-L7hT8U)OWRq6fnUnd-lq`KHfKwHhHbBY|J8u=$zv z@byEsleidt`u(%KDG%9^0Ltxyhctpid{r7ZfGoG>Ftha`Z)+YaT*Ee5l|mH;mZ;|r z6%JxmG}4*gtHSTus2Xm4q&5^ARsu$!<~GOZ3X>V#yXsRJpXJc?hM7$DlCAVn?Tr*^ zQxOs{a~;y4TN_a)za|m2YGMur1cRbPIF|J%32^G<;-B=(2k#>;CN~rf_#rpWk5KEB z93flEnG>3V0qI4TKeWRz%E61K6vU4}6^-j+!+OdE>BY`L+!&lH>6@?Dkq(Pf-2qcm zd}&sLU}xg3bz-af1wu+ui9xB4J)oxVp4$-3+SRBRg`bT;y0~!1yOd*izd?ut$o~IF z`rxzHU{vm^3M`XY9a}y64B*vLx4EN*sbkXd@TH{>`h6{EhEII-jt0;0!YJGl7dhuF zy5Mw>p_CaA7L?>utV z2`5kZJx55bE1^Y~X4x1N%BgG#EF0LX+0ArqOsjC>Kyk>hK_*`yuGtIhbCaLjT#%Vea~JJen|0E-!bUpYa> z1L>_fFwnGb!5(cWGgr4Jv|iP*3(})(7Mv-BmygNYB={!*PAq?sxy@uyU}wDXQqpxh zDdMuzPXKxJ)}`&AB!juiEWn}}M8k6D&aOv&c4{r{Ip!{2yviH<+gv*PhO(O%_yxI= z*|iVQ>#Fs4Ju6iDQ<_plNVf?@LdNK-DaYLMRtLz~`S^&xb^k)kgK{8Rugg>smj>nS}#OCQ8$&bkh>FKpiAtsg%bT+0|eW>OqFEb6Z#d<%= zbU3{j9bV}*tO#^`|H=IZF}rg>78(P$AC7v@WlzH_7JkM4AZ2wm#LdTo^bQ=}T(+&8II!kS|kom0luhoZ2)yPc@5zIoH| z9QQw;l*pqNhU?UaKqia1mqVq3Jet8!?UN759Hbbp+&Oo(UCgm-kEX>MB z{W|Ed)AJh+cRn{L0G+Buph$3Yd%xJfSXjq6G9yz(L>u9Me@xy*VMWM0KVP~%{%$1e zjQX+WUKv2wP{LMy#+-!g4|M`1acAae41MgwmZh!FI8%ar!vNyXJ_l(f3h(Z0l)Q18 zCVt~3w@D8246i440JYW8Lz{)Y+tr-w<(2R3?#K-lUVl!@sj(JjmCC)jgjcgEt2+ob z7<~lOB*lZ6>DMx`d;t}`;~$7*#!oGtpD?*&@}rG6%$3sSBt?$pD`+RKJ>8!p&2;R> zkY_4j`_UUGL2G|biEBQKR}Lsig%UZhe(dF+zh>=Rr`Ha(7vsZK!ng&8oUvymMT~$o ze>Gfpbze-}nz@LF?qBrz;fF>QKz6<_+b0KqF{H0X^?g}gF&ClRut@4W*h8!0@q{I0r2DXhcA#Z<|(l35!oDj6C)O zlRPZ3r7Si0geoq_nNTjzTARN$ts2Z}(e2>>ZHBSl1P5TN0kVAF--dS7KkHwzQ)jW& zdr=*4DHz~^TI_|P;{Wq(ZW`MuB$eEC)4zzIiw-^d7dL4Kg^?IC6l~QW90q6TK1!J= zDl`~qfz*pJM4su)39m`P9Hf84SmbyI7x*%Q+y=JHjw9_U?!Hplo4=f=>+l^3ETRWt z2XH)0t%+53M6p`}=3cIr5HIEP2`*U4VdZpUHYVPCt$w^Wm2uLCqY; zGWnl8Y}g0ntj=WwPp9E$ebikN$XZgedFHd~`$MTxcSDvD_vi&5v*ZUq1WjHRM&NK@ z(#K03<56puU-;Rnam( z?!>!3>MM12rZ4Ls$*tht(8&&q+Su$|j48jEYiZ@t&r_OMmuvl&1zMB?9!WrbcIorp zgl4V2XZOeVD2*y#d0-s?DP_-+R^KLcc8@(g!UuoC)Sd&#IR4$cB9#oUt4*iYH>$9 zwd;V2c-FwUpd;UVfk9_CLFs(ofVp&KlhaPHF=I4cX?`5FxCtMQAy*f0x?T!NPYw47!+ zp26jI^7FX=`S%t}$S@Z#!(PWp?mGTMeh)=ItD>CvlIc>B-fs~Anax#_0=l3XT|pI~ zJu8B1#Ma*YT~!5`!;3R6W#WADObf1*b3MWM2*teDu6bAAy@9&PEGQG&PTna4T}QC*n-MvEk~@JNpwvX<&Wk6m4bLkGJT&wdIqL2?&BGOg#x4ZjoJDx$&5_|l*wbyhCVZHX=7L0N zz>c4@YaK8Rc6%dKXg_X3qku}V(uMTjrK;xtRAHBvcU8NxCT{hc3T%zV(Tah@!w(CQ z@N4Nd#DxiD-|TfRjrPKPYpOz!u`(UAKGLcoS_;wMdI{&_WRE(cKiAwOI>U%wS@%FL zd+{*b?w)ic`>V2(CgdiF`nL`Y}zEo8exK z%SQpR4!#`@rVl8pPl!7}cH2Cs2d#BJzQZ-fH{fqqg~-4~K8bK@tFP610(~djLQVi$ zkXg=v7MA1YHID^WlWjP#bhtD$j}rIR2O01wAaUSGxo*9(60?V!zF6@Hg$@!$u(W;B z|C4(ME6G@fUj5aWnPW99nv*?{as-wA?}TG9py+Kpo#a57mCV0mlp5aX`NZEl4HNt* z8i(T~N}|LYniD4J@=7#0J&2GEBejH@{m_GI$y8smv^#xwg(^5uBA0G%qBASQu5rz9 zB$^OFN>AvTw_rRPD@VFa6%kVB{zs`1a6;h?2)eeM2Y?1*f|^_~jCqh!v{fkw_ff57 z)ji@@*RTCQ{mSctwmL?^avv+oG~Ld`Eye35dvuS;(Y0L)6R|pKiXouzq#sO+7`K3y zcy9*8;g=QCRhyLcA8%UBJ5u#&6~{sMdo6|PQi!ZJ+wSvSzN^v4#x{cb250O;g11+O zp;W&V>yWZ=Abh0q%~~?a-W|%GHvayu;(A=nFAV$cVttWyOX9MIl3*1SwWk zuto@;gjhkv(JPG_aIw3o;>5Qqg5B`))I0HlJmAx-LidU*yB`9$lTO~JRzrlom|zG9 z!!Dg(a;)Xu@et5EV>}r)nSMg;Lh64vEfN{#spQkWBlWd7;_nM@k^PQw6Tx+49r|_l z0^L#{XBQxoAdm)hdTTOsU#W9UEH0ycqOJ!#dFdT2!&Ab@9lSVTFVw7Jg5lS<)x85Q z;4(XRYwmnJ6R>kg$j$bqAF|LNJ(mQ!Ox6Z9^@SlN4UU}>MbHy$X|IH_A>B%ukeu5~ zU6zKJr90f6hgl$V2r7q6@_Is&uEw2OV+8pyri8jJGrs4-s&W! zqTpkCl)p-Z15DguLJx@jr36pNqvp|f52Ogzm!f3#y&_pT_uMTb5|i+B6LgA>Dj0bF z(=m|FB37T2i$vDx0OEWTg@Dp5qoOel`q)Z3lIsQtl0v)?x2NrLmE)~>>os3P`mEX^ zh^)J+RvZ1KqhzKWa^C*1p*3V&cF=CQ?Xz|a%t<_ur~HM;Z zu0NLl)^K*h#-o0}7>`)-D|0NPVB`{$gJNEW>5JE}mk1l;^|9N4$j^TS zB@&&&?s)5YfE1#q)LO!wUXd8TC>uv$U-*0p!>C7Yv}BG}fZ}0+^_y?CZoN>an^1iT zcu$HHnX5xcoLPKWPyhrinp1*jn=-~{I9Y@@$Ua^)>oTh{%I2>#U85;|)$5&TNZeEp z0?EARaU_;V?pJU4(4E@?L$Vdxs6+`vy7AHz=xJYw+aWW9DP$y{8B&>6PY2M zXhjp*#H>!3RB`(9`Ox-QS0_*IW4{IsX{Hf(R{x1|;fcWBa$*k%OY?qo)!P2~S459* zrn0<-1%H4~pzKVRlOGv6D-7yO04xvY#*Gss2 z`qAK7OXL{TA=^eyeS5I_!m4hc@Bkzb!Z+F`L!llt8Iyw1ReS_KX-O&!2yhRW=4^zDJfK%zc^i;H4 zN%P!G1Fv>M_0?&E6EB-*8$0x>#?{Y`VGZ*{xU=wrxBIzIPn~`XP`!SRK?imxF0Keg z>hc&L#@E{Pu2>pSpM%R;nQOW{Uk(o1aUgT;rmfl{zYPYxQT%2Ms>QOp-E4J@B(Xi<+JcFiRPmfzZt7!eE;8 zf}5`9H6{?9vLKlT0;F7CgXW_$03k1>pI94C!kG_-0re#hb>eWTC+OtRXM=`7DWAN% zPDbuSffJQV_=(W0^PhhY>?}-hc}@1wGMblzo-sH@rOfh|cd|r6o;6RBQ!N*OmvqkL zSnwJ!IrGX4bRlb0Kg?Th$ga#VuU~LyyxM<%p*SaTET>or#!59#z1&Hs_IoWbz*5h1 zwgf=a+pWO%5v^z0t!fwb6Hq968gFN1_kkYeO?icn%;x3x1lOUWB$@;HV5hELAg~O< z*L^#~2<3aD$Vsp<6T5!Dd+BRULdsEtA(ric2AKhdu~)Gj@Hx3_E*puVloO3L5m*Wx zU~#6sOLbD2yh4(F44hFH8cYNbgD6kU>MVi05WsTOL-ZatK%?IDA~>E>n6*j%Lj}X( zd`MTFkpDcOj0K}tv!nBP7h!?@qb0qWu(y|j_0Xw1fjSEnngnHqp5z%#TD&&I#Mo<( z0taT4g)wDs|7=+@a;}}uZDo+D3<^LP+CYW{P~C`32E&doKc?U=J12KN4`8pOsz>n~ z3;A=LC{HzH_)FxBp|}3OWF>}oAfA8U59Oe zLP~wD2nNPKo

6*_xHG10pcxEHED7RL)0*0bv(WsI35gpvpL_WwBrv8~k$G5c;NcrQo@J zUY2AVN_hx`Vj7|r&>%=BK9U(s7g&faEwggNF|ii4a`|-&Zlv zliW&eUthn;oOLHmdICdNZPn$TuO1aC*r!ZLQn*#|<7Lrx0Fgc(*p?VJsUlNk_pd;c zwb0A>!r`jLy0$)~$SY|^zw+Rv1~hochg7XMU_JNLpTT@3=$6U-$-H+=S3uxB#TyY1?W=EYMD?JyQ z1%~`J(`i3#*Vd^ymgZZSddWhTCHnPBY6c_jVDDAv)Sl(KhuPB$F09(8lMCkQlOp`O zOFu(rYjYdV;HE8%rTZ-3SL}jx-<6k23O#TUHO%8nMhfoY6rD0^iuRjapLE(;e-pED zRBzZ5(d?N6k~NoWLexd3zMZlkm;E0~@>Z=F4z{f*hO4xko`m&dL37z10oBAaxkO*&A7kS^Am-Yy0f@}KROlBPkX zc=yk_36kKcDd?)NFY4;ss0j73mqTZ2I-`!TpvWZ5VPz|=>do!m(rH*BQ-4c1&Ib#- zMstQ?5{Zm2D%Fu(jesHfdR5a^V?O{J0&w0`YsSc&M=sZA}p zbbd43>GdwE8D*U)Sr=+`=`8CfC%BgHlw&6f7V9J4Sq((r$!oLEU@QeHX*n>DpvtXL zZu*lwNpnsrfv_3Hl;{;o`8MU7jR`(|J)5Is+*Ts?^!Vj=X~H%F;#emalRZh&V`|$x z>Cqp0)~|>LO1C~$eHU~@1sF9gk4@4Xa%Txwz$ zb3&!=@$}cKrn9t8(^Sl2?*~pUCihWmT7$8$u_LalMPgAxAKWa3>xTx*9y&6XwO6sX z3Uu!s^1XwC%bMQ!KPV;%g-qcrU$2noSINni^AM8xq23*QR<1%At}5+7--r`Y*Ji`a zv;KTl&ajFl%2+#@I{y^|ME5gn>c<&pNOB^BRdOj8EbA%51FU@&>soc{nNAeiaSkQ> z*<(KRA{G3S5Ql3&eTI^_y$z)?eN>!DFV;-oA&+~zXHq7;azfle%{5chygC8n`-ZauS`qy&J+b4|fRS2A;8%+=R`e#XARtaXa2x zBmI%^Lee!)mgRDoJ0hkqjJClWF^Z=L``7E!K*HaqKh@2|KX8W5_*GweRmhXz)C^ah zb~be;dzgD>kQ)6xSOe+?ISkLA+#p1-*EB@;pN>7N&Dg7vhev#B^pFNZ4IdJT?Ewj5 zDA2pmJ@SMXPYDfYmQXmYsRtSngr%vcgPDqk_xjr0zL*LWV*r21+veIZXH-tx^s_p0 zc+2~mP>?h&00C4_h<+a zj6Ldo?$n#%!sY$06_YSaYNYuB3lx%|jkQ*ZVrs|Vx-jwrueFISpOA8c>X8yqU z?{Xqw^*a>Y0_0peEwiF8%V8txa{ewMo%1=OFCbf+uLe##7*8-SSaqfVdbyOUc+@a? z4VTxJxnPRR6;?OWABf9Fk|U#~jqX>3G|c(c)$FfS4FUfS_7GC>!2-NI39wR@-_n2# z*IVr8eB{gcVi$)J z1O_&?QUt6&WiwV3+p6hBfAGQUf3khL+NoY1uMzT=VkA(Civo>4%JAh!{WvQroc^kD zdy(YL61)7=E_k?AffRBXJ=^swZ5<6Q`{UsStm_*9fj%?2G3PQuJFMJ=0zxN~<=%`t zI+g-)U;64@n)SNXTw(oQ(B3AmSu+d&Z=YN8{|U$?q7dmjeL+9M0WRTjOU282BwK|e z)M5$NWZAV%Z)Da`oW{HSYa<5DgXkEi=gqN(0ATx1Drw`AS%hjrPdu?7n$vr4e z+qzPnx%CSC4z-`I1<%JihxqIp7h>*Z?t}-hGK}+NuDO+_E>A)?=lX~&L(b6*{Mnq@ z+RR30?v`bb8S6jzzO3Zyul&5I!?YcyD&cp+_xZ(A^={hPj4@Nay^^x=p>i5Fx{v?- zxv)_gpx2b1#nS_NI?+SWP#0&)D&Nc(PDxg&hgz**l9V7rDAkoGxQyn78C=1Ccmax+ zUMW@ycH}vgb+S5RJXCc-vN}By#Juiz%R2(H=?;=ncgP*ke zAuWMT~PrSoDNDMbv=NN25EzBVnJC zT+`REzYx`rsbt1zGeuxy{^o2G^90#(-lEA)o-$1;2_aCyo1>OgJ|3f}kWNL`&)2QIJf z5BEK2@?=ab^U$rQ*JrDwl7Jc^Z}p~L^m=QW%*u*s^`24mlP?+2o`x2SyIduLH3)SQyd$ zaigrgZro`V{6z zdCH_y*()C1$5Y67Ww|_)R1gyT1D%afbT6A$)xdq2NT)pWzGv2sEN7v4V(CMqDy-xc=wZobFcQPYFz~x%{~uY9H6mylENj@SmGGPFaIjqAs;<>+J?g zi+FRy`b^LG%CxE=2UG_nw+lzg&*tT1QYE>t8q!@zDp}B>IE9sUSBt6Cov&Y}U|wM5 zrtb$Cou|JcRO=j1KOc^Fy}{!l42Lya4a!mLWXJ`VJ`N?!>P$!vMhxUpeU9Vw7lO$y zONKVD#?az9$rGH82F1#&`GXfhkM+w4)M|g&uv1tp2T#<*+t878e<-}Bxa^O}DA`QN zUEXuBrcO}L2_|8l!M4O2*uS?nn!AnSLDYY6Aa-`Otg<++Iz_gyFEjEv$r5^X<>kQo z{jG77BSf#*{n|pWUgJMMw-NVUpz+pNGVywnhUE^_Fj*&~0M49JDE*?E0Ye$k)PbsR7ePNH7v>y(plP{0j2BIa_=J+5?%AHhMUZju}K%vr7pj1YUWZP_*dyYdKI&SU8_7e!PEc;jB^qt$se*XHPF@zKyDIg1{uS&g2D4* zL{!j+uM2SmB|3Y}N8i{%pgw+k5XFS$&+^_7Z;4NKI$B&aQC=TlxE=3R^Vu!-jN+zT zXm&?~20;ckgN*LHWYhaK>t$QG&*R2h1xTTxxR087!uJvChmyUSQPixto_MURN# z5E^WAh~v>0voB!@AREg)f({-xDbUN5 zmrIm^Npt_IY0(Nb?8>01dO^vuHrbI-xEJsdr|C4i@ROl4sbTN>SBmCFGDZ_{HVW|q zT=v^_O}Q_lz42A>{apDwXpk@$H%TRZ2rh6=8Qhw`4+F;&(t~{5PWXa&ALv1_Uj`~C z&p$E)5`9SeV5Qx7HbQsII{_4=vtZTb4!ML;^=PTp45_3#{mn-_#0Hl`^{D)USxsIf zIGXj>Fu>L4J{Yu2!BqMdTe3^_<7Lk{<-2qN%Co8e-a^Lm3?2KcPy>13Tk98F>vFgY zIz>q7l!}zHZ2Qc355dRnR8D;v&(#QfheFVxv0+X%r@gMht)X2rSgO{-@|Y{4HNABx zPkdGlN$)lktEmpVAE-u8>*v6BwK!*13Li%j7E`Bn2`uzbB8zSU~foL?|yw=x~aFUq%RimJAEg3EzjR`(^=tkaNp^}!? z@?Ph>Dq|kmD+lXKN8)YGpPR1eJGshpjG`aq_7}FPMX;-1C(_W~AI_#>Lok{#eB$H_ z^xK@BtnJAp?G`K6QKp5!Rn`_Q*W}`gZPd7o!Jb?ce5y4#^_So+g0m_}jZo$P_J97p zLF1ZT$xOm831W%H7Z|JvYMrxEgZl4S$9c_an)(w%mi3fu%2pc^yRgZonGY|X)2&ME z#5LG%qn=;F1U2Vj?f_1q{xWq6Onjw4-p}*uU%L?jQ@s~?kZT#-)h?YHu0^5*m|`AB zFL_PLoafY#Z;OH*r|bOU`Z?NlO>YuH#sKMoz3bDVg4=`DSrN?gbraD;qdVw2=4g{b zq>{on8YK-ba4B?3fxZeGHlxK0YE(m7)*AQcLna-FSXcB27W$MNADVQDjYF&(o@QlC ztJ=IAEu5Gy@5$L5cQx)~a6sU=!sF`{$l~Q6Awyne6v_-yH>eB&3HC2T$4k9JH8Ug4 z`}*EwxwBqRtf`UXEL{_KDvNMxv>~j^`Q`G=-&aG;&ZJH?-!I>V9oVY6;W(aO_fL7@2c|}=q_|zd@t3Ra7oEtX){c@$^HCns zW@LhgY=u_*MxZHw2b^%Ke3lKtW^)}0tPI(LP!0s2B!^Wg)9=R|9_PlY1dt^As^~hn z+sdD%cfgvwsZOf`Wia3~p+p~&!mH1tjo*`WmYAz$!ub+(8n%M~v7 ztjGY|J}9EwkM|1k1Z0XOC}UNg3B7td$6x>QNd^S4nGbm9SC-J-n~Q^|@Keh+Q)u>zQ>hR2b6_Bth0qnJ4Oopy-lF)7YG=RtfhS%=W5 z_Mb-KjZsUV`jSAxcKGsKte(0EB+0$XskH-`(VUO>SUgB^)f+PSjz*cLxw#FBs6Sb~ zJ#yFo!^p*gS^36L1X)k=bSsB);Lvc{AD7@Rha=}M2tCkC6C6mz^*-X0m`AsJW4NR) zMmm>3{{TS0XQcGWNyK+ekK`8Zz-BObpAyARYVUFtghz*F%&Ca2tJNm8T8t|}+e^tB zp{r>(0jv5VKqYhg<~SvSIu8b4(HY^@l(hr@>06s5@c6+88d;R{sYX{#LM;N~l9IAGg;^35puKT^NwX$i4ZPlxb4zmkZxO=bNyB zRT*&6=ByV7)TA>w!&3fH5du9lMmGlUI@Rw?ofluEwMDK3{tXWhBsCYXou^(Zwbq??O+w9fjHD!j!Gz7Z~DF zQSN(n9<(KP<$?^GEkJ12(Qm70^Gn(=cM4@?n}Ve-VR?;LLmco&r#)4<2@8pmssTfg zmKQ0JENFn*5Vzn`HDWt{wDc-Z!vC7Ler0yrk<5g}Rp)2x_QvtiP(`^TwZj%m?kDX2CXw z++6d#AKAg+tCgBgZ^cElX+&092I~%ut0wg`x^^$rJkf9-lltM+hN8?UbAESB z5LIw&2;Lusu&K=4Fb|Ji^@TSa-Mn{u<*~>bP{rr47>fYyu;A{lRK4=dSnXgV6cjL; zfyjeS9UwVhP*S@~wj=Z~iT;XcF;G5(hiJnuJ-mC|0a8QFOo2NN(+kGqHr3jM#feFn zv7f6!XQsJM_{mG(nH@PLi?rN3mU(Eop9_P!uZ^=pPdCNX#2*^lcnge$|BJEd!NKYo znjgS(q|VHgLnsAqi&E=DwBD8J?iXFUl5C~(q(?r$CLKtPX5*Fj0L-%Y9_qx{zlb12 z$@Yg0A~|oa4R=w^h=MZx?l7Uq^|JT8_+x^@i-#$E`O5r|40>9U+Mc8M=G~_auyn-jLBlkS%rGMuv#cZdyx0! zq)+03YRN3s%nT9z3}u8vVr3VCb4x@0<7OdthW{6PA~CvJ%29i@cIA4t#dxWP;;DO% z@?2>A24slmYB0DP_LJ1IkpB(DPClln78+#i$EX=fVokv0u2)t%s@EaEr4rr-&%SO! zx3CIwWKzDo{z`-u9nsDrI3h7xls|>5;Ry{Gh$UMn_T}*Zk9jcfk zQ>qU-)+N&*EHO~txS3|Ql1{Zla4xx;^wuN@@OPMjw;~~BZ?@RP4h8Zn6L4W)FxM|V z1en02ocwPa7e0c;<7iAE2I9)Tm*o>htDh;8G5(G(OW6{wK1fKmu54G~{4%i4=g2~z z4{4Dk^L}VGiSqw><8JR&UH9p#@LVsNLIvr~n{&vz9TMcBrwATP9s5IHIc5+Gyukpn z1w*pT^E|KKMG^oBns(%ne_Omg)(3Wv5@v^9MSU5DHcTK*A*ic<9J-nok6eKyfQyhU z>%BrhHJF)<_%`d#Ru|pi=ZP?hsBi=IP`0b;>bJv_G_ZRJ6*c?- z^^S)rII$}Fd={#2Eo!J0u$AGhW@Ms{fBt=O zt7S$p${`e=_4_5_6dch)gS4!WY^z-vwrkX;1LfbgYq+qO(VV>+}V-dknRt8CjBTm0bNO?!zOcuG4VK zVYN}G+I(j9NS_CL=~7UOjh`-b$G0vWLIUgh!=-Mr`}f&~NZ1&&Qd8cmzqDf&6xll0 zn9h%^8v|AU%z!+L6BlW~_E|yd+TI;=e(dg{wU-kNN|Ou7B0M!jv7ch`?^>*ym^LV* z^3SZ@PM~ksKmQK2G?@e`=>|Q5G@K#nJ?Lc}UDcV&UV%R8 zrVBm5V@df*bLDCr%(*5TL0{MKOeuyxO#RFy=QoDEOY#ShdiQ`Mv=GZT$t`a6^Vd?m z$}0ygufDQLJj1^0A#=hT2V-aHoa4Hh7gQ@79hR>FxVjSk)rg7ZO;Fj(kgp6&Kgm&K z{^;VLgKs(c^#O`bE~!S6PO>@$Lw@RV2Rn4Y&U!o72KaDF?kP)7K8Fgh6>2kjn$cdx=klFV5ZeDy?0XdOD9#vj7 z^}{(vgp5={05FPDhz%9l0FVT{7Jwl1(aMt?wJZ>EYbcRcK>xhTaJ0YB5>&qVwJY>JeqDetg znV#Xn49s`Ed?yn0U3Ex**ns>>g4(ASs`YBW3zDP@8gMA{p;nvg5!Fe{l^)$9^gJXN zyve2pFrg>%)og}Jof>XKpKd-?@G(^AY*Hg>A^|&Vu%C%)`adW+J&zP5ZTG2m2mE;q zs?>$#GIPCpBq(55WvhhKhWia;_L+jGJTT^&cXi0e-wxX*sa8c@K0%Z_r)Gqa84Vi+;xruMcCEy6< z&JW9^KbPC|+fp^zC#*us;g&$$XvW`*L(5togMe+$!uG&XlqY_J@N-KUFg3;=9YPzN z#mwakcgfW$`U4yP%Bz#4Lz9y1*VKSQ4XLcg(`&R8i6 zN9BJ|tv5G;{+bKbz)yw^KBN|zz5>iiM19NjEirog%g3`{CKzr>XNbk3nV49_{Jhgc zmPFZD^~}+Ull)l{`(s=5%Uy6tMr_Nvd@PV%Q{(*%xvJ(S8GN2<1r-cdW|6564AQSL z&_s>KPv3Wxi8jQlM0*9sp z{Kj5V0TgKz0^J|E%FA@MZMfg!axyH1rPu_u>AF_Ey56CF4zfP=+siMlWA-^G+0jT?84E6e>)R`5=j&a@xL;mrcrO@RykAms!Nx@6q{yiB>ryX-AStV2Y z!2=MOZ)T~hD9`H>Qir}@e*D9~Y;-EOP~i23t2Z(JnOMNG>1*CHn@Y=W3{d>)hBnY` zY278#H8sei)VYlb2{mx;qX^)XCBjUgXfbfi0LD=Jpz9a=1vvixtowmH7vW3b*uOc}iJW{vz|Ed&(2DxG2syTXd6 z+J@D8YilldNEAu1To)i5ZtvA>s<8+CPGT6S`N6b4SpJwm9A1AYlGMk*$ z$WV@8STab?h$U9+Q$@UeQ}Qk;ylUYjUkn8B zs&A*0c>L~PGLPjZb|FveUz*oQ_q;}uYV>x0UC9#YanZvhTh98JEXscVpWSk#gpGyq zlQpaaY=SF8=R-3^n?MI&Ib;P=|9xrNoOTgj3e~#)Q!R91#zLEfo@2hGOdrXM(aS=e z{JQ_PLf}ok601Kn+%G4XDJra4y$b#VCYG*b+^SpEJ15()ZpNhyw zBYQH?jOWZz6w z^h9ed*0VS+O-~jS0PnbL)?&Anhap_4O^f+p73}C5z<-yhK8MFKp(objqnrUm+-$O# zHHURtLixldxj&9Bpolg?>!beTW4%&?5h0r>^0ek7{QxU0NJk^h3ib$40m4}dn z3U%r`+y!ep!45SZcu6hfZ!gqhX3nCay}aOEzUDDT-53jHOoq84BqgA`vC5WlD+eZh zT`tAywH$K)TI1254LF5s<8}<3QiuJFO8YC2u-{s2p6N*s1l#wbf@pno^woD3bRX~ z7l5Sq>ea?fn0vZ07V_G8W6z^e?0e}=b%D)r$%Qy1$XrM0E^8o@$t!@*mrMEv)#UY{ z1U4zDN%#*ms-uLMZln6=ZJC=Urm79Lt4i)es}bKgVe+TQf9iFt|NOge%P1%UZsXuo z+e5!|Jy0Lo6^IG-?4|8M`&FABdhLDfRgoJ}hIwkRq3;^q9jy2syKO0Z0~ZBM#Kjx* zK$gB5GDfDlV5ah$2H`N-10)Y{aj^n=r5epE#vpmaJO?ynb;?iBojL&I+ zP3n@wAN=Mfa8_S-(O{d3^1)y%-2f&ZqHQbB+@oei=?v-7Tr({m!_g&ca;vG?O7)A? zLs-sb3DOY5rpN(5K8`?xL-Ni@QkrJd zu+ih0pvLP?TEO1F<;%se#B4%^4r{$(aZcnixZU`!*_o9u4F?Kc4;>wPMF&`x40 z?ZQoCMKD>Xj5KA4L9V|)7pk?(Bf>o~Pp2dUb~tg|bhuYN@WQHeFa{){#QoEN%Xzsr z+QzD_abL~|R`2FX6vmNXZacz+w868Kb9OIU;N0c_&#o~RD|;uT5Ku>V|2c5IufH2E zQFhVuzcHVgyI7ae)kOB-M2yLS?{yOFA^~e^LO=%*#xv=d7nI4t=U6uKJ|;PME$?>6u#D)Q>!o5mTq{hb^pRfq612=BoND_3dXl4HK$ymU-o-OH)U)YD zMtX5iLI41bG;K3zfGRp+N#wPNQG6JIv_qYZ=FY(K8C6S44l8|Mc&WCcNijkorPXE) zJO9I6q;H0+a|LvXS27a0kWHmM9V3VGpPHPHx|uupq4SB=7>E->13C!z18X~8Hjll3 z9n&>E-=}ny2Er#BMw!CWx@uOXkm9NqHWVLwmQ&G^woYO8F?Qk9Y2ise5qEGT^fPHwzyg&g@#> zq8O;3fXI&B{$${k(`{-Vk7SH7Q)Tz6_R6c^N++9 z_Tqw;3@wlfteRDCnLWu2Wja9XumZUa^d&NpM8+-Qc_ou3AurL5`aV1sfUAhRTaRt%*8ge#oB&#W+HLp*K=EmF zl#VQ;R*eo*^nY8dax*D;jSX>Pa=j&Za2LMKAb}$Mf(ui%rCJ#zmyjx~WQYnb1S`3N zI-9GbeXP8_&q35Td8j`nJOB9mrXev|PB*q?jFxs!WjNtYlTh{?501gX#DiglT7*_z zd^(GTEsQ`wm?@wGY*E)$Skiau*vWr=d@eWgU6O6GI@Y@K+OUTt);9GozD1_+3Dbc zI~q5sEr!c3;13nkm8&Hji%y~$(ffPQDS`p-flL|$n#cfrpEVLglv_w0?IY>(FegLt zAx6}f!Ax%=gPdC$@>pz~MC|`Xl^nAim>r!uStW;A-llcE2Y)lu9pUQ$FF?@0rQe0) zaMLepv|&w5uWeY2zAUN@ko0b;HJhpi8_w;nNu7jGGKo}&GJ!0PD9h;p^cc}Wc*CWG zEP1uqh}@~{DFrKA==C*};3V3uYXHQYG2N@F_T*`u`{aa^v%byDyNc`E<<17(WbN-n z&j;2v#zur8+V_z_@)u#LYFlWD6{J9BK^yG)F@U&N4{m_p#KfTs@rKg^GNomJ!3y3H zU8c57Fy@!TwRz|T;W)X~d}Jy2m4xEg6;2NJMayyzl9*E7o5Zs|x*WTc!2oL?FwdV2 z=fcFHV*5Y;7Gd3b-uqT%QF43FYsM0u2vmRrC>PLpQyCMqNkh`nRtsIZ!K~~Toq^|s zp1?1^JFPhVsFh1+8*k`En4O#uduUG&;5gyg@f<_*_#T#GIRm16DOcEBx;;Z|M$0r9wmzDab8Xt;zIIEDsZ|<@3z5 zT%Q9ZGQ<4REQQ19rLTG!%8N?pSOjLHeFn3!%61bfFaTHWQaO#C9!I3&F}0jtXhmAm z*hVId3OcS!?i+8D)`MiGhJs$hC^B+7-L$g5{D%^=AEmpdD=JPI(|#vL7}4 zILfOI{W2k9$fB_M()N%Y#@t6jU8wy~6S*-~pn&CqR%O2lx8YP6=m=u@vPbe@CSa)n zgdnBPCuk5KOrsx1*q^K&mf$cHtv@~ivJ=sMF8iS`8^Bo>>~B}S=0nCn*_4epvJbK` zSA$?SM?Of8#07Ak+(rL|3#yC6@3Rv)Nbl#3yr(eYtNHyo0RS#>@qia3jmsuBOP>`> z+~EY;X)b(@&jgeALYFIt09@L~VF8CT=!vhx-1oh{5DVrkEam<#v!3cjMPJB#Vma$- zem1l!GwOnEf-?a>QulG56@&m)%Qhm_{66n~y~PRDStTb`%M6^JVSHd{NAoDfg6Is3V7pwFD-_7R?Gorm-&sPG2#EBp0+c4BSEBItql06+b zq*l%tHZ`*YSTEEJ16^*;cBOQa%7HJk>;~3JVEWRCz0u5iD%q!TxEID|lpr z23zKDL+e)r5eA+>QaCTH+kq}DtMC4@$JNrV$l!%lV!Oi7SDTK#bfW(38nRS}PztbB z^SK&J1q4r5qQ9Cq@-PUM3Bh0+0RZK~m5E^nbBGz;Fq^y35o||)!)9m5f9P{1WKCMO0q1r`eXSuC_TM* zD-?$R9EzKxIvJJ%%624JWb1%Ev4BjOjSXh~GTL=T!nxs61!IUs`FvT+nZ51=ueEcj z@mi@z$?=18ax!ntu&kfcgeaP?e8?IR0$#()X=v5Wi0VS<_1-_!LbWJ|flL3hHlyWo zOU~uex?3MY%MRG%0s7IUlkc(TqF@n)p{MJR&K5+b8BWOWJ3yh zuS^x6!)M+Qc1WENV6U&OT9B9jrubeEU$w`(dj|9RXliFiWbecm6LU7gz- zgAh_E1j2Uukda|;BH;eX_04ZzPW`{?qC$XX}GfXnYGKe0BqRF&q<_CM8vpPjn^?O zX5mzaxk^1WOa!d+tF%Y#Hk5<9iW>G5!jVM$?bKox|Ef?$zF9~*ytj91@^Syl}+rKi>A8l3Vq<@*-S zkJrUqhrZtC$cy|8?Hes#q_8VRTeUGIF2uyq=LQ;`yAccSR&Up-19CVI#Q7I3a6{H` zy?d;gm=Z;0>f)E!tZ%)r05x=~O5@}oS7%y)u&Z3upnH~@3k%MHKy%^K-Sb$4vU_eP{xH-aVR(i?Pt`G}o?H|LFEgP;I3@hYgMxc?k#b(R`aD zK-^d;D?XEk=PI2I1Vz!cYL!b3z(pueKJ&oYwfa?G6P8-O*)03!*K;xQO5*VHv+A2S zQcw-r<&lhCcb>JQB2IFB`^)qbU|)fk&MC7HDi;G1^*u~wmyt%zLb}*>a}qSvA69oi z{z9l&mBteq+BJlpLt~&3*W#X@3FW%`B`VbmnFen#Ca2)*Lh9+D4|q zVUQk4PWhR)ir)w5PJv?zIF-y=b$3PQtI&z=LVte;o9F@iqc z6enILGYaFiwPw}iPo9A$B$W2lALFcap7K{rK;7S1Av~JDFVjD z@J{}845T4kb>o5NJp}5NfIS9VFAk3oNd1`C!=_JqPhzBV$M3VeR-Ej-s+{7M$Xor9 zDP1L_;rzfp#xz$MXMNYLA$Tug^Zi^y+)oE?z3ZqrypKJUsqB&W#9~1{lYf+FyGO&# z%|iz-1qj|r(R_+z!UE25x_R=d9Y2+0ouAtO?+Ke*eZENpb)WM>=5tv_MD47F%RNE0 z4-M}2XGE?ajr7_W`oqe|+Tl&&+-Ij)wcr399y2k-`(lBx4P$;JbQX_F+f7s27gZ?J z*0ayP)$hBNVm@1hL#hzQUA6s2X9agY4X-V0)&*|R&S7Y<(7JF+zr!s zn|Se)US6Ug8~(6x}r?uf%xA!R)FC-lGt2 zwkcu&v=U$^T=~76v`|0kQ0RL+$!czRWuAg4?wjPXdlL69iIlRahSXwj%R#!j!}UwK3C-HX!S8UL$E@Y$lt9;R@g=WH_0(t%R}9QY`c%HOLo-em05A z*RiBNR13F_#?NOGUEIv4w_Nq?I7;`_2@Nn&026r*K`rE6^OobW_A&M*9ZyBs6#_=M6y%29%Dl%hm=-9T0&o3HUWIUkKyaRPp zGZ-I~;%0al8x)BG3pA-~7RW=nb~WLAm?>-vLQ2pnXY=92^hb!q8`EaA#z6!|{nDxF zs9n{cSi$1e6U^eXLk5jQh+UvO7z$bgt%>7Of_{yww_f ze&W}9>3Qrh;g@{mA5X(6hn~eFl?gxf<(~4y2g$xxS^hLi)FI)4nW)18{{-o}+r#NG4aO0RfW= zl?$${0br@>f3@1~z#?z8*Je!_4 zamhm`OAA>@BNGNyk)*k|I^RhiDIEO3BCQ8_Nj6K}5doF=OC_TdzEs+~QED5zv?W5d zhgMUNdXhCNc5M^XnlTn9p`2 z-`?TG_Em>wr<^PXgwDb1_S%d-?v=?Oeh&n63*n zgB=zo2d&&D$TpNb z4z)iQCHB{bFrvcDQq!9ou-Cdm7tkQkbyp!Mbaht)JfxJ**1yY2cIt1Ot2*n-_J#8 zP0TYDdN9=&^5GiCON?1`C(#~YotqH`@(>f=kMOZ1hpIoJLaQW`yKBe!0WdXMEnUJ2 z3glm@U9o;I99>0S!!0a*J37-{hY3FDgdz@ahS{zbM|?O$HCTf=I2A|?cSLv_{jzn{ z+@IKSagc?SFen7 zBW&0UmbwXqO@Er#LPKh=vm-I+l>uf7q)sVXOR6}u>K>EUt0pJ+ z5AY>SX6~shynLP-dL4YYMb*u$>N9f)K`J=M_Lk{DD(kY6Re-!*IaJA zRUd-+fI#h?BtW#As>8h`%kZvdN_a7@1jWw>xS!bRGtoI$Nvu&DJxtoUo|!@Da4bPrjt}Kik!N%?=FkD`3SA2LeK0X;MK%?kNsY z-RhKPQghvRV;!1HQfFC@oP^0zay=o$rwqA&c$Rh{{wvUetRJ@%s;gA5iJ84WdiD~A zueHIYtjn9Q0ngXlR8icw?|`ovv(9jf6N>)JAt2BgCFr3<__J3~aGRS=AdNm8$+CLa zqyto+vL9G6YL@0yuacRJj<<`pwKhB&x|;o!3_+zBu}2dKCTQNg`VNoBU+e)B=Y5#G zV}5sqb`F|cJA7xcv2ARXF!6k(5g@Eq$-2{7FmI=PU3IOoqFLqw+%=JRT{?k2jQNZQl~hsiLP^ zWzULq1=_|JL2jBT?xET7+uUz%^3Y|dPW!;Q2OJCyb<8;+o^OK!f+W+|o&4^T%OdVA zN>>hlJZz()dzAB&X86&IuRelKD}V2CYGW9yCeI~R^2_OX(UJaR1jVw}6JTV5b;CED z%OQ8;LTCwpHeO5}sZ>_I8A{W8z8>0ZrVpZ$1IX8Mi z0YCJ0DOfQfXb3Sz|CTWjyj2&QwiXDIcJ}@VF=fiC63PG2f z&TjsHh&W;eL@<^cgBp(we1|E_jl|#l#+PSy#@L49O4DN}7_3ZkSS~Z1-^X|~ z$;w?*JEROfbYIytkHC>bssAxkbY}lIf;ntuecP^wT}5i2pXv3rYGhP9MEFrLO@$U4 zOGW*1M?+47m=ybW8q>l^p4FqIYF??LKgW%Z6_ zo7F{4BK+}C1*Mt$hfz~pg);QxLN#=$;_UeWi6&QftIcX!VljtE58i#;<#i#1htGO> zWxPy%bNRN=z{W=s=wm8$poj#dF7tEc_Sl9AVR^>Mfw1oNrwK$gk1irZ6wDCQi9OOVVIUVDw85?uDkW?4d>_`5I_IGTaI%0z zrT`<;|4ohk20)*M<=*nOjPLLu2b9A(`zt&@@-)CIMk2K9PVoLp8dvYE(a%y= z_;AcTsS-_wBM^eNLo&O`btYiYveH9r@rdLnRSZ8kTroFh;*_{aDZ=CrF0?2oMaTNq$5>kb$R!<$1X!N*d8MUNV(8B5FV zd-DWy;-TMYsdtePdtLZiSJL3obPr80P?QCy_I3p;#b|{2QJ0;42ZI4+tL$L|4w8kS z^c@blSe>xLs#fUbq}&G0PK+JO!dwy_RIS;|l&+3$LWrV5;xE|htk7j0xUj7|`gSo~ z%+#=r)3>5ZZyITf;wp+ysto6#fzfBh)&r(E(8tGSxUQO0Ps%#bhZ+mvinf9nDpTal z-3lb60#Dgo;DA#mfDI|WJge`fdEY;Ozb4t1#{tta8p+)(@(u_0Ng#k^o40Ha3Oh_h z9>-!JhX$SdG*%4@(9Aj1a2Vw^kHiz=dgi$(Y1f#woo`n58P1Aj>{9(g7$&Un;M=gK za}U69o(BwhfGB(cF!a;P_x5VEH#i6E=Tk94gL@R(D2p8p%VgzV=hZQsanXkqS_Dhf zxc$635Y)r5u4~?ZD1pX&G63~>CW^iDCuzwP3)`^NeTVs=C1xf3q2aO`-}UN&Y|gg1 z3&l~Aqz$IaBN;LF#uwFf^5E-C_kIvL&}*K+<_4|>D`4j7Le)eSKBAd*EHb~eex zqc^EoVdvcAc<80@g9kh(_We*l^Rr9ht4f?c;`XZnJ%gc09l88i1#=_vk5)m(Rm)GTVxwN`4wvwHCcvqoC|9X}D9FQgr_W zM)CaR5-0sRbV%laJ@A{9;irS~mEE`PPSq=kI4v5cYfwN!bukK94mY30v;Nbqea--O`SX$gZNvwc`Om8k5bu+#@o~pe z<=oS1V7vs=$fB>~{$@SZKwIU6$wSw|x$(AFf6q;VD;+qhe{sKLv95t{1R8YqQ;J&+ z5~!%0qDvyDzC;UkX9hO|`rKQIT7@rkwgWWba+D$3aOr|3zcA3h=R?Q#j2C?tZDy%f ziLLL3l%<-Vap~Y>0B%N9G^wr?Tl#@Y@oit9iypOrcH5?I0)90wiPr}k$FOUg5F5Fp zufi;wnGacuIB%YzP#um3$T22u)ml6>Zp0~0E#mNL=DQ>})bRm^i8afNF=uly6{ z+P$(F+tQJUa@&zFS*?wi{T5-C0Zc+ogZ?Z9<9*6=GZRVO{8GU9%F8pK>fLqOaW!P< z(fOY-GF`$HR+$x5J$OKIf3fxPdZxKf-~40O)oF)NqpMR0vpXg(y9ggc~qV7T#iI9)I*lXe_kp z?kIeCAV#->KQn~fr{anj4-P_(PB~UcH4tu>MKZAH zj>I;j0BD6;(EI)L$>Sjpq6p}|>wTx_3fI+qVegO-Xu;RTJi|(YLh9#6*y^CLSFPNV z?ja>g(g?r0cxlG}$D$@4`7TMcEETNx8^O2abWeR0uhgSaQ_bk7=+R!2VKj*P2qFREu4M$!I%JeGTtC~x1aZaCex#3xU`d4Eu z(DlJ=ksn~WT?)Zas#kx_$SL1BJ7AZGOIEo#B$whzk$18!n@RU!T}i)QmrEv-a1vwg zqWcvR!-F30tSb%07uUuO8?-TdzhnI(_&05;NJ#tY-kCNcQe33$`jZ5*|#{%KlUGyV$&-}Rl) zrTEg2XH1oO)chgs$aRKwHn8&AfKtf`y`>WHU^P@crQa@O<>CcpQ9B*Fs_86w3P+JO zQXSc`tI36vHwc&8eIs_N9<|rjB1}tzk^Lm(hRp>=6G&+S*8jky|SXmL|P6X+Fn}VNc(<-6JUzlN(JVM9XpT9v= z9)J|~*Rc3Wi6&G?ONk0%A0DQ_2BuflBdA&ArBGZrxXKXrJ@V%3*iBj;Ma}>keGvX| zJQU}8vK9`Tu)Wx2egDD)WC^Vb<4HukEW%Qm_Rv6VeJNIN%ZwhJh1gw824g<*qqLE$ z`i+KQOni-U`NAjIaV|gmCAGr2ffqCE1c0?+>@ofE7c83XL7$L3F9TK3gU9x3_qz@8 zQZk5ex~1+({b~b=ft` zr{}_>yOIYFdX&g<=7K#Vc>@mitv--@pWzzue@gM>?$;0n35&F`7?M*jKja!NIyD2e z^x}?M6+jHnv?9J2aZXR|<)MwWI270OEtyK_g(Q4h?@|N;0PMiSxOcDS z{=-KNVDd@=tU;{ea8W>2i!`ih#Dw|R=?6#ilu&ZfHt_mmA~TJjgOLk~fki;~#3@n) zAH++X9Zw-1xa7+-=<_(6|3+5yf<7pxNOvCe-E(9-r1Lkf{{_AY?|QZOSv-tXyIY?n znKe-wBJU4>0t4{TBURvvkF9?p)a&@qY}E;{FJd^yoUz1=mIJ=O_RcL`sq+wgLPO0T z-ov%EPl8DR4gz}0t}CqqUv%dhTxB=i4lwM+gX~BYvfv&s`~4M?_9Wod;Bhj(ieg!7 zLAVqMz_aXT^)r{k)U}T^t7X3k%*9u7l^X)b5Z(ntUgqED zcuySZiKSs$Uk%awcz_32`Jd3SGYho=-5i;}OQE=D!%`~G!bs*t*j3YcTl^1`GdNVH z!H1^=`}2Ac947Q7e9Wp>-zKtIv)xG5=*lUOg`hjEZC#?#Ui<+NXDpzhmjW{Vhjieh zZ`6C#`3X#5?AZ74V5j6h`%cFAko;V3N~tS8W}%fo)YWiGTSA0BD0mP|55E0yf0}oG zeq8FoCo3@E$0nL~$#_W-q7%!s{Vib}Yxk3ob>Q7=rkV>Mb|`DyCzg6MB_>CvbvF>| z%eZ2y`s1t_bln&EzMb_CYPJpYE2eRMcD?U;M9;hABy(yWL_FDqlR1aUT?18To~}$d+`lx=5AeX z;J9nkRgdAj+8m{J$0H#-lavgnJpf|Q{@I@}TkP#Hg@CsC$yUZ&q-<9{kq~XbCm|AdPELX^j zM}mT&c^Sue^RmJLZ^=w3xUw&!-0zwDVBwT9lpz+nfv8CY5d&@pWpLLUU38eZ>)AA# zd1c0lC~wIw_g95#Y-+jhrieUEtN^7XxQw}Hl;JWD)7~NQ7@L_tX?YGvQ(_K*h2(;) zfwUrKg^Xb}-eh1*LD&-W%PKCFJosMC@@!{MA{t||W^LA$K7f-ewYe`zsuZ?{Hhd)3 zizjf1d4nX7O1cdzgEpn@X&RL@o*aYgX!oN&n;PCd)%gj2$R;i);L;m2){PHj*7M$O zU_o}CK9dgcscx5m%6;)MP;%l={vC*XGI1 zBp%jGp32eodT9tB)T5tEeNGk}jqKebpX814p7h%*ab$0jZ6@OX6_I7?1td4m-!2(# z)k>k&c?cQ1E?T}pykMO=iy8WL|M`2$J{T=}8{De?$BP|6#exDn(nWm6AI7`lKddNzVjoB4A%h#k?<2&jYcij`~o7z-pSFRr- zA5y_;u7M&D;bx9^&Cn%%Sg~2od31j-t{Mps)OPjnOU; zx)aag0#2*TAu+Ii6r6>UJ-MHYU1>m|aAB2<`_MB3qdWX-5JD)?DwTN$)c!%N&fa5O zn)(p_B(#dO{Hw2Ut*~!QGEIIc)T?0z@T*Z=LCf)A%|0yq6Hi1vgJG1>iO{W7KHIv% z#zpUn9lfO#azb)!z7Q)`n|&B+uqjyDJPOPLoKDPTm_YnA#>1PSw}IErYA(WxhrV~J zH$Gv_wl_`E+12Xp@LxzzKezgOlK3n+!WzUTFpbf|^gLjB>iISBac)Ll1|>HhUDaf% zr;*E>_z2Y2YqUL5fD=DRE*Xu$oo`;+jB3Yg#>A~-c)7fmZ)UjCqQZYIPio0~cMr>EY-N#W@&g&1wW+b_ z4<`HW7=PdT(I6t^gOxKZ!jNDhi!kr;zznz2@)ITYV>DCfsuoZ&Yiu=kT2$kP2s5m^ zp{45!z2>aZ7eFyz*ajCL}dh7*n_~?7oK05uM<4c$mSd{RnC*w zs36pA&pYb|wOu-z&P`I)F34zQ%juGLN&kC7V-b=x9XixU8uv56ZynH4L?@Vy%lORk zac`g(7(ONNer}R1#W2W%w@-e{^<|`N8c}cW)z)j*P83omk*o~~)8-31;Vqik(xt?& zScAizA5N^l_`8%m27f39K@CIzDCW={=!KF>I%kpCTK?Wxh!n?o{b=%}5k1ToW z!Nnl}*T8K3DTU!Il+{h_m@x<>MJgSvh3t*R zBwjT()VbRL?D`8+k_iUVCc`dKho|{A6rld#gYRLqb-ijY{jO3sNDvmbSnymPi~%@9 z+$-^z);gdyK7J7x`AC+ZLaTXUhP}d}!EmSTOP5ZkC2~X_QnE~KKL@~tu#jvQ*KtO zTTXWA&OrhPfvo&maixyIocAjWPmXfb; z93`?u*LINLg8?7z3XeH`)l_IEv_W}mAk(|X=bEO{d!OPHWUl!<0k>Gu7a|`@tF3)l zFU+Gp84OPVIIzBka-zKJM@dGscy`SW)tWAH9U=A!129~E@km3maDNQ9TE9+<5I*Gp zhQ+7@d6+)CFu|2-(jlO7X=p~NV~a@kPUdI{)ckb#y8Hw*vbA-{;NSEahkEJkVx#F41Lr!4%4_xJ6Wb` z3jsc0-)e9XtU|?q^>D~hr~^LJAapW7^CnGdL$prWcfGW1FI|Uet_FlwQ{d1S1n0@n zH_e(RP2z|9?FNV=&7rmdWm)5=n%f3uYJ(~Q9cUVSOm8Di*9%WWVT!N01~}5{fB<=Y z0DW_I^e)=L0@Vpyr6idh+$HuJp>wG)N(u*L*XqVQ)OqMSd2x-=+Mk zAqd3<)@R&dmaG5x?3cF>UgQ;pL3h)JDURs;5DyX;HJ<`1`^~0Fxv+9)H&@5ncNY$7 zF%~`rNV~4ygGBW`^BcXm0C}@v7X=gnS(yvZS|9T>SX`Z>*?qN7ADw4-Iij_$l1tOUPHH?6+i`eQWx0=&Po`epRX+z~dc)J6X7sC3Fx@ z#3&U4Lwx|^p>O0O$hckVmJj;QYd@2k5r<)zhqb?yRe{QdPW_|f*L!ZSNI8{7(L_0v zVb^4k7!LiErnpAnaP6p*e2;z&MPD1Oe~_olyH9QQ&0R#xE^hCAsi6XXF7aL{n?U*i z(d;8P;InmEN;-qhOfNC^ji3jidR(W(DT4d@EA59I>KtGnx39w+Xl& z?+E+`wFw_lBMr?WR9Mb8c0%OZoUH5xvGVt+sqi78ie65dyc7WOh_7p#f1I=RX8wWt zH37SWz!e=5_4KOg%%^u17{8%pOaS*1%s=5MVQQ)YE!XyC>5GusS+oM;-gn2GP`Jbl zHCPfz3}xE;wuj15dSBR%!_Dc)y?h}?n_#1dPiX8!HxBP!VHYbR88wf=5$m${k0soedd=Obl2DT9&j@X zgHxl1TvIH*lLhgVr$4F=u5ezanlNPn@+xO0b=biODyS!mIHWHu4OLVwN|T{F{)_*x zgD}|~$y4V~aDZM7D|lgMxpU-{OfTt3*5h9FH!_j9Opl~!&EnPJa$lEL6dd0z9oP+; zdp7stpPSt_1X5~;3Bwm}Ea7_pO>%7*^;O;RuGcJs09JxEd*BfvyDos+3-x_z2{3(O zcF2KUieLwqONNkly3ALrY7z#-KE%mx1=3DH_S{zyBd&{?wZnWQjdIY?Cdmy zrh3Pl%i8U@62qYj4h<8ZY`wQZq!)-@lTK))N}A9nJW4)#plF9Aa-s`Ky$tya=PY0U zlY3tj3MBT!TGr$snb1>x2Gwr_+!y$3m0-)vLmtUenYx_npjK=~EO$6jo&G9Zt0vz} z|5m@$2g)4vr+2w3Po?6@S99d6&zI3C$$sC41+Z`*vV z1$gscyu(G9-i-oQQ35^H!-GkpmMp{a1&cDV8YoUM0a6}nZ%{t}1G$BUhCV!!?#CTr z_E&!g;RtB>=Gng65T%JPG5P~S=^>#cO9}yUnRmoooq)FPLy6o%Kw)2=(xI|#e3hEy zhE|sBZqrZa7ekh`DncDOHL-|@=A!ej2DIUUPwWG5Bf7!N!kWI^&u{sl)F*F&9uleHeY;n_>A@*Q&P=yZYY0wnEjW5;yW3 zqzs&(pY=CBh{ZG5huIj4?lX`RLq2F}Q2A}POaedNmadmrnM>|~aItgDUg;r5+0!BpEMB{n#;XD0{Bt5g*2yxmyLQ7RFEvT+0A2o%8`UtMBg;9r z@lT!3e+6 zZr%iwL!dtYT2q~b50~ukeD?6i()-u?J-}~&c?Tg~(^os~8O}kdTEaO%QKd>;6^hBM zPl*jWf&ay3pJX%f=+(MJwB@N7x4zI&m{A#ox~5Ry~8bsj^8%({pt~0 zjUtH0ZtrjyM>a5#T#RZAv8%>qRs@-ILqt#Kf#n^7K%6&wmMQ%Ddlst;H1(#qyy5ohCMR<70X_`;n z9_-GkvGrKzWJY3TXvGK=_dVIGrpMph#prTc#Mh1NOY!2nEZP2_Uqmqm%iBjAOZ{O5 zW5X^D35;q8Sy76VND_o9{6%!Mp)M@A!m#}DLxL5!MycpdkV-`@p*2^Ab2!&V6UDgL z1<}gYjVmigg0Pj_0dRUC@ zB&?dUOY_}^LIc1*wd&$ieW-{0dAHO%Y;?9XoKwLEK9Wf9x_pN9x4*PcC@Te5f>8R_ z7jUywN&WOQC-KO4|{8fKJRDZ6!=c`JzNoyTkH#K2dMY~x;J-G_-N49 z=FUeKt16hC!u7>kd)3qWzN}(w7d~4)y3kyJ2CTvK3w$ep?8y5*Jel^I*?IW?>6M4O z)X#G%TpFxbFFlW=yyfFzL(QXQdfiNTZL1#}^cpaAG{>LC;J)hU$y5$YjS8}#-7uMV zF(UI`p=!xX;W`Nso@^!zqr*_C4>qXM9sMVi>L1U}lwwNQlvHxJGcyC{+qXf)ub<@B z#teCfVZVuau}!Zfm?cI~Bu4W#4WdqMD4?URPE%hrX{1?UiZ32a?aNIiVq3`yz+L+~ z?!(9~UT?I}n+|!pD|z@HUIC3Ogg+HVtD#SI#&k7#zg(rOI)<@J5e&}6f>bQjQ}7|3 zibiwOz3kpoI*7Z@(rJp=F7yQB?n-@EZz%L^BH4*Va-##vNB%^jST!MmBp*UN8McOh zOm>Am0jL#`rSG!#wxGeY#WLSD@=LZ6@|`J;D5fV<4s~nTsjB7ZfUsZbIbr=vqu-Ds z8@MHd%#rMxA0O9Aoo@Q|5Bja)jG$NC9SP5Y>4hx5^rVF(S_ zk*Y6VN8m1(;p?supKG$G64lkB!1hz>DfG+CJ4{@)NEGaH2ZML*nnBk|4_1@7j>0-JE03ivoHg2NjYNZ!C*S zb_d~~RIZK2T|+1d!ApJ4@&O3bJDAyD*y|PVn)(f!M>3=bXK0i6-QPgdbPNJp8wTja zv~EHICZJ<}8-fSAE6~b0yXhK^gMiMv;vobcP1R`%LR#1UL;koJ=YV{W41oDmZMihm zg9Vo}6DoEu#kFBR4h*h+QzhbjfG{hcT9OR)CH~)+x}d17l*Ty}DEbSOaqYid06vqm zV7(Jl(|8PiW+TpiCDGho9&;Wh1cjp%b~sJqj|_o)3=ooObDx2FrR40u!@ETDL*VY+ ztdxT@;N8KZs3PHFM$+N7PfgoUXgU`Rj@J7)e4RLgq?lDhEu37Cwrzd;v&gvQH!i)! z6%D;0Pe~)$Fet%hWWlB-kSZ%8>(a>x%6?~T1P`T<^VKkNEa~&ji!QS0knkzejgD~h zP)9@rW+HlA#4013XKXk+5(9=c#!awDa~lRR0Hbg>3UWM%NC6aiD;a>)+bQ$_Q$Vc0 z1B7yIUY`SoRggvU(qF984u;K5#Cp`X>_@;%{yneN8^@oNWCux@c+ zWvj`fKD4d8!CUiUmBcS0#PLSz%ESA1i1F-%d98;m7n3kN)xm--M{ZSd%&TGSUZEK# zIbuCo8B58{Im@b-qDIFkGuw%h=V(Tj4oN~{CBOrUH~hl^Tai{a>y1dl<_Cz^&l+rD zP~jv_@>ZsoY^OA8YAt!su{qphY#D107}+%pvDKkyXO9Uq;Q(xqL7oV$Ji@BJxTad) zRN@s1Ps02sHFzv#>@FQpkoRJ>*WhDCA}q(bH_BV7nasrB^r|^uBlk?)(~qsQW`+nj zOVUcC9j_9V?n^ajh_G2InlN*c)*KfFs5Dl22=>f1Vm4MVWxP}9c-zK{od{6d(Va44 z;?aR(@Ghk0;?9fXVLRIk`{NugJ5suW{i}1MrVD>tXzS(2&b<1QM^=vt!RDWrh?Z>l zrxm>$b^aWC47JBgP*b9|vb!&z(g6B-@DKm9&r-FFArGR)U!CqJOg4Vk2io*m`*}}S zs0yO|UvkD}{Y;qaiQV({Yw)o&u%O3}Cv50{eJYG~kL3dOW0ySV4^V|g+nWUMJ{`~; zUH?ZX{-4h>{roi3EQ8VgK6CL*Gq*HPPA?Pf-}nDg;a!sd)uUL~kK&L|A&rp8s~PTh zM5QU1lS3L)Rv9N#_H!P62yp%sGZe}&=U-$IAa$CPo4@AVHF$o_sC<5C&hwwaaV$;` z)MK@{+hnckMDhpaR+|s{rSBo6gU3IgN4J=g%MA|&2@d9J*E@%jsxMz_#qyKPsb<3G z4o@c}SGHo!)rvCFJ;?N-{q_!nZ?CAd}n==Xm*+&DDmQd9t^g%ZQ}Wf21>&Z=hP zVyf^rLUZ96Ukc*waL(pJ*;EY>B@Dc*pZHgWVqRE@+m)Njlk!zwf7?E3xCf zcU>x*-3!jzwbZ<^HEg$rcW6%f9fzpRQ&&kWfy;f@YeNRF@ZP1jrqsP=^g@Zo6`o!< zddyOWt}542w$D|XaAu{n1gSyaaMQ!Sd+kL5U3$7&-c)K#fD3)Q=$F&e&=7rrl6Ud3 z&T0;m7hd(+!EI=yy`Zu0KpLJfkzG!f1O4=vQ&VMHv6I7TMxTW}FiNL^UZ2uTKoUp{ zj>Ed?E3_y-F35Shw;Y%E+VGVKzAN)&AcT|7trLvCc$wL`79?+GebAai<2|tDGUG`i z*NCBs|J#MqH$t1DhoNBY&)-YiUKHh3jGq+_nsnu4W;HQHP6UZNp{c^6OdQC6VXrEu zkjpO|8EJzJ8hF?{Sc0X9#c~&4;pF}wM$D1=hSxpn-vt^S;*7P_U;V{|rg)y@%|eaC zHkKx;t2i|D&0(=mNJ_st`w;J3af3`K#C17>?Gf#`j;nlWGew(LEfz=h6VSoQ7Jl5u z_^N)>;B3$^V^He1bZbk`D7uXzgc`JLnlyQMIpRM=`Of`A*LwM?U(aAR_#Z>u0bgj5 zTb=dS`a~UxWKC+bRBLt`BK+=(Z%v8Rqly7r#zdlPzm^8;9B-}MH6lotJ7OzW>A>L#DICzYc zN6Zkqq5Z^^_Eu zU{{r~T0VHsJLnj6p~mR)s5Ig4hJdw(K5I^k92@(HF#Bb9F3%e?5KC0;Y9i}!vLqRw zNP9YUuHeD&dYD1EN_w#^=JPux`76{^k29(HGwi=5%k!GPG~FXiX9jN`$_1Cajosm* z-??wTsX#tX0`M+@p`v!F*z(Fc(^mjaD-3+1%%UEhu1GbPst!`VHId%cIow99HJPf% zdh;HckCwOH!uZte#GvMJqnzab$w4J#SpUa7hAx#2@tdA=L5ruhR_=T>THGY)Q|fTc zixNA%IrlN3^Fc#DhKjl9a|Y_4UXz&M;hB=$o(EqJ0OyuPZ%F&C>*F=e|9(ls(^-Ae zhkK<~cOc11AJdM1zza%XfIRnTcaN1M8ZvO2q_=;V_XN!Jv;5&nW7iBghXLKF_W&n5 zb_`Xz{`}1X0f6|=sot)PO3BJ-@JErVa?@r0Z)tGX@VbTV! zhM=jx00H}4m81p;zL7^i?kA+7@cJehWGdOG-Pnh6C`=)v*4rRx=nxm0N$SE}2UX(Y zQ9D*e1y$8_gA3cBE5guT5&+f}_ng$z2YewdPLfhAS*s*Vl+^sz;ZD6^|BX3hK$y;4 z1if>iUiY8B<7NdpxD&d@8EjwXOdcd73uoqtG0H7f8;MO`5Hon|GeU^HraMbrHQ!2o zNsHWQdELOf`*|}(F-`J?xoza7bA#SP_LV!CUn&7{-@&UQ^45-D!Hfu6uH~P)Ccg)XfvE zTzEUlk6d={e9G_CNh-zD24vj_&;v%ixlCFs&xEq6cNoIH8%N)P681KsllW(Nv;5pq zUIQKC^ANvsWj*)}wIzL`=$@KAxuq<$CoFbo*S3r%uS+~s>HYIpog$dUIqmWR4C`X1X!mo}ankd|&;{nB+8fl+ ziRIS7I|hTVfS+omrdAoBZD|`^f}lQLp$uroB7I|6AdGivU(Y;nN#093m-u(#<5VNN zxYF6^MM9I%dQeK81B7;}jejcjtp8c3-!YVycgr46xKOfZ##WaSpUr2u&iqg+gm=Xpq>f@UJt<%(XxB}+0-%kXKIB zPM5qJRnjNQ>A~qh_JOW0S~#VsmqTpQ1~9;q+M!oT-;ikov^SqbT+34rCOcDxSfi~r z6=O@8D?>sVQ7N-y-J`47o?r|A6a(|Bj`?PPD&WQC+MNbtqtB`t$@m%#gRZRDXh#D2 zYY5AlWT2MkR%*(v-&o_bpJp*(8Cq`G@7)vkf52-n>K|N$=9zGlDUe5Ga9#%&0q(*I$=%cx*%#n{< z93&VncsWkR;FX#5Ql&e_@WLLmuzXj85A@wm!9nN42v@<%?SxdyVMl$5CUR402*#+6 zrY*J&;FJOSp(T!wWE18#uE&NSk!mb!Ipzh8BtsnbJz~1>_pIXv1^f`qH|YM{z9O>; zU9 zyv=gclexF$SVndC`M(T#UpoKDjDnbLV=|(*wTIN)O$dYz-i|OePW$sT-KXZqw}{iZ zOZ}3#`wlD6i6-BaTf_pfsI`Pn{wJqK7KPm!un5tlEH57E*5~O1W{NFO8iP$Pq{60l zqaIt9tG;++2Bc(w3WtRgPm*Fy+gumpUJ(;;8=<0rVp=ZQ}SC*fXNfsD=M z^#*1r2l2H^lrUY`C=CCv4;^DX}>dE7$PzBO7C81CboSxxqf_CvUw1*)=CW%ZwPl^~-@`waf`& z&1DbG4ae8%N1xsP_nhPFtM^iud=PJ-_#IOlwNwKcxI!U$+5tQz#2j4Cfl4{8Hc;#4 z;y|pk$y!sX-Zhn~6bqJaNh1a$-iz|DsKzYYlvtQjEw5RuE-7gnRX;`s!!FNF9Za+& zGuvrQYbD=<`&<;NCyM6uq8FXnzlj~tOCxO({g>+xQwTjI z#O$TcRLOuxFZN-4?hFy_;Si?U=o@b>UvhPw+J2uv&0PecnD}S@o(R~k`V=t(vgm&g zv5{^Wpi6P|`m?&nd(Jtf6RiMdv)H>Sf9N3={h`^(YZiUPDN)XBj!j_`3zXVxi$bJd zxwVwWYRopIs`Zj^(Kr$5Wo{SBtrZZ7?!}v4_@YPFuH;>XpqLIq6kn4g* zZ!Duq0US(Hj;azl6@9)Q`Dgz~%r@3k;{I&>VOymWzw=MI)T-Z!BG#Ubg^lF>bx{o&4pz31>B!}bM#!w3()Sv3IiB_m=WluKHZS! zhj9Vn3)P)J{Z!UfaoYUGngln^Ib$i~p}4nrvh*(K&~+c_kr_goTj>+*Z`>|5i_ zVPzjY=nH{FbV3>QtjX+)bJue$7gQ2l^-TS6d9YJ`$t{(QM`k3_vr*9{+LZOxNXBwa znDiSHpnDklqyO#Xn(L ztGbWdV1}zydT&Cho^GpluNMHXY*9(YHlvv_qK#pl{0aE&Bi>`~ z0qA3PZOo&g*BeeN8a?!XnG2M&V#q6Ry-Du%42aY$Y`DG%qqXxMZwDAye|c+Huj*U0 z+PePvTN&Bx->S~bBwhej+|rKd;dEQ&E9X57 zZ|YU(SL@f%VNV=X6A02>sGCC_XpnzC7CXCwPSrH^>yzw7I-8#yH`;ZF2O0^ji#a@& zvP<~li#LuV7s9Dg4cI8@K5XReuw?2TZ0k*LVuinY6-H!Lr&1mVeQAW#aESe0&w;f$ zV3%=KggAr^HNgxnb9v+&PoS|}l2?NHl#}hae&R2&o&W&3qYlBKhde5iJ8<_~>*}@r zr(Wu*mi&c(FsI2E4FYVy@C?PF;szF(g>nu-Fa;XSrW4J5>ayw=n1B*v5y0B_`7Kw1 z?ZA|PIT$0{KUf;$>WyLoyWHvN`?@_;?B#HrHupcOm*vjhr%FFeyIDzJJu?4fsTczP zVaq-0M^`1$y1rB2-Ga}(4}2Q?iH9A+xa4 z@s8I#X%Pq;$F{-Tv7wtL|>a(on@W`|eKBk8$fRte&dml@p@KZhGitv4U zUDtP~Crfd(*?OIFeKGV1+3=06j^)-Lny(p}DU+*2Z=WKIj^?s~OVZq@hxUPk3Po1z z)|^e1H;;dR5P!)-(!fwwv!rDmy-T3gG_sv1wCWh)7OxAq1B5PYdwH-YNO8UF#?z}B zF=ak=DX^zM(eq1BIa<;=nw{Xjz*E(6_ z+GU^Ajs+}Z2;KU}#;+g_n*WqSA!5(jda!cC?B)Y2kF}q9rycqqM(Gy$Pyb5E3W=Z+ z@W(#(@k5cUmaq=atHRRr{q&`7S$+@ghZmA$}JAgF-xxuJWU-~Zd3(zyj`XK6{cw#!@xPI z*CY)yHfwspob58S%0raq$*%RM}<>lSjQ?4QpOmkk)+zw_}1T zmOAfQ6D6J-l6^j&KbU=eE6fB5kO9qR39KY-)F+Xin`4dK&IRkH{?K|W2e2io`vaMC zGe4Z_oac#=&Y~zS4|C~&xe?)y#WI&}O*sd7$V%OR{!Rr^HQ(`%Xex=j5Q#=S!=Z97 zCnT3|!ZG6%P{>!;{>j!^cuTXdKn>_l=thZ1Mb()23dYNpPx|%S<9Fh$@BxBAv zOJqZdKI7*Pk#9^ko1^$*NQ9}Ge=ZMpURn?jDT-ODqvim6r>X%bTe65Kx-_E4*5zh((?E#xq|s32 zhmJ7&b)JvH#q}<@SEo8l7}mdf@}@)$V>p{-xI%t48|IT_s#qUm8^TFwy|n-Gb4-3F ziYjwrI=qcS!t>iWXWoMNoXUnLq3dm|yp%ADKAxI)funw?@IN%x?^C_2~( z;K}uQ3%mjga^n%PB@yk^nIul2;H=7cqh~3|ukoCWepv;jWQNg*fd$Eve5CEif{1SJ zS=O@2BUP-QFw#Wp+lQBZE({5gnY;&y0y2km(ApJi8;^WxkWPBWux8#;W9}#RE`HAs z;?w$lenM2dD@Lys@gP;y+iS0X^OdBC=pk)@YUPfe>fhB&D<9Vm#{f?K@)6rSzWV6# z4}V9z-f!cwIO??Q^Jg)cRi$@n&<20+nj9k*4eenq|B61sxP>~VF$($3Q>{Mc(PVF| zo*N6L40wY)rbj}V_P%WtzsDk%d-MGkY-~RqNb7CYgO!^G8)uEL-X~Y9KQ-nm?qoLx zV9J`_@h`XEK)Hrvi0sVbZiJk#zjY3}3qHsq7 zj{(Bu&8s?8uaPKCU_!E$hlg(UTM}ly@aEGQq$1e7@)m>rDV!QpLVf^=%|Qe4N8az* zv3ooI{C&nxetkK8Z?rFOKX)PebrIKRR&O55kMSPBnktum5LtrzNH?|C3$WF?q}w0@-}jT!D{x5s}H*kjza=}$(-Lr zM`}qbu@jT|Ad$>JIgkwINH=^qoK67PUYANMoM(|?@!ev3L0M8?(jyS~hvtI4xUSqD zZK6*zIaL+JHo5;Kt|jE7co@RldGT=X-7-^9c;9~7?otDJ+Nlz#14ho4HD=b_#)sYw z)8Dz{B6?joeSl@fDtHU6_mrJoyZ&u?4{;n4gK&u20|IuGgo%{QeZVhomAN&A!``G! z3&N^zWN!vr1P16VGUggpu1l^*1m*WB(8_F_Fe&#sJv^Qa@3lFkKi+t9gSz~DxOoU# zX>_P*Ea{lCV{BDJ^miT7N#n~V7L@iyB_PSt9Gy(cQcTTewz7&p27y!GrBhm2nrYwc zh0*XaUKv|%mIp#*z$Vq{7$p?!?s*)SEMPhXhlP3|-qmR>KW0vU*FQ&aerqyu_Efly#Q5)s5H z5tW^tKKI6wwS_AE76^IN#^rT$k<6^T7LjBEikOC5qOD#MJ4R$U_#Cy1%C)jZbuqUc z0Hep_M9dW5WMYY!H|>rH?Rx(FwS(Wvk4Yt21Z@=95bBM)8Z^e?UFvO!;PoGe6`++Z z6>Fm|LmJ?6$lz(k$-k8&o$yZmWIIhqA~)H>XaxUNb0(6es8I)|2R;DvJ=xI2E)6~IFuKQQkQaEB<+ zx;+O-|F0rEsAw=XtYTzb&hm6IUv2SSIP zQ#@c+Irl`P&QFCKpe#bAeB1^g0R;WfcsGnvmh20Bedy8D8*048^)N)t4Xm?J}do9ay+`?XLqhR-7Rzw)f*w(MRdq*|y^7@QH;vgtdoyQ62a2U&HkcH~?&;odW7({=$s`u+-RP zS4{8o78w~E5rS}+`ojm|wo)cB^oH@OQ$&PZl9Q+8unGO{&KmD;8bLW1;G2-8XtYp@ z#Ye|t;b^KGVmfL_5pNwX;yE1>kN`T}eE)IrybSVV)&Uk>G~Vq+infP~Tk97(?V~*| z^DPJD%@~^ob(BY%E3A9#+)zUYN8)|ZU+k~uv?_LDDp|{mmmL7_Lt>=kp&|CG{?di% zB|dnVFUQC^RhOO}O6sbQuADwa7?R7Oc1t|;A$xi$y|9!Hm?PAwi>bL=&^beO3)z4} z_@WvHS_xg(PPIhuat!rN!HwR;ZV#ZTE{iTupt5vo>sJm)PTu9aXpJ!m1N6|c?g%oz zPY6o-Nuz(5I{7WvXqV*>kl-qUgLzYj$X5DfP{v%tUZI||-09d*z_)t(Qd5sX`N|?l zteAu5afU|D?KL>Fazw9v;qLU=3Gk_nVXa>*#rawBM!V*!_xV-v{*y)sOSMcf6*n78 ze09mNHA+y0-e`XzN%*TFOn4hDE}fJ9G-e9~5cZ${5GPxN;*o;#%=$-X4R3YYkJR**j3A~^gVxb&*u=9ekLea8#eSCwhx2yh#c5Vio zUYX^n5#|I`L^br)Yz)p|K>FZ@~A5&$SGp}2Z5BEbymh=h9We? z*c4jJZrFTc*$sy`>pw|A?{x5UWm=3eJ^@O+e6M1~Y7XnskqVXd+%rA%v4W2T_%hC; zwAGhKsMp!8S8ig$gf`YnI(`<(iIrxZl8o31&w-WdQJ&%mL68$!9Q`@na$r?Ba+jX# zVkDtm(GB@qsGWPtVf0Lf5!Yf>OprA{+Y>J`)VNAC@2L`py*P=le3?dlS)LcjEkELZ ziU}00l#>+h%cHIix#nZDEkX$%nYh+=BN;0Tr;qBngkX9Bv+3J^Zd>b9ws*fI+ z$fv8<)z24tLq;SwhLMOm?q>r-l7go*Qb^9&&_~8dKzJakHRJ@gNaB`|5rcOvL0n~G zi>!&yxmC7nM?NS0?{}@V`iMpg$&vf&aTYmCtJ#=mDdCmJbZfTS(EQ8%WxdwA)*p5L zfUN30B%BuNc|3^AflTwrv>2jO(Xe90eOACngDgm5K-Pj;5o`IybG{ieB$f%uiqNgQ zZ-cl^dkchDw^Wvy?ArNflllQ0~mm5VNC(j}Z1PmAeJ@tHD!jhA=NlZ|bZ_h2uK z`W?=#@I~ga1?^mI#OaA%aUb8FM-D=weC4DiO~_FcSi=SnJ1TVbTRredBE2p}xZ#pS zpvz(GG|@~hcC)cDfn`ZdtpBMvHMhq)aGE2})ru7oMxcZ3!CNWD4E1_^KRLEBmPKOE zV|vY@G4#s)F;ZeuhI=s?lJ{xozDpGhVdh0O`1(G8gj(#7tG&kA*6YdB`|b4=Shi@y z?Y)i`^kPFSFlAbbsxidNz8HCfgvd+eR=v)(&n;QkJvpEzlmI9fr)x2Xu_n3!1neK@ zh-)xftlUn6{VfrzUq=D~f)WIpYY>MiS)A2SOS4{Ge)tRmniY4WwF5d>9mV@L?dfx!9wPU3? z2YXc2yH_6}+9v+p1P&f|tpBboGU2dy?|R>s6@Cc$Ld2VTqLGw*`7{<68c}y#=q!mf z)>9>c$XTN&C0Hv_!9UH~*S>*kF+R-j(7nO{$xjkWzxl6Nh?S^d=)HJR3>;OVo^hRO zZ^~wER}_~!Q8$U}6vRa2xuo2m7p07W;1l{^lM)0AJ@U6d1EV}v6u%s8KKkxp2wj}B zueFWe)otGTvNz88Tq$by`?$IHES{6}8=cehOIKB`Zv;P@4LZ`) za3yKCu2(I6;a+-^k<(hmyt5jv`fB)(W`Y58|Mk{zya(3T!8<{m4CW)Tcb4vzCR7Bu z0U)H8o}`05eJY^SY%R!AXK*)rapTHYy({DUOaB_&IW$n`K3J8lk~q&bJ@I-vm*NQM zD6~yjsSAjYI79D`%2(GO`BJ%j=}U&DrY&Pcp#ov>@UdDFGFT;BagviLLI}`kqC^^)8c_v#le-dtBdjgJwnKhbxE$zT2StbLAHl9=hcvV>(!5DOUzoG12)-hXXftD= zpArS9H1EW%55;ta2fsCOpQ-T%u$u9a`eu&l?V7d!=L=U!96VGTGdVlOFPC|arFh}f zy$5W|6@}7+4?g!1+U7??11mrHg?w`e$PVEZM?_Ov5j`5*c>WiV47~lCWuN;+^f?$l zDNDZ(%swf`zv*8-%#U9r)N+k2A9aG=$^>uCp&k-!VwU&_{$|i6iJ*5KxaC?hzRC4K z>!C$`MI6{?&!w|Hl+t3tnQvS>&sR&iQ`EPfTJV{m;IX{x+Ye zRFI6fjy7@@!+szCr=mc#Gusa_z6=-hZL(@LsHtmehmmVe0DiQ*F9rg|pPEOWg61{-wVfmBY6C&#YqG7=x{&#MNZ2)Uo&c` z`YhF`raKvU5ye~e+Jjv~a$v+P@4%!n32qdu2z=F?=MGlft*_*4p6OR_y3N~WZ(q$u z`bQRy4-qF@-m$O|F65AU7u_IgzT5&KcH+S`z}LQMe>z7YMy@ z<#onF_FKd+1wjJx|?^yU6K=N4|ukDx#-hEq?a8hXuw zG@17{^bLbrChWuvY~&hF9D%5qj8lRk$0aFv*7T1(Q&%GF_G<5%b!*?&-09>G95>4T z4W1_uj4MDUp{KB&inJ!5ffAy8ym5q=W8oT~*{y}HkXShIzhmqlJt`Mcdyk3K43_oc zb1Fe@q(Y>SO#Z1RFK`xBKV;1lW~>rNx$>OZ_e(Qv19+$y`SeoZfxch> zrwj%FI&~$iw4sb(=6EsDMt``ivxg#h4R$VIrWZNrW;rTOQPu)TtgbYS?mY);$N1Lf z!?DthoS0iuXf6U$(Q`k&5IrY^-OYFCF%|?d$O*Js%Nz4x|L%^>nKz$s%rd`?W(Mfe zhL`%@4lkkAmYoWf~BihaDOKTp!$aTzA(sH zGkpdN`pN4wlG`}>r=}hvyj*OSWMM_eJ<>Pjx~wj|HEW#V?KXOs!E6A8yVFHbm8W&J z&0erq_8VK>$|mbjcP-uFTD>YVt%V9A&t-~m*4fNKueoeISA}eR3+zvEqtK_VpQy%j z&9hiO!}}4?3^2zB>;={D(&&Sles)x>wUtA2`qsdB)oeVq58t)hq$Iw_^qiW(^W}-W zU!8%oh!Lle9@h57pNz|t{8jFHML*1q_07cirO%qlhH3Mcl-SlH$UEq5^VwTsgjW`4 z8;9d$ajd?F+!V7EEBA74;YXJ`U_bUhe~&sO*MBM7d;^+Q#pzqMq%0tUyOMD5Sw60M z$*!{`FPEPvsBSe4`QyrBFB$$A zRN7y7R)AI>%(5&SvWRxWt$Lj1;d};7{MlinkK($Zg`PB17dHQr4t*Bw>zDdsxmjl) z*yH9)(gx@xAxQ0Z*dQtF)fMdc^LJQ;J{j$ed9qkCB&V6#a@%fO%*3fROE?%pY;|3o zP#Z26eoDGS8;956Y~l~o;Ey?qKGY4+aOoep?y&Bzyy84D;lQf7y$E48!ospk#X7J{ zCHmoy&|Hv@##VMFcb41Pmt|g9e)jo=L>^K&HRL66o2S97{o(XuzIIKy(eVku2A*Xk&+|(l?f{4tM6fL?vkZaB5O%9NNCzdvl>EY9as7cp?MZa1SIcb2S`NAT|Ntnv*PwidjO)2V;I6n9P*m zaLEGO1Y!CDy{FQD@m)Xn-9Z%*5O+kxT=dZgV3Ma7FGazVEyFAY%0C?+>x~G>kHUK-$zT)=K?8oh7p>mx z>Zz$3VgoemWZDQ4PV@lcP~*QbV4o-m#~ETTmvszTw{ih7My`gyJ3OVV{ej^tlNJj0 zZ>zkXI`zvDX zr7##!Z*qLWiboBlgdBQpnHYpn+Wr1Mi(M3#9~$hew~>TtMhogYvXe0dMwtC= z(A@y8nAn(e8`z~n%%vFWa);nja%kreo}o&5PhZKgz)XW}Qma8{1ASza`gWyy{zG0U z3tXKf1#FJxmQnGgH+`DV*mu*wiJE<1Cn%;)elHS)L2X9*&9I_30lWy&Jbs984(@Z) z3;TWG(Zg52*b{F@xG3vJO#Oz)+RaWlaH={ndSoVCYt?n_CK_HeBd1 zD>p@_@MGmhj+5aoQ&hic9FLUjflrw|PRQWJk`76G4ezvmc!GL&lP>TB9K3`Dyr6M% zu-G=SXx=(D5XQMtrKUg}#hM`A)uev7d7$h|5A~?*p6_wx=`~gB{8zaqYhH|flLN-B zUrf(KcgF)?m-<$Y`4bkzl!9&t*HY&(_g$rp3Q>cghcwNGED3#jF_3w}pJlL*2Ga02 z7+AGio|NhKq3O)+hG1dZmeDp9E9{H-P&9`cuBNaXc|zDn_tdYL00Z(FRhzWfrDa?B zrmK~@?!g67on?k2A87guRAkoVQS-j6%4($vksnY+x3m5EyYo`)%Eb^-_6B`DV{JNg zk@?c-Hp4$;ssGU<5nP2xkhiykhZ_wkK(r_`+OId!>t=d8DfCO<=e4Voj6Tlgs}(Pn z*<^*R_%J>CFTv&MEL=VCVocS82O{Pw&gMZiZ}`ol1-L$fgaf+8x5k^q7Dznc8ymp( znL5@tN`<%x#OvbUG)v95A;qEQx0j^GYomL`H^_tQ-?th(^+uL-#nGCUJmu1}ux)HBDO>z)Pam za>~GtJR+#G@~6G1Q%pn%a-X_%5CFgC%wL>Sf68|~9OWsfJQ9TCv-So%KuvD&wR;1# z4J2uZfoz?0Fx?glrhRV0jXv6Tv4e%&l^*U9Ezrp{ZB;hox{z~dh+ZWb+X7}tD1t?% z%?X&2ng-ifqTqn^>9!#h>-h86ThGD_=Rv)BD$}8uR=sBDpAQ7ciZ#Rv-(~rD5;G=D zQ}V8hOeUEYCuN8gi7k!-qRIs!GU<*1h|mjc$ajGLi;m!|%Uyx86fcv$cuC3h=CO=b zq8DwKinVEe?^(E;JC%p*T6rO+*}@<4kxh06G$Ip@kNo7-PASN1Ff;cl+}zFV5Uj%q z6J%0zuT!Vz`Jc6dA7Dx`brMhJ0S`%Jxa|(DWeizHgQ#~|YT%2*p z#QRfOf+xC%?Wf%Hd#qB^fUkvMCc&ErQ6+JCwkx)QO;Gb&vKZ1 z*Q$T_wt96SJ19GoL@95elpzuj?m=jd>dKZzK|CNwVl5!1^cwmh;DSNjE;B33cp4Jt zX3?hC4$8>7Je)Dun5?rr3S{WJx6p#B;AK}Kyyu`tnal^74M+Q65zDSaHQp?>951+Y z2#do^t~{!2uTQuD%op3y9q{(4CU}DWQU|o6>N7q2ABsXa+2%I*2lA;_I z#lhPNd3#BzOvCJG_~pDckhHN9!Pg}eNK>?_@hZa$e|nbW zO8%bNx4!E;#s@Pb&PG4JadX2gjS);vWD3l=f=g2C(-DDPzcW_v3hlXpx*4m;r|sCKFzFANnrbS2=ch)ryQ!rIjHgBg?8wU|UQOpa2oU2rRp*eVJ>R_ItDa+A zK8e02HONWL7Lg_EQe%7hJUQ`OqpG3Gu7+9r8?XT=EF0zG>*3BE!VGsawL3odg@H`0`QpfwItvw-g|i**i)(h9~@x_h5%zOrge%%>nJvXSBBX!H(!fD$Il zC}_Ux&#U6f+_L zCr=fMZruWHf&GmV8E#ce=#18rLL^>>?V5mqmxuaBt&qz6Sg!Y#(CGZcp%>cvK_os; zk|z>n%U4a(Mn(nMv(!7)#G7ZWBk6R2l{JyEJT8{ZkUMKqfX^l_PPgxP-0JIdbYipX zQYR8}y-|_PHr)^+PpZ_l{`otzH{rVjAWGFqH6%LsQRRme1DaG!7I3|8pzw*IQvhOE z#eDrF6(-57`fI-vCtTyk7xtlz#dhX$n{(WOf_+;VdX*din6J&MPz>1D&!Q^|LPFi+ zS%o;7z(J)!9{L0#RA#9f0Z6OTl^;V%?;A5w`4UDNy&*7>+p3T0|JSZU?a$xyr$I&z zDZ;@IeXaMhmhDZ_!>S&Ym%^av4U53#Ym#>B?T)U ze3cCaLIJ#wUwOp=nJ2&`9_L=lwx|d!-KiuKW8H{C!fHdn_gxVQU$guz1(iI=E{RAY|ONaKKs$iu`4J{21b>kRXb@cQ0 zA6rZOOU=ZgC!u_4iU?o_=2j7ZOkehPW)oLJ{99!4iA?o%&)Bc>E*!trpSJI#_Us#S|ZCVPjf22t^GEqhG2;WKq zpF9uoDRWz|s48Q^n8S+^L*kp<<=N^rI$kPTDeAla{4Mvg3AW7U@Mcsl<2;sP(v;?w zmmCXWE5Y!~-;dJd^g?52pL;HS$&bVGR~}EO6}savL<16;j^VE1oi267kcb?#>Mz4Z zZEOFoU7=eVlr}_jX_`7ww~Q8gGm+cx0|{d`$ANgrV<5OjH@pL2|+G?<|&pC9`L)lYvt(;L?h zUm(Xyu$>}Ixv*mR?idVd`ZaG=*pIyDvZuyU_pb}4oJ6T=!Fho)X#n;zf4)70Or zhz-y(B9sDj%zo=x-ve}$I?q>;|G?QD5){Hc2agyJ&XioeLN!DV9Xl{wW$Zq)(Mb`^ zS94nfy_vVK5kT}nW5^|hRtb{8q{Dq4|DUgO&5|AEne~LeBJy}6bgYDGglb>T$DHi(xL8{E!Zox%>s*=$E_Wp574M-k!3AsxfDDOa>N-u z@E)^2EIrDKtRIr_mKZSeF)@ckMUDT^u(xlxI)<6|4KaYHeQ;XMuI|J|9|KvA_D2t6 zr4gsh`j3Ni87wjsq%p%n8sXab4j#03>e6$sL00vBx#~d&7v{!yk^xv)M9mS&V)Og5 zf;-6sEKzpw}PCuB=PCGIK1;Yhdy9*w;Ip@ZBa3aU70m2FOWNj9w%9@8+GGEoQknnlqX7VB59LP-u*SH=p~q`_Yk8kA%C?Hluk z0SZ$k^!!y}$nA&<3sxNA9!_PO7K65_IIZ)b*9xTikzWA;LsN}(B6 zE|FXN|4BL#IF#IR{dn$0gR)}yaLLEeYk2F1}=oqZ)n$>5`gW|>j~ zp-!I^i9PCNaM(BowsvWUBu#ffKEW%&ph=hhip)IA=*`3W#u|>E8;`(7r)|E}_2CxY zOglnH4pmz*C1T0lZk@S2=QA+-(i&gY(ktq+)xmjc#jFa4du4h*?>mSvZtGI?v!lj2 z9_~!%%;drJD1^HufL0pLI;#QSqBq2+CdeD#&JvStDVu+rB2eBj#uF@-hZV6u1_sdVZ68JBRz0Xg6&Zh%L z(Vk%!{?_?~`)}X+E};tNvzeEb?0O4jS4w%mz`%o{e2KCTzQ1G$j9w=IHYaeYw87*h{jxLHr@lZ^Q&zv!!jpT?;mKVG z*ho=_VrhIyk z(ixbhKuF;uAl362KXis(OeV;j^T4_9q{6fmv%1SAt%+X%P(ZK0JH4GlgS8?6a2UGk zTX}qZ2G!k9gpys!WNE54?9~SSOwOnj4wUCiH-;x}!hAIj?={WQvyXKK$>zy1$&O%+ z3`)=G5(x@!-~;lZn^}psi53@Zb4tKDxDyK%Z$Fvxcm+aHmMF>0h{Y2O{N&?d@$;xX zOMa!7KsPNDGpIekjQuze4Mfwbe<-fWEdv9)>Z_U6vzNDD%x?enL%QdZ29+{QyIRV9 zIk*^fbQ6gFdn&Z+Z&&*q%d#FprGpd3vB!*bc1yAQ3@7`3o>ha{=aw21iHV;>HDCYR zKJZB@E;1ui>t@x{MQPV>1@5k41(r787$QaWr27r^QoQ zy?!tWF!u{33DzE(aYN4fm2}X{T5c1#r?>Uav}M`>(*N#zalxCvIs;qv{PV9?u`GkP zB=Zlm&=T4rVy^(_(D8XTHXcoM9!hE~3;`)D7^1D|K+@41_B<3N2;FQr%iJmho7$)} zU)9&_=4OI<3;@83psLe593Z%d^ceP{f3*7rmB=ga&8nNnGOj?v`K+KixX0mhwjW<5 zBAwSVrrF&&-l;WBb*AThA$@hotn>?SGmI$z9V+$yXPSU%ob*;ll4yb3v(tl1>X%qb zXaFm9_W-y)#EjJOUYBXER|#lPO3=aXRP2xnL{F^R*`=5>Ewy1z4xZ_AVLUo4Zq1tF z8!!(J65vZ63g1(ZnQhWQ1W2We!)h6H1V9`QgGoE^Z2dF(5(D(Udg+A|CG*pCFv)I6szf$GN=t= z;RC<3D>p|1E#BZaf@~ZU)M!Gg+6e&Z4O*vFCW;*~S>UNd*rb`N~hqL2gXarVdR zf%TCivPa;N?V zSk>#-XSZ>pE?WRwwG-TV4Km5yh(z~aW)L!x@|7;{mFOn$s7YdA0W|t8L1tOgLnC<{ z^=hStzBGNt`LHgI(6sHpfY1yu-WphiCo~P>)0X`#7i94U#)o}6i6k>ewet-hZ+4Mr z>ykqBV#LPYR5sN!^;D?u1?KUBh#>heZ| z>d_y?<%h!U|NQ%EDzQh0hGmR4dtPr6>bH;oddPH7A)cmZ96uDY z7FdC~?+gac>l^NyW;=0gc`N~kGQhEo=krVti-6>q1P~uRtU96!gla2y@Gk_tnuzz# zoXwnXA^k73n^xG6Z+zGmNA*y z+x!)`gIRYh&+i`XIH7M{me<|z`ko#lCmNDNe};BEJyY@Mp|`-aR>!FZ`W-$sH$DHn z@ISI;Yk9K)T>pV2&@}XKgbMvJ@c&D$p-L%SErH+i)r8;Wt+h*YqJ6kZf@M!Z=}%ya z)OKvauZ|=G+^z4&5tky6^NcJVx7%v1CL3Y^^IGo)6fSJ|i8k|<;K})&+B~sowmwqz z#|VbM!y$(gP^?rjw!U79-#)bCLzlDSJf%l~{qLP`0SwnZuF#=-tm$!s83taZ4l?&H z$smWNF+`UL6Q<+nUCizpb4WO3x&?-^Lz@r0vz^h@f}>t~Aw;5Lz)|I_HJgzl%^_DR{Lw*qUhP`K*q3 zrRFN5iFaxyBE(>6Z?A8mGaibG4d15K{fmkXm3sbz<)0OCNGW`V?|W`EL7js+0B)5_ zr=QIlh8om$8gc^;t?KkPFV%kDfN8saC3(8rxiw9t^7ycDR=qES-e~kgjc!OVj57R) zmh>(uWtbWNB^vfwdcxM7sqZ_etND$2y(Cv?rrZrI^xJDYl9$6>x?bhZn%F9k2}`l5 zU%Q^U^%-j8+ksa74ETa-hI_a{Q{j+I^?RW7*F`Bax>3(3ykBn!J76dyNOmRA%UT&1(sPx zl5O9}>L)6l40`H^wFf>kYs6ML)m7i7|0BPw#wSwuBjQC{li(vh7C^66jwf`gb>=`n zJh>EtclMvAbz|{moPuU5Gc95Ig6auo4LAY-HP+|Tv!dU;6O4G-WC1X@(;cRcYJ2+P z3z2$Y^3It>@y+Vy7uCoRTZHg8UfV0fkk6J}^24?C?-M8bv&|_grMQNb+c&k&V1Uwv z%++Zgk<$8VqktO3howI0ZrS^X_`J^#Tn885qiiQ%@4^R$EnNHeR?R z65#;(+Mb{ztcQX(%$2^7iuj~kqfuv_ATuh=?IGR4>w0<SHAaUM-84T23B7*28yc-g?u9n z$*}QDF#RkF!>)?j*1$65IQOnod%t%H7Dpi!&?DXw|3k}mC=zl5zJWW`<&m&02128z zFXzcu8^6jRoI|I)XPHHtaMNMdCZ6%sAicLNcO1osD_?kFOF3_LIqpyw`er>%MDDqa zwW?qf5PlLGCr$h=#rBa7$uqA#__*{wxre0KK%99uuKD!Q^!sv8@^jyUi$J17@5r<7 zSkI+wkLg9?af>jSc;5}2)vOthq~$)yc&RSmd-R$`OJDr?zC*%u{nFI17<~#26QBVQ zas;-zEXotmsL6RG#9fAy$;OAv#yJ6kQP0C6F`HoHn}`wm!m)Vx%|^F%kmis;)wj$l zS+$`i;XyYVIkc`%A^>X6UqH+R^>unKlf&?xYVpDpOA24JEHQ4GB z$+%|R0lX8UBa5E3EP$z-)_()A`&=hyh~7SOlS(xY6smUq7bTKS16_ZL7j>5tLLz6H zcStP;B;GXo_+V|AdEfui_(C~MA%#Ae zg9KYYp;4*_kq!bqw2BidzV6vlHlXgBOJA+%f+MVJtCp~hPp)J2U7BvK4L0~nIm{(-}i-w3e|E+y_K$1vvBESE(1_izxPtj?Ha{GdCI8PYl5n;7=k54(lzF)~sxpjf zGZnjOP;L7tEq*atiGReXfD1IZFGam&?rJphmazi`h=H+I8PpPBl;dii5xy=(f!2Du zi6WMq!vK>g>emSyL22Z((t z{lO02bd0-CFxdOBRU(ERVGP5jNDhl~!N$hC5{%C3;R|iEs-1WKU# zbY<5Ini1Vhhr;-)In(=koD6{WQLw===f2q6?U|((lOQ@AeajjIF4{bD@GD>|i59p} zEvBQq=am9|^46&~gjZ79aKif_DfKU;9A+8AiF3;^BpL`0&X;i#7eXKR$zb;M8qAD@ z9tspokO+OyHHk5S*e$_SFHM->vL5|3;kLH_oMCCI5w8qx`a{SM4!7Hd8Nd%;7_8r5 z+|;>GIk|8?_s0_sc@sEEf}@@vM|N{kKUyZDDcfhXlJ!E4c!8|?A*#WutBr@ZJ|qB! zhfX-FzDZ^tZf<%cs?4}h6hhToZ_>>;ttNVrlHX%d%%aboG$#+;^8*-_tQk!hH$4-I zw0XM>9)DwjX$%|6Ag)4IofUA9eHs)fI%uXPGaA1Xs{OBSrb*2Sm%jf>A=dp#{hF~~ zh$4?W?}Cour?D8-a;ml5Fy4uR+Y~B{}p;P$YzWORy3G=|Kouy)~@nHCRgF zL&H?nIIa-tT4=5+#1^a*$0@-Cpen(?X9{#%RrNH-vO}EoAELtJC@)C2T;+S|4_|~n zTmWC*VdUiEY>T)#bDy~Xt83ShHp;=&BUD;7KfFUP^${;8-P7Nd?_pdnS(Vj3Xh-vP z%B_T$o4Sqr#E0)vjzpoLt58aZa^)=1t`{oSObj@BeBCfnN%jDY&k%ZO5cGn9T} zV8ms<<9oPFIN8$GIy7MEbkO|%B>kHNtsWUHCCR`C4>&}G9_B{B%Lypj3T57`O{k5X zrsQ|f8{eC*L6S>J*~{UDlAXB^YlPH&hS^Dzhf`oM$`uTYmjo|}h%fhh3z}8)d}=DG zEm{55j;r@Qee<^~O@0C835C>;z^^w?TGTGYjr!ywix-5IIQSYuk^3r#FJU-xudcr| zT=2p#cGEw*7MV|D_{ej)trg>G+AO?8?uA21*j+-@!`ha8eaPzRIT;GpV49MmUYUF) z4SWIfC5oos9#{@E>-tZ#FqOi!b*VtSW~L^kSDh|`>!ZiH=l!_&39y)cagmcbiDXc; zkgM-u<=^kJ>m)7 z`l~84^Cml#$?i2(XErAc6S<+BOn@}B5#lea?#wM8YngccM&GoSjG;@-B%s(;adN1| z!=vSpysed1LaEljRFF%AnN|b###dXE^QWP#7OU!$~9xQcvBceOk*tAQyRnn`sL6k|oanP!s-uW-X0TduB0z5iHOOkM6E5rA%B`(aNh7lK;Cw|m0;Vs^YU z*lL%A5Ha*S1~XLkK^9k67e1=#F0GahH8-uL@X6wrJW>G(uzyUYHuM$}N z{qfqbGWJDQ7h@A(f}lmdwZ_}NBv$64F0zYHPn`XD1C@Pg=dWIrtV|0#=zG4&j}FD! zG)Lh~qEELb@+d8GoNci3ymzxLBJB7e@#gDIIH`P)MP{&{V*}nP#8LTG3No{XOj{?7 z1HxVE!OTJUD)@v9v9v3lG1DZCkoAxdFRN4gt2pzNuMg9vp?R~LF9jNgYau;)oItO( z`q&OEwtZkH&r6M`YXkj2+vPu{`FHt-uQx0FN{q;`)Ku(;$pV#?Apfe=DgZ3sfnR=x zHKXw-)V=BQ3@Xw+`Zk3RH|&t03>-*IKi*+5RQ9-Fa0n}K?YSLBc5Fa8CD;Ht3>^wX z0>jhwG;~Va-kakvG6?J@3VV?z#eq+5_O!K^gktH(N+K60A%!~z@@Xg;tK;bp{jW!T z1hO+FS{^F@{2c#3A*~ZOt~?6KLYJCp19aq+#`5cWhtWJAD|70Kw(|6vuaSxHvBZod zGGK;`*}+K(IX20VJ?^vFM3|1)S=OGD^b1pYq~6x#qjeS-0pWY z$7TcX?2=yxn(1Vf-NL3`<&r6FTG`m6lxI0($tKBBLo*FDBZ2}Ax~Bc{^LA~59&|*W z{j8}>6JL*}axV@*78u)uO-#o>T&~4PT)Yf<^y@S60Gc>r2`q~b((dMo7GYDCp;k7V zBj|Z%6a;?z*({=8EX}HSb^mlosMUuv#>?RD6xvkZU&~`C=ruqZAAC)6Bdj;#@%ocI zmbI{tJI%QMd~O-rh6%kT^Acul7%gQ)E`5i)vB~8$;%OUF8M0$Mb058gq0?@rGJNBE zY(u@krq9ofHRB-HP6$UzH({NWM%r8*it{K*v_epA%3=MVF@=L0J*ut&ohzD)QQ2(x zWF+yt_z}du<4U!BuB{J;uoYQ@;exTSlGg{z=F6zfdIn(ootq)Wprmm93u)Xlt#Z|Kz; zHchU24vVF4pKvLa$xAl@rgA=E=wI_oI+Vh=4K5BIW9ITJ4yEg{O+OUu{^Tf)+6KFf z9_VfD=Q+(?{m3k<*aN9?ZtsbY9+ZbBWzfCX9esJ!k534|L=WVceoTsOi_LiLZN`ay z?zcd8x^;DZy8ii>s=pQCxh`A7qz}^-IzoP^AI(EGM;MX0&L$;_ebpcLQ6SZU-e`#o zhY&Lp0M23^Lnk$#x9NqbaGL^v=GdbjyPv8|P`m@S8;8|Q#Cz*1kW<6XtqqqxrxuJ9 zE-!Y=R?Mw@gxv2k#TVCTKC(AjrI@Rr78`ZAi>38$-P`&Puq( zD7ylMa^1;i(Sw*gGldP0Qnk;uLJ#M5d}q=!>V57UN{xsqeV1`Lmz(fj4Q@0NVMSI= z@{NNOV)FNVB&hcawtMF-1Px0+_LSe;K+1qE{U?So69*@FCN~VR2qfrI({d+Vw~9j` z9o6K>3+x^_*w>4{ zpMPOTy%hI(W=~B{^X0L6tq@C$sHFAOovP9al2f8AgF(fX4(zy#G>+1u2hbW+FCX0WjVQ+`lBxKu-=<4t&hEil3i8Hk1#)h+6I{mP%|NIN_ z#wvJ6>1}FoC>hiHvq=D(gT-;%pk3@q){dQPCKnD8O1?#;%KOke@=T0IF&>B_F)XqM zlimZ^AzZ)JTIMZ@_+QPn>s_3NPnr;{3we~R%YI5-oIO4@w|1Y0GaV@#2aliyVeE(4 z`oPEUa5n6Vasmq%QR*EmWha#VKro8K>aENi(mON5EkOVCN6 z;XpB(Pf>h)<$ztmhxG|Z8_9Oeh8vUGYvzld``Nm$<6OH&Z6md%apnlK_cN)d#a#q8f8uTj(dxBnB+xkHd>s=zJph$6Q_$!RzkZP9d2sx zz%0O0aV2-()PwwBgM2BkY7xrTv>qFz-Aj+LI`I%5F3o?X35{@?{ZqnGK|10O!@0*c=yUCtbc!%B{biUr`bTQD zTGEsosn`pK{NcqF9X%RVCvH55*@`GSzVR%Z-tU4h`l+_KAlM#sh-w$9OBz%u zq(4VcD7Mt<_~+ky_MsX(t-nMJ)d)hvBi^z#*b#qS$v}BnGwz?IcT~F=`iwU(cjtWT zt2PN{1NjU&z06yn6At5vmX?aUz%Om6<%8icA}H>D<}UL_)0?Me@^bU{hb_moor~5j zp7X<|V`&_v_P?|^zny9$*gGiA#Y0bdetv3`TwCe)aQ;R=(xYDBK=y2G4O@*< ztV1h}%M5;4y-hkG-MtAT$?Q?V7?%G5jLFs>{C4o1^>v#x#g;S~1!-U4zBYZ$wPbwV z%ROs9!!M^R6aikP&L8H}o1igIfdKO!J)o`Apn7t{Re4ubY6THNQ?Khhc(WcsS*&I! zdoK4&;`ST!&$~|4s8g{b%_Um9sDcAnb%x(16~H|X01oKEjxVZ@tSbsgt%;};K3opi zJRlBVcrOvui7$|HrPvH?-_nKQ%rP$cJ*Hk%jX#O0B*084_XDE(M*iW*PeQ(69lO{< zzwZC^OKb!_!LhdKtqmFpMvKk$HX(!V#|p#04A?<~J|rsy&AgRrqcM7L`o>b}wI9jT zmrwc+xC)=O@x5oDgVeoK4@Ind!DQyWw%GJn6MDe^8)R;*4SCr31(6z+5=R?-dq{YR z3W;)|t@_+$wl>fptb&gREmh~A(wy=;ENMsT)u#E7x39C{5i*Mjn90u%{616+*YEHd*4V40noEwZ1g(*aY!Mwz@oph6-c^l&&I z>H|$onyO-OMM>3&x^|^t!f;-GbP05(v+mpb&%YN++J5rQK4bZe$&VQm-LP{>AhPJ4^T% zix@B}7J7N{Cj?X{Tdk`0i!F#TF^j)SUW79JU9cLuFBKb8KiK&TzO|p#fdFP&!+r^D z`Cxxtp8+Sl-ykj)lUXBX*UUc>xZ&ws5U%6IWN2v9I>qB;H|4{ zD5gB<&s$Aq9pF_Wt*JMgZ8LQh`!S&WQniXz#P?AinqL}k$9^?$u|YqyjHG`x?~hZb4JWnaB;5{he`nQEf0sV{GNmqy@yk3%UN zcr&f!(4({O+dK5d8#_}MUEjp-oaRTio4&UDk4Gx7bXR-ArK0`t{H;z<+JoDGD`Zuj zNY0Zx6!zz-^NM?h=UY9B@#LL5&q_YfUx_x?=BWoZ0rG){OBM3gGrp*w)q<3I1NwXZ zngA~Cp9FI)HP_CH_685CLeARh+IEc3MY-89*tvv+bZ_ z5ZF>$N{iDLM?Vo;9!$Jl6ka9_ZB_0|z|7e4;P(SQX(rD5uX6cZQU+A4MpexVZPn9b zrSC4qGK^NPyl9%Q6GXyvpE`k zN3U91^WmQ}NWGq(;_XAv5Ignt8Xc>uri&zfr5c=&fgOCUD9frFZ{$ExD+HBKrg6nc zIhYo^9Is(fmU2ayTD&480pVpoOFi%^bSn+Y2s8(UxjlqU3#gh2X;0s+=8Yod8Fg^C zY2t87eQvf~RK}d0O}y+>HfG{mL#N)J^K<>cAr(erfT4bzQLbgmnpO@j6^KumdsY@HDLXMOiB9k_a#H z^@BN)xZ*#MA6awdC*6o{W&Qh_AMGboqf=5778*-C9Y2=0=Y;!XMwLRMCklwuBB>Nv@ErWO~bTX#T3%F;ZD>`&) zkPmrN+>aSmmxt8RPn~2lFb2@mbdSOjw+&t4OF+>t~ot zk4m*38JTB#TVCb>>fY|@83Ml-+F>VKSdBP@TOy%qYN46R4H_h2Q?4*6#bk$l!_sGG?ss#W@qWU9;d1(8?)ak)112_!V{;@?XAR@xKfXI0qYGo6 z{U`Tf#eAlY)mb&HCZjoA@f#gkHJ5ER!E5hP=+!n}0kGo*LDFOCL@VhyN84hG*k^!nkSrL?9R$0Z-b z`GCxp=gtc1t%AXD_% zyKc(oy@dR(8Sxzfc!TU{hLrnK;<`hf*vZ{A*M=HcH`jWG>+?Ni>Mz?R(o#R3F2K83 zg-uV@!u&gi`GERB=IoS|roP}no!B~5+a0%P==#CvyE+@9%eAkjFa9^E^^~?UG$$c# zmoy-IRA48_yO}&WFNoxFO1{~-^QrezCO-d!VM^Vv>KeC7HnJYO{=tT|7(+B2Lxq0N zz57P~l z7LrgrZw)@>ENVR0=={0`O7hG_Myt}7mf~B1Ft*qH=0uLvaM^yVHn7=)vJ$2 zfu!#h`RpF)9wXH1$_!75SIG=}i-vQKzU$HTx=itw`}df7w8Pi*c`Kb*X2$J_@|xVx zqWE5@{-bwj)q!1ImO@#HP4B(*pmf@bS02qH@$WJ&C5CanV-E`x|Ux91@B#4 z0~FEAdree;aV&ab+{EB8(?UGt5nuhL+TqiZ=o?yyx$qJ(6-8nUyuZZ(YSK{Ea>q|t zDn_#5C|u|dnV<@OpMFOW>dgwTg+@+c*Qk&?Yr++Zo$Xmusm?Xa7c~|$_mlTtnuORT zlyc!p=y1`OL(d4k5UF$mJq%Sq8VD;_xI`ux?5ae&C9(UB6~KajqHorke&ff0Y?#GU znp2+IrNA2j-dcYH6^+}h%3F!*nE$&%CVqTk`ZazmU!T;T5Qq@+My$k|gPznM-f$1z zV_2kEL0=f9VGxHIWz;oYYT+DRv08VFm8L4RmJRqaMX~AA9|^#rEVT>Ow!CtrltJ*S1-CV*h&P(d}JZ!-bg9d^y9iI zyiRY_*I~%7?d3zq6qF>9c7@J?eFwP)Ho-9hny{vVIEs~T*rwByXBlaR*_>`PaALe2 z#Y*afTGFm|Zk<~iEm_A*EXa#$oz$oUn&lzr$Q+8m>aZ3z$@vAT!Bfow<9;W8QHp&_ zsNklhri)_Lvs2P0&4qDmNEBUh3|B{57YCbSL}Z*SF!|}51r*N}D^uOI`;#$^>qS<1 z?Pf+UFi$mNtMmzS0y$`csBIAD+71x^hYDiK@~Wd6__@|gCm_!KpMRy* z!!n4ay)7jhH;pN#E$|_{PMwOTY46ooL)mJ42`7Qi`tG-hcZaWhBs?-9(nZ1!yOhf! zMDrNf>BoxO9<&+eHRLY=;~esop?o`pb2O8!!`Fylk$bw!D+iJpBsRb@s2}-?I;kvo^_Q#_&i({e5JCCG4S_2gbR>rMzpJJ#tL`>G)S~*M z?xUpFK$Cel-9X!_zoC3YF1yt4V@U*z_&u4->@`$Sr~^GO*3N9mspbFO$#>o6F=k zEdDihgK@3;f+}T(N?rc}C)k}az}npx$z;`Aq`nLf#yQipd38)E{Go>g1!Uv1 zs3w6O4dw=#Ap)t0Vk<+@sO?`2)QR`DqGb~KNCIJp`knina4VShLOu}2f z=wqtv+6|rhE870cOaVYOr$dy4&dCne6(Xs^wJr`iEITO>7M#r%b5~MCP#2rlv1 zi~av?FK^C`bcAClJB~n8n!7n;(Z_V-h!{0Sr1L;;`LjsKQNYCmH60Ys9DHtf3QuV&pYs1omco}0A$56+XoA1(?aZ{Ek6)lw2OckP11G`2W=LDT zMWIK6nv>2~VfeymJc^C2L=bV%;am-|6)(JaPyTuRl)U1ao~QBSk5B~j6RoG?j*d4C zo~k>We(h37q|r@)_q#AxJvX?OcYMHCv>BYck9mh^%p?4iy8U=Sjyk-fNAr$XY>08V zn^U$lFSjz&IJ*m869B3983$ob>j`{cO4`dHP=*kL3&?1 z!C_?U0-2t{w8x5M8h|7+&;bWyt{?TvxwGaIrB05~zk?^zm%-V9JDp%d9S=>xXPXl! zGVH}py?P ztB&_dBfGoR%4H&^$Es7fNl$sV(JX9cuZ>;WVBJdQP!WsoqRK#X=ld6c=-_v+f{?+! zOIbbyZY9}n5H|oK)pQQWh*@{=|328TRkL%j|_bfE3*O8F{z?1C6$o(Rcnj^VPcjDA~ZJi;^mVj&#D=7kVWS)TX#<(&cSkBa9?jwh?u^sR- z#(oEuPb;>vonqMjE$EtMx8vo}X#$J*)mqib*D8zJDBZ7<9MQ6QC)k$i5q9*Z6d3F=PMuq>H~4Knp0Y8cRCBvdN*<{IyZ zTqH?5CMmw^eo>Ndrw^>#b6BJJnbN&6@ok_7YlEk}G3X7p;?|OtYF}<%aKiShob|67 zf;dXAW)6?e0jM)7lgYY!U2W;&p;_XK=kQuMoL6$@q4-Dm6UTyc+yHovR)4LyUPz-4 z(f*guZL2y#&eZEhbcZald~Fg;*P>e^b|Vp)&>9OBW7W)}t&beaDxq|PD9f)^k=(f- z(4>>cEyi?}@jV8A)Fj+~!JW`ZO?%`e<<%*?C{M-xLnYvQUM9KPHVIYwKM+~^&_t!~ znYbPwiUtx8OCq`h-zkNqQ~huUjyGM#wUmY4t2ZCgq1}-tuq=yhqs}#^4o@Ddkgk{j ztUO3F0Ur7Ohp74lmTEpjMRq^m#x8;-fX%*pqm?G2p9vjb4d7tlz^zyoX&W{BDZon~ ze5#&o(y4yRSrfW3O*}b6f>C}ZkXdq@nKRA&7NFIDE zg!|?%es0X^)rNL;KP+$3?)Y$hXV@&z^xMLk=jAjNPuE;QaQnW>4=Cb-$nkOxLt}Z$ zc(kC+N-D;<4OI-Q=?46%_a?_=+0v6JC;o$1%_X8(%HGqfxH1B=&lSAi+R0wSZ8!(k zh`t6ii0LPB>tmGcb_Lz?WS%G>^aTRFWGMieP@t}a<&-T%q15bFyL+)dig;QnOSpJ} z=2@JaW!s%nrUHEHbstuMu5~(uES1414mPZ=?fQWiB6@KTU2~ukIN7yLpC7UvFeEW- zLRz#67Zx9RK>D8#7G-IsO%iUJt!9($8~!RnIyBqI2Q+po7y8xu1x)P8IEJP4Xxa{9 zTZryV9N|fK98B4N60wK;tZ}!GN)j=h=&fhVz9{s_T)gD`NDExlqg)_(ksIoU44*Bp zPyR8nK>A#pyD)C7VTsOL!b=j5rjb#00ZO&U8}XhRW&4a==c7r-32hc>5`|t+2?LD^ z>UA+%3O2}s03YkM9^<7Xcq06MZkt0jL}hJ;g!FP&LQL7#Puo{75)*N0u3f?IEIsKq zlbs`>0^xHAj^WLnem(Jk7#F&D0KoG2GnP*R?Kx$lqkb-Q8Et3o2S}e=l2RYCI{CH$ z>b7OChADRjZJKFUd=Xm%8}=$U`a!4fwT)UJ- z*bhnBT{!~RI~tE+Azh9ZeBNwFI4|=JQPN2)r>$S zO0c=BMPQ(MlTh-;Gat1@L+gE2E{hKGX8zEH+6ty83rXc_Bjo^wS|xZNsBEq(l#(2ePCbUDYX`sJ(Cz z;C}r#rqV{^s0yNa>hZwprv|UNXu-#KZMM>{L?heOs=ikY_5Zql_MD!WEoXU4eFG54 z)mZYxN+=bi-@M-K)i&@Kkb5t$%vu3nB)B!{1YZ9wKWsTVx<*|-RbLQ)zshqj@1)0Y z|G*cmx z5H0G}>TH%nS)W3?W`9g_k?1NCeB|=n%?;hbCfYU`oEDg{mri+q8hkVT#$5e8;|V76 zp>WBMArOp)H|e_p@VAva?%EdmbmvYj8Srnhg;yO<>a9jNbwYe%;5Ij0pD7_fzIZ0Y zUVJx|FvFf+$Mj%t$fuoWp~<+Oe(hOxT0b{IWQO9Je<zU`U5!!TeT<; z1l>677+7R(oX@U~@$5r+QTOVqSP=1D_&A?huLeu6O$vouH7Z6rB++s(xXv}tg>d zhble7IL^@T0jc)c2angyfq&mdt+Cr5Um(2)02zF;n#QJnS}tt795Zp z8>{->ngG{nZRT?D9i>Lgxl{|qeYkL0UC5*js>B9O&A!($K|SmsneG?MJeM&&SiG9P zDRt%#59iigQSe#*2}^hCrT5gQBs*4+(U23+Dh*F{llg)@Hsd3$jb4aj_~YVd5lED` zDMWq7>l*~%?Q|9y$K?G^{pyiS)AJnj!tgfna>)q}fK)-Lb7yW_ZZ0O=Q-9Bpixq8lwV1O%6?@j6?ishQ$I8bEDEBz- z+$r|J6{|ia$2a}*@#CM{?pE|6Mu|z*EThhm4W^ogMhmlXm(WHJ^j9hkd`l9!-hnTT z3~TYXi}3I6b_tU+SBG&2LE1ACtMt2b9DejpCuk83AEJ)cC_T0r=c3)F&tYbB!_ciR z;6ZjrQcJfo$vPcUpuQilW^Kj@DQN?I{w8}KPADb?&m}h|ZB!kQr~UJ9!U_ zmhQt(-pJr_inDY_rn4XPlf@fWdP?Hq0Rh5+O8;!AK@J*mjDF)Gm-a^4DuFF{HeCff zEXbJf7;3D$Pz+S-9wvV%C|Ih@fj;#>XwzRg_|G}Q!Hk49Hw_O!QFU`xtxj^pyjB6> zs$)3?%!h5ZGCfj&xhrr^k4BAE$%0n;;->X3G53?Fp+oieC%&ds`x?SUL^m&;E=o5% z?nYSZLHBwBdnv%ov`gN1HWZ9f?BhaeC;u8iFJ5}b_L9YO$M)x&)03yl97)uo4pJsz8bsBPe8Ix~i2^<;PYwuX5%SCDm)-lgnY%1xGA zdFXS-=Qc51m%XYcj1Xc6sPuGlh;dl5Wo%(7#zWw!q7xibf3oP%x(p%;eL6;>>L7&B zJBdN`%Q_neUtuZyGI3cQd`!Wp&swiT6w-hhPL$CYJp^V{k)HJCkjeT;!w#w`Y)?q9 z_!C<{df-=Mw)QM*+321^&^W7$ek`QM&NE5W8S9-#K~;5KR{0iON_gq}lL$G&DiIhJ zR7W||@tOws_AuJHm|>hMWzszCKl&<^=}eaDvdT#mhaQgQ65gdMY^<3S0o1F+i|tJp zltYNli4-xt&tqKfP}j69`o)W$U-=%aTe&A>w>6S15kkzdzu*m|VL0<;SfrSoIpkn5 zykpo)a!TE^EW!RoV!r@rsgen6-D5GKc=AcJ$?>&P`fZv%X-)-xd~aojKi533Y7U4% za5V6golJQCwzzLh`p^o59%ydZJOS!Rldols1VoKC5Y(;YmW+m_%z_UThZ~R+g~ly4 z(_6KM`giMP(oW>9L?m_5cD=@ylZw1WgV~5VPwl%!~OkUz8=em-D`EX0gGY# zz+Q)+KW5TBBX()!$&0_8s=oyjYNlRRodkoz^h18OQT@XMHOUrmHt7-2wBJlH=)lFL*kMKVrVDcmfDjU z0Fu1|p5AnQy0Ahft(g}cs)cBA=(+HHH(&6kG2sivO+NqJ^^G{9oRrX#0)qAg8Tt#xoD{o0X%X{<)PI;@X*TAqzvEKh|RVX4!SPe=~$0BA}(l|8KypwkegZpr6 zK6+6}A$k+juxa-DRlkQO$RJ$q09Qb$zfLJk_W6d#Poc5u6SS-~t%Z=x6!)zRcNu)UrMPgo>x}^zBYLZG^O+snvP>E})v=V&g2ceR9$r^m;#pkHcFDR!Z8{>Ro*n$Hs3F$>%^{Luan@{JQ;Nc1HuM0fKtx zYcQ~lQc!_mvT%7Ogg!i)QI{b&HIki7%r2L7j2+_lUuRj$zzsfx5tqBYJpZL-K7m&g zY96Ahjm0CV9U1edW(oRXJZHOiHS6mI9v-?jZ|I1U|9>uRw+Gj02TM^;uo-r*m4%(#!Sy1zPd-ozfB4)}>4yu(a`I0zx{7jX> zCgs}x`S;`F$$DfBO*5}U+S`3hCbP_D9avumc!O9&mprCy?cj%?qi~?%ejW{4RK`8% zJv?;pl+o8$M$t;4Z^Al$B4Rc0I&`U!!DXHIG2HO2nIRY}PlnE-=aTxW(swd|ncLCW z!K7Jl^Tbf76XJsIatJ3laqvG^zo|6(rH>)5F<=s)>xB)Vrm(l6S-rfBtrdw1Z-La8 zHzF1jG&|~EqeZ1(b#JkJaccg(@; zVr9Kt+3%=dE*JYTvpcX3oQFDpDn!UrhGHFgesFS?|L4+f`!Cibnt`B}kzI0H-MP#Yyo}lr zjL~soI%T$eB4?v#qXrOfF5Q~EP~%97AZcfT#)wwh97>)E9K%uc4b?&tM}H;uE`4rx zABZm%j#V3j!V>krpZZxdkE@hbKa6A(8s?Q}1@|-syscskZb^w48BanmJI< zhKK8wL>*1RlQzFT&!%!a(NJvnc7`QOV||kFK!-%Hp=seBOT7`K~dI5Q6n4K42o|18OB2Bs)dZxneNkI~aRaluw0sLCS^xX4}A*Hy3-sO;^-otky zl+eUj|BcC%vO`+$c)Wg0kqN=fQsEVYl5fpzv8f(7-MxM@<-EI}xo339EF<3oa%1qw z0Pd40llC__trL*vidWDWd6p0^kvXslEnBP!lDs=2;jr{YOGy%eHlayxI&>^3L+iWz zlHH1?NmdScJImYvKKH>ycQX@e_E&ADVzygTc-7_xinAXOy(KW2$0V8t<&?S<=!%ka_^l3~4MUz^H zl%2C%%p&a=(_&phv7TPMfr&aKo(hn523PoyI+*mVdciLomPhRAofiM_rWu>XK7j|D zw4>urHievVs4`5Mwi^HK0B9d{Vav~6@GVYfcr-WS&A%P4;Ha;1DXluUF6q_pn}#GCJh2oyxhJwSbD}7e z>P`A|wlf=0B++a9@u*Kw2t-m#*Lo9Q7x|Iew-aAzl4zhTa8#et&|X;}AFGX86qJC6 zI>sop7kPG|B?+BYT~iy_#FLkOs6@IIe&aTz@1G<2-dXgo;_jhZcRZ0ELFp`+S=6#u z8?q3_{XG@4Z^J@nB4XsZqOeLc4HK5@DP0?MmZp|&Y_r(J6PmTJYrpCXlU^!9Ir^o$ zFLE}#g5f&g4d=~K`OBsUPX*(ZA{~AB4vFa+FJ_m~aijZH;;G)H5leI~NaA+t4^3KQi-->S;VhoQ$^#H9XjMr zd<4z7l-SY*lvxN^@)LILDrf?~r_ffw*p=wZNv9!*2~`tKU*XthnN+Ok{Vz~_A=BI& z7Pyu0O#p((Bi8LrxaMlmrPMaduC6x6PM6+w%KO^f;3YE|lk*mGbkZ7psHVxFsJ0%& z=cfJxT4Q=%tv0Yp>?OF+VzO~A5|(Yh*fN)H*!BcBkDnRA@@NY~gmnBbMP$0-4`Uj?QZuIKHFw)N9G)#WCRkdB$zUd2V2 zyck)7_|>)))0deP`mSk4&M$(2PY$z6T?qnLNN<6D0E7yk)T}x@|8DxAS-}SSEB$-6q~5XS_wpomdb2yc zmtutMQXk&u;zBjdSjVn?&fMtv19-7@&DwhbT*w(~FzOM~&Y6ndU^HahSSsdWVjdEe z%-cIkRoi${QFHBRKP9uP%_?P0bvZfIxs$p)1nM!qxi&X!j{Jn4ogmxN9ipxB z`6US%_0~|l$IGRsMI4zEofxdV!&ObA!LLTeVpCoLucfBPxS+}(a1ojL+-Qx3)sov3 z7jB0A_{7E~Tm0spS0DXo-#7z3(ih)vX~2nSEX6&Ff`s~)o5_~1taZ`5qk zsIy?cL%Bxx`%m5@0ZrY^Uus4}I!$f)8pKm?JzuJxzWqg0NdzKc1Y8fJUoPeLO{jY?-nf|OjO3QNcXKtYWHOdyuYD2Pr(2HX6B1m0tpt&;GxOP zHpvj%WXzZuhovY!Zc?RhM6i!{0A}YgJ_2%8rU_u5H z9ER<4v6inubCFTD?p2p`xx>vR`8mg24!MN%E7x#fP)h9@bpj%2Fdc_P6yLg+vD2YT zupH{t`~*CwuO?onpROqhwutKkq9`dV_DT=sk3ZwKJ)CQ z4Cv1&1P9gMJ@1imjiZ?0NNYYg#o8yq1xI%u4&GClVuDDhQxNL*Layv{xG7>pp_z2#Mzh~XuG zJ>Nn&n-!9DSLxB*&ZD`0pa1z#ztYc$I2Ea_|NMJLJQAIxlx|fC%LTc8?u0Bk@AKS`%N+9LPpLehJ^aHT}af(mL4n4U`f8PF#PQ zOB0Zmw#O{G>XGN-E-!PYUWg=gtNrtDUX!43OFzR3*qt%RiF)+L`U=o{o-96uY&ArH z+9@^oxvpJ-9~xp(f!FXPO{2_xU6RpTKl6=H(Nge-6Gq<-RTEPeODFQMYd+31gsj75 zA%}zFS5tdbXNaFWmYQ_YoVw`P3@bpR{cyL$?&ww!>k^!Wpv*jLM)#p78U%@C{DeLT z^lIRYM#kM1M1ZivCeA(M_L-o{Do%SgsS|$ zUobG9dU<51O&t=6K<2O#ER&V?cboSdz&)s+yOiSw`Jd{5k=2l2qMm0l@HWfek8u-e!Uj8y=c6SqsFu5} zNU8dAGv7JzHo6F1gNS3%RjdgTc}SX-BYL+|yz(DE4Qt}$gk;6oMTF1?$f zZ{)A3@6a=%7ncR{eM-J;Pfl->IlKOYSUB`a+{e&Ia*p0ReY5^|h}SStr}}siNYuI7 zF_hT8G1&L{t6$J>$87fPEezh=;ZopNk2g%)YbCPJGlX`U1Uj2v`ey|N`jbY?VH(SGjn}hFMLPq!W#h9^Jxsb_4 z>t`bb!g)MfQ-hjNA9$5R%~V6fWJ%okM+NH2J@daX5 z?}GdEJFMQ#L;Et$TZVgXWG2shI)=&o`u*^%nn-Ut8h3!J zyUqAwUZjAPJR$NHU3xok$6O;uLEJ_Rut6{9q(+diE`ypjyTKw)h_T$PT?wsKzwjkB z1Tc)vkhn9ha)PJ6coA>(EeK$Plm8kAz4fbo8{4DN$dCAL@ExRZkg~n?(lB(sHBLQq zFZ#`b2x^Bnj7(ODGQ3@=`Cv9>VT;8kFW_@AEM-M)1nnmsS%j$wrLqpUmLGt~TS_la z=mAT#c+oST7~_Mmt9R>9#kO8?CLHD~A*_1RS7$NCo6se?7%B-wBfxa^a7iS08iQ9Z z$$Hr88B;GTFa3bbN@BR|39RcPtK@p=_dj0-hWf#I!~}*gU%s%{bPrpbE@_vqx4&3# z8CbH)@<0}>!)`-HCC_~s4Ddy4cM>qd`!qm0iD4$Pgpm>h+3cIZ8#%;kIV7g&*vnpn zr!;WF;Dp-WL}67Mm}05lt)@Db4E<`o?r47w3U&tsRc>gihnNMgNk3=>`C8H#b*TF( z!I4dyG0B4>Rvq;Ox;3my9Qg+})chnOE!hIlNsA#_9TLe^b6=Di;fHM`qAE8|QI zleZqynUe@#W-M@W*_*VOs+R(Uif#X?7(+g#AK*{+P4qDOibDfXoV+ASpsCMzp?wf{(FLf@`JsMF73j59 z39S-Pb3uNN63A%8x?mP=o*u~R(%>~Uc-c;tr@{cez-)Hf@Odn#LsP~QTfF*0o&N4f zg$XHwfkM4NdETO=8OzVS|%@wF`3%M{t&}fs*q^fXA-fO>8Z$Mn3%+^25p!AsH?PJhO=+IqS6+zq9sK+T2;KbcU; zNpQK%k8(FIsb-@d>6Gwt|37&nW1q$f zgZw#1wcJJ{k)a~dhGZcPOJWTUO<-pS?66IfaFJc$m9Hcm>i706qo3&U`^PxSS#qgG^7WaSMQoBGgiv39(h(`y z<`@V9>F7}a3_dt*|&ZN`IvX(0? zYX(^a;O_7JN?(R?iU20Mg7ZEVslcUZ9T~H_nl5ezJI^9=hW{qV-1zp~6iI0A@Jepz zF262BJuG7Gzg`htBOEBV+#fvS)5C?6azN;~2rri#c`*Qa8^V}gOvQ#PIp|zJC66OQ z!eLmAejrhxXuAM+J$w)yZhB2W>JA!%DbyT-nq8*F8_&iI{F=N?$Dp1XfVA=%h1ksO znsaQXA_{wF!m_2}?W^vFUZD|iM3NA&KaBDPQQ?qcGu(n1$;&K&G;Bt2(gt!+ZVmn~ z^fFY03|4yn7>Zgk#d<))q+U2DL{D6qsH6JTGz!W|m>nw%qnDK%z>7Y(;6-qbFTaUH z`g_1e8a^gR#A3P4C?Dht8O(qSE{^t9xA}SfU z{6!DDO&-c)X3pc#BNuQj!#E&FM>R;y;S*IB9tXBUwui=$2aK@+J1`o43fIT?{7g?L zH)%rt0d>yGx$z#uHl%XT7G_7=yY@{QC3{Jfe&n?aHp6@h>gXLtz zVd4T8fh;PXHND_lL;VJ!lnpcR_zPc0mezrhcjWu`{}TJ4Uao+fU!l#Nw)!E})t!_= zl#*7Dz87CP?Zc%T<&f)X`ibxMYIDRq31tjXWIYZ_7Oi=~X{bi7Fs2*Om#tFiglN-mhlK(p}{p z&FIOz)=aMVBH;V}NAv5IRWD9FY^<-UTTm=T^@x$=Xq|2wilih#Ru%DGro`6FF4!_* zt*&?O4rq`GEXWa9(zq>4UhZUw>ceUBr2K0Rp}Zv^TEeH)j@xRcwGzQ1N9C;=ZNj>z zUPn})CM6~xa^jg&J9(2;beM4UgVsWRt7m6xzaD+22lkRat+Eg7fhXIgReu}mSw(6N zbP*x#TAHf*oMe*yXSK0CS(sY!_&I5S=CPRJ{+0v;RnO7_;{}>uJBKMR#8yA<5Wo(K zMDOz*!?~Rc`_^n(Vos|7bAcQhH~g#1PchcA=RLh$ShjdrmM6pAP}9x zvks1bQ3yfVfuTS>PDVYeSJci+_z>*v#5PX+=4p4#EZ`>{7^#}mz$PB{0kgm9(kt6FZp>&nQ@Y1cf^lmCS^ zluUPxwYh?EBc4Z$#@td;tz#Q{+&?%fJETR68H)5>4XBO-}ukKsF zJXuTT9h<1N)x8Qud;j^D)b?ZjFHaKbWnB}kznTky;5!TF0~T(jL34L6!V zy(jng;S2I5ecw%e!>Vz=MDM5dUF&D+ z*0KI)#6py-TKwr8>oJ8^lajar79~Y*Z~fZ!nL*V{ITn^7i)>nIixU;tK&Hw;OR|I? z*SW0aXry^&e8^swDS;s68_I=^j~?~`t#b3XG@5C4sF$gs3Lr|VD|-!nRJ)xH|D^@g zL53>E7Ruo6KlJsiOW7RYL-3B+9}_6of+7fYf8w-`r1W@g?=@k?6^@e zV4C0%q_T5rvEZ8KW7YqpdlLM?>U+qK%nBj38g?31d(`(u;2?!M>MXaul~MSqvDxPX z+pc|jzRfQd=k&n-PVK}(WD&uQ4`L6qN%k<^$~8SC0C|)V&d)?Fm_`5v(f4Li#sGGd zrs|tCE!I&urn!MfqDZ4C{i=_+u!ETRV;jT59SW?@;6ZnQ;PYHtzkUr0Qhrw>A#{M( zV3U`=e6GP{vqlMP0&C9G+uR#Gesx3XzHUt}t;e&cGy#uqRNl;B&gKv*p*gWLuMpiY zb@JG(D7pV*(;p}6c{nb6!2kSEqeww6N89vP_;evX1)wwD2nwK!^QB25M-r4V*_+>JBH$%6M|6tUE z3>?-}ZHCEnn`5JHL_BcW;{;N!t~ zjgcH(2f6kH{iR7BZsG9`lb&@AQ$cXz?Lzierijd!A=#{|z!LC%G9``z8T7Zk{Bt-n zc_I5U=@)-~bR)UdSORX`f#cG3^8!kpOeN7Y@lt)$$vVbKuadW`2kb~BNg(t`%rw{) z?#)%~c2duk3}uB|)0pF>_$5!W#(*&iH6f*OBjh17DXI8szg-^l?|RpZPOH^jf;*r` zE&^}UNWQzt+h}<9wSzhIt$}Tip~6$KTc4rjHn&kU8NT4lFP?jevIQ}41r!>+Adgb_ z(Y<|OPt2R-5ypF|Yj4qpPT70Vk?Xhivnn5u5!N?yLnjaHRq*Iu<^jtNzHMqIgEa)l zq!zJHJX5{YoR#B3(g&IH%?pUJnP0&@aFe)gA}nZA`%QZGcfTtg{pD(7<#^FF{cFJ0 zOV_!Kk26im+Xu+FvJGRr(`0xELf}`2N@34F1qz+&Jmk4F$*&hkgL+x1`j>!;FUFWu;n?pmA2oEz^V=T!Q1-84m_81cY9+^sXEAQMb>K5mV8fEvtg5^r z+1$Kh7^8;kQoa##C+Cm9n_W>=sa~O)_2o1YCRL+5pYRA!o~)&PYWvvRMtT-GcL< zUf?s;cG+$X_dX_{CX0y6?zXySB)N_2WH$Q|4@zGa7GL?_a}=7)tV*-c>J);hC#_S!d(2A(yfUuid?vw&#wPW*JN|LMjQP+JL zgiTSQhl$&E2pJz7It^RpW@KRc;jefN?Y6oMy}PwP>u>m+FuN}rs~`5NlmY-h3E<}U zUdHFUZA+o35TrTLMRrh_n&7f|GuB{i)rgP#V|2{rULKcs@#6Il_~w2WA9QNd+YflH z3L6_P{xx>i=+Qn`FtOu0m+D|Qd!fqW=Cbqr$~J|NEZI||U8q*g)pdQSXPs^U95027_SU)o0 zC~VNImjNfMz|=|EvNRMJD?38dS%esK198Rg4mWyi|8S#a)gOkAU409*f;BY4B}=?s1{yx!A8$J(`d*Ar8iT9P zcnf5I53vp&c9&I~qnL&R$&+MY%k3#oK6)r$7ucMCTz45+~7rAEFIf2tFJ$i*pA4+o2N<4Xn^7SIwF z=#@6H08Vx7a%?taIhg-bawBOl+=d{!CbaC%ZK_VRI)Pcc7|P9NisM%>yGn@7XIXzS z@sDYw^T)>*b3

`W-w{ZxlXdScjKr6sI4&JayMH@(8}~w3%%_OS{dxvgg;NkQ)zu z?zoJZ%9(|sQOpGz%YYc}YY?g?&}_xZNRnDWAiU-HN7XxGq>XEJ;yck}7ZBGcPf zd8pF!&%duw(A?mv(cPwW0IYTL*vRN`3mN^dpDg1wJI1btZTV_PtdhqXM0&z8=OP1f zFUEB_Q=!*H_p#PzC{u^KR$ zq&%y$(mS_mHS8;m6p+;LF6>Z8r}7{5A;8216)jbIvwQ^2dG`|z?z2pcWwHk`$p4iJ zOrO0%kGkH%u$scH^K!7cMi@Do07I{#jd9*(?|E@RU}GgDQXKy(ti>jCZIJcX*NLf4D=SYBkKb9?o#Z=!dPR zrEnejVE8jhGbAN?Ei|f^y2)@A7W$Gvs2;Whq}f0i-MyJ@!XdpK1?wj=PH9y2b49JsJ*GO1+onq1eDP2zij z%P5t-b)owjQj$`rO}6Xf>@EfdF|=wXsBR(CHDHEJ3xt?|!Qb3L50m!sKDXXN$|lT+tsO_m4jC1 zq+3%rUAVU!Hh&{^izz+i-e8^U>Von0b>5eh5Ko(hl|v;7ugdKTcz)cn1lackktcO! za!Tihf+AP^7M4?)k&RAj4o^%ni?i_}5ac~Ko%W9T{uxeQU9tXl)5G9zRW)|`C0T&m z3IpttIUd$oe`dvI&Tr33LI(}i>97iMfs@>r{Lq2Y`wT9sCUDPLwoFYudin&uN`qPJ zu&Lt)gGP@4VLSXZT9gkkf@N0veP~6`m~QMcqccZ+dnf~21Ty?u`a0MkNNjv@$Pl6~ zbBN8(QWc=jlDt0k&Sp4}HDs5yloi-&Yq>P~bcJf2|NL8yP)nx=JwVQxiMsVP&_nN( z;L~=T>hqApAt<^vIgmj_vO1YE1j&O@&d)=fS%I+Sm+$qphSVtL=VtnvADuudsnzlzt8emg7wR}CUhG-r)|Zsxwi~veobLJN6%?})67gFj zB>XTgCgnaSme@M6SA)cWl?}fj1hSge6q5AEq06@N=&V6L)uI`r8jb zjChc%Y)~&4Fs|{BPhBANfabrD(oq`w#k$@^q1#|RIBv1ur8mYKQ!~C9JS&mH28#(zRWf%@8hsc)WSobw5Kmr>hD6>JU8*n!PvZ(J$zlXLV7HXDv6BAFwFW$ z(-pmrzw|i^0HuWBzk0}PDoH(eoz@lQllG!YopOU-y zy#0KjuMI!21K@?XNZ0hU8}SFT_%Rt~T|g_|rr{VezMLDuYF@z!zxdbd-VHWl7(!Dw zcDcOwpMPIHUO3;KUf~4x`akwHBy7UAHg6mlxPwKo>X0(A`4;kxWVFD5RzqH{8(-R) z2#943bc4z{3^gzJX*P%iJuWs>*+Cx<%Popc%>gO0-4mRef|Yh(es$TsBM2Ru@$f{W zgty=(j?A|N;#kWaRRjP#^Xq$wXpi4C0>R#S=6=^(9xqJ-c;lZ9=44}C(?(%o(f7`? z-<@ZVnK2W;6l#`&tZ>KPVU;y$VEnY!KsXsjH+A~p4TpU-me^;7f2wJ`Wm^Vau6kpD zwVs~9R0vsCVKO_4q77lJUX5yp{BiZkbFdJvbmb)Auz#}VAAP) zR`tQvV3r~hpX+m^wxA6cdaA`Iyc-Wk(5p=ZT8v@0>DA{oH8P{KSc>u0Frzb`@@5wz zmE09e#>dCtlSaApND_T3S*tt}6JN0bj}=e}=;l!$=q#<{97^cj^=c|%!z?Fo!ySEm z?y}aspXp3yByej2T~T}B5K8`c0E|`8rsN}Nry|COm|fA9m8aXM$TWTT$D|EprRy$I z7EW#8kRG|FEf&MOU4XJ5AFZUlM4&6!vy+2PYGQ`MujE0*fT?|AfG?Ftp3*_zabKHO%iz#m$|2i&vw zocCQQIGlp(D)#VI10rKE`gzcWaBHlKbWzt1_ zl3*WpU-Tb^Lx%#?OmEeNzIIgz1yc?AoqT}i?!?gdJrQV}fp)nIqMx(+m>*Il2SIW3 z_Iyx*&%ZBn{5NvK1AArj1nju^wb0C4^KHW7bDpHo7jo^vKrP)qWl;y0THQ2V z39~~Jv>^=tR|bngyDG5st>GS!6ra@6rs=G}1SC#Lw*y7>1_9$*HF!%l8*AHPvgv=e z^WEF#4FN_*p-9o_P_NF(Z|X`#0eP!^)t9THrq0+XgkU4lsei=8H~?{3BXSb5-VJ(Z zEicgWZT3js$x@9FZhI}UH~(Uv3L`NRNm_0j7P-3MTp=~a9TCG&`4pW@>Cyk4{+D>y z7`u0CVAkpJ!j3fMPR7&o7!2=fD{~!Igt*?p*tHICgdl|_&ccRy+n(N8h2eEF7_oTX zM5-{?-7AZ5eheQ(CkJEY!^K8;jhR|W7^pXp*S?l6>+fL{^g#WVk=^qD7(3G}%~2jo zZ>W!t=OMR}``<@@DRG}Gu;1$b5m8xTY(NMNS3)R=is>3{50(j+5Bp@+I=1pJ-cM66 zQ%^Nq-bE5&BrGdn;g+;ZKvxUE=+aYgMboOvHXc15-ChNG*|6+tQqoSS5@Z15aW#~) zjKU0+zlm^CuJ$1vP_oPUS9lA*7%G$aUQKe1uH{q z!$Q?CT(OgOzj0J`R*vA3zDPAE$%&0kmS(*lW%#Fq zf@z)}&c-}15vhP(Q_)M(jpf?o?xNUoXmFRIQlkqn(%HFe8#n>GeZ_cU-bU7Zvn4R- zqv2h~i_JLEBB)5j=apLTV}C9oH}0XMG1$`%f@!fwEQ@gW7aTD&{{=w!vrTU6(Fg9f z#Zd>bXjy9$&=;iO2$r>4R;>M3M=gkqdG!U}>0M(&%R2TY;E*U#DGWTZ@#{_^Z2zBCK)_(V?Hlr z^Q9CCnN|ZA0!^|c%4mLphOd)W!&=nAe2D<5`UjT(TndlmRZzN&Cb(z$^Osb03@uWA zaAZh{l6FixCFqEQ5q~%SL@+56fd2Jzfh8CNcX_uR2}JlAvg9#-R2-fc;Jb~3OhW}9 zYL`Y^)`!T#14?4W_tNgOMTCQqH${O38o!FQ*z^K!xO5KauWt5@NgU;=A6}R(n}NgD z?)~~u%!x1sYmURqdP)X1{B5&3i4ZfU#F5-XviP%oIUoki1eGkl47B9AA zOI18IVOP@ewcHmLqAM(5v+L37=&m{F)DqfCO%yX;b$ACa#+TKmro7a>tE2k7ONZ5% zTf|arVT0AS|FK&6GYD=kZnQemQM34}nMfkN2ynA1d53-Mp;&lWLiXoj@iG%(d<8%|d%>u7uzV<_ z_9?u4zd)5;8q3Z?m&VkqsZ)s7s~b^rUKaYv&=yElg95<0#8Ut8^_Vc)Kvb1I3Qk?Bs7L~`sJ=O} zV&4n9G#z_@tV$rT(Ss;PsqZ8Vc_qYDEoU*7LxAlF1{#)fTlf{F_Va?6UjSR!P>%8~ z7?(Sw-}?7)Ljfq*VeQkQFeK4fO&lKXDzaSSjg*U@AUYuD#l@_4`bB5WdqS^VAlQn!hwzT4ZEK!mmXZ zMuhtGg2(W?(sEu$2fjsxl|7TCIMN5!uCeXE@;a`-gJql9-Uy=#MW?M}B-9!6wgEL$ zhG-XHHeTn*v#=(g{7n_Rkp05Bp7?Kyth4WaD?fhwFh0U`WG!^rKHz>aZHf|tLm5AV zfvsinUX8#aii73Ybf6w}!7)t#Jq`Z4TI@#N3-mhcnAyN$j#!ejZXDMWgS+fy=*cEt z)<-KW!vVBXkujL<;Z?QhQMhR?RXF&FD-O)vfHbegBXV(6HmKgYFi=7=#2n*a=%0#R zvO!!-y-Nr_4f^i-rLApDu!IlPxkxmjLai2wY&mt0Ub; zlcR1(`dEp%an!#Icw3!tj&GrYsT}n!_s4YDf5-_e@DlTVS$FVFckxDbbXqvJi>&z$ zLYTIU=fo?;b#aMX!bcBgvWv^mz=5epomWH4T9euvKIbiYpSk~FB@lQ`VXI%0ph>BNRr(f_ENbWiaoF?c z?+(&@O_n4z!jv9a^1u1n1_fZu<|ZqDki=r7mquD4PpPWgpFj#$k$_ismCk0|o~<-r z*=1=sY!iv8SDEd_n9MWaTO!@z&c+=tH#~5)8|X^o#QyipT+altz9WWLFvJxw!eLb+ z^Ee_St{i0E)wE?|kA4`i$L5KB7F7o;JWwlDNE1|OJM|w=J@cQx8%7FhUQDIdkqVNB zkBK-{m1l${*ur{|8pFYEs837_vm+$S6ZXU3N|t!RQq9h}E-ZjIqVK}aXE4!nsj%<*f90K85$k`OfB zfW>ek3B12B-Bv9|YBO=zmM3#kxxR|lpj_x>3 zVx~Q>6xcASs!ql(p4jLkT2Z@*0bXoC49q%|4YH*4&Yg8`_{SbfbfIp&*7~5Uh@ZU z8d*Ep;g`AF)!^!Zt4rT|C2Ewa=(`906%$FV9lNAWIoRoFw-@@BiDCVvNsUvcUt9M! zIyGGx1~0cxV!47;rM|lS!s5qO)U_I9ne%wLVWd2jY9EFi)Yl+-^AetMH}FdN_Fjpd zf2#b1buh`fid>w%4ms92baL-~RbO{^k6rD#OH|Cg89dM-fg^LnrNCArA6SPj-Ej0K zcy(jh_g$i66J!M&aC}0_KPjzZQELP*rk&&TV6V-&AybcB8Qd@;iMUKhGU(c z%yuO9E(XO!c4_OF?n)1L>C8ZPrK{U6T@5Qt1O$*I_C;In6d8Tqw1@Jml2S6(V+n$y zrE3vEAIXTLYX{UA4#MNw>i^wrvM<%Q1J`PmYZSZQtGzViF_`Eo zN9IeDbeQoxzsbANs8Y0_@JgGl%HztckZi{a!C>iGFavjdymKDiQN2KI!}@%!Rid64 z@->o-riY6#`upvJs+84Wz9{|Q@Uh8C9a%A%sFOJ-TF7zPKRJdSkAW;94*Zr#lo%|HiFMn`m|KFUE{u!%5iWs63Kcz|7Hhgf2!ucsD(&&dd`YV<80 znXl4tP8k~mdu7K`+KE+E(1B_hY=={m^&#mEXFOxGvk1c>mppy4dKq0hb_7lHY)}|I z%Q)`#6YTZmeGz#nHa=7#t?Z_9hy4qD9T1ZonuKO;D6V3n9R4WE;8{B{eZjHx#0dcBsad?#b73hu>~AKF1n_>``rgdu1kecRl=^mRVsJ-bQ+Atu2;LW$b39dZ-<*rA#RZ*`*;=pE{--`zf9nT|K6LgVN!yH|n+& z%#qP#L~2J}oVuo_I|E=Eb((2EH+EY7{C!wh(cxtp`vkQwI6bPC+q6iF1({;tS~Hn> z-8RbPSuJnwCfH`Qd{DSoX}DrQ5%m>S{h?C)e7Cnf5R)y@N_2PPkqZDBNTKoxYP*fI zJRONz>#OYXc2;55KRbz2JUeV|4`~>`9tLxFH_vt7Oj0b}h^hwP&{nB#^*lHPTbYg9 zmN&R*{U0|4JBTNU0AoO$zgOyK^IRl{>lnI0?$U2gY4475h_Ny(KvqWGLiKVqoJs6n zHc$Gm&qxXEN@3AJCe97oJG+T<%7;GfeC#x{c8^C!G>d8AJ7mEj6;>%z>R>LM#*^+| zKoNBB8!+u%?W2rk$6N8|%Yzd2h!!LWhDTpAV<&q!#4_8#vX=doOV9@AEcDIB*P(eX zAgc#6!RR>}e{IcD&x2S%bT1GgEGnQdryg_}5CsV$KH=5k-06iudyf7eh+8gP40YG6 zsQNGKU~&HM&J??XrYkYLQY|W-7$&@evdvnJ!>&s3&Mszilni!ns6^-+(vF(pNsJXa zHEZcx1#OUIq0XUhHaIP_)uEx&J#w&UpHdX<5K};s3#(*T(;aD9W8|5+5(1Ykjqsp? zcp?!O<6pIDR!FWnhZWKvaI>5KWo(N=% z6Bh*V{j7Pv1zZg&W=+hM61BVY^hFkFCsf*97wH9kM6JHWh|3jj>>iFpNZK=&RZlBX zq9rn47^g3Dd5A+Uqo~NDo+WJ}`0QWux^>X!^;;N_?S$Hj3K|WDtv(Oh*eA&l zn>iR)K#I(^2nS^ZUs7|G8E~;c`6tj|Nn`Y_=5CM5*F|?`=Bly9;>Wwj>uu`#@rp5b zYtPvov@KfFmU~hb)>PjsLJwhN>rzw8>l`HnEu#2<5B>YB3SS|+t(5rB+aiLoP7i)u zT6vP~s5kC|e()DbJ2@MN{mWqwV#yIr@n3^TxI>Ezi+!4wNnM=JS2bw_6I!pD3YgV5 zuH6C@`A8}2n{6yEA6I#K)r8hTl(7!J2F~^7g+@9UPsTu=1AIR`B@;*)K{vhjXPO&i zBuS?%WoyRQtWRe70=sD8J1*M6o~yQS2mMKcMbmWIIM))K8oTZGt+BQ?Hi=7tq^}d~ z%C;rfUqjiYD6jvq*WC5YrjJh;GsNI{&;u9(uE{HlPp+L9{|5e%sCtMYN{udxu+O~T z?|rf5Q5uwE&X{C%X}NrIv2*C?4i%!4;87}ZUr* zt(84xZ3(T_IQwReH zH3mD1HG~@F<{KQu1uizeVhBF$Wl5*AaV<_0hV2vodZq4=W%^0%0#EEZ*hh@%`BKVI;$oe-nU@2c9uAw8#AIFZQJ zbrVz-KH+POvQ~lMz?d4-h7GiQj)5)3cSFBV1*#1Y%aNxI?gh*Cgbl4F+BCDaqEgV( zu?6jOv3-68LvbnNs(|CBx#Vd};H`rUt;R;Kp5U|KTXlEY7P;e_F~2O%n*oajQsE!n znEJJ`!~WEbis~v>VuuFaiqVM zNB#r*Fd7^XtQDRqzrb%1hdA7xXs7Aaa=1tBRzoWBI9f3 z!vYJc5_NVpMQ1B>6FlFHC*iHJq{zP%|p*su`h*D!X63EBF1FX1}h7r&2gq#G{bgA zOCAy%I}3`riL5#_T`afI6jV7WH&}?Y8)~E7XumHPS#1>yd|_vHj5uco3t}b97d*Hp?ei!4 zH&Yu0<;q?L-`$vQiD+$*k?vizza@9aiosT5g!bd;9p>LAaxKVaPK(~+6N37cf-Rm=TjGW3#$u{*n^11g9J`W{Ns#jE(1JDdjL+-=kJBT_)6r(i= z49jq26-P#39N%mc8)6l6jEui&=(ndsXPxP4%P3f&MBzp+xvBrO00oDPVz>rreXw=h zujSI7YbwgBwvj!Wm-dc3`fxn-!D@ZPw+tDb_jqupIJ?@eEWZGW`_JEAwGICc$$NiE z%2=bUzjzc6du-NRs$~0+NMg0IW$2JtLdhICApjGi_A#bPvBrhx(|cW7csx~eoFSC|WzKU+GglJ=&>i6`fJv>IMLN+_dtlqNBE^xm-R{_)Z} z+Z2DT>+5#wFG}CQ&i^%Y6X@q~81R4a;y1&ZKfGkN+rL+=F6{q;*M>H#d zF<4ViI~>f-zI?hrRY5PHGw?@X7C{fbm9+|Nc6))eq~)wy8JfU?%-q|x%A`SQ%d}Eb zKsx@H#v1>|lt~ZZ;-!p0)Ft2GhD7I4-`z2X%ysm4UZKw5-9?l4^@Fg(A)3r>x|tfkl^qSL(Z(Fv70kv|}V>?BlRr4ozTjaz@p_`tD+QZDAQ! z;;&91-A&|^_imYd;ChZX9JD(0bf4<(HTsbLoAfn)3%JGx2-{t8iCk3tX$P@5HH<82 zt|f`NIu11JoeNy0;mB|{hc%FjD=zX45HqThW@4>dD+V$ZkTxARWZMFV?QA^6T%Nz& z`1_)NRh<IF@T==%V3H zv>+ir^<_h&R8F4tp=!{@z6G1U@aR`wMxF_Fca*5DKB7FPH;aJ0NS>t-rMy-ExwBb< zSBfSd9p&Ao77)mNrj9FqWobJ{;Q*Yswd+_%GuFMFOT4j&;2tNpXy%z>QYz>KYckfD z@J$m6HO3}l8GW_AaT^>En7HyE@OS3@AmuA^2uny$f*perR#Km|dHhdKBd)~U;#+{F zolzK?>xInM{exG!5zlHHR5Tu~Pm|m=P4)K)-6r>cPU|pS>IWBNi}aooPZDpNB0g=(uW0hLlups{$;|? zBlA^9e~0}$e>|ZDsRfE*)QR0Radrg)PrQp8vsfE-H!fllQ{ri78`d4#+`LVWEq?1! z8)YOELvM3`UZqJ1B>K6uY}x*DP$dp6m9c3T4~sWVcC8YB zS*J>eX|4r16+8JqMrIF|MA#M%1CBl$-N%OW@0B-4p{=0udS!tJq$gd|$D%bvDWG>{ zkoh#GPbs4f`51<+2uM{VJc`P^LGUc}uN{p6C`}e~$Kuidr2T5h13XxUM2OgsK-fA5 zulPE8(W7p*Yy(ewxtOjyf5k?Y{(7LUc=#-CdTgSmF4o&>b?7;t?pHsyh7?))<+Ewo z<*RtCX-r@ukMh+e2dyj0+Dh&H%Xr7CX~+AH$*z}}_QtVT><7k!Tbz{1celC~GiQCG zM>APm5WlNru%Tl|tUMPAmEya+(O=NFo%Mbu@Avk1e7dE!#~Cz&)y2wu*}GGycYFf< zIRkq5%A3Zvp*>nkV)ezrPs(K{<*xG9!si__gERJmJqLw*GLv9uup;9Bofe&s-j(A<_f9(qrC~|g3CbCE`u39)J zX*L-LPgVXQWjGV)k_&E)QCj|ypNcghmdMv`F-A_a2Cq=5>22aJ)8-W^*>J_{T|d|` z`fx@ygClmmbr~@P?I7B5)bFo^6{Cc}KMvdGJ|BiHP)Y_aVt}q;sF--#p%L&Ji*b#}ZSXEnMIJY#GMw)qJ$ihww&7d1SJT#X+j#0erQm$z#LQ5;{b>j@sFZx__R{p|didh5^dg;qqu5)6M# z-^c24)vn^&#;(BR8eMdyo`cLuK_yNGD$B&u*G2R7N3z&cmp2}UaL2r!_(SZ$Sgl(u z`p#z0;hN?S!CUxNDc?M@14c)KiQ}6cv@mO+d1IPGzDOao#mF(iTic(%p+`?)PBP?m zSA{h-`5Qhww#nRQzy`;6?5FO2m07FpWKiF70LaoVfy4tq_q8vf=UbJ>ys4X&97T9K z92-nEchL2~v_P*r_}ks4*W;eO6p=5_yntYTV&(3fAq5&5)oovnoZ(p`~ zfD!9#4-r05>_bzN=$ab?D6Kyz#OLs1#7_z2pY&cRmLL&p+>G;Jto_g56OM7l`&`C> zlh;a*d*6=BCvxoG{o7W)^gw*a)x<8W?nY0(xnUHKu3JmcBMKS^el{66fmV$->}{$<-b);8Y6+0l;}3Tau6Ky>kYyYyPC_^N>w z^tOiL1QpIm6q_R0>S|Z!==(1{NW@iYepG-hoQ(JyHU11kk@GP=hM}2m=ke5^6Xbwm znw_3J=x7WvG2WXdud|%Y9LLSB>MK>(tY-J}l^f{sWK1BP^;fIiW4fpB05G`u<|%#w ziV7kST?6 z{KcXn+`JNB3pslvoW)sQ7sADOf(^HRWM4B}@1Kuj2V<@Tv#Zl?%pk3?-M_vRJA4^f z=yMCM>T?}FbC2um3y8XTPetxk)m(pUP#ep6k$EzF@cd8w1eq|peA-0D-dBqW#yD}-A>pLn?8^^Omm@1Zu$U#^y%jj4{%XqsP-}~GSL&#m!q9~4%SvD~oc#a?nl$?so z6H@ZC`B#YP$nCQ~NHq8n{XV4CM;KffP<_Ucon9gjH`HSiH7}Cj)Y^2Bj!L zXa~|C)N*GhHs=2_6c>h@zj0TU;nVK>b&GaqQ|Q1Lf-IjEJ8dTz|JrK!Yp(r2T8i*> z6B356dJT+tq$c#P$L|twytCN3(|B!(EFq( zd@Bm%P9UI#<)+Dd?u#pDYn?r=mg2mLS+vWUUy4o#jsqjGoEF{Fhr>J6NQ^$Q%NG1k z6DBQZK$%6~N-=3T7?0Y}_hB%oI+-D$q$0OJe-FSfQp>v4NH8KcDp&vsEwK!lZyWZ^ z&LA=WG7@H)6dg!xBC})GkP@%}3}F`|rFy&d5hVcdp%{Sut9EbhSF?skKIM1yO0k6{ zGAL66>t(>v;Ia&!wDLgXalM`C<4!L*)17QzCs|huxThHKE@Mi}10$VnUuqq~VIc%C z>Ptm5Eq8E6^rD4;>Kk8ZAg>Xe>Fq`R+j7BPd%HZ`cRK)dC6X^ehK`g0R|>1`z>iMn zDw;wT-fEE?djq-F=OgyI&qY1+cp5oGRPlCU9G|<&Yg@2lnr1vSR+*4;(lSdf$X*bcy0A54~pi^r7*x%Tq9u#cRzuskHO zSM<@`TOkUpsFVl*(ZN9^Pu!A4H4z&zK1pz0&{zQtNrZ-o?#G|MX}`>$$czJb@!@L6 z#!>_iv(IX_Q%UzN1}w=s&RdZahU9X6B^wORL~6D<+)#%^Qcn$Zlz*ax^pAAGEy42c zz-YowkW|}Xn_wcN&EVHt6@p@bU}-`?KEzVQt#HZFGkQEQobA^N&1>mM(l=5IFRizD z4eT>bfI~yk&dXHWm)WzHCW&loZn!e-M+F)7e@X7uE?~4s31`d?obpwoa#c4Ko1ALn!AFyB(=CZBbMXGQxgU__LQz!5&A8h}1xQTCA5_Wlya|vcxDF^IMxfeRsfxU4ji}I6G=j)l9f( zn@X^b$6P`0R! z2c&4$+PPq??SRRK|D}#rOss`t?CMVHGLrz3*mC_U;RpIQC+}Kqjo~Z#qJ83xM?J)J%w7di zT#9!!0?lKPA=&ccxLX5}M!{Jpo2R_klWVKpK>Rk|-U5MBXF7c&m z8+I%yCYU~jo z%PJ;%47Wx#P}s=X#@Ka(=w~SjrHd~fb@C#@J}A)zM;QDK>BUD|`L7*71M@4s96*kx z?#eEjwKSz*0}!W=ZDQ_8FYfP(Ak>LXo01P83Psu=Q*Mal04ytw6k9aMv$7sqHtuj? zyI>n{kTFFHcr!5kjxE7zua1J8dUNrCWpR^shH+}umlp+3+vx3wD9(oSa{=#QsG=cu z2N!QVarvt)l4`M$w*`#6xx3kJ!GsuLKlgCPLQr6`Y;KObmEGcs-J&c`Qfxmry0-e& zj!n|nHlBpsm0=i6cD!=|qu&P_%2?`}G7J_O3ybC>>YtmiYhfib5_+ld8 zA$Aaq^JSP~vcraG#){Z? zI@j30dK$fV85QZvR=Ytuqyt`DZH>68gEqCV+!IyBvWlq$IuN~%CbJ$=cS!9nMh#dV zEnFh7C5w0Tv@P)AW0&*85>LD?1~k*_)Lf8|AlVTvjfa^z1hT(zV^Rj6qU$)MbVib+ zHL(qMc&Qw%or79Wa|nU-;)o!An1&C_fTYq7D)`oD;DJp#@Jb!{g;n>ms8lKVXtU~J zxWV`O(ah2kt9qnZrtbe5OHT6O_v>mCi;)mzVaRMWCud*#GjHv=L?mBO+u?fW7^LWW zyZrf&(U#L3sMA>^-#oN(y+aq8SP?xDtGjV!z61cg1bN35I5eF{5><8p3y|vrkOSH4 zI?ftJ3*{Uw-Q7pne*O4*?Q!K{{1CWk*RhEpq;7y6#dB+2U(acmtFrR@`O&cHIyW43 zmgGwVb5~KPTatWJ=+bM_9?V`H_in&)N72=x+IKvTGBj+SQezVvo z#8c3GWvfz=L4WEfiQT&R|8LI6rMfH?E67nW4F>;E=zjOh%^OH5(H!_d;OGKq-E@i!+RqaXbx2?2hD~rZzkbqM+s!OrZQ?Lt_9m=!i)15RQeUUDnlb9nXh1bXTZwZV-0w;!X+QxRZhQAoy!T1) zjV2CkY8&Y@o74!X(4+pAu3V;;3#a6^4c`;#C;NCjBb&;Y?v5P9dL(r~1IAs2zD({a z-wp0r{`@`vi$qPK1yQgN_Ho-HN83Grm>uuMnwmws)nIhjWcg)ac{ipiG08@X9pFN3 zU4#2s_Q{csAYsTr$P-cl3p4%#hVk`d_ih|?h>PSd5RbWZoV4Bh8CAN{IQ53pyCH>4 z$j+&oiX*B|+1m~O;rvD5#DlwwePoU=W4|034*I+ z!YhtP1TUjt9zcKReCXJNhnaOGT?LM5Fp2xke%aBpCZ6ERivgzQEw(BJpSm|BrL_)I z>B30>HM%A$*lGJ$Q+Co0ublka*y>q3vUfxs5E#EP(O7RtU7X#e`mqG)cZmoh^-<+6ATW zee+`L3;}gNHDaPULFFs5cxcNk|*Z3t#!LH$JJdPHGY}zW} z3`4lI=a(hW%p=BJO?P<%NA*L{wOK(V#)p^`;|8T-BW+?Hr$cjHkkQtTO2()v2RR2_ zOM(6)s-LjaeAh8a;+LE1gATA=3&fpACa82!EU3zbUdbTmrIlOlej-sHanRvt>Qn7Z zHdv-F6V=etGqXfb#h%@UxV2)79ol9{ybvRQO5L5LHegPuB?y&c-7#FSn^{Zx#ovZ` zKJkQDyo1N%NDCYhhSRP^e@)+^iC;X|WD3`D0HXXs&>#Q}rv zq_;xNEjbFjdh@E+iPPw@x%Mhr&Qv$F_(B2@ElUU3<0M3>zm!Vio4u`CzYf^B@%H}3 z$CaeJx%OqN8iCC-+h5-Kh9&UT!`yi4UpD!;=`c~IABI$O*t%)H>^+2aUWFU-TTbcN z*1Z0z^H5TbgGrw0gT+fhPFHDOv3wYJP%Kt_*0+||)q(o|gt9g*EI057`Hbf$F>h3( zuhCWXzk|t|2#Sq?Q1sO=PT1&ftCb*Z=0+HdG8i&_xPv7Hq7gnZMJVVndVr}#iNta9 zc11`Rwz7+4)b!Zksk>dGwGh%@>dx5OcQb+j?&#CFY70^UK&hd-HrtA)^+E+hqk_L& z#yzTCYx^>pAvrsLztD8B)xG^si?AVWR(68fkSvn?AQn4`Fjb^=vym#>JhblQt1nMa z!7m#F+TR3>n-_S9BoeK=2e3II05)-$ao4)DmlnNqklm?qKjNXhLFo%c&7gm5F3=rG zM72kY9Qs$V*YoG^is{GFu~`;PBeOFOc3Xl+bNRS09}M6CdD^nB3RB4~+sS6C1D!Pk z-^0F?vTEwifA`I+8)TFm1YB>y7|U8;@*|59w=QIkPpw_X*1A`svy;_TPb8Fj4#bp_ zwLBD=YO+XI6RiDa6g8aMOox~f!_5$xZvE5=xb>#nDGu2zNhIXZGjhtVP2iv8M9 z@PEv8{VV#iiAtnFz6)EGi+o&8WMKqs;Z^;Yg7{Kl+T)U+PLD4+^{tIFhq+x$nEFP} zO3pji9*dcn=&BjHn-mBe{{-`r&3%AOxG)XI`t&O~A1!!W?2zWqiX7y|oSm$Zh*SMz z2$H*!6fN?Z7inZWBAMq}4L!{awEtu?=+D0EC1oZ87lUXweL>061F|zzM!G}SC_I{D;t>07q$_MFL(FL!rMjXuZIt2BLQy><591z&~Sp<{B<LZlL7dqiVbK1F&{@WfvCPmqS)6RUg|Hrf(R zkktM4@w^Q67aD?(`LHElbe07D%q>C2KG%N?q?Luu-jMX4^IY6=8zm~cBSSq0jb264 z+q=J}-6Cu8l`mH+#w-m1jSehGi7qVpNxGm+v=g4)hhDQU`ZZ>F(0C7uS`fkoKp~NVW`-@OeJ7Pm*rW>vQ@kPj=MS*wyOipOvvIc|^&d z!Ucrk>!*}2>u$?_GiTFe!8^yFzpom&D?aE8wxLNFqiMJTkle4yPmQ5k@y__$xY!SN z2r^-B;UDA8k&tj{?MZ`#H9|6mAB&@Dh!Vx2A95;+yRA>!!N2U;GP{lU^XLmAz-5dK z;2yT-aR9X{S8)wu?W=md)Cq9ijnVDT`9RK6l49FiFYqp}bc#VoH{Ut+{#qUZ`xOL8 z8{wMfukdp)*4ex_3PF5ve6F?~n~`TFoP(ShiTai3NCLp?BB-2hNbMT&?_9`OjppBH zh-ne&JCQ(~>aY`Sh@vjCFK7=56F!$~L6-a5+_(%*YM`9f8mEP2Uv9R7EjAb;tk2Wg z+HkC6_nCkftPxFM%1@66yRTd#PGa54yL-2@x)0#X9V~XV$;40wz~fO4LNXm zFCdFWeWc-urF8&@KuXCN-!a#suqd4|^pJI?XOXw#KFRO8Nmy-N0y}Fu9cE^vf>lD& zJz#Dpk#~&LAX~Hwg?Na=oUC+xs_xc7i)x5`wMjccos`gY>iZ^FtM~Oa{rpHMSuo4b zWY(~&^^ec&f!vcTD>?Nt#q+QBii`$HAke(VOLwaZ1)H;dp7PzqTT|8ogZ@&&DQ7-) zw1XBP-_`BN4q!8MmEM|p$;Yu%R=v}EG}(pb`TJdkVb^%FXkLh`LsYORtD94X9a)X5 zzh9SQYMU?%PNCcN6SC>%RoD>pP0FQQvtUii82i%5h)@tdS^k*Z<*4KRW%WG_>9bNY zs~NJS!K%Sc|FCe3?usQ4;|NZMoAMB`rVOP>FvTni<8=RJ()o(6mn+hOOhTyZ-UJ(J z7t}5MbE!<(aq8(d&Vov-v+kD|?MkaWELKJ7!l~CU!j|yZC}dOchjUXGTuq;0eCSY3 z#5`1PFZCoo2IYX6WJr~it<)5o;NRcytTnnADn+oQCk0IJqF%|yyysRw|MNtaEzTfB zFvu)+y33FDPsqw7YSpuypEwnxv95nJF>UOB$v%U6ms9X69Et^p)H!&Cglu)KMNf<} zaG2_*FW~M+r$lRnwUr*IUnMTF>h-0A%43h-T8w(7Xw|r}=-5*k($h}2NzPvg7_QK+ zq6{DlF%uVWcx~gU+5h+Guy?I6h{Q(AJ4eM=VE@cU$lAEc#>}fOJ9BA7@>GL7q<6S% zk3(5nTunbDb8M^la-Exaq20rR(?L~_49uVENlXHEuy}ZViD_0+pWG2yMtfG)+I2q2 zsLEK1XI`zW&EQdHh`#J6>%(|-efigEHA2P_6WhcM2QzDhtjCbY3R;}CYu)d+B4Hsv z_#?P#{m6Vus<9})VBVIm8j>RD^9fPJ-0X0_EbY3KFD@nwzqnv<7r@iP$C4*~%`va~ zpY*XivO5kaxHhx5iHDuypbE->^<$c$;uoZ64b3fncSd1%VUvYftW&9xV#h2td^!bE zg^mqfbJaa7ixbU5{co3?iF07BQTgy4=bfxUj-*ch8M<@!Re zUrdO`T`^4hc?GdRc*dRA0@&quP?4IX*zB%glJ14^o~1~xiW*qg5sthjdRWfR11 ziUpBzr}tKIf-aB3rD4X42wSJ+u&(n;lgUU|B#E!?t4c4~-)p76{+p^jY~-(0H1u>r z7dvFB0!|ZE@#bKuf0fE7W6k6jbYBnl3==*G^efOwaGGjYU!swP8z*s+4&cl8`qal< zfT#Qp88hnKyG?YvhW4%#{!SfSSoIWKlf9Wof(edD!tZ|Z zHbV3|6}1{~>df4ABz<)`T`2msNJ)RNp7HsH+psu!ajT!!AARw6C}n; z33Wd_0j>C~I3VxvLLQG~T1pQLA~g9-pO?TGt!`JqB$2#LLughM`V3I|J(s1#IzLDn zy^RlcTSZwvgsH}$5i=V(P7X(eL4Ob3k7TxF4{7?DiZSjSZOg|yp6`28is4GGRS=bz zUf1nmiq0_457Q?Y=^q+Czji1FWKcePgrg9-7WarM(jJw?;&EBH5}nqP+0(v5Iu zTaO%e<>3|%o?|>`nl@+vZ2GhTtPr#D1dJB&&7x@>TDYvSiM(H-p)ZaRS|arlUq>dm z49mr^s$d6>ja5(S4pXQh=F`of+wVL}eKCI&Ey!Skr)T}jM!dmQ#9iSpbM+)^xk`Xd zF|Vb2O}@(Srs#8&F_tfBAqeNC;nZmiO>=RVdJGu;{FFp@W`UjD-+tm+Ny=7ao=)y;jQE1~Ila2a}_pIvI7hN*P zU^BeDY8BvVCa-Op;kfA>WGr`Oeky8dvt0RALnCO1y$N}`x;3fYi9s#Z`hD%8ivf)> zumyGaKD{G;%O@x41)@~X^gt70jbEFdO0q98G-)Hgu2`p=^htg9%7LKiy1=|znoN4; zbn?DF%E#>%Y+s0h_+T?Rv|?iuwljxkD$x((2w%g9QPhfGGUvOo0$85j^m!&=bUd@{ z_UvJu;+#%my^e2o%RBq~Uldt*ymqoC#8rxqhbC!#ZBvN|VvptNetec+T0y#K9r;kq z*NS@xMH+#Ib}ZYd@ALsE#MWpWA3U^V**NW7F{x(4X2h}ltOSVgiwXRK!ou{d=1cc* z#WMYJUFuaUInhs-5igo1rv%kk&dlPQynO><|M1sT%P6|=bXA?ZO#DTQ65MSIX&GJs zw=8EM%&-4tb~Iphoa9zI>2C2vYPG7ZYFvB7-`}y`+E1{~zj`Usm!C%azh5PzW(HfY z457I6YVi3pb08F*7wVIPMy&EJ2}|nQ3j>T56Q|_hgCgq7hK=ZV>#^2(gEQgTO-OtYr6ZXeh7-(y0 zmj|>2e?lmRRIILsepdDBRAfOwmH7itp%}-P|B0oo2Shm*j2wwb?Pc;Ub~_|F1H6)@ z>MSp;o1U!n7pvb2+7PE~L4ER_oNyPKz#-eC3&~2IAD+>|#e?10*kLUs_dzRfW-*V9 z%B&%L_T$W(Ax4QGuWCcJx@fX#Kjnya*oUePKHC3hQO`pMVsb)4<3}gq8+cozLY=j= zn@Qr7bSSlFnR0_Hf@y~5ZA+MsC8N9mdC_r7T2ITK<>H! z{O$aURtl!BaXDPEvysx0z&f3(ieiZ_n>AJRfcBnR_16h?-xlROsO+syrd}_Disi)T zIu&7MxzcJz9Qqihf&Qml6`KSH^_rSsv@QZF=M0c5=5}aZ%RP(l*|F~u0d1|+12`ee ztiIKAR@!7l36zcoLJsy3sck8W5!s7*qZzJy`~QIT|8FftBof|J%`6L5P* zZL6~IWzWfhc5({^wQ?Ky@nS|(BScwVJOqrXEkBOx(zgzIN^tpF<$idK|KqP?{s)31 zD!zb4K6&HbykH-6FI#@`=Ebg^yj49SU_2YD8RXR~FJ-XMre$CNEOpIDri&fF`@<^? zqaVl`23RW@G#Sy2*~6%u>#wsfxiNg3l@2m`*aXMaxLW)x7J4z@foK-d*TsnI*F-ND zGUq<3m$pyfz+&KQ?L&1un0Zt%8}+b&?ck^(Wt@PPFF)lbU&fxcPxRKogju~7kZUpm z0HhjCy4s^7XBvmaECY_ulX#bwmA!asS~sS0V?44*Di#4N*}vPr5CwW`D~vhcRWhl| zdC+co<(bCxQ`|o^=)%gg=Hmm>UmscV{y=d?VuEl73oe?+IOIi5!?k=}gvdv#12=RP zOf+POBPsCyz83q`dRaz(MlD!r~?PQa|fS*11}_H zk}=h)_kyO?=^EHg8{*R77yPdKm$KS0c>mEMI7!*zvavp4$}rx->c)fl+`6;Y=U9G? zK;uq>Yy484QMt5GujjU5T2aWDsm3iXKqmly=^ebqap%P1map&SdHd4}-L)&DkKoCp z^uaHTXV-y$u(nxr=hWo~E)Z4u2AfEm4LIW~T;V0ICiyIfc%wchJL_<#uTN|yaj>N= z?@GL&8sl9XOYMLDE}b*1mGi}{uy5$IObWoS8OMv1I1#R2+?U=*Sf=BYvf9pQUSb{x z8FqgA0z++Txc1O!(@tJ_XUC%{Om)E0`h1yQ-ZcN^^6!QToM*>WCaJ74Y(aA}8d@!o z_*3i<#LG1M6nHjx&`F=Qrn|Myo%^M=R`km2f_qIX80o~I8^yP8apFu?aMPh87v{r{ z{x6#>k5=YO_T)Ji@43&o#?(x%)H<)hCaQwK!#maM2VZZ;e-OQOA$RYa;DnX89@ZJi zL&JBZVljfTt9@4-raI5F$luP+7qUBavv}B*Xd8dNJjB;c2VoBqlsmK&Iz+jO=v9>c z%tFtbW5FU`ya*_r=G`ZfxQe`uWrCT`gbV5mFJ%{!<`6kQ11GeL{(qJWa`gynh1y+) zfqzD{W2S}tizr)LX@;c+Sh9Ce{N?+VBW3>nQDxl=^b5$+6hNsOfU}7{-LzX( z^%x@RshfT)7!+)P+qhPT@^f&VTF`$PLsOl>S71SG){q+jD5btKNaEDE&=GNorYo-% z6GDVwtvrkB2<&(*4B0Joi0T~@j57oke3^s7@h`M~$9;V@-Ue6i{CgY0QPM_Fx6f;t zUolHx0iVUfKx^cWhJI)9TSsyncQZuI4wD2}t)*tKel#4$T(8tD^`~ZB2ym_z+Z}JGx#)r`L5#iJh6i)=)8pm)t-l1 zMwhJ#tb-*AEAFVNN@zA8{oVbROYB#%hTtlSpc9mA^-a1%e6xf@5W?57Ad`EaMCer=w@-6Wd6rb%iQGCe^v!3{I-lz0HFt*vkMC3|2IJ1y-t-_IM2&@<6PekE976i+hJnxPv|G*sdiT&vCh!niP03L#8AJqFqduLOTnNw^DuzS{i|FFH z^4wZ(sB`1QhTtz325t>=#Kv}TtknnGw02GlvbuAbycA(p|6gEiy2mgB;k`Vq5WN10 z)ZnAH!k(*o`SkH(mJ0X=Tdlf`r7D+CbNXb(4uw2M7L0y_RKF0LQ8y*+&z`|i1y|;=8MM5oomn?N& zwfSfv>%wiGL%FI#0q9?fB?Ze!mrETqr)CyAtsPJwVw&BM9V#zT!t4N4YeNZE+Wx2T zhLM0fT%c;N$VSrOQKR7UNdLg@xHTG=Lc(o)*gW6*Y?3H}{W7}JCQH+ez4j7z4t#$vTJX~T=kFzL?)yEvAVXMApRS^o`vg2d71wn> z*z~i8Gzv`#3mFx@z^fP?b~iOE?Ti%%x;5XlMxWP!G%>Mal6)V&k3A=CNK|qyrV`G9 z9VpAT9kixm54kJK04i0@KDqb^vDf0p%sU>Eqqwn`>PYdDMxI=y!wzH5zbr+kImu5b zPlKI~R#kP>CdkOq_tMAGdE>(OuIMO3J+!nBxhNk4$&Rp`m8A&b^BZPVyQs&2Syvt@BuJGH;x?9Ld& zt$|3krg5+VmX0eEw77?HbqZkQCgTK~9cfC)aX#Ax+Y>61ENf?4ySDG0mc>KnsTas~ z2&WeUlbzu2KA6L^7Q0abyS!R3mwR5m&t`-P7N1r!$Vjo^N|G8r-RP7vvqpJuUp;|= zZQ`e|Z50eKSxXL*EBNSor=_r@uWHO4fnyp1`o}#a)#arAAA?|!UxUw_l)Owy9(aAe z@pvgG;wbdoO)Lm;^8Ef{x!XnUg^lrt&G^)k~wyhU44CGO=ywArb0T|9i?ucy$o;kS`Wobhn7Fk%KN&E0ywq zJP?^dFiZm1fn5>UL9$2VN`q3~X`OY}oMZ^T{)kLbU>uKgE?%q4ooUpa|8F~BDe0b= zKB84pFLx2!k6m3}m&_Nw7_*BnJT$t58_XK<20Xmg)Iq0f`wT<*gf?Ve=DvxddB|zk z`#X!6K1Ss)ppL5sgm8+oXi;?YC5u{2b<-fbZ1J;pfv3NTyPkFkkJxZ`RK+Fm7FWy2 z>);HFHcBJ66Wt09PxUGN08>D$zaRk!qvx(rV5xGokG~Zghe8%&@Wmy=%H^pwuH&HU z;<2<^?2e9gzWvHv zMNoKOzTb&_MD6Q7ChuvkVl+yJ+j9o)TR@oCXExeNw;@^lNJ zPQ^`)dnU1$sW3Hg*8`fY_g3uwywuPFU0Z55*_=vPunk_tYe+Pdp4dC36PQDz<*Y}Ah z8aBp5TVg$C7u(X|Vu_n;a&`mw0GLac>#$>1oNQRp#2J|Bid#wE`s&R0WZ9P5LQ<%3 zhUU0xHL@7yqF>cENmWu4w6I!8P-ufuBkNPfY&dEWbDZLxVlHOdr8#(KB9)9gdXl6^ zL6K6>JFWv0ekKIpAwoGq$?l1@3mgI=nX+hwr$oAH?&y5Ny8ijg;`&CDb3_V|J?N7z zmn0~)|AGx>jq(4Z>I{iEUVbUHm>^oj=eZWWd-5+d*$(@Ts$v>WQX&{_+E5= zgMqep^?C+z{#PtAmu8nC_*n-rHhU;~RNgO#^%vu1JdvsjUu=+(yWP;jXJwj{1a5lO zyo}fMQHdQ-Y6P5oT8z12O=;!epdAZm#1PRL3)fGMtYRDsvGB^Wl%xv7yvz{0lJpCc z#|gSS0s_R^(Emsmx${di(APcr=hPzaosC;Z7!P8*E&5lb!vduC#U7`d{A9?Gal3wH z<`v9W>hM(eBdw*>!102_yZ_X|u62nnn*0hlraX^d8{;nrxS;IBO4HtyR zej+1@rTUfWz2#W7Pe*p9qskL6MXM`*`R5D7n{*tZ1r9 zyL_}~X(KAzD0fOa-U~+)!WAat-3@3QxTBs2jV&-^cr#-x_jX1@P^&~l*aOEXKZDC{ z;WmJLJ+nSa+Dbd72cTjnS9jJfh)~G5dhy7yS6s?joJoJxa!uc4y`5_aKMf4@e<4NJ^Zdu%Ve5M z;j&*$^?Y1N#xCy8=kOSBwcX$pq^b5z4lXzeY%CK750T+Q8g894*HuZz0o**$JvH%o4SmF(G|Pg-uRoOZaLckc#5@fnmokMUJG}7 z{J)Hby5qG4ONlJDRz|UrP~2K#xQpRk);=$;2#TA0A59w0w9Uy=%++vcP(=I-Go8ZU zzj9U*;MNxV+Ab@>t52*TraKB3(d%X<8$L8oZx4+vpBUY4JvHt<+iEM@@3f4T{czcu zV5z#G>*juN0AFlkgZk7*qMNP`cwMJ)o_$T0WwLva*$>(;2pqrlMd<|3!FWWtI)axa zl24?xG+EO!@Xl4 zCsxOSy6?7gbvqPDQ3K4dSS6*ReIYN+n;cDlcsa@B66CKvS7^0&9${&;5A?)nSkZV8 zUu!?+e<6!Nf3uv;^pMr4keM>i|K_Nj!ZWSiT?MeAm^C(>M-fJ}k~m~Zi@$PTUH1_vOyL;{~I zSy3?BNyk~@PWErzxVRctnl2TIK%azXhZZ@o6U0KqFG5n}lA}K@(n2qtbg^MMd^v>W z8m)GMeiY&2B}JVGDZa#tMz&$*j2{cu+W!1KB$fI2CQ7Fd4pQ;jfSVoU^ShO>iJ&0loj1>jr)Q^-JTuC?W^Jw913<=#aYf=k(2`H z@YQ~fd1iqssrp;&u_=e-8atO!*DYYkS@LHnGtT;3&0)F>wM&k6^LGdDyLonK z!o5alw`F*_6ee+4Trg^yuCV@DV|>+KTV!jFHfYDO4>I`^hRbWd6^#5*5Uu_E+d;uh zM>C-~F@+jw|L?+;<%C}-GpzMh^p746jUs7>3a{L`SXAe97A=t)yWs8z{^qJI!&xIeqmws9Sida5L757$&St^3Z|5~k#c2LbiVH};2V>Pz;0>=LK z$W6+1MO#y5w%bYkTEQN_^he97W@+E|97U^;`7mA6=2cc#wJ5eavo?mz4*~JJM->2Ieu{3>MbMmz~>3#ILK9(r@Q?*7BT(&cp}1gHwyk;C2^_Aoa?Pj5d3j z;DU&7Jy20?vq~)J5X}0B9IXIBhsFi17OiMY+>FJQ<`;!FBV(AJqYeJrQ9gE8AICR> z&>H$8+-i5 zQ4F0I0ET3e5xj{$7zeEWs_oG@Wz)wW{MB_B)`~=I_hEF>MqhvJ_)s98`Z0X91Qr$_ zelnLDx^Ud4uVH=bFPU@7^(@2`e=wG?+L8ROdA+d)W1HR1$yexveJ>;?*y&%rl?|5p z6%Ed7S#Qncbw{ywY&#|h2sthn{|=)i{x$BOhjDVDP$#33*}_h^H5ASsYaFg@^n zC6MGDcd~ljH~f}I9%T2Bw^RXD*$J&07~xI*8NVRWkXKc)cFRu+J&*CV2}2a&922(d zr06=dcbu-{lS_onvlU;vgHZ7$)UQ(zlalt`X>ii>=Wjc+T9>qj7zypUpw()f^Y+S} z|C8XLXv?=TA>tn~p*q|IDDe0fO|CahLoVgj#UVp&h6vGL>xUDc*ffjNNdy|Y#-CL{ zPOX^mPoEh*>Uez5?5fpXI&huEjn}NOx_bz%BJ1x2_-)?aBFQQOuISKlYhP6Z^{3Q3 z;gcfMCgu6@t=LVRfoaSBC3A`iwa<9~os*#YFLs1zwiwlvv#UqlMiTh+CFtVC@h#qt z{eU+;K925#9!ZQmxHR^J&UVY=7k1mS?!w!gwG7?4m}<6ac{*k(y)1n3)z2)02O)FV zo%^DMTC`6;`gH7&&UHFRa+QhyOiG)@7}AMN+m<#jxHu7mVYIX)(A9&KQ{qXrxsA!qbOmod?5o%IiuZY;~HS;OV79MLog|WTSHW?XC;OQaN^tw_`Jdg4NMd&A_y+^jPwf! zcL5QnB5>;6mtZlAQBB_nnul=<%^E=OJcd!_2O}p-Nqbdh5Hq_*v8c`0$FdxG&0)0+ z^cr++w4wW_~j$1U_W#N9t3@vT$8q*Q$t=-+p>HI8oNg#fw&riTT1A*v|60# zyrObGHV!(><=?7A%>+I+av3{m1>Slh;VI(ppjrw2qyvw+o2S4lo)_E_i$nO9U@p5Z zebjNsByEAYjt;pMClAmXg&n$dHZfH>CiVq1P2k87k&D(u z{@lMLa;)xjhVjm;xnu!&KyIS)Q_*~}r5{o0vq)WxB$j-cip`*(yb=vp+`H~%rz`|F zAFQ_xLiQ)UnX+rZ70uBJ@LjzpARyEm;W3Je^i(k0%T2D8)j*?GR3zm$7+l6qeM4hT zT~wBpo3$rV$qT;y=o*%@2FYY!_+RTTmJbE^Vy+d_)H$%-a!qq72J%np24h|SbMrJg z!f{|M<=uGg0VMlnDrFh6FZP!b`Mf@Q5uprGES*J4K=wLzzIWMXD2 zIL5!78zz{x?%}b|AP6hg65#VB?Nb4|7(Hy{REw)jOgS$}H8Fiv80%RPJmnSY6po4D}BSfG-a zkMB{p*$w{3_$dGx$>2fG20txnGR>ul+}~>$VrM&2ODbO*t<*)tjYT>j^Ov<(CF=P1 zgpN|6$q493;pgqPk)1zOvfU6qml*qbv`^&^D_3VV5PvmqW7a=AAoChRJI*L%wr^$y7o9PBbT)Lov{_7J53Av;tm>#I{9B0ge3in{eWGw z%XA2ST3bryZmCjZ#+c^?+HZ01YKy*D`K003V+7j9bh@`=Ks`u_G%)}-lmnvj%!EF7+(`hpF zrgqrK87UtOU}gBaOG)3!bI|JP8d_;9H0c)HwB;er&)mMr62k{dFKgX9fJYg z3(N=Hbrvg}O>ajcWTf*ZJFtzZB&eFh#_jY{G!w|OUvf=+^1VhVRmp9k= z^lzNymy*O5Z@b;_XGg+Dp0q!rb8PRlBNxq!YHTm>`k{j_Q}Fh1D>}V{Al3PZ$U+T* zP6-l_07f+C#onyCIqqY@+I1zPl3bd6rK8Che6e@4wSF! zXb&UU)Z!4iUqQ-6>{Atz*(8?lOWq)vmbAfI)%9=O98c~XUicz@R?A5c?vtz=;^gCL zD;0}L@X_SJA6>O7?-*I3#%C?#_>i#Tgp$9*1xJ+%pQiox)v^BjrTm9w3a&Z-CxgCl z9P~rlAfq7Y+pPPr1Tczz22Xbup>#D`DnfGkuXRk0Z(W$?_vFwvLY4 zb_~9`npw>mvDbE- z_)jcytkt4HZ^KZ`@7OF~Vzwp06Vv)Ede{!6*fV%lwVd11hS9M!hPqY#dEEV)KEaW^ zw8ug0VICU%i9u9lzEk9O%Z$=nQZX%DQV3t5o+Z+(VMHd!^`&dPGfl2IJ(jA`dm;_0+sEKvur*aC|J#c4g~G?w=9uxUSgV+ZB`FOZ~ISiivANiIr4+_L=9B;Puzz%9o$#Jkxr{@w7)ID7BQu zDF+orORd}vO12FxSE2zUmoyM#hePVavwD$W`$6gGckVl=@Q3TtwU19FZl7J z$pIs!k60pq8Y>UQ{gp@KYhG zkS|qmO5vd=j5>7ww8nP!c!cwe;^ovIjtX{I@~ZV}bt>^gFvpQ*FHr!2eX__`LF6@2 zo7S^(+Not|C;BwzaUC{&U*|1?nf}!U#{m1(m?B{dA%^1q61f|}m5dSz%s9#qf`$rN z86F1HJ?VpT;IDoHuZV>Lcp$8e!;hLN2WIN;t+GsYyz}~I;y7ZYg@feC4&by&7NqY< z>WCNMPgrALa9bS}d|UYy_%Mici%vlxH$(Mb|Isz zNw6l{J9j04(d5rx5$Gpq;N2Z3WFSCd>n z78yBO#ejkuMD3jr`b2jNBnd z8q;I}9|qRvE%5Qy>Ir`CcKf_}Ky98rmTVCXEAJ18(YgOmpXu$6`$6?z`nvtQrAe&i z%U2Hd|NjS+SLGjh>_^;h9F8eQ8*@~BUo8$GJG!ZY2{i~lAi9L@$fA3N2a%oMB zIMgeCJ|_p)`hqCncQmSXMlKQq+xnlCm93%BF*r}EKcBL1M zmitWg72k%*rWrL%rWnVHUDJP~N1ed~fdQ#f7RZfDjtwKPq*~;zpA`|T;nh>yssT_l z?Q3xp55R|0eYNBQY@ugPJv>v zUrHV+u$TYgVQ|^4LF?Tbamzq2J$=PMrAv0fMt3UKp5s0fZN>1;Hq8Uc#BzXgbOvg41deI@1W+s8&^r5$ z-Hf&2sSa%Mcr?LIPX_cWItr*$J%l_v@4(O4d+_-zt|8(f&R3ks#Rf`2D=GV+p`#|H zci}?mTP*&)csG|GeKfT7;x}&Mx03oUJg7G>%qMVVu1?K^kYj3Av)z~SSvEp&r=KtV zVmtcRUPm?8MGlE{iNsn+-zTGHtvNBR<8;^reGc`x?IToTAkDF|8?az5-%a>!+ zZpr!uf*s{mqwof&)g?TCMEWS)A`zo4ZJl_CA2RnSk30NY&UD$?Zw~YTE~Sch=a?vySrUJh>CiL;(lOFiwHoylE{0>dMZ z%53_Zc@UqcP1sRrsR>Y*qfSTNb~cEJwb}I@p*ScMIH{|mXbUNhvY{Cd{P|6LQ2USQ z9LMj2yS7$!Qr~*SPn|E?fP+w1aM4kEV4|TG(uTP8;s}kLaH>zNSN1!cbndKPGG!Lq zUv}Xhme9AT+#(I(wX`rd-pUx7=Hk1yJSiEl*3&Yzits8hai~RFFI-0Y58sLib`Ph-LjYd zRV;db;r$br=XwG<|U?6AD`tDop=r^EgvrzXn#aF8B>YJ#9ln>X!wv`ck6fM zWR$GC{S5tW?1H_USFh|j`T3;;yW3i>(y(%Z8jsr%$5-Ma_te&Liaxwhbpk-L&inpp zCjfW-(yB!Q1l#<}!v00ll&pac{CXVXrvs_Q0RQpAX8@|`hmY4&wR!)1X>-Dob>E3} zpGGhed#;O6x*3NNqU~~<7uM|X!u=EJDYfr{%h9jTk5*D^nv>|QzrR3usJ8QsthRwv z?*<(-lGteHePuwh$Wsx~!8zyuIOo5-vqaEQ{X0iCI<=7k55cvfBUm5oO_e{Mj2m{4 zL_YmRi+PfI*+8z*SS!Jy5bG ze7L{cxr>%CF2bW8)=M_c){nXrTPCdVL>23;q z!Xs@sC5__+Qsoz75H$c*<1GqrMK?bYHdweBm0yAw=S%||mcK~} z48!ZTAIl%Bft!c1?$Ug0(cE9-%Iaf;&)A~-r!iN{JA7U#J~k>5%-8O*Fz((MM#LWa zCDb#Rp#Z?Ai5KLK50~M8wwyRZ+1UeKf79%gbNyjtwCcmxkL$l4$LH-_WzEp3ubnc@ zAV~MWL~JY&nNU^iLU@yGo0ar799XeEnN)##{0J zta+e&$%a|<)s9n0Ve>tGP)m|Et6J1}*Lb@|(^oQlL@%I$3H`-+tzvrFj&u zec7#d@^{SmmymtfTUC;Eos3*x66fVrkD~DfsnGbGtbr~_~ ztNrJ;@R-J*&=~;=?=|&L@4k3$O^ zHI$+FWS-u84hTWZ_kA^63cZBve(R_ZyLl~HnMxf{6;8oEM<%QxxPGx_p17_vc@4qo zKgWN;)xkwlE45+pCdzDFd$xE^AZUN^gnhMoH?j z4kZk#UaO+{u>dST`f5hvI~lr_Cis1AoWVcWpTBATJ}l|DZn>9kEkpp&hb-`J#pJ=Z z&}4j9!>{0b;^481#;78jE-y>MKa$pG{adAtK50b|{Qn`{fN*%JKz;$(rY}7;!Iy8- z17HT0)@Hyn))m2Pfsr9#@;KO*FmrJ5!{2ayJiJD@nAxGRRSwBIC$S*0S4Yq&Kky*y zmd?0lewpJQygBrZ&!v5tUF5mzM>D^=C51B5W4l=F&csKgjPEb)yq2kndtV9tkWo@M zWYDgapq$l!flh)VNR0rO1U)&l%_KWk>wm1G)hQhbmH?Evt}||aIAW)!RbDtdxGx`M z*0cZr=we;BJ_Up7zX8dF!m?w%E4+{M51L>L8V}LTUmV&~OLDU|k9s;-(cFp8WE8N| zP;lfcf|@WY=@6NaQiIx%WN|Wss|8mMdHB-N2p|0QWC7%bklq)bK5GE);+XZvEjpz? z{x}FcG+JDp`n$q>uI%E0AOUN0q{1~c+}RRUa3UC*Axa#&AJ!*AF-cpysJO&6A}@@G zXLLG%<{H69)8i14V#nTnNyXTPvehg*-`No~jI zLwv7ev;W>TO-zoQEHC}Jx-WFB73$>i;9PRFE_&?kr=np$H#$=O6Z={W?*ELn?;fsL zvd+jspZ3>ap?^8r@$F+67uLd|C219wyLfquVyp!uc35*qU8qH^5B=jFJ;&G_>H8oF zzLqYfW^m!HW!graELn4D1@es(I}h2bAF@f?^_$aN>Rvyx&b}z0BII>~EyfzA{rUMk z1Nsloy3d^5v%@_$4&k23*wF*9R_=D1L>tT%AcwwEmBYs%%f~y-wye-}-Ra zsfbPW)x)fXx_-?>lz$~z#uQ?W>uVc|FLib5{>{HS$B^UfjgNg za%O~d`vv{vod!Qm8u8Iu*r?UWewEf6#pH=9{fRnn2p)A(Yqmdh39G|7EF8V)*~2&2C;$ht+gS4vk36{9`QXaXB3E9h5-1t!{a_d3T=GcLLxSE#(5+sY#4S z#?u#NE<1C=&noAi?wZ^^a_g31h|Z`40&rnC7JJsne=fzZWR@^d2;Sv6i!nx@!3q3I zmj@5)g%-sr3Pw8qCy&Bn`7aHWY#Im&nUL5`;|s?S!~FDY*adHK^=L^yN8^v52n5t1 zrd$=+r(ekvNU=QQI^^Yu5he%;(Sw=a*-T>i$N12j_l*bimqRc-KL1qFF)sfD!Z3^Y zk~UR|$MPWhChOuDYrKK~@b!}?m@A<7THb+y&Q|fLJE;OH=b!_Ut`v>gKl(Una{ppU zcej0g;HL-JfBr-qzt8~ZjXfUlMkHX2ZX&+ghsV&`&#LURD70*!f)k!SK!C+_NdGo2 zr>ob6+VGjeRND=xbvari6HJZYUc?LbvIzJZ^G3|*m#9lfI7V?cCc1RT=+rxya&F@9 zqp?XMjKHY$FcRw{IZQrHeBN3P&3sDfim}DRV8`8+5$r&?>~*Jrnk~MW@Jmg%Y@!)= zbte(C?&#fkqrIr*|5fX3<JLMxIfq{g4p39o z;RkBZeBV!=fRqfwQ9_td_qz+M*G4>T+5@{_qM%;6Ym`Q#Fy?5BliK({rb7ajJ|N(Gy=`K zTi(x+{EvsudH(bFfF<9jIrPUoaFQEk+&{emRSPkW?9*+amv^P+4*=0ui>oB0#g6$R z(T(i@K3vnG#w~t~5oGa6iS>?Mpz51{HOj@Xcw;xC;$NRg5bXNDoSkcu=BUoCC$z(1 ze0NQy=Rc2Auf%#JF0L=){K)L;G{zuwT@vv1+~#PEOF+hIeU+0)6XoOvCXtk5+5RZNH?4s8cVEv^ijs8vZSDmt##K9X%7}PiY-|D_Jvv zGe1wqprjvZH9)K_JJ--&TFKlKqZ?H&$Y|l-xT4PXsF_#WumpWKr=5CrVovqUNHXP}C%9rVZs3oas4`CI zc~m2@fv+^4@7!m|W(bB1%Jc>$y>q6tSI=0rmW4EZGx-wl{Ud4S$9t3sc~Vwn|Gqid{lR?UOzo4rZe+wbG(>wkjY_RB)}JjE<4MKoyl zVn(9K@RO-a7~)k6ty9XN7bcLzi}qfN6K9imie@%ymQ_{M0TDhP(#`%HUnzJ8cY9Yq9@%SEH|- zvzbxpD+}SHu{qD8ace?N#MEJ{*V29^ZhiOOMoaS%2URQyyraiq4-^X&k3TK|?MwQa zFGZ6+??jV~OnvU@go~xwN8$Wh8KdeRQ~jD~j{y8DR>&AyoQ4b1B+d$UtnES7m{wQGi7l}czF5l0`ebQ6+z9ECeH%csQg zZDhUk)0KE(>f(8B;*8&MG3M}*Fj4iC$}dLq@;u)%GRI;iE;Dwn72K+_nwof1gdp^N zH9{{-&6fVAACWCG;~&(K!5EaUJ@~A0oD3`r-I}=O{qx`RCEYew&w0#>GxT#yGyhAG ze2gJ2j&Y3i)y(rNaqIi6$F`WJ7s%=EdHpR)+O7G&qEg?R7&k{YqwtBuSm(BGkGa&r z_8+Tf+(7jl$F*lO!7j5enKx?e^TiGB%5g83mu(JGXgZ)qKtHA_zr#Ofi|C~&)Va-m zYU(MD!1{s)R1NqgM4r^L5B3PtzN8%uenEh}@g!19uUV{hQ!;Qut|OP2L`KOgPb{gu zYBkWdW^w5u5|mruCF_!QSel5#N;_3MO{YOGS58cRV9TBQLkH1e?Tsv;$2JGUnewsk zWX8X*aaAu>B_v^El2^~lzV}1kF_kwLD$v)#*y;y5f8JWXih6~#dlutI{4@vUH7lH= zPyRf`3Vw)+X$I;BSw7Dn?jm)L6x`nWs=<3Z6wCZxFLt#E+&t}fwzjJ%%!x}KH0ej2 zWQf8!(E{rz%CVK$SX%v`V#G|*Ai_fE25>n@efR$X1#eB9`VhV=7oG0=E+XYa735&w zHed{*tU+@=OQ@+I1T7zG;NFxw=^xp8M8>PmU%w9KcjNbNsuc-N1<%cyL=E|fWZ40@ zg0p68BqyX0j{3BKPNSnK{!*r z^|Ifk<@`M&?WHY)U^toviV#8#31gE=CmqOLGd-ibvBH4E(urhuc;G+AQ9leCG@zsg z%?q|fhnVOSCA2lgWXvqM@z=2=NUELox2vmlsDZ|%aXfvFj9kExng=`dqT|6FjOZ^k zxvcjqCN)`)K?$nSP{V?i*hdhbToiwA6qIoqBg-5Z(?ObqZJ4vA3YGD6Ey&?ju*9U+ z#+soDpUI^^ZxBwAj}6hfk=s^JmA%UGS37N5KyoaDG4>*RQ#U&!8AD}i^qlc}3Gm~x zqB0Vp%7|IbW19LYdibJiAoIZ&<2d27$F@u*m6(>{#Jv-a$_e!fx();EydPJaaX^t+ z$Ws)?=*H z&O@Z3!QLuKGnP7)b0uz`Azgj~Px!s-%pa30u1#_zt>g9VL?EwWm=wR{_T#T8?dPT1)`owS*Wi6sEoWp7i% zVU0$HqZMV!l&}w0xY(VWo20REM2p zjtpD7wa`Yyvj;5L_z%}UkR=0EtP&ck2iRY76rnlSt_QE~i4$$Fux?Az#|2NT-X#LJ zKrcDe)dCRGsW0I_u2@XPnB@=EsU-^r!#0Guh#+tU)sgvdPB-z1I5vuMbMBqt*>FxJ zj5jDtD2HbnM_?@DQ4iKZ5EREt{+dnG5-z?8oDjKLRtPD$(D>^1eQ2&QiBe0?u_me} zibljE29xE~56>{lJ8p1jB#JoG*@fIH*dDNNkFXTj!$*IicR%*Wg0VwvR*2dP3mTa_ z4`sZkopD@fX#R9#L#+SUw55d|F3AQeFsl+aqshbAj1Q2b8~YGh_yVC**@>rQib#m* zGZ1AJbGUwoAvHQtK7yv+FnBC?X>p&XP(_5f|CSQPT z9H*ShS+URcLN<|F>#6JrqT1}EzXDmR4SRaUqpN`hTCamK8F%&Obj^PZh-J7Oyp>?K zWKPWdtmOA5yVj<$I>Os zGV6L_LWDfAiZVl4t!kM0pols)XckAbySUY=x`#z}2OO2vP*pgqg2!;|Qr|^nuczFA zHl>l4ZhU9&3rit+9U(E$)WuPSPtO3aMp$o1vcF9O*f`$9o=-1j^SR~)nh4;Jt+rp0 z_9b%7q|}H*c1;m@C^fzUH{Y`^X~u^+89uiGd(TFb5~!9hFm7k;8QemHR}fUv zcL?^&-MR-sUzY?sM)ajrujsv3C1!JvaNDw~$M9}=eEnhrly9KQDEgUOO5y-Dl6y=c z&~Qh&ejLyEs%}6Gx5Pd=S0pY+2T4f-@UXx;&^D84{}Dca-Zdz;+p~`p4@%8pD3@CyCnNTEN5=zL_3sVO7jO2D4v=%sYC|R2g2zW|nmmmRtj$`T zfz9I~&x{RLb$V`y3-tvuGbge6Ni(}2x^ziFg0a!&rAcxqn$<|;^n+yps0MJ>M!wX@ zn;q#{;KiK?S5E*xru-J+MiML}EM9*13#|XIg^ST}df<0yv+sNpO%m zT~``K9Mc`zvl7&AS1a)WQ63vyF9^3T@WZLN3Q%FnD-JV=_9&=DWwQjmaRm-eRK116 z{^t1weSJqj^l7uNnlP3sn(G zFs((OrU^r!V@7)IZLQ=*?a6I&YuUKvTEe){!S70XwJN>`6+2gi^q}(8+sYSa>dD=p zwxryoBN!u`Z2}XT`zc7TMuys)aud{aKY0c&1*SjvXZi_>x$}3V1tlD^e2BQ+xasgy zkT+o8S>L!jwQhBmAqpjPi1?pofy#vOW&2ck#)*l9jMVE>D%1u~4*XACy~W6#>zC1k z*phlzn^22=GG&-dnO;t5eCLmQKhnkM=G8dZW6(2ifM-aHgiIwtrTgl&cYma|AtZUu zKn;S^TTwiU>?NIl^$`|$n)cI*+_4a!Zo?Mq@L7bmR5730>ADnO1qdbDq~+#n71l`W zX(}e(xzLM^_FAf*ypcaY+N~MWmtR=-()3NhbnbZGQ|gG`UsD)H(#YS}#QPs||^6j?CB2Efmw5DK+hSWH|F~dh1FDt531#Pfw)OcCvXBtxG zO+t!#S;wj|1Abzv(ox?>;DLa%alLeM(m(0Ttalc;e{6xb?`xX6D)EIl++(`C6`x3{ zy6tzowov}e-;mROK^ueDOui5GW&H{QE^&tL6nH4fEPVwK(^FTNLE$SWz(ntyT;Ph; zo6k1Mbi1&pRUDPeBngo4CEjI@bJijZMF80xY{2v-d9eNa^$`HxJ}Z__Ux_>WipCTN z59u8WnWT4&dl9xH+<8+*WozZpimf&N-y`BUplg=ypa*gKcciqDVjZ`rB&s<^ z2->=5v7s^=jOF6JJrG&()LTn@NmI`jy=ajh5weeL=&BSq6=~~_az;}a6gLn1Wfbdb1HjPYn-t7aU$PYexj5wHjjnA?v&NUfO zlD+6vdW0mHGe_2s*_W5JH4KW94Rsr{>2uAXqP{pTTyi5%5uf}-KY04B4D{oueXX@~ z9w}uJwMltRcJi+`xH5V-Fdd_cWXmxrDY*?$r9=*5%9mFf4}ipQ_4XkulVvi zJrF{b&jwL}#FgLuk5rzoOltTUjMjZ7n1E)idsw~6t5vuXdxMmonQXEP(^DZ4nHWw_7repx zcoxYg2K+vnrfo6{yYnZfqIZa_pT~I~A#c;uCg{G1zQ#N{N&6pzO2;aGvAuDqnM-2y zp3uZdO)9c!VY2ft@?=CQ4)bgnDAYv-FioEm7|YZE(U_ioqUE}TP2V)DF9r%QFY?FK zX}QxMsM3k&vGWv2$uHHT+{9rRFE3#Ne(%kpQGa@Cjb$Dll3Tk11ROW0*n*m|yfn^x z3ZA+{FH3gRUICy^=Xa*SW0J#(er7cKq@74qxtt1rk zintr>zLPnWvl4`UZ9d0rt1(j$K#0$$HV*fzf^Wu6=b!%wO#d~c2k&zx61Fs#7A~$S z>$xJ5Z=hcd7}=!BrW2^;nV4!10UIy8=p())cK}2}vL(Gyz*sLH$7z?UIas(aeP8SR zb2&lEod5p!ih&<=MZZ=fZfqwU;z4gFBAzMNF7p5GY7D;EXTVPUO+Q2vG$fZuV%jqZ8*)?-X zw=|_olTMaC>!;X-ZDV1}*OYIxte=YF5>5IiPu*-2;p-c zPeTXkNwpT`iUBNZq%-7g1+pB#hrp~<)={!69+up%o4&*}&4n%igU0<~`2v|53aBvUG<2eGK?^iUx>OFCn-JG&Z!k=sMlrt_XC+Giu4Y_~wKj!e z(z1&Fh17Fnfod!i%#Z;AYG_kQ@m5QOU|4Gy87n;|eV@(I&U&Zo?V7Y%WGCDMp5nx{ z>KLDLs0b+VL#T?%SFc}qvk`86Y0E7nIgc>^`=-U`sT?3-(}?tnc%~OUQ!!`a4Obb{ zjHC?Nk(H16drinH%XEk)Zhlt$LFPr8XNZaxacp6Y@^h3|A?@2NZxw`?(JsZ^=rZ@$ zG%a-;60Vd}j%V@lw%R-d#hR??BQhlEf-}-s+tPZIaK2RakByGCmh4W;uVH-)mO{)* z&qxi=7R8ZGHAC(bv)0_;dBn?Kc-uphdNCRrL!TiQZ--M)c#rc0GMajef@fg-=h#L1 zN&^DB5YJ$jbg12U4yLhK>OL@QWdtbi^Yc7*Eg)8WMj{Z&@e=SwNd+Cy;q_8lmt7@L6F=$qN(V~lEXjSaO|!2ws; z(%N@tWqukfJW-}>=10pH6U?W^9hgJQz9;#8Bru3`Jgc;*h@O$mvFH!E2mp64#&n(j8 z#<5&N_EWy_?wYRY|G)Vl-G}v=bjx z`Wu`8#`w^t*&7Tr5O*NfL!EnOs7WEp*_M$b$y65*{7+-xJ5)jChQ|;)2HyB_1sF~8 zz2|(W07*c$zpd9++30iy zuBVF7K6lT%guQ7f&1i$X(~Orp@`g=)NtDq#1&YQzSM{D}{-jhhsLmy~vJal5x@w{8 zmva35;CKz887|^fuP)MHen8DMJ3u)0($If@UdtTu&)w_8!bNd2A*uD$W|eZPcNH-! zM%_rqQnjf`m_y^+%xv#5(YjY&5B?P^dvrM?-Vqgn!zE5geGF&nA=u!7J@?8!_h0q_ z(fD!=3rT(7ru7+QA2hl80Hz@iG#V}zs8@P?YQgjcliQ|DNoz!@m@}DiZFJsLk*H(r zc5O2-_S9>!?gQ}Y*K~!0%1}3Am|=-W>m24=YI^X_1MbsD&3I&HGO8}QjZ9;HMGEaA z-`@wxbPiD~`#d$(Pbj2e9_jygpcdh;1+gPOulK!BIkGpp)<|Hph+F~y^q#9T9<^TN zZpw*~pxVpwuAU|A&665dKE!Dnu3t_}Si$98Q_allTMW$lxjiybo#qLkM7^12D(Iec zjAlb6U@awwjyS{_{5Zoly73l5(nu*!ed!G!n>9+Y?1tCh^W{dKc+*HaIK~+2t%sb- zZ1Ej@4qForU&!O}tFt13J&U&dY!W{n>k%U)uBIW;-wl340Ah?|Om=EM=gbV$>#d@6 zH}03p&8(KN+KGc!{nGoum#V*%J!I3ZquE7+5>MA~B@!;XCUVDkW}gEM^)|h6bvt7$ z-zWyHoy=(sx$0j9FgK-`MS9?(C@e2Te28GOAMX~#{w>CjkFYaj>^)U>ech9 z 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 z͖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%0D|1Htb{%8aCE`Pq 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

-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 z

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 Date: Thu, 5 Jun 2025 12:46:40 +0100 Subject: [PATCH 084/335] fix bvt test on multi-cn env --- pkg/vectorindex/types.go | 2 +- .../cases/vector/vector_hnsw_sync.result | 25 ++++++------------- .../cases/vector/vector_hnsw_sync.sql | 24 ++++++++---------- 3 files changed, 18 insertions(+), 33 deletions(-) diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index f50e246c3cd3d..8607a8bbdbf04 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -107,7 +107,7 @@ type VectorIndexCdc[T types.RealNumbers] struct { func NewVectorIndexCdc[T types.RealNumbers]() *VectorIndexCdc[T] { return &VectorIndexCdc[T]{ - Data: make([]VectorIndexCdcEntry[T], 0, 100), + Data: make([]VectorIndexCdcEntry[T], 0, 8192), } } diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index 9a31d6ce6c57a..53d0c02eaab71 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -11,32 +11,21 @@ select sleep(30); sleep(30) 0 insert into vector_index_01 values (0, "[1,2,3]", 1); -select sleep(4); -sleep(4) +UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; +insert into vector_index_01 values (1, "[2,3,4]", 1); +DELETE FROM vector_index_01 WHERE a=1; +select sleep(10); +sleep(10) 0 select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c -0 [1, 2, 3] 1 -UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; -select sleep(4); -sleep(4) -0 +0 [4, 5, 6] 1 select * from vector_index_01 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; a b c 0 [4, 5, 6] 1 -DELETE FROM vector_index_01 WHERE a=0; -select sleep(4); -sleep(4) -0 -select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; -a b c -insert into vector_index_01 values (1, "[2,3,4]", 1); -select sleep(4); -sleep(4) -0 select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; a b c -1 [2, 3, 4] 1 +0 [4, 5, 6] 1 drop cdc task `__mo_cdc_hnsw_idx01`; drop pitr if exists `__mo_table_pitr_hnsw`; drop table vector_index_01; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index 98eede02432ec..cc59797c9f234 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -19,29 +19,25 @@ select sleep(30); insert into vector_index_01 values (0, "[1,2,3]", 1); -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); -select sleep(4); - -select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; - UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[4,5,6]}]}'); -select sleep(4); - -select * from vector_index_01 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; - +insert into vector_index_01 values (1, "[2,3,4]", 1); +-- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); -DELETE FROM vector_index_01 WHERE a=0; +DELETE FROM vector_index_01 WHERE a=1; -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); -select sleep(4); -select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +select sleep(10); -insert into vector_index_01 values (1, "[2,3,4]", 1); --- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); +-- test with multi-cn is tricky. since model is cached in memory, model may not be updated after CDC sync'd. The only way to test is to all INSERT/DELETE/UPDATE before SELECT. +-- already update to [4,5,6], result is [4,5,6] +select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; -select sleep(4); +-- should return a=0 +select * from vector_index_01 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; +-- a=1 deleted. result is [4,5,6] select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; drop cdc task `__mo_cdc_hnsw_idx01`; From 8f5f9762aeed426503ad2291a3f4fb09c14e4b0b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 5 Jun 2025 14:40:37 +0100 Subject: [PATCH 085/335] add more tests --- .../cases/vector/vector_hnsw_sync.result | 34 +++++++++++++++ .../cases/vector/vector_hnsw_sync.sql | 39 ++++++++++++++++++ .../vector/sift128_base_10k_2.csv.gz | Bin 0 -> 1438433 bytes 3 files changed, 73 insertions(+) create mode 100644 test/distributed/resources/vector/sift128_base_10k_2.csv.gz diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index 53d0c02eaab71..b4239c8f1fdc8 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -53,4 +53,38 @@ a b drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; drop table t2; +create table t3(a bigint primary key, b vecf32(128)); +load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; +select count(*) from t3; +count(*) +10000 +create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; +create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; +create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; +select sleep(30); +sleep(30) +0 +load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; +select count(*) from t3; +count(*) +20000 +select sleep(15); +sleep(15) +0 +select * from t3 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; +a b +9999 [14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7] +select * from t3 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1]") ASC LIMIT 1; +a b +0 [0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1] +select * from t3 order by L2_DISTANCE(b, "[59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, 4, 57, 34, 31, 115, 4, 0, 0, 12, 30, 33, 43, 85, 21, 0, 0, 14, 25, 9, 10, 60, 99, 11, 0, 0, 0, 0, 10, 55, 68, 1, 0, 3, 115, 65, 42, 115, 32, 3, 0, 4, 13, 21, 104, 115, 81, 15, 15, 23, 9, 2, 21, 75, 43, 20, 1, 0, 10, 2, 2, 20, 52, 35, 32, 61, 79, 8, 7, 41, 50, 106, 96, 20, 8, 2, 11, 39, 115, 48, 53, 11, 3, 0, 2, 43, 35, 11, 0, 1, 13, 7, 0, 1, 115, 58, 54, 29, 1, 2, 0, 3, 32, 115, 99, 34, 1, 0, 0, 0, 35, 15, 52, 44, 9, 0, 0, 18]") ASC LIMIT 1; +a b +10000 [59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, 4, 57, 34, 31, 115, 4, 0, 0, 12, 30, 33, 43, 85, 21, 0, 0, 14, 25, 9, 10, 60, 99, 11, 0, 0, 0, 0, 10, 55, 68, 1, 0, 3, 115, 65, 42, 115, 32, 3, 0, 4, 13, 21, 104, 115, 81, 15, 15, 23, 9, 2, 21, 75, 43, 20, 1, 0, 10, 2, 2, 20, 52, 35, 32, 61, 79, 8, 7, 41, 50, 106, 96, 20, 8, 2, 11, 39, 115, 48, 53, 11, 3, 0, 2, 43, 35, 11, 0, 1, 13, 7, 0, 1, 115, 58, 54, 29, 1, 2, 0, 3, 32, 115, 99, 34, 1, 0, 0, 0, 35, 15, 52, 44, 9, 0, 0, 18] +select * from t3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25]") ASC LIMIT 1; +a b +19999 [0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25] +drop cdc task `__mo_cdc_hnsw_cdc_t3_idx3`; +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; +drop table t3; drop database hnsw_cdc; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index cc59797c9f234..04efebe72d1e9 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -44,6 +44,7 @@ drop cdc task `__mo_cdc_hnsw_idx01`; drop pitr if exists `__mo_table_pitr_hnsw`; drop table vector_index_01; +-- t2 create table t2(a bigint primary key, b vecf32(128)); create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; @@ -71,4 +72,42 @@ drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; drop table t2; +-- end t2 + +-- t3 +create table t3(a bigint primary key, b vecf32(128)); + +load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; + +select count(*) from t3; + +create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; + +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; +create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; +create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; + +select sleep(30); + +load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; + +select count(*) from t3; + +select sleep(15); + +select * from t3 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; + +select * from t3 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1]") ASC LIMIT 1; + + +select * from t3 order by L2_DISTANCE(b, "[59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, 4, 57, 34, 31, 115, 4, 0, 0, 12, 30, 33, 43, 85, 21, 0, 0, 14, 25, 9, 10, 60, 99, 11, 0, 0, 0, 0, 10, 55, 68, 1, 0, 3, 115, 65, 42, 115, 32, 3, 0, 4, 13, 21, 104, 115, 81, 15, 15, 23, 9, 2, 21, 75, 43, 20, 1, 0, 10, 2, 2, 20, 52, 35, 32, 61, 79, 8, 7, 41, 50, 106, 96, 20, 8, 2, 11, 39, 115, 48, 53, 11, 3, 0, 2, 43, 35, 11, 0, 1, 13, 7, 0, 1, 115, 58, 54, 29, 1, 2, 0, 3, 32, 115, 99, 34, 1, 0, 0, 0, 35, 15, 52, 44, 9, 0, 0, 18]") ASC LIMIT 1; + +select * from t3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25]") ASC LIMIT 1; + +drop cdc task `__mo_cdc_hnsw_cdc_t3_idx3`; +drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; +drop table t3; + +-- end t3 + drop database hnsw_cdc; diff --git a/test/distributed/resources/vector/sift128_base_10k_2.csv.gz b/test/distributed/resources/vector/sift128_base_10k_2.csv.gz new file mode 100644 index 0000000000000000000000000000000000000000..095a5965daae450423c2c42088c79c594d2058a3 GIT binary patch literal 1438433 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 z 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

SQ(kCLMRBdfAWK>!aYF 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
oSv5&s7-zha25#Zm@|q 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%0ABl>Wn+nw%l6^vIdl9aL0fE9UQ*(_Be&8{ z%tgEm3b@?PTsqPU`n2lzMRT-Yn~o@Aav}nXPnwwK?yQp%Ub?($h&g@G(Oe#diIGEy z`F@T(?Q4$NRbpSs+^V6ed*OGYYoM^&**qPaDEi6`qZ5HGUYyk0pZAuOuW6>V{42+` z51PHKK2G_ohQB#g*}%Bg31H?%(ZWZPXWfPcA=MKO_y*SbkOuwqc?E7>XSdU*=EU$- z5?xkZlcS-J!xz-soeh6%MU&9V8a8?HG^?*ZO%$t+R@;>HluJau8lSyB1zt*>IHD{U^}ne2OB6_u+M6kDYX%B&1p9}1cs|$%_V;H zTtgguB_=h;9_~p=Wje<|$15NLW?mYhWv{7lf3w_uV;mgx4rTs|=ROXj&Py{@8u;Q9 z!Jq0xKXVe;-Tzq`plH}h&gl%6#%zuUWA&C(rSAVSJZvy#~Q~Y;#<0C1n&H7+7rr9qMP3v9F`xgXqA$eCm z`0L+{$&49dk2%yASO06AZ*gM=&xznA}4jO$bINiZ%F?L0jUT~}8? z?#X^cHWPlIV4v7kfMt$vp)x;d3R&hnQVYsQb+*?k@sOEQyb@c=NPFgBoc5iRhr(Q% zWYVSaKHkt&`AoMv%y}jqCKdrrZxzgCnR#&ZrDtC~BMte7Ra2e%GISF0iZ~>sgRFf# z7K$}%uKZPj;I?~(S-^B#%33d$Yx=kiWK`RVs7Y?{f;GILtfy?->}#bD339e#Lzt`U z@x5vI5-*gNC2WJ0hFn*_S9+B+`YIrXRGxUd7igOy^ffe$xv9 zU^`X2Iql0;ASFJ~^)>@ElliB`_T4h7<UR@>B!{hk+bnH4k( zg0nSw&v7OSdV3c=QyhS)X=e3Ezj_c>tjGX~{>s9q6&bu8_R`hzXO7zk_J6S>Wj*#Y zI$*g?*xYIwmx~8m?JU12Bzx8Hoid3A^Qd|K5nfUEYg*S3qc5SVZpzCUSkzkCz+B-Y z<*%_JY~^86KS5>K6d?(f`nLcbDjN{2*bBw%<4h7X;H8%mJ2j4erDGWP%wHhlG$6b{ z{qsOjHYQ&%tlZgIe*R|2J?hjoKOP-;<)cf@M1H*6?ZHINde}&Vnon$hXT+$*y8-NiKo4LQDs^-g z;hZTATc?yH&*Kw78O&U-BWI5C+J>X!d_@V~{Mxzx?b6hcY~ckNwH%+v#29 zbwfZy`IQF*o(Rdr|6(ek%vnlx^|=c9=4Gynb&~lH{8i7mOkFy4HbN+8*u|<@y(IMt zmktSl!%j4Sq|%noM#ad_*#)518%?~b_$%)j*BK2FFN=J;Cwj=#)SkMSSFN5r4bwlk z4@U;)TWYNUAY(Q$917K!`@wQ$V z(BU5h4oa)(s1YYs>h2{OPF#QKL6{>0l?I_ZKN6>ndCaxMWN?}7##@wBr4T~||I2&V zvP;@q*ki@|IQstg&&_s^uCQBmF6Uz7bB+PqNA?9O-MI^O7V`&(;sU`p)0IY-@z7pv zS63pC$kyr1G&Ua~Xq=jOVyoAx5H;nnWr`_{P<}5PVY_6NW?BC56OmM(fjrsuTlGaW ztSWu~B^mz#D&=@!auR?(6z#*qT?P)_e$p^C08NeQV~=j%5V08}Ep;?x^l&^PB!)E~gzBPKG*~0~!ANClMi|1yeM`r-j9x}bW2X1Q>@f1I z2v4p0{TKi0OIge*Gye$#5a{)iT(E+g558cl&GmJlHS3VWO29`{hYF>!Jnw3pW2%#W zNunEL~_7ORA*Y=_1ZxKO#b;TLls*u4#l7@Sc{)!rRwim zMt$QobNX-AYA9F&VQ*g5&Z(^vC48s|48vV2S*jefws6QzwN9lEU0u3%Cu;y9Gml2) zYh`G!x>zpAqyF}PRE<{2;*bF}NSa)Yc1e-YITaL5&6INb|k2K?BMYD=v0+Ib~QV-3$`Yjv-QLs7)FWDn<5slB5dZ z-*`YDHyGr_P=L&B+~SC5%z{$=J43zSITxdKvszlEh2AW9;T+#391{dWifPk+pFO>g??x_J)VSAFPkSESad zQ2&;k@1PLboV%WiGq`QgfT(LxKUTW?~2=%gmJqMWH;3IbB z&o~Fi*t}XPb0pIB4U8rcHTSFj+)b^PdGjU?iiww$>tNjq+*o6c!{(OR;UHtvqWJL6 zuo8oP`P;cVMhZO4FIG(iJaGNW1fxSS(eOS8et28TGMv0B@zD>W6i`MbF!b{n5BZ!1X4H4myB0|%d=AGVewNKZ}rco5zx z3HQ^?7JDG3;V$*M^~*FR(i7>Qic*;0E5-CGtx``L_Z%kQ6~h265ADP+6xM3-Wz`FO zwkzNP&DO&TS34X`s>B?ZPnSYJY2KBFLk_s*AtFno{+;Rqa#kOA3d+gHm@Y;skXqj^ z*ZfoZFVsPaK0nWeO_l3i`$Nv>!E4gun48FfP9bj6hv2n_pj;&CN}uU#tCmAr#IIBCto&WC;fZKx`)iU~V;F1+5bgb0h=B?PJ- z8lUVUO#l#ZY#QC(lm+v()q!i`dY%;gn&GA(ia>^YPmTLcu(8)(KButwRO+*-0e5qsan{KZ8r*KvL(xo)8O`C#r@Yi}FwFFO zJ33O7(co;El+~0a1pQ|DhZgQMm{&IoC}9NdSC`20)_UJKF8`G9 z98l)VMt;%>fht*%{`4bxpxs?uWeJ*(uJGcB>KMsHnT8$sRsm#c)#J5$V1$jeGdOB= z61w}+diHmbe6@Zvk09zUsR5Vzr0Zb!$ysg(cM^q-9G z@bee)+N3MqZk@+l0>^z%u@8+U%G~;9IRdwoBzJYjF|>r!1Y0CN3z;9prth{NEO%8O z^0vhxp&O72fjp?-0|)5cX2@VCHs6%teUEbjiGP%ORsRyon?PIfEe@Wc;g-UfZVHMwCz2@U9 z5Fy;f1CGjkU!fA-Ss61Pq~BvV&?k7^vML~%Z9)VYccSos%>IT_h>f_%Wi*3(4IdgA z8ID%{%4#{d1YB9@gI#af6+C2#f*n@fLlySG!@#L0aMZ&vQ1u0mYjWj# zTT`f)J2t?tj4r*At74pcsdjl3eD*28M+&h+=Vh0^0CHG**z0Fxh*YxZ*(BdG-J>2> z*xHuCj?Mdg^~Z;vez}Cs<%g&vI6#w+P9eh#SS9x&kcHNl?9Mi0#);6vIOWR}6yoR|?L0ZpPXRycn8Saq+Itv-uwZ z;kOt}5}nKaGB$JQ*s8)8I-dF2tO=d_atm$PDWk`BQ@eegYy{GYITX{8#H0Ht-BieM ziHYj!YkfDEd3Rp$3C$w>Vo;6MCN-?6YI6|u_CJ5aIE_jc`+fXl=#ah0HdE-}%S0k5 zi$0IWPJ|DHd$}&Zqpx7vr>9n4pH^F9>>Pv-Nno>i=CydTcjWt%e6hQpH&tfrMza%~ z#7wG*RW0}e93hbUr#M*D@Bo=LfcHr*llf9~J7)N)-4aA3k?@r)Lw?qAa8TNKkL5d-A$D>iB%HzQ7W>*Qfg8 zrU*>p$ZJG&`;A@u1iAXkuwIjyEXu6OB!TOO>X~h>A3BtwIobd+)wkv0nb=e2fv41o z#6_y`PfV#-XC4A-YpJeOK{4k(XVSHcxu-GR7Y_|E1Plfr#;q#VrS%0!F`WlG@imcs zSw_9zVJ>rd!H+wYCj?0r!>dmwes?`f>JdF6oa~MYgBvX!Q@%V$m1YlRcD_LJ#B0aA5>&nwc^X2dhJ^8`>YcNRr0dpoMGdt+Md&`pBElz9)zjn z5V9Xjhc&G_MEc{Nl>I3$Pm!0nK<9ab{$8uxl!ky+cNTGoXb8(5R`Za{c%;P{!XVmB zboEr_U_kKQPLrdO8Y$!J%qj?~1@*U0WkwGgLVR_qvv6`Cg~rtvMkClsewYiw4&p-9 z7v#^uQ>BpdSZSmB?N)z#%M4Scp1%21&&A(zr+PPsSV%Z|;LfOi!__hhxcX9- zZD7wAJ6LRjh9t#Cx(;cGjY;WpP3((VZe<&d;989ri67{bSElYNUBm!|Z3vA!Q3-UW z+&OLNAZi|SCX%0Brl@@|g($?+$rx>K#X{hx`XSGZ;$*%n$~mm>?!b6pjGjse?IAoO zcw{7k5rCQ-@4A()H-3DW$nZSFkZZ}4sdqqM=~zr}N+LGMc7G(V9v#4VxVf@=%eA1amG>XmyVioIF53WbLn4>Z+#gOaU!3*=g$pAWm7WweY_1Cf6P{wKA5gu^%@^c4u)*ZIjmlgCy zCip3RyZ;@&;6|)IF1dDI(6ltj+nHmWT(a8zpz3N4HoJ74k6W7^Ko~!Lxymb`TwJ;Y zHTQ1sHYA%zjPr9QeQ9zar;-ya4nvB}N+togk1|nF2m8Nc)GxjAHK?WV2=C*C4~?63 z!LorJ01?j+%c1_W$XPRf^?88b`kBd}0E^&Fc3;XmJ%}+HS0LcRN{J-eZq9TT-#L)P559J~&h7MOiNvh^RFsT&cmAJ2e5#>#+yXI#B;K zF$2#@Dw4#;(rp;*ler=R@AyxlfESYLa2HZJHKZDNYBm)N?~i(EX3m}S%bGn(?S11- zvW9Tzn~Mal+zATRa0#>5UnSpCEZVIf_^5D8k&%C)hM-87C}kL8|AHfB zx37U^{al)LX6zG`L`ee1ab{{IG}}Ek?X~NbTS|x2)QA@*u`y&TZ5}-Qs_8Y!A+&hB zb7zQ>y|Q`o&!lHntS|sTiEn=`ugepR~y+HRyZv((wpDjryx6~l|jHtZOsv1(c2kF*#yHVn^R+oyN z^7UjxV$vUf?Uja_qxW^1;O=A(S2_2pkYNX*ua75dIPtmo@<$P?j_uG39_X2gK|<_K zTodJ?HC1!sV@o6}vXz14fpUlhF>3$_Km8yay?;d?2o_3dDc7`e!(sJ6bLR>Kw~z*;jr|+ ztYRrdhvW=@;w|$OJ2O6ot6UM$fCE7%IlnM~_;!?$9x=^6$aP1hhVSLA;pAbJfw0{Y zM=ehUI8^Ls&$a8tUdXk9K8O9tj_ezZj0;F`geQWRJTB&~oKQ;Stx>Oql;uqBFTwh<2F^a_F z#e!z$(_E2)f5@_~tT??;jAE5Mk2+nANepo$mPmJ312tOPl{tMYz(FGbij*Y_nsOg) zT?;tJ`sXi7@ge}c4a3pG7v*9ftA6t!o3r{D2oO(8qw-{0K|x`RBLo01685>&>L|#h zI9N>7?yLsilZX0B8LH)^UMzMw{1}F?@%xnw22CQ%?bB$<4i?o<9~fIlVs=%VlTP4L znMrT7_PPf<7-A~!cgMDeEzDvP`umbolVs^t_|+H`8p4hx90!M}q>{B%GDV0`*==Yi zBT5XxSb3G4g=`g1OFiIOO9$sa{S?i4xk5~-a&&$F(JzzZG2wUvF&3{n2t-3cq2%ut zqQJ#K`P`a9;0nr+d7Qf9+u_k|bETBTyHIy1NqeKg%N%@FJl%)1A__#`Fw-Ghz&308 zdR5W^ZJx`lvEs;|_01`uySykr6e6Y|fmp+_#oS&~E95EY+lev} zD|WF{%#lQ>yumlIiIdo+S$ikBqH)!!HsBMPHPHdIibE*3nn^?O&IAs7hztE ze8y8Sl0&gGc+B-A)f|^B@?L!Bi96nuxkj+R>(_A9%*x?@p#aBH67B~0+cZCnbLG3& z3=D^<@5h{~l5pC)Ey_`;dwVBD~2ak>+IVl zU~&52=QF&~pb&SAegtb}PBR6%hFzt7hYcJ+7tfe)Yi%LYTU@#3qP8 zC(uUM$66igUmc4z>>9~wGFj5xcuClPlSpU=uj%uz2@N6P{_J_`Op&zVCVRNTHYq4*hruTXCE_6&N)){%o;~%G>RrTTXRDt$ecw-WHu3k)`=R5o?*b}K~y#5!}m1XP2P z-;kUmQoS^FE>Q)&mhl28gfa^E7`hl>8E=E193%xPopTTa|H@^`J$HStk5sIVE>An% z`J8n)dg%6N2b^6mGveZ~#eU|l#QoK;@H^pFe(L4?$W_?4% zf3MQ0e{0-*LFXXc7%}i9&U?N9Z;lRq`n+7?r>EQJJ;OV8IGpw7>@AIzwGeYYObBR@ zG4!GSdmRV?3JnPp;EU9Hjgx(`%p>KBk?j)6=4sW4G}+HQRtO+%&=cu12>LfYFyB?1 zx_9}hy}X$Ch>|Jni5(WSaTP4|n!e3=7Nb51^K;ZPlhgfWD$_6VdX*>X2FIwAa~{rP zu+ae>rY~^O$a$-Ji_Szu?AOgMqj~IBm^u{VMM|{s^Qri@<|pPTccm$>Rb2%umPcRb z2A-g-SN;?q?|k*B0M*v+rbV#%@;=vMVxG^r^<04ES3n=naA5e>UGm(IXO2-W0)89C zX!7m7#*2ssfx8jCW+_zaTyy)Wk8hLE@EiI&@h`CQYhjLH4H`b%Yp5lnlkXU^l@#4_b(BiyzKh2kC=TAiF|W@29>-8$ci@&zUURuZz7c?iH|6g8P&I$;tMj`F@Z88?V-5^R zy#k4#7ZLTtP%{sxCfmTU*!Z5@WPL%d zrGotZ4iYf^Si&ZpBv$?0|NI4ydbtK^DJ89QZr4=aN<6J5gOkW@MCSW`%*R$ARfwrC z0yRe$SEg7ZhDwHCi}(DT9GS@+LSoF?!vp1Vo-d_OV%_~VV_ApRL3Y|F;>?fFHPkvd9m=CdbFO)p@x;=658wFkHg&MNDm9k`=De_hHEfR zc{LVxRkMfa(1}QY5KTgmun`aql0)8aB+J6j#O$wh_fdvAddTozw+FS(!NgR=gS+;s zJrxW>ER{&}l^4{qPFmW)zMJ%0IvB=R)*6)?rfSrFAhg3MFdMzTODxst)GZR~u@AF9 zNl1Lw3Cy2hM#m|R1eD690`dP)#qhhgCbN2@NR{pi4kc=M-OP|1vn>B0t+nR#!^m)u z?X^3#NiI2UnG8S`_CNhRxadB`&H6?_&jk*P=OlnjzYTM{q{-%h-gkS2T;eN`rn%-% zbGNCv8+?qt3E{#J~* zbJn4@P{I6m=HJ48jDci#54)sR?;F^M#fr(xu+bYxGrllO^K3I?A*F#!eA!0=I%x&LNWbXug>h558?+PZ^&fgkEqby_ z{0i{ujHbq%(Mvm`L!OasdaIm`Z{VIm+$nwNY0E4lsUGQJD0_gC-32ltad!_^J+t+YD)W%EOe5fSd9JQ@QL zH8p6MhS}Re>*hcCNx8#_GS`3+k`Y`U^~$}mJ}(Ye0qQfLA-86 zC*b-0gQmfr)FR7Zt>Bve?XNdf!zY)W*AG=sn&|NO^fimt#0|^Ppk({s+-tXXO}f^8 zJs_JC>dPx9QSJyImK0R}J~SoJMC}*9ey0xCiA0I$8XLeWZ6XrFUda9C+OIKfTzQDi;(zVXwc+h`w;l?!Ka5jtsVG<4% z?JGXqM1aVH4<{dvH;YCO;vEFyrTeM8pbZ=LDp#bZ?r)}q@6S?D{Gc?|5bI80fRi}d9yr`c91^Y9li6ULj&!YP1Cu$V$+;!dc8X! z=T?XVRtqLHqyh0B&^|9C&=Yx(Tr_?&KabwpG8&RvnYbx8v#ijgd22${6}tZx~Mmlb?N2QKUms zyet_n3&Lr{Kf){{TErMo0OghliK$0C>T_08ST;+4?^CV8rPpZAF&M| z=K9JS_HLMfArlPTDV6FaNdDa%+)^vtP_528hZTCZCM*cK?!3^0G~D2s=#o5>6AjA z_5hjyxlmsoLa8P2jub*_3wsK#O}J_FO1LfMx^0!JDKQ9bxgs3^Do4S0UzyDkRT z640gTa48jZsQ8w>Jk-`1Q2BVg0D`3-Y+kEnd2tCU1aK}Lvm%Nf%?(rVg|C&v z<)VkrYnS4ppX^m9XrwPpX z%EFEx;ySPA&tJ~;Cu^^b=l&9L1?7J1A5v$5QB(6!qEr8?PO*~(KX^`{7raVDju}L4lgvI*JLbD%XaKAKL8JdPzvnz( zs}!QIuQ?^@SDiXj&aKFKl@`ohgkU)3W#sTLO;F(UJSB&fQq@Q^_08pW&7pADxr6%AAET@#zt|JGL!eg zl?%aZcst09D?iD;f`uLIDx$2J0 z+vmRYyJnEe93*|-Lf;`=244j+T&G6>Yw8vEERd5?2lDx^CO+%3OLx&sl}~z_iKK{x2FFU`hvuSl znHv*AUu2Bgp7!+~rGodC3tQ&?l0TjTt8#Wks0>f`X&)o+f*I;i^D`*paOIwo=yE?2 zu6MZ9xmFtdGw@(8;2%?n|j{mQ!|ie56L2i z7ylQ4`XaW>u;*2>F2_Mb=lMuB--w<-1HgyoTzKTyB^wMm5Am4kN^D@2M(w%C<)sVc z2Ct(D1k0}?S+nDsjis!=O!DRx0~V!XzI)_*;RVkSOFj%_)T@+LeVw_>i2tiQUtQ+m zmM#Y6imdb6BnB!T_ZrZED~#Xy9LoL8(Z`c>ZG9+UbAk%lhLp*#V`S$%NU{>33QDSM}#hV}=!U zedRv2!(j>VxPub1;6i{WUmorO8I;e@WKrgI703FLTH`CieWxf_iKCK-%mE<&^~6^p z<@G?73+cfu-(wLzwjK!`nR^Bl=3Ln4gH8k2V;iK)Q7?+}Xjnb9r7zx|ea z79#(zRw=4GD_emYp81&)Jjx_s@_@<%{;r|{d7Itc9u6=otA2?-B87EaWEtgU{d#b%``aDTx zdWQRkw~3F!=Z8=Z2_?Cx$^$A4)S*N=l$TTzUu)buHDmG1urEC0LvM? K4`IHP|c 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

lQ?iLrSZ*U+or%LnmPsqycN$(r|Mix~3_$St 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%0AQc=^{>{^%s zzQ@Dvl8=s?3{dEHV;%Gv7SVI4DQ{e+(#YWuUAwJ+YYyHxEjL4av1u~d*@1ZV71qa( z@bt~9QO1XkyDdrinP8?ynj>##XW@UR6GFAmKmQ)%>Q!9!j@S`GZs?88AV8HNzSF?_ znn|Wcq`C$9$X?@^nO`4O$Q*>mOiDq^sh2OTSYFo!V#pe^De@tbvjZEvG8enX$Pgj(sWm7E%-)=34Gq;L z&03-nnvMF=&nWMo;S--j+cnbXq=0Tn{lUfW-BJr>FLuU|9aM!8f6Urq2p59k|J}75h&Wi=F{d*8Qb#08RVptM{J_XuJ=gkralCLN|Lk8PEGH6s8!W5r_NJwt-ZSlucMYI z%_iT)rkY+;6a{OX{ZBb9Y&<{KE;(S1V$dnk$r=%{x8iMS6A;r~EIna@9Z+ms%?q4Hd44^?NLR*w6V2YwK});A<#(FhiD@o(_VY}xg7>CQerQ-5qbmL zj_%voV%LBrh$9%ui*4aM(8|uHuin=EX0^&EfQJ%?mhN<9+E+ZxwNemg1zltxFOhk?;`S|J z_?KRq_u?Q4=|B=^t|-P0rrU9A9*Xp-D0sCoxs$~!3hSBfw(~fs!P4{2$8LQaX^e9W zqrZxy+vhxYd!B8c#gZS1>Jd@ou9D?p*d?tis5{W2wxDwxv9}h$kGgOp^}Rn_`08o;&{q;)_}GAzH$2 z&QzWM`|FB8whbAc72Q%EX}5b4@}7UC>(XwdjLdSKh&w0Aa@Zei$gVFFa~^C}&4vNM zGA@kR%?!JY7Z_vhQ|HrtHJETClv}FPr9_kTXN`3>R@nOgOijm~6!&3m{qQ-{9wGl?uFy9#M)gxCpaQa0a7mR;7 zE??Myycit%^1EADBR%F)SqzYZFZ}#eU|2=u0^bbHbt$evHy47G`*>xV9U|@Gv!v)^ z1^D2vejRK9bfq!LbU_F);JewhBiy0MkYR5DM^hSPcjB+X05?F$zYif@$J{y@`DXgi zl{2f7>fDG3?Hw=JUt^u%@%E{Ny4+fmyElp(eKV#|iFi$Dh_=zGiP*(hsbu5NO(!9V z9NJ+wN(5qJAqU;Qrhp8iyb^aw_DlYPVvU_-LPmI_EK#-?${25FH*P%*yKnJf+#Rp0 zGb4m~n>BT(Yye8PtbH9h5D&Vrq!zmlt*{KmTN|a3Cmml|kp)h`Esm z+&sfdf}7Vc>2lzyeA>?i1(YS^kWr&`r`D>OVV|!KVM*2Bb<)*CEhqdIto}GDqgkDu zNtm~T*CgJVCJpZR)e2+6ElSSjPuZhN=GLkO;P8v0p~JA3t^uu9=5*v*>NmP;6i@+^ z+yqBryZf-Xs^UnlWgx<^Tuk{5+{;UkQAO0B()O0R@AmD`ZS87;j!Aj_@0h$QV3O zU1=pP;o5%wS+HxS!l{K*l3UU1Y(tmC*|f}sG39n79tPx_+Zs=9BWwhflQNP!@2oC4 zzNOkDhK&T`U2$y;*kXiARtO!}{OGjDUGx((zze)JXMh&mFNa)09D#C96Np?RB3c^U zZonQ@S{BkaoEpa5rnf?@<$hGJeyD8J7%r$}jHEoHH9tbFj8KmH-o-$+R(>P}Yi|b- zI~A&@ab+~Hi8ATP07-_r5LBPr33R8Ip*|{i!C>I}7@_K~zIcHmr5dN4s85h}6j(NA zJ3Jhl5~VADU30{qx>?HtEonJ^1=$t^mauR>C zmR-GNfj2VQVElO&p*d2T*^%_pH)aOhB1%gdeRTJ-S}C+n;ri|DF5(a2!q&`SN;suZ<_n8p0O^*TdbH}--W z%cBX^d+cH)^Yre7XR=*xLE0vkkFE%5749cYi8|X=COaynT01gVdGl#3-C)8nOo)s# z*1?AgUg=Nlb(fGFFI~70OpmXRZ_d0p?Bl6-yaXH%zMVpgm7fC>;_CnV(Fr-?|Wxn^&h-g__Uv_Yq;UAsxuK@T9Ys*Dl~okg?@ z#XM@QOfDS~th<=M>h-MRSh+Z6@|GYxSlktOE2AtJcpnB8|IfBcv0poObeXct9XK6= z4ipkA0X`}vHtqf^gG^c-76;v%&FzepekHSzl~5hP?p5jw#Al3X9UjQf9?x^cH3~(u znkh(Ciw|ZE&Pqu8jRLkzb3K~*dHAZ`>=!AP%Hq2Ev@L*Suh!}t=)&{!?=QaI;yd`> zILyZ83n%IxO<1d$43Uh_UL@9JS}If#=qQQ``7rq};RqF(8#>m$dE{}plaC&Z^A{0Y zF^qh?_5JIMAaD_tH-{fy{8fG4Hmgr*Dz76puzt>YW(@VF6$T1$*r4{1_9VA(c7&EJItFn<9R@Nm`d%w|%!29ieaKU@ zs~7k<9>OZJtfX>E-$9`NR@(pR+lTc!m~?ZKq%?ONWFrj3Mk~MD$uzOpZp9kg?gCah zdm-MQfU|rOt1QRa#cNuVmr!|!6$&*r0;o?>jM!vl)YqAd(AZ^CAQxTSRQ|?^?LxIh z0#=&Nl!B#@?^|mE0_Y>L6~%kv02ly8zwp+)%9>0I%L6P^1U9PRRTxuCk{AIV76S7aq7n8(Nb(z77sdjj0{2IS#2MbAQ(27SnDp*e+>_R zat*IWSavM=rZ^;34lqSb{uPRpOPDxk4pjjNZs`a`Nog_4!h8?JRN}@A@$FR=lgG>4qNG6b})220H_5yvjXybIOBq4HNTOmy2V#_8N5(4Du0K@W|$`^97(sJp`0 z<|SLR{?$jD1jz1T?M5>*OK{B!drZ76n?hJbkPG0ULrcK~Jc^CuN&&_uV%_p8WF?6bv zcw(2Fy;_*&s^_h~zFQJ|0iQ!!Je$GhrVd?i-}+X{iCsl-P#ok1pV!)Qnrm)t)@OO$ z6iOssdx(855%h6KO|%Uq3j{81f3xfUyD-;!DXdj{k85LkZxA!ZT^*cd<3cF@!o0QS zEQSlBNMYcyIWBS@IYDb;b<3(|vEYFn@A}eR4= z(6O$*&q76)=FU1`gr?@OwdmdPDejmyv5oh?b#FNdlTGjzpQ%t#Z-^S2~^ zMM}-w2!m~s0zbi1U&FiU-C`LcX1xSZZg-~b(b;Vq;gcPqX%@T3+ng> zm^{4HM|5BM&C#&^_N!eUjsj9#27r7@0DNKR=xdqS9$NA1#$!gy8aSL-~y z!yUUg&?UiGNEl`Qi?q@ z{PVGzu5ry)0usHq8qsU2PGuH(jH!U)P+oATtkvxqT>+b?V({}GfCZBjTcqH`Cq5R* z&nXeRfBx+ij#5Iebirolh)iT~7Qj)9X?O&$L^#u1GJ<5Y|F23B)pr)YbEt?iqKL|_OY?;yT8ZDzm%)fFFc@i89o#e zID&<{G9fF$6hihpZB&7HMZ4cu9!XTsCtP241O->Pg-{d((T-3*FEh(uaQETq> zX4Y7f-et}HogzcJARxj9`z1|f?2FuWb)m{y_~K|LWfreFZ!hd(qJwxtzwSJpS^PMO zk*vEWYlZ~~zhNRF(=S)QwV`@e$Xrd&;qXpfD=r9`( zX&y?9tU)#ilWvRzM@x%DOTeWGT~+gw9)tD5xUt#XH})kHuJbg%vlG^|K`ZA=$GyFI z3nXSUf`Y!JIdkWD{vb?ks1&Yt-)c38ogcf8>#hbYUHC)t;@&bZ7oAk|4*v7y4%DG9 z@v3usI(J2{M{^}Q3u7kOVGf;6h?=abIs9cO$mSbEnVqTu6LT<0>EX?G%M6tDMi}{Mit}k z<(*x>(z#n<(CudC*GOl+L9BOu7FoQWpXO3A(cKS=E0UU%{jHFx9f>y@{q_3Q4|Vs= zbvu^)L=c@#E-FgQ!!Rto??nTDlqzcz2JsTeGV2#w6eDU^ZGQSM3bx`3MZMz!HyBr% zI!$wb(*RMCJyR@{^h?UoUK%#MW=;9W7nRdt$pwKdjL~y8;qgQLMSQ-WS9X33H+WZ$ z5DfSW!0fOoPwr(RJf){BVXjlrG7uttnS>T5my;8@QE`=&IzRElJnlK#7#Yg6)IeB& zlAZtD&~zk*rgmb$N19z-$|8O>HINZ{LZBSd(9o81|2B3 zr)sb(`E5Z?-H*%E8hTRlRbNvwK^KzA49 zY%>~i1v2jgP{cpbln(t(>{F!9pMM?3R#@A*6UemV$(1r$#e~UQBHXOK5BoQQgExDl8}eQ$M~(!lZ?A57WR1R z9Uzy^N~mC9!pb3VEnOh1= zQ|ZIt zRf7wny>=)ecqYbv+W+NMLErD8sThpZFTqFlPJZ8KFsjPWa1u#wH74iql(zn?W#95) ztd2D$!O1GS%X<+9qy(k3;p_+XMGyj0t=D}5Ma_pBit(9N&f1Q zzOdz(&BheK(pB5Q{=eIFs|9DG9BV{&u@SL>SjgS z7gr}as7s&t>*R1!))D=2Rlm6tu4(SCmeL0qn#CgoPxU2>UDvqVYmtx&pE^6nWhdgy{iOoyP77W1$5*~OD?s%K& z`c+(TzX7*DA~DAvX%n%KDzDx04MEJXPgtvR1m0Bw+TCKNbC3B7OU$D2FWy7Y71P*7 z)I=s9{SJUG82~-<-6j_%VACso4TauS`rymAy4Rn7#Mo}dYJQ4~xy?&HgMuoyA2Dw^ zlLP>z_pLxb8w;8xMihL8O~R2WE}u0kepR{t_&^w{0G89VIk6LwA&~@NXNk2q+7Ch#JBt-j8`!oqTzdB( z+^{|9O5bCVm$SxKXH8V5k>V0bS*uy!`aJDq8?b2V$&^A&2y4h>O%g ziqp|@HsU?IZSyXJwAmSDg-2zGAae**Y$x<&c?2}u*pk*p=Oo*VE^UpX@C8fNP@iR& z*ss+KV#T*i_2!LP=2x94#R%Gho>Qegw&;*BJzr7&IMo;1lHj|?7=_hua1}^Q;1u<= z>$N9wsz$lK;M~HV`I7y`P6sEWtMQ0|f+sC{Oj-J^P7f0s)FqG|B{2^{#`dwNRGtA0 z3293~*`_!3UA&r3>j;q8yG>AAJbvwTLtBfxZB=r#->u_=$19EPP_ev~(n0oeGW-<{ zYh_Q-J+h42K_p;7=k!F%$j-3nQ+>W`S_vdz*@7@iJdN{-&0~kI5|C{Q!j4o+HryFp zi5WBl9>4v|wwjct-)=A+mPj3vhTV*Gu%H$cOCcyW_8IATDvR*&&iUWjIrJTL=Y?n| z%@PUBq&=n9>X@YWRuz7D6IQQABx&f=}Swr|d=nAniKh4wbs6C6^4!yM7GH-%U?REpDgFG|Yt4TNX(!1L5$Yz#MB* z!k)xRtQt%|nT+Kv{dvGAmXTaHslsT?d@Y+7KKgNr1KIb^83ahW;=~^8Vn!_2-GmT4 zj8jpUU5q@7_}5tI(Mr3m(VM|dgx?5)Z{S^@)6gctTzkSNVXkzYFJ&ufxQpMBpSuV$ z(8pd z5AdOOoB=Gc{s}S`;hOOjg9Fv<;Y*at=RC6rMg2qZT-RTvl~5RQmDa*Xn}-J$jJ7Wc zob8@&5Nj%X(xcph419?X_DEl`&Ol?5s*?>`#f1SVc6DZHD;Z(WC8H`0w?SQBA~8C6 zi!A3eXE*KBc&Da?as>nGYIbtFE&L1%A!c+AVqVf11X{!>J>)D(8;CA@IR2Yne4{Oe zoQQJ8qA&WVp-Ug?6_L@)O$y7wx2f&3wa$aOsd8g*2xSmrEGH<}h2|xNvzCFML~TW= zQ{UtuO<#du#qBci+UXgTE{FsQj>b$tz6)SV!uAKEh>wK6_8or9yN4h?jk{*xZq=6i zDO<~bUYROMw6Y5Z$+~uOIW-?B#RbzzC&S1TLodF0n`5?$d;x_|7XTi zL3kewN!7zdBB4t_?qU}%!*k$$nnAl9X?PWnSDgo~9w6k-v)~I^p?OHU63Hgi zl`5|xelZNW$?x*c`e#G$*~59S&r&E}=cAyIl>U%g!;T2~7l4N)@?D#>h zzvK&IC0X5#e^Iu(IL@1_N~#4d5|tulcNp)p16+>2)^I8|WI>HD z{pb*;-Q050vlERpqN1TxhyE=nDJ5+8z0nmUTky;|AVHLVl^41ToAK2SX^hXYDnOfS znNZN&@YJD|xuadt@~{=-+Xic{Qz~Pew$~*bwngqK;G@7(5k0)#lg!b|E^BR+Vj{Lk zo!YeyD)fkSfo#%R@ z^8c18(68-cV7sc!a=Ex@M(i~pGYsR>*8A@qzStA z7j_)Qo%H8!O{Gec22KYlVt;ELV3Y@etx(;KP!z_Kf0jS!20F(;8^diR0K`9;zS}&! z0C(E}_bA<)++Cuml~*`F;;7pvt} zdhV1^ovE~>xY%}1^nAhOwr#n>n9P?<1@j4@n^pUQmWj|re^BZhFiH~y{AKIr-4b?U zlBbWTHD(uECGg5qoTJhoD_?Oh362tb9saPWWlZz}>~rI6Jh9LKaxSmRI=$Gq0Bc4H z;(dmh5vX0BZnw%=Z)wLlb8MVvoO`|AZOZZ_^T~Xm#$>}2|2ErNDk7!oYR;BDP-QCa zsqRRy5l0+gY;I8Co5Bf3v&J7+@c`F9_A?|>F%89bXcspN8p z8@W@Qs}QrgG**AG>M%QCm@LZWS7E2Fn&bfN_G$4J85-xc{7enIXh+w{#rEmeSV#8c z$w%y;b`d3Fma>7>L3kz^NXDqG!KKVgK~z>c0~sB>e3gixx=!LPxffPXIQO@UQY)x= zS@Tq%#6DJ_Gl?V}%-^*hAYVio-WgvSI(o)*(a@oP?Y>zCK!_9nRz z9%;F^yBwnv2ybLH##hc-O15z*kNk?%e~!_A7Bf9Yhe$F)FBxiR)y(tbBHDS93*uYb z6=?#mumN{0tPPqamrRNinK5H+lssC0V6IX!sQU2^cn6R=*H z7XS?J9QTjGw}w+iRAxQZz{F6ji|7!No>d+i%6I4b+}{SMSI#O-#mjY9Fy2$6gB&(^ zeBiRa!iUJOx4KY}&ks$5Q=-dJ{)?`D{;jt8Ha}<_>_$jWsPI{oUX($S9nUKETZ?PS zjVfrRnw0DJBxvX!klq9Is9an@c(po}aROWP#qY*|U9o;R#yhn_z!=(@Wfr8Dgrt;R zJGLfpK~DV^aBt8a zIn>A=wbZ!`(q{NG)Apx??YG`u^Y;l8EO8e7G1pcud5KgbR&Mt`YhPZj5ToF9ye#mf z!}qw@okxXwt8FW9YrgWR&#|-?cmCQV!IqQVTC$4^HzGkW=Qsy4^_jfQ%mC(*nBma3 zgNsB;axB{nV==)dN5fOat5LTb@q{aVfdDAxw}h3xmZ=EvM_|3L5(0vsHBw|r^6<<& zvV{2Dp+X`on9uz`DbqSCBR6w1c8xI?2;|N=A~@QlT@;N1tnA7#)WN#mRGrZh@l^@L zsjC5iiz96ZAer2{qqt4JrSIud59LT&tZ{DS&Uk+Iiz_l+H%E>U9%iRknSQL-dqa?u zBz-H1r`ZzI;S%hgydjV9%vZb#pzD%y3$F(m5-(j;=x(8!HG=JXOm`>gl;X2Omw`fw zwf^t~v04i_32~kwH}B?v$OZpG@GnP4-nOY0&t zMrep%y&$JXDd>JJ&S;BQF-q4`G6$az&Etq)ap29ztr65D0j8#_1W_N>qjQASM9pi(9-FnTVAw)pJD2K|iGdf+h{XHLPxvfyN0;8jzNJ;wb5N~`Qn-L5% zLV)4)WbiH@3|JN}zm|^UTSB!%db!&{yNGmwOWa-k!a@k0wL*2>Tbf_p2>5 z>dI;F4P3e$E5;jK!6GGr7^*zW6bm3y#S({=vzLJ(mbrExK>~B14K27_irSsksxPH= z!5KFn5Hx&h;-&ZV!L)Fs7V%@pIX(N}#Vk9k^C-jy1?~)4mWCq1tNfbK>ocs4=V#5k zRgSJOf-njP=3t(&nh3(vvzFc_wMi=35T7xs4NS=mUAIE2M@&LwX0&zzr(s3tpjcp# z3Qt7l*-6U0H1^T&e5Z0>6d3d+t>C-CyGTiC(pHgDI(V0-kl_ojqp!G~LJU*Po^-TM z@$s-zzE8#-4xIUf?(iDB)+qT|u#M!N-e8_drMB1$H(Gx?9fa-?6E37I5F4ZQi%-KrrjGTrKU>1y<+>Vy2{0W^D;&EyJaHhp@z`gfE*aOv+()vDxVP;-k~6>~z}U zsYK%0bu6Z-wT=~RsE4}mLzAug#N~0-s2s*_v>HMM7g9ZFGCjDFbW4vvKMN6C=AVDV zO>yF>;id>E05%0gfEATHS9UQoPafbKB|a=6f{uyof;DYLK=P~*A5~4;4*%O#S=?-q z5Y~-B4&$jSd#>F67G!jqUUK2%U7q|deH&5EO&GIV&52!uOD|J{yYqPZn4q%8-H}F0 z1vC>iLh4SviIxiGK+2^VcUSV^6B#%lshEm{Wbek7s}Y`0wr!Xs01Pcf9$*UDlIC&~ z&B09E9V4d}L^kRH4_#jJXxS|V_=sOVA7$rqvi0?>K;QEShq5%###i^QE;cYykEGZg zSrB7)*4O@Sm%`(_+2fR}j`x!(47lyX>=LXn*B69J+ZEEIj4-HLtK7N#vv6_d?d1VG zEY+xmuv89g?-*Xba=@WRADo~!&hl1lMt2*>TGT*hv5oT+LI z1Wr~Pc7w^Q5;e^&tR8>C({g24st)GD-Az?#1hdl%Q&T4gTTTe5=%5mw|D1sTblEA^ zR_nZ?R1*v}1}%aI=TfJ}V_}UH8q`;%;`Jq>J3=Q6TcjW|$aW|+ya%`&%BqcOCrlcn zAB^VfmD=cg9T+bzBMWqvLUT=MD=*yi)^aY)9?mKV*upPs)-aSbU`0)=m~9q=@~Z(Qc`l+(_+e{ z>EwD7TQ9cpSCp~A>Ron=!Gli4?IT~d4li-`4$S1h=R=c78g{UP?p}(R&CWoa&Q$aP zWZ~rM;%#3?Iz%mQfp4{tHjV9lK6K>7O^#mQ2??@T_2#L&OP!!a8l@H_aTFl;`L1C< z{#rPAnEr>>!No)DkjPu630J+FUGMTW=K6B(L)1nT43T z&e|#Atfz{NMw+k_DRKgwV_~=*BH0Neupks(M8MtNAS3UULatJDI~CWU)<5Y8OdfeSs=wzFX2v6 zy52o|5BR!$W{;81b|G`PUdmThwQXUFJ z92EDH7s0Ogw^i6w>~4KQI!2@K>jT`GC;}SMqT7sC@e^ki$@Iji?K`NJ5D-zL%ZxoG zMwM66f=l{~vkfZD+j zzQNC39(>vJisDFQ1Q##kD)A2twKdPQcGoWTQGyL!aMZb+R7zZcww)t_Rc(YmH7UbC zli_33$X!S4EWcr%R~s1Q>GHlCKIVHq@3Kj@ey?_Q+&@`$8V4v}wU^3RaE_qZlMmQse0_jl5_n zJc!yb4Ukc6j(zJDfc`|z(b5`iZ&L{QTIU3^0Lj{)w6d>`rPcVf`%GBcpZ6Zr=BBUK zm^}DM0I((-tMToUoI}$rr2cDHak(K6NI>tpHM z6sF}}V)He<`uU$!^@+p(DGy!u|8FV&{~$({@jqFJT>TH(EBoQkJyQqzgYuGu|0OL& zg#U-2cQXFh4#jf*4^CV1{+D=8pnQLCDt7u`${>YlZ3lqT(%+JT&JImAdTGt{Ku7e{ z!LPGsm{)a}iZjFfN@M^=TEvpn@6JBg`43`uGs zD|_%Bd_zm;_Ld_41YwNZb|}|zb_0a%3qtZ=SFJBqJ??De6$g8VRGg~u&0`3kok4tE zAUdZ^M?WMc8_NvA!_@A>bD4MCS%M&ibxZVYRDY7VDlx-B6uIoisQU2^2##h+^eS zY-7f~C1SWFXlv%fZ6mp$+Hx6TRSC^ONxA9cwZj94c>Wg( zVmSw8CgK4M3{Dx1O>_FxmNBJ{k1nD$E?u2LakIh+2oZ(TT6!kgH+{ab@XCROUfMDK z3E`k%pnn*cXy>`%Ce%Dth?8+Wyfjw32E+yx=G#>E-~Zh#N*T(H2Al7lVU@{>ZMe;; zf>wU%23LYTHaG}sy;UI>j|AyCd%i4pv8mhVRXPM4NHwfW&EHtDCc-K8>u-ZRer20F z6bpd39VDLV8B`cP{^_sCQpfC_$xXA>^q1#Z0h1);S|##oC-!6fe)Ux(G;0@!yMg50GAj)ImA<>$ z#JNisV-T9%;YNJO+BqKNul1c44Twp}FQq?aV|#B?rLF`5>l}Q-D;x#^#+}@B5<0(lzlQiCWK(ZZR4FCvPM^7KU zcjL=iHgmu7Jb48jxY$snv;>f8y$8;s_GN-=^<`qop+nLoHw7x_S(^dNl@5F)Tn@O? zn;Tj12A=}N>F4Hhq~-E7vl>&^B=zdcws`n2mmr=$&U#q6Hc5_-b?P7+ybm&s)6Vz5 zsLZKv!8L?Ij*p;ZkJ-liF#qm8m4g_w48joJJlV%E2P68qvGru=E{y^7f7MC!;l*Ch zL^E|vZN84kY^YRf|F>nuGcp)HKvA_`;_a7Xf&s(eeL5fnJj@bmfEAzAsj9p4ajY^tzah%9>L7Xn+HSgL zaB1*5=P%42jd+;wB=uu)7@;+Of>~Sx&@}XL>sfCyV@f%ZL1x8CezWM&H3+g<9eGR4 zH0HpEykF9_oQ`iVTJ^y*#{_y>AZlNKe$7KvudP{x9m#BLLwD%4rWGe0pypK)nEB$i z+Hd-sJK7HUNK&urc;BAe^s+Q`bkRj6{{6b_pWhRzT+ z+%P9jaxRX;&A24@wo9k}Xmx?=3bo3P9D=eu>WKyp2vPFgyuCv3WJsdvT^By0T8@;h zvyb}I%3nw+_sgXl6ZO=zS9A#s=;t{=>x_X!wEL+Yhwt5Ot@N#~Qb1*?D!ASC!;wjN8`5o+?d!C=S$#YaCVV z;v+h@nH5ILKYWfK!?lfDVvzQ(KGrZqE2yItSgdjkdIrp9e+xsSt_;DN0?FE)SZg^6 z)za;CwWdROhKF*hpYmqutF%37N3Da(i#5#(wFh?f!uRuXJtAYgXtH@<;UKuYDX`e6 z7i06Njl=)DtR=?ouRJg$w$Q_i?!^pkZ+9kV@i_<2>@_eY%-YmzFR;4SxInjNZrm5hY~ z3q1%I0y#^>zEX*c^i@~~&yM%oP^aTR@0X#@H&R{3;bSOKrnsCAyd<7k4eGVvpT&lY zWwX|QWNmI>&LNuH4uD^WTBvTQM@TV&q{nKP%p|%?mpoz}aY81Ci?Egi_&bF1Fz?0u zC>7+Bu4%@iw`6tTctsy2J>Q%d>0iu~{TLJ9dS(Z#^#i}ObhFmua#-3r!C3bmf3C2) zZ#WAS;2-|GDQj2(U1t65FeuKwMP@tk;K{J`q|{2%LfZmix9GebIcCaZ0y z)bPTsY~bt?;3c{vJG6s<1Y!c7DF!Bgj2Vc3*qFrMG_9r)iDL;nn%jh)pe%sYvbpc< zqt2jDAPQLT)Z0f7RinGrw}vR=UDcYMmeZVwg#)^__c-0^96E*hByhQ8B?i_)H_l31`DW7u^@}nr?8RJ;O_a0k5|YlsPpOPKmnifk#Mvw`!yf3 zs*$ri-t(JHLsv^57J9{#Hq2T6L>L#N9%ef9>Y;Vw92>aZ9n2+!d3)(BR_x*F*>Lqi z0uo*~sW)o*jH(LVf0$wA&+I6F^jKz z_XT4+%2aXHpu2KQ`v2%sC2f6*8K3IzIDtBoulf0faW7vwhi>B#q*8NGZ963gwST4t z{ca%cES}D@R^4@ha!JP7{eQ(-kPWpi#yoU-(_EG1+spcnNX@3=NP5#X=vaS#cP*hB zNsGCQfw%Go4L(a@)yEa??%L)oPXdZ=7BH(2(D?DD$R zW9n7kT_(edLJ_!_Pv&;nO#^qGlq>>pX+FHy^>vsdgP0g)G`d!mY6;VY6eXtA=lJ%E zkdqo5%umYZTNb(z?|o!cupC4>BAuaS@<{HleSTXJ#FEQGR@p zKZF2p<)>^uwCCL~jSykGhf)(}5dvMlo)m7MrpvA|&5KkD8#JBg_PPjqzz{!bB})&N3|#&H zkU=OF)_69EaMzu1vO+)7AW{V6RCaqamw-H3%flTYINq}5&ew*$CpC01oH?##*p)Hd z3@p4=gSO3|J9}|Jm1x2F>{y5)9KbhD2HT~Ezj2A(e&+*B;be=-A&`W=uV*k=$D6E@ zo?T49JeAOp4*5*4@1rZ?Pp94+|A2S-CIv0YcshIxnmL$YS9eou!3JK=Ol%s^FocWG z!#7`p_JBbK-&1ZE*cnn~9X|^TB_67vNlaO9)70z>ICtWP)b8FT?JADWW#Cd=1AiGg zwS(MJBlA1YbSZ#8=Cx|_3bSLLBFB3At*K9EuU9ogBH5S&w+(!*{MZ9WDwfNo!<~Y6 zJti|^JJf+j`ABhWNp^*vxrqt$%}(<{O*~~?nT&~FYqRW0`1qfdrZXA3^O`CdE9Fob zoXW-+v8;(4or43-nUl~5ox}1pwzSVWkYxKzVPHD2bI0o-wjUIxr4Bt(QWy`&wWn)p@#i;DrM&x1Yp?PWeXz>;Uk{oScr_s_2r?_a&~ zB4cwYe!^_(V-Z*$`^Qwl;-DG5+B9!3kdzeiT^g@e#vrH}#nqn5Q0x-D%Q%)x!KG2^ z-vxBmZ#?|6vV3q|KM5%d>34v?< zhOHjE?}McH{7|oXAK~eSH=3U!HT2;0{+RR7t~%K}%Cp-Dl^+01kLV6RNuG6RmpzxI zaPw093$Abj{k?d%o%YHR>Akvrz3yWor`)X7W{Di2=#SBF)e;QW#pCJCNjZgw<;&5evSh9T5k#xF9w8e&$3~}eD!O4#s$iO3%?_Hm^)6%*(^cTg zvesL2m$l@vX5T37_4 z5dn+AK;lit2H>iP_px{0F0flpewXF0iTwYFU)Xhn};~iTYh?vcc#V_^P|^}WTd&4DwHy# zEhh4+%_#OMw{55B!jLKMyxBnDYMsRA$rAfpyjy)bC7qAd)87pcVH%pi3}dtM-jg`d zr4LR%y&$a3%WmeGSMOE)$LYA;s|7()i4zW%E+OYW5Z2<;Hhw=Ro5TL{)8qv2y zrYwt#Y0BbLlWAn_^g{C`kQ7d>@`#+3R%~c(Na;|MG9+Uh-j5nLb%M=Rv-mPjc~Fwx zgHl3@izXTwMeqH(Bm>b6<`bPa@xAW_dIEU{dL>gGv6_fPs@w1dDeTNdRSw*$*wXWl zg4Z)rXcHYq3$x(+p8mirF~bhZm$FTV4wabtMK{OyqXUQj^}M2%SUxag{Y_266&U#V z!=q$bcHX-f43{F>8@jJm3K8fnqorZ?hQ@p3M0d^INf=iu0F5_36^emD6BsV0WDF5G z2sm6n+-VnlkK%>9ya(v&(>lAIVi9t%ttV}~CJKe#QO9k11|PY1l%I39s(<1QaS$<8 zv3g0e4jW#hOZbRVz-h1Sv;RyhHB3F#k=*YUU4kiX^FzIyLK+{dtrI8*|nq$D}rLj_2^nmNBsledNO?CCSUBrMr5jgVWVb$Q%yMfC!VW1@gY) zDr|cOB2u^daiMeowZqq$%&qioeu%I7?k9BXZ+p8I%)s&rZQZSwK z(vU2xgWmZ{_d2G-!SrbqR>S6AE5z7ph+Ki&-_nR`53s7nlTt+;$0ms#Z+W}sM$W~Rw&=DS$`1( z1xuQY%*CSj!iI84o4lUDLZJMUuac+3%bew>$CwfP*x0a8#Nn~oGRFgfyZ71Vjd?lWEnszX@k;uZcGl#rSk*3 z=9z#>{gsxR_zaz}N35a)091bLGyJQr!kr{`gmjl;*ygXe4E|1Up|bLRJXZbLyUR^& zC$DY}<($m9-LXUB8eFVqufIY)kBPWzzY;xPr4K{(;&2^9xD*Xir1dr7>1so1XO`QM zxgv^9-2^Qv@pJa-?7km0NQg(X2*O+B)SI_4>20-hwbC^fr|M*(06@s75zRSdh8Z~> zPa%ZOkI^kfb0!IvZd|hbm2v=m+9jcYWw(^YRl{HHjSsB=bGmYs2@`cWHTNP zF*v*)gS!*6pvmiUwNG1L$qIJ$M);f!)fj8g!Cp{bqF?<>-qW3 zo67Mv!=4okZP~-N0sBW-b@8E(m#`;J(!Qh}8rKdO@g|0SY(~Lb?bPmPN{trZ{aB^u znx3UFC;~Ffenktr_c9zBRv#hG=T(cVTv|!kFY3j?=u-#8vo86@{dn~mUqfr}4%4*h zPoG(J%;PgzAC}(3n4Z~mdMDND390?&!A0h*>6z57PcPL_Zb#I6)#gCUdaBg1bA4&`m$`c5+Bm5~78#;`-r zo^6?Cz;k|DYnGbUu0Q1(Wr6u??H2(I70@xxt_v~0D+O`*_ex*pry{V(u>9o3Me-&0 zqq$=t$YgZ{9(G>NK`3V=RPWNK&HtRFmdckJ^l0Xxw3oG9nk7{xr>PM2CafM-K=e${=Z=69kBp9WHZVkwr6lk0xz=K+D>FrABbpuD zA8$;|E<0zM(ob+0ED*iZ`u)?+<7)505*UkYWZ&bPLdrm6lAKey%UH4fsOd%ThLbv4 z=H(Wg9kQ)Sy`(9=u6w0j(vTq!vpA$2Nu-B*!h`zAj!%QsJNi)GnCnYQa1nSDEwfNJ z_|uDJ;X_XKRk0zyzHS(45^$p@ok58)_^ub*9m>7owH!P43JUmCTM%`G#VCY-1ubm2xw zH(zLj7a16pTki`ygp+o1HOtZ?v)tZ-5kBlXR(OJs2EB_GI&o7Jz46`34OI`=un(RU zy}JR#5B8ZfB8JYDTMn<>k2|Epv&1h|{Si*p1;>JN&Te`TzuCzYg0J%oME4Y&X`)IY83PP?s84z>Th z<2a{hhb55nEC@%4v9rp|uZ30fsjmYH3YN%i1X8;hqdYalAl#?vDA&^QO_qYFY$)j` znrzh!JIQ#@o94t4yJvSZ7x|7;nNJSWyq^(eQw zGau3Y2cctRHaRzoAg7nN3M&J{H8&Rv0{|bBhe@ua-RTgrQ`jX^l+MGeXL8HT>xvvQ z)f4@YF@uu`iMpM=l8^}t7u*xSMftUnb<6=@bC=|*W#f(Ny0@OOTc-u#^X`)rH`{&mkpl$gwt+Qqx2Fs(* z?J9gtQ}ccrhT_M_qa5E*s$_)Y=v4DLd|$X+Z`cU7%2tKbdC|3Fn77G+8KhpAACEnO1=CPn4VPbqeJo3py^L+J_Ch-wL z=4(PN;anX=)AN&gn?_n1RJYEr;O^n~daD~)jVBz?Y8jSDLVF_azvAypvF=rA!WKy+ zuYsjHIRWyGP#La$cr?fgDF|c^a1`x_JqR>{o3jah=}4&DO>?_hp?R^CiyFGi{-|rX z>rIdooLw91>_1UGC%3Dl`k@Cf2CJa8K^OH-y*I;_%tX(Nn2z4F_c1zWAqWaW>xCJ^ z{4qy|K9gnH=T;%~UK6~mPWasIKkF2rdY1Sm{Ytr+y#4k*xb5M7lFF)n-6Rx{VXOA6 zli9QO%24elwV&BI2`g=67&!tQ?;IJmV}3ij=xP+X`XN<@>%xRa4){v-C$U`j39iix&v+7Z#-+ZGH3d zP>NNYo2%$Mo?CG>-{rbmE_3rxHp^O$$-R`f`Np+*w&7WyIYaYx5<`IHm6h*U%a=;- z_4`suxz-qMko`XD!v9bh2tqi(3sVNl?H_it7=EnoPQSq)@!d_`yN zX~@|4sp5@wddVYYN;Qw0DIL4f<`KylUUQ=eSf`<9?Fkb}{0m`AEfe1ifzAVDS{ z#{2+843J-H-|ISfb5dFZm>a0V4fzEXb@Sa*l;}%M^tBkHi7|@O*3?1{VD($E5PDs5 zn49|ykE9{({xR3Phxpv=TjWQ2246y`c+r1=fmV z2amm$P5%}(f%8lR8s94kR&nSLeY8+WgFdyAmA=SQjb@MshI@#^Rj04hQ!!D9_FLS7 z9Ra2LXpb7+3DGy3E3{T*qe(oFSWF3BR*vvKbL*(q*)G*MO{!>0^3XW$pU8Vqu@JhC zsVQ=xQUxvxc7>^+4n%X1i>2K3Kc#L(#`?ablDW#ll=K6U9@pr9Cb3s*Hx9l>%}wJY~mRv0B1 zgG;`#eDdU)Oqil3>z0c3N1<1qP|pf*q=IFip(IIMv8n7tSA69bJLP7JB=F!m!ozys z;HoysqORwTmi;Ixz{*`7(%|!=CHUDx(4+Pa+#4b7W$jtytXQO2pnL%6+FoUh$3eY6 z4+9vXnn!h?rAMscJVbQsf0_2GDIpD(t?xO3U){@_btpiyGH~h|x6LaVsNS%!0%@$& zr@zAPtQ4)>Mu_Ed<5%el;3M3sw;FC$BV9G1-%DdI*4K_SGL622*r&@gdKYMk2Uw-0 z!2DuWJ-)HoeG_K976oXNxm-$_;RxbFStSO=Gy)^b-@Z@l5)e zutwE^8Ij!V(rNKPNfnQ#Dg?!_1fl?>gD{<+`zd$4}Rk(h{{!JKl-&tD1n@)<55 zM4D;piuMH3yXbhbkG^s@F&*)2(^I|16F_DdUOs?DVpHz16s4xV)efGh>`tujOie~_ zPxq?E_b%+=Le2RYm*X{cDfBi;LBR}nAkh#2?#H({_RV> zJPDuE_u1JBJGw-OQ&{91AzLWApG2ZdcCdNX_dc{$5S3eX5;t^Zz@x(}W_D++`e2Fjlq3Tmhc1 zAK|Mj?;h@u2&?ALTyKDk%I*(?Gr)&eRmyW)DcrjBw3<=ycm-(KwMOO~P`)dxy`0M! zAL{?hjDEmFvLPWGXaap@h(Q%HK7Ry!oj|nTf%WEih~T7+$$+HMAQZ`lG&k47rI{QY zi@|Rof5oU2Tr#^@S)pNfb@Jg2&Cc@heU_-4Q`t zIau)=J+m`wcM0M*{Tfna$y}L0aPn>`v2z&p5HU`-1j?w94=BgbSqFlkIpd~c{T(v_ z5?mIjbZCX4^kShX@B z^M$4U0+dv=^XK=J`zm!j;+rBnP0m$1q-@~4*$=SWDuK%qCOcdb{PS6ta(nzh_brJ`Q!#&;k9yWs5@4r(~FGGDLQ2cDZRxgjHU|zG@(i z*lgHJzj;-toq2a;>e|)MOILS-v9vAu)IT@;b1A^;Yu?zm?lSf{b-W;x@#>Gnf{GCx zN!jO0=*Z7oEzQi5Z0j{pOpnOTp-zrroQZ)`(%+);TaA!b5e1X4k)UbH7q9}k%4ik zs({kgGk7z4)E|7|2;RXS+sn^4)nc+HzaQMXe9LU9ne6b4C33$Sz@)RUJMH~9ty|#0^*RRtK8+s*XgGj44r}lzP}1e zv|L-xai9%T=p&qNDD*KRtOt!*O7I4m?G5RIu`%|r#7!fBS@Ct1G4Aj}`VJgP5=R#= zAEKu4r=QZ)L3;>}oYgTzMO7~zee=XLEw)*NL-^46zZgpBfaYq~#F1G`x^oEjFAXfo zoSKLzrYUslv;JqVD)GXYpz$0L)-l^Ce7x+dnImfGd-uAX#S~OappiYKUI-UAjEqZ2 z6Y$8)0l`<=xD7UpO{Gn#g?9Um#~xe);eq4oQ|;*Iqv4;}bf2Q4q{PMBeMmJqb1xkC zR%q{5gEy!d=wkKWc{gt`kACV|^?S4b2VS}?Bz!|!U+m*9f7fc9SjzYB`eHSLo6Ody z^~9rTQr~(bRVUPARh*KS@q!EgmULd_iBi(1ngOD+gf=bBt*VdD>~CZ6dFfA3T^HWK zS+E1swONGAxb&L|wy{u+9XeSS-`&<+5V)o?Tw=}BIe5*Tm*%FtL)`}#!KJ2h#fz{Q zuexRFWAJsQINe#^<$Ft##x}`&4!C9DmwKLi^`Tw2Mb;-DP9@v&MC^R9$_X;QkAlf|wReB%Rz5MDdivnXfiHO6Id^h@2?)C-E?pK629 zntrnE>WjI+?+GaFL~_+?rYR+4i1EWooET2U$7Y$z&aYSZR{ogntrFd9b9^E1Y?WjI zN2b;9+rCZoq3Ij;q-m%F=E4>G!h-4^H>uR#4@nCvxUlzDyI0U40jmo$Rq`)`IS1vl zQ-H$;FQ>oZ9kUz)YoA+lAy zNN=Jg3e)I(;)l@q!uN?UA}V0TJoM;Omtsx}PBs3qs~HKa6new-EPatZj(Jx%QND~j zY*w!-SBt9u7BCn#((fAe20Ok<9R}qL@eumq^5*Hx3e>!3{`jUl*Pz$4M!0y@pEXK_ zI`hUJAw8EW*I!eM!pE>amofTCd==9g|2j1Mp=AC*&KygHu~l|Nq`iVUd_qlex1P}> zYLzO%-E6Q&zSYE=2)*<1tU8ipv%`S;R%a}6_8}&CjIj3)G>}av_)n)eca3}8wt}0e zqw}6fwt9N+OA@R$;k(qy`4>4wI4>uPcLLH4yL>o-5(~gf4D^}6786zz3R+B zmw80PrH#Yl4DW@G0_V(w=eBlY-K(_Z8-#OvO1Py<;;jon7$}uN>#nX^pMy@ed|t7a z*V^N#f@+4N-Y(`XOC}|Xo$`Hl@@0gBo4#GC zF6NKf*vTC>AIPaA(E{vsw2O6o%9F9IR!w%6+9gD-LJ^~mcbmeBRI2;S#pa>f-zL2p zm)%iANaLQCUbL=kTf!Xzw@A5SmIaLFAr^A zgu?>!7G^^HL7krTgGw!cIP(3gBn-zGN`%?&H}VbKFA@6f1sZa})41N&3w#lfy_B+~ zG~g#^J=yf_=4$nCXpEuiiJ8k|kjHq5yY>;JyyF(Cn!Az!mkL%|JzKiPwYzpIkp>iF6pp`K4CTH}2oCPI-De=UgYS~JnzkJ{e-j@(gJ8cN(4 zuK5LS^J_6Bva3W}ix{PwcUSmmTB+BZWo6W#=FDKJT$*v^#t^si4TxjkDK@)Bq&AkR zkka>tKp#EjQ3-28!~?AO0P6;K7DH7S{ij>oy7t}6CAx+*Uy3g0rG6Rf#$;&ONyLqh z`u>NyEGkbp?#s|@U1W6wCbF5KvGNBjSPy<(p@{Orh3{n1RQ4h4xm~X)2WC5AQ z3#eNg@)3*;TUt$YH(@K?$qbZen!$<_bM-pVi7*H638Ca`NXj)H{byqhJFYYv2?*=C za5`n!=zT~@MqCW9OC@)cWCvHP1d%lc)FMJv%3Ypy@alWx&1{>iLb}OpozL_NlsmtE zePflP7n=WD8JX0sEww9cx|Cv{JKEDiDF6pUU)m82!d1OeC@W0?7GJkGY|=)7o>bV7 z7lCbuT_i;8UqFoZWT4S7L|HDv+gd(S0=K<2ho+t%!=smx`06aP$QSG1CO>jy<~ z-ppw<%#+U;?O?F?oqfVC6m+fgy-Mn*7#;I5<&Lv-LG*(*I* z9>-k|p?*jll>HM~YSyiY%1Y6WAQ?&ev#p-vedyfVl~Wk>&0b#Zbk|p=nXx zO-(VqBwKwy0pW2HWYNeROA`JkK6bIZqck7N*o#jy?bRAw@RWyC2P~3-S4a`{z%L!* zCuR+}98OT$Lkn1AJDfo(b+Ir^3TTO3A689`7E-m&pWhALfr=ZPJ7G<)JUgZdbEh@A zncR0FwPZ^Q!RU-$7zVY#^_8-%d zC&ahme+e0rr9`+1lD}(6z9*LQ;21PxAhk}7uA1d}?ryz795{eYoG z3@e^YBR(&Q8}9mY|HnycQ|rS~4CLN7R9O=Gx`qz^J2msC=IX3ApyvUjk&2;w@h|Qg8DU_L-;X#-zNqHixmaZ_nYfzIR;8nQfxvQ;*uuFV_@f?CCCMpcs6;V9zc03>eYQXzIdy zUAV7Ot8nSc_gKertT1AM67YkWXAPh>MBDlbL=E}_!o>KZzkMwb&d9}xLAm(&loPdo z_P%m7!`np`$Ekzv#196K2t=4NnmWrg6>$Q*o$DLot<@{AugBD^&ZN)47t_1XM%6|3 zTxV=IoB;p8JC}5g2JX8bPfQS2LJvyRsJkz_gYRXfAL?oVu+Xa0iJV9kS0m#74 z<=|uZE*Fd$mQmB?o!%TIjy_7Vsa?l^+LfWvvyA$V=gsf{mQynt znY5Tttl_Xf!}Vt)F3S=>F|~N;rgv#_a^t9jMJYafQ3w|leye_< zYuEA(hHiY*Cq^{R9n)Yq=RK|_HgHgb?^?PJ{)s!)>g)%c2l5<(D^FKRS>#7DI|#K&S#e<~3i= zXl3Xvy+;2R6X3lXaVU4rN>jT)gtlP70%5J=R}Ku~pgxbGjv5KJ2Ro#tyA1evVh zfTYm`1h5TqbWj#`7ssY2N}jFERhdX1ed?sMpu@6Id}= z)2+yt!6Tw97a1Z~;$qOPaF!Rl6V9rDhrTbM^nf3|Cr;vVT6UE{hAoh6C2+mLes{_; zF0mbQ`0-$wdmEfZ%!+0{i?gyVvNzxhL0`jSa7Gqv{=ezR%BJX=knKU<#1fx*x zkyx`FJps{dNLn3Z*s!m$*e%kjY%`VFvcsBjUIAk8o}Zszg~NI8+RS~zedqSh-0n83 za_G;_=k1>txgIE?mi-}>;XRiWs-%vp$kP>_Zf!gtiqf+=;&RXLV|k+#*kvQ28(qYH zuWI{Q>fR~QC%!8O%5n(wlgP$oi@tUdihwcrMCNbB_0RV3 z<_j~Ky;;V2`QN2?NOr*QrYx59;q{tmmUcJ&2fuy!Pfa?- zqC*rX_?El4S<1fN$n(oF#FWPZKad-JdrxXeR^~^ zU@HZAV?=lkZ|w2Wz}ggEC%4JcTPeMHzXK?m+p-R~TY(-CYEU5;59RS_eG1_O{#|=# zK7*Fl_#!@dEEw}L5SWYfy?0FTR>HSd`6BCqpInjKN4oX5u^kHCrcVmXQaRv0lX6C7 z^rVkPcVrg5stJ>H`b}-H0AavszMmync@J4Alox&eIQ{KwM5Vn){q9y0<+;MmHX>tb zdUWBTdk5-sxH&Xv4(~TZK*|kCiwGKtVjVNNnp#7oWVE7JCyx>PfK_vY6}g@lV^7p6 zK@QZp$DG>%!!=EK! zcxmet?ykDqu9<4fU>=Lv%g~zjD>ov``SSie*Sz+|lb?9hu7Xp=G%lc@+c^e{?K4vF zJh!poq6DuY8A4_L>Q*wfsnvD79;m!1T5|LG%_aZ`JH!Q>4UV)4M=DR3jAdvJ!4BR- z5(%T=u5CD^8k@z;vl?Jix4z*WQxXz#ja_Ln(RU&|HUJ#ZkhI#b!Nbi!%t&FN;xo2S z^{xIL3;$?%8}U;j>r-hd*bFC8wrcvY;%2gl1xVVThU^F07k(y|>IW36*@Ro!wPd^j z1DXJ4KSt;+Yd&p#(`>VK#inU~dvth8o~4`?mN4Ok;fR7mK+Rc+o`C&%W){doTEm=_ zl_}#pDSJ5pw(9FPIso20ex@az+V=FC4heE9!%WcAGgGU^2O5tz5#$*LGy;T7z}iCf zI=3ig@@=fWUU!9_hn-@Em|EMoO?q@KWkq;9c(#|_lP>v298K))M0|(9@hyY^IC5p- zL{&Ja9Ug}aW>wx-Dqq1eGa-Y9LVtVdmt$M1cNaa(lS)MSKMM%S4 zz>Gr1X|{J;!a`U1mGoC5;e8H#%HdiwtPOtrqi^hl;nB$xi}G>QRH@{5_~v5hC13pHR+!hXQ^Tr9?^{Aw&d^jg8L>5iOc{ug=!%blwz z@LtVPZ!o8AU>S!8&V@87r}n(ER=%|&IvWUJ}s-`y^LpuVVn z!F>s;lM0I8 z*+5}dCt;%VK;S1yGTs#Pkdqh&^kf9C{ReT=e@=n;{rFGIh;FMHVgc{WD#7y(qn5=; zqq8EgL%1d#HD_*0C*B3SaiU|~Q!PSDL4E4j*-unE1)%2##}Vyit8)gJ z-h$1`X{F(TMdXd_$PBu3ZR2S+qSfK}TxdxF+d~1%S$`MR)Xo35W zm0Al2oz)QWfYDy*)y6+h1Xj8hwmml$k6z)H5Mi9-&E{|q)Ilp68_8cUcSH`-RA82@ z!_aTD=4Iu!o4y3kUz3%QLg_8M1}i_n z1a|ElZg*SW+FB0ZD#tw_0V&nzeS1Y1N56iy(%6laM{YGUc>YCnUFNtD1gtjpMV%u> z^=ivfzVJ1#KD)8q$~!;h+AaM`=Tn0EmKJe6L|3e-L5ff3?_{$^Q|wK5TT$>?)c|oh z_xtp5^6#6Z4zfvh#zb8#2R#0N|C!{ z$t~UPu$F4fXf1aR;v0;=$#? znP*Vl(b~@fwL?rAuU1^!apuME`jTD{cYfrn?dknCuAO^j?>R%2kdZMgtFz7Y`A1{f zZQq``LrIz9DKT%u%*CXBq)F}PSMF-FuZCY7B$td}C@`|ngMAl+X@?k@I95&RiGBAr z$b-0A7UDsWVt+Ryk#bZ)OR3aB2@TsN&kyb;V>yBKf#RxfwHWr7Y@=t!3{G6G8gob` z>z`^N<_>S%_ht$S0?nNmc8X&>%Gm!|+Rr%y$%Lf6A$(3MbkI2?FeGp=E&JfdCGJe# zzzTiyTpTPr{tCg9z5e!S?oN}Y=&8Q`*gxarJcEUj)H~YqeSt$~`XF*A1tIg?kw^0t zamq29m%}}Z-lpSSQO~+k^Jr|YCx7kDH!SkIE1Y$mesySv((^`?>O-7Oh4pFP(m}wx z4!?3g^b9E)UdOfS__7vg{nBm06FAqwfYvWV(P#s}rYFxA#sNs@Pb$>@^XnVwz9|%` z>sMmq7}wzIbH?5W^^wHasZ$NPpUn~wbRbNOAx z=Ey%_01)<)kcq%@LkGE!Q!gK=9Ou@KsgG4Zp%HUZ`R8n<;yEqKM6>2n*XiMqr=UcOdp_A9toW?EfmEr($H%0)@Y2FwJKH^O>}Z{Fi4QB9S9ZN_`q3KN z;AUTXGfzGQefXA+vTjWi-c;^5WdOwxGh&l)KxEboUFN)kVhC%yO`>WeJasLHvNvV- zbFW1e9Xa&+u}%q7+68t?H>68?DxqjPUOc-m{Z8QG}co6yaftP=ob`UvH{; zSb>Kc^tH#BgiT-E(W~=6-*>CA4Hn|=!X@Qn{f>S%vn%@+^00`&2I<2cu@JZZCnTThkk&Yq{zd*{B6<`YO~^ZBae#|nuZ!8ed^JSfF(%<|J#oV74YnUC z2B5fPqvqAKxo7=Psa|o{>RP_UFckjxYtQORc1+dLZFQttHT9g=U&;=!%wQgq^-#7o5z&EywMoMVUF z19-bPR++YlKw6Z7BDp~3!HI{DI>g*v-l{NMrdRHx?D;7;a(>;&mdOh z%XG)1IEx$t>#lMo(wdtXvcW>P*?$XMH9TFl*?9*8PIZV>@Wxs7<=~$~MxA!ji=~xJ z+tT~)bRf^lt7bap%N-9Ip`_98WtnM?$9>99&Q1q@thuyR{0(U!iKQ>@lSW^0k%rkL z1lIi^2ZYgU)2$M|fF}JioxeCM=p@PB)#>~z36D{kM+fbG>6PO>9`H4=zbyLthEmY* zQ+kBg^tF>dhB9FBrLUC74tSQ#V-4Ym$u%=`*robp<2<)QWI7+XL|I5Pr#Sh;jOj8G zN6l~cmWQ3c4QQEdiy_60hql*r;4!Gtr=@EEUni)p#`K}5bVpy(Ve|4N^aXJ(8$rI} zt-qKgm8td9IG|4r3OWGecCsxco7{cE)sf zW9s)HcnDlOTEHK-he|+O$-hJg{7o<9uPJlQ|AWw8Ya!pb^2YZ)-sJ>q?D;sL2u?(W zTMK*v+rruKm(d9`UgqSOHQ~`j#Twma6BmXgdUL3q;TDU*dN;9Asa4z0?=6@#!XD{$ zKkWlQ?uy;A+0I*Fp*z!t9@Ytez(}k+6c76N25vSwakpih*NL@Pf3yUh9+R~4+@#MQ z`pBPHQS9BxSPrs!8GXsTdS(fK67xVdf<+*`IjV$^Hz(GaDEd!zssoaeg9!DWuho zx)F*z^kpOJx%EO=rK8FW7nDIm1t7TyDlXmOsWyn7txi#6-4eL_80#Q^a7>RYEAzJ z!``s8^*!~TF&Ek5K*nI9Ka%6+FYSYUT7;Z%YTTjiSCLeCEQA>tZyq#0X1F|piGUX_ zH>VsZ(uTQph46+~JhaRPip^D1*lL330ItSbV5l1l$fACUFA4e6qTBU#;W`Czn_kWV z)bsq$9X=ZK?6@*L1g+wlix|~-b95e`=&+Nd$8O=N3B>}YqK>LUX@swDRxhMfGLJFs z)mRaV`=eHt%`FifFh^vwpl(jbd~lq+=a{Xi2Gq|v0PE{Br61)jgL6p(^6?WPU0g5< zX~Mxd%jo`$fzG91mDk;Pp{}bYFj3T3uL#qW+9Kbc zrqzi4GDk22?6>dHAkcYsvq`;#)TC`yFb9j%MA>(MtnE&|duoyR(woK6DJc=-KHAxEkFN|2Tmb=`=5bbO2&W=N`Dn-y) z;#G2iT4J#7)YqGyGKddi2aaU=L7(pb3>5?W_7hRgId!Fxz}z5!+dG|*@&2NKXc2=} z`#Nw|aMrg5te{RH7F(n45MLGU+THoa;M{!rXa@1KJ4x%9O>kG1X(X!uwhtkX0eU0C za4_ImFsw8TSuPDZ0H@|zPIZ{S`V{_09XqRssXygdFw9u>{@EkVu>$)3 zF#i_mVeu#YYMLOfrmD>H#uQ}MiY)d6s7H4m$v5ko(Y3Q$-=ufr4S=2vQhn!_BXs+Z zr2vnFGRo$hpPye>w^HY|X3S=~?pG~~CF3B<>a;?TdNWNys`Eyq3x>2q*HfcXy@;yY zc)e&GN0ZYS0`NQmdx)6IWr+QcU{NDG;E``mqdYsD@;Q5S5XQz!cCXmQtZ}&6%YD$_ z!BJiNO8-txr|3o}3R46SonQCCfqFx&1||v|lFH*=4OCM6fh6t?T)e7fu6}M;*dGdZ zt=c>zu%9_T=BIaLtf>e5`#9mebn`op&WDgc=y#ozG*`5R2~f)iq`Shpm(}icU`(-b zdnzd1D9yTV)eZGHP@Ck7@{AsQ8jR($l;t0Dt%Y#e1a~-IR}xTL$+=gCMvl}xS(wnv z@rN+PEv@lp1-W`&*7T-Qy55&m)^__Yn#0e2i~r-LK^EkLGnueTt=juap831q-rd)K z=>=wWcug5njQK7DXWlFvTN*fi!K+!$L)^6#(EXaR_spV9eS^}lzh~1x-kOv+f7G{g zR@xDg_Psl^c7I<4wVPr6VG9K#2!T8P&llk(*V%7`gH0a-tZl4Itu{qD^a8ak&U5IJ>h?;cT4FmH~S=}*EC01kfTL_1HJYZA>L4f-V7A0psQ9~ohv7!P$hcgC)e z&*fyI0F5$Li4KUA`<5Rfp<^+IPMR^EKT#gMSI$U&qg{FHkG>xb&VKjRKr6-RH%+dWf-h67R|s9B8TU^vFs&1KA#? zMwG#>$t;^7WRt->J$A0qh))pp&4U3nLMEeq*J`MRdO{yexYY^Fqz&{*wFlEVD<3FF z%&<%)A-6JIaDR;LBV{YKrBJz*Z#vEjp`U6GO*$;MQ=J^EDnj?W5PqUi;-aST-f4?x zcx%J*`)+KuiMviVI~=5K=g;ry)r{%-f~;8XC)C&rrhWLRY>udQSFTdfC|`Tc$;Jh{`XiaTr&|6S0@}S%Yj?#v(^hhtkMn=^%seKEj=x&&0op1PIX-Pl2TNx z?iV;D&@!A2&mzE*3i+txE<-!#(I8ZEXS`Z#wI}_tTBo{AuQ0^$1`Dzpno~T%A@(Fy z>gvwY_bsWH@@uHY2YbDL3(#Xdf;{`3Jc4Y)gTAc6y!QKnqvjVd)A7|^9Z9=K2>()X z9CSapirt%k9^9Fam~HPqZS#Ox1CA}6g6f}?m7^FunECM&7Af}<3)ao|QU-j?_t>G;~6mNnG z%qR|nl*vbYa5>gQ?lb{YSTy+_MrW*RpjZ0Usj!XTzP9zXIqMLRre66o#62>&lPk163!AwNqhoSpVN$}=%&Ay~EG7zTWzi%3Ixkn}6V>Izi zz@Sl)SIe=6w1943Yr}59<^GCf4l#z_?;?p9Zcq*m`QZk)HkI2ZIZ1)xsY@MViB(&p9^AJ=!G7ZhK9CsRw+;3( zVEa<6i9~kr(eV34-+cTE9PD_d>ZX=57=t2_F@en3Es4I-()4LXW4onj>v@ubLeuOv zcjl*ZV4Fgw)Ueibj~~=*mi2TX%>P@4xyq=i-P^dRcfTh1<2O zwWOEUvdI~Kb`A4pz}^G7&#ZzA8bXtJvqt8NG|~Hj(&Ed3Vsa{Q7`>zdf+u!VLz&X? zU|d7swfV!R7f(%k;3c0^^%92if9;mtL8WOC2z2|CRe=l^e6<|+0@uktupV<2gE|&0VLa(1r#K#S0hF~YR#}cwmKdEMWza){{^LF)vKwztXO~xWnGD;!+ zBM|G^-2Hzw-(i8*w*-6Y&jZ4f;v^dsxCk}}_x(}ZiDVr0MJqY4%rFW(oMZ17(LpAb zp9^0)4BGRvHR8gZ6E_ZV9`2*Q&*UK>@)nr^flnzLuHBDprKM9QZ_pxjF_DQp?>7Txl!qrC!>GEv zCGiho*w8AISmRCMm>&KR1AgsHbRhx+3$HTDJcy(`!uKujOSfyO-``e|3fBJkwi}0fCWZxwsf@n znbBBGRM_&>qWW62x4A?8_dIF9X^Ccsd8#8QY4k;Ss&*@u9Jy}pQXD*Rx?I?!uK+!d zvWl>}?@^1sP4eek-e!Rab`u!EVgi)XJwcSYq5ReRLM?sA*uwB20 z6Px2%Zi|{HHZSh+>i%Ao3Qjdg|78G1K)JuEq$WN8f$$K;jH_HVE|fH0B?u_Z_Rg6U z5 zJ(MPY<@4`lCbE&W_xky^TuZ(>rtbLGtwdLFN9(t?LU>YBwrelcUf7 zVhyxk;r{fJAQy=G#bq=p!AY=qD<-n6G&g~O zx5{BXS9LvUf)G2prouFi1P27H5XV$+9+>=we|)~G7v=j3H(ZEtD709g$<;Cx+^q9? zF;V?o{8Qe8H*FeEIYEDm#Ui3SB-{&JMN!>a3uWmc;86J-R>wtPTPY(@pZchsHr^b9 z=reDJVY#H$LW0mUzM;jH>PAOQQw-@9MX>Y=O*@c+PQ9^d>;~df-y#j4n3Ntxq+W5| z>W)(EdbklnLZueHCIH>T&L;3tz>Ml#tOR^ipdevfVz6muZTZ25HB}`u&w9HOpb9?cjbGqd; zv0gt0J2U&F#=TqWwY&Y2jFVb7OPn*MAxdhtK6$XJ;+NX`)`gJj^~bAYy1#YsQQLc^ zs*pGq+PA|y_k!2#mzeo-(jank=RV9jtO0S+E6#c(^$SjGCa^LEK}^`=!1+a&dYn$I zM1~6CJ-0|dS+gVxpu+p(q&UiD8orqas8*CGJ#ze-Qd{ty+kfPU9f&hEz}P4D>^ zBUGbisETuOfZjm8oxhScU+krc)_^C2QssN)SW~x-?h@11JrV|`V~`=CK+h@$a zwAKJNmmgv?GhW4(xV%P&*(KPMNJuORrt42;z;a3|hX}sBiKC36+#DC3300Ij08U`e z`|)+JA&COW<^7IS^Hj1}k&)X&Zy<68&9I$nCdJy<8~*lndiFC1?CMb=qBekY1I%q;%mbtBgDJ`L zo$AX)imzBMHS|K1n2VXt&+TY{>y4C?w@f{f2bm^KUq+*>`#iO#9<5~iWX&qI;vE5l zkj^?8DAwQQt1>-M2~9(2l4L2pg!_C@V)gv8`GD(ob-$}NGt>;vZECX4@$PGQhs3nA z5W@rHuf$21xtmDwqn7h9m6tqSb#+uPfoh2JRyy!U8of)x2X*02-CFY!cRX-0kOp-| zsC$vv>^n~f;^WcCd`QpLSY$*JVN@-}@Z!OJ@=zMAfVJElwWE*N1Ge}$+=SRPQf)||c>MYIBJf?YvwzZQ88 zY6}DR0FJUuGVbalkrMahTEixLdjr-A{$+VLzQP8; z=Wjp!GOpR=fB@86c@t#0@>OwQ62GA7kE z0_S$}Qm^oVp&4_QRw$uiHBMXd{@IIMQA}8Z|L7Pzdo6t`otBv6A)<)J(YJ3(o&-sS z9y{R_;!vPfnAC?&5Y-udiXq+5>q)X@W9!#V6k*sL2v;%pI=2Hq_&-f@j2cQ2GQAYszP?qn}lm}rAp+~m~b8^R5$Y-gJQ}G zy3`XO&jNi*B8S)nO)?@`LCizhY@$4G(5$aTkK@@!e>5a~^a&Z2*nZd4xFUE7c#BT~ zNw~;mZqS1rGT@LhwQ27-LF-X|O7aNze%DuF(Ou;v5A#+lwj;_gI|pNX(MC6rIcFl3 zY!es3@y1(ku&lRfI}|vXXJt~ z(+tRhq8ia*D<@f*h^oKB3PqA z;FY==i>*cf>xy2*+HVpNtm?Lu(|n`EF1ZYJBJDQZ{fW;sigJEwrLnw*-yf;N@SfmS zyt#2O@3fwWY-MEW|HeWFFXhQDR_z9LF=(cm%c?Lh{aDtL(m3^P{OAEgK713^%4|E! zXOIVbspJr9)aLBNxAm0S-%VOIUEa!$H6J;7T^NKOIDMQYzvMKlwE%|49A4tUT<>N0 z!hi{2XUG5^^|=PA)WO(5D)d$F=&u{D)>R=grtJ+!f`t}IlvbdJq)7X+p`J9WL5eatWH!;USfs(YnQ z?d$rV=R2o9v0$JPW;*ncM%~0C*8n1iC6YVOe0zi1lhp;zJ$%DtnpN@A(n$ZG@y+y_z1CdCRIS*mdXG|0|2@0-?a5@Uc>z3tm)A-KyUwX6O7 zQUI?yoIFw*Lp?QKbzS<^I!g(+(*J-xs6+L2Rj?4y1UuFPP+ylr?gqf_b2J8~#B2>> zz6d0fiJbR+ZBze!Bc^)B9u9AXc^Ri2V$0i4-F)SW%1c8j_No0=gQRnoyKE)XwX6MZCm`&e3JuimcubS>`drH?xJv9MhQsbq^u zKb&?~k8)#-j`7+uWADSlH~qqDv*-ogVlLBQK=J!_pdm&|COmA)#TS|vDYgXbd=Rt` zAR)9K6E-ZIm1%n5N7%p;&d-gWgXt$n7^cWic{4<)>?O{+a${tIU%QLf{^?~o%|;=o zaks&Oq)>>q6RM0hH#ZxTE>qrTU;nDfFJ7{{69y}yt;G7rhMQ{c>r%2lMWF&n%rW%qhC4Ie=EPH~WQ-jTISK=nZpGlp5&)i(^DS2*_$5|&|nGPvP+p-Rc7k~z7>9HIkz zAYg9X7@|sV8N;Lx<&S&S6UUJfc5WpB{C}^85`#bW;E;lBKJht|R(&}&H?vr|VN42^ zEpumcpIS2*b14;U@{X5G;^Y{boHcpX!@C^%rFY!ur69FSmI>xxG%H-6d(Bq;OT+7{ zD)s5FXgq-7RsRIF1ymi-{&hwimS`T*NQhE{T0gDm%LvX8P_h|7Dsjyqg>w68mUr?W zYp(?d2#T8PT`Nn-YQ#rD3E~BlDfNa_*)hrj=DNAvLe&{af?$!(I_>Coui;z5qQ$$t z)A5L2C?|$|rO0E}T!S9eebwMHN)M9-!}h*J6`=Pi;hGam%X=M`dQ5-zC>5*MuyK%9 z=K1vgpXh@F?8Vx96G(q4M@Z8d0&h~8Z)PGprdaNfJcp&?!uRRqZ9JaxRBjGyZc@5G z`e8nAoZ*-slB|qA`#0tR0B!Hm>nm_{V>+DLIp7#}YzE*D7_VyC8d7$fGt@x2!uyTGTEXl2Dm_MzjyADb5r56Ve zHJ`@&e0yK>#*0qOYhiEYhcs>G{uRhcCvO0@Z!O(WCk-kuN{jx=ShsPD+c4wN8M9r( z#`NJqa*q1sg9OVT#+qUT?Y{8C-I--13Zopodu0OY%_Bwnyz8?$DX6c{gE`D5z|tK; zJVQJ2K4(fgTK`9{#;eoumkqQI=pl6lZ%}H{8ZtrX55(f8j`bRNsPb0>kj1-KwVns{ zrF}b1_1Wr6=k)KF*4GceKjO#Im22q^pJ(txG$cimH@7Dzh|g40L$;Ut>&t$j_<6;L zUml)R)0VbQMd(#qe}0KT&mpS>JIGg0cx`7rc6w)ZruLx^?%hl{+iPA_7}1s)k)lGo zluNPyv5b~Q3t-^7BS`#LWZ6B_Ki1);E`?~ML4@ux7`^#`dQ5`tmDNmo2`!Rozy`|; zAo%Tjr-bqjo{7KKKfio?O?OC=ul0R6X9pC%iJM~5QbE7rD14UCd27AO?QjFVkCg9_ zVcuZD+D!I6Mu;d5NC0bk3DILVr2qh&3{Yd{VnT0!0R(y1zIhwR1y8Jq)(*F1;C53R zT+ca7xwgx&YMpiRrCo4o!$HDwPzNKilmASBgI7c?;|-gh>UO*`0aZ#L;HqNw%pAyr zg*S$aOmz!+#DvetB{%zp2FF{lWfi*|7M_ES8nDCvDKFxnRDTp1+WvOKuT_hQjr44i z881YzGc^|(8O2s=v+t-3S;%5EA|hv(4xBlbW6(}>tdGWji@RD&n_amYzdOb-hbX0T zJlc0K2QzeOLL16<;+7jAs%)Z1gDLX>w1H7fd>n2Di-+mW71hja>peh|thNFx&5|qi zOW*@COfU1Zj9Lq~X@2*?b5;Y{_wcbET%6Gb(Uz`%hnao?WMO@QulBbW-aFg=W&O$t zoF+lfz)lLgjlJ1yVVo!D|%_ zeR_DtMO)sdE(Nng(*BBXiynS(;@(kLw&cdQ^{;Pz(*AXL_VVoRB$rPz>#Y#Zy(p~D znxlJ&8UOWQZ=7!12l7}#!0}>L$Q9>?(Tz9Ns8`4*OPW4>UskUUoh$%e@WeX(FKm{M z+5SODa9)q0$968&OH~6Fk|G;{SI7vXe&J=DY`=&M+H5#ZVGSZxznZjkMYDupVbN_p&0Z@WsbJSZs#?jUW0$>vXK zjp;e{40)CpLnn%_f!eR1-;?M-uXEgdN^dex6hn1L=!LFt#h3_u97E@I&UbnLQ;D>u z7D`xo=`B@NrP`ez2>AkgUPX#2lhuGU9fuAONL@OJxSP_p8>ls@buku|xln6)^pgmp zT8f@me|Vq`UJ2OJKlJwhbI=KxwOcA>EOR1e<$-bMo+c(XH^t$05)$*bD(R0}v6|Ri zEu+%Qe5PvMe}1nDf;1C4?3-N5=tH@ypb;?7Tr#B+;VLoaATIqHysWwoW*ssg8>8=& zP`adtgp$~;@tQPp%j&ofK74vZG`8#bqt0efzgH zc^nJB^gjmyafa=vTl@oh9dbt_eDvK?RrOekM~o3^s!3ezpnLCXLv&3|?sb`MO4+pM z=l7s*RJEVIrY}ZnF3MKLx_J>1J8rY$lw@*I7`b{}Yc|pOfvGd{B)uE{CmTL%g9xwe zdD-WMR$a$EQVbZaM)3kEYxM}b1w*t=9ALI=xFR^_1w!xfKxS;)?~*|A56$CH7E-u^ z`9Pg(HVPJ}mv*j9R?a>4JT?8z#+f?-j8ZltHR_YwtZoU0ehz{+BN8^~Yf$F;IsJZ2 z(x=sxB}=twXg=sk6dcPDZ>QPGEt{+UwHZ3MawK&bgNIz1Sg3y6q$x!`&jb<9$K>Ts zKgFbj1xC0r$W4Q|+@aSNrj56?;Q~^|R4(Q5n5v}1ANe7w?;Ukb_{Bim=ti_Q=M z_IqymU}p9F%%^0_rIBzZumOR1F1~b1Jn}RWcuWr7?ciUz%?Z*AcQK+?!)Npn2s`2KDT5LY2uMD2a%U0@ycy}kBwjJ}fgA2kb zhVI`xbK{*}{f!6KuUmsK8mnFo9yCYW+sK--D0^-!8rXuRTfH0Q%Nk6ZiHXI!o_XV& z2L{$7BzE%IBfYpZB>f?8S!bj#LM7gIp%W7OHP2|gGlPOtpUWl>)@q|YC@~76q4Y)Q zsa2adFJOo_!y4=fX7C^v<|yRU;yEOWfhw20Kcd}Dfi2_G-K7kJl+y0lp;dzohA2<< zgQ}PRFc2RaN!jt1Tj{WGGZz0y)xd?hV@gJrMWZj*vQ&pO!jllf2=%cKEe|~YE==B# zWLqUai70o5Rl(I^Y`l+yYJ=Mhdy#VjGoXuST#EH&TJU-*`YtL~M9YT(A=AqN$S$pcqFO5SxS(k2DnD?}<@V&I ztD}rs56h#Ia*Dj9>AQU^aUz`P8z63=AuyvE)Yz{a#zcCaarrVb4%cWgWS*Ct-W+D` z?z=uF4oLY!nP|yHTZS(6cf|&`W+HjHm@&|bWH?|jSIcjU$5<}nyT|U>&k`pOFWV(f-|6v`&t373jSDn^K`n7OzU(CUWHui(!(hlYi3I`j1dJ3g zJcl8lS12B|nspLHH9u1yGOKY*QFdmMH-VKdtHOIx*I}K;Li2Ox$AjXNrhU@_+H;E)EYQs2hr~(Mf zv=v$s+RlEa%7MqCu`k@<<-@>W#%mPR@793}2pai>qk_ZG-qNxw1~6Elw=@v+$lg2OBG{;vaHHwl>AWL@UZ#A zUe$_629F(GgCBBcG8hvM;DU^aH1e%#&Gt29Y$A*vGeDW?Ecg;ATDq(851|#JEd@-w z9))u4eKUI^zyn*c*kY}c--F?WZGSM|8CMG7GY67#CVXl&vN&>BT;qkTj7X zdS&B))~SxC#!=2I)KG|cvhNpr!-1Ql)Aj$IvLZDgLF#NF9SHxdPI z1o1=R2m1xTzSRZmTVRF~3wK;>8LPz}c>5%~2MLRM50I41ZlD^IQ@X(GXS^s^&;Y~rh5AaLjeb}!5v2Pzi5MLKF_ADz;0Z2h5L8F4pT$?@u59+dS)9weniqBm6xQ4xd>ty5J2bJ3fBO|uLTcr z7s^Vcme!p(T#oGGL81*_Ph>Q_2 z!{cE9X4#lpMeJujtd=5TUo7vN*JgEi)ZpyLtq* z6aBCXRIsxCVG2S-Xy~i_jr--hb^$=d_-(8OzjW>Iw}ATFO^q?8UGgdiEC#~hq@{{g zLvSCxU<1^S+hS}=pjb>VU==dhddizKGObFW`*QYu??jewshUY4!t_!S;+e8X@0G}wpc47qH~h&Dq@px-K+QA2C2)vkqoFC}s%@9B!ZA&6K` zO`4F@<*rvTjm+Zu|Ad`wmgT6bd=+};L+kU}94 zysNv-)Ttv`2k0%b)2CcTiu#kJH7OoQvz$Oy|y z)H+hA#;ovP}d94xppu4C00NN)?Ymx;r!8_o3)@6#;4xJu6AmG@RzDJfCtO9?Iv=Y5+-C+pyyCoNT%jfWS6Bjfqb^m4h57V(F$lcU0Rw zR=kw;b4q_;Ki@8sR4A@eHTrv&G0Pj2TQ2=@lA$CsyT7Yb333j}yw&L(d@MNQL#(B^ z0EI(-1ryNi3=BF|*m+8j^JD@$O0G_z(E(iCMew=Fz(Kc-S8{H|&YcR)PK z62&yEdNG-RefAK*YIlm5m%Vd`UKUB5a}LkIF;3am87iwhwdwsA@LhU*-11Jaq(4N@ zPrpIRTY2jl;PpK~5kGt;whQVYL*nZ+@P$qhY{0R>Vn;_Xj(z=Z0+3^-t&eCg7&w^W6n=^2JQY-ZPc85V)&@H>(;)7TKq?omfZx0z^LSqwDIJ;9_99(1V zlC9eXFQ5-E$g)FPlT5P&9I`QoUOH4H7aDb}|1`>J8G_!W@IwFu!D1*YQ_l~oS>pE+i6_A#(Mm;cO=T_gaS}I6S&@2Y zGU7G6goJ)V2HWGS!Ejr>wz6ZG-jf$s@t{#dgcQU6(6cV_;}R0|7CPGdriKuv87G+B z8sJL|$-;ES-eI>9kuey_8!$UeNabq%nj0)YDf%pE1&gF9LR5|GDE{9d+p;B*DC-8W zLdx335vM-&Ro(-#G8Jeepri|>@77B*dP;+Ebp!De)0coR24EufV$PUv47sc95d&ws zIdp(ngBpi{gD65;PPpOSe~pvV zmL1ZLzD99NgmaRG^W`Qta=P&dm6pkPHl`z7!O1I-a!hmW5^C)V0Pm;oAthqV3`wg) zk;yAZAh#-6y`!UiG%23JGt|{n>RKNXa_y0cMc=`SBI0y-=m5tI+aDlnfYqn;>inly zqCJ0ie8#;#Xm?d<$Ebm6*^iRpx=JUux4t#&!R^zl*0H^0?5f&?$lO5QxQYcIUIU0p z!(b}6CP&ImQmm|7=uZu&Y#61tu5RT`$xj#!OKBBMoy5v4W2bN*z2L>PYqlKFgh7WX z%!Q!2014H&;v}veVRdLDzV8(vt1H1k!8B7k~#)Cbx|Y9VNP6Ef9) zzk0-1*|>N{xok=fir~O2;c)9u^|ZVDsFk0#eLz~!xUy>GwgBpzI^|t1+q^`>&ja0W zOQ}9ou15+vS6NPSxtFpcmeB$>Db$@O1}h}iN*3Iixf-_jm{r}h7Hj*7GGc}jOw6!; z$5|g5HA6I+-Kq6ie=0cbXOF5I?OmGXd*Ku^Y?@_eUOwdiC{_zuget{bu%iP383e^` zKM`*jV*A}aGrl|+X@602Seil<*!QwFvPtn3O#h7kV?=I~QZ%eC{rlvZe!uKYe?=fSD~0C{G=nYkb#q1_x=0tBLiGqC3n&`mwO5XvUA8M+^8Z;EV& zW4#0cOeJWb5;Dy+09lzGnKcr0x2BLYoy-{N@P5o?H5P1Mo{NcDmmhk;cpG#{8>b!X zna5A*?tx@{KtZaU*G+Bopcnj?h8Gb&bQm|MnYwHcQNNRK`gVp5EA9KD4*5t;s)=_y zq=*D%@@+P896h(CPf6Hlbz@C-biiDxu>84|Yn3EVgw?mJ_Lq7Gs}@e5RtfI%x>#&5 zGNBcHb*dJ?0Q{+T`Ga|K`UaWwP3D-(kCUnS z*k`9geiVuZh3V5sGHxy|;Enim6mCra(A;qIueU7PSvX}Pkamcq5u){ta?(FppH!=# z(lR_pn8WPhK@ejAC{7`Xzz`;Cx?ai)v#8@r`etE0Csn< zVHN%HcxhS7Sgkr{+nIz9w|>}UfbcXk(Bo|=b_dN_>J#2Te>=|pk6V*{n1?3u9D_2GWOb^7saQK$C&Vcx6Gt<$>?8X#aU7g(@BhY%!I zNlZ1^s%p-qnb{D`Ra$?y<=cH=NK#`vz+nRf)!w5R%{+jM5wX7ppUdjp$*i|AHf_GO z*m?5av1C#jPkrj#l+UiZ4%LrdcO%!b7V+TYt$3((!iXt9q3XbMyg-n>eol^(lFuW*V!c`Z{?b97u$k$Iq|QCGW7@SSG?Om`w=Z^6!c@8YHT zsjP_^g0Njg_Cs309ZcQ2&6kFzH`jIZBX)e||pRgY;Ofu58En&!0?LLC=5EYOJLr@oZBUSmT*# zJ|vTUHqXU#@1WPF$rvf^+>)!jI?DP2~ zU>}i<1OYq@5tKf#x*u%*Clw~iH{Z=S#54mz<)iuo&|kF26jQ&IpH)MuHw>2xA%?j` z{>Djt798RL!6KS+d%fvg;Td^=6XLb@9hC4PFmvJaLG}XT@lC z3&hyKSoMdX2HI!Lx$5g1AmW;Z`tbIHIDP;jSUevu>v@}lui{{Rr+2;*6V0tqbX|_y zmoW|_gX~U!A2U}S8-zp}+GzLELkGOXa6~Y75+dHdw^I>tymdASgP2xg#M%Cq3Z|bc z%IWbt%B#*2e=LP#*RELCnrBj*Z|@nL)?WJ4%Q4X<9<=M|Ke_GRwUZZnU(E6I`^(~m zM6>m;T`}UH0S?@V+`B{Ui>2%%0#X;_o%3TKU&-i0SqU->>NzPx*^p@6Ys5lbEtl$81UB?exY#T)4#^mIsq9(-kI9IQ@Bnbx=Ly+DA6ptI$Y9gH$SnNXe|N3v1V?q{sLCw++ zl~{KE`H@D<+~G%8c}-GmeY3iB!}rySyKywBQS9XRb}}KZIq1{jC+!-QRS*OH_6k^t zf-8BuRsY(Vq7~w3W_{_V3jOx)$xg5IK32sm7zH-pG%rm;s;@p_$c3w}pE5E6*jUd~ zL&hyFh8kWmnf*k~PVm@C*rYydE>qng7G|T0H3h|_jt0mZhUUAAz&V+gcg}O?t2lqw=*1d+@yQR3N+30H+M20a{4ioB3lCUfz z6&`@uTBLnh2XF?m1WJcffKq|+vDBy^W*y7w+SgkJ`e7x)^fWd3&OjDY#x)enrk%m# zKhiAa**?`ZTsA$A6!rne+Lv$Wp?>erBW3xGU^q)okfTZ!p4$V& z^v^zQNHo24W0&mGeAUde@3P=h8mEZQaq#u+(L^TrKXJ1xP-_Pz==mEEl4XvJZy~$7G+`*& ze%JY5P2d0w2vtt%Wv--IyK*QaX3SeuW(hOeaMtUZG~hB zS=BXD#3bLcsz@l{tNGSj8@Sh78dlzX;UWlSSaKV*UzVpHe38%B&#w4D_z&$5h9-K) zL&L?4X*+MaSGHP1K*=_EE1B>^$YR*}7&8qZq{LnA_C;ei@gqgksx9gX=ADTJJylg_ z=ls$2>R#(D69XZ1Xf1@p+ckYjaL6b~e8A+?QMUZlp`JiTTWVoqQNLOJqu6p+iiHeC_rzUU3uLFF|wQ#BzELTkgsc9E= zTh*}&ueeazk|0?mg~fQ5UXfRAYT4U>AC9h<%e%95^CfRq~oppmukhiORtZT=k!``JE+DwUGpZPZvGr(5B)bCf1%K#LZpDMNYgI&Ia;;al$)xn)VSTZ@y*D~eV-Z_H4YzAEZ@2;Dz0AIchw3>$5z^kAA9%=!z(NC~ue0%e-0K4zv zv4;7qd+bg!5u3O6vG6ZFUWXe}!^yoy;!Ag=rAE%w>m7jXjq8X-;e<;`Nfw)wpv&Tt zX3PvixbVj-=9E(XFzep1UtI*YFQh>n)mxhLwfgtzIXI18j_JvWJnZY8;sK(-WDQd4 zU(fBrD`sKfP9QMp#O^ooS+i`!S3YFsF*&jSoUMqp_CG97EgUB92J~a^J(27 z=e=8Q9GYraNG;(q*UT3+Tx+jJqYbJ6k(doetg6GDXUid@wMl|78Fre?f0sPUQ` zy6l!>48eKKC<2W*7dAi>1L^cQP*`k-x7jlI8rm9W4fxa)9$RwqbmgNLVqKJ= z=%)==$!SM@ubLi`8M`Y)$hxWZ5uZi!dEQ5n3=b7DmPvYM`JOZfabB)kmXw$v*Hu4< z{G}RAOyaE=-{L+?*Y>02=GM7aySg#n*SDLk%b!%NpK9%u-fBFBmXa6F_rxND$S|j~ ztfdA(GG8_PmX18En3-!qWnU?Zpui)9xT+VuBGG2E$lX3*Hu=sTxB3g`;6Yj2WhJ6| zdIpob<8Qn!1f)CH3c01(hc&%y+Jt8gwb>I&yLyu^Lx z^-j?ISqhd(o)b_z+zOf#aPa#9cny7eHQT9sE6;P!1ncNji^Xd>9{@)JTy-*&U0sgR zDHw0^1orIm69f&H8oJ0?H)p^GjxFDDdi*S%F5R^0(Yv+IW5qUl_CTd;fq~iBmE1rC zW?DnlDC9;xLIjwGAF^GtE3XVI0BbCasAZnAB9_NM&H-#DgOfIHQWkh&t&`kI!b|GN zT#oJp0L*YMG;5`yM^>Ww_OkkT%vgBHJWhWp35#}fN+CkcAdXtYlJh(y9Ag3K$ znvV&G-%tiS1nJ;kf`5HUq7<9lye z(L)KjV%V54p{!@^R;!X0&LomDXOnTc;v}^u-1s92zBP9V&J4-Lf`is>^&uJe%@ii_ z4e6WHQwj#AdOSg3ELg~qjuN-pAiiKB)XIetZSJ2r1**fcNrz(Z5$Lie9j zz}*XmmI?9KRMRTusn><%R;p_Ez2;*2U!L-@FLW3-AhSyZ%+-|N_Ql(5JHZdx7gqXU z$V1Mt7AhCmfH1cvuQvh}lkof0Y^diaHqdhaty5TwWb?&2HZ@+ZL|0=yokSl)^=4i% zqi;FU=wr;sE#=~RRGK1&4fTq3fnJ7qR_Rzd_%0J7y4Ux>vM~Wup_Q-=sW$r|qhadk z4yvbSSgoxvE8A=W!uA*=pSY4?Ybh~A^pthNg>4Q3ew)G2#g#`~d{n+k0%W6M8dgVJ zhSZ`Fh&g@3!%H-YEHH;Nu8vMSfT@HJTyNUNip+PlcM<=NOnV{9m_huZbZXZ|Q8|0S z=w8zrFSaYw(1PTemv|O8m)Wz~4tZynk7w0H2T=SldnBYA(pE#4Ma6P(Hn;ygj&h@+ zV~{VS)y#XFr%}+L#klm{EQWf$Gy1wObe`hi0OJ?>c9rgI?%}`>5&!wLdh-=VnjrmQ zAHf8Ma9))~-G0kEUt?3hk^2raWdBp6j(;w2S<9}ggCx)pAei~hKF>VoDoyZynsd$> zW?X>-`;BeLJ2PScx~$j~tR_NHXY>P@U_ ze7H|f@mi{HNJ;RU-4O>8#&>~jQo+ttu-T|TWN?}T^G#AMmsijvNa~f8`ZY9*Vc7i)f5Fj%edo1!SS(8?=@o-+Q>ql7vnm8dFC5)dr?>>Efh4{ z#inY@g95-L=Kj=!FEBG&S9|$45N#l|W4wo6(|ik&8Nf0>z2GZI3`+oZCd;!MpwR24Vomh_XST<=>>(650VW(8}y!q)*kar3glC$p3bt*el${2%hy#VsPJE+}S)5%6`v z-qb8Bk;&Uz5GcmilRlzM`J=O3h%WNjWLM&KfDy(-ZcFxdsxI3Gnm5S}b+?{>g|sW&DDqtAXshrenpf8jZY?CcIZZy)?xk%}1Rc{D0GU zteRD;EsBFZB}Zimr-uMwSone9I)!WH2H*A1-xr0gOC71%{3Zl@)$Q6(v*vk1Junhh z2QMQ-*UZQLS}&owmUT0*tnC#f0>S+$@dEA+*mew)E@cWi#mwWAAArCmnHMIUjQ5bm zbbr0mv}QegyoC!w09RSAuBnf&R@qtJo%NE4io#5fS1B2*Ek?Xv3DSdCbJR;%pveR8 zsUGi!rJPa6;yS|w@MOQ=+s3UkOj@2L*b(zg2T}O#-#Ee(6vf=A}prupcq# z0Pn-5hB?K(jIUYM7B|T9~x85CO6Q-}v?5WYtqdUi>@vucmN z9727@7QUCNxU&#fyJSn)Hk1z&y4@iB5}Wh=4f|hVeJ9gmGO$H1Vx~Ex0AEb37l#?n zAtxd=cLrh9Bkw@oM|ffCZ?lModHhYuC5H{ZE~heXacOO@LYVuQ-so7o zlVhw3Jhz+`)Q3?bC$U-M-An3fri3hmnJmrOX*{&SKAmV1&rAI-zmwx}bu5DL`p_&iMOi6tBA2MPPi?_s0gX1O5J6P zUxn&zw3Iu^(Q?HvHm<+b71@GMdIh#wwL}}fR7|4B@urB0gR8X2SN51NjC;He{ELH& zA32{q6?*ffljd9PgNx^RADOFDd!J!2^=D^t#U#Uy+LNz?-k*(o0eK z1B`VKz?c++WZl$TF+y{g*wZ+V`o@`!!5A~t8|c09ehs@OyHc%w_Pb+gkj%;eq&;3G zClNjr4*GDI+6~3xfAJM8CN$PpSZRGV{AKzQfuu{VqYT-t*U%ZrB6&h3h3maMb#HxA zu4;o6I=1?dbmIj}94w(y;Re6b@A{}FSAgpAl3-`kDJ^nk`{t0M>V*rtoensCo0lFn zMrRT4RkgI>g|u^EPX)f!V;xq3&qhosU?;=+{HAifeIFLsM_jmz!fMc2pdeOrT^)o2 z<6x3aeNaGoq9GIQM93j6D#z8H$^o--c{;0`LjLbFnvxmZ3vF2f!+|V-hd1$fNhRfI z`Vra6Ggj$dgsacoksWzZvr%-8>6Gl&D;`4pRo;>S6Ocs*A>xL83NuS@6tk3&CpVkD z7R0W3yUNr=^J&$>3Bfn`bckGyLLQyaIo37r!?FL4F+BQTZ{LAU%eo1>rjguzEX~lw zoViyrB(#$2NKgQjDyx05aXskB4h6!4xm^PKR%k>LCYnHDu-(01A#Movib9E5dsKmm zfY|g^XO@ul!|Z62q=&<$nPUq@9W1^+PqR^=dChei4n*_nLulKLf(U3<_YAwB=Ph(R z&@EsKf#{)y1VUE0wyi#W=>1*(sa@@#$zqhB0_yobkZTf;P#!hgpno5p!EIT;A?^@L zoWvS@wW!IeNhG;S7;w0msqWn;u4L8O<(U4Xc$Ljk~)g%nE29%l}z_F*bG+xJ5KJ14^YE}`w zj22*?cRXip(6}>9degWE2r8bJ5N0oWGi(%2;Md_VGf>;JnDMR74=vM@eWbInnD_A6!?i+NG zXDQ$jv`*M!!7jnxMS%KX2D5NJd_w6|?lS?T9mM2|&GKsr?Glsk@y-G=S8ccIcI#Vv z2L5Y^aqEn9_(rJ00!1lf-foR)D{u9RPs!G_W%WYcDu6EVhCkeUY6~M==l)5ey^YzG zSH;O@LScyYK8d1LQ};RtAtX49ugYOC9~;xa{N!|D$A+`28B?rG{G&e17GNX9%Y?ek z&sWc^AGqimWQYGd)X&_YKWvBy8xck#tc^!~Rt~ypVgrZlEZE%cFk_=#(-SYR%!m=z zKD^>n?b5|G6aLunt2=hJZFqje2cG}z)jl;I(hn^m2{@b@7?yA9yTk9fj|JT1Jf)ME{$ecaN_C&aqJ0QH04CN73^ zYXel?jA?rRW)H%=U7w`{-FiE-Sv$4*twJNN)OIs3KCm!!ZFm2E>l6AuSpJ|e@xyIK zMyuXdO1y@q9O|T0n%n{$Q@=uchBHI+n5a8zHTX0NU9N7j#2e+2Ub8~0?~@PDBQpWx z5$RLyp=s=;@_vhX-&-^NVu{6-(F;v^_T()yx-S1i`<}uo4&9c)5E{y`!f+Cf;uLQp zABTe6r7zIaRy9*|9TZEA^u+D1*GS-%c*v2Rq69;@Go=O!4K&m|Q;ijCs+C846UT>6gw>*xU2H&`K?zaSn7wVUz-H< zSt^RjK#HT79sWl6xiKx|!WHmXY|2@1sQMq1uBCF)6+cY_WbY)^$G7crrZ*)C<8rrGtn-KfPSpCA*|VJ$W>P`$r`AI zicSUwLdgbvqO0*srP`mr&rEM%kd>h7-B_k~aM`7#TiYfZc2|X()B$R zt59Br*k|UCFQ~vxdC-zzH5Q z86_May!+B!{!<=84-fUxK?)>VCbMBUT~A;LH2UV2>E+c@Uhnk8mnMoi3^)lh=BmA% z3~>3k+&OK7G>LR4=km~=9EU70UOUf~ubS3laWWYtaXD(!wO7hLHEZvciLy}H2Zf9t z+s&3bWr^&G4;slkzDm+3Gm%Kj$K<6&i-B47*&ay`+Cl~zaD|^8>>vEz-N%{OO(wd0 zeoG0^B>kj|9|Ek1S3pYR&Fszygc8P=FA0pqRRUl#Od86euK65yt0rqzFK+PW>l^v-A@y?tJPqLO*g{||Rg_>uIX-I=fv@|c* znm9cAl%zWS>|{3v(nyrHkY*EC`SSIOo5jWD(I>3wr+il42ZM7}3pGv(eM=v~=7)Gq zVmO=LruX#+r5e$7&r=A;I|pL1oJ38dipB%G1f5|miJ>NC(Grm%DZQ;7pYcsh8H!C^ z1H#h0MZkle)0dm`MD`3!ny)ev9op21vT5Tf@2%O-Jc(PfF5QU6PzjIcMFeoHm4s8P z?!L>a>X14Wr$VzDOw&YeHsSOix|hsbznB9Q_*;h>u(t;PG2mCC{uK8qR2=$puq-7L zb`+rC$s6}>EyWu>rAK+GeU%33q>CMgHI}{WP`baa2+1tag^CWQ7(;rMH!x#;BvRkv z8)F^Hya;k{SJ>S`SF0)A=*dIOmE`g|hkhCN-(e$WzZCCR*7}Q4NVCp3w%Au+hop z3nHXJJq%JU0e9z^d6d2*CTx*b#o&`M+CV4_Sp$?1(7{^mQm(arLysh=Yvcwi_Ar{; z#dwyT;EyD)sn#-;C56Kao!VC4WZ9~DH~%|aiR~kO*<|R+RbQY`(6{sS3lmH|&0Fg# zQQe%;kRrpy`5ybBfb>DX`gDhzmTUs(Jw+f;OV=}fXE+HnARG7&__m!!s;#tE+`RRb zr^LnE&nE?b&EMYn?57}^) zjLAK~TMnCpT(VaE%b>1~q#`EP1&(tg{N%nL(VJm8i4rzPV(Jh4vQ#=Z z=)hGX^H<8UGJJ`kZ&W878rHmeQg^Diszv@VP*6mZ+sw)2t>mkOx068~%T`o8;so(v z2L!QG-5ZRIffVZLOkAxs3we3FrzyiJr$F&&baqC@m4$q*SeHb*i zs$%_!wl0OVn%D-#uoIEZ@V(S1-uLo-tq~Nc-;o!q-`(@h@2if>>})932?JDucFJxr zW5ZUHYzjjbVuQAcUbq8UMc(q_gZf)4BkSGaAR%|go}r^PCU%i+w12h|r3S?<@mwEQ zBX?i!E*k0y%9LX!d@_$%x(g@O>-eW$F`%I@iwSn;2hUNm>ZB9MgkekBN>h-jOwj;H zUC+mR6JAKmfg8T;ny_7pzBluA<-WE8#tG!{Oy@kqYt?BWq&L5xU_Dnq0ExS5dnvb( zb}iOT3_b!H%-ZhWnjZQ{veY#tXGr8tsWq0W9@+d}-WYRAh~J@F-VBuzCB1#SM#IphCLCd0K|>e zHiYC`=|nUVHm#(1_0q#Oe6e>uiEcVDy7j1lR~_X=Okk{kg$4awq1}H{lP<@A;Ps8T0eDhj zdT2hrqThBw8viKmyVs^mP9WPX0iW@#<47~UN*8L5N3!Vd3*_bE^yNm$!N942LhV+EG&^&^w61u&SQl!7Bw9DoSy*Tsdo0rS7`XmTE?q>ZSuHPj!TyDrbB~YwL?v02! z{B23?9>OsBPRK}LjzP8L-(^(Jcr-=}w=jo@nd8Ihw(_H~7~y=+yl&nBH1 z@2YeEYB;2Wh$9Y+M64)D*tvR>v$3*cfR(Y)9Jl&!1uo^fwxdRkRcmigRM9;dcAS#A z&MZ?13Me(YD&9M)-0pR3L#a>5gxwm-{@9W)DPQ;U`Yb>9i@muqj2c1uj-(Lvs@^PGQ7ikLTv=|EC^B z#{Sb)MbHOfX1##Ay0o7CyClisbdtgA!&42wy8mXGdLqS7QlH3C0^TuU+4`lY|QrVoc`Th_qb|vZe`ILaAeu4 zlwVA4{i*IEbZTE!8MH0GEE?pK(*<$&`F!bXB8xi_RDV#?TP??|=mj6c-Rw-GCpm_m zu02MH*6Z0!J)D|0SGEr-V<^xb!xrO-G7tG8U-7AD4#~aSI9yM+K=u9T+-cJZ)WMax z_BhX)uE#E^@y;HU(PYNZEYJoiZ`fEYs7E!OnSQatbyBs@+D z{lMrnU(!5W6u=j=^wGnk)UjM^v;8%*lUjQ}UvmeaU{CJ>MT7!XgG98mto5i$8@B8d z?@nE%3ZC9bL~?qeQyPGR~JzQ2_1 zK16&ji{SmrBQx3QNaBQR@fITqZ(uGDy=?ATJ<8d?uu44!)UEM1?^?UjtNxdbrHVm` z_@inHTVg}9?&y#yd54$Pk<5mTMT^%N4x5a85)td6i4GeUj#Y!qgVZq%Yi%!t;n=wi z3%OcAS?1KL;~z?23J9#DmvN^O5%yrH*b^#~*CFC7eT+x%LQz+V-FZZKUwjQ&D$@+o zoeU-G&Z>SEw{9nC{*y0ABl7gtyaqiR9O*^2D~qTOIV2aFQiU^oYmvl8_*Zt`aEu#y zm3=T{g*P-KzE_^AzEH{{PZ28zZhox|;o7&U*`as~%ewDd+9l|FaVq2)hFANdO)y64 zXFpJC*1N)!5JyNZti!5_@d=wvgUL(hLY{I|I|Cz<&GS>hmsw7Ptuks!MN}s7)~jGr zK;N=py<%rZ{8|CRQL@*4uR-PAg?qn8sO$81dZ z(k@_xoO)+{oVEv)(!QUoKtg~ZLltCTkZOS1+sSbEP$$?-RXJ;z`ga? zB^;#3dNWQifn_X~YMZ2QG2WeLE`$I9H=1JbaQy?kd&2Q`HPf7-3js zaQ2UXs@lUl#!D~;$X4nxzxBxjxjyt~t0(}2(7&IGb&mywa*>mP7*5Tnn*&xI&g&10 zGIjaYbb}AgG+&ya+CAVQQ5)vdM9hw-4EcA?)4zv{ZE)MSrno+Opqah%CXZ4GAz0YI zM)PeXP0(vLXZG{Y@xLM>VEn=KzNQOX`)FJ}d*A}M-l)*CC9nR8g5;SqW@kqBQj7=a zIyloq@4JDK;2H0Yc}ZPrd5mU4x}0di8;@f2^eZMJD!$Y*9fgISja=f)}`mE@afd~!t+rgbxTQL)&3!32=`R_c%E4Kyd zlJ)N+a&5I0gzhy}Lsy3buaYan5>9^O5s2ra?Qbs>apJw_ci;#=!;0wDjL2fjk4F$Ap zkLbHxF&qKVtN5BfhK?oV+x2i3+y99y_7M0y>63nJAo{#$ge$W%It>DG< z)>+SNa<2P?U10&$(cIOg_DfQ(6lzHe$48#%mtT)Md*gK7*iJ*UYIRxxtBuMzl-@p6 zfmiU(x34)6BW}p+HHaBjP5rz%1q;=_bO|2pg17mQ-h}<>66YY5kp+ajHS6+-NAt$2 ztYRirz&;Z*_{zB#D1Jx_AQ0lOqfe}TIgxT0ZGoa;rD?Dg3#WeoNF}Iw@q=7TNEGR8 ze^`lwFMW1eFl9;49ZT7msh>-LV)hs%)es9w0}}jms+{{}LWZ`fPZ?{d*(Fu$j)`a{ciT^~MW*FTJ3(qUpm#Od8RgJ#gDt$a(Kfj%N8 zRy!V0Qcj-?VS1|JyYwW%g6DBB?G20WkV@@;{szNBj)=gg?(#WcN%UB#FgN-*jnoDg zR3|2E`%Y+bVp#_%tr9ZD?!cHelSfsk_`^=~PR5ijRSzmlFxue&|yXO3ENu2od20;Bd=!rrXf8)YE0Auuwfw)YN>) zH+1Ksx6z|xK@H2i^6H$9N>(^oooae z?MnxS<)DE2=gYhhFY*wtNfg&yEk1 zslJp>R`FuY@qGx`&3%#)L{$tznly^CUndL`euivcd8L$da0qIe(;&>fqnCp|^mn9EUAYUZ z=dJE#oZcOc0YF^U&XkKnQExV1*1;z@Tett}ko!C|k4Ds~_-`#Ks`S4nZJ5>nkR$}# z0BpRVV&XKW|Eb|kYEc?>iQ1}jlV<)8CD^4Z|6vLUdj4y1vV#BjT8Y=U<-asn%AHDe zC&3_DhT&W_EG^!xG+wIldGQkPlIC@`2)gAs_`1D|qrBb&{TJVmdQCb(Dy#ls^Gm5v z?&s@g4+heN7sZn=Px&Uk<|@0$6k7pM*of8e22yR`iP}3rf^jj%{eSg%L^X_ZXZ^dd zEv0r`ZIChxL_-54LPwn!xt{4E2-M4Q*t~~Q>q05HeM0hiYX*T7O5K0D1a;#iHq{tt5I&=Ma8<_N`+J zK{{-OR6L0TSh8WUvTO)eicrR71@gKY%^I5F#^L#0I&fg-4&u9wPhIFBEIXOu>i)}yiBEEa4rTyEkiy;R z8%e2ZqRL&&9@s7?R^xr&*P2_Zq+#dUtMCo--chL`m6tMiHzh!s7^c3^c%PGH7Xl#4 z7&2X9Ms^KpfIWotxql@Vt2w|TmjgdqX!Tfz>E}-M>5w!KGCjW4v8g0m2PH}9%&tWrvOCTTC*GmUP0jCI}BII}nq_LzVU#+a0BbvV&TkiOB2hXyJx-zCkv ztWBm-|5Nq^9r(h1n0A8J7=6F%IdoHfL5w79iK1>9YN=eAp==eKBr613iiCF<_fxq7 zS&cMeFmp``pUSm+mljhwY$7O=xMS)=7w&4$iDz!_+fu!331>BNKh_DMh3rHW}M@RKsdXY6j zHrkNAJNS#Q`@r9Tm5YRzas+eOFqm!|dI4i9q(YXV)%BcJ5>0lQ*;v8tt``IF1(*I( zb#5>dw>0dBl}C`B=o!Kr*|h{a;oA%oG+}#b2iw-1ovy*NH_gc!7#(R<&-L8lm9dRJ zZ=Dr~cKy=qu{aP+hA_Ep>ePJFt6dXndNQ_C+yj3Avr;kYt2qzA^y<&p<3)~!^i~Dr zNs2W3Mx99Z;wr;*ljs*z2;)86OkpJO>fN7%rWb7`oJ5LGc}XihBJg3?DW(^s(b>t= zs`Jm^+vpBgQafQYaD!VvH#<7hT)g6n-m{>HU|Dg)W!rw;imVT{x7DAOUNv92^VwMW zET;DE8Zs{48GsDaFAx!yo!$=;N*jnd(1c5UFL%qgTSYFxlH{Dk8siYQ4 zkq^Ww$Cq=ObPUV&;R%F1!VyqJ|3&U)@5bXsQDij71Ht6tAQ2lxR?dy`@`yM4h+g_#TZUNe7d%} z?{gS?VZr@mjjNs_mThsoE?3mdgc5K2ZpVHR8|H5Yq9-HlMN3yXD-LYCRD50fsgPt! z+Et%+L<}!ojqz2cas{!>NjYQWQ>TJb$=(W4A?UW5^e&qx{=J2KB@P%Yn-JA2?6Pr_hN3Oy(6xUQ{BGm%^Up;%J6Aq=D-J-7@1 zL8P)tg%Do?SF?Vdgz4P8w=HIdFLJgy*A~rY8G}0F3GJ|Pq5mXqbjZ0 zkWq|^s7orNnC54wsa0=3b$`yQkfeZ7^cP*>?b#O5hM_IWF!)4h_Id~?3EONf0B=0x z*8trHg>*<)DRTawoBPHWLJQn5-ULL|7W=XWZ~<22Ah|NEj(!*w>&aR;{CC-~vE-2W*!k3Qp-nvZ{fa!(7(vErFJ2d^#CVxK2k zGm|Es^ac+Mqyflep}6x$d!jl9zmi;;5gaH>-C)g@T|Izm=WZ}=|%^(mvziIV1a zbgw}T|Ev9p$7*=gh!;0}&pW;IE0YIxZKWTxq8%p~7~I!v}$dNS1M$!@RmU4}*2QJg}CQcWC_1DSu{C@;aKw-L9!qG_YS$!|63zb+K-yVt30d! z=ggG}o`&t&ml2p6@*D~4F z*_|2L_wWFL_UGnbr=o2(osB}Jt_4k`9ODU?q7aWVFBf=Y8rB~$am*#6)^Ysf>{W?JW zl3m^nZfY>x3TQ?x%44$_-|`BgD!H=+SZhUj@HxA6I6L>{AtA#aGGA43I#^4sI{s;u z<^6rCi=PlM)`heH3{*YKDfMyn@1#Oj>B46!NLXA@-vXV30XiWD`URu$Pl6Q%k;Ln8 z5-(rrzp?e|?5f9nugyIwzn1B^F$=t|zi>rOsyWt&r8A*I)7ja*W!%@1)h zc&z#gdb_Y84Z`RhyH%Om>Yq!cchl}mH!6VlODfeQ2nW->=qWs8IqfcA3CH4tTNg;m z8@41(cr{mL@L|u;hFJ3<5IUX_;U!TbtqsSNEDwpGA?ek7o7&a)xs&7Z3^T?doUZ(0 zvNNmPymva*N$X{ME=gp(Ru`A%NTnK2FkYs2f@#Bg)@Q6Q=>$Ud{=;6yjTnQ!abokp z+`MWh^@+dL5Iq@y)op4>7>#mSNRfdf)|Jl4Oi9@`KmXtXpkU1F^iYji3em>P0Ajcl zJpF-ye5=8*mCn?!ox=enI;B&M<0h4tWH!*SpH1&zgr(R~m);yDOe--x0ibRT_H+4} zCN&)wetH|M_8?Y+P6R50TWT*Jq#j3Gbf78ZyE@_X8$9Ucqf8#1#1xA?ee{({46%f2 zJ~gx+?DOq*pQ}8?HniGiBxNtzdLVu--dkc*Ti#x&|MBHA2edM(K(4XD6b1Nr;YVTu z@kOAgj1p6w1fo{-EmUEhp=yy}U zznr)GTyjg~WU3c&I-h{?O&$w6l5~3YKqZ^zTYx_G3^NLX1kN4ovdp+hKu;whd~cR7 z-S!^#@#gVj=dwrf!LA++-6Glbpd4veYG5J`4^VKKf-tWJI(<1Ss-C&vX3OyF)pj=Y0Zec7Gtr?y? z^(Gx|4h6f{UPto&jsGq6PHn~(+qGWT!p4L4S-vKcyouZh-^g(-K_5y|Zj;b;{2Lb5#W zJYecue6u2(V;Z9gHi94M8&E>5w@rON)$&!kvf0ZG8Kaq{`Z0j1RcwG)cQChiY1{jq zah9K9*{AgH&BW#N+!zc|qKUFltX+ECA7j_@~THp>T=;b;&{NlA*%a77Jf_fB`K zjG;c;YeTVsT#0XfV>w0}y)5b1)T!;y-*P+T?A_Mh_&fIL*L-2FZPO_-(df&gzy8)r z_#+2>G^P2KF$x2@t4qX9GXH6zv56!t9$XH6cdop@=+ZQnqzAdQQ`RKrgp`T{g*bE^a6Q}f zU=y$kFPD^%3iw##cTFKt z@MdHnt&;f*yB-ePi$TxSUiWMiD@%7*&#HByI%2c#^Pg7Xx<0q6vX)Z^c8^wAj!;%2 z4$Y4K?z2Wc8tq4oWl$ea&4IhZY3My3VrHkqd7lDWj23X;#z`OQ3efka9-nFgcVPC? zE~OI(^JzX-WJ4rdFxqJF_j=frl6vKE0Zt@rL%Pu>n6BVqxTl&AYjAMQ)u4 zlE8Z@+g6$*%xcK-3Y(+2n`z?`#Q_3F*BhVvjIbA8t0r`)FqauDfB;t-s8eTo@2WW) z7f*vv>LKK8uggwk1w03~6C(Ag|9FYgMOF?##?6M+4GGk6jM}A{%m*8%837rr4qv4Y zLy8)3u-NY}_W#ex_Lq0Qke<{G)slb-+Wj~tj=5wEWHvTwK)nyAD);6O9eNs{gT=i( z+jaxjUtX6&U8O?v&ja@$O6B9`leaQ`pk)OiB*WfMRHDpCJUM*JP&`H0|T>T)4jqg4*v(*$kU?5+0@lTwI$d<|olMqA$Nm8UsNfb8YP~br) zI6^Tc;)&BhT)c$%_H0hpr2FlDAonZbhi7`Yt!q_?sTsmqNwSH>Rc8&avBaS(~i;mzQ z>pWLnEp*7r)rzP(7|yb(`!0-BiZ=X8et@=K=Tqh>F4qtax&|t!TJ_zPmY3CqMw3^( zH91DNrR7oqpuC7hY3Y5-$M*m4M^72yJR~SjS=7|1t)H`LGT9EO2`;2B;guiKsq54W z!nBi~$kL5=V`Cf@3CfUW9miOu#L#ukc8W7y0ExDv`UgOnuuunQq30h!B2!%UX&r_S zdJC(50ObACzT3V=uad?i!L_d`CV`%xy&%OwwB{XM*b?J;LLLk#zAC#c>!o>&1@o;h zrXK_OUL&(EYGV4Bu27{8pi`gr+@v6}NkG{#{oheOArtBYp-KFZF|V_#h3_lCiZihr zF6zV%8cj7Y(5za0BySj!%vf@zrl*{t)S|vBV#JB!R<4sqA^?TGOIx1ZMFG2 zUAzD6#5yz*P7lzi<0rts zIeVX=puk@$*zxD@Z%S)8H*6TGOh8YduOLSD0oTCzW#ho5vaB749`ErW4hLAI_ zS*dHg9DgV}Y|3!(>gab?=^KjR6FNFcNWK=pLN|>!_}rPJjFAS0{h+<{rX(nrvby~c z6b0Xv5j-Ig!lUDFewobOgQTX_N4%{FOiZ9a1TXnqOzoRg(5UlU=PHjK1;T&~s;*9S zK)Gw?nlXmsg+sqit&!@un}s7y_tJ2sx>%5r@z0u4m8VgN*rz-_TmbKQ_lLVZQK?cw zEHAAIZ+RkP5((aX=^FqwyEpp7+Ljj#?YEF%D|Y_mjTQr%QD6E)Op579W;EV;Er#NV zQGfImp!%{m7Y=A_#f5Bak5IQDS=#3wodJ*G3a`{Fz++5^%q=vrMoZEbXMPej?RBzC z5phX7OkT0^*uoK-enY`RP%n1Jnjn~%w3%!@C{*acnaWbWy!8RVIBkTTe>5`L^Gy@; zVjoZDq7)!1-M)F7>_m?={0LbW4LxGpfW*xYL4HfFLPD&7+(+thXg-p#va5%BDbmOc zo0~&{Wwglf?!d_z3`yXW2EZ4CeWKuJQWI_lu8?zfY#3^M8e^=EAvfNg7sOE}? zN;%xj(7vqYCRs$yfVCVI^k2Lvku%otcQPgyho8@XS2)BjpWH>KKkFy_U}z29mCD`_ z01YpZCo7hUw7Rf1eO+_hFii&`o{QFyfxMl;g4?1X4?siK+#v1LGc(RG1`ABT;h~4b zV2lB1wgbhBw@l4?yu-K#e|^1|}#}Hn1AfBC6U=o9j>BiwPYA{#LForHysS z%RjXc^l)>c!w~^0AKBvFB8CkGr^|RBL>4uE87kwXoAD5QcH;xEZqr82H*BT3R?-k! z(;JfGU6<7B{quMKs z)E=h2 zil}&#Sa#x+=549O&fcgH4YDM>Ux%ptu8MK!_0;9ZRjq2|X4!r=lDfEd4Cj_9mQMrH z$CyNUq=vPBzzYJ%eyf_5O!2y*&O9<( z@$RW^ZT{qzq7a5{(wdn1JQ{>9ZdF7s-jiDzAjcr=tYQS{_-^m!?KecTeMR!@S2@RP zV~T19^igl}sVvq|2CHer>vCIpIYNPza2$iLcbQZz&qx@arD zF9tsP(cd=D#UY3FYMnBcKp9}sXYh#Nue!p0hNi#M+cR^!F|w15^!@PVLhgPO6#wF) zizc=42DgGn$SFvi4ns_Lxi*C_y&)wl)jf}?FFWKE*3=(*R}_-doTU*T)?b}!Jof8X zIxZc7s=2InYHG1nZG-W$P^Ka>X zrSDS#le(x%!@89y46-zgXd|LWlAbl}5{B$$vBRxwQli}{-eD6n#>8K`=z=0*)>zm| zSuUuru8u3s!24mvT1nA2M<5z=`~0pNBQugdXiRj86mU@u;U}$p@6DIjJ8`Anc0BCc zOa>C!by-%iK}SlFcIYroLzir-)tR+Gw1yn_X!0~h%?DoHn?W|mxmS7GoCLYo8^FuD zv?BAreAYCF4;*b}^oMobvx3>EQR51GzSxxZ`0?VmuOX1_i~+<Hso<1Io&M;8mMD=hKlmRu&p3sbrS7n5M^RHs3}tP*9ji4#%Q* z(xC=aDArQ_>77gE`q|<>>{A}%U`^?GPn#S|kI}+W$sZ0lednuXw?-X{rqQfwxmhdJ zjzk`qC!T^J8it#MCJnr}ZbVZ*&=$Iu8>D&+gX{T&%FSD(G>u3wc|tMEsG z5^)K2S|p|{)Hp;u@s4W1;(KUA9%XQM;CZBd_b3<*3EDzDRQ@JV0@q24N*id^P%39| zR?&On?K%gc)fpawS2=SaPnyQxG}-T0i)8t?GRdh`KO{WyXD(7`eNco8c=g?v@xmds zq~XT|hkh0EaRBi8ma7o7Dnq-pz!0}u{(OE*O9q~^#y4R*0QK>YtvpX8E@AHOTloB4 zljATQcECkh7B5(n{VTW@2F6F5cQd+!J3!?-H_AKeQ@KtqR0d;%n};DMh|+Vr{({u= zYMfMnP<}bns)4zGF+Tp%w3^8&4mDHyQ?{LqMO`T;-++WWS(Os23sfaGjnU7^DKzor zD;t~%31K8?u6-F-W5NzQ1P!$6UaHW>RJ09vFiaBz$-&#NDU7Tu=h4?se?tQl>{Lg4 zF~uRi+siv^gU@e!UN*nroL45#n5$T1@Xomthm_!QkATpzJjo#WX4?y()RwYDy_`Sk z0tw;hDs`^f>Ha^amihmmqHZp}^FK%5kAcq8tG(&=N8!v@9mC|Kvj0OrO!OrZ`;R$$ z`TbvFbcN3UT1w^K*wRp`Rb3L)H2b^8EodcN*DpGNrf5t{H)OT}gW`{?GG0nvpP9()R+CVEQ?KaABP1xK zH`Fgk;-CVlQXCJ#T^ehN%;VQto+>4?URM14v%#eG0(J`Z2APFa3}jYbeAma4Vhjfz zLXMTX)tT3Hb~j3u(cji#D5Hlk=a!lG&Eoms4LaYiV$Y{$)L~r=<8dydr|hdD)oJ_g z^2?peLmK4Mhg9p7+bP++zv)OG-DrM(pcH0hI_Iy)Cl}woHIQxA$(~n0=bD?Wv-N5g z3d1#UOXH3G_U8XZ3*%yX*7&*~j|6te;ZX(HyennVHb-us^R9K?Wig z9|Qs~hCUd~dFkLo^nI3nw^nYE-ZqJyoRG6FJeNQ-?d9~Ht8`A4cVLK{XuYDx&aOEwX z2*}=fKX@x`0n|(9@KRk)7ul*C#ZnY>ND_5m#_~tCJkU_Crk$5mGny(+l;FmYk$k~& zy2^jwX%P`4lSlTzm#w6|h8fXHW6UVm@eiG2Pd=vK@PCy4`>#y|9-Z0g%LKGY28Y5V1PF?19yqF?J zCGxrw#J#{C-bs&~d^UiDM;a0;aQG?H;|M6gp%d!9qX=)Y6ScawHXALL68>F!xXPqb zQPo&J?mB@-weMiVK*T@8OZ7Vc*{+%#WpfOMGjvpGz*1s)yviDTB<0#GN+$9@6wd3> zA-=&uNb)IVdE?+A6IP4K$PDi~$AHaT>gNA%1J5C;@PeLjO@+*FTPai;uFKn)smyZv=75UK_ zuSq=J+HQSjQ=6_oe|@P(osf7q6yT9KaWgT|bm3q^X{GLM8b;IQpGC2u;%4x;{Whby zbLtr1F1ybbkC@2D=YX%Q60z%FLCU-UKS030it|=Y5Y+3V(I=|56{#te=FoVN-@xS3 z^?b{ilm!$>*#2_c3GQb++tmB!f+ahPPEWkkyAQ%H-c#ODSH~gb!5}E;UG?Zt|M0wh z?o*?Fs>Rf$)aJ>|xRxC5t!b(%wio_GvRy`%PWP#oZxS`x!f1sBFUb#A=EmSbyBZO> zxA=)=wbC0+tyC6?AMP-z?3X&VD2OsMi>2sK)5w4oFz@gdh+1lh1N(T?)r*6 z(?5r|y@Hy72WH)wl5!KmMlM# zhT9UYmeN+mLk0nbk4_$uE(?{KTedKH3#CtyVP4Pj^h)qL z?D1g&vitbk6J-yZ%8F06fb7$u@${?O_5VD6Z)7+%Xcwp{)P@hlGL_J!J^3un9l)FKwdmCaQ)%^% zU6bXL_jwn#b9O{&hn*u1?ie2v5Q(lm-|_8O4FsE30~Iqgtp1NDf3z=Et^N7?nAtzo zzZw=~6m?7Jx7Q@vzS0tI{WOV>dD(g7TV*o*h!$i#{74?&9jrk#cF|<1>wBrIK`Yfa z=K$IAG;kn{TPmjqd{de`6t9xzn&DX-47rD?2vOtAV6-Eoj`@;FWnbA0_xoFM<0lmpnLL%KdHGJ-k0L)y4vpK}<#4`n~is zF2+bD9;?)XhMjoSd-X6~dw*ZgdWSc;Bp7aYLRGCoyB?~Hm9#nIKJ4$zlApBIyurW! zp)MPY=mW=Ht}p~8Rx>=1*3G#ZN-=0@#-KxY?P5?dKvlBO@!dIa#;o=+NTU@VL;h8d zT)yzBVn+&fBR&T8m1Fi7zbXn|)iQqS_u@wyY--dGHy@hxs6+DzF|v8v0wfF!iF!^x zzLnA&H9o|^op1!WVd+oEopniBQNe8%?^6<8t7f)N5M)~xYmFYAd}oZ%2}>i0gH3q6gmb4erwpj$DfOZ~?QWiorn1;fBeD1jCF7tV5A`aYar7L4_9(eVm z=>}Pp?RQgtmCvw5!(xeGExLl%tn{7u$cz}K1bf6!3=Nw51+Wf|4z!gy3ru=7Uga`g z2k@)(>-wi(VQvZe<(b9{x*VDZ*gR`r2M8US0k5!|wk!|tB);3oHzBYUuzg;oCE2cC zsSiRV73`G@9{@`c(ytQ$1QP?0 zzyJKbP3@ik#*l&K$W8iMnbryyUEZRfT9vpfD(>HxH-d1;UHvCd zyf_q}k=aax207TEFYGhVpw}=tj`TLyQC~MeYX@to$RbR2`uMEb zzKkeO`WsF>xRz?ZYqt;g_SSf39Xmmmtt->EW}-2PKMmi6yx#sW9^Yg=l%&eN4WyMC zym%{Re~?606nE581cG(FK_Q#zl=xriZJ6(%HqBXFq+QYQnEBB2kmNz9E+X5(h&&Ft zA8FT6@%@%*JbBfjKCNRD-j}}-6x1tJ2tL`Ia3SM{;CGp@n!EHau?q)PE?k8(G9OC( zSfbaZ)Yx%(BcF*^bcBJ-ttqA~r6F~BB*s=4m5TPm(l7Fr5Udr4$0*_zAz!jqt%}-#Ch#e9dDl zOtw_um7C3}5Y(pDB2Z2e1z+|oR?bZGL?G;53`Q(Wa4s7H!yB>&83k36{o>a^M}&@S z65r{GrP;JexVs&&w1G(nUMfBCsZkvG#o_V-@-8r3DB1Ss?+z`Eb&R&Fj?V5f7o+cy z4Pz&*8*IOIAl-G0wKk@2fMGx9K009v5jpePjlSe>*PPvFCxfjlm-_6Q8r}!3vvfr~ zYIh9252k;YL6&jOT-iRLGq>iu&*ly`e{UF~Vsj9~aFz-P>KD%*?*uP+6MK%NQd4Yi zV@7gG%vi4a$_>}}L(XF&KKF1-c89Zq8#r&kVNE^hWHHp{Ad*|dAc(=;X#U&?>EGYL zN#8$wq7rld6q^m7Ti!}}liIsfb|^7I5l4JyefN0j*6C3%20@#2>2{wr%h-vY&pbS; zDl&;Q3`y9<7jEQO#;Q`Bi;(14Cz^b`TmV28HlF0gT&2yzF?(SztIOMwdlc)i9o+-2 zdLzeNw)rgq#BUg<;h6L)nUz}`n}t;r;b3tJ(>g%8H9k{XTI@WCN1_VdZ|PU=dKqvMgGb>~rGX0S4I%dJF!$0MycuC5 zirar(p=B_bH!OGB3>av{*27*F;%ti?1Sd-(EsPi27!lmdxQ6;PCU6#fC{9ETVjfbx zo;)ax95Q1n!&`BFIe30l+sEh3XW!g{t6Hq9xworH;NH2Xx47`SCCOSd{SX2BN;4U$ zOH{*T#A@1jvKI1|iw`9?iNlr>Q>_U+R&_>#WnoYbs-wwWQ&iF92E;k#@d@GP{@E)L zk750846?U>;buTk!zr2Y+1g2B{jl|j#iEuJQ0J!URr2i-`y%&U5uGP$S3TQO%^Z)8$HHlRbaz}5ZD~`jWQ+< z!8@_N>)qIYECK0rHYYM~50Z>A#G2(zF1K|uZ)fe$rx+8OwMf~mQMQbU0PxtJt&o4L zIF>hX0M=^5Wj%tJL=((UM%&rZ-{|*M5BBP_@nQ$Vwc$m9`Am4@9$FP{3B;gdt%$i3duplVji{iYqruqFn^!xUd- zyKZJtij0Wy;eNaZp{TcBUI;6FZgyimra*`E~5xGV!>+ahb zdSxTnWLGFdSGeZDy8#Yq)s43LZj_oLNG8p3liuLU85vyFQE#-+fV>om9hL)GAQu91 z*+gLsRF_D&&Q&!m{jpHinS4%QwbLu7c|P-SfyVj@N!8l_{H?U}2He`25nNxwSlsdj zD>UHel7Pcd&-P`*9{3`i+GF;LXec4B%RLID?M&NC_lC-1B|#BZf+79pSzHL`EaRwf zYpM-e7jDKa9=WfkMY+@9!~1StA&ae59%PW0%Frcjq3~&L8$Q)vg4%8FRcOZ2UCu+| z=3_5jqN3wNdhbj{{NJk2HC3p#tLBS$-;aNaMN}$T4;iwUxRk3=%gm(N#pkB>@M+?% zP?u$OX@S%Y2y-=g>)U-}ClK>P&^903`&^bBCLN1o*qykH_!`fQi@Otk zZ}r_Mo*jAJ9X>skK!7!SD&M^S6o3EC|DnVua$Kj!4me9v_*L2Q`Mp?-A#}CO12vSQ zu6atAUfQ7se1IO>j?EsmN=*6Z=i=?Ytv~dknEWBjU1qiCYBVRILO=)UCB>G)q4&~s znsiS#_Jt&F3(g{n%fk|KFKiqtDO&33B0mvIR*60#L-?t@hrD9D_9PCQqI zI00FgE(g2H3ob;lsxKl836c$^a)ZvJi5-*~$8y=A-nG9>^U@dbcrx%}lrbhUekVZ0 zxaCE)@?pSK;^t$pXknL$%F8`|PsOW){2<^RLij?Kf%CmApqJmfm@L7Z27O&9wHgR_ zhAf^sO0S&!WW+06WTh75fJ!Y6@@#oJX%!Mwpyz8=dt9ScG#wmz9Ytu1>n|_R#p_6(o>K4}pg)cO=zQ z?wh!5hHZI#Hxd zMA==ii}5$pxk?TnuNoG@Eew~x8-@hHy=D4`^|bNbKCC&|A#%@S?4b{=99as52~Dpg zRI3ui@&fb8|1>rZ)&{_A-^isrT)2mT5{QA>p)XkGnqB`ID;d>-7gp*80tb!+MkRV5-Zx%m7%H{lI9L)pv@Te~8e6E-a&`o(nZby|oL;`zM(SEL&e z7ZAT}>UgALTURlkBxwu{)P|i(afHv4Mb`4t0DE$7qyLj`q}7Z$gD0q;htaI78h1<& zdQ~l!@lXo}3d1z7>q%y47nA-l2Qaqjg3uCkqArm&?9E@*fgL5^4blfVO%^T}=RTlj ze9g;eKCqkrFSkNRoC6)USvJ8k58Qj7`g1K} zi-`R4c3>E0kK1Vg*5rJvOq8OKAjC_ETDj3tj7Y`4efoK5lWekU^ShKZ-)qIy<0Q0J z0G4-=8|FrozpQjE=YYsu;;D8GChWJOTl#5yk*ndGZm!mn;sWiJ6SoHJBY;Au$0NZA zpV?A3X{eL5rK~wTExKd&JES!UMFH3YX(-hy=dfavyGcQF+_YbB$VCL6Oq5$zRwRYD z3~RYHmaK-WitZ))UPX)7&0!CK5afA`#X0wVH;;SaOoELXkSL&%SLf7_fp%W(<8O^u zQ!43_mdffJM4EbeE!B3at%O=6= z?CtC|OCsy7gKJFN>7N&A)=W)={BiY-|Hh;1pc)Ahmm2T29K)g@2anojXnW}uk!4jE<(g(BjX&%K zht#V(Hwoz>UFFraK0_ktlRP2+TxTh5$wL=H9u$CU4-c1A1Tp}qa;%=Mzs**fvrVI! zr$!k~?0_P|Y?R6Hs5LVB7$MJd=m`r^>(ImDTRD*;Cr)`9gy7X6rG)T! zw(M+0?|6tgOGXBLT7rNE-A|_LRr}S@O#BOy_cMn2wxsct9>745iIQ6`lZBOSYT}n1 zo8U=8VR2o6Y`yd*u0A*{9^HR@UMedgLbcBI&tD&0Y-G}=cVdja zLItCSAx7u|+uK=Gk(S9FqW3fubujcN(^y7p8nqZsM|)KPmLFRYWrn30s+S z@uhTl;+?1D7K9aaH)$$&fd$ZxH`3`> z*hF%V;9A4ZqR}c!X_clWc1A>zsxs#MjR6>oxft@G= zW6~ej+@`*1pKg}g1q?n1)gmV%GL)GR5(_9KWZ+IXfnAD2qR^h?CKS;JeC#}Em}6Vx zaIO>eNmkP(KtuNLNS!+W(I2C9C?gk%mGl z4e%hO9-;r1Rte}=!Pjks@SZ-WOxVDMgBXag+!!|~(T6}bicX?A)Rf&3PpCsLKWdAV zePXmJxybNB>G6mIBsvMoX&OMHjsFdkA$^8n0fqN)eYmyI0F5hTPQ=Pm#aVUzIOu|w zwJ<%P)~&xk73|;icL$c<7Hc{(4TF;a<3Hi$2#jg*qAD0qJN%4RkQOwD*yGCbMLQ4b z9vP2}PX-qSj&Zwlwy3YtQ|74eR|I^=LdabQHM#(0V{Ne z*e!-MzW+b*^dW`WO>XLE$n92M2PI3ohaEqrQUE%VO1hd&ZwB)2oA!hE@8fIE%s6~n8HC) zw5dbMiyyrt5B+0k=17;8n?)jG?NIvGH=LwKcho?Nh4RL=yak4TbQmx+!_On2Zdwi{ zI)q)^GBV0-=jJpJi7u-7&fPEj{0{QwdysZ3+kV!zDlBhC>lBQ9T&Cg$8Tr@w#t3Ep(_dZtUO7&go0H*a{C``^5#6> zv543N9&4R2uQN4pprV3Ot^Tp^Ug=gT3v4Hnzi^@{GE(9JH|fsiYm}DHMf5|1NC>V^ z=-Wb&oetkEYuzqz2PPdKYTz0aAWX_+TFuP$+_HVUomv0>cD|l-xIR1PxlxZWIXF~Z z?MD^WHhIyr4+0rVjEVW7RJ}G?AT#TaVXCxaaRkU|M+mEV>Igi@JUp0mPH?Tnc>RHF zdpgt%g}T;1e`zw6oP4d4NRMv-P68x0gah!Ygt-Y5+=RF89x-VDgAcJY+)l>zsTBa& zVzo11LSUzhpgAa&BpboP^l6#kB1w8Xve$1PXRdbS21FdpRBtrp$th0I28301SamMp zwM%(7yKShi8@Ww6zu{1`%=`TB%&o>b9`@MJQbVg@w)o-hjp@IX(P*56fgO#m)^{{2 z6%~X74?)K3BB0l~3-lk7SMiw-j;j(tK6KWc(ohj{jl%O*6v?xUMe?92dSMJ2P3cxy zwyECrJs<*$ge>7ihd2RpDcn3>Gka-@1?m7SvirKvkrbXF_G3qK^rv}624JEF#GZCo z1(vm(G16ypEQVoV6k#URJ4x76V|psgu7HK3uk>MGd$y-CBi|2)_w85S-z zAF!iKr~cd50?u9VX%X{VE z(3M_}G#LM(;eWtfIQQ4~BWcwQ;JnnbFo%}&3z@{QEm)>{}V*BHkzk%?#A+y_s%Ymk|H)z_p)P&F>9rsFdXc19u( z5NlGTO$s3-sy3G+I{Lv;xI%%gUHvSpA0@$CvVYxYF+M1+;Z`cxCV9lr3b71XJ8691 zphY7=WT7Y$osyFn&EZhHswGsFO06l3L@L$kNe;t#2V_w@#6=mFXreU5YhtI~XCY{x z8bgCNHE6!#0v^sviI>$dhWa9(%C(#*e00nC93-8_l`#mO_m$b#uTREdHYFF2Jj)T? zrrdJ4w!9QYL!+*eZb}`|cH-u3{XI~ZV{t%MqwFS1j*bg^pW!~;C?>90^obULw`U~?QrX1;~w8Y z2S|M5vG(+LA)e#?Fv~J=kV__+NNClKeOkIyfMTDI`pVhz09HwHhbC{X-cvv$d+xJM zNg5CJmWXp(zRVpVwb4-Ip^qrj5JoC&*fIGIOCe#G5-3hC%GnSQOZ=o4bMgXDIOLxc zc&hhqqEAVRtumh-zlKj(Au`5aOk- zNAA#j;S+kE9X_PGN))tiP9}w?;lL3#@2rs37PEoG*zx+t;t9A%n01{H#-w^GE;FS_k)nN;Y0`*#*yd7jK^H_eGOl|8}5}xilx~QYmN% zpGnr|tjs|-1`&jrt63#pn#x0z3={6qx_V9xw7||J6r7Grr<-y3H^oQtrHcCda7tw% zwVteoEw%1lwt~};@*F?jo7rw{dQ^sR0I82+j=$eSi-(Rh&!@>)AThq+ky^6_F0FcB z+2xi#FwBFJO4fb;MLdBtY=D1~!wp~OobdhgmqR~j4R6+eY}E(F_<9G_ps#Kvk6COl zF;JTtGw>Xs7$S_ih)f;^m-AU_oNIF%e!`G3n)=Rw6qz}(Ip3lGV7YIvC**3#h5Rc`Stl=G7eK^wct-)&9xPh)C=XUV$1K)$%M9=?RB% z%UC4{sKEiqIb^}necW$+i)9?&hGbI}fPN^VR6+O1p+QN6d~jIaWM>|z^!Ar8np*?o z0io&=z(yJ~95WI<+qr;>k2e;H5Ow$w+bmmZw|%MAQ6I584W?gen2#JQhQS14~1jtanIt`nT2luhBgurK*Ue#0{3HoQ7`A2RwPVmo$({uR1(s zIkwitW}VEz$N`eUesm?o;fU704x(&c6pq9fkN##dRlL%8%#FS_wvye+*XA6V*+~{p zY8edv_MLU09DoKX4YMd1uN1Nh#Z!A=Kj$EFm#7fUta&_&>ok8ywrl0q1fuRe9n|3C z0=JO*4`rA{$k#mw^iu;R3t0{bf!*)zD+typYUhdQ^x z%ADl#rez#Djz zOTB_3)C&$1FS&u^#McbO*~&0Iw3|{b!G;PC`Dj%!)80EG@?4C)UfPp`LaG&(&C~Ce z5<geSq{H*F_;>y+*I(Aj`TxUq^)6G=J(3%Q4NF4?>6YFp#-R|+?kZN zQOy`O=|7+VE;v1f*R|j8rP_4|q52fB+LoxdTNwqHRPzp4UIDDvW6t$CRhG2kX zc7C!HrS1oT<`VcrkL6nUmR#OUfu&q?!8GgcjK;5Dkr3A$@;yCbL$g-3{TU#(IU9*O zGy)4hJgo$D0)pJ(?02v>>2a?iYt#nHC_utZ>N)VQJNNd;9nGw{i(1-qiYCDT*cZE@ z5Fxc2mxgM2G?$h(JOWy~2pvjnuK?YBm;2?H*w~a~GVi;u*cUk=8hAG@e-GE$PGuk4?C5&8jRLN17+K&`l>Hwuiw$2J=Y#oFBNBDx>~D0x06?63e5 zRVS-tF}pYOIw@lg$A99TH@b5p(D9@;HLsDLU+C8J=kG}$9d6{{qNNbSE)ksaX?V+> z_O57<0)&2mnuj5+B23w0I&{<`c_kN_OPH|VuhLP9X*k+OhtQpfMhpdEL5<8;s(oNx1_Nk!{ z1eFMPQ~L%TQml1NwqaqzDqc=ene1WA^s0iFeT*SR{3jQDu4OH2XB&df9b^K+I5i6) zL8>{CN;=~j-YCFw=^k(C*?}LSY*D$v8pc8t`HGd76*}Wnpjj7B6w4?X4O_Jn(>4PQr-&0FxLQUf(fAzGUE6Nn>BXWWOLtOe3LQFFw*j5@!uj<$OleWk=QL8@Xz~Tdn-$cR@>=IF?SckEg~As-^#L0Ld^3vi!gDUGgL)od@DRcK zHK|#9Inc0rT9S%OQu*WuDf_U6xnQ?p?9C9E-O+&CyE-}U4>mj6Mutb@U1fgL1w5@I5;&=hb6stHjZ5(@GICGlHduwS%CMOZ9kT!obd z8%E z!G3{-h47_}eT5wLth0LVMmnovEW3&@Km~xZ764ofBi{E|Fz`K10rKBrE6a`2OQu@u zRT>6bb=1#;pWq+@TZNJnUcI?V0hh%q;6`Y|e932S;;AQkf^&{4nW0pN4asZDN=)#y zc%PTyp&qE!{3W^vj{9t;JQ3^Yf1&+Szpg$b!W*1nx|LHK56zRWIxvi!*tSd3pU{?5 z;EYpe`q8t^r^JT*xM$Ghm5Q>1^{reJoN{DM?|h|xvKEuD_gL&gJ$H+^y$^A5=RQ}q z-*Q2py5Y-AGkJ-4{XTQNA>PMGgky)=0QSW%Dqyh2PR8A&U_KFuv^A}CU=4gy;o(bTVmYT;EgtX9>S4&rXO~Uyl2e)@XiyS)yI(uA0i2Tv7>e8 z2*92{f5Uvk7uS)fKi!E_BALHOW4sCNh7{^W9fU0oFNmWBZtw?g^K?&%xzfjr4Z-&O8xsfN*kf_F8Kze zl42b>`UPP}lLjG&j^Ovbi}vip1CqGSZ5|5;ksS7DAvKF35~wX3N#no6TJ_beFByS- z6D;o-GMB=A1G%9z4vovzrdP<|4~F~oK>gC~T_f1aK@0$jL9Xl-pAa(I`0@&pAt}#r zZ!U$nHQ1%DNETnisIWR`j;tD_9d>poZ5FvjyPoNScSaV4#6#PX=6o4?^`_SQSv0P2 zRo0FBnBvcR>ju)UtJ@WJ(YR&C^sKme|ILq&_CC5`mm(7!m#+LTc6r^?HDtDBo0-Nu zoT16!Q&?N(%eq@ksxmu1#A{FA*+CLkm{#9a&ZY|;cz8i&J~EVC5?_M@J-1K8P={Fn zZFJNwItoi1_{&r3kbK*%rYAus`wZ!brwRwX`#t^p(+0K_CDcuGc|%b!15fZArsd}WA#H95xsSAUhu>U-+DYTJ??B9(D% z3#*VE!95Qdx7TnD;d%30N#fzD#%;WTZ}dtq+SS9P)qVb0jd_6;Z@%9E$Gf<_d{&GgLISfUB^T&5 zI;n|Lr5@3{lT$_I(a^HyxuOaW+hVl-T0dkit8R^8BtO`$9p@yDU7T@pNaC3EkB)YEe?}|)zT_L;KN_@C_-#{qZ9Unj(l@kb= zr)l62toaN)9xMaCdnd;@Tvc1u-exM&3HLUPhoP{1U3}1`tK(B zpAf2ng3d}k*nZ17RIr_(`BOobho<@UZF+UtUMqC@o;+ZDE$uqX@A$KSElV9ca$i8K zG&H(~?SuT1czw|HKBBK!aJ&ts0AP&)m)BCz8MHdEe#KVN-AmWS@IZvCQO#%C(`vHy zvcpH6w-I6i+4OTnt{+Y6OuHDE~SdFLq&fSH6vXJgr$J-T8qO`Q(6kwww8O`O(uMlDX3B;y-rfv zN|orNO;=9N+F|H@&QAr)xtt0J`g_|0@fHOz4BH3mVTl_soK{^1-efn%=8Y#ItXIB> z_(4#biC(%>d`)uGuD*P3#9)nfh?Dg$O1Eb?Y)F!&^GxB|$b0+lRy zRg2s+(ecqcV3LBal1UzV9nJ?oR`zz<7f(=x%l9t2B){>1=yP-fe?0IDmj7Xxig)gB zD2vv4sr2mWdPb3IW^|o@pBS~Lvejtu(w2w{k3K{~fU%)*ya|SN851@ESAb$yj~41GYGbF ze|kz-WbLU6QSQPd1nQD?Nd!|7^Kyf6`(vcu?0~sn?sa zvO<(l4imp*dNno{V)!xVXq#P%_7i-wAn}2>AZQ~%?5ix8Rag50pLH>nm=Ov}D;ops zYhDre+u;PEec=EuT8V!*P&w4ti-20yKb6XLqC&9O!EI*W4}g7Q*a0Y}-x_?zNl500 zP&TjeE{{q@gECn)Qqqi2Q9vOS$KkG!uR8K9MO9^)Af|u%b*-zn7@-+;4ra|Rs{;D$ zUApojd$h20asz4)lfJ9e$1{7PEB*{W(vY-VLV(T~e(3#cxSN#<^=)u&C)t+F!Z>|M z@O4*uF_~Q7Vi);02jUG5EG}G>lI>H!K9g!(BT3FIudNyXIrJ2R9L7=la}&P~T;_m_ zscDqG24sO{Suz2g1c8!9G^;;1m8vCsI`?eDly;1rNTW{XTC~8xxO|YK2_Mk!HkOO% z_%QCn30Zb}YQ#w~rUq6GdGnAx&Idnfs!w-%eFK$0vIxNQgHKx4axC61Wv{yW7(_5H zMUfl^x@T!p;!9#m1AWxbLE*s8x$`q2-2G%S=B#3`vvtM+szy40;DsB%_!bSuN0ht9 zOpN@sZaL2ZH+noi$5PfgSXpqu%d6Y_ugh{H0R`ok{%n%}MJ_it3lPpRf>Ln?KO$T? z?9m&=)UnuMev`_|<+p=;D}=kHQHS@~8vJ0sdXt#itP*AJe)Gh@lVT&ml8Q^%ea@?8 zP?-hP2z2%Vi!GSQ&uspp=PtTtHcon7PDAphN1w^8(X8-JPT*EOwrnA~tfkz|VE{YO z3#hMa4m#Y-y5Rg8&DsbdEMUSCvK9<^)g;Hp9OC%Xr9Kcr)S7`exTsm>adXwrIhBJy z>Pg#h1tYgIh?kUP2trybcCBYW&7zV#WupJG`ZSyRsuF~Y%`U?qsDcr6bRc<9v~E14 zB!T7aOFRz}4Ov|kCWEgE1wSGJ)_VmqL`ewM0x%g6`x*ewk_~p=)6_;dRyWmT)G=4H z25VrPD;`V*`?q8KhbGo2#1{b;*Xi+_^PZDJ$3y<1F)v%}N2^~c)Fxst8NP~h(H=m$ zv9O<1Az@scd<&%fZdZW2S)5pGP}k{SUfD)n=mAh5NL-$ivveigak}6Xl(*^0UBfXB zk01r>9fk^nF~`L$lD#~QDDkMj2dE~m6Gf?aI+h$}+ogRNe8f8^1ssK39gKINh6sSz z?tUuu>)&~;5p?n5^P_;}xntH$OXfWyssaV)_EgfK`Y)y%!xM60Q0-j9zuRS$?`|}y zmu>th04kh8VzQG`^+{r31;DB*w162-E ztjdQG0Uq^}xXmX`7v9)lb{#b7s*uKj%%>E=q|VOUV5t`~%|Myg<6oBSmpgJT^&&3> z+U}z&5L_o;kaOpzEOL@o$HCmdv&lK#TqOW5AK7_stN);GR1yX=`Be-lO6j0ntrat0 z){>lKT>3h0v0>)a9HlRUO#cVUc~P(GP+fqn1@_dcw;y{*9B`&l*X|qksw>eKxqJYMNttIxiab;|ZNR z^w+Jtg}h^Dm{`mte-rApySeo?)2U&!4vN(|=e|;_zK1**maVlK5_Ya#L3a>129>2y zF$g$NTVOyFIWx{82|Iu-XVFYlA986!ojAtUo-`L(jee;`At8Dv2I!SmrKd-Om29O5jSw~j1Q5IKr&ctQY0`m zrCrq&%OQdK<@5zImLe=K6!vtdiW(tud?bJu-hOmm1NGqyDEo4lT+)UAgL0 zmccBgQ;L-|^0SSS>G`a04J7%Zc~YBxdwx-~rkVTGQ>FGle=it=8PDk6T&wY_`$^Bu zVHZ%@u~SIvlUITLb$ghhPJ*WlYWefcgUM~XxItmqPEiT5=| z9yAd)1-VM}89Bj&_SD@1Q=|T!&We_LVG4rTq!+5RG(04Jugpf zV_jZ(OZ>j->6y?EZjhj0F`O)I{=op)M~%$^Dd92%W+_;uc7thdn*awlxOz#Dg26oa&Zi zdZcGB~;l+*@{(d3DneT5me1>q|C{M1-aCrk@kVHYmoQ|jW4N3$fc=T?KaPB1l&Pj;*aTG-QUdh@K%X}rhOc3zP z?c8cSt2|P*-d@hG3COt=*nbgD=0|1;I7Td`a{g$WcQX#$cuQer=O@tC_yR*FR(c;H z*M-sAIt01RU_o7SU$sqT&tpd>X;-K`nRtwrUf|VGl!aKYtZ{f8_I5}Nu$bl4k3<5$ z@vU^ImCabGEe;d#Hd$$8`={Df>BH4;GVJGRwcS~ybNkA9>Uw8f0ng$6ga#-tCTv^( z{I&ZY2vq!0yjPyCt43uNj5F1OWEg)%=2dUm-O-u*%d8R*ueOkC^eMf-t=TSsK?ks` z$G1bHK-jMV$(f6fOJH;a(d!>|Q_?uQeD2U!pm)}T>&%67ywywZSGAp`A34n9Ow+kF zd_nB3oB3I~5%HLp;6mNvB(C`k23+>I=u&d;PfcBFeI_cr6KUkYHHJZE<`zAz<1qWe z==k}IQiEgknS$SWuRcUxigA#!oq9kg|H0^A4_VpIvg_4RApvb7kJ|t&4I|7sq%3QhrRqqMX{+#-?PamUyM+fq6#|MY zPdGu->5`(OZFp}vtj1{L6W=zCNv}CtD~rm&^kp^_hz9?#4-I?qEK(aE($Q;A5H8iM z956P(89BlRJ)@c{1p!lsxgV+UsWidcpVS;6oscP+Z!HrQ+{>^*9o8DnuBWiWz9-?u zdj(9pL{qo+|Ki@D1xxo^w4$t^^O?akS^AN@Tv$*+=GPWqv!2ns{lib`X=gesdC=gr$yvv zAX2OPW;MApHfiY`+(=P-%~j5Q7)QWcU7LGOPw7z^i>%i`)gR=wWmS9`C2yrY9RD$eOT7yb<*-Mo5@ z#LgdXr1K28)5$P8f7JhBL3yB6SZTzeU-@63_J8RqNxytNUs@H(j8yCV^Y?;0WPH`C zE}ZNFBXr2;qE(H-gIh>GrTW34OdK6E${iloq&Nq#Z`jDEZ?%PsbP2yI@?}H88J#An z;%`_kt|dhuy+qyEzs3_OLp{BoZQLs&Vf9cc_O2FhY5d~w6@Db`_LPpDvlAgp%VXr> zd0O?sxeV9Mg*hL5#jPNCu78s6bp=*`TFQm1Bfp^jWsa~CjS4!Z;dp=fP8SCYo zI6?C&ox!*w8X&2Y(kp&jBRHfq2Dcz~n5_dDim?OJ_2oJEj1Af?!vKOGv_prNI}(=M zcxciIC~U->3m&&77uw0YscEuL8AZt8nywrSbn}-hnEPysni^s%F2B%GJ zBlFCaIe4bwFdLM$969}+673ws-i2APz0iX1I)sietWEb^*pTPaoy4BXt09b4uTm&a z?b-C33-AIM`2D^}Jj55~O8G-E$%M+XdTI6c^kWLjrrup5mFjtl?8+b~^j$p`LS!gp z$I21g0XC#HL#)IP?X*%Rv#FbP8u8#bZ;g0IsObnIlMIDFmui9iksXCLKC|+IAt5?Y zlXF1%#8>S(koYA-h3G%IYS*ZhSFd#Xv)k?F%Px}!c0G%;@1rKLGkRt#O1SzRZh(wz zk!o{71_KUG3LD!s9D^@Zdr+AS-yU~2=3-^zgSZ<(s*MtU@Z zrIhM&(wvz7+S?X-wXdBn{Qx;?c6~n~c!sP+K}mrwGFx4GrT2niEo^i$@6#tQuCB%(wH&<7v!pu^x$D437Jq& z2`LPG^(%yi*zbDf=KS2HbWL}VuO!*=4b-5uL$;sJx(%7c?TCc)d)*m9IC44|%(O2K(~MYP3o zmllaoUe%0d!Wed|x`I=Vr2Y}~FzlI5by0GyK`c6O0_qlnZewKEPbwcuOHS$2)(_z< zTu=1pLCi&oXmbV*unTL^&H>H#yNGxz;~)&R&yCwmaBFOGU`z2)a=+AU_9X5T-5@X` z@59Nlw*sKR;L(Q`INFtF-MXdk2W!w9joIr1ULAw4k*J?S{qElv^f!Egdu``+iye5NpX zcWiKo^w|PPyCZQKCIdC1Szn42eYl5)(i<-~u}@xX^>*Yw1{+8)K;rNZue2tcmP5DB z9K(ZXaEoV+rYBKax`pxGAohksVVZ)%WI68|H%1!P&%riBH6W3AF>bre5=&qb0|5$= z9bJU~an313(kA)7Zdnr)-JMs4h)K=Te^k_(K4DgvWMOv{MN=L2BPp);gT^bC>b&Bm zw-OEW6hCP&3vJ;C&ytY?9xv?8No0L13TDS7vE39B*S{BP%D-ch#2Q_m4V6jST*DFFtFCOY{pd4e2`!)_ey5>9cc3Axd#~!(B)y-H3SQ`RV6K zJxZCbvSMF2H9Z2ve*gIk;+mNq{E?*h5EQEK zwG~*x!kATkI>guAZMvjSFb2rG6j6qLC$J9ZuGWkzS5C;lPs}-8Up#b`vK)*Li-No{ z78{#p#am4g&7;I2pzeiBRjUVTq@E579_$xhrQf%n(mwQPhCKT?MSUFd^AB-N8gNy~2CdU$~ZVSaNak zbMdhh3(H5s)+N;?xZ7M(ec)RZ9ej9t--)LTWH0EwJW&>xz*^L#h*xR&L5z8XNQ6)~ z4R%^`CJlZx+@jL8t32K_x^8^mF5P+)pA*x)VnrBHx(3%CLy6CpVVEXEM*zbb{4ADI z`}*JobrPR#Uh08^fuZnTLvc^xRghSj@}e+7F-L(gCu}*V!w3a=O~d<8-De;UsiBil z4jXdrYOG|@&x49U{_5T#xeiY$D+Ur`K;&Rg4d)d=r&*nD&!Wi{YmGvoY&h;v!kdOO zS8^{`P$}`Xnpt%sCZ~Z4LO?LK1Z4A>!&a~zra!0m3f=FQ6YtIIcg}JNTdF3OA{@t zyh8&(3MOE`gOr=+d~I{cts~HPUzY^tOT2jX+zk6qTVC< z`dH7-O9k$)xxOdz&p3@^9kH?Er`GB`^%H0d8XvAa-b@f7nRM}M<{p?95E@q`q-X`= zIV9bkG`aCxIY)@mkxVgI2|e{{_n|0k47_VBJmnI38`b9kg_syG4TknjEBWW`Hz4jJ6c5=# z9nIIz{6XV~FdA13hZK4^vln{$?5PGGm?;TpcnrfTvDgl-dwP!D;>AnPs^pqw!2u60 zrInBuB1(Pww;RnXtyO8+Exv3g}$5ZoJWsHr6-G%|4ZRY8og#$R{ci|2DO$ z{-*mM#?u%=K19=JHg0B_KkbKJ-aXh29N?Q~m4l{4^cJ|#?=oGUs*^kE*i zdLzXxlT~wi>7`-ibl3zcTJT9fo zk~7}cj&xehx)VI>F!YUZ#h-b}R*WQ73m+LUFglxCRYqpld+n|UuBfT4dF#y>?X$9M z8p80yJ^({+drN~9OovUs8XviJNR~*XAs@(+!*k%2U&yBFn#PUqQ<<*5fzezO^!#YY z*$*ts4dphq;?>~R2gQxq9Bj|)5wQ^h;9H)t4IvS90Bpf~qDdiO`}`dqaZV%c=&HU+ zQZ-KDLhT` zw_ST;;@ejesV|H?w=O(BzZ z+M`rFcfI|>==!X&Rbv4j^H$+@pQNE?t#Gty<009K=Vf5_MZK(FnY48Q6vD1|QvbtK zMGqksPYn~Z9!|BGQw{R#He5}&5HYm7cQSKhl@X?nemDbo@1^>w_df&$I#5{xl_fFD zWX_v`DQfF252K`kexv}o%qx05%RD*&YKZzr`q$lAr8k-9)ZIK4ULIa_ zYNXAAi~tMqc$&RNI-v7c;}7n81+G20kC=G5$0#UCP3AArtGPSz|7d?0_Ns1qmv=dt z>NLXw(^1Atu5t~8RCpQcf)6DZz@0PUo$U0Sg$HiCd247hR3sA= z_LALNc23Zf0F(CuAhI>ux#`>-50juUKwoingUIglxGT#iH6e*;-jQ}leL|!I^(cve zLI9Chxfy5^m9qoc`qW543G$1{;pHTsSK1>iaHC1^vwgFxN~`BgWc`Keo_B{0J^Y*^ z$*s9LNrjupce6612cCn_AXze=5swmZ}LMV;;PonasEK)O3HEOPp!sRJ_~BEhwmt#xH% zP=~{j+%u=DcS7^zNPdpr0YrtU!XEJOvZ=)KLZLLG>iOjc9km(8{h7ls1ptl{!13?| zwo}B493FDw88Km)vA1DeYW+pF!8NP;xkHlQzr39bS*1;tL&DtS>!WK%DpfyHwc?`W zDZ<^xZ!XrW$d4sQfODl#HZUE9=<141_gj9cAXg@$Qt?rXlJBECnBePNl)HY~boaDv`N z+q<}H7;lYkR2?t8D!`T3E#mCFOH@VEjo_6NqC*q|cc1^JeqI0R7pT%z&LPGe>Y7h< z=>}LM`A`_|8^mZ(QD606wZ&mK13|SL_Ms`GuYu?^?)8S@!!eepo-9+pealt}f>z#M zvWEdq#{K=lJiHM;Dp?ZK|z0)*&=6 zYnfMLhno4697xr)(3-$GVbb=`HD{L_A-%as4evjH?~#OT{TCb_ozFOzJ`<0i%Qk61 zmc(C@Ja4ltG3_qEN?l}mjCFC%{YObJK(+55Our9#7(H;8ru6+*61K%3qxlG$JZ={` z(2&Hc`%Bfhw5s~P%a>I20=OxqV^Ko%vQJGX zt5tovaJFzZm)`LZ9ftz4#GKM+?D14jpH>x`fk%W-hMdyF4{}+yGUi9AmNS@PzWmLo zQWEjToA|OJSG;5tHLpb1`xFFX>kQ)+PinBqb$7#~9QW<~&|O@|4n!XSDDh$Gu@JtX z%>9mr!1GrZx;x~wa(IVZP0}4td(}4BX1=SPet{HHwrUA&o!)s0t4LvT9qA<*nn)QmXAd%bP$iYb%1Gv-2^2%~&Y7_OCdR|) z4+#~J`D)~IPm@i(l#Fs>UO?~9usL{iz-1@5~du{!Cqve)P6d#+h|8gizAiYMT8gRcp(I?+R_h%Ax}@V3o?`ZoYu9 z+!6}?^9-E~D2LPmbxSjOX3ZF^O`XPD>nR5af<_@+&pPPG22FAUcQo{3O_QIcpjgr<> z#VeU<;NS~0pB>>v%CJq}blIj}^~vkHh7wVk|G%ux&Jde==iS89Lf`3ydU$Tp7j1g$ z1LaIH7)hRxchm?Cu800y8RPzhdIAX{WY(2(o_o41=a(?qUT~IEY^^BY%tX9NUzKw( zK;J#H$^qEk^1fctDN-Y2RIPbaVL)O|iUBbYV^gtEW+MilH{Gy`a)3I-=nJQFn7EZQ zVD==%zwj&eI>ba~v)_!CMi{2Ut1&VJz)yvJ-3(QF`A5IKrgKB5oiq}ZHX99qao`f? znwJ52XoO+qd|fk>wik+O84+cc1^aeHjn5y)IEb$1s1rSgkxN4m{)9_oS{ke(4P|Gw6;>L=&QcWI+Y2HDNHahm+g{EGAYr=P5O2H zhv=(*o$5UDlMKUYq(|a8I|L0=nEKR_XRH~PNf1?4SJuo z^6)9n6J}qxheCE1IZGb4xGk8@zmlrLUPbaK_mF(qD;F%(CJ*+%E!q&uDRJaz%uy|SkV%hBL&ZDZdMdtNF26&#VS7?BgW>iql{Gd~)*WGt| ztR@T!Y9y#T)c+xE7=Ze#vCgWR6t%Kiz?c%{$-X?vJN^UiQMB|SWhCgW?0Et*7%-^B z?J2EnCL#o&IOb*A15Jk8q?0ZgGh@<{E$4bIHind)10BBY7*wfj&Nb}NtF{=4mMaI^ zx8}4-azcd9WrFTfgO(JT5#pkT7(OH1+QEyLl5}YMp|oZ}id3p6A${2>7W){8=Vh(? zKI}tUIU?5hCaj9gdz&wKFyRddR$q4k^wey_PwQZ>#5Vta%`JiiEH~tA&uzZG@5u>Z zOlpZNk4Zz90FnG`d@I8&`^b(PzAS59hsTUlob@&}aIX%4jOUVY4zPlGTb_f-NMG3E zdf*k}|IwvYT9TAwjSa!Kf$LaFZGNhu?Ls$rtXE5Qr2m--=znTMKMFnuep3fOy9LNm z_gPi|b1ItAbI7+jg2_;l)0X&$y-M(2l_84QcoCG~z!dI6OCB!2h)dY-T3VBv_e*O8 z7Eb2SFbP-O($3@84_TOQ_blT0l%!tuxOR#88;Ez+D7-{%66cM~Ibjt9A1^8Yg41r3 z)9jY1k%U(W-NHc+g-A)!YXVtAf3IFcKLE1>QgPVDL+bXZZGGB7z5nhb(I>A(H$rPr zbM+4P<#0&~L&oPEl2pv}e(XLM>uNmFiD8+xaD)FP3I?KH8#2y4>d3GtnUEEgpl$z4 zFO>a37n7Qo*&%=-PsOUVx&mbFjPjE1?uw`n*nJJsqw5ro#~sUonCC!fB3;iq9OmNN zFOKuH$|Y;>V5(KKT7g1Nl{QE%@Eo$z(X_E|DZ1yOGmx)Y_D$VK_UhVaaab*(RyEqo zPk8fJIYd{OMMfrwREwD}&n(jmclB@DMrfDiN|0f}H;A%qHHMcMs^KUDbo(~)<;1mBa?PnrrBqxY9zuHfesIsSR)c>f4%=Cul{uCj&02yE zng*4Qu0-u=j54yoG$+rv>#>zI^Pw{vzTsK0_*AU@&)*GmQ=E`LpxO8E5JxLrY#J=N z^jn=ihoo9wI-Yl6Q9Hzh0NUvS-cnqt3BY`pNr{t3R5MGtfH@A*$FjJV9B4Bi4W)nJ z{TaRH9Wn=mk>|t^@tdp2-Xtkmr_i6nk19{f@Kp#4xAR2AVvEX_UVV$k=y%8u{>M?< zoJZ4TB$W7xJ~;^tjM$l48g406d|jN4riBf7by>YmKXvU;sk(xJ3u!zWcxWFzDq9`? zVMS@GPc?Rnj)&I(@_v^J>irN7h}3B8v{ewW;cRbfY(VBn1Isbkw*r&8(nty}Biegl zsdbfvav{Nk3KS>NA(ot|eemX9>ebyzST$+ltXtdS*(;(8k0P>eX`ggbOf1^dU$zX+_tHT~@BUM`|EOd05# z{*q2l#8>1GHA3Y?V<$G1l93O(0ClWdlu}%3Oj1Q1n83wVgaqx_4;4<;^JtDmTRc=^ zS_GE*<)W1Qr6R|vp~;orEA3%M^_VVaxP{3>+3%@4C*iV2v3O>qJIopP{_|DaSGC^@ zs)r|n`ud3p6eT>%H}G0Gh+PA-eO@8WIjy@=udAOz=ozOPQ9^#0LcHJpZvcLPG0;d3 z&!Ojz+fr4%Er%IZi#v#@8OCH8WAaircfwH))SR?FBlyeZL*8ArJAGjGiW~Vd`ahG9 zyeRD{STceT`5!7VPMA!r92w&^b%`xhP``wOkr!Q(*kM*^o-!a1lOraaD*`NUJaqSP z8ZM!`NwJ#OjjLPaL_Xql(`cq{-TlORHOxgd0dJqVavLX}PS6&I4#L@Mu>U#BDD>o_ z(IQv}ok$u$iR))153WhbkXxt1f%P9xZ>NIOgZaG(6X^}R#P6!!K{R1*_sNYug|Q4p zpNfZ0Dx5iBo<PDSvw{v3EE&bXFeWc=LT8)AkaX8G zJlKHCdPN&<^u|>Q>~_h;=@*<#mT!@GeRqS{^C6ZszyKNo?wNVki;kJOPovtT8O^i2 zf$7*#qaX1+Re$a`H$SS-C~RcY7(fi%O+QS0%CRX z8(B|I00yA3k;354%W1X%h`y%>aa_*r#S`O6ylgE|kbxuw15$l8Qa!a*c3oSakiGG} z&pc#+UOv6i!r&*=tUN3=Gn-FEAcmMA1rqx-%7kB@>&tLf5~1wZd)t*)=T_!p>YmnB z>skLT$WRDn7&kpab-hb9YCW?bssg%IC?Bc=ml_>v0Wmjp5#X-?*=KTB6y!>ikYS%} zfiNH6sNwMXK4}AqA}sbkcoqSqvf-lsvVlI;frQOW^=X#xJ9l7oR zMp4Mu*ld#BMV)g)Git2fbWQFU7amz!V_C?X^fR+V7&A>M#VyN0KPOS4Qf;jJ$Sh8i z{GW*h=Z`k1$8KpvIpmUQ04Til`6dcjE_0%q@{PeH)P4uSBLz0@!;0V7|JTSL%IV^= z*SBhjsFznK@Kwei3R}^iCFb*U9R0D76PXxGtZtJA{6!WrcwE6?wf8bxwpxhYT2+7w z!xq z+t)-)02-UJyCAJs9^&d@l3XJuy`>_VN`m5Z{T0@vF5Y(bO$|IKFl5BULErlFaC)j_;|9awhb8W)>O&t5Dybt3YbE;@*8-ffJe3*0_bf#Q}t zB7r0quL#^<8RmYzGajrzJYKSE3=I)787obK2sx<7#Oqe|23MW#YpabyzYd8f4{@cW z&(VaTk)^#vZcwKajJ_Bny0lBO-s5{JgKk*)K(p%S)g8%1*QyMTB%xlsI@%dfe`btw zkq|yP3Dfzahe*b>i08<))#>Pua)aUj0Ngrz$KTS2E4b`PV8dj9%mjm7vb%n!$V_vB zB0P~p0Il2DO=-nWB2|ye*-E0`^mg5XM<^4E4?ftdm5@P&2o3{oI~PB}a(fE6s}xzB zdNkCofk;w}ox&UrEcb1_mLWFq^bpjl=gKDx3@+s3q1GoS)fP_-RFH?B^ekK4A#N|d z`Kb}EUI&23VdKx)iBv@nd;|?#CH36dpppq2nwJasuq>P>%CR{yTkET$dzF*GF~54- z2GWo`Hbm7Vuf_oHRKyPt;f9PzuMhL%eL6NmCB7y;VDqEYXvC0Hasg`C34HWbtZl;x zDkQ647Bip~lHrRVaU}8zU}1^f;cW#1z^E-fKc~zSMp5>3hFrwZPr|d0jnd1;c*Ph$ z1N9*_(|+-&Wlca_@>L5?vo1@C6W-4*-tEuz$4|PN7=~Zo-J4?RHMlmPf0(Z7g*DWb zYBVbDGy*I)oR78RaXlY8Rrb&$LMLmN=|o)eSfAjO2{4Ncv-yHD^oF9Y_E~rk{Th-L z7tTqqBq17oeAkW^3S^;?8?xU-4$M4Ce&bynn>Y6wQZT$E+fhFEfB4Jnii`@12WUjC zpm{l5?FGsn4&0{z)SsKtlhVK&$?C63zRW|NAw}~(*L{b9N_f#*(M6~4fiRR`-_=%^ zTI(gv{FDLR*I;_2gTGlEbo7$D23)f5@D3L)Pp|fgiL9f2a3=g^8Pxf7JJc`N^>J8@ z94t53pWzsC?+>l6sQ#F1d%G}FrJf!P0YlBMKyh!#km4;(qa?LUQ6d0WQZSQ%B+maq z#lv1sYrR8vc_ZO|4%=D2Bz_*q=z!SYonW5$3d&js}r?*4W(!%Pn0bJImwsQO_}-N<|-l? zkQbTCqQw?vUFtSt%|lJ917GR4M;Dw58s1#rHFVm#i~2g%u*~#hbqAg$1CnSoro=&n@1@sxBxUCu04W64Q8 z@A~KOJ>I1_3s{32=_f`R84Zpzn*H$INpz_{QU)(+OTD}2r}fzgAv#44AqfCwe^Ug6 zN3s|^H9lzL@(VZjdFk6*m{Uve0_ZnDtBIdrZhs?0Y159yP)5et=dV?Lxg>FFYVSu$ zfE=lrAquc$xSCyms&yR`o#eRQL`(taV2IU713@yCWO#?Vjh;<0=;|F!wQ7B{?;D?3 z{V@sA(!?W#KX;m3v1!?X%{!?}592k_xcE)%$3G=XjoSKQ7kTyyz@P$?(laRo+H z_i3Uy2yOVAO7!m+^99|`clX82$h-^<=QktmnrNOwnK7y z)eg}}nF3DKUFVq}$)UnOA1rm))ewIAQ%_5;mv*W?^wXVg3GX%qGG~IXTf#8J-)I*F zF_~;ba6?)4ge2PFbv%b0RlTGiiNfUL)qF;5W5$BCYyb1thbd$Y21q)DhXd%4r9nf_ ze$|FE;<({lAX-f!DP~gk4eIf89AY_s(mU(a3X2Op{g9MXqN+mn`CXw*z7kuOm+)56 zsk$pFhCmMPX6CruiVVXWb61{rv6JeDUP~ZGW$||?i@tU1klt>HJh2$)I$Yu_abZ$} z_U3)+L<|GKr5qyxN3mE5eJqZ*8mp9!7jU@-CA#4)8_UOirxau(vXc|n3s+uDAYn7Z zdQEQaOZYp{nr(iNE1`phB{2vMI80zSJJOxzy+!ZVLOCoud+`6XO#N zQ92?8?FI7~X;XP~YXWVlzVrSg-$h)35osOHn$wPkCnYf2CBV=A;Nd}bF8ZEb49&hn`uCj17dN+1|X&a6LDvSvE1f6f=}<&PEXWf`kiGeR{eom7+PMYynz z7&LP@dPSbJG`NXPqsAW4J$qZF9=m#^U`y0-v0)o{J9WTo*iRrs{k|tVkKX<{`~?-w z`yHz_+0`%w}9S2+WW9aDD?&9k}G5Bu*D+$5dJ4t0;DV1i#D`x4U)*tiIga!gB zCqL2(^tW%Z8qcYY6#tuNV#N^R#E+_1&3wSF6dnp2*_qAAO}GHggFk@+D9p%Vhp~+F zHa+>jFZLy!CzRaQHX#2%Y5F~%WyH9r<`W}Ktj;V&u3Mw%0mBD`^S((ro0UR=BWOi+ z=p{?b0W~+WD&Ti1_#(8S&@|ZPu>GlIA!wNz_Vmd#-o0Ebsni2+9f?%DAjV+kfFS!G zeB7|`zE+~P53V2s?W(0bqdG^b6R)A<2IwAmHJ`6~bJYcFGn~^w-WBdS?43{~MDj8_ zVK40wvg)%YFFn3We3L91^H?4UDk9tA_Jt1MMl=o=7rd1h$hpEbH5xi}s4*;qM90Gx zL!OoU&`;@%snEFZE?0RXWq*8X)7wjfgWm@1$rpQ?-3yN;S0G4=^X>I9y$T3Z+n!)d z%34%usq;REW0%DWlp0(jn<0b7^-y65C0WONygU4W@D8r}Oa^_?$Ir?OC#{+3z*g|= zNY=vU-^G{*WxKdHKgYAcBo=n))`UPt2V@XjXUf@B)Eu-2Dno#ipK zi}dvB0q|beKYw3@Ig1L=^ytk8(mNGt1u=#!<0Y5hYD>f}8G$ag_>`#4p|`r;pVkj% zJB_TQa@Ys)s#8Evi94<>aXFU_-UxdwwJx%cFbT`}v~X z4~K#WKs#cj+ca5GUH(H4J=r-fk1_u6OYzogsm3};I`!e9Mf>u@q;Fp5Gc`ucE7jhe z%u2`p5$t5V_nb0%i|~$R4~arZB?p=s44#C7LCP#6SIKPcBw47-qj7*e}k z|JEE{ZnEOv0;VexcAGMZD!1v4nF~}4a`t$7Fr=7Pf8kE!?-OnoMAEVN$tUN`fzEiA zCs6Vo(ZVwn6TIva9y{89EaA|_&DE53DXc<_D2P!%^zDF6R+D7_d4#P(ck0*q=dZ|F zZ(fpl?^|xoIhi{I3X@4eoACl%fW2KPBNiIa9%6=u^>6f(v)JKa(>0PpAl%$NW2Jd) zb%)4EgztB}w0YA_;h>}##$4Y=5vqw)Q_5p}CaF`)e16yxb|-LB57M#~c)!T9-)~?O zxDD@A= zpwA5(>I(yk0;+h$i5jxg(p!VNgBT1B$W@2KfMGK5^%-9g2~2?ZP4yh3#3R>O0QN5Z z?E78}A!iw^6cjf+|4n>Fe@;SZMj4F6%mz2+cC$FSd_^u{(eMW^Lm=#pDAGgw`W;EZr)@IX$%U10kXEx<#5{mcGGldK!TjOS<5kCL77P>_}a}cVDQCS3bJp zF98vPXj>~AdY?lqh7t&`_87yHBt%zm+MoJ}+WWNSYpcDq8^RI_lN2$)e$uwbmS97+ z;$=tPX@w2YN#Ykr3y5?4S?F@ya-k}P+m(drdv2hD(kAOrY_GgnN}tO02ik zeItQYqkj$*m0o}Ak8ybh_FC(0CDUCB(S(bC+@M3Y$~c21*(bUJus)#_O&_wURX5}W zR7I*#R%69|@k~9b?xW7?dM-NA7mU09+#X0gB|!!*4f3nspL+H7LQgiij4cs2gVv*_ zKS1|-B_i?{lI?^Ysw=#%Jt3;f&%U%%0?zas=SU z_^RxV-&=W0)(4*0OGbxL>1M>>yc%;3$BFkwE**bXZ1F}NY;lz{iS|JxpJfQpK7Buf z!*ZIgda}{p; zi(v*1uMKUFm(Rrk8MZkIj^HEk9p$=0GZ)h2qc5h)LTSNAATV&;H8loHOXBU4QtdrI z95yEONq)9Dbw~>1*qf`yPDZ>cOK39}*=w|4Ru1V<>l+&h=LP?FkusAS=7e^`=iHyl z;0k172yv)I1>oddb&U*|9?`;DX2gLC*7%PX4F@}|<-zHXgM^EihnUF}mL6`(J~e!Y z54Y!Zoolg`$y4O?n`jNh>_lL6xP0-xdqay)(#6z(=*vS zCJ#U{XwXGaf6u15b#_&Fk+Q~l{{E2oXXMb6i-S9Nhw!OI-jX%siYvC4u5c3m$n2?M z7TvDsLeMXMUK;dsL&Y>U)5^80-1%VXA9005Z@(kQ9pY%Xt~YJ7boVMr?`rUkk+S4I zIWXiSyfzHaBF{)b-K0?0pT8F!v7BoY8nCHvLJ^*1MofYYSvQUm-PP(^LJPMtIHi)f z^q-pq0l(=D?E?+2G-LxQ>EnVsIPq+zlDTr zULAr#qieP4S9yPjI5(e8TdH+saR~RwIkv=(yWFrtavt?-Jjf!pJXgESbIkyA{rgL; z8qRptldPn8tNTB1MP>4=TwJyMI)9r4o>@vmVBB!7Wx<)1TBJDy=&_Wr5Ndn#u8T75 z$EFZ(-!j?ZnwBjW0$89BgV+2b0SfKA!&XDhcMIx$#*CqkTvMpuiua9n#3dG z^kX?{9!NUVwP6Tc=?_*$xEeB{Q^blQapR>FU(x3O$HwM*O6 z=xLg|c$!lPhfb;$rYm0M;3{caKUo66!M;#~ZwFlNt|1QbgYn-POy%C03{sP6g)Xbb zPQlcqnBdRig?W0%%%D!hOp|`xgdIJ(PanJWdbunqa5=M} zq-<4vqR%G@vMWO0B?lNGUDm6r@31p(-V&n5>VRC4cEB8G@~dA6jC$8UXOfEb{`tET zldH~pllB8E+)M)ZM|VU8)0xZI4he=jNNySx0`+E~ln!%NpCSZ=d1c3B4*fv0P!EU1 z>TXMEIpuNC#8zFD>nXkP844jkM4!FvK2tdbsjMJF!KsZBPAFs{Hfji_1?7+g@Mx_o z9Jm{AUs|?SgZPjy$z>zh*c^be6cN@3JMrPbZkoiVK^iNXC4DKn9qlXCtI)1(?b>xR zd9w{1$xYToyc8ee6KFreQC`O=Y*A@2aD<2ORK70Um zvK`HAB%IGW29L7)x>*;I;#HbMPCQ(d{r9uj1i3!%ATYP;HPsZ{)czleC-@v>_*Hq8 zqxBq-RABCAn02`6#^BG_JTi}0+B96^6zU)est7O!3}fn(^-5&crSTlnC5M8H#sFaf zr+)B)I-aYXp#KQmF9@-|Yf%&%w>yW!lmttDDka&}lcRJbjQ^{S#EECDWe(Qf|NjfB zRK>(ygrkoC)qFo?n}Lorbmd8d+9EH(lT@ptZ`kHTj^yvh{gwe*LM7gH5j?+?szKkW z>(v06FZU*+%(;~~e8T%)9Xs3(m4IHxiKoN*yL1ivfGg1XwH-VrQUrA6;i-b16o z{xzXI;(@A|Hjs(el6@jWJy2lxuhV6@W!%O0m%y+nfE!xEd&C@iCI@K2+HX?8?3lqX z+TaCLCb!GfuQF1r`X8#`GjnY=s2hn}$V?W0YJBw5Ggym*>X+UPNXjHGW#YmOiiRlk zX3qk8^%s>8w<~Kq*!Hlw_{l3Z%;exDr3qs30H2h74jqWW!(Q6-YtjcfB1(8eOWZI+ z>V(3tbG}ZpMzV8jU@nOL8Vz3QP8h_CSNLgXP85mPyY9;R29O~glPS&1AOhzUR%BAR z$9}X@uMO?p^fJQ8xMcJUTP64_#-=r*hoBTjwBG*EEOqY`gU9 zR!BrY|HXLgJ=Q zZBFyrtYtJLCrD#nxLn_su7_&Rrat;q6xQ-8j1K_clew8uktSc&8FQ^O2)Yi0=TxIh z<)-m%jB${@uGPeQP6_>I29pamhCEM2!?!C=yh zr@E;e(q?Iy!1F;;yNHK9&To}Z(_qV`u8V53n{=w-hnYsKmdMa7JGuSi)2FJ!KWeD z%da|ogD#_PJ!EBhQ7)1I1L+EHCu^X0LN$=$^`1!sowRA#a_TzE*s&(Zrbq09(~uR=T`$cnc|+>e_UG>~ zy8P^Dfbkxj)Ff&Wl>|`n@h z&lEu41najs6{921`6zeaN=~J@U#ix4gq~hUzxg3(h#f)gdvw{6RyPj=kq`3phS5f( zZI9nKOhIuSC>jt0q~b~Hl}PuydM3GVB?&J6*N5labkAl%7sll$p+=`9k>e924SXyy zPQ59T6pZmceVg%1dCg;iM+diYm}`rS;=HVU1K&yM%uh&sB$>Gp9P|SwNdncp2UFuY zK0vYfVs^!s?f8tG0Rr%VUTDaLvEcTm5&Z0Btq%A3{y_Qqz0$g}FMR+3_PVQr4nGii z2h}Yy8KU6v=dX7S!vpr;tpZHLQY*4VzaySuesG8=F+%hgf(b}hmQM;_>*kud0CIfV zLGB~*;cA=ukT#!Ve(Ozot`A!7>u3`*B;5|sJA7%mmt8SY1fGKff2#aX-f$4Oy!B@? zd8f3+nLW;970j;0;3eWVpI#gT!Gf9U<+6WHD)0UU{1jn;N7Llv*Xm zeK=y!-hk4YcNxB51qOOfuK}0z&0pt=DU6(_s|)~f=>$R^vw}v~?|U87Y-|h*z@0al z5?-Yh&8z6(=*Ug;37cfzYBa(`GumvD5CeFQ4QoQN%6fMg25;erlaA)DzIla0KZdk8 z9^}I3g|H?eD*`)4%riqGy1cwG`QuN;BuvH*-4cZLIm_Ect)^yOeR^_A2G)k>OZ=to zoHLn69#Gvrp&Pp^IQ0Jk4IajPa#w`v-n>q{!TCK@?7?zJDbRY>aMqDooECC;CC9@~ zqui&&!a`sPmgl5p(FM@yEyD3#_Ymy508o#&Ucd7u?=gVsW6nEI9S*)_yd5o3M(0IBD7aUv3x|4d}D_Ju|vknTznWgA5C- z(Cbw2i>2#!z-8abDjw!-cv;p)>A>XMW@i{9gLgn1nO2rN-)w5vi#RpDxp$nsJ}l9& zi0Kd^gkSe*bmG+)TWa(T1emfVl-F5GUz^f(SfvHr?jcB4}aCTyH0mNB)JC4f*&g1CFi5H%y-!TZBSDOIPSbPZh)QHMEZ<70*Q}l zFA7DW)9d^)LMT|Hqc9LLh(neYzJNj?I@pNh%o)hma1a9dSf710#D~(Q910)&K7cO7 z68g!oxWZ$B&{#XvGR>*Vx3673)z{&`9qc(Prno|;Q*x2ho0?Z(4~+(R2cQtbE8{XW z@R`9#x=T$)=oPwULsyBp^79)2?B8^F_~gNNf_*p=82V=Emi&5pLdI^~C|)G97tIeS zT(V5+!97>*WG-3Wd&0RVGPjpBRpgdyymzi+N>>qSOTs*zo*|DzOTTa`nt*?$g5(J&6D`W!D-s`AnJT|5Pe=lXvL7BH z+;y~$yC5ONBWr{s!d%2s@8LVRUy9+5Y4 z5r?$t^anw%M*D-I2iS5R%z$}>N%Y=Y1o`_FY@HA_Lv z$arn2w zUfCOv?ALMeOuN38P#|(0+BKZ*=Z%~KF6_R_WK;jio!1Vo&|@qRh>IJ-EB+Uq!!ErD zs`r7=$%xD8hvmnI6r$dniA)4SQ2Sm%M3cA;3vZkaWyP9`ikUz5KY!Ux!D&*p1Rw2b zrfFC?3rEn<%FKn{>7`2lVX!|_MEex>5aFyOxX}VoS6=NM@xT`h<3l3Yyd!B%ig$4F z>8pqcB=gNj%*YL$rD1*65Zp7(5IiUN6vuNAjv&Eet7kEjtyZr(FI4aXd}+UiO>$tE<3AUHh$SBvY3`;#9omzEvt_L-UNoIeDWNJmvw%Y%{|>(XeCst50CuKO$cI!@x)TM21si zA{PVaeUO{=XTm#W>VYnenCbTbV+P4u3W@ag&2BF?=Egr z<8|c@+Gs@PLm^%FW+ApQfYJ{i>T$w*4k=JLp9lemU%w83YehNw*Jb;g{J#cVSyN8e zh!1kST{eG9!WN2YJ4uEDKws4Z+LyM*51P5!=4L*Dq~X!idi8^nWbb3D*PYu*YN*fh zy6k}zp{bu6BF?>Fs7jbo$n0s=z@&o8m1JQoLG8Otwj^{K^B@kpR*V_0>CLu!v>sbkNdzptWseTWM! zAFc#yyhx|U_gx(ZzjX1|#$r@X_9!-aBLszTKx1fhpFgx%9lJkkWwbzES%Mkp8Y)eX z@7VRMs_yBiR>?d%^N^T$PxhfBp32p^g_V~GtX_Vt{TJvKfCt+I7o>-t&a>ob8pOu| zu}MZ=Q>L6`YmOa;lep~jP&VREMQq-U22zAKb#f%N>;3chhDIacA^>$bMFiIKS<&f6 zGs0j;q<$;%Yj9IHRSC&!gL0N`AGkVa^MUv`SOFg@33YMu;G32;?>v_i0nI$FT^<>- z6NC6h?}QJhgLu@(xNf%;2vimLMV}q5?LH;(fHx1R*JtA}$24uQSEmW5L(z-ipeh1! zDy&9#-NGeP9+HmS8n~QiPw7ik->@&E;DxOC68t*(#2v1=PY9kcK4?VZ}Jju=BX7E~St8vduU<2beAkDIt6UDvB z;$e1yMco?o-A=)WPEf5&lxiWw*uly|;hWguv>dgNlFlj794I+h1_#qn=-pJ!=8Vpy zg}snN7kc#n_&V3@%2{3sPv|T!gYP|+p8q^fN1~n*cHZwt(&@c@0U@MP3B)bm6!Xeg zl~IzxWs}9x#_3OsaiV-tIV@_CZPc}!BzG&k(O^U5%tJ7p_k?Fy)>1CY*i;+@#ynn$ z7pXqFz@AVP+gyZ0LKj4OGbIlYNR}L(wp|!#!@I;U(ATt8NwO}Te&`W{UW!yf$brNk z^|jD$-R+WsW?{Q2%n4_tA=ntV+M7avDX@l!wl{4)293~;=xAEV(~(ZvL>ZOTtL{3u zr8-yHtRow&0Zjzc=oui~uaQOai7Q)qNU6>G29sc+`oWE`y?0&X2sjK4EKf%YWv$ku z3#I-^Kd;>7s#0%G!bkl^6XF#-Zhv>>;fZC}J3FL8_lU1br|MK0C#*1PW)3G{jrN~X zr713jwl@N34!j(`E+baB{ie{kH)GyruQPVZzpoOZb!_vQ7C6Mjd_dIK*ZFPEU7FXJ zcavJguTb=j>#P2lX<61%d>kmxb)fjI%!I|hI@IXKXANbaf0(+B@U!tYpFr5F&5w(k-U$t|$R-I=lD??Jp+j&brVMG zkqF+?H!C;YYFLdAO~w*3h&^iR_|K=QQTwb>u(L2%Q|g8}y)*i&qZ^zX5e1pwi{$MC zes*=-3Ldq_$V+w?^AhtluJ6ELXHwX3hfAriL zHt^HR$fkovg*8JRq22U8F1_7=37TOSeUQ!rBQy;R1L%#*#JsoZtr-Qla_8>0Z0ZlT zB?SXOQUk#kxzXeeDWwZLu!drfT@3&vI2cwuGIsgb7fK@OwSyg^Q4@0^UtZO=9G0ZG zAa(2f^Vi#JZd~X`_49?H87b#CAB|VKe0?KUc`H$tT#N3!rz^HQqK^xM#Oh`+mJej? z_$p4V#a^)oKB>H}ew;E*_%YahMu4>gT`gq*v4UfnCGknlN;RP%;joWQkDk_RdMAzH#gXL^-BoiwiC4`($#V1E(+;*2%0`K@C539=ZU?ljRp-K zK(Q=7o0s_h|oK~A( zXH{sZ$9X#BBpgqdNG`QeQr_psrzoL*V0r+4_v_l@KOtYp6L$}RYb=EfcDwKTj0`5> zMmDs!!lXvnbjsGIZashgk^rnHB{?kx%1F91VN!^UP-$nt#QYDq6eCsx7MFNbY%ym^ z02)nVvAa)7Xq8}`e$Lh&LHuu&=)GeY|q91xiZgkTV1-hX8Sp`Zg?CjyMys zL6=LrJfA|>h%xm35XSCXtM{+gG2d~jCCM`oESL1ea8GXIsKhMT#8B+a^3EjHyxw?R z$La$)*E*Q#Ah5vFuyg%qy{h+F%ag&B-f(0;(*;qgJ;j3NWR+Etv4h?M4PnT=^=QU& zyhSi_FjvtIP$VP;YQhI0=hPaEBQy`%1p-rER83-|U}G(!{Vf6QjgY#(C=$(i*=WC% z(-i;4&5fKbZiqm0ES~UXK5--oU+@XX(f~pl!R={fk7qn;y^Boyti;?+7rq6gPkYjh z!Afs@F|;^!tmRS&vP^)1DeUkjq1?^ZmRW`ew?Hkyu`XgC3NgwyN;pU}+*x4Dm6uQ(__iR*8#lCWn7;`Q^5k$W0q-Sby0?gj zwDhFXSNYo&KMnz)Pt637h}NcT43hK@ktIW=F$3dq%sIa*8_Vq1Xn4WP;)b2Wv({ALkMT*Z+Q$waOkg?udpsKQ z;{^P%;vQEiT`9S~sd9^Y*(4=bD*kvd2?}?%p`;BCs1^uO*ed7-U3ek0nA|70e^Ldf z;4>1yH7ZEl2*x{jqz2LD#-s|jBSy~dJ-Mwcxv|bpGZ$GTH|(;cZ(~o4G%BF# zWfO9V7v=mVXqgng(==C){BUX5=`=jzP0t@rKA;nx*#JnWy8;Ebro(8?X{9ceFocipp2RX>2p3$BdH{=Uv2x+jJz?yq+E$ z^|!>YsZ@56mGJUTuiRinP=j);Jj2I{s=sr~ERt%~SH5EJB9rX`l)}%P#`VpEyz08i z=LDgDPN=9Nr%l@Rb6zVr5$igIjHCj*5PaU_&UeXk1b_jOPxB6=Rq#7LeI1Y7&EcGt zP7&@>AL7f~Y}fO~mPRgxJCbIP+pTuG;!=a+N3#TZ=4dIqBfK_ser2o_2V_PK5V6zT=|0=xRI|~G)T`^y z-z=Pu8h=W2ne-!~x$VD8b8d5$4{xGo_Kv{!rEHQwtr}(^hd6*q=owaDT7@C2Cm=@) zCJDez?C4Cn;WAOni@{bdV%hLuWpCi2hbHcvQb31>;~*%1m4}67x;?ujlW8FigO-N0 z@;K?Ci9wQc!wED{8n)lyO(wh|-3H-5n7ucBl7KXj(MAK0I@K}wo2f4mCaG)psJn$* z^|ocgp#fE~>uFx^@}7n$q7$hIA?poO10LFZBTfX(3Abj=yr_-X(3?Yr9mzA`nOuQMv0ZwjEhD@EVrji?8g=LR%OCETXWk7MK>vJ^%q}(EsDqMvb zxK)T3peh|1>+XD4b**G5TsJDwKPhhM{|?vAge0Hr+3CDG^+I}iRrBVcz*dAi1KVT8 ziGc{$Qg0s~LLOGILRaroBAuHw)gQgW@Vxpb(Rj^oDhY|BJcNAPO$;V0cCF*MiwzX8 zK~GI9WAhl+Xj@a;rxNm^KA4$}fDO!0FiqDL3L%JtN9Q71J25$1)fc95N-H5=i06%R zv3I*KYNfCwRKy}~3oDQsjp+=F5fe{?I7KJ)J$Gcq3^u%z&{L;(8bP+k)3!7b?C{ip z`c^-0iOrk9>fB6&PoU@;UX!2HTA6y5EGLqrdGZ&ha9r+Qr{gg*=MYh1OdT7`=b7(> zNuc055jL8m<^r=LL8^E3&nSf6V@+B$`zWX}vV`9dBJv}ZaCpEJ(4t#0q2dCYg}0jK z0urO)-?N6_}^bA)?*=zs1My3=H zS$SoRs)hKBBEJ=^GEWLRp##-ML*p%Sdm4Gr&|M!~&~%+?-sZ+1-l@psSfwB1lhmed zlm*1SPKz%?9h!7%mw?(-!d*Uo$CTxwi~Ic`Ni`P@hqd}`UbT5qbbmc2DgRZrsG9&F zSYSka25~9&Cu2+Kl#>qmAHoe;1q$e7D*v}xv6<~)Sn;MCm>>GqEX<>~l=W#Ek~)HM z*FC)@kMH=eCWV{p8rV|3`dqxQ>{AwSw1VJS`cSQ{;U{^eE{)p%dAlZoWQAJ|qo_71 zuYpuKEVT4GgSbn5oN5f~Cnm@tngv2|v4^|#VWqPUro+XsH28_JRR55~E`qd-oI7nk zkp!mSEG-(ZkR?YW#1&7hSQ0^Ly1$_062KO<0m5>cJLj`u^Pwqwx`ozYObn* zO5bhEq8JzB4nZ;5=VNA;vks+WasOl+ZSn@M`m9y1u>TzTPLB=hDJ6R zau@(ojnNy!Gt7+)0Nb|?qi^z8ZY6Qf8+aU+EJP=Sfy=`B=qetzt38uhkus$@T%pFQ zBA!IT7rDGiykvX?^>MGA8T=!|RIc;8PmF?2c(^yN?Ly-i*5>7bE@@Rg;AJK+8MRPd zd;ak{;r(e|phmjV8*cSdHi_eDH!%or#F191>!!je4@uupV!KH^q*_+Ol!vD6w5Dzf z@TxP)Hf4p4>fO|nTs?2vY38H|Ac$d#gncG?_y#sPNVkm(|>9ZkV)Hs*`I1s;7$K z4x?2Ai_n)#52`+6hCw-u?(|Zoy1JU%`!Jp)<9xi@Rw-9_7w^>P6t4Ttz&Aa@r%q*a z4m+c9>1{AMm}!kHs=xX>Uil%!;Z4R;1<>}}40McEbo4hLR!+aZWwm6cPK{YEF@hY< z9n)1>vRl*y2$j0mtmJ^3z~EFEH6^p-^*FFYl5ebU(OV^xUG1SpB1*PtifoLxG-p}0 zukNU~Vhp;%v$_#P>UHqZK53i&Z~&<1%I|eF%S&N2sHtmftDjeG51*ZMe23DVoRHgP zqhH_PCAns=L79@1U}1VK;?=j>zypkpB<~sFr59&RTDtO8F0M=u2*%rl<3nCb z2UKU5B`AJvkKVP_Sh`J`>ivAvSX&j!L`jwUS;Fp0O{>4Q26!3MrSTiAg91~zlmsbB4yeRfbdU`Q>`;q9}ypf zdt$yOH(DFkBx%{e)Tv{v&AWevbsH!q&o`(uAVxi>GxnYpZu9&qw0T(V=q-aC)?g{H zye5F=ipAMg&>KP2;%yPPy&kkyiTTy=d{KV&nev1u;6tS-Q(gyQ{j!#8*` z8qd5u3RVJfYl3Q8j3z0ld3z6Nt!?>6 z2cOjkDTuXN-e}rRc4PfM_}~i6>RH-zarG+6+}qRwO^*O9q4K%B1mmEAx^OBP4+US}(!^emCXC_& z#Hnvhm7!L7d@@|1ASpp77@~63#QJ8+5%TQqVM3de?!uL@dcW!Ur&V_uQQ9y^@Cr;G z;89w&M}xqWad4VORwiun61G}({Fz2qk)O~9%wj1jJ#uZN9*9!#I4N6Pc5^^k0lL%) zvo6hS5M>+mkz7QkCT>YI3>>syHHO~gR@Dk5CB}T>MAW)eZAK~+>bZLYo1!tgB|gK; z2VbFwlU;z!tOIkYxnrXykmkD{%~Q+E@ORl-w$E$A8OoMziW>&XBQKTle%)1VI15Z9 z;99J82AFLMjKbDHNhJ=g+!JrQ-ScziqhrhsO2Mqe#?#8CNlwIFzb+9Qb3Z{ps`r`3 zUOeP-{=eBpP7Y1gdbE34?Eiu0=x&hVIO`Q%t?lUQYbMJAkgk&I2egK&F|q>Ui7 zL!I{7WEO8`8_}v>p%AvLqZ}irA2U&4Ko%4K?ae6}2*AWO=@NwWCApMsRE<|qfvs#E z>T@gDts4#A_@N_kIB3q}6a*2dA`6|z0vb)7(WhdPNNRO4WOa)nN zNOZ~cM~XXfIXV9EsQMolMl76s9fpD z*ti~Do{tmVkPJaJPIM*Rt_b?gXJ!d;IZvwO;k}qdHyE-i>aN~yZu7xRs#opqW4u?% znWv3tkYf<5-E^b^jijapiVxXHkuQ1T`tE}`&_yy%hUR0Z6+yJ}mU6x&GvTAznMX&b zveDanHWKqB3OKpw*LBLhfan7=yQ(A}9i zQ{?V!0pbj0lrhA`oQn+X4pj&g1&`4R@yM$ zwWXcRfVk@r5wjDdbKq%&?mkJ;1NvjbIaXvrxLT6d_#(FESawo{wmBwkUPI0zmRaIe z74SC?ueIpy&`{-ZZ%yQ8x`j7Khs{m#$C&9$rBqA4fQHOje z;)VrR9F6(Fl>TN5HeBG(fvFJuc;b3}h%fZ(=YP4)?s;A3^81;mcYF_x62C%_m$a!9 zbxqcr8$uxL4)V%B}RxeN9F&4k8d0tAj z>-G}T6CZ#blSX4<9Z1RGw$zFlIS7f!)I3AH+knL{g80SoLoEz5G;b~7i8(4TU~m^c z(#6N}`uw0)2T!l&fR9wOeN^?}h~QqXhpkP)t>zV;cMfOc(V>>M_acw+>}7FgMKd_T z^nN&zw~5--re^N9fp|CEPzRav<~-Rn56g)E$Mb6H{FL-NN%>@}cbXfpHpZ(4xGtR+ zrVOA}t*_q4{-t&HB8=gjB_6F zBlYU1g1drg92cS_hIW0}0H;2DK!PPxK2{K{%S$n=c6v)^iG@_2e9~zq5VWX)$bR@O zr}dy$E1Gf>rY$uYl5fXx?Q|`yT(ko?;5`;DCfxMWtC(lCT;eNbDO|nLv~gHI2A1P( z#?~K{AzY<-%_edZbm5hqK0;i^gW>l90=K$fqkmB^WmD!sEP@wIGu!o~U5Y!I4p694 zzo}$D<=oZuiF431@Hsh55XAy~y}XR*ti$P=Z{8fBm3Envjt9k4FFIB`K$fvPv~#@2 zLKkWLjY5J;@}36`to8%UbAxajIQTLPqXFW6%w%&YHZ4?KbwQ~PTi?8cLPz}QB5IR! z2-h{fTTut1uWUp7C1+NRewGo|Ob$tvl&0X5r3C zlTtMm6<-GaxTL<`G8%S=P=g)mdN?y;o9=4dQ5)LWg=XrRdygW2Pv6b=)hV*kn9Lse zP?9N1)hKz9!8Ad6Vj}6^BA`%#(h@Wu1U-tfM$alxaq*dfx>9#>5e#uDs>d{iLVGZT z(?(kaolCajBm4pl&FCRp6|Er>-YP@d@#?PGSB^D!4p_W1tKh3rXor5hpuJs?hKYIKN5v=rH%%0Se=^HgIT)tkyH`&@P= zYE_EE7x<9v&m8I+*<@wkX_qyX>R#7hXs)EVqQe2@F%Od!OqC)EJBYUGlNN;-ofz@g znjN%M3%TD<$Q;3tOXQ8#o)*X=H)xa#?2Kn%ZJ zWNMvnv??!hy?R%?N{C8v-#xMMYTk}#ibhoBkf%j#`HL)rGYNBhfP!o*@_|xn5QwXe zNvjy^=h9TEHZMjdTT^LX6eT1@Ll$Nq#m_GJat#~FnXweF z1ahS@G|EY2K3dBYeNejY#&QukA9WZmQY2qxD*>AG7{5r0;y;fD=r?vojTxJ2D%g@~ zNM@o*40~w|#;R^Xd#7WDQl~DJ<5C?_!7)DMfzH~H@P#HzFMLB5uxwS-fWrgW;k?2$ z(HI%dGBM_aHA@7I*=zXbXq=Pe=`$~pC!US35SZlK~_ZS)+GK_lt}aJfLzS3;%`NKn zv0h0?sO2?B_M2m>rGot|bJtv#InDV=pa~d`J%SkyJ{kv2-uy17V$XY?0>uzkj765%4-ch$>4_@osW*J8sl&9VL1jCNu$Z z%W2Han_1CEiE`756^!O?&}iEusX&z0DTP#|zNejYS%x*Od)m(Vx?3`#=b;BpkJ#}! z1lnO~6v2{4_JMT5GIEXyCr!HGkf1IvH7pmm#`TLmJ#P;AMlZlUl6041T`y)K&nA)# zLmttT=Y7qzKlcKUfcN22F-$Qts=s)L6yxNi`rz$;zskr)YB|cpO-v5x7``V*roPV1 z)W+q{t4Z&ge&C*Z;YQLZ#<9=0R9BRaYgcnV2ceaUi4At)O)bU4$SJk=GZ+DsIrR5) zI>M@J(o!8C*&~B!Dx*;m>$oIU=^h91zVF|83DxM|ZPi9W^3lJRXU(%0cCP<4bQzj> z$oIbc>>aZ=)Z!=6oJ%0_Q=^FWhkk=u9&{peY*OhQRglXj0)@vQTo(rjB?Gs{cj0K{ z&g|Vg5fabZl;4KHIz+V1(q`wr7hEwhL&e_I%tbh~s_SRf&5K8~Y%2RCTd6VfwyF~B zz@1Gx^~0uX8e`Y0!OKP0Z|)+DGJH;n%~4Q2BNLRHuJ_7kf$@VJ!M%~_gja_>*}V8y z*CiT=*6qBoIcTl30A_P+8Hg~bOWx31&<|m-L&%{{Z{L$NPA6P+wNxm)5j>noyAE=E zWiHHXtc4m~4e(+r#8|`-S}2C~i}5bO+({gFFf7R-Hb#PId$h6a=Sch`6@XdrVcv%v z;Zfe6s}NXmvPr*wimns>ef*iXyM&vLz-HbxB=gxoV>@_r!eyXd*Vyc!#yj>Dr@ zO(T3TF3#2Diadt6l0umVhfdFA4mPtBg26GexFg!%G*DjHyqPJS@||Uqv#*$rZS^f< zoBuj%f|WC^i@!X zB$qx@6q-ub$MJ(32y*uV9tGMQ(xeVg4$8hm{L@abJRwoJ*VncqNsBufz_t9xrS#@QYTCF)mgXo1<GBAR+bJ*v+>q**#d)rSUnxrf(b z;M{ZFBQ#j`aM*zmMGhF)W?IMM{P^RUQl1oZ3tKi`6Ov5dnFz>eJ(u798ni3?9o2~m z9gLH4LYf6PLC#LMyTYp*dV5Dx`ph(+w5w|!14aaH>*j4$E-SaDeZ$7dhGAz;$1;T8 z8hhb0W_g1vVjD4owz;)x%2s|db$sbpysE~nauyo_Q^!Fb{~}4~H8rSJcR}o*7;DqG zdxkJN()^s8aH5AJN}Ga1cUM(NOYHRsbVE>@DQ*8Uw#S4~(f9)WYD_zw^{0WttpGV|h+TUZa2 z5Y~H{vj{K->8EL{HLL(wLRmKLB(WJ|>#Hkv?a;B!Q z%h#qoP9{7C?1#KJ0wH-Z&6^ZLSNq(jsifk@3^5(#+Thb+v$W2H6k&@*dSLRq8KVj5 zH)&Y&!9pe3R9&vODQ?6XA%|Ovh+8=I0OwkFVVhO`B8OYC`{1`a{dTjwV9Pl?4U_Nk zdB@&N={@}cXo;)4-#|FFYt}2!+{!D`*uRq_AsoJGoW@c|DFd66@7be#msfOmcsQHX zFI9RkMSI@xn4up_901dwiz3P}hW;##PFz4BF<}=tltXgN(gG|esc#&7L4*Kq)QvTe zZ~?0kD|cVHYlvX75@txlh_Z93Gy{JC#LlndUWQq{Y+h__nwm|xrF+&gei#|`_$(KV zooI)y*?9$g@S}%Mq}WO`K<+E|cWKwB%v!K5@zhhp@i{C!Pxd*bH{D33?)jY3=UmG!KJ;7hJg4v_-b4T30f4VIYCiQvV_5lc&+&a!#~(T=Ct7y+dZ zd@i2|86O}xm4+=9tcVOQdHGEb!Igz&+$0}1MvjyLQ7fRB42hjZ78cP*IniZoWkb9p zJ=x^=tIjbqgQ40xub+}bD<5BQu_rzX9DS*^NfkE@@})!vlXcZaC9^9b^Idcz+jdH% zZ@n9o-9`hqx35{pNRF*pQ?{dAlbW^t`P<>j^~3NwHQHfSCzT#+7Nffp^HA}}C@2}% zzu6T1Te!!EtM@vUHV9NJ%M?{N?i;@yiT3wwGp5=7x)ZO6k9QPLh}V3$yIK~5rBAa_ zU~HeQH(EvI!vHDxG6jw@kYUv~>C$Ar&{hY?wuFRCs3mz5kePSOmBc9oOUzW@w}@ac z(W3cPZSFDU%DS{`&+~PBebDCm{-41LP=giu%$){RC2_7C0Cod1^N4ecqG zRbwK-)cf*F*?OSA>x0G{MebtM>TJ%P{F+dq9&Zd20yF9u6)iRNb=u#w2jXLg$*!Up zP9@dq`1AK5RTSS;vtnNt9_-Pt=WQgR13itt3$J(ew$b@xe_a$}46R|E&Ug}Go0*ag z9wA9!X`$4`N%^uAB|g02vSmU_r3Vz*Nn!KT2d?<$E*YIn^&D<93ci$3e`KyI#?#P@ zefb;q#O%8+!-8g|*%%yi=0L<#;6}pbL1Y2peKy#Rt(uBXzmbKjhk63G-4F>HgY(>Ytt zDhc;g3Zfih7_z@fHwm!zI?P2l^kDI#1#oK8GB?Sqr!JGB5Bf976C&dJ z^H+(vZSnpgZ}pL8O6k1VrX2USO0+YQhhNphyfeV_={?g}0;yRpN9hB4CO?)S)dC2% z%?O%2XS(XXDc5$W>CsUiyEM@z613~f2I8OAuMY@_dQdBU;;YLcOj&CW z3iv^tB##h64lRQYtFkY3UX1c%r+@20;l=!TOxJjWLL9L1fxI+yV}Hy9ST|tT{m(y! z6%u$OBE$-kU&$?aGHQdy+87eAQmA1@lG`gomKjtc_ob?6DR;aYVodqyLKC0TG~r+g zp|)(tXs3}m%XJ%rlMW~5u4cXdHEURE!eJBSUB9txG_kn$eIW68Wra?pDW?D!f%uBf&$~EPUkRZ z_*g>t)|t$84E@~<>f^MjP3JqpZ=`H9zHjOr*e%KU%}ogxx|YXhG{u1KsEXHSNdduO zm~{qzLV2+wDs9stS=9@6OlMZ>3M)HN9ODN){n7DIs_kc0Jtk)=)8Y&})OJ^ciEzV> zTvBNWK^M&3!Qk6$Mt2RDk5HK=r4@QS+)n>gGpEdImv}1x>qcah8`i6uBgW*0Pt$E= zlxG6GVFSGd?0^b75E59sgHW4uTx>Pj`TQU;{0zlZVFao%F39*p@2dTg$b!+?a$wb2C2pJG}6-z!pmhw#wPWZkPNI& zYsk|%*Phc8lYzD!RrC$#;ms*1d@jYg7b#s)oK{$_j>YzWHF`k3EKpq_3pS`+c_V?% zSxCC(Ur8UMSOjV1z}3V8cX`1LSDMPs!IrqJ2G6nq5nv%mI&^+XUV*J;ZLca&MbOUN$Kv0KYsq38n*rUJMXLXQ2^62Y4eJqOli34TV|7xaU2$z zNTyueOm^1jB(+l*5~v=tmU(&K1M78mcT` z0;LbgT(of1Na4M1PG(P9n98;PvLm}Jzs8L2uWQDMJC;^1sFURuRBl9LX?)Uzv)F?j zXBF%pz%w=9Jh+U#4}{e<<5V$FotKk2w@$fO=`N)6gUEWF2$D>M!hs`Bz0+qO;qB4& z9k4Sr>9cA6!g4;$_$uOLByM$v^0;-V(wA-?0cp~k`D*H0bII+`?s$y!$m?O|CQKM( zi_>~5hDw~?+u`*#la=(cE0_JBptqE0oau!~-&#CMfkxz40f)LWPOX47yk6Jjwj3NL z^`?a~IBhPlFUBo>I@-D+pw~r+$njTki)>t!WxvVK@UWUH66t zcfmM%7514{PvQK}CrKRE6rEHFl%*EG^LWkWWl9`So5V#RPmEMG1@o5l9N+pfSz%1G zTC}}dbUJ`=5x4gYykL2M6Fm;^hk$2xARD05`X4`I$u@j?$l+JV7~>HSO}D3+_U<+6 zdA(bcubGN#ytQhyB!AzFkp6pF8xqT8&;IL05aW{HXJ5)VNJ9;&OA8TYUb9v2nIAp% zlPdGyn@o;kRdZ@<%33O-CN+Kh9B>jdr$f&wYM9iueG27N&1aw3cK`Wnf8Xk*)^h@p zqy8@dt&|YKbic+Rl*etD}wG?)9owjo3lkNpe>Aw@Ko` zLuJjeXrr3&(fJ+1c7w@!+07w1YZXcovSj2>_?sP-^ft>p4wJAg;pi?Un^FlD=FV@5 zn1b!c|0$Q0HKYQMR8$2H%LS7cPh>x(nY#7$(hH8}Gs`0wxbzaJ30-U2%*5D<(Bn2( z2d@-}S7lOMm^J!x+P{T(lhKpvnzxGa=!-cHJS%4T8v3>Wknh6qd5%fSq1p%2JK5(L zY8qe1%ZuR-Pn2HA3G94eNH`ow=Fz}5#lK4?Q~cAR&mOn!FkG3&izdZ9xgjX?M5nhN zl?9#gP>j&*9@HN%Lq8I-t%xSX(KmE^p*c4GCtIdm&_C^f8Q3>YnJ^$H0`c03VjFpO_EW|9C*IxWYc zXVqI*(10;#b7@r%Ow_3V6`gEqa4R*R^|*=%hP*XlldV`dB?@b2|5`eDxF_%0AaRZh*3n=BOa9slN; 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 literal 0 HcmV?d00001 From 598d60f87c60ba1e789f3dd7616174c2b294a986 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 5 Jun 2025 15:35:18 +0100 Subject: [PATCH 086/335] cleanup and remove stderr --- pkg/sql/compile/ddl.go | 10 ++++++---- pkg/sql/compile/ddl_index_algo.go | 2 +- pkg/sql/compile/util.go | 14 +++++++------- pkg/sql/plan/function/func_hnsw.go | 4 +--- pkg/vectorindex/hnsw/model.go | 4 ---- pkg/vectorindex/hnsw/sync.go | 29 +++++++++++++---------------- 6 files changed, 28 insertions(+), 35 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index de7e90a674aad..815e05e66bd3e 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -1998,9 +1998,11 @@ func (s *Scope) DropIndex(c *Compile) error { return err } - // TODO: ERIC delete cdc task for vector, fulltext index - // cdc task name = __mo_cdc_{qry.Table}_{qry.IndexName} - // pitr name = __mo_table_pitr_{qry.Table} + // TODO: HNSWCDC delete cdc task for vector, fulltext index + // cdc task name = __mo_cdc_{qry.Database}_{qry.Table}_{qry.IndexName} + // pitr name = __mo_table_pitr_{qry.Database}_{qry.Table} + // DROP PITR IF EXISTS `__mo_table_pitr_${qry.Database}_${srctable}` + // DROP CDC TASK __mo_cdc_${qry.Database}_${srctable}_${qry.IndexName} return nil } @@ -2562,7 +2564,7 @@ func (s *Scope) DropTable(c *Compile) error { } } - // TODO: ERIC delete cdc task of the vector and fulltext index here + // TODO: HSNWCDC delete cdc task of the vector and fulltext index here if isTemp { if err := dbSource.Delete(c.proc.Ctx, engine.GetTempTableName(dbName, tblName)); err != nil { diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index 617b0c5877c03..a34c3d18b3602 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -516,7 +516,7 @@ func (s *Scope) handleVectorHnswIndex(c *Compile, dbSource engine.Database, inde } } - // TODO: ERIC 4. register CDC update + // TODO: HNSWCDC 4. register CDC update sqls, err = genCdcHnswIndex(c.proc, indexDefs, qryDatabase, originalTableDef) if err != nil { return err diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index bebeb65a8ed01..7c92549fda755 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -19,7 +19,6 @@ import ( "context" "encoding/json" "fmt" - "os" "strings" "time" @@ -563,11 +562,11 @@ func genBuildHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDe return []string{sql}, nil } -// TODO: ERIC 4. register CDC update -// DROP PITR IF EXISTS `__mo_table_pitr_${srctable}` -// CREATE PITR __mo_table_pitr_${srctable} for table ${db} ${srctable) range 2 'h'; -// CREATE CDC __mo_cdc_${srctable}_${indexInfo.IndexName} 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' '${db}.${srctable}' {'Level'='table'}' -// DROP CDC TASK __mo_cdc_${srctable}_${indexInfo.IndexName} +// TODO: HNSWCDC 4. register CDC update +// DROP PITR IF EXISTS `__mo_table_pitr_${db}_${srctable}` +// DROP CDC IF EXISTS TASK __mo_cdc_${db}_${srctable}_${indexInfo.IndexName} NOTE: IF EXISTS is not valid SQL for DROP CDC +// CREATE PITR __mo_table_pitr_${db}_${srctable} for table ${db} ${srctable) range 2 'h'; +// CREATE CDC __mo_cdc_${db}_${srctable}_${indexInfo.IndexName} 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' '${db}.${srctable}' {'Level'='table'}' func genCdcHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDef, qryDatabase string, originalTableDef *plan.TableDef) ([]string, error) { idxdef_meta, ok := indexDefs[catalog.Hnsw_TblType_Metadata] @@ -594,7 +593,8 @@ func genCdcHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDef, sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'hnswsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) sqls = append(sqls, sql) - os.Stderr.WriteString(fmt.Sprintf("%v\n", sqls)) + //os.Stderr.WriteString(fmt.Sprintf("%v\n", sqls)) + // return emtpy for now. return []string{}, nil } diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 7ed40acda6d88..792e3343a2c07 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -16,8 +16,6 @@ package function import ( "encoding/json" - "fmt" - "os" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" @@ -65,7 +63,7 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, return moerr.NewInvalidInput(proc.Ctx, "cdc is not json object") } // hnsw sync - os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, dim=%d, json=%s\n", dbname, tblname, dim, cdcstr)) + //os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, dim=%d, json=%s\n", dbname, tblname, dim, cdcstr)) err = hnsw.CdcSync(proc, string(dbname), string(tblname), dim, &cdc) if err != nil { return err diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 379789bb0983d..5436412ab1527 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -196,7 +196,6 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) idx.FileSize = filesz - os.Stderr.WriteString(fmt.Sprintf("ToSQL: file %s size %d\n", idx.Path, idx.FileSize)) if idx.FileSize == 0 { return []string{}, nil } @@ -262,7 +261,6 @@ func (idx *HnswModel) Empty() (bool, error) { if err != nil { return false, err } - os.Stderr.WriteString(fmt.Sprintf("Check empty Size = %d, cap = %d\n", sz, idx.MaxCapacity)) return (sz == 0), nil } @@ -352,7 +350,6 @@ func (idx *HnswModel) loadChunk(proc *process.Process, stream_chan chan executor // 5. check the checksum to verify the correctness of the file func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, nthread int64, view bool) error { - os.Stderr.WriteString(fmt.Sprintf("LoadIndex %s\n", idx.Id)) if idx.Index != nil { // index already loaded. ignore return nil @@ -465,7 +462,6 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC // unload func (idx *HnswModel) Unload() error { - os.Stderr.WriteString(fmt.Sprintf("Unload index %s\n", idx.Id)) if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 9925580854cfa..a58aba0d51f66 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -48,8 +48,7 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc } defer res.Close() - os.Stderr.WriteString(sql) - os.Stderr.WriteString(fmt.Sprintf("\nnumber of batch = %d\n", len(res.Batches))) + //os.Stderr.WriteString(sql) if len(res.Batches) == 0 { return nil @@ -95,7 +94,7 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc if i == 0 { paramstr := paramvec.UnsafeGetStringAt(i) cname := colvec.UnsafeGetStringAt(i) - os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, paramstr, cname)) + //os.Stderr.WriteString(fmt.Sprintf("idxtbl %s, type %s, param %s, cname %s\n", idxtbl, algotyp, paramstr, cname)) idxtblcfg.KeyPart = cname if len(paramstr) > 0 { err := json.Unmarshal([]byte(paramstr), ¶m) @@ -159,8 +158,8 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc idxcfg.Usearch.ExpansionSearch = uint(val) } - os.Stderr.WriteString(fmt.Sprintf("idxtblcfg: %v\n", idxtblcfg)) - os.Stderr.WriteString(fmt.Sprintf("idxcfg: %v\n", idxcfg)) + //os.Stderr.WriteString(fmt.Sprintf("idxtblcfg: %v\n", idxtblcfg)) + //os.Stderr.WriteString(fmt.Sprintf("idxcfg: %v\n", idxcfg)) // load metadata indexes, err := LoadMetadata(proc, idxtblcfg.DbName, idxtblcfg.MetadataTable) @@ -168,10 +167,6 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc return err } - for i, idxx := range indexes { - os.Stderr.WriteString(fmt.Sprintf("meta: %d id=%s\n", i, idxx.Id)) - } - // assume CDC run in single thread // model id for CDC is cdc:1:0:timestamp uid := fmt.Sprintf("%s:%d:%d", "cdc", 1, 0) @@ -238,7 +233,7 @@ func (s *HnswSync) run(proc *process.Process) error { return err } if found { - os.Stderr.WriteString(fmt.Sprintf("searching... found model %d row %d\n", i, j)) + //os.Stderr.WriteString(fmt.Sprintf("searching... found model %d row %d\n", i, j)) midx[j] = i } } @@ -264,7 +259,7 @@ func (s *HnswSync) run(proc *process.Process) error { // last model not load yet so check the last.Len instead of Full() idxlen := uint(last.Len.Load()) if idxlen >= last.MaxCapacity { - os.Stderr.WriteString(fmt.Sprintf("full len %d, cap %d\n", idxlen, last.MaxCapacity)) + //os.Stderr.WriteString(fmt.Sprintf("full len %d, cap %d\n", idxlen, last.MaxCapacity)) id := s.getModelId() // model is already full, create a new model for insert newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) @@ -275,7 +270,7 @@ func (s *HnswSync) run(proc *process.Process) error { last = newmodel } else { - os.Stderr.WriteString(fmt.Sprintf("load model with index %d\n", len(s.indexes)-1)) + //os.Stderr.WriteString(fmt.Sprintf("load model with index %d\n", len(s.indexes)-1)) // load last last.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) @@ -320,7 +315,7 @@ func (s *HnswSync) run(proc *process.Process) error { case vectorindex.CDC_DELETE: if midx[i] == -1 { // cannot find key from existing models. ignore it - os.Stderr.WriteString("DELETE NOT FOUND\n") + //os.Stderr.WriteString("DELETE NOT FOUND\n") continue } @@ -364,9 +359,11 @@ func (s *HnswSync) run(proc *process.Process) error { } func (s *HnswSync) runSqls(proc *process.Process, sqls []string) error { - for _, s := range sqls { - os.Stderr.WriteString(fmt.Sprintf("sql : %s\n", s)) - } + /* + for _, s := range sqls { + os.Stderr.WriteString(fmt.Sprintf("sql : %s\n", s)) + } + */ opts := executor.Options{} err := runTxn(proc, func(exec executor.TxnExecutor) error { for _, sql := range sqls { From 50be8dbee4db1f3c545b2775d84bed1bcfac9ab7 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 5 Jun 2025 16:12:42 +0100 Subject: [PATCH 087/335] update and comments --- pkg/cdc/hnsw_sinker.go | 7 +++++-- pkg/sql/compile/util.go | 5 +++-- pkg/vectorindex/hnsw/model.go | 2 +- pkg/vectorindex/hnsw/sync.go | 3 +++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index b15fecd07c096..a56f6969cf6a3 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -14,8 +14,11 @@ package cdc -// to retrieve the index table from mo_catalog -// select * from mo_catalog.mo_indexes where table_id = (select rel_id from mo_tables where relname = "tbl" and reldatabase = "db"); +// hnswSyncSinker is to update HNSW index via CDC. +// It will read CDC changes and create JSON as input to function hnsw_cdc_update(dbname, tablename, vector_dimenion, json) +// You can refer the JSON format from vectorindex.VectorIndexCdc +// Single batch will split into multiple json objects and each json has maximum 8192 records (see vectorindex.VectorIndexCdc). +// Transaction function ExecTxn() used to make sure single batch (multiple json objects) can be updated in single transaction. import ( "bytes" diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index 7c92549fda755..1a01954e26a5a 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -594,7 +594,8 @@ func genCdcHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDef, sqls = append(sqls, sql) //os.Stderr.WriteString(fmt.Sprintf("%v\n", sqls)) + // TODO: HNSWCDC remove the line below to run the above SQLs + sqls = sqls[:0] - // return emtpy for now. - return []string{}, nil + return sqls, nil } diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 5436412ab1527..ac0c0749e79e2 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -32,7 +32,7 @@ import ( usearch "github.com/unum-cloud/usearch/golang" ) -// Hnsw Build index implementation +// HnswModel struct - This structure shares with Search, Build and Sync type HnswModel struct { Id string Index *usearch.Index diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index a58aba0d51f66..343c09be77c99 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -32,6 +32,8 @@ import ( "github.com/matrixorigin/matrixone/pkg/vm/process" ) +// CdcSync is the main function to update hnsw index via CDC. SQL function hnsw_cdc_update() will call this function. + const ( catalogsql = "select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s') and algo='hnsw';" ) @@ -41,6 +43,7 @@ var runCatalogSql = sqlexec.RunSql func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { + // get index catalog sql := fmt.Sprintf(catalogsql, tbl, db) res, err := runCatalogSql(proc, sql) if err != nil { From 9144730433dedd141b9533a1d9984c03ee26fa7e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 6 Jun 2025 15:44:57 +0100 Subject: [PATCH 088/335] debug --- pkg/cdc/hnsw_sinker.go | 34 ++++++++++++++++++- pkg/sql/plan/function/func_hnsw.go | 3 ++ pkg/vectorindex/hnsw/model.go | 5 +++ .../cases/vector/vector_hnsw_sync.result | 21 ++++-------- .../cases/vector/vector_hnsw_sync.sql | 12 +++---- 5 files changed, 53 insertions(+), 22 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index a56f6969cf6a3..4f2f3df24cc3e 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -227,9 +227,30 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { closed = true return } - //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) if bytes.Equal(sqlBuf, begin) { txnbegin = true + } else if bytes.Equal(sqlBuf, commit) { + os.Stderr.WriteString("Run: wait for begin but commit\n") + } else if bytes.Equal(sqlBuf, rollback) { + os.Stderr.WriteString("Run: wait for begin but rollback\n") + } else if bytes.Equal(sqlBuf, dummy) { + // pass + } else { + func() { + newctx, cancel := context.WithTimeout(context.Background(), 12*time.Hour) + defer cancel() + //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) + os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN but sql. execute anyway\n")) + opts := executor.Options{} + res, err := s.exec.Exec(newctx, string(sqlBuf), opts) + if err != nil { + logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) + s.SetError(err) + } + res.Close() + }() } } } @@ -313,6 +334,7 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { watermark := s.watermarkUpdater.GetFromMem(s.dbTblInfo.SourceDbName, s.dbTblInfo.SourceTblName) if data.toTs.LE(&watermark) { + os.Stderr.WriteString("unexpected watermark\n") logutil.Errorf("cdc hnswSyncSinker(%v): unexpected watermark: %s, current watermark: %s", s.dbTblInfo, data.toTs.ToString(), watermark.ToString()) return @@ -321,6 +343,14 @@ func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { s.cdc.End = data.toTs.ToString() if data.noMoreData { + + os.Stderr.WriteString("no more data\n") + if data.checkpointBat != nil { + os.Stderr.WriteString(fmt.Sprintf("no more data sinkSnapshot batlen %d\n", batchRowCount(data.checkpointBat))) + } + if data.insertAtmBatch != nil { + os.Stderr.WriteString(fmt.Sprintf("no more data sinkTail insertBat %d, deletBat = %d\n", data.insertAtmBatch.RowCount(), data.deleteAtmBatch.RowCount())) + } // complete sql statement err := s.sendSql() if err != nil { @@ -335,8 +365,10 @@ func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { }() if data.outputTyp == OutputTypeSnapshot { + os.Stderr.WriteString(fmt.Sprintf("sinkSnapshot batlen %d\n", batchRowCount(data.checkpointBat))) s.sinkSnapshot(ctx, data.checkpointBat) } else if data.outputTyp == OutputTypeTail { + os.Stderr.WriteString(fmt.Sprintf("sinkTail insertBat %d, deletBat = %d\n", data.insertAtmBatch.RowCount(), data.deleteAtmBatch.RowCount())) s.sinkTail(ctx, data.insertAtmBatch, data.deleteAtmBatch) } else { s.SetError(moerr.NewInternalError(ctx, fmt.Sprintf("cdc hnswSyncSinker unexpected output type: %v", data.outputTyp))) diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 792e3343a2c07..494fed0004851 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -16,6 +16,7 @@ package function import ( "encoding/json" + "os" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" @@ -30,6 +31,7 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, return moerr.NewInvalidInput(proc.Ctx, "number of arguments != 4") } + os.Stderr.WriteString("hnsCdcUpdate START\n") dbVec := vector.GenerateFunctionStrParameter(ivecs[0]) tblVec := vector.GenerateFunctionStrParameter(ivecs[1]) dimVec := vector.GenerateFunctionFixedTypeParameter[int32](ivecs[2]) @@ -70,5 +72,6 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, } } + os.Stderr.WriteString("hnsCdcUpdate END\n") return nil } diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index ac0c0749e79e2..c892239588ea2 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -159,6 +159,11 @@ func (idx *HnswModel) SaveToFile() error { } idx.Checksum = chksum + idxlen, err := idx.Index.Len() + if err != nil { + return err + } + os.Stderr.WriteString(fmt.Sprintf("hnsw save to idx %s, len = %d\n", idx.Id, idxlen)) // free memory err = idx.Index.Destroy() if err != nil { diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index b4239c8f1fdc8..109417901abe0 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -7,15 +7,12 @@ create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 drop pitr if exists `__mo_table_pitr_hnsw`; create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc vector_index_01 range 2 'h'; create cdc `__mo_cdc_hnsw_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.vector_index_01' {'Level'='table'}; -select sleep(30); -sleep(30) -0 insert into vector_index_01 values (0, "[1,2,3]", 1); UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; insert into vector_index_01 values (1, "[2,3,4]", 1); DELETE FROM vector_index_01 WHERE a=1; -select sleep(10); -sleep(10) +select sleep(30); +sleep(30) 0 select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c @@ -34,15 +31,12 @@ create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTI drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc t2 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; -select sleep(30); -sleep(30) -0 load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; select count(*) from t2; count(*) 10000 -select sleep(15); -sleep(15) +select sleep(30); +sleep(30) 0 select * from t2 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; a b @@ -62,15 +56,12 @@ create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTI drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; -select sleep(30); -sleep(30) -0 load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; select count(*) from t3; count(*) 20000 -select sleep(15); -sleep(15) +select sleep(45); +sleep(45) 0 select * from t3 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; a b diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index 04efebe72d1e9..149c3e51dd1a4 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -14,7 +14,7 @@ create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc vector_index_01 range 2 'h create cdc `__mo_cdc_hnsw_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.vector_index_01' {'Level'='table'}; -- show cdc all; -select sleep(30); +-- select sleep(30); insert into vector_index_01 values (0, "[1,2,3]", 1); -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); @@ -28,7 +28,7 @@ insert into vector_index_01 values (1, "[2,3,4]", 1); DELETE FROM vector_index_01 WHERE a=1; -- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); -select sleep(10); +select sleep(30); -- test with multi-cn is tricky. since model is cached in memory, model may not be updated after CDC sync'd. The only way to test is to all INSERT/DELETE/UPDATE before SELECT. -- already update to [4,5,6], result is [4,5,6] @@ -50,13 +50,13 @@ create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTI drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc t2 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; -select sleep(30); +-- select sleep(30); load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; select count(*) from t2; -select sleep(15); +select sleep(30); select * from t2 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; @@ -87,13 +87,13 @@ drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; -select sleep(30); +-- select sleep(30); load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; select count(*) from t3; -select sleep(15); +select sleep(45); select * from t3 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; From e00b89ad6b7699c2d1ae5562e65d7c74b57b2f1c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 6 Jun 2025 16:09:57 +0100 Subject: [PATCH 089/335] fix sca --- pkg/cdc/hnsw_sinker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 4f2f3df24cc3e..779cfbb57f529 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -240,7 +240,7 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { newctx, cancel := context.WithTimeout(context.Background(), 12*time.Hour) defer cancel() //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) - os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN but sql. execute anyway\n")) + os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") opts := executor.Options{} res, err := s.exec.Exec(newctx, string(sqlBuf), opts) if err != nil { From 6da9b6804bada84446bfe74a02faccabaf4c098e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 9 Jun 2025 10:09:38 +0100 Subject: [PATCH 090/335] add test --- pkg/sql/plan/function/func_hnsw_test.go | 115 ++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 pkg/sql/plan/function/func_hnsw_test.go diff --git a/pkg/sql/plan/function/func_hnsw_test.go b/pkg/sql/plan/function/func_hnsw_test.go new file mode 100644 index 0000000000000..e6f1030c43726 --- /dev/null +++ b/pkg/sql/plan/function/func_hnsw_test.go @@ -0,0 +1,115 @@ +package function + +import ( + "testing" + + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/testutil" + "github.com/stretchr/testify/require" +) + +func TestHnswCdcUpdateFn(t *testing.T) { + tcs := []tcTemp{ + { + info: "nargs invalid", + inputs: []FunctionTestInput{ + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{true}), + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_int32.ToType(), + []int32{2}, []bool{false}), + }, + expect: NewFunctionTestResult(types.T_int64.ToType(), true, + []int64{0}, []bool{false}), + }, + + { + info: "dbname null", + inputs: []FunctionTestInput{ + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{true}), + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_int32.ToType(), + []int32{2}, []bool{false}), + NewFunctionTestInput(types.T_json.ToType(), + []string{""}, []bool{false}), + }, + expect: NewFunctionTestResult(types.T_int64.ToType(), true, + []int64{0}, []bool{false}), + }, + + { + info: "table name null", + inputs: []FunctionTestInput{ + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{true}), + NewFunctionTestInput(types.T_int32.ToType(), + []int32{2}, []bool{false}), + NewFunctionTestInput(types.T_json.ToType(), + []string{""}, []bool{false}), + }, + expect: NewFunctionTestResult(types.T_int64.ToType(), true, + []int64{0}, []bool{false}), + }, + + { + info: "dimension null", + inputs: []FunctionTestInput{ + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_int32.ToType(), + []int32{0}, []bool{true}), + NewFunctionTestInput(types.T_json.ToType(), + []string{""}, []bool{false}), + }, + expect: NewFunctionTestResult(types.T_int64.ToType(), true, + []int64{0}, []bool{false}), + }, + + { + info: "cdc json null", + inputs: []FunctionTestInput{ + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_int32.ToType(), + []int32{2}, []bool{false}), + NewFunctionTestInput(types.T_json.ToType(), + []string{""}, []bool{true}), + }, + expect: NewFunctionTestResult(types.T_int64.ToType(), true, + []int64{0}, []bool{false}), + }, + + { + info: "cdc json invalid", + inputs: []FunctionTestInput{ + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_varchar.ToType(), + []string{""}, []bool{false}), + NewFunctionTestInput(types.T_int32.ToType(), + []int32{2}, []bool{false}), + NewFunctionTestInput(types.T_json.ToType(), + []string{"{..."}, []bool{false}), + }, + expect: NewFunctionTestResult(types.T_int64.ToType(), true, + []int64{0}, []bool{false}), + }, + } + + proc := testutil.NewProcess() + for _, tc := range tcs { + fcTC := NewFunctionTestCase(proc, + tc.inputs, tc.expect, hnswCdcUpdate) + s, info := fcTC.Run() + require.True(t, s, info, tc.info) + } +} From b381acdc8573c29767303ddfcc21ec36603774e3 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 9 Jun 2025 10:53:08 +0100 Subject: [PATCH 091/335] add license --- pkg/sql/plan/function/func_hnsw_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkg/sql/plan/function/func_hnsw_test.go b/pkg/sql/plan/function/func_hnsw_test.go index e6f1030c43726..ca65212d6ffe3 100644 --- a/pkg/sql/plan/function/func_hnsw_test.go +++ b/pkg/sql/plan/function/func_hnsw_test.go @@ -1,3 +1,17 @@ +// Copyright 2021 - 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package function import ( From 644fbfa6cf144dea4e36bcef924369b9c4c988d8 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 9 Jun 2025 17:46:09 +0100 Subject: [PATCH 092/335] performance --- pkg/vectorindex/hnsw/model.go | 20 ++ pkg/vectorindex/hnsw/sync.go | 335 +++++++++++++++++++++++++--------- 2 files changed, 269 insertions(+), 86 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index c892239588ea2..d2b7cf77ec128 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -75,6 +75,11 @@ func NewHnswModelForBuild(id string, cfg vectorindex.IndexConfig, nthread int, m if err != nil { return nil, err } + + err = idx.Index.ChangeThreadsSearch(uint(nthread)) + if err != nil { + return nil, err + } return idx, nil } @@ -291,6 +296,16 @@ func (idx *HnswModel) Add(key int64, vec []float32) error { return idx.Index.Add(uint64(key), vec) } +// add vector without increment the counter. concurrency add will increment the counter before Add +func (idx *HnswModel) AddWithoutIncr(key int64, vec []float32) error { + if idx.Index == nil { + return moerr.NewInternalErrorNoCtx("usearch index is nil") + } + idx.Dirty.Store(true) + //idx.Len.Add(1) + return idx.Index.Add(uint64(key), vec) +} + // remove key func (idx *HnswModel) Remove(key int64) error { if idx.Index == nil { @@ -431,6 +446,11 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC return err } + err = usearchidx.ChangeThreadsAdd(uint(nthread)) + if err != nil { + return err + } + if view { err = usearchidx.Load(idx.Path) idx.View = true diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 343c09be77c99..81bfd2155ef9a 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -20,6 +20,8 @@ import ( "os" "strconv" "strings" + "sync" + "sync/atomic" "time" "github.com/matrixorigin/matrixone/pkg/catalog" @@ -76,7 +78,7 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc if err != nil { return err } - idxtblcfg.ThreadsBuild = val.(int64) + idxtblcfg.ThreadsBuild = vectorindex.GetConcurrencyForBuild(val.(int64)) idxcap, err := proc.GetResolveVariableFunc()("hnsw_max_index_capacity", true, false) if err != nil { @@ -85,7 +87,7 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc idxtblcfg.IndexCapacity = idxcap.(int64) } else { - idxtblcfg.ThreadsBuild = 0 + idxtblcfg.ThreadsBuild = vectorindex.GetConcurrencyForBuild(0) idxtblcfg.IndexCapacity = 1000000 } @@ -194,6 +196,11 @@ type HnswSync struct { cdc *vectorindex.VectorIndexCdc[float32] uid string ts int64 + ninsert atomic.Int32 + ndelete atomic.Int32 + nupdate atomic.Int32 + current *HnswModel + last *HnswModel } func (s *HnswSync) destroy() { @@ -203,14 +210,15 @@ func (s *HnswSync) destroy() { s.indexes = nil } -func (s *HnswSync) run(proc *process.Process) error { - var err error +func (s *HnswSync) checkContains(proc *process.Process) (maxcap uint, midx []int, err error) { + err_chan := make(chan error, s.tblcfg.ThreadsBuild) - maxcap := uint(s.tblcfg.IndexCapacity) + maxcap = uint(s.tblcfg.IndexCapacity) // try to find index cap cdclen := len(s.cdc.Data) - midx := make([]int, cdclen) + + midx = make([]int, cdclen) // reset idx to -1 for i := range midx { midx[i] = -1 @@ -220,34 +228,126 @@ func (s *HnswSync) run(proc *process.Process) error { for i, m := range s.indexes { err = m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) if err != nil { - return err + return 0, nil, err } if maxcap < m.MaxCapacity { maxcap = m.MaxCapacity } - for j, row := range s.cdc.Data { - switch row.Type { - case vectorindex.CDC_UPSERT, vectorindex.CDC_DELETE: - if midx[j] == -1 { - found, err := m.Contains(row.PKey) - if err != nil { - return err + var wg sync.WaitGroup + + nthread := int(s.tblcfg.ThreadsBuild) + for k := 0; k < nthread; k++ { + wg.Add(1) + go func() { + defer wg.Done() + for j, row := range s.cdc.Data { + + if j%nthread != k { + continue } - if found { - //os.Stderr.WriteString(fmt.Sprintf("searching... found model %d row %d\n", i, j)) - midx[j] = i + + switch row.Type { + case vectorindex.CDC_UPSERT, vectorindex.CDC_DELETE: + if midx[j] == -1 { + found, err := m.Contains(row.PKey) + if err != nil { + err_chan <- err + return + } + if found { + //os.Stderr.WriteString(fmt.Sprintf("searching... found model %d row %d\n", i, j)) + midx[j] = i + + if row.Type == vectorindex.CDC_UPSERT { + s.nupdate.Add(1) + } else { + s.ndelete.Add(1) + } + } + } } + } - } + }() + } + + wg.Wait() + if len(err_chan) > 0 { + return 0, nil, <-err_chan } m.Unload() } - current := (*HnswModel)(nil) - last := (*HnswModel)(nil) + return maxcap, midx, nil +} + +func (s *HnswSync) insertAll(proc *process.Process, maxcap uint) error { + var mu sync.Mutex + var wg sync.WaitGroup + err_chan := make(chan error, s.tblcfg.ThreadsBuild) + + nthread := int(s.tblcfg.ThreadsBuild) + for i := 0; i < nthread; i++ { + wg.Add(1) + go func() { + defer wg.Done() + + for j, row := range s.cdc.Data { + + if j%nthread != i { + continue + } + + // make sure last model won't unload when full and return full + // so that we can unload outside the mutex + last, full, err := func() (*HnswModel, bool, error) { + mu.Lock() + defer mu.Unlock() + last, err2 := s.getLastModel(proc, maxcap, false) + if err2 != nil { + return nil, false, err2 + } + // increment counter here to occupy last model and + last.Len.Add(1) + return last, last.Len.Load() >= int64(last.MaxCapacity), nil + }() + if err != nil { + err_chan <- err + return + } + + last.AddWithoutIncr(row.PKey, row.Vec) + if full { + last.Unload() + } + } + }() + } + + wg.Wait() + + if len(err_chan) > 0 { + return <-err_chan + } + + return nil +} + +func (s *HnswSync) run(proc *process.Process) error { + var err error + + maxcap, midx, err := s.checkContains(proc) + if err != nil { + return err + } + + s.ninsert.Store(int32(len(s.cdc.Data)) - s.nupdate.Load() - s.ndelete.Load()) + + s.current = (*HnswModel)(nil) + s.last = (*HnswModel)(nil) if len(s.indexes) == 0 { // create a new model and do insert id := s.getModelId() @@ -256,12 +356,12 @@ func (s *HnswSync) run(proc *process.Process) error { return err } s.indexes = append(s.indexes, newmodel) - last = newmodel + s.last = newmodel } else { - last = s.indexes[len(s.indexes)-1] + s.last = s.indexes[len(s.indexes)-1] // last model not load yet so check the last.Len instead of Full() - idxlen := uint(last.Len.Load()) - if idxlen >= last.MaxCapacity { + idxlen := uint(s.last.Len.Load()) + if idxlen >= s.last.MaxCapacity { //os.Stderr.WriteString(fmt.Sprintf("full len %d, cap %d\n", idxlen, last.MaxCapacity)) id := s.getModelId() // model is already full, create a new model for insert @@ -270,82 +370,139 @@ func (s *HnswSync) run(proc *process.Process) error { return err } s.indexes = append(s.indexes, newmodel) - last = newmodel + s.last = newmodel } else { //os.Stderr.WriteString(fmt.Sprintf("load model with index %d\n", len(s.indexes)-1)) // load last - last.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) + s.last.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) } } - for i, row := range s.cdc.Data { + os.Stderr.WriteString(fmt.Sprintf("len=%d, ninsert = %d, ndelete = %d, nupdate = %d\n", len(s.cdc.Data), s.ninsert.Load(), s.ndelete.Load(), s.nupdate.Load())) + + if len(s.cdc.Data) == int(s.ninsert.Load()) { + // pure insert and insert into parallel - switch row.Type { - case vectorindex.CDC_UPSERT: - if midx[i] == -1 { - // cannot find key from existing model. simple insert - last, err = s.getLastModel(proc, last, maxcap) + err = s.insertAll(proc, maxcap) + if err != nil { + return err + } + + /* + var mu sync.Mutex + var wg sync.WaitGroup + err_chan := make(chan error, s.tblcfg.ThreadsBuild) + + nthread := int(s.tblcfg.ThreadsBuild) + for i := 0; i < nthread; i++ { + wg.Add(1) + go func() { + defer wg.Done() + var err error + + for j, row := range s.cdc.Data { + + if j%nthread != i { + continue + } + + mu.Lock() + last, err = s.getLastModel(proc, current, last, maxcap) + if err != nil { + err_chan <- err + mu.Unlock() + return + } + // increment counter here to occupy last model and + // make sure last model is not overrided by using local variable thismodel + last.Len.Add(1) + thismodel := last + mu.Unlock() + + thismodel.AddWithoutIncr(row.PKey, row.Vec) + } + }() + } + + wg.Wait() + + if len(err_chan) > 0 { + return <-err_chan + } + */ + + } else { + var last *HnswModel + + for i, row := range s.cdc.Data { + + switch row.Type { + case vectorindex.CDC_UPSERT: + if midx[i] == -1 { + // cannot find key from existing model. simple insert + last, err = s.getLastModel(proc, maxcap, true) + if err != nil { + return err + } + // insert + err = last.Add(row.PKey, row.Vec) + if err != nil { + return err + } + + break + + } + current, err := s.getCurrentModel(proc, midx[i]) if err != nil { return err } - // insert - err = last.Add(row.PKey, row.Vec) + + // update + err = current.Remove(row.PKey) if err != nil { return err } - break - - } - current, err := s.getCurrentModel(proc, current, midx[i]) - if err != nil { - return err - } - - // update - err = current.Remove(row.PKey) - if err != nil { - return err - } + err = current.Add(row.PKey, row.Vec) + if err != nil { + return err + } - err = current.Add(row.PKey, row.Vec) - if err != nil { - return err - } + case vectorindex.CDC_DELETE: + if midx[i] == -1 { + // cannot find key from existing models. ignore it + //os.Stderr.WriteString("DELETE NOT FOUND\n") + continue + } - case vectorindex.CDC_DELETE: - if midx[i] == -1 { - // cannot find key from existing models. ignore it - //os.Stderr.WriteString("DELETE NOT FOUND\n") - continue - } + current, err := s.getCurrentModel(proc, midx[i]) + if err != nil { + return err + } - current, err := s.getCurrentModel(proc, current, midx[i]) - if err != nil { - return err - } + // delete + err = current.Remove(row.PKey) + if err != nil { + return err + } - // delete - err = current.Remove(row.PKey) - if err != nil { - return err - } + case vectorindex.CDC_INSERT: + last, err = s.getLastModel(proc, maxcap, true) + if err != nil { + return err + } - case vectorindex.CDC_INSERT: - last, err = s.getLastModel(proc, last, maxcap) - if err != nil { - return err + // insert + err = last.Add(row.PKey, row.Vec) + if err != nil { + return err + } } - // insert - err = last.Add(row.PKey, row.Vec) - if err != nil { - return err - } } - } // save to files and then save to database @@ -391,26 +548,32 @@ func (s *HnswSync) getModelId() string { return id } -func (s *HnswSync) getCurrentModel(proc *process.Process, current *HnswModel, idx int) (*HnswModel, error) { +func (s *HnswSync) getCurrentModel(proc *process.Process, idx int) (*HnswModel, error) { m := s.indexes[idx] - if current != m { - if current != nil { - current.Unload() + if s.current != m { + // check current == last, if not, safe to unload + if s.current != nil && s.current != s.last { + s.current.Unload() } m.LoadIndex(proc, s.idxcfg, s.tblcfg, s.tblcfg.ThreadsBuild, false) - current = m + s.current = m } - return current, nil + return s.current, nil } -func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap uint) (*HnswModel, error) { +func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint, unloadWhenFull bool) (*HnswModel, error) { - full, err := last.Full() + full, err := s.last.Full() if err != nil { return nil, err } if full { + // check current == last, if not, safe to unload + if unloadWhenFull && s.current != s.last { + s.last.Unload() + } + id := s.getModelId() // model is already full, create a new model for insert newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) @@ -418,11 +581,11 @@ func (s *HnswSync) getLastModel(proc *process.Process, last *HnswModel, maxcap u return nil, err } s.indexes = append(s.indexes, newmodel) - last = newmodel + s.last = newmodel } //os.Stderr.WriteString(fmt.Sprintf("getlast model full %v id = %s\n", full, last.Id)) - return last, nil + return s.last, nil } // generate SQL to update the secondary index tables From 1f7654cb4d41687680e867db199dca07e6674b66 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 9 Jun 2025 17:48:46 +0100 Subject: [PATCH 093/335] update --- pkg/vectorindex/hnsw/sync.go | 43 ------------------------------------ 1 file changed, 43 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 81bfd2155ef9a..93c30ec418046 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -390,49 +390,6 @@ func (s *HnswSync) run(proc *process.Process) error { return err } - /* - var mu sync.Mutex - var wg sync.WaitGroup - err_chan := make(chan error, s.tblcfg.ThreadsBuild) - - nthread := int(s.tblcfg.ThreadsBuild) - for i := 0; i < nthread; i++ { - wg.Add(1) - go func() { - defer wg.Done() - var err error - - for j, row := range s.cdc.Data { - - if j%nthread != i { - continue - } - - mu.Lock() - last, err = s.getLastModel(proc, current, last, maxcap) - if err != nil { - err_chan <- err - mu.Unlock() - return - } - // increment counter here to occupy last model and - // make sure last model is not overrided by using local variable thismodel - last.Len.Add(1) - thismodel := last - mu.Unlock() - - thismodel.AddWithoutIncr(row.PKey, row.Vec) - } - }() - } - - wg.Wait() - - if len(err_chan) > 0 { - return <-err_chan - } - */ - } else { var last *HnswModel From 8b6975cc28e24060c3e699a4d6f6f5bba9ef34e3 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 9 Jun 2025 17:49:53 +0100 Subject: [PATCH 094/335] update --- pkg/cdc/hnsw_sinker.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 779cfbb57f529..7ba2ce8ec484b 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -344,13 +344,7 @@ func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { if data.noMoreData { - os.Stderr.WriteString("no more data\n") - if data.checkpointBat != nil { - os.Stderr.WriteString(fmt.Sprintf("no more data sinkSnapshot batlen %d\n", batchRowCount(data.checkpointBat))) - } - if data.insertAtmBatch != nil { - os.Stderr.WriteString(fmt.Sprintf("no more data sinkTail insertBat %d, deletBat = %d\n", data.insertAtmBatch.RowCount(), data.deleteAtmBatch.RowCount())) - } + //os.Stderr.WriteString("no more data\n") // complete sql statement err := s.sendSql() if err != nil { From b8c3c15e9ad67c3b2d34b98d663c94dc1ddff610 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 10 Jun 2025 09:45:08 +0100 Subject: [PATCH 095/335] fix thread safe --- pkg/vectorindex/hnsw/sync.go | 52 +++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 93c30ec418046..a19b239a0b25b 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -301,24 +301,20 @@ func (s *HnswSync) insertAll(proc *process.Process, maxcap uint) error { continue } + // skip delete with key not found in model + if row.Type == vectorindex.CDC_DELETE { + continue + } + // make sure last model won't unload when full and return full // so that we can unload outside the mutex - last, full, err := func() (*HnswModel, bool, error) { - mu.Lock() - defer mu.Unlock() - last, err2 := s.getLastModel(proc, maxcap, false) - if err2 != nil { - return nil, false, err2 - } - // increment counter here to occupy last model and - last.Len.Add(1) - return last, last.Len.Load() >= int64(last.MaxCapacity), nil - }() + last, full, err := s.getLastModelAndIncrForSync(proc, maxcap, &mu) if err != nil { err_chan <- err return } + // Len counter already incremented. Just add to last model last.AddWithoutIncr(row.PKey, row.Vec) if full { last.Unload() @@ -399,7 +395,7 @@ func (s *HnswSync) run(proc *process.Process) error { case vectorindex.CDC_UPSERT: if midx[i] == -1 { // cannot find key from existing model. simple insert - last, err = s.getLastModel(proc, maxcap, true) + last, err = s.getLastModel(proc, maxcap) if err != nil { return err } @@ -447,7 +443,7 @@ func (s *HnswSync) run(proc *process.Process) error { } case vectorindex.CDC_INSERT: - last, err = s.getLastModel(proc, maxcap, true) + last, err = s.getLastModel(proc, maxcap) if err != nil { return err } @@ -518,7 +514,7 @@ func (s *HnswSync) getCurrentModel(proc *process.Process, idx int) (*HnswModel, return s.current, nil } -func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint, unloadWhenFull bool) (*HnswModel, error) { +func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint) (*HnswModel, error) { full, err := s.last.Full() if err != nil { @@ -527,7 +523,7 @@ func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint, unloadWhenFu if full { // check current == last, if not, safe to unload - if unloadWhenFull && s.current != s.last { + if s.current != s.last { s.last.Unload() } @@ -545,6 +541,32 @@ func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint, unloadWhenFu return s.last, nil } +func (s *HnswSync) getLastModelAndIncrForSync(proc *process.Process, maxcap uint, mu *sync.Mutex) (*HnswModel, bool, error) { + + mu.Lock() + defer mu.Unlock() + + full := (s.last.Len.Load() >= int64(s.last.MaxCapacity)) + if full { + id := s.getModelId() + // model is already full, create a new model for insert + newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) + if err != nil { + return nil, false, err + } + s.indexes = append(s.indexes, newmodel) + s.last = newmodel + + } + //os.Stderr.WriteString(fmt.Sprintf("getlast model full %v id = %s\n", full, last.Id)) + + // pre-occupy this model by increment a Len counter and do Add() outside the mutex + // make sure only one call can get full = true + idxlen := s.last.Len.Add(1) + full = (idxlen >= int64(s.last.MaxCapacity)) + return s.last, full, nil +} + // generate SQL to update the secondary index tables // 1. sync the metadata table // 2. sync the index file to index table From a964de2cf677ff1723105d9b72b3eee26126f2f0 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 10 Jun 2025 13:55:33 +0100 Subject: [PATCH 096/335] cleanup --- pkg/cdc/hnsw_sinker.go | 16 ++++++---------- pkg/sql/plan/function/func_hnsw.go | 6 +++--- pkg/vectorindex/hnsw/model.go | 4 +++- pkg/vectorindex/hnsw/sync.go | 5 ++++- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 7ba2ce8ec484b..1cf045d5d2666 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -67,7 +67,7 @@ func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { // sql executor v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) if !ok { - os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) + //os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) return nil, moerr.NewNotSupportedNoCtx("no implement sqlExecutor") } exec := v.(executor.SQLExecutor) @@ -230,17 +230,16 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { if bytes.Equal(sqlBuf, begin) { txnbegin = true } else if bytes.Equal(sqlBuf, commit) { - os.Stderr.WriteString("Run: wait for begin but commit\n") + // pass } else if bytes.Equal(sqlBuf, rollback) { - os.Stderr.WriteString("Run: wait for begin but rollback\n") + // pass } else if bytes.Equal(sqlBuf, dummy) { // pass } else { func() { newctx, cancel := context.WithTimeout(context.Background(), 12*time.Hour) defer cancel() - //os.Stderr.WriteString(fmt.Sprintf("Wait for BEGIN.... %s\n", string(sqlBuf))) - os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") + //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") opts := executor.Options{} res, err := s.exec.Exec(newctx, string(sqlBuf), opts) if err != nil { @@ -300,7 +299,6 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { opts) if err != nil { moe, ok := err.(*moerr.Error) - //os.Stderr.WriteString(fmt.Sprintf("error from txn %v, ok %v\n", err, ok)) if ok { if moe.ErrorCode() == moerr.ErrQueryInterrupted { // skip rollback error @@ -334,7 +332,6 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { watermark := s.watermarkUpdater.GetFromMem(s.dbTblInfo.SourceDbName, s.dbTblInfo.SourceTblName) if data.toTs.LE(&watermark) { - os.Stderr.WriteString("unexpected watermark\n") logutil.Errorf("cdc hnswSyncSinker(%v): unexpected watermark: %s, current watermark: %s", s.dbTblInfo, data.toTs.ToString(), watermark.ToString()) return @@ -344,7 +341,6 @@ func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { if data.noMoreData { - //os.Stderr.WriteString("no more data\n") // complete sql statement err := s.sendSql() if err != nil { @@ -359,10 +355,10 @@ func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { }() if data.outputTyp == OutputTypeSnapshot { - os.Stderr.WriteString(fmt.Sprintf("sinkSnapshot batlen %d\n", batchRowCount(data.checkpointBat))) + //os.Stderr.WriteString(fmt.Sprintf("sinkSnapshot batlen %d\n", batchRowCount(data.checkpointBat))) s.sinkSnapshot(ctx, data.checkpointBat) } else if data.outputTyp == OutputTypeTail { - os.Stderr.WriteString(fmt.Sprintf("sinkTail insertBat %d, deletBat = %d\n", data.insertAtmBatch.RowCount(), data.deleteAtmBatch.RowCount())) + //os.Stderr.WriteString(fmt.Sprintf("sinkTail insertBat %d, deletBat = %d\n", data.insertAtmBatch.RowCount(), data.deleteAtmBatch.RowCount())) s.sinkTail(ctx, data.insertAtmBatch, data.deleteAtmBatch) } else { s.SetError(moerr.NewInternalError(ctx, fmt.Sprintf("cdc hnswSyncSinker unexpected output type: %v", data.outputTyp))) diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 494fed0004851..0956936b3d29a 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -16,10 +16,10 @@ package function import ( "encoding/json" - "os" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vectorindex/hnsw" "github.com/matrixorigin/matrixone/pkg/vm/process" @@ -31,7 +31,6 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, return moerr.NewInvalidInput(proc.Ctx, "number of arguments != 4") } - os.Stderr.WriteString("hnsCdcUpdate START\n") dbVec := vector.GenerateFunctionStrParameter(ivecs[0]) tblVec := vector.GenerateFunctionStrParameter(ivecs[1]) dimVec := vector.GenerateFunctionFixedTypeParameter[int32](ivecs[2]) @@ -64,14 +63,15 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, if err != nil { return moerr.NewInvalidInput(proc.Ctx, "cdc is not json object") } + logutil.Infof("hnsw_cdc_update: START db=%s, table=%s\n", dbname, tblname) // hnsw sync //os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, dim=%d, json=%s\n", dbname, tblname, dim, cdcstr)) err = hnsw.CdcSync(proc, string(dbname), string(tblname), dim, &cdc) if err != nil { return err } + logutil.Infof("hnsw_cdc_update: END db=%s, table=%s\n", dbname, tblname) } - os.Stderr.WriteString("hnsCdcUpdate END\n") return nil } diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index d2b7cf77ec128..340b6cdcda506 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -26,6 +26,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vm/process" @@ -168,7 +169,8 @@ func (idx *HnswModel) SaveToFile() error { if err != nil { return err } - os.Stderr.WriteString(fmt.Sprintf("hnsw save to idx %s, len = %d\n", idx.Id, idxlen)) + logutil.Infof("hnsw save to idx %s, len = %d\n", idx.Id, idxlen) + // free memory err = idx.Index.Destroy() if err != nil { diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index a19b239a0b25b..03517c8291728 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -26,6 +26,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" veccache "github.com/matrixorigin/matrixone/pkg/vectorindex/cache" @@ -376,7 +377,9 @@ func (s *HnswSync) run(proc *process.Process) error { } } - os.Stderr.WriteString(fmt.Sprintf("len=%d, ninsert = %d, ndelete = %d, nupdate = %d\n", len(s.cdc.Data), s.ninsert.Load(), s.ndelete.Load(), s.nupdate.Load())) + logutil.Infof("hnsw_cdc_update: db=%s, table=%s, cdc: len=%d, ninsert = %d, ndelete = %d, nupdate = %d\n", + s.tblcfg.DbName, s.tblcfg.SrcTable, + len(s.cdc.Data), s.ninsert.Load(), s.ndelete.Load(), s.nupdate.Load()) if len(s.cdc.Data) == int(s.ninsert.Load()) { // pure insert and insert into parallel From 8b962d022d2c9906ce2e0ab92412a80aa255848a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 10 Jun 2025 15:03:02 +0100 Subject: [PATCH 097/335] never unload when insertAll --- pkg/vectorindex/hnsw/sync.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 03517c8291728..388d931c2731e 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -308,8 +308,9 @@ func (s *HnswSync) insertAll(proc *process.Process, maxcap uint) error { } // make sure last model won't unload when full and return full - // so that we can unload outside the mutex - last, full, err := s.getLastModelAndIncrForSync(proc, maxcap, &mu) + // don't unload any model here. Quite dangerous and There is no harm not to unload because + // cdc size max is 8192. Model will eventually unload when save. + last, _, err := s.getLastModelAndIncrForSync(proc, maxcap, &mu) if err != nil { err_chan <- err return @@ -317,9 +318,6 @@ func (s *HnswSync) insertAll(proc *process.Process, maxcap uint) error { // Len counter already incremented. Just add to last model last.AddWithoutIncr(row.PKey, row.Vec) - if full { - last.Unload() - } } }() } From 3d7be051e692fc297f0985fd8496bd0ed06a031b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 11 Jun 2025 13:30:52 +0100 Subject: [PATCH 098/335] better message --- pkg/vectorindex/hnsw/model.go | 18 +++++++++++------- pkg/vectorindex/hnsw/sync_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 340b6cdcda506..010a5fa9a3825 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -165,12 +165,6 @@ func (idx *HnswModel) SaveToFile() error { } idx.Checksum = chksum - idxlen, err := idx.Index.Len() - if err != nil { - return err - } - logutil.Infof("hnsw save to idx %s, len = %d\n", idx.Id, idxlen) - // free memory err = idx.Index.Destroy() if err != nil { @@ -212,6 +206,8 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) return []string{}, nil } + logutil.Infof("HnswModel.ToSql idx %s, len = %d\n", idx.Id, idx.Len.Load()) + sqls := make([]string, 0, 5) sql := fmt.Sprintf("INSERT INTO `%s`.`%s` VALUES ", cfg.DbName, cfg.IndexTable) @@ -472,6 +468,8 @@ func (idx *HnswModel) LoadIndex(proc *process.Process, idxcfg vectorindex.IndexC } idx.Len.Store(int64(idxLen)) + logutil.Debugf("HnswModel.LoadIndex idx %s, len = %d\n", idx.Id, idxLen) + idx.MaxCapacity, err = idx.Index.Capacity() if err != nil { return err @@ -493,8 +491,14 @@ func (idx *HnswModel) Unload() error { return moerr.NewInternalErrorNoCtx("usearch index is nil") } + idxLen, err := idx.Index.Len() + if err != nil { + return err + } + logutil.Debugf("HnswModel.Unload idx %s, len = %d\n", idx.Id, idxLen) + // SaveToFile will check Dirty bit. If dirty is true, save to file before unload - err := idx.SaveToFile() + err = idx.SaveToFile() if err != nil { return err } diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index f50197d397301..26d614d7d7935 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -338,3 +338,33 @@ func TestSyncUpdateShuffle2Files(t *testing.T) { err := CdcSync(proc, "db", "src", 3, &cdc) require.Nil(t, err) } + +// should update and insert items +func TestSyncUpdateInsertShuffle2Files(t *testing.T) { + + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool("", m) + + runSql = mock_runSql_2files + runSql_streaming = mock_runSql_streaming_2files + runCatalogSql = mock_runCatalogSql + runTxn = mock_runTxn + + cdc := vectorindex.VectorIndexCdc[float32]{Data: make([]vectorindex.VectorIndexCdcEntry[float32], 0, 100)} + + key := int64(0) + v := []float32{0.1, 0.2, 0.3} + + // 0 - 199 key exists, 200 - 399 new insert + for i := 0; i < 400; i++ { + e := vectorindex.VectorIndexCdcEntry[float32]{Type: vectorindex.CDC_UPSERT, PKey: key, Vec: v} + cdc.Data = append(cdc.Data, e) + key += 1 + } + + rand.Seed(uint64(time.Now().UnixNano())) + rand.Shuffle(len(cdc.Data), func(i, j int) { cdc.Data[i], cdc.Data[j] = cdc.Data[j], cdc.Data[i] }) + + err := CdcSync(proc, "db", "src", 3, &cdc) + require.Nil(t, err) +} From 652783c1d37bcf61a8bf9b82b5e22351574cc054 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 12 Jun 2025 13:46:43 +0100 Subject: [PATCH 099/335] fix bvt -- drop pitr --- .../cases/vector/vector_hnsw_sync.result | 36 +++++++-------- .../cases/vector/vector_hnsw_sync.sql | 45 ++++++++++--------- 2 files changed, 41 insertions(+), 40 deletions(-) diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index 109417901abe0..758d48275e82b 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -2,34 +2,34 @@ SET experimental_hnsw_index = 1; drop database if exists hnsw_cdc; create database if not exists hnsw_cdc; use hnsw_cdc; -create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)); -create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_hnsw`; -create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc vector_index_01 range 2 'h'; -create cdc `__mo_cdc_hnsw_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.vector_index_01' {'Level'='table'}; -insert into vector_index_01 values (0, "[1,2,3]", 1); -UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; -insert into vector_index_01 values (1, "[2,3,4]", 1); -DELETE FROM vector_index_01 WHERE a=1; +create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); +create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +drop pitr if exists `__mo_table_pitr_t1`; +create pitr `__mo_table_pitr_t1` for table hnsw_cdc t1 range 2 'h'; +create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; +insert into t1 values (0, "[1,2,3]", 1); +UPDATE t1 set b = '[4,5,6]' where a = 0; +insert into t1 values (1, "[2,3,4]", 1); +DELETE FROM t1 WHERE a=1; select sleep(30); sleep(30) 0 -select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +select * from t1 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; a b c 0 [4, 5, 6] 1 -select * from vector_index_01 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; +select * from t1 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; a b c 0 [4, 5, 6] 1 -select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; +select * from t1 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; a b c 0 [4, 5, 6] 1 -drop cdc task `__mo_cdc_hnsw_idx01`; -drop pitr if exists `__mo_table_pitr_hnsw`; -drop table vector_index_01; +drop cdc task `__mo_cdc_t1_idx01`; +drop pitr if exists `__mo_table_pitr_t1`; +drop table t1; create table t2(a bigint primary key, b vecf32(128)); create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; -create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc t2 range 2 'h'; +drop pitr if exists `__mo_table_pitr_t2`; +create pitr `__mo_table_pitr_t2` for table hnsw_cdc t2 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; select count(*) from t2; @@ -45,7 +45,7 @@ select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, a b 0 [0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1] drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; +drop pitr if exists `__mo_table_pitr_t2`; drop table t2; create table t3(a bigint primary key, b vecf32(128)); load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index 149c3e51dd1a4..b816c2cc49e2f 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -5,50 +5,50 @@ drop database if exists hnsw_cdc; create database if not exists hnsw_cdc; use hnsw_cdc; -create table vector_index_01(a bigint primary key, b vecf32(3),c int,key c_k(c)); +create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); -- empty data -create index idx01 using hnsw on vector_index_01(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_hnsw`; -create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc vector_index_01 range 2 'h'; -create cdc `__mo_cdc_hnsw_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.vector_index_01' {'Level'='table'}; +create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; +drop pitr if exists `__mo_table_pitr_t1`; +create pitr `__mo_table_pitr_t1` for table hnsw_cdc t1 range 2 'h'; +create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; -- show cdc all; -- select sleep(30); -insert into vector_index_01 values (0, "[1,2,3]", 1); --- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); +insert into t1 values (0, "[1,2,3]", 1); +-- select hnsw_cdc_update('hnsw_cdc', 't1', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[1,2,3]}]}'); -UPDATE vector_index_01 set b = '[4,5,6]' where a = 0; --- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[4,5,6]}]}'); +UPDATE t1 set b = '[4,5,6]' where a = 0; +-- select hnsw_cdc_update('hnsw_cdc', 't1', 3, '{"start":"", "end":"", "cdc":[{"t":"U", "pk":0, "v":[4,5,6]}]}'); -insert into vector_index_01 values (1, "[2,3,4]", 1); --- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); +insert into t1 values (1, "[2,3,4]", 1); +-- select hnsw_cdc_update('hnsw_cdc', 't1', 3, '{"start":"", "end":"", "cdc":[{"t":"I", "pk":1, "v":[2,3,4]}]}'); -DELETE FROM vector_index_01 WHERE a=1; --- select hnsw_cdc_update('hnsw_cdc', 'vector_index_01', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); +DELETE FROM t1 WHERE a=1; +-- select hnsw_cdc_update('hnsw_cdc', 't1', 3, '{"start":"", "end":"", "cdc":[{"t":"D", "pk":0}]}'); select sleep(30); -- test with multi-cn is tricky. since model is cached in memory, model may not be updated after CDC sync'd. The only way to test is to all INSERT/DELETE/UPDATE before SELECT. -- already update to [4,5,6], result is [4,5,6] -select * from vector_index_01 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; +select * from t1 order by L2_DISTANCE(b,"[1,2,3]") ASC LIMIT 10; -- should return a=0 -select * from vector_index_01 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; +select * from t1 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; -- a=1 deleted. result is [4,5,6] -select * from vector_index_01 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; +select * from t1 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; -drop cdc task `__mo_cdc_hnsw_idx01`; -drop pitr if exists `__mo_table_pitr_hnsw`; -drop table vector_index_01; +drop cdc task `__mo_cdc_t1_idx01`; +drop pitr if exists `__mo_table_pitr_t1`; +drop table t1; -- t2 create table t2(a bigint primary key, b vecf32(128)); create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; -create pitr `__mo_table_pitr_hnsw` for table hnsw_cdc t2 range 2 'h'; +drop pitr if exists `__mo_table_pitr_t2`; +create pitr `__mo_table_pitr_t2` for table hnsw_cdc t2 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; -- select sleep(30); @@ -69,7 +69,7 @@ select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t2`; +drop pitr if exists `__mo_table_pitr_t2`; drop table t2; -- end t2 @@ -111,3 +111,4 @@ drop table t3; -- end t3 drop database hnsw_cdc; + From c0f162bda72bdd4b117c636c781911c4d0de1027 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 12 Jun 2025 17:23:13 +0100 Subject: [PATCH 100/335] cleanup --- pkg/vectorindex/hnsw/sync.go | 167 +++++++++++++++++++---------------- 1 file changed, 93 insertions(+), 74 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 388d931c2731e..ffc99dc181548 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -285,7 +285,7 @@ func (s *HnswSync) checkContains(proc *process.Process) (maxcap uint, midx []int return maxcap, midx, nil } -func (s *HnswSync) insertAll(proc *process.Process, maxcap uint) error { +func (s *HnswSync) insertAllInParallel(proc *process.Process, maxcap uint) error { var mu sync.Mutex var wg sync.WaitGroup err_chan := make(chan error, s.tblcfg.ThreadsBuild) @@ -331,15 +331,7 @@ func (s *HnswSync) insertAll(proc *process.Process, maxcap uint) error { return nil } -func (s *HnswSync) run(proc *process.Process) error { - var err error - - maxcap, midx, err := s.checkContains(proc) - if err != nil { - return err - } - - s.ninsert.Store(int32(len(s.cdc.Data)) - s.nupdate.Load() - s.ndelete.Load()) +func (s *HnswSync) setupModel(proc *process.Process, maxcap uint) error { s.current = (*HnswModel)(nil) s.last = (*HnswModel)(nil) @@ -375,87 +367,114 @@ func (s *HnswSync) run(proc *process.Process) error { } } - logutil.Infof("hnsw_cdc_update: db=%s, table=%s, cdc: len=%d, ninsert = %d, ndelete = %d, nupdate = %d\n", - s.tblcfg.DbName, s.tblcfg.SrcTable, - len(s.cdc.Data), s.ninsert.Load(), s.ndelete.Load(), s.nupdate.Load()) - - if len(s.cdc.Data) == int(s.ninsert.Load()) { - // pure insert and insert into parallel - - err = s.insertAll(proc, maxcap) - if err != nil { - return err - } - - } else { - var last *HnswModel - - for i, row := range s.cdc.Data { + return nil +} - switch row.Type { - case vectorindex.CDC_UPSERT: - if midx[i] == -1 { - // cannot find key from existing model. simple insert - last, err = s.getLastModel(proc, maxcap) - if err != nil { - return err - } - // insert - err = last.Add(row.PKey, row.Vec) - if err != nil { - return err - } +func (s *HnswSync) sequentialUpdate(proc *process.Process, maxcap uint, midx []int) error { - break + for i, row := range s.cdc.Data { - } - current, err := s.getCurrentModel(proc, midx[i]) + switch row.Type { + case vectorindex.CDC_UPSERT: + if midx[i] == -1 { + // cannot find key from existing model. simple insert + last, err := s.getLastModel(proc, maxcap) if err != nil { return err } - - // update - err = current.Remove(row.PKey) + // insert + err = last.Add(row.PKey, row.Vec) if err != nil { return err } - err = current.Add(row.PKey, row.Vec) - if err != nil { - return err - } + break - case vectorindex.CDC_DELETE: - if midx[i] == -1 { - // cannot find key from existing models. ignore it - //os.Stderr.WriteString("DELETE NOT FOUND\n") - continue - } + } + current, err := s.getCurrentModel(proc, midx[i]) + if err != nil { + return err + } - current, err := s.getCurrentModel(proc, midx[i]) - if err != nil { - return err - } + // update + err = current.Remove(row.PKey) + if err != nil { + return err + } - // delete - err = current.Remove(row.PKey) - if err != nil { - return err - } + err = current.Add(row.PKey, row.Vec) + if err != nil { + return err + } - case vectorindex.CDC_INSERT: - last, err = s.getLastModel(proc, maxcap) - if err != nil { - return err - } + case vectorindex.CDC_DELETE: + if midx[i] == -1 { + // cannot find key from existing models. ignore it + //os.Stderr.WriteString("DELETE NOT FOUND\n") + continue + } - // insert - err = last.Add(row.PKey, row.Vec) - if err != nil { - return err - } + current, err := s.getCurrentModel(proc, midx[i]) + if err != nil { + return err } + // delete + err = current.Remove(row.PKey) + if err != nil { + return err + } + + case vectorindex.CDC_INSERT: + last, err := s.getLastModel(proc, maxcap) + if err != nil { + return err + } + + // insert + err = last.Add(row.PKey, row.Vec) + if err != nil { + return err + } + } + + } + return nil +} + +func (s *HnswSync) run(proc *process.Process) error { + var err error + + // check contains and find the correspoding index id + maxcap, midx, err := s.checkContains(proc) + if err != nil { + return err + } + + s.ninsert.Store(int32(len(s.cdc.Data)) - s.nupdate.Load() - s.ndelete.Load()) + + // setup s.last and s.current model. s.late will point to the last model in metadata and s.current is nil + err = s.setupModel(proc, maxcap) + if err != nil { + return err + } + + logutil.Infof("hnsw_cdc_update: db=%s, table=%s, cdc: len=%d, ninsert = %d, ndelete = %d, nupdate = %d\n", + s.tblcfg.DbName, s.tblcfg.SrcTable, + len(s.cdc.Data), s.ninsert.Load(), s.ndelete.Load(), s.nupdate.Load()) + + if len(s.cdc.Data) == int(s.ninsert.Load()) { + // pure insert and insert into parallel + err = s.insertAllInParallel(proc, maxcap) + if err != nil { + return err + } + + } else { + // perform sequential update in single thread + err = s.sequentialUpdate(proc, maxcap, midx) + if err != nil { + return err } } From 4ce4a5d1de4f1fb4692aaad597ed220af4c2fa10 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 13 Jun 2025 11:02:53 +0100 Subject: [PATCH 101/335] take timing --- pkg/vectorindex/hnsw/sync.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index ffc99dc181548..a321c0811cc65 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -445,12 +445,18 @@ func (s *HnswSync) sequentialUpdate(proc *process.Process, maxcap uint, midx []i func (s *HnswSync) run(proc *process.Process) error { var err error + start := time.Now() + // check contains and find the correspoding index id maxcap, midx, err := s.checkContains(proc) if err != nil { return err } + t := time.Now() + + checkidxElapsed := t.Sub(start) + s.ninsert.Store(int32(len(s.cdc.Data)) - s.nupdate.Load() - s.ndelete.Load()) // setup s.last and s.current model. s.late will point to the last model in metadata and s.current is nil @@ -478,6 +484,9 @@ func (s *HnswSync) run(proc *process.Process) error { } } + t2 := time.Now() + updateElapsed := t2.Sub(t) + // save to files and then save to database sqls, err := s.ToSql(s.ts) if err != nil { @@ -488,7 +497,17 @@ func (s *HnswSync) run(proc *process.Process) error { return nil } - return s.runSqls(proc, sqls) + err = s.runSqls(proc, sqls) + if err != nil { + return err + } + + t3 := time.Now() + saveElapsed := t3.Sub(t2) + + logutil.Debugf("hnsw_cdc_update: time elapsed: checkidx %d ms, update %d ms, save %d ms", + checkidxElapsed.Milliseconds(), updateElapsed.Milliseconds(), saveElapsed.Milliseconds()) + return nil } func (s *HnswSync) runSqls(proc *process.Process, sqls []string) error { From ba61a0f8ee8186b42fb5e3e5496bd792c45dd028 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 19 Jun 2025 11:47:04 +0100 Subject: [PATCH 102/335] support values as input --- pkg/sql/plan/fulltext.go | 58 +++++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/pkg/sql/plan/fulltext.go b/pkg/sql/plan/fulltext.go index db4e9eea80497..0309b25b67b79 100644 --- a/pkg/sql/plan/fulltext.go +++ b/pkg/sql/plan/fulltext.go @@ -156,8 +156,16 @@ func (builder *QueryBuilder) getFullTextSql(fn *tree.FuncExpr, params string) (s return fulltext.PatternToSql(ps, mode, idxtbl, param.Parser, scoreAlgo) } -// select * from index_table, fulltext_index_tokenize(doc_id, concat(body, ' ', title)) -// arg list [params, doc_id, content] +// for table scan, primary key type is passed from TableDef +// select f.* from index_table CROSS APPLY fulltext_index_tokenize('param', doc_id, body, title) as f +// arg list [params, doc_id, part1, part2,...] + +// for values scan, primary key type is passed from second argument +// +// select f.* from (select cast(column_0 as bigint) as id, column_1 as body, column_2 as title from (values row(1, 'body content', 'title content'))) as src +// cross apply fulltext_index_tokenize('{"parser":"ngram"}', 23, id, body, title) as f; +// +// arg list [params, pktype, doc_id, part1, part2,...] func (builder *QueryBuilder) buildFullTextIndexTokenize(tbl *tree.TableFunction, ctx *BindContext, exprs []*plan.Expr, children []int32) (int32, error) { if len(exprs) < 3 { @@ -171,18 +179,31 @@ func (builder *QueryBuilder) buildFullTextIndexTokenize(tbl *tree.TableFunction, } scanNode := builder.qry.Nodes[children[0]] - if scanNode.NodeType != plan.Node_TABLE_SCAN { - return 0, moerr.NewNoConfig(builder.GetContext(), "child node is not a TABLE SCAN") - } - - pkPos := scanNode.TableDef.Name2ColIndex[scanNode.TableDef.Pkey.PkeyColName] - pkType := scanNode.TableDef.Cols[pkPos].Typ + if scanNode.NodeType == plan.Node_TABLE_SCAN { + if len(exprs) < 3 { + return 0, moerr.NewInvalidInput(builder.GetContext(), "Invalid number of arguments (NARGS < 3).") + } + pkPos := scanNode.TableDef.Name2ColIndex[scanNode.TableDef.Pkey.PkeyColName] + pkType := scanNode.TableDef.Cols[pkPos].Typ + // set type to source table primary key + colDefs[0].Typ = pkType + // remove the first argment and put the first argument to Param + exprs = exprs[1:] + } else { + // VALUES. First argument is Params and second argument is pkType + if len(exprs) < 4 { + return 0, moerr.NewInvalidInput(builder.GetContext(), "Invalid number of arguments (NARGS < 4).") + } + pkType, err := builder.getFullTextPkeyType(tbl.Func) + if err != nil { + return 0, err + } - // set type to source table primary key - colDefs[0].Typ = pkType + colDefs[0].Typ = pkType + // remove the first two argments and put the first argument to Param + exprs = exprs[2:] - // remove the first argment and put the first argument to Param - exprs = exprs[1:] + } node := &plan.Node{ NodeType: plan.Node_FUNCTION_SCAN, @@ -209,3 +230,16 @@ func (builder *QueryBuilder) getFullTextParams(fn *tree.FuncExpr) (string, error } return "", moerr.NewNoConfig(builder.GetContext(), "first parameter must be string") } + +func (builder *QueryBuilder) getFullTextPkeyType(fn *tree.FuncExpr) (plan.Type, error) { + if v, ok := fn.Exprs[1].(*tree.NumVal); ok { + if t64, ok2 := v.Int64(); ok2 { + return plan.Type{ + Id: int32(t64), + NotNullable: false, + }, nil + } + return plan.Type{}, moerr.NewNoConfig(builder.GetContext(), "second parameter must be int32") + } + return plan.Type{}, moerr.NewNoConfig(builder.GetContext(), "second parameter must be int32") +} From 67feed97adedfcba7c55ac89e8a5c31c831c4e2a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 19 Jun 2025 11:58:05 +0100 Subject: [PATCH 103/335] Comment on composite primary key --- pkg/sql/plan/fulltext.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/sql/plan/fulltext.go b/pkg/sql/plan/fulltext.go index 0309b25b67b79..7dde41f27c563 100644 --- a/pkg/sql/plan/fulltext.go +++ b/pkg/sql/plan/fulltext.go @@ -159,13 +159,18 @@ func (builder *QueryBuilder) getFullTextSql(fn *tree.FuncExpr, params string) (s // for table scan, primary key type is passed from TableDef // select f.* from index_table CROSS APPLY fulltext_index_tokenize('param', doc_id, body, title) as f // arg list [params, doc_id, part1, part2,...] - +// // for values scan, primary key type is passed from second argument +// arg list [params, pktype, doc_id, part1, part2,...] // // select f.* from (select cast(column_0 as bigint) as id, column_1 as body, column_2 as title from (values row(1, 'body content', 'title content'))) as src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 23, id, body, title) as f; // -// arg list [params, pktype, doc_id, part1, part2,...] +// for composite primary key, +// +// select f.* from (select serial(cast(column_0 as bigint), cast(column_1 as bigint)) as id, column_2 as body, column_3 as title from +// (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) as src +// cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; func (builder *QueryBuilder) buildFullTextIndexTokenize(tbl *tree.TableFunction, ctx *BindContext, exprs []*plan.Expr, children []int32) (int32, error) { if len(exprs) < 3 { From 1b8735b9f178d755cd51309c97b9b374c7b81a3f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 19 Jun 2025 14:13:52 +0100 Subject: [PATCH 104/335] comments --- pkg/sql/plan/fulltext.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/sql/plan/fulltext.go b/pkg/sql/plan/fulltext.go index 7dde41f27c563..48f2fa0f43c40 100644 --- a/pkg/sql/plan/fulltext.go +++ b/pkg/sql/plan/fulltext.go @@ -171,6 +171,9 @@ func (builder *QueryBuilder) getFullTextSql(fn *tree.FuncExpr, params string) (s // select f.* from (select serial(cast(column_0 as bigint), cast(column_1 as bigint)) as id, column_2 as body, column_3 as title from // (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) as src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; +// +// for composite key, use hex string X'abcd' as input of primary key and skip serial() +// select unhex(hex(serial(cast(0 as smallint), cast(1 as int)))); func (builder *QueryBuilder) buildFullTextIndexTokenize(tbl *tree.TableFunction, ctx *BindContext, exprs []*plan.Expr, children []int32) (int32, error) { if len(exprs) < 3 { From a12d40dfaa6761d4f5056a4fe789f3b53466df2b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 19 Jun 2025 16:56:54 +0100 Subject: [PATCH 105/335] add sql writer --- pkg/cdc/index_sqlwriter.go | 205 +++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 pkg/cdc/index_sqlwriter.go diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go new file mode 100644 index 0000000000000..89a36830ef17c --- /dev/null +++ b/pkg/cdc/index_sqlwriter.go @@ -0,0 +1,205 @@ +package cdc + +import ( + "context" + "fmt" + "strings" + + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/vectorindex" +) + +type IndexSqlWriter struct { + param string + tabledef *plan.TableDef + algo string + pkPos int + pkType *plan.Type + partsPos []int + partsType []*plan.Type + srcPos []int + lastCdcOp string + buf []byte + vbuf []byte +} + +func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, param string) *IndexSqlWriter { + return &IndexSqlWriter{algo: algo, tabledef: tabledef, param: param, vbuf: make([]byte, 0, 1024)} + w.srcPos[0] = w.pkPos + for i := range w.partsType { + w.srcPos[i+1] = w.partsPos[i] + } +} + +// return true when last op is empty or last op == current op +func (w *IndexSqlWriter) checkLastOp(op string) bool { + return len(w.lastCdcOp) == 0 || w.lastCdcOp == op +} + +func (w *IndexSqlWriter) writeRow(ctx context.Context, row []any) error { + + w.vbuf = appendString(w.vbuf, "ROW(") + + // pk + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkTyp, w.vbuf) + if err != nil { + return err + } + + for i, t := range w.partsType { + w.vbuf = appendString(w.vbuf, ",") + pos := w.partsPos[i] + w.vbuf, err = convertColIntoSql(ctx, row[pos], t, w.vbuf) + if err != nil { + return err + } + } + + w.vbuf = appendString(w.vbuf, ")") +} + +func (w *IndexSqlWriter) Upsert(ctx context.Context, row []any) error { + + if len(w.lastCdcOp) == 0 { + // init + w.lastCdcOp = vectorindex.CDC_UPSERT + return w.writeRow(ctx, row) + + } + + if w.lastCdcOp != vectorindex.CDC_UPSERT { + // different from previous operation and generate SQL before append new UPSERT + return moerr.NewInternalErrorNoCtx("IndexSqlWriter.Upsert: append different op") + } + + // same as previous operation and append to VALUES ROW(), ROW(),... + w.vbuf = appendString(w.vbuf, ",") + return w.writeRow(ctx, row) +} + +func (w *IndexSqlWriter) Insert(ctx context.Context, row []any) error { + + if len(w.lastCdcOp) == 0 { + // init + w.lastCdcOp = vectorindex.CDC_INSERT + return w.writeRow(ctx, row) + + } + + if w.lastCdcOp != vectorindex.CDC_INSERT { + // different from previous operation and generate SQL before append new UPSERT + return moerr.NewInternalErrorNoCtx("IndexSqlWriter.Insert: append different op") + } + + // same as previous operation and append to VALUES ROW(), ROW(),... + w.vbuf = appendString(w.vbuf, ",") + return w.writeRow(ctx, row) + + return nil +} + +func (w *IndexSqlWriter) Delete(ctx context.Context, row []any) error { + + if len(w.lastCdcOp) == 0 { + // init + w.lastCdcOp = vectorindex.CDC_DELETE + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkTyp, w.vbuf) + if err != nil { + return err + } + + } + + if w.lastCdcOp != vectorindex.CDC_DELETE { + // different from previous operation and generate SQL before append new UPSERT + return moerr.NewInternalErrorNoCtx("IndexSqlWriter.Delete: append different op") + } + + // same as previous operation and append to IN () + w.vbuf = appendString(w.vbuf, ",") + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkTyp, w.vbuf) + if err != nil { + return err + } + + return nil +} + +// with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from +// (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src +// cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; +func (w *IndexSqlWriter) ToFullTextSql() ([]byte, error) { + + if len(w.lastCdcOp) == 0 { + return nil, nil + } + + switch w.lastCdcOp { + case vectorindex.CDC_DELETE: + case vectorindex.CDC_UPSERT: + case vectorindex.CDC_INSERT: + default: + return moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid CDC type") + } + + return nil, nil +} + +func (w *IndexSqlWriter) ToIvfflatUpsert() ([]byte, error) { + + var sql string + + coldefs := make([]string, 0, len(w.srcPos)) + cnames := make([]string, 0, len(w.srcPos)) + for i, pos := range w.srcPos { + typ := w.tabledef.Cols[pos].Typ + newtype := types.New(types.T(typ.Id), typ.Width, typ.Scale) + typstr := t.DescString() + coldefs := append(coldef, fmt.Sprintf("CAST(column_%d as %s) as %d", i, typstr, w.tabledef.Cols[pos].Name)) + cnames := append(cnames, w.tabledef.Cols[pos].Name) + } + + cols := strings.Join(coldefs, ", ") + cnames_str := strings.Join(cnames, ", ") + + sql += fmt.Sprintf("REPLACE INTO %s ", tablename) + sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s))", cols, string(w.vbuf)) + sql += fmt.Sprintf(" SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", param, w.pkType.Id, cnames_str) +} + +// REPLACE INTO __mo_index_secondary_0197786c-285f-70cb-9337-e484a3ff92c4(__mo_index_centroid_fk_version, __mo_index_centroid_fk_id, __mo_index_pri_col, __mo_index_centroid_fk_entry) +// with centroid as (select * from __mo_index_secondary_0197786c-285f-70bb-b277-2cef56da590a where __mo_index_centroid_version = 0), +// src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) +// select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); +func (w *IndexSqlWriter) ToIvfflatSql() ([]byte, error) { + if len(w.lastCdcOp) == 0 { + return nil, nil + } + + switch w.lastCdcOp { + case vectorindex.CDC_DELETE: + case vectorindex.CDC_UPSERT: + case vectorindex.CDC_INSERT: + default: + return moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid CDC type") + } + + return nil, nil +} + +func (w *IndexSqlWriter) ToSql() ([]byte, error) { + w.lastCdcOp = "" + switch w.algo { + case "fulltext": + return w.ToFullTextSql() + case "ivfflat": + return w.ToIvfflatSql() + default: + return nil, moerr.NewInternalErrorNoCtx("invalid algorithm type.") + + } + + return nil, nil +} From acb438778429dc74608edc9f79bee00728c290ff Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 11:22:23 +0100 Subject: [PATCH 106/335] update --- pkg/cdc/fulltext_sinker_test.go | 49 +++++++++++++ pkg/cdc/index_sqlwriter.go | 122 +++++++++++++++++++++++--------- 2 files changed, 138 insertions(+), 33 deletions(-) create mode 100644 pkg/cdc/fulltext_sinker_test.go diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go new file mode 100644 index 0000000000000..bbc70d14eb5b7 --- /dev/null +++ b/pkg/cdc/fulltext_sinker_test.go @@ -0,0 +1,49 @@ +package cdc + +import ( + "testing" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/stretchr/testify/require" +) + +func newTestFulltextTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + "dummy": 2, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "fulltext_idx", + TableExist: true, + IndexAlgo: catalog.MOIndexFullTextAlgo.ToString(), + IndexAlgoTableType: "", + IndexTableName: "fulltext_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"parser":"ngram"}`, + }, + }, + } +} + +func TestNewFulltextSqlWriter(t *testing.T) { + tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) + + _, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) + require.Nil(t, err) + +} diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 89a36830ef17c..bc3fea7683365 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -11,39 +11,93 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) -type IndexSqlWriter struct { +type IndexSqlWriter interface { + CheckLastOp(op string) bool + Upsert(ctx context.Context, row []any) error + Insert(ctx context.Context, row []any) error + Delete(ctx context.Context, row []any) error + Full() bool + ToSql() ([]byte, error) +} + +type FulltextSqlWriter struct { param string tabledef *plan.TableDef + indexdef []*plan.IndexDef algo string - pkPos int - pkType *plan.Type - partsPos []int - partsType []*plan.Type - srcPos []int + pkPos int32 + pkType *types.Type + partsPos []int32 + partsType []*types.Type + srcPos []int32 + srcType []*types.Type lastCdcOp string buf []byte vbuf []byte } -func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, param string) *IndexSqlWriter { - return &IndexSqlWriter{algo: algo, tabledef: tabledef, param: param, vbuf: make([]byte, 0, 1024)} +// check FulltextSqlWriter is the interface of IndexSqlWriter +var _ IndexSqlWriter = new(FulltextSqlWriter) + +// check algo type to return the correct sql writer +func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + switch algo { + case "fulltext": + return NewFulltextSqlWriter(algo, tabledef, indexdef) + case "ivfflat": + default: + return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") + + } + return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") +} + +func NewFulltextSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &FulltextSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, vbuf: make([]byte, 0, 1024)} + + w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] + typ := tabledef.Cols[w.pkPos].Typ + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + + nparts := len(w.indexdef[0].Parts) + w.partsPos = make([]int32, nparts) + w.partsType = make([]*types.Type, nparts) + + for i, part := range w.indexdef[0].Parts { + w.partsPos[i] = tabledef.Name2ColIndex[part] + typ = tabledef.Cols[w.partsPos[i]].Typ + w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } + + w.srcPos = make([]int32, nparts+1) + w.srcType = make([]*types.Type, nparts+1) + w.srcPos[0] = w.pkPos + w.srcType[0] = w.pkType for i := range w.partsType { w.srcPos[i+1] = w.partsPos[i] + w.srcType[i+1] = w.partsType[i] } + + return w, nil +} + +func (w *FulltextSqlWriter) Full() bool { + return false } // return true when last op is empty or last op == current op -func (w *IndexSqlWriter) checkLastOp(op string) bool { +func (w *FulltextSqlWriter) CheckLastOp(op string) bool { return len(w.lastCdcOp) == 0 || w.lastCdcOp == op } -func (w *IndexSqlWriter) writeRow(ctx context.Context, row []any) error { +func (w *FulltextSqlWriter) writeRow(ctx context.Context, row []any) error { + var err error w.vbuf = appendString(w.vbuf, "ROW(") // pk - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkTyp, w.vbuf) + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) if err != nil { return err } @@ -58,9 +112,10 @@ func (w *IndexSqlWriter) writeRow(ctx context.Context, row []any) error { } w.vbuf = appendString(w.vbuf, ")") + return nil } -func (w *IndexSqlWriter) Upsert(ctx context.Context, row []any) error { +func (w *FulltextSqlWriter) Upsert(ctx context.Context, row []any) error { if len(w.lastCdcOp) == 0 { // init @@ -71,7 +126,7 @@ func (w *IndexSqlWriter) Upsert(ctx context.Context, row []any) error { if w.lastCdcOp != vectorindex.CDC_UPSERT { // different from previous operation and generate SQL before append new UPSERT - return moerr.NewInternalErrorNoCtx("IndexSqlWriter.Upsert: append different op") + return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Upsert: append different op") } // same as previous operation and append to VALUES ROW(), ROW(),... @@ -79,7 +134,7 @@ func (w *IndexSqlWriter) Upsert(ctx context.Context, row []any) error { return w.writeRow(ctx, row) } -func (w *IndexSqlWriter) Insert(ctx context.Context, row []any) error { +func (w *FulltextSqlWriter) Insert(ctx context.Context, row []any) error { if len(w.lastCdcOp) == 0 { // init @@ -90,7 +145,7 @@ func (w *IndexSqlWriter) Insert(ctx context.Context, row []any) error { if w.lastCdcOp != vectorindex.CDC_INSERT { // different from previous operation and generate SQL before append new UPSERT - return moerr.NewInternalErrorNoCtx("IndexSqlWriter.Insert: append different op") + return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Insert: append different op") } // same as previous operation and append to VALUES ROW(), ROW(),... @@ -100,12 +155,13 @@ func (w *IndexSqlWriter) Insert(ctx context.Context, row []any) error { return nil } -func (w *IndexSqlWriter) Delete(ctx context.Context, row []any) error { +func (w *FulltextSqlWriter) Delete(ctx context.Context, row []any) error { + var err error if len(w.lastCdcOp) == 0 { // init w.lastCdcOp = vectorindex.CDC_DELETE - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkTyp, w.vbuf) + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) if err != nil { return err } @@ -114,12 +170,12 @@ func (w *IndexSqlWriter) Delete(ctx context.Context, row []any) error { if w.lastCdcOp != vectorindex.CDC_DELETE { // different from previous operation and generate SQL before append new UPSERT - return moerr.NewInternalErrorNoCtx("IndexSqlWriter.Delete: append different op") + return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Delete: append different op") } // same as previous operation and append to IN () w.vbuf = appendString(w.vbuf, ",") - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkTyp, w.vbuf) + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) if err != nil { return err } @@ -130,7 +186,7 @@ func (w *IndexSqlWriter) Delete(ctx context.Context, row []any) error { // with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from // (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; -func (w *IndexSqlWriter) ToFullTextSql() ([]byte, error) { +func (w *FulltextSqlWriter) ToFullTextSql() ([]byte, error) { if len(w.lastCdcOp) == 0 { return nil, nil @@ -141,39 +197,39 @@ func (w *IndexSqlWriter) ToFullTextSql() ([]byte, error) { case vectorindex.CDC_UPSERT: case vectorindex.CDC_INSERT: default: - return moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid CDC type") + return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") } return nil, nil } -func (w *IndexSqlWriter) ToIvfflatUpsert() ([]byte, error) { +func (w *FulltextSqlWriter) ToIvfflatUpsert() ([]byte, error) { var sql string coldefs := make([]string, 0, len(w.srcPos)) cnames := make([]string, 0, len(w.srcPos)) for i, pos := range w.srcPos { - typ := w.tabledef.Cols[pos].Typ - newtype := types.New(types.T(typ.Id), typ.Width, typ.Scale) - typstr := t.DescString() - coldefs := append(coldef, fmt.Sprintf("CAST(column_%d as %s) as %d", i, typstr, w.tabledef.Cols[pos].Name)) - cnames := append(cnames, w.tabledef.Cols[pos].Name) + typstr := w.srcType[i].DescString() + coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as %s", i, typstr, w.tabledef.Cols[pos].Name)) + cnames = append(cnames, w.tabledef.Cols[pos].Name) } cols := strings.Join(coldefs, ", ") cnames_str := strings.Join(cnames, ", ") - sql += fmt.Sprintf("REPLACE INTO %s ", tablename) - sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s))", cols, string(w.vbuf)) - sql += fmt.Sprintf(" SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", param, w.pkType.Id, cnames_str) + //sql += fmt.Sprintf("REPLACE INTO %s ", tablename) + sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) + sql += fmt.Sprintf("SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", w.param, w.pkType.Oid, cnames_str) + + return nil, nil } // REPLACE INTO __mo_index_secondary_0197786c-285f-70cb-9337-e484a3ff92c4(__mo_index_centroid_fk_version, __mo_index_centroid_fk_id, __mo_index_pri_col, __mo_index_centroid_fk_entry) // with centroid as (select * from __mo_index_secondary_0197786c-285f-70bb-b277-2cef56da590a where __mo_index_centroid_version = 0), // src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) // select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); -func (w *IndexSqlWriter) ToIvfflatSql() ([]byte, error) { +func (w *FulltextSqlWriter) ToIvfflatSql() ([]byte, error) { if len(w.lastCdcOp) == 0 { return nil, nil } @@ -183,13 +239,13 @@ func (w *IndexSqlWriter) ToIvfflatSql() ([]byte, error) { case vectorindex.CDC_UPSERT: case vectorindex.CDC_INSERT: default: - return moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid CDC type") + return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") } return nil, nil } -func (w *IndexSqlWriter) ToSql() ([]byte, error) { +func (w *FulltextSqlWriter) ToSql() ([]byte, error) { w.lastCdcOp = "" switch w.algo { case "fulltext": From edc33bb42d889903901b12a93dfb8da3fefe201a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 11:36:06 +0100 Subject: [PATCH 107/335] update --- pkg/cdc/fulltext_sinker_test.go | 18 +++++++++++++++++- pkg/cdc/index_sqlwriter.go | 14 +++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index bbc70d14eb5b7..1c55c0e3a9c10 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -1,6 +1,8 @@ package cdc import ( + "context" + "fmt" "testing" "github.com/matrixorigin/matrixone/pkg/catalog" @@ -41,9 +43,23 @@ func newTestFulltextTableDef(pkName string, pkType types.T, vecColName string, v } func TestNewFulltextSqlWriter(t *testing.T) { + var ctx context.Context + tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) - _, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) + writer, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) + require.Nil(t, err) + + row := []any{any(int64(1000)), any([]uint8("hello world")), any(nil)} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{any(int64(2000)), any([]uint8("hello world")), any(nil)} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() require.Nil(t, err) + fmt.Println(string(bytes)) } diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index bc3fea7683365..6b96024ffdd7d 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -186,7 +186,7 @@ func (w *FulltextSqlWriter) Delete(ctx context.Context, row []any) error { // with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from // (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; -func (w *FulltextSqlWriter) ToFullTextSql() ([]byte, error) { +func (w *FulltextSqlWriter) ToFulltextSql() ([]byte, error) { if len(w.lastCdcOp) == 0 { return nil, nil @@ -195,6 +195,7 @@ func (w *FulltextSqlWriter) ToFullTextSql() ([]byte, error) { switch w.lastCdcOp { case vectorindex.CDC_DELETE: case vectorindex.CDC_UPSERT: + return w.ToFulltextUpsert() case vectorindex.CDC_INSERT: default: return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") @@ -203,7 +204,7 @@ func (w *FulltextSqlWriter) ToFullTextSql() ([]byte, error) { return nil, nil } -func (w *FulltextSqlWriter) ToIvfflatUpsert() ([]byte, error) { +func (w *FulltextSqlWriter) ToFulltextUpsert() ([]byte, error) { var sql string @@ -222,7 +223,8 @@ func (w *FulltextSqlWriter) ToIvfflatUpsert() ([]byte, error) { sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) sql += fmt.Sprintf("SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", w.param, w.pkType.Oid, cnames_str) - return nil, nil + fmt.Printf("SQL :%s\n", sql) + return []byte(sql), nil } // REPLACE INTO __mo_index_secondary_0197786c-285f-70cb-9337-e484a3ff92c4(__mo_index_centroid_fk_version, __mo_index_centroid_fk_id, __mo_index_pri_col, __mo_index_centroid_fk_entry) @@ -246,10 +248,12 @@ func (w *FulltextSqlWriter) ToIvfflatSql() ([]byte, error) { } func (w *FulltextSqlWriter) ToSql() ([]byte, error) { - w.lastCdcOp = "" + defer func() { + w.lastCdcOp = "" + }() switch w.algo { case "fulltext": - return w.ToFullTextSql() + return w.ToFulltextSql() case "ivfflat": return w.ToIvfflatSql() default: From 0a1f61cca1249d2d55683ae0fb16034755e1faf9 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 11:43:24 +0100 Subject: [PATCH 108/335] update --- pkg/cdc/fulltext_sinker_test.go | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index 1c55c0e3a9c10..253587ea217df 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -50,11 +50,33 @@ func TestNewFulltextSqlWriter(t *testing.T) { writer, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) require.Nil(t, err) - row := []any{any(int64(1000)), any([]uint8("hello world")), any(nil)} + row := []any{int64(1000), []uint8("hello world"), nil} err = writer.Upsert(ctx, row) require.Nil(t, err) - row = []any{any(int64(2000)), any([]uint8("hello world")), any(nil)} + row = []any{int64(2000), []uint8("hello world"), nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) + +} + +func TestNewFulltextSqlWriterCPkey(t *testing.T) { + var ctx context.Context + + tabledef := newTestFulltextTableDef("id", types.T_varbinary, "body", types.T_varchar, 256) + + writer, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) + require.Nil(t, err) + + row := []any{[]uint8("abcdef12"), []uint8("hello world"), nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{[]uint8("abc"), []uint8("hello world"), nil} err = writer.Upsert(ctx, row) require.Nil(t, err) From c393b7ca5c00a8d12da8de963403ff6a83fea610 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 11:56:53 +0100 Subject: [PATCH 109/335] update --- pkg/cdc/fulltext_sinker_test.go | 39 ++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index 253587ea217df..9d373a558f7de 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -42,6 +42,39 @@ func newTestFulltextTableDef(pkName string, pkType types.T, vecColName string, v } } +func newTestFulltextTableDef2Parts(pkName string, pkType types.T, vecColName string, vecColName2 string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + vecColName2: 2, + "dummy": 3, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: vecColName2, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "fulltext_idx", + TableExist: true, + IndexAlgo: catalog.MOIndexFullTextAlgo.ToString(), + IndexAlgoTableType: "", + IndexTableName: "fulltext_tbl", + Parts: []string{vecColName, vecColName2}, + IndexAlgoParams: `{"parser":"ngram"}`, + }, + }, + } +} + func TestNewFulltextSqlWriter(t *testing.T) { var ctx context.Context @@ -67,16 +100,16 @@ func TestNewFulltextSqlWriter(t *testing.T) { func TestNewFulltextSqlWriterCPkey(t *testing.T) { var ctx context.Context - tabledef := newTestFulltextTableDef("id", types.T_varbinary, "body", types.T_varchar, 256) + tabledef := newTestFulltextTableDef2Parts("__mo_cpkey", types.T_varbinary, "body", "title", types.T_varchar, 256) writer, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) require.Nil(t, err) - row := []any{[]uint8("abcdef12"), []uint8("hello world"), nil} + row := []any{[]uint8("abcdef12"), []uint8("hello world"), []uint8("one title"), nil} err = writer.Upsert(ctx, row) require.Nil(t, err) - row = []any{[]uint8("abc"), []uint8("hello world"), nil} + row = []any{[]uint8("abc"), []uint8("hello world"), []uint8("two title"), nil} err = writer.Upsert(ctx, row) require.Nil(t, err) From dabe24b9638e7c22d6e06c149b9d92129b13b520 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 12:22:00 +0100 Subject: [PATCH 110/335] update --- pkg/cdc/index_sqlwriter.go | 39 ++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 6b96024ffdd7d..00b7e67c75049 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -20,7 +20,9 @@ type IndexSqlWriter interface { ToSql() ([]byte, error) } -type FulltextSqlWriter struct { +type BaseIndexSqlWriter struct { + lastCdcOp string + vbuf []byte param string tabledef *plan.TableDef indexdef []*plan.IndexDef @@ -31,9 +33,10 @@ type FulltextSqlWriter struct { partsType []*types.Type srcPos []int32 srcType []*types.Type - lastCdcOp string - buf []byte - vbuf []byte +} + +type FulltextSqlWriter struct { + BaseIndexSqlWriter } // check FulltextSqlWriter is the interface of IndexSqlWriter @@ -53,7 +56,7 @@ func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.In } func NewFulltextSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &FulltextSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, vbuf: make([]byte, 0, 1024)} + w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, vbuf: make([]byte, 0, 1024)}} w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] typ := tabledef.Cols[w.pkPos].Typ @@ -82,16 +85,16 @@ func NewFulltextSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan return w, nil } -func (w *FulltextSqlWriter) Full() bool { +func (w *BaseIndexSqlWriter) Full() bool { return false } // return true when last op is empty or last op == current op -func (w *FulltextSqlWriter) CheckLastOp(op string) bool { +func (w *BaseIndexSqlWriter) CheckLastOp(op string) bool { return len(w.lastCdcOp) == 0 || w.lastCdcOp == op } -func (w *FulltextSqlWriter) writeRow(ctx context.Context, row []any) error { +func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { var err error w.vbuf = appendString(w.vbuf, "ROW(") @@ -115,7 +118,7 @@ func (w *FulltextSqlWriter) writeRow(ctx context.Context, row []any) error { return nil } -func (w *FulltextSqlWriter) Upsert(ctx context.Context, row []any) error { +func (w *BaseIndexSqlWriter) Upsert(ctx context.Context, row []any) error { if len(w.lastCdcOp) == 0 { // init @@ -134,7 +137,7 @@ func (w *FulltextSqlWriter) Upsert(ctx context.Context, row []any) error { return w.writeRow(ctx, row) } -func (w *FulltextSqlWriter) Insert(ctx context.Context, row []any) error { +func (w *BaseIndexSqlWriter) Insert(ctx context.Context, row []any) error { if len(w.lastCdcOp) == 0 { // init @@ -155,7 +158,7 @@ func (w *FulltextSqlWriter) Insert(ctx context.Context, row []any) error { return nil } -func (w *FulltextSqlWriter) Delete(ctx context.Context, row []any) error { +func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { var err error if len(w.lastCdcOp) == 0 { @@ -195,8 +198,9 @@ func (w *FulltextSqlWriter) ToFulltextSql() ([]byte, error) { switch w.lastCdcOp { case vectorindex.CDC_DELETE: case vectorindex.CDC_UPSERT: - return w.ToFulltextUpsert() + return w.ToFulltextUpsert(true) case vectorindex.CDC_INSERT: + return w.ToFulltextUpsert(false) default: return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") } @@ -204,7 +208,7 @@ func (w *FulltextSqlWriter) ToFulltextSql() ([]byte, error) { return nil, nil } -func (w *FulltextSqlWriter) ToFulltextUpsert() ([]byte, error) { +func (w *FulltextSqlWriter) ToFulltextUpsert(upsert bool) ([]byte, error) { var sql string @@ -219,7 +223,14 @@ func (w *FulltextSqlWriter) ToFulltextUpsert() ([]byte, error) { cols := strings.Join(coldefs, ", ") cnames_str := strings.Join(cnames, ", ") - //sql += fmt.Sprintf("REPLACE INTO %s ", tablename) + /* + if upsert { + sql += fmt.Sprintf("REPLACE INTO %s ", tablename) + } else { + sql += fmt.Sprintf("INSERT INTO %s ", tablename) + } + */ + sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) sql += fmt.Sprintf("SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", w.param, w.pkType.Oid, cnames_str) From 56bc1df2cfe6494e54f13d9b6279c0a9288ba9d2 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 12:25:19 +0100 Subject: [PATCH 111/335] update ivfflat --- pkg/cdc/index_sqlwriter.go | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 00b7e67c75049..44f8d7f4cbbc8 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -39,8 +39,13 @@ type FulltextSqlWriter struct { BaseIndexSqlWriter } +type IvfflatSqlWriter struct { + BaseIndexSqlWriter +} + // check FulltextSqlWriter is the interface of IndexSqlWriter var _ IndexSqlWriter = new(FulltextSqlWriter) +var _ IndexSqlWriter = new(IvfflatSqlWriter) // check algo type to return the correct sql writer func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { @@ -189,7 +194,10 @@ func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { // with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from // (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; -func (w *FulltextSqlWriter) ToFulltextSql() ([]byte, error) { +func (w *FulltextSqlWriter) ToSql() ([]byte, error) { + defer func() { + w.lastCdcOp = "" + }() if len(w.lastCdcOp) == 0 { return nil, nil @@ -242,7 +250,10 @@ func (w *FulltextSqlWriter) ToFulltextUpsert(upsert bool) ([]byte, error) { // with centroid as (select * from __mo_index_secondary_0197786c-285f-70bb-b277-2cef56da590a where __mo_index_centroid_version = 0), // src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) // select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); -func (w *FulltextSqlWriter) ToIvfflatSql() ([]byte, error) { +func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { + defer func() { + w.lastCdcOp = "" + }() if len(w.lastCdcOp) == 0 { return nil, nil } @@ -257,20 +268,3 @@ func (w *FulltextSqlWriter) ToIvfflatSql() ([]byte, error) { return nil, nil } - -func (w *FulltextSqlWriter) ToSql() ([]byte, error) { - defer func() { - w.lastCdcOp = "" - }() - switch w.algo { - case "fulltext": - return w.ToFulltextSql() - case "ivfflat": - return w.ToIvfflatSql() - default: - return nil, moerr.NewInternalErrorNoCtx("invalid algorithm type.") - - } - - return nil, nil -} From 5e0a2bdee95559b218bee5fa481b82935a956247 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 12:26:37 +0100 Subject: [PATCH 112/335] update ivfflat --- pkg/cdc/index_sqlwriter.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 44f8d7f4cbbc8..70957de8a5907 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -206,9 +206,9 @@ func (w *FulltextSqlWriter) ToSql() ([]byte, error) { switch w.lastCdcOp { case vectorindex.CDC_DELETE: case vectorindex.CDC_UPSERT: - return w.ToFulltextUpsert(true) + return w.toFulltextUpsert(true) case vectorindex.CDC_INSERT: - return w.ToFulltextUpsert(false) + return w.toFulltextUpsert(false) default: return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") } @@ -216,7 +216,7 @@ func (w *FulltextSqlWriter) ToSql() ([]byte, error) { return nil, nil } -func (w *FulltextSqlWriter) ToFulltextUpsert(upsert bool) ([]byte, error) { +func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { var sql string From 56b6a28ce44b5cf20ded5bbdd2ed03620c1a74e1 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 13:03:47 +0100 Subject: [PATCH 113/335] update --- pkg/cdc/index_sqlwriter.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 70957de8a5907..35ceb1cacbd4a 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -33,10 +33,12 @@ type BaseIndexSqlWriter struct { partsType []*types.Type srcPos []int32 srcType []*types.Type + dbName string } type FulltextSqlWriter struct { BaseIndexSqlWriter + indexTableName string } type IvfflatSqlWriter struct { @@ -87,6 +89,9 @@ func NewFulltextSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan w.srcType[i+1] = w.partsType[i] } + w.indexTableName = w.indexdef[0].IndexTableName + w.dbName = tabledef.DbName + return w, nil } @@ -224,20 +229,18 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { cnames := make([]string, 0, len(w.srcPos)) for i, pos := range w.srcPos { typstr := w.srcType[i].DescString() - coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as %s", i, typstr, w.tabledef.Cols[pos].Name)) + coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, w.tabledef.Cols[pos].Name)) cnames = append(cnames, w.tabledef.Cols[pos].Name) } cols := strings.Join(coldefs, ", ") cnames_str := strings.Join(cnames, ", ") - /* - if upsert { - sql += fmt.Sprintf("REPLACE INTO %s ", tablename) - } else { - sql += fmt.Sprintf("INSERT INTO %s ", tablename) - } - */ + if upsert { + sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbName, w.indexTableName) + } else { + sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbName, w.indexTableName) + } sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) sql += fmt.Sprintf("SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", w.param, w.pkType.Oid, cnames_str) From 04097a4cfaa011937fc48346ef78f24fbd7f0e4b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 13:05:32 +0100 Subject: [PATCH 114/335] add db --- pkg/cdc/fulltext_sinker_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index 9d373a558f7de..254d7392eea4e 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -39,6 +39,7 @@ func newTestFulltextTableDef(pkName string, pkType types.T, vecColName string, v IndexAlgoParams: `{"parser":"ngram"}`, }, }, + DbName: "mydb", } } @@ -72,6 +73,7 @@ func newTestFulltextTableDef2Parts(pkName string, pkType types.T, vecColName str IndexAlgoParams: `{"parser":"ngram"}`, }, }, + DbName: "mydb", } } From 9210d80d084a56a3f6011c3ff260681449e48dd9 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 13:20:12 +0100 Subject: [PATCH 115/335] reset --- pkg/cdc/index_sqlwriter.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 35ceb1cacbd4a..bdf728790831d 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -18,6 +18,7 @@ type IndexSqlWriter interface { Delete(ctx context.Context, row []any) error Full() bool ToSql() ([]byte, error) + Reset() } type BaseIndexSqlWriter struct { @@ -196,13 +197,16 @@ func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { return nil } +func (w *BaseIndexSqlWriter) Reset() { + w.lastCdcOp = "" + w.vbuf = w.vbuf[0:] +} + // with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from // (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; func (w *FulltextSqlWriter) ToSql() ([]byte, error) { - defer func() { - w.lastCdcOp = "" - }() + defer w.Reset() if len(w.lastCdcOp) == 0 { return nil, nil @@ -254,9 +258,8 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { // src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) // select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { - defer func() { - w.lastCdcOp = "" - }() + defer w.Reset() + if len(w.lastCdcOp) == 0 { return nil, nil } From 5aa47129401583df683f00de80fbcd98659cb609 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 13:23:40 +0100 Subject: [PATCH 116/335] empty --- pkg/cdc/index_sqlwriter.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index bdf728790831d..7839d1539aee5 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -19,6 +19,7 @@ type IndexSqlWriter interface { Full() bool ToSql() ([]byte, error) Reset() + Empty() bool } type BaseIndexSqlWriter struct { @@ -202,6 +203,10 @@ func (w *BaseIndexSqlWriter) Reset() { w.vbuf = w.vbuf[0:] } +func (w *BaseIndexSqlWriter) Empty() bool { + return len(w.vbuf) == 0 +} + // with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from // (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; From 09de3b1eb3e63cb7e1dd0eeae9ddab869a3ab89c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 13:38:07 +0100 Subject: [PATCH 117/335] hnsw sql writer --- pkg/cdc/index_sqlwriter.go | 45 +++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 7839d1539aee5..17167c3ea099a 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -47,9 +47,15 @@ type IvfflatSqlWriter struct { BaseIndexSqlWriter } +type HnswSqlWriter struct { + cdc *vectorindex.VectorIndexCdc[float32] + meta vectorindex.HnswCdcParam +} + // check FulltextSqlWriter is the interface of IndexSqlWriter var _ IndexSqlWriter = new(FulltextSqlWriter) var _ IndexSqlWriter = new(IvfflatSqlWriter) +var _ IndexSqlWriter = new(HnswSqlWriter) // check algo type to return the correct sql writer func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { @@ -200,7 +206,7 @@ func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { func (w *BaseIndexSqlWriter) Reset() { w.lastCdcOp = "" - w.vbuf = w.vbuf[0:] + w.vbuf = w.vbuf[:0] } func (w *BaseIndexSqlWriter) Empty() bool { @@ -279,3 +285,40 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { return nil, nil } + +func NewHnswSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + return &HnswSqlWriter{cdc: vectorindex.NewVectorIndexCdc[float32]()}, nil +} + +func (w *HnswSqlWriter) Reset() { + w.cdc.Data = w.cdc.Data[:0] +} + +func (w *HnswSqlWriter) Full() bool { + return len(w.cdc.Data) >= cap(w.cdc.Data) +} + +func (w *HnswSqlWriter) Empty() bool { + return len(w.cdc.Data) == 0 +} + +func (w *HnswSqlWriter) CheckLastOp(op string) bool { + return true +} + +func (w *HnswSqlWriter) Insert(ctx context.Context, row []any) error { + return nil +} + +func (w *HnswSqlWriter) Upsert(ctx context.Context, row []any) error { + return nil +} + +func (w *HnswSqlWriter) Delete(ctx context.Context, row []any) error { + return nil +} + +func (w *HnswSqlWriter) ToSql() ([]byte, error) { + + return nil, nil +} From 5a664e62d0aaab4d4d9bbe2588d0bfb3e968cc37 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 14:29:17 +0100 Subject: [PATCH 118/335] update hnsw --- pkg/cdc/index_sqlwriter.go | 48 +++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 17167c3ea099a..d4500964f4907 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -48,8 +48,17 @@ type IvfflatSqlWriter struct { } type HnswSqlWriter struct { - cdc *vectorindex.VectorIndexCdc[float32] - meta vectorindex.HnswCdcParam + cdc *vectorindex.VectorIndexCdc[float32] + meta vectorindex.HnswCdcParam + tabledef *plan.TableDef + indexdef []*plan.IndexDef + pkPos int32 + pkType *types.Type + partsPos []int32 + partsType []*types.Type + srcPos []int32 + srcType []*types.Type + dbName string } // check FulltextSqlWriter is the interface of IndexSqlWriter @@ -307,18 +316,51 @@ func (w *HnswSqlWriter) CheckLastOp(op string) bool { } func (w *HnswSqlWriter) Insert(ctx context.Context, row []any) error { + key, ok := row[w.pkPos].(int64) + if !ok { + return moerr.NewInternalError(ctx, "invalid key type. not int64") + } + v, ok := row[w.partsPos[0]].([]float32) + if !ok { + return moerr.NewInternalError(ctx, "invalid vector type. not []float32") + } + + w.cdc.Insert(key, v) return nil } func (w *HnswSqlWriter) Upsert(ctx context.Context, row []any) error { + key, ok := row[w.pkPos].(int64) + if !ok { + return moerr.NewInternalError(ctx, "invalid key type. not int64") + } + v, ok := row[w.partsPos[0]].([]float32) + if !ok { + return moerr.NewInternalError(ctx, "invalid vector type. not []float32") + } + + w.cdc.Upsert(key, v) return nil } func (w *HnswSqlWriter) Delete(ctx context.Context, row []any) error { + key, ok := row[w.pkPos].(int64) + if !ok { + return moerr.NewInternalError(ctx, "invalid key type. not int64") + } + w.cdc.Delete(key) return nil } func (w *HnswSqlWriter) ToSql() ([]byte, error) { - return nil, nil + // generate sql from cdc + js, err := w.cdc.ToJson() + if err != nil { + return nil, err + } + // pad extra space at the front and send SQL + sql := fmt.Sprintf("SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", w.meta.DbName, w.meta.Table, w.meta.Dimension, js) + + return []byte(sql), nil } From 77037ae5d32eedaaebf2faa0d1ea227dba32d49a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 14:42:40 +0100 Subject: [PATCH 119/335] template --- pkg/cdc/index_sqlwriter.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index d4500964f4907..a2c7408cbadf7 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -47,8 +47,8 @@ type IvfflatSqlWriter struct { BaseIndexSqlWriter } -type HnswSqlWriter struct { - cdc *vectorindex.VectorIndexCdc[float32] +type HnswSqlWriter[T types.RealNumbers] struct { + cdc *vectorindex.VectorIndexCdc[T] meta vectorindex.HnswCdcParam tabledef *plan.TableDef indexdef []*plan.IndexDef @@ -64,7 +64,7 @@ type HnswSqlWriter struct { // check FulltextSqlWriter is the interface of IndexSqlWriter var _ IndexSqlWriter = new(FulltextSqlWriter) var _ IndexSqlWriter = new(IvfflatSqlWriter) -var _ IndexSqlWriter = new(HnswSqlWriter) +var _ IndexSqlWriter = new(HnswSqlWriter[float32]) // check algo type to return the correct sql writer func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { @@ -296,31 +296,31 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { } func NewHnswSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - return &HnswSqlWriter{cdc: vectorindex.NewVectorIndexCdc[float32]()}, nil + return &HnswSqlWriter[float32]{cdc: vectorindex.NewVectorIndexCdc[float32]()}, nil } -func (w *HnswSqlWriter) Reset() { +func (w *HnswSqlWriter[T]) Reset() { w.cdc.Data = w.cdc.Data[:0] } -func (w *HnswSqlWriter) Full() bool { +func (w *HnswSqlWriter[T]) Full() bool { return len(w.cdc.Data) >= cap(w.cdc.Data) } -func (w *HnswSqlWriter) Empty() bool { +func (w *HnswSqlWriter[T]) Empty() bool { return len(w.cdc.Data) == 0 } -func (w *HnswSqlWriter) CheckLastOp(op string) bool { +func (w *HnswSqlWriter[T]) CheckLastOp(op string) bool { return true } -func (w *HnswSqlWriter) Insert(ctx context.Context, row []any) error { +func (w *HnswSqlWriter[T]) Insert(ctx context.Context, row []any) error { key, ok := row[w.pkPos].(int64) if !ok { return moerr.NewInternalError(ctx, "invalid key type. not int64") } - v, ok := row[w.partsPos[0]].([]float32) + v, ok := row[w.partsPos[0]].([]T) if !ok { return moerr.NewInternalError(ctx, "invalid vector type. not []float32") } @@ -329,12 +329,12 @@ func (w *HnswSqlWriter) Insert(ctx context.Context, row []any) error { return nil } -func (w *HnswSqlWriter) Upsert(ctx context.Context, row []any) error { +func (w *HnswSqlWriter[T]) Upsert(ctx context.Context, row []any) error { key, ok := row[w.pkPos].(int64) if !ok { return moerr.NewInternalError(ctx, "invalid key type. not int64") } - v, ok := row[w.partsPos[0]].([]float32) + v, ok := row[w.partsPos[0]].([]T) if !ok { return moerr.NewInternalError(ctx, "invalid vector type. not []float32") } @@ -343,7 +343,7 @@ func (w *HnswSqlWriter) Upsert(ctx context.Context, row []any) error { return nil } -func (w *HnswSqlWriter) Delete(ctx context.Context, row []any) error { +func (w *HnswSqlWriter[T]) Delete(ctx context.Context, row []any) error { key, ok := row[w.pkPos].(int64) if !ok { return moerr.NewInternalError(ctx, "invalid key type. not int64") @@ -352,7 +352,7 @@ func (w *HnswSqlWriter) Delete(ctx context.Context, row []any) error { return nil } -func (w *HnswSqlWriter) ToSql() ([]byte, error) { +func (w *HnswSqlWriter[T]) ToSql() ([]byte, error) { // generate sql from cdc js, err := w.cdc.ToJson() From 5200881e05be151a5903db6c01183814e43dbcae Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 15:08:27 +0100 Subject: [PATCH 120/335] update --- pkg/cdc/fulltext_sinker_test.go | 6 ++- pkg/cdc/index_sqlwriter.go | 90 ++++++++++++++++++++++++++++++--- 2 files changed, 88 insertions(+), 8 deletions(-) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index 254d7392eea4e..a29d072f94fa0 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -81,8 +81,9 @@ func TestNewFulltextSqlWriter(t *testing.T) { var ctx context.Context tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) + dbTableInfo := newTestDbTableInfo() - writer, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) + writer, err := NewIndexSqlWriter("fulltext", dbTableInfo, tabledef, tabledef.Indexes) require.Nil(t, err) row := []any{int64(1000), []uint8("hello world"), nil} @@ -103,8 +104,9 @@ func TestNewFulltextSqlWriterCPkey(t *testing.T) { var ctx context.Context tabledef := newTestFulltextTableDef2Parts("__mo_cpkey", types.T_varbinary, "body", "title", types.T_varchar, 256) + dbTableInfo := newTestDbTableInfo() - writer, err := NewIndexSqlWriter("fulltext", tabledef, tabledef.Indexes) + writer, err := NewIndexSqlWriter("fulltext", dbTableInfo, tabledef, tabledef.Indexes) require.Nil(t, err) row := []any{[]uint8("abcdef12"), []uint8("hello world"), []uint8("one title"), nil} diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index a2c7408cbadf7..ee43878659754 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -2,9 +2,11 @@ package cdc import ( "context" + "encoding/json" "fmt" "strings" + "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/pb/plan" @@ -28,6 +30,7 @@ type BaseIndexSqlWriter struct { param string tabledef *plan.TableDef indexdef []*plan.IndexDef + dbTblInfo *DbTableInfo algo string pkPos int32 pkType *types.Type @@ -52,6 +55,7 @@ type HnswSqlWriter[T types.RealNumbers] struct { meta vectorindex.HnswCdcParam tabledef *plan.TableDef indexdef []*plan.IndexDef + dbTblInfo *DbTableInfo pkPos int32 pkType *types.Type partsPos []int32 @@ -67,10 +71,10 @@ var _ IndexSqlWriter = new(IvfflatSqlWriter) var _ IndexSqlWriter = new(HnswSqlWriter[float32]) // check algo type to return the correct sql writer -func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { +func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { switch algo { case "fulltext": - return NewFulltextSqlWriter(algo, tabledef, indexdef) + return NewFulltextSqlWriter(algo, dbTblInfo, tabledef, indexdef) case "ivfflat": default: return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") @@ -79,8 +83,8 @@ func NewIndexSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.In return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") } -func NewFulltextSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, vbuf: make([]byte, 0, 1024)}} +func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] typ := tabledef.Cols[w.pkPos].Typ @@ -295,8 +299,82 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { return nil, nil } -func NewHnswSqlWriter(algo string, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - return &HnswSqlWriter[float32]{cdc: vectorindex.NewVectorIndexCdc[float32]()}, nil +func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &HnswSqlWriter[float32]{tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, cdc: vectorindex.NewVectorIndexCdc[float32]()} + + // check the tabledef and indexdef + if len(tabledef.Pkey.Names) != 1 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one primary key") + } + + if len(indexdef) != 2 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table must have 2 secondary tables") + } + + idxdef := indexdef[0] + if len(idxdef.Parts) != 1 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") + } + + paramstr := idxdef.IndexAlgoParams + var meta, storage string + for _, idx := range indexdef { + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Metadata { + meta = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Storage { + storage = idx.IndexTableName + } + } + + if len(meta) == 0 || len(storage) == 0 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or storage hidden index table not exist") + } + + var hnswparam vectorindex.HnswParam + if len(paramstr) > 0 { + err := json.Unmarshal([]byte(paramstr), &hnswparam) + if err != nil { + return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") + } + } + + w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] + typ := tabledef.Cols[w.pkPos].Typ + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + + nparts := len(idxdef.Parts) + w.partsPos = make([]int32, nparts) + w.partsType = make([]*types.Type, nparts) + + for i, part := range idxdef.Parts { + w.partsPos[i] = tabledef.Name2ColIndex[part] + typ = tabledef.Cols[w.partsPos[i]].Typ + w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } + + w.srcPos = make([]int32, nparts+1) + w.srcType = make([]*types.Type, nparts+1) + + w.srcPos[0] = w.pkPos + w.srcType[0] = w.pkType + for i := range w.partsType { + w.srcPos[i+1] = w.partsPos[i] + w.srcType[i+1] = w.partsType[i] + } + + w.dbName = tabledef.DbName + + w.meta = vectorindex.HnswCdcParam{ + MetaTbl: meta, + IndexTbl: storage, + DbName: dbTblInfo.SinkDbName, + Table: dbTblInfo.SinkTblName, + Params: hnswparam, + Dimension: tabledef.Cols[w.partsPos[0]].Typ.Width, + } + + return w, nil } func (w *HnswSqlWriter[T]) Reset() { From fa5023232a081a1f1cc7f9d62a12e542c1f51bfa Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 15:14:25 +0100 Subject: [PATCH 121/335] add test --- pkg/cdc/fulltext_sinker_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index a29d072f94fa0..248942080b50f 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -122,3 +122,24 @@ func TestNewFulltextSqlWriterCPkey(t *testing.T) { fmt.Println(string(bytes)) } + +func TestNewHnswSqlWriter(t *testing.T) { + var ctx context.Context + + tabledef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 3) + dbTableInfo := newTestDbTableInfo() + + writer, err := NewHnswSqlWriter("fulltext", dbTableInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + row := []any{int64(1000), []float32{1, 2, 3}, nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), []float32{5, 6, 7}, nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) +} From cfe6a0bbf2d359e06b95e34cfbf00f9134fd5e59 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 15:20:13 +0100 Subject: [PATCH 122/335] update test --- pkg/cdc/fulltext_sinker_test.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index 248942080b50f..0e4946737c9c5 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -136,7 +136,11 @@ func TestNewHnswSqlWriter(t *testing.T) { require.Nil(t, err) row = []any{int64(2000), []float32{5, 6, 7}, nil} - err = writer.Upsert(ctx, row) + err = writer.Insert(ctx, row) + require.Nil(t, err) + + row = []any{int64(3000), []float32{5, 6, 7}, nil} + err = writer.Delete(ctx, row) require.Nil(t, err) bytes, err := writer.ToSql() From 0b04c8fdee447120b841cfcc23c3e1b754003a8a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 16:18:34 +0100 Subject: [PATCH 123/335] ivf --- pkg/cdc/fulltext_sinker_test.go | 75 +++++++++++++++ pkg/cdc/index_sqlwriter.go | 156 +++++++++++++++++++++++++++----- 2 files changed, 209 insertions(+), 22 deletions(-) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index 0e4946737c9c5..7141a2f258ad2 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -11,6 +11,56 @@ import ( "github.com/stretchr/testify/require" ) +func newTestIvfflatTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + "dummy": 2, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "ivfidx", + TableExist: true, + IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), + IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Metadata, + IndexTableName: "meta_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, + }, + { + IndexName: "ivfidx", + TableExist: true, + IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), + IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Centroids, + IndexTableName: "centroids_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, + }, + { + IndexName: "ivfidx", + TableExist: true, + IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), + IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Entries, + IndexTableName: "entries_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, + }, + }, + DbName: "mydb", + } +} + func newTestFulltextTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { return &plan.TableDef{ Name: "test_orig_tbl", @@ -147,3 +197,28 @@ func TestNewHnswSqlWriter(t *testing.T) { require.Nil(t, err) fmt.Println(string(bytes)) } + +func TestNewIvfflatSqlWriter(t *testing.T) { + var ctx context.Context + + tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float32, 3) + dbTableInfo := newTestDbTableInfo() + + writer, err := NewIvfflatSqlWriter("ivfflat", dbTableInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + row := []any{int64(1000), []float32{1, 2, 3}, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), []float32{5, 6, 7}, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + row = []any{int64(3000), []float32{5, 6, 7}, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) +} diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index ee43878659754..e172938d6450f 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -48,6 +48,10 @@ type FulltextSqlWriter struct { type IvfflatSqlWriter struct { BaseIndexSqlWriter + centroids_tbl string + entries_tbl string + meta_tbl string + ivfparam vectorindex.IvfParam } type HnswSqlWriter[T types.RealNumbers] struct { @@ -277,28 +281,6 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { return []byte(sql), nil } -// REPLACE INTO __mo_index_secondary_0197786c-285f-70cb-9337-e484a3ff92c4(__mo_index_centroid_fk_version, __mo_index_centroid_fk_id, __mo_index_pri_col, __mo_index_centroid_fk_entry) -// with centroid as (select * from __mo_index_secondary_0197786c-285f-70bb-b277-2cef56da590a where __mo_index_centroid_version = 0), -// src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) -// select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); -func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { - defer w.Reset() - - if len(w.lastCdcOp) == 0 { - return nil, nil - } - - switch w.lastCdcOp { - case vectorindex.CDC_DELETE: - case vectorindex.CDC_UPSERT: - case vectorindex.CDC_INSERT: - default: - return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") - } - - return nil, nil -} - func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { w := &HnswSqlWriter[float32]{tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, cdc: vectorindex.NewVectorIndexCdc[float32]()} @@ -442,3 +424,133 @@ func (w *HnswSqlWriter[T]) ToSql() ([]byte, error) { return []byte(sql), nil } + +func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &IvfflatSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} + + if len(indexdef) != 3 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table must have 3 secondary tables") + } + + idxdef := indexdef[0] + if len(idxdef.Parts) != 1 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") + } + + paramstr := idxdef.IndexAlgoParams + var centroids_tbl, entries_tbl, meta_tbl string + for _, idx := range indexdef { + if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Metadata { + meta_tbl = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Centroids { + centroids_tbl = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Entries { + entries_tbl = idx.IndexTableName + } + } + + if len(centroids_tbl) == 0 || len(entries_tbl) == 0 || len(meta_tbl) == 0 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or centroids or entries hidden index table not exist") + } + + var ivfparam vectorindex.IvfParam + if len(paramstr) > 0 { + err := json.Unmarshal([]byte(paramstr), &ivfparam) + if err != nil { + return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") + } + } + + w.ivfparam = ivfparam + + w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] + typ := tabledef.Cols[w.pkPos].Typ + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + + nparts := len(w.indexdef[0].Parts) + w.partsPos = make([]int32, nparts) + w.partsType = make([]*types.Type, nparts) + + for i, part := range w.indexdef[0].Parts { + w.partsPos[i] = tabledef.Name2ColIndex[part] + typ = tabledef.Cols[w.partsPos[i]].Typ + w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } + + w.srcPos = make([]int32, nparts+1) + w.srcType = make([]*types.Type, nparts+1) + + w.srcPos[0] = w.pkPos + w.srcType[0] = w.pkType + for i := range w.partsType { + w.srcPos[i+1] = w.partsPos[i] + w.srcType[i+1] = w.partsType[i] + } + + w.centroids_tbl = centroids_tbl + w.entries_tbl = entries_tbl + w.meta_tbl = meta_tbl + + return w, nil +} + +// REPLACE INTO __mo_index_secondary_0197786c-285f-70cb-9337-e484a3ff92c4(__mo_index_centroid_fk_version, __mo_index_centroid_fk_id, __mo_index_pri_col, __mo_index_centroid_fk_entry) +// with centroid as (select * from __mo_index_secondary_0197786c-285f-70bb-b277-2cef56da590a where __mo_index_centroid_version = 0), +// src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) +// select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); +func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { + defer w.Reset() + + if len(w.lastCdcOp) == 0 { + return nil, nil + } + + switch w.lastCdcOp { + case vectorindex.CDC_DELETE: + case vectorindex.CDC_UPSERT: + return w.toIvfflatUpsert(true) + case vectorindex.CDC_INSERT: + return w.toIvfflatUpsert(false) + default: + return nil, moerr.NewInternalErrorNoCtx("IvfflatSqlWriter: invalid CDC type") + } + + return nil, nil +} + +func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { + + var sql string + + coldefs := make([]string, 0, len(w.srcPos)) + cnames := make([]string, 0, len(w.srcPos)) + for i, pos := range w.srcPos { + typstr := w.srcType[i].DescString() + coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, w.tabledef.Cols[pos].Name)) + cnames = append(cnames, w.tabledef.Cols[pos].Name) + } + + cols := strings.Join(coldefs, ", ") + cnames_str := strings.Join(cnames, ", ") + + if upsert { + sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) + } else { + sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) + } + + sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = %d ), ", w.dbTblInfo.SinkDbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, 0) + sql += fmt.Sprintf("src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) + sql += fmt.Sprintf("SELECT `%s`.`%s`, `%s`.`%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (%s, %s)", + w.dbTblInfo.SinkDbName, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, + w.dbTblInfo.SinkDbName, catalog.SystemSI_IVFFLAT_TblCol_Centroids_id, + cnames_str, + w.ivfparam.OpType, + catalog.SystemSI_IVFFLAT_TblCol_Centroids_centroid, + w.tabledef.Cols[w.partsPos[0]].Name) + + fmt.Printf("SQL :%s\n", sql) + return []byte(sql), nil +} From da1d2ecf028c3a2ef4c68dd6f4c1ca18ce3c25ba Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 16:24:00 +0100 Subject: [PATCH 124/335] update --- pkg/cdc/fulltext_sinker_test.go | 8 ++++---- pkg/cdc/index_sqlwriter.go | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/fulltext_sinker_test.go index 7141a2f258ad2..ca2415deb258a 100644 --- a/pkg/cdc/fulltext_sinker_test.go +++ b/pkg/cdc/fulltext_sinker_test.go @@ -201,20 +201,20 @@ func TestNewHnswSqlWriter(t *testing.T) { func TestNewIvfflatSqlWriter(t *testing.T) { var ctx context.Context - tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float32, 3) + tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float64, 3) dbTableInfo := newTestDbTableInfo() writer, err := NewIvfflatSqlWriter("ivfflat", dbTableInfo, tabledef, tabledef.Indexes) require.Nil(t, err) - row := []any{int64(1000), []float32{1, 2, 3}, nil} + row := []any{int64(1000), []float64{1, 2, 3}, nil} err = writer.Insert(ctx, row) require.Nil(t, err) - row = []any{int64(2000), []float32{5, 6, 7}, nil} + row = []any{int64(2000), []float64{5, 6, 7}, nil} err = writer.Insert(ctx, row) require.Nil(t, err) - row = []any{int64(3000), []float32{5, 6, 7}, nil} + row = []any{int64(3000), []float64{5, 6, 7}, nil} err = writer.Insert(ctx, row) require.Nil(t, err) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index e172938d6450f..e59741b01e9be 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -543,9 +543,9 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = %d ), ", w.dbTblInfo.SinkDbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, 0) sql += fmt.Sprintf("src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) - sql += fmt.Sprintf("SELECT `%s`.`%s`, `%s`.`%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (%s, %s)", - w.dbTblInfo.SinkDbName, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, - w.dbTblInfo.SinkDbName, catalog.SystemSI_IVFFLAT_TblCol_Centroids_id, + sql += fmt.Sprintf("SELECT `%s`, `%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (%s, %s)", + catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, + catalog.SystemSI_IVFFLAT_TblCol_Centroids_id, cnames_str, w.ivfparam.OpType, catalog.SystemSI_IVFFLAT_TblCol_Centroids_centroid, From 581a07d90b10d965ef8c27033f5f818c59002a5d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 16:31:01 +0100 Subject: [PATCH 125/335] version --- pkg/cdc/index_sqlwriter.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index e59741b01e9be..4d7522504c89d 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -541,9 +541,12 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) } - sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = %d ), ", w.dbTblInfo.SinkDbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, 0) + versql := fmt.Sprintf("SELECT CAST(%s as BIGINT) FROM `%s`.`%s` WHERE `%s` = 'version'", catalog.SystemSI_IVFFLAT_TblCol_Metadata_val, + w.dbTblInfo.SinkDbName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) + + sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = (%s) ), ", w.dbTblInfo.SinkDbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, versql) sql += fmt.Sprintf("src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) - sql += fmt.Sprintf("SELECT `%s`, `%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (%s, %s)", + sql += fmt.Sprintf("SELECT `%s`, `%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (`%s`, `%s`)", catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, catalog.SystemSI_IVFFLAT_TblCol_Centroids_id, cnames_str, From 09dc52d82937d6ed26549ccecae400f97afc54dc Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 16:41:44 +0100 Subject: [PATCH 126/335] update --- pkg/cdc/index_sqlwriter.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 4d7522504c89d..4b1cc6441c131 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -541,6 +541,12 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) } + sql += fmt.Sprintf("(`%s`, `%s`, `%s`, `%s`) ", + catalog.SystemSI_IVFFLAT_TblCol_Entries_version, + catalog.SystemSI_IVFFLAT_TblCol_Entries_id, + catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, + catalog.SystemSI_IVFFLAT_TblCol_Entries_entry) + versql := fmt.Sprintf("SELECT CAST(%s as BIGINT) FROM `%s`.`%s` WHERE `%s` = 'version'", catalog.SystemSI_IVFFLAT_TblCol_Metadata_val, w.dbTblInfo.SinkDbName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) From e04b63ce19a2f9cbd6d4941b2bad73e61fd3280a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 16:45:57 +0100 Subject: [PATCH 127/335] update --- pkg/cdc/index_sqlwriter.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 4b1cc6441c131..d5cd909c8da26 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -429,12 +429,12 @@ func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Tab w := &IvfflatSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} if len(indexdef) != 3 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table must have 3 secondary tables") + return nil, moerr.NewInternalErrorNoCtx("ivf index table must have 3 secondary tables") } idxdef := indexdef[0] if len(idxdef.Parts) != 1 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") + return nil, moerr.NewInternalErrorNoCtx("ivf index table only have one vector part") } paramstr := idxdef.IndexAlgoParams @@ -452,14 +452,14 @@ func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Tab } if len(centroids_tbl) == 0 || len(entries_tbl) == 0 || len(meta_tbl) == 0 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or centroids or entries hidden index table not exist") + return nil, moerr.NewInternalErrorNoCtx("ivf index table either meta or centroids or entries hidden index table not exist") } var ivfparam vectorindex.IvfParam if len(paramstr) > 0 { err := json.Unmarshal([]byte(paramstr), &ivfparam) if err != nil { - return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") + return nil, moerr.NewInternalErrorNoCtx("ivf sync sinker. failed to convert ivf param json") } } From 17057d78e149a335610bcee8d4cad5e0f45e7851 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 20 Jun 2025 17:07:40 +0100 Subject: [PATCH 128/335] bug fix --- pkg/cdc/index_sqlwriter.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index d5cd909c8da26..afb1893e536e6 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -189,8 +189,6 @@ func (w *BaseIndexSqlWriter) Insert(ctx context.Context, row []any) error { // same as previous operation and append to VALUES ROW(), ROW(),... w.vbuf = appendString(w.vbuf, ",") return w.writeRow(ctx, row) - - return nil } func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { From d437339df0d29f160c2710d97c40381d72a5178d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 10:54:33 +0100 Subject: [PATCH 129/335] index sinker with IndexSqlWriter --- pkg/cdc/hnsw_sinker.go | 297 +++++++++++++++++------------------ pkg/cdc/hnsw_sinker_test.go | 122 +++++++------- pkg/cdc/index_sqlwriter.go | 11 ++ pkg/container/types/types.go | 4 + pkg/vectorindex/types.go | 6 +- 5 files changed, 231 insertions(+), 209 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 1cf045d5d2666..6be77ae5eca93 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -23,10 +23,8 @@ package cdc import ( "bytes" "context" - "encoding/json" "fmt" "os" - "strings" "sync/atomic" "time" @@ -34,8 +32,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/common/runtime" "github.com/matrixorigin/matrixone/pkg/container/batch" - "github.com/matrixorigin/matrixone/pkg/container/types" - "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/util/executor" @@ -43,24 +39,21 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) -var _ Sinker = &hnswSyncSinker[float32]{} +var _ Sinker = &hnswSyncSinker{} var sqlExecutorFactory = _sqlExecutorFactory -type hnswSyncSinker[T types.RealNumbers] struct { +type hnswSyncSinker struct { cnUUID string dbTblInfo *DbTableInfo watermarkUpdater IWatermarkUpdater ar *ActiveRoutine tableDef *plan.TableDef - cdc *vectorindex.VectorIndexCdc[T] - param vectorindex.HnswCdcParam err atomic.Value - - sqlBufSendCh chan []byte - pkcol int32 - veccol int32 - exec executor.SQLExecutor + sqlWriters []IndexSqlWriter + sqlBufSendCh chan []byte + exec executor.SQLExecutor + rowdata []any } func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { @@ -98,8 +91,6 @@ var NewHnswSyncSinker = func( return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one primary key") } - pkColName := tableDef.Pkey.PkeyColName - hnswindexes := make([]*plan.IndexDef, 0, 2) for _, idx := range tableDef.Indexes { @@ -119,94 +110,76 @@ var NewHnswSyncSinker = func( return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") } - pkcol := tableDef.Name2ColIndex[pkColName] - veccol := tableDef.Name2ColIndex[indexdef.Parts[0]] + /* + pkcol := tableDef.Name2ColIndex[pkColName] + veccol := tableDef.Name2ColIndex[indexdef.Parts[0]] - if tableDef.Cols[pkcol].Typ.Id != int32(types.T_int64) { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table primary key is not int64") + if tableDef.Cols[pkcol].Typ.Id != int32(types.T_int64) { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table primary key is not int64") - } + } - // get param and index table name - paramstr := indexdef.IndexAlgoParams - var meta, storage string - for _, idx := range hnswindexes { - if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Metadata { - meta = idx.IndexTableName + // get param and index table name + paramstr := indexdef.IndexAlgoParams + var meta, storage string + for _, idx := range hnswindexes { + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Metadata { + meta = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Storage { + storage = idx.IndexTableName + } } - if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Storage { - storage = idx.IndexTableName + + if len(meta) == 0 || len(storage) == 0 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or storage hidden index table not exist") } - } - if len(meta) == 0 || len(storage) == 0 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or storage hidden index table not exist") - } + var hnswparam vectorindex.HnswParam + if len(paramstr) > 0 { + err := json.Unmarshal([]byte(paramstr), &hnswparam) + if err != nil { + return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") + } + } - var hnswparam vectorindex.HnswParam - if len(paramstr) > 0 { - err := json.Unmarshal([]byte(paramstr), &hnswparam) - if err != nil { - return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") + param := vectorindex.HnswCdcParam{ + MetaTbl: meta, + IndexTbl: storage, + DbName: dbTblInfo.SinkDbName, + Table: dbTblInfo.SinkTblName, + Params: hnswparam, + Dimension: tableDef.Cols[veccol].Typ.Width, } - } + */ - param := vectorindex.HnswCdcParam{ - MetaTbl: meta, - IndexTbl: storage, - DbName: dbTblInfo.SinkDbName, - Table: dbTblInfo.SinkTblName, - Params: hnswparam, - Dimension: tableDef.Cols[veccol].Typ.Width, + sqlwriter, err := NewIndexSqlWriter("hnsw", dbTblInfo, tableDef, hnswindexes) + if err != nil { + return nil, err } // create sinker var maxAllowedPacket uint64 maxAllowedPacket = min(maxAllowedPacket, maxSqlLength) - if tableDef.Cols[veccol].Typ.Id == int32(types.T_array_float32) { - s := &hnswSyncSinker[float32]{ - cnUUID: cnUUID, - dbTblInfo: dbTblInfo, - watermarkUpdater: watermarkUpdater, - ar: ar, - tableDef: tableDef, - cdc: vectorindex.NewVectorIndexCdc[float32](), - sqlBufSendCh: make(chan []byte), - pkcol: pkcol, - veccol: veccol, - err: atomic.Value{}, - param: param, - exec: exec, - } - logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) - return s, nil - - } else if tableDef.Cols[veccol].Typ.Id == int32(types.T_array_float64) { - s := &hnswSyncSinker[float64]{ - cnUUID: cnUUID, - dbTblInfo: dbTblInfo, - watermarkUpdater: watermarkUpdater, - ar: ar, - tableDef: tableDef, - cdc: vectorindex.NewVectorIndexCdc[float64](), - sqlBufSendCh: make(chan []byte), - pkcol: pkcol, - veccol: veccol, - err: atomic.Value{}, - param: param, - exec: exec, - } - logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) - return s, nil - - } else { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table part is not []float32 or []float64") + s := &hnswSyncSinker{ + cnUUID: cnUUID, + dbTblInfo: dbTblInfo, + watermarkUpdater: watermarkUpdater, + ar: ar, + tableDef: tableDef, + sqlBufSendCh: make(chan []byte), + err: atomic.Value{}, + exec: exec, + sqlWriters: []IndexSqlWriter{sqlwriter}, + rowdata: make([]any, len(tableDef.Cols)), } + logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) + return s, nil } -func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { +func (s *hnswSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { logutil.Infof("cdc hnswSyncSinker(%v).Run: start", s.dbTblInfo) defer func() { logutil.Infof("cdc hnswSyncSinker(%v).Run: end", s.dbTblInfo) @@ -329,20 +302,17 @@ func (s *hnswSyncSinker[T]) Run(ctx context.Context, ar *ActiveRoutine) { } } -func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { +func (s *hnswSyncSinker) Sink(ctx context.Context, data *DecoderOutput) { watermark := s.watermarkUpdater.GetFromMem(s.dbTblInfo.SourceDbName, s.dbTblInfo.SourceTblName) if data.toTs.LE(&watermark) { logutil.Errorf("cdc hnswSyncSinker(%v): unexpected watermark: %s, current watermark: %s", s.dbTblInfo, data.toTs.ToString(), watermark.ToString()) return } - s.cdc.Start = data.fromTs.ToString() - s.cdc.End = data.toTs.ToString() if data.noMoreData { - // complete sql statement - err := s.sendSql() + err := s.flushCdc() if err != nil { s.SetError(err) } @@ -365,23 +335,23 @@ func (s *hnswSyncSinker[T]) Sink(ctx context.Context, data *DecoderOutput) { } } -func (s *hnswSyncSinker[T]) SendBegin() { +func (s *hnswSyncSinker) SendBegin() { s.sqlBufSendCh <- begin } -func (s *hnswSyncSinker[T]) SendCommit() { +func (s *hnswSyncSinker) SendCommit() { s.sqlBufSendCh <- commit } -func (s *hnswSyncSinker[T]) SendRollback() { +func (s *hnswSyncSinker) SendRollback() { s.sqlBufSendCh <- rollback } -func (s *hnswSyncSinker[T]) SendDummy() { +func (s *hnswSyncSinker) SendDummy() { s.sqlBufSendCh <- dummy } -func (s *hnswSyncSinker[T]) Error() error { +func (s *hnswSyncSinker) Error() error { if ptr := s.err.Load(); ptr != nil { errPtr := ptr.(*error) if errPtr != nil { @@ -398,56 +368,57 @@ func (s *hnswSyncSinker[T]) Error() error { return nil } -func (s *hnswSyncSinker[T]) SetError(err error) { +func (s *hnswSyncSinker) SetError(err error) { s.err.Store(&err) } -func (s *hnswSyncSinker[T]) ClearError() { +func (s *hnswSyncSinker) ClearError() { var err *moerr.Error s.SetError(err) } -func (s *hnswSyncSinker[T]) Reset() { - s.cdc.Reset() +func (s *hnswSyncSinker) Reset() { + for _, writer := range s.sqlWriters { + writer.Reset() + } s.err = atomic.Value{} } -func (s *hnswSyncSinker[T]) Close() { +func (s *hnswSyncSinker) Close() { // stop Run goroutine close(s.sqlBufSendCh) } -func (s *hnswSyncSinker[T]) sinkSnapshot(ctx context.Context, bat *batch.Batch) { - pkvec := bat.Vecs[s.pkcol] - vecvec := bat.Vecs[s.veccol] - for i := 0; i < batchRowCount(bat); i++ { - pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, i) - - // check null - if vecvec.IsNull(uint64(i)) { - // nil vector means delete - s.cdc.Delete(pk) - } else { - v := vector.GetArrayAt[T](vecvec, i) +func (s *hnswSyncSinker) sinkSnapshot(ctx context.Context, bat *batch.Batch) { + var err error - s.cdc.Upsert(pk, v) + for i := 0; i < batchRowCount(bat); i++ { + if err = extractRowFromEveryVector(ctx, bat, i, s.rowdata); err != nil { + s.SetError(err) + return } - // check full - if s.cdc.Full() { - // send sql - err := s.sendSql() + for _, writer := range s.sqlWriters { + err = writer.Upsert(ctx, s.rowdata) if err != nil { s.SetError(err) return } + + if writer.Full() { + err = s.sendSql(writer) + if err != nil { + s.SetError(err) + return + } + } } } } // upsertBatch and deleteBatch is sorted by ts // for the same ts, delete first, then upsert -func (s *hnswSyncSinker[T]) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) { +func (s *hnswSyncSinker) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) { var err error upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) @@ -501,73 +472,95 @@ func (s *hnswSyncSinker[T]) sinkTail(ctx context.Context, upsertBatch, deleteBat s.flushCdc() } -func (s *hnswSyncSinker[T]) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { +func (s *hnswSyncSinker) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { // get row from the batch - row := upsertIter.Item() - bat := row.Src + if err = upsertIter.Row(ctx, s.rowdata); err != nil { + return err + } - pkvec := bat.Vecs[s.pkcol] - vecvec := bat.Vecs[s.veccol] - pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, row.Offset) + for _, writer := range s.sqlWriters { + if !writer.CheckLastOp(vectorindex.CDC_UPSERT) { + // last op is not UPSERT, sendSql first + // send SQL + err = s.sendSql(writer) + if err != nil { + return err + } - // check null - if vecvec.IsNull(uint64(row.Offset)) { - // nil vector means delete - s.cdc.Delete(pk) - } else { - v := vector.GetArrayAt[T](vecvec, row.Offset) + } - s.cdc.Upsert(pk, v) - } + writer.Upsert(ctx, s.rowdata) - if s.cdc.Full() { - // send SQL - return s.sendSql() + if writer.Full() { + // send SQL + err = s.sendSql(writer) + if err != nil { + return err + } + } } return nil } -func (s *hnswSyncSinker[T]) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { +func (s *hnswSyncSinker) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { // get row from the batch - row := deleteIter.Item() - bat := row.Src + if err = deleteIter.Row(ctx, s.rowdata); err != nil { + return err + } + + for _, writer := range s.sqlWriters { + if !writer.CheckLastOp(vectorindex.CDC_DELETE) { + // last op is not DELETE, sendSql first + // send SQL + err = s.sendSql(writer) + if err != nil { + return err + } + + } - pkvec := bat.Vecs[s.pkcol] - pk := vector.GetFixedAtWithTypeCheck[int64](pkvec, row.Offset) + writer.Delete(ctx, s.rowdata) - s.cdc.Delete(pk) - if s.cdc.Full() { - return s.sendSql() + if writer.Full() { + // send SQL + err = s.sendSql(writer) + if err != nil { + return err + } + } } return nil } -func (s *hnswSyncSinker[T]) flushCdc() (err error) { - return s.sendSql() +func (s *hnswSyncSinker) flushCdc() (err error) { + for _, writer := range s.sqlWriters { + err = s.sendSql(writer) + if err != nil { + return err + } + } + return nil } -func (s *hnswSyncSinker[T]) sendSql() error { - if s.cdc.Empty() { +func (s *hnswSyncSinker) sendSql(writer IndexSqlWriter) error { + if writer.Empty() { return nil } // generate sql from cdc - js, err := s.cdc.ToJson() + sql, err := writer.ToSql() if err != nil { return err } - // pad extra space at the front and send SQL - padding := strings.Repeat(" ", sqlBufReserved) - sql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", padding, s.param.DbName, s.param.Table, s.param.Dimension, js) - s.sqlBufSendCh <- []byte(sql) + s.sqlBufSendCh <- sql // reset - s.cdc.Reset() + writer.Reset() return nil } diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index a90e8797f0343..e267dfc736704 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -32,7 +32,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/testutil" "github.com/matrixorigin/matrixone/pkg/txn/client" "github.com/matrixorigin/matrixone/pkg/util/executor" - "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/prashantv/gostub" "github.com/stretchr/testify/require" "github.com/tidwall/btree" @@ -238,18 +237,18 @@ func TestNewHnswSyncSinker(t *testing.T) { sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.NoError(t, err) require.NotNil(t, sinker) - require.Equal(t, int32(0), sinker.(*hnswSyncSinker[float32]).pkcol) - require.Equal(t, int32(1), sinker.(*hnswSyncSinker[float32]).veccol) sinker.Close() }) - t.Run("success float64", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float64, 128) - sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.NoError(t, err) - require.NotNil(t, sinker) - sinker.Close() - }) + /* + t.Run("success float64", func(t *testing.T) { + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float64, 128) + sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + require.NoError(t, err) + require.NotNil(t, sinker) + sinker.Close() + }) + */ t.Run("invalid pkey count", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) @@ -316,7 +315,7 @@ func TestHnswSyncSinker_Run(t *testing.T) { require.NoError(t, err) defer sinker.Close() - s := sinker.(*hnswSyncSinker[float32]) + s := sinker.(*hnswSyncSinker) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -357,7 +356,7 @@ func TestHnswSyncSinker_RunError(t *testing.T) { require.NoError(t, err) defer sinker.Close() - s := sinker.(*hnswSyncSinker[float32]) + s := sinker.(*hnswSyncSinker) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -432,7 +431,7 @@ func TestHnswSyncSinker_Sink(t *testing.T) { require.NoError(t, err) defer sinker.Close() - s := sinker.(*hnswSyncSinker[float32]) + s := sinker.(*hnswSyncSinker) ctx := context.Background() t.Run("snapshot", func(t *testing.T) { @@ -458,15 +457,16 @@ func TestHnswSyncSinker_Sink(t *testing.T) { } s.Sink(ctx, output) require.NoError(t, s.Error()) - js, err := s.cdc.ToJson() + sql, err := s.sqlWriters[0].ToSql() require.NoError(t, err) - require.Equal(t, string(js), `{"start":"1-0","end":"2-0","cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}`) + require.Equal(t, string(sql), `SELECT hnsw_cdc_update('sink_db', 'sink_tbl', 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) }) t.Run("noMoreData", func(t *testing.T) { + rowdata := []any{int64(100), []float32{1.0, 2.0}} s.Reset() - s.cdc.Upsert(int64(100), []float32{1.0, 2.0}) // Add some data - require.False(t, s.cdc.Empty()) + s.sqlWriters[0].Upsert(ctx, rowdata) // Add some data + require.False(t, s.sqlWriters[0].Empty()) var sqlSent bool doneCh := make(chan struct{}) @@ -495,30 +495,41 @@ func TestHnswSyncSinker_Sink(t *testing.T) { t.Fatal("timed out waiting for SQL to be sent on noMoreData") } require.True(t, sqlSent) - require.True(t, s.cdc.Empty(), "CDC should be reset after noMoreData flush") + require.True(t, s.sqlWriters[0].Empty(), "CDC should be reset after noMoreData flush") }) } func TestHnswSyncSinker_SendSql(t *testing.T) { + dbTblInfo := newTestDbTableInfo() sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() watermarkUpdater := &WatermarkUpdater{ watermarkMap: &sync.Map{}, } tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) sinker, _ := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - s := sinker.(*hnswSyncSinker[float32]) + s := sinker.(*hnswSyncSinker) defer s.Close() // Closes sqlBufSendCh t.Run("send sql happy path", func(t *testing.T) { + var err error + row1 := []any{int64(1), []float32{0.1, 0.2}} + row2 := []any{int64(2), []float32{0.3, 0.4}} + s.Reset() - s.cdc.Upsert(int64(1), []float32{0.1, 0.2}) - s.cdc.Delete(int64(2)) - s.cdc.Start = "ts1" - s.cdc.End = "ts2" + err = s.sqlWriters[0].Upsert(ctx, row1) + require.NoError(t, err) + err = s.sqlWriters[0].Delete(ctx, row2) + require.NoError(t, err) + /* + s.cdc.Start = "ts1" + s.cdc.End = "ts2" + */ var receivedSql []byte var wg sync.WaitGroup @@ -528,7 +539,7 @@ func TestHnswSyncSinker_SendSql(t *testing.T) { receivedSql = <-s.sqlBufSendCh }() - err := s.sendSql() + err = s.sendSql(s.sqlWriters[0]) require.NoError(t, err) wg.Wait() // Wait for the goroutine to receive the SQL @@ -548,23 +559,22 @@ func TestHnswSyncSinker_SendSql(t *testing.T) { // The cdc.Start and cdc.End are part of the ToJson output, but sendSql resets cdc *after* ToJson // So we need to capture the state of cdc *before* it's reset for the expected JSON. // Let's reconstruct the expected JSON more carefully. - cdcForJson := vectorindex.NewVectorIndexCdc[float32]() - cdcForJson.Upsert(int64(1), []float32{0.1, 0.2}) - cdcForJson.Delete(int64(2)) - cdcForJson.Start = "ts1" - cdcForJson.End = "ts2" - expectedJsonBytes, _ := cdcForJson.ToJson() - - expectedSql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", - strings.Repeat(" ", sqlBufReserved), - s.param.DbName, s.param.Table, s.param.Dimension, string(expectedJsonBytes)) - require.Equal(t, expectedSql, sqlStr) - require.True(t, s.cdc.Empty(), "CDC should be reset after sending SQL") + writer, err := NewHnswSqlWriter("hnsw", dbTblInfo, tblDef, tblDef.Indexes) + require.NoError(t, err) + writer.Upsert(ctx, row1) + writer.Delete(ctx, row2) + /* + cdcForJson.Start = "ts1" + cdcForJson.End = "ts2" + */ + expectedSqlBytes, _ := writer.ToSql() + require.Equal(t, string(expectedSqlBytes), sqlStr) + require.True(t, s.sqlWriters[0].Empty(), "CDC should be reset after sending SQL") }) t.Run("send sql empty cdc", func(t *testing.T) { s.Reset() // Ensure CDC is empty - err := s.sendSql() + err := s.sendSql(s.sqlWriters[0]) require.NoError(t, err) select { case <-s.sqlBufSendCh: @@ -579,8 +589,8 @@ func TestHnswSyncSinker_ErrorHandling(t *testing.T) { sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() - s := &hnswSyncSinker[float32]{} // Minimal struct for error testing - s.err.Store((*error)(nil)) // Initialize with nil error pointer + s := &hnswSyncSinker{} // Minimal struct for error testing + s.err.Store((*error)(nil)) // Initialize with nil error pointer require.Nil(t, s.Error()) @@ -606,6 +616,8 @@ func TestHnswSyncSinker_Sink_AtomicBatch(t *testing.T) { proc := testutil.NewProcess() + dbTblInfo := newTestDbTableInfo() + ctx := context.Background() sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() @@ -614,7 +626,7 @@ func TestHnswSyncSinker_Sink_AtomicBatch(t *testing.T) { } tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) sinker, _ := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - s := sinker.(*hnswSyncSinker[float32]) + s := sinker.(*hnswSyncSinker) defer s.Close() // Closes sqlBufSendCh bat := testutil.NewBatchWithVectors( @@ -674,19 +686,21 @@ func TestHnswSyncSinker_Sink_AtomicBatch(t *testing.T) { wg.Wait() // Wait for the goroutine to receive the SQL sqlStr := string(receivedSql) - cdcForJson := vectorindex.NewVectorIndexCdc[float32]() - cdcForJson.Upsert(int64(1), []float32{0.1, 0.2}) - cdcForJson.Upsert(int64(2), []float32{0.3, 0.4}) - cdcForJson.Delete(int64(1)) - cdcForJson.Delete(int64(2)) - cdcForJson.Start = "1-0" - cdcForJson.End = "2-0" - expectedJsonBytes, _ := cdcForJson.ToJson() - - expectedSql := fmt.Sprintf("%s SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", - strings.Repeat(" ", sqlBufReserved), - s.param.DbName, s.param.Table, s.param.Dimension, string(expectedJsonBytes)) - require.Equal(t, expectedSql, sqlStr) - require.True(t, s.cdc.Empty(), "CDC should be reset after sending SQL") + row1 := []any{int64(1), []float32{0.1, 0.2}} + row2 := []any{int64(2), []float32{0.3, 0.4}} + + writer, _ := NewHnswSqlWriter("hnsw", dbTblInfo, tblDef, tblDef.Indexes) + writer.Upsert(ctx, row1) + writer.Upsert(ctx, row2) + writer.Delete(ctx, row1) + writer.Delete(ctx, row2) + /* + cdcForJson.Start = "1-0" + cdcForJson.End = "2-0" + */ + expectedSqlBytes, _ := writer.ToSql() + + require.Equal(t, string(expectedSqlBytes), sqlStr) + require.True(t, s.sqlWriters[0].Empty(), "CDC should be reset after sending SQL") } diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index afb1893e536e6..8d32fb141cb62 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -80,6 +80,9 @@ func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Table case "fulltext": return NewFulltextSqlWriter(algo, dbTblInfo, tabledef, indexdef) case "ivfflat": + return NewIvfflatSqlWriter(algo, dbTblInfo, tabledef, indexdef) + case "hnsw": + return NewHnswSqlWriter(algo, dbTblInfo, tabledef, indexdef) default: return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") @@ -323,6 +326,10 @@ func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableD typ := tabledef.Cols[w.pkPos].Typ w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + if w.pkType.Oid != types.T_int64 { + return nil, moerr.NewInternalErrorNoCtx("NewHnswSqlWriter: primary key is not bigint") + } + nparts := len(idxdef.Parts) w.partsPos = make([]int32, nparts) w.partsType = make([]*types.Type, nparts) @@ -333,6 +340,10 @@ func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableD w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} } + if w.partsType[0].Oid != types.T_array_float32 { + return nil, moerr.NewInternalErrorNoCtx("NewHnswSqlWriter: part is not vecf32") + } + w.srcPos = make([]int32, nparts+1) w.srcType = make([]*types.Type, nparts+1) diff --git a/pkg/container/types/types.go b/pkg/container/types/types.go index e4eaedd653144..275cc93cfa25a 100644 --- a/pkg/container/types/types.go +++ b/pkg/container/types/types.go @@ -557,6 +557,10 @@ func (t Type) DescString() string { return fmt.Sprintf("DECIMAL(%d,%d)", t.Width, t.Scale) case T_decimal128: return fmt.Sprintf("DECIMAL(%d,%d)", t.Width, t.Scale) + case T_array_float32: + return fmt.Sprintf("VECF32(%d)", t.Width) + case T_array_float64: + return fmt.Sprintf("VECF64(%d)", t.Width) } return t.Oid.String() } diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index 8607a8bbdbf04..b72320725c422 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -100,9 +100,9 @@ type RuntimeConfig struct { } type VectorIndexCdc[T types.RealNumbers] struct { - Start string `json:"start"` - End string `json:"end"` - Data []VectorIndexCdcEntry[T] `json:"cdc"` + // Start string `json:"start"` + // End string `json:"end"` + Data []VectorIndexCdcEntry[T] `json:"cdc"` } func NewVectorIndexCdc[T types.RealNumbers]() *VectorIndexCdc[T] { From 5c648f3c8c6f2db4c7f8b606e4353a94542612b3 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 10:58:21 +0100 Subject: [PATCH 130/335] remove comment --- pkg/cdc/hnsw_sinker.go | 43 ------------------------------------------ 1 file changed, 43 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 6be77ae5eca93..00eca312145eb 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -110,49 +110,6 @@ var NewHnswSyncSinker = func( return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") } - /* - pkcol := tableDef.Name2ColIndex[pkColName] - veccol := tableDef.Name2ColIndex[indexdef.Parts[0]] - - if tableDef.Cols[pkcol].Typ.Id != int32(types.T_int64) { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table primary key is not int64") - - } - - // get param and index table name - paramstr := indexdef.IndexAlgoParams - var meta, storage string - for _, idx := range hnswindexes { - if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Metadata { - meta = idx.IndexTableName - } - if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Storage { - storage = idx.IndexTableName - } - } - - if len(meta) == 0 || len(storage) == 0 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or storage hidden index table not exist") - } - - var hnswparam vectorindex.HnswParam - if len(paramstr) > 0 { - err := json.Unmarshal([]byte(paramstr), &hnswparam) - if err != nil { - return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") - } - } - - param := vectorindex.HnswCdcParam{ - MetaTbl: meta, - IndexTbl: storage, - DbName: dbTblInfo.SinkDbName, - Table: dbTblInfo.SinkTblName, - Params: hnswparam, - Dimension: tableDef.Cols[veccol].Typ.Width, - } - */ - sqlwriter, err := NewIndexSqlWriter("hnsw", dbTblInfo, tableDef, hnswindexes) if err != nil { return nil, err From 53b6438fab807dcdcabbe96434a2d4198a00a1cf Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 11:05:40 +0100 Subject: [PATCH 131/335] rename hsnw to index --- pkg/cdc/hnsw_sinker.go | 60 ++++++++++++++++++------------------- pkg/cdc/hnsw_sinker_test.go | 42 +++++++++++++------------- pkg/cdc/sinker.go | 4 +-- pkg/cdc/types.go | 8 ++--- 4 files changed, 57 insertions(+), 57 deletions(-) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/hnsw_sinker.go index 00eca312145eb..6819ffdb93aa1 100644 --- a/pkg/cdc/hnsw_sinker.go +++ b/pkg/cdc/hnsw_sinker.go @@ -14,7 +14,7 @@ package cdc -// hnswSyncSinker is to update HNSW index via CDC. +// indexSyncSinker is to update HNSW index via CDC. // It will read CDC changes and create JSON as input to function hnsw_cdc_update(dbname, tablename, vector_dimenion, json) // You can refer the JSON format from vectorindex.VectorIndexCdc // Single batch will split into multiple json objects and each json has maximum 8192 records (see vectorindex.VectorIndexCdc). @@ -39,11 +39,11 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) -var _ Sinker = &hnswSyncSinker{} +var _ Sinker = &indexSyncSinker{} var sqlExecutorFactory = _sqlExecutorFactory -type hnswSyncSinker struct { +type indexSyncSinker struct { cnUUID string dbTblInfo *DbTableInfo watermarkUpdater IWatermarkUpdater @@ -67,7 +67,7 @@ func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { return exec, nil } -var NewHnswSyncSinker = func( +var NewIndexSyncSinker = func( cnUUID string, sinkUri UriInfo, dbTblInfo *DbTableInfo, @@ -119,7 +119,7 @@ var NewHnswSyncSinker = func( var maxAllowedPacket uint64 maxAllowedPacket = min(maxAllowedPacket, maxSqlLength) - s := &hnswSyncSinker{ + s := &indexSyncSinker{ cnUUID: cnUUID, dbTblInfo: dbTblInfo, watermarkUpdater: watermarkUpdater, @@ -131,15 +131,15 @@ var NewHnswSyncSinker = func( sqlWriters: []IndexSqlWriter{sqlwriter}, rowdata: make([]any, len(tableDef.Cols)), } - logutil.Infof("cdc hnswSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) + logutil.Infof("cdc indexSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil } -func (s *hnswSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { - logutil.Infof("cdc hnswSyncSinker(%v).Run: start", s.dbTblInfo) +func (s *indexSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { + logutil.Infof("cdc indexSyncSinker(%v).Run: start", s.dbTblInfo) defer func() { - logutil.Infof("cdc hnswSyncSinker(%v).Run: end", s.dbTblInfo) + logutil.Infof("cdc indexSyncSinker(%v).Run: end", s.dbTblInfo) }() closed := false @@ -173,7 +173,7 @@ func (s *hnswSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { opts := executor.Options{} res, err := s.exec.Exec(newctx, string(sqlBuf), opts) if err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) + logutil.Errorf("cdc indexSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) s.SetError(err) @@ -215,7 +215,7 @@ func (s *hnswSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { } else { res, err := exec.Exec(string(sqlBuf), opts.StatementOption()) if err != nil { - logutil.Errorf("cdc hnswSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) + logutil.Errorf("cdc indexSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) return err @@ -233,7 +233,7 @@ func (s *hnswSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { if moe.ErrorCode() == moerr.ErrQueryInterrupted { // skip rollback error //os.Stderr.WriteString("error QueryInterrupted....rollback\n") - logutil.Errorf("cdc hnswSyncSinker(%v) parent rollback", s.dbTblInfo) + logutil.Errorf("cdc indexSyncSinker(%v) parent rollback", s.dbTblInfo) } else { s.SetError(err) } @@ -259,10 +259,10 @@ func (s *hnswSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { } } -func (s *hnswSyncSinker) Sink(ctx context.Context, data *DecoderOutput) { +func (s *indexSyncSinker) Sink(ctx context.Context, data *DecoderOutput) { watermark := s.watermarkUpdater.GetFromMem(s.dbTblInfo.SourceDbName, s.dbTblInfo.SourceTblName) if data.toTs.LE(&watermark) { - logutil.Errorf("cdc hnswSyncSinker(%v): unexpected watermark: %s, current watermark: %s", + logutil.Errorf("cdc indexSyncSinker(%v): unexpected watermark: %s, current watermark: %s", s.dbTblInfo, data.toTs.ToString(), watermark.ToString()) return } @@ -288,27 +288,27 @@ func (s *hnswSyncSinker) Sink(ctx context.Context, data *DecoderOutput) { //os.Stderr.WriteString(fmt.Sprintf("sinkTail insertBat %d, deletBat = %d\n", data.insertAtmBatch.RowCount(), data.deleteAtmBatch.RowCount())) s.sinkTail(ctx, data.insertAtmBatch, data.deleteAtmBatch) } else { - s.SetError(moerr.NewInternalError(ctx, fmt.Sprintf("cdc hnswSyncSinker unexpected output type: %v", data.outputTyp))) + s.SetError(moerr.NewInternalError(ctx, fmt.Sprintf("cdc indexSyncSinker unexpected output type: %v", data.outputTyp))) } } -func (s *hnswSyncSinker) SendBegin() { +func (s *indexSyncSinker) SendBegin() { s.sqlBufSendCh <- begin } -func (s *hnswSyncSinker) SendCommit() { +func (s *indexSyncSinker) SendCommit() { s.sqlBufSendCh <- commit } -func (s *hnswSyncSinker) SendRollback() { +func (s *indexSyncSinker) SendRollback() { s.sqlBufSendCh <- rollback } -func (s *hnswSyncSinker) SendDummy() { +func (s *indexSyncSinker) SendDummy() { s.sqlBufSendCh <- dummy } -func (s *hnswSyncSinker) Error() error { +func (s *indexSyncSinker) Error() error { if ptr := s.err.Load(); ptr != nil { errPtr := ptr.(*error) if errPtr != nil { @@ -325,28 +325,28 @@ func (s *hnswSyncSinker) Error() error { return nil } -func (s *hnswSyncSinker) SetError(err error) { +func (s *indexSyncSinker) SetError(err error) { s.err.Store(&err) } -func (s *hnswSyncSinker) ClearError() { +func (s *indexSyncSinker) ClearError() { var err *moerr.Error s.SetError(err) } -func (s *hnswSyncSinker) Reset() { +func (s *indexSyncSinker) Reset() { for _, writer := range s.sqlWriters { writer.Reset() } s.err = atomic.Value{} } -func (s *hnswSyncSinker) Close() { +func (s *indexSyncSinker) Close() { // stop Run goroutine close(s.sqlBufSendCh) } -func (s *hnswSyncSinker) sinkSnapshot(ctx context.Context, bat *batch.Batch) { +func (s *indexSyncSinker) sinkSnapshot(ctx context.Context, bat *batch.Batch) { var err error for i := 0; i < batchRowCount(bat); i++ { @@ -375,7 +375,7 @@ func (s *hnswSyncSinker) sinkSnapshot(ctx context.Context, bat *batch.Batch) { // upsertBatch and deleteBatch is sorted by ts // for the same ts, delete first, then upsert -func (s *hnswSyncSinker) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) { +func (s *indexSyncSinker) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) { var err error upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) @@ -429,7 +429,7 @@ func (s *hnswSyncSinker) sinkTail(ctx context.Context, upsertBatch, deleteBatch s.flushCdc() } -func (s *hnswSyncSinker) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { +func (s *indexSyncSinker) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { // get row from the batch if err = upsertIter.Row(ctx, s.rowdata); err != nil { @@ -461,7 +461,7 @@ func (s *hnswSyncSinker) sinkUpsert(ctx context.Context, upsertIter *atomicBatch return nil } -func (s *hnswSyncSinker) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { +func (s *indexSyncSinker) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { // get row from the batch if err = deleteIter.Row(ctx, s.rowdata); err != nil { @@ -493,7 +493,7 @@ func (s *hnswSyncSinker) sinkDelete(ctx context.Context, deleteIter *atomicBatch return nil } -func (s *hnswSyncSinker) flushCdc() (err error) { +func (s *indexSyncSinker) flushCdc() (err error) { for _, writer := range s.sqlWriters { err = s.sendSql(writer) if err != nil { @@ -503,7 +503,7 @@ func (s *hnswSyncSinker) flushCdc() (err error) { return nil } -func (s *hnswSyncSinker) sendSql(writer IndexSqlWriter) error { +func (s *indexSyncSinker) sendSql(writer IndexSqlWriter) error { if writer.Empty() { return nil } diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/hnsw_sinker_test.go index e267dfc736704..06207d903dc41 100644 --- a/pkg/cdc/hnsw_sinker_test.go +++ b/pkg/cdc/hnsw_sinker_test.go @@ -221,7 +221,7 @@ var ( // --- Test Cases --- -func TestNewHnswSyncSinker(t *testing.T) { +func TestNewIndexSyncSinker(t *testing.T) { dbTblInfo := newTestDbTableInfo() ar := newTestActiveRoutine() @@ -234,7 +234,7 @@ func TestNewHnswSyncSinker(t *testing.T) { t.Run("success float32", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) - sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.NoError(t, err) require.NotNil(t, sinker) sinker.Close() @@ -243,7 +243,7 @@ func TestNewHnswSyncSinker(t *testing.T) { /* t.Run("success float64", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float64, 128) - sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.NoError(t, err) require.NotNil(t, sinker) sinker.Close() @@ -253,7 +253,7 @@ func TestNewHnswSyncSinker(t *testing.T) { t.Run("invalid pkey count", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) tblDef.Pkey.Names = []string{"pk1", "pk2"} - _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.Error(t, err) require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) }) @@ -261,7 +261,7 @@ func TestNewHnswSyncSinker(t *testing.T) { t.Run("invalid hnsw index count", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) tblDef.Indexes = []*plan.IndexDef{tblDef.Indexes[0]} // Only one index - _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.Error(t, err) require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) }) @@ -269,14 +269,14 @@ func TestNewHnswSyncSinker(t *testing.T) { t.Run("invalid index parts count", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) tblDef.Indexes[0].Parts = []string{"vec1", "vec2"} - _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.Error(t, err) require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) }) t.Run("invalid pkey type", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int32, "vec", types.T_array_float32, 128) // PK is int32 - _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.Error(t, err) require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) }) @@ -284,7 +284,7 @@ func TestNewHnswSyncSinker(t *testing.T) { t.Run("missing meta index", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) tblDef.Indexes[0].IndexAlgoTableType = "invalid" // Corrupt meta index type - _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.Error(t, err) require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) }) @@ -292,14 +292,14 @@ func TestNewHnswSyncSinker(t *testing.T) { t.Run("invalid hnsw params json", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) tblDef.Indexes[0].IndexAlgoParams = `{"M":16, efConstruction":200 ...` // Invalid JSON - _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.Error(t, err) require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) }) t.Run("unsupported vector type", func(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_int32, 128) // Vector is int32 - _, err := NewHnswSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") + _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") require.Error(t, err) require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) }) @@ -311,11 +311,11 @@ func TestHnswSyncSinker_Run(t *testing.T) { watermarkUpdater := NewMockWatermarkUpdater() tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) - sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") require.NoError(t, err) defer sinker.Close() - s := sinker.(*hnswSyncSinker) + s := sinker.(*indexSyncSinker) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -352,11 +352,11 @@ func TestHnswSyncSinker_RunError(t *testing.T) { watermarkUpdater := NewMockWatermarkUpdater() tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) - sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") require.NoError(t, err) defer sinker.Close() - s := sinker.(*hnswSyncSinker) + s := sinker.(*indexSyncSinker) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -427,11 +427,11 @@ func TestHnswSyncSinker_Sink(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) watermarkUpdater := NewMockWatermarkUpdater() - sinker, err := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") require.NoError(t, err) defer sinker.Close() - s := sinker.(*hnswSyncSinker) + s := sinker.(*indexSyncSinker) ctx := context.Background() t.Run("snapshot", func(t *testing.T) { @@ -512,8 +512,8 @@ func TestHnswSyncSinker_SendSql(t *testing.T) { watermarkMap: &sync.Map{}, } tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) - sinker, _ := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - s := sinker.(*hnswSyncSinker) + sinker, _ := NewIndexSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + s := sinker.(*indexSyncSinker) defer s.Close() // Closes sqlBufSendCh t.Run("send sql happy path", func(t *testing.T) { @@ -589,7 +589,7 @@ func TestHnswSyncSinker_ErrorHandling(t *testing.T) { sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() - s := &hnswSyncSinker{} // Minimal struct for error testing + s := &indexSyncSinker{} // Minimal struct for error testing s.err.Store((*error)(nil)) // Initialize with nil error pointer require.Nil(t, s.Error()) @@ -625,8 +625,8 @@ func TestHnswSyncSinker_Sink_AtomicBatch(t *testing.T) { watermarkMap: &sync.Map{}, } tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) - sinker, _ := NewHnswSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - s := sinker.(*hnswSyncSinker) + sinker, _ := NewIndexSyncSinker("test-uuid", UriInfo{}, newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") + s := sinker.(*indexSyncSinker) defer s.Close() // Closes sqlBufSendCh bat := testutil.NewBatchWithVectors( diff --git a/pkg/cdc/sinker.go b/pkg/cdc/sinker.go index 8099bf97d2f79..ea9e3503ba7ca 100644 --- a/pkg/cdc/sinker.go +++ b/pkg/cdc/sinker.go @@ -70,8 +70,8 @@ var NewSinker = func( return NewConsoleSinker(dbTblInfo, watermarkUpdater), nil } - if sinkUri.SinkTyp == CDCSinkType_HnswSync { - return NewHnswSyncSinker(cnUUID, sinkUri, dbTblInfo, watermarkUpdater, tableDef, retryTimes, retryDuration, ar, maxSqlLength, sendSqlTimeout) + if sinkUri.SinkTyp == CDCSinkType_IndexSync { + return NewIndexSyncSinker(cnUUID, sinkUri, dbTblInfo, watermarkUpdater, tableDef, retryTimes, retryDuration, ar, maxSqlLength, sendSqlTimeout) } var ( diff --git a/pkg/cdc/types.go b/pkg/cdc/types.go index 30f50decf6182..5de7f4c0ad6b8 100644 --- a/pkg/cdc/types.go +++ b/pkg/cdc/types.go @@ -52,10 +52,10 @@ const ( ) const ( - CDCSinkType_MySQL = "mysql" - CDCSinkType_MO = "matrixone" - CDCSinkType_Console = "console" - CDCSinkType_HnswSync = "hnswsync" + CDCSinkType_MySQL = "mysql" + CDCSinkType_MO = "matrixone" + CDCSinkType_Console = "console" + CDCSinkType_IndexSync = "indexsync" ) const ( From 8069eb0d7f9ce14745cec6a8e8a6a10bff88a02a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 11:08:12 +0100 Subject: [PATCH 132/335] delete if vector is nil --- pkg/cdc/index_sqlwriter.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 8d32fb141cb62..5688f80ac92bd 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -394,6 +394,12 @@ func (w *HnswSqlWriter[T]) Insert(ctx context.Context, row []any) error { return moerr.NewInternalError(ctx, "invalid vector type. not []float32") } + if v == nil { + // vector is nil, do Delete + w.cdc.Delete(key) + return nil + } + w.cdc.Insert(key, v) return nil } @@ -408,6 +414,12 @@ func (w *HnswSqlWriter[T]) Upsert(ctx context.Context, row []any) error { return moerr.NewInternalError(ctx, "invalid vector type. not []float32") } + if v == nil { + // vector is nil, do Delete + w.cdc.Delete(key) + return nil + } + w.cdc.Upsert(key, v) return nil } From 4afbe230aca70514ec1faa84c36d5ee41cb95c16 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 11:10:18 +0100 Subject: [PATCH 133/335] rename file --- pkg/cdc/{hnsw_sinker.go => index_sinker.go} | 0 pkg/cdc/{hnsw_sinker_test.go => index_sinker_test.go} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename pkg/cdc/{hnsw_sinker.go => index_sinker.go} (100%) rename pkg/cdc/{hnsw_sinker_test.go => index_sinker_test.go} (100%) diff --git a/pkg/cdc/hnsw_sinker.go b/pkg/cdc/index_sinker.go similarity index 100% rename from pkg/cdc/hnsw_sinker.go rename to pkg/cdc/index_sinker.go diff --git a/pkg/cdc/hnsw_sinker_test.go b/pkg/cdc/index_sinker_test.go similarity index 100% rename from pkg/cdc/hnsw_sinker_test.go rename to pkg/cdc/index_sinker_test.go From 4772c2f4ceda38a0db1a3e923a64c5be08930b91 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 11:49:49 +0100 Subject: [PATCH 134/335] support multi-indexes --- pkg/cdc/index_sinker.go | 52 +++++++++++++++++------------------- pkg/cdc/index_sinker_test.go | 4 +-- 2 files changed, 27 insertions(+), 29 deletions(-) diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index 6819ffdb93aa1..6d0a45ed7a9d8 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -56,6 +56,11 @@ type indexSyncSinker struct { rowdata []any } +type IndexEntry struct { + algo string + indexes []*plan.IndexDef +} + func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { // sql executor v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) @@ -86,39 +91,33 @@ var NewIndexSyncSinker = func( return nil, err } - // check the tabledef and indexdef - if len(tableDef.Pkey.Names) != 1 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one primary key") - } - - hnswindexes := make([]*plan.IndexDef, 0, 2) + sqlwriters := make([]IndexSqlWriter, 0, 5) + indexmap := make(map[string]*IndexEntry) for _, idx := range tableDef.Indexes { - if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { - hnswindexes = append(hnswindexes, idx) + if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + fmt.Printf("idx %v\n", idx) + key := idx.IndexName + sidx, ok := indexmap[key] + if ok { + sidx.indexes = append(sidx.indexes, idx) + } else { + ie := &IndexEntry{algo: idx.IndexAlgo, indexes: make([]*plan.IndexDef, 0, 3)} + ie.indexes = append(ie.indexes, idx) + indexmap[key] = ie + } } } - if len(hnswindexes) != 2 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table without index definition") - } - - indexdef := hnswindexes[0] - - if len(indexdef.Parts) != 1 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") - } - - sqlwriter, err := NewIndexSqlWriter("hnsw", dbTblInfo, tableDef, hnswindexes) - if err != nil { - return nil, err + for key, ie := range indexmap { + sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) + if err != nil { + return nil, err + } + sqlwriters = append(sqlwriters, sqlwriter) } - // create sinker - var maxAllowedPacket uint64 - maxAllowedPacket = min(maxAllowedPacket, maxSqlLength) - s := &indexSyncSinker{ cnUUID: cnUUID, dbTblInfo: dbTblInfo, @@ -128,10 +127,9 @@ var NewIndexSyncSinker = func( sqlBufSendCh: make(chan []byte), err: atomic.Value{}, exec: exec, - sqlWriters: []IndexSqlWriter{sqlwriter}, + sqlWriters: sqlwriters, rowdata: make([]any, len(tableDef.Cols)), } - logutil.Infof("cdc indexSyncSinker(%v) maxAllowedPacket = %d", s.dbTblInfo, maxAllowedPacket) return s, nil } diff --git a/pkg/cdc/index_sinker_test.go b/pkg/cdc/index_sinker_test.go index 06207d903dc41..b4d51a6041126 100644 --- a/pkg/cdc/index_sinker_test.go +++ b/pkg/cdc/index_sinker_test.go @@ -56,7 +56,7 @@ func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType t }, Indexes: []*plan.IndexDef{ { - IndexName: "hnsw_meta_idx", + IndexName: "hnsw_idx", TableExist: true, IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), IndexAlgoTableType: catalog.Hnsw_TblType_Metadata, @@ -65,7 +65,7 @@ func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType t IndexAlgoParams: `{"m":"16","ef_construction":"200","ef_search":"100","op_type":"vector_l2_ops"}`, }, { - IndexName: "hnsw_storage_idx", + IndexName: "hnsw_idx", TableExist: true, IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), IndexAlgoTableType: catalog.Hnsw_TblType_Storage, From 12429c22565a3a61f5dea9daf18091b31f7cd146 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 11:51:38 +0100 Subject: [PATCH 135/335] cleanup --- pkg/cdc/index_sinker.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index 6d0a45ed7a9d8..eec42a6e2daab 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -96,7 +96,6 @@ var NewIndexSyncSinker = func( for _, idx := range tableDef.Indexes { if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - fmt.Printf("idx %v\n", idx) key := idx.IndexName sidx, ok := indexmap[key] if ok { From b32d84603b8d079e4db52849e33d506e6cade4b4 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 11:52:20 +0100 Subject: [PATCH 136/335] cleanup --- pkg/cdc/index_sinker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index eec42a6e2daab..373b9aef7e54d 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -109,7 +109,7 @@ var NewIndexSyncSinker = func( } - for key, ie := range indexmap { + for _, ie := range indexmap { sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) if err != nil { return nil, err From dd93d28ecfcfb2550ed7d9e5eeaac70fc21606d0 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 12:02:25 +0100 Subject: [PATCH 137/335] use constant --- pkg/cdc/index_sqlwriter.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 5688f80ac92bd..2c0afbe92150a 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -76,12 +76,13 @@ var _ IndexSqlWriter = new(HnswSqlWriter[float32]) // check algo type to return the correct sql writer func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + algo = catalog.ToLower(algo) switch algo { - case "fulltext": + case catalog.MOIndexFullTextAlgo.ToString(): return NewFulltextSqlWriter(algo, dbTblInfo, tabledef, indexdef) - case "ivfflat": + case catalog.MoIndexIvfFlatAlgo.ToString(): return NewIvfflatSqlWriter(algo, dbTblInfo, tabledef, indexdef) - case "hnsw": + case catalog.MoIndexHnswAlgo.ToString(): return NewHnswSqlWriter(algo, dbTblInfo, tabledef, indexdef) default: return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") From 173589aff59fa4c5b48277cfe152fafc3c691ebd Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 12:09:58 +0100 Subject: [PATCH 138/335] rename file --- pkg/cdc/{fulltext_sinker_test.go => index_sqlwriter_test.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pkg/cdc/{fulltext_sinker_test.go => index_sqlwriter_test.go} (100%) diff --git a/pkg/cdc/fulltext_sinker_test.go b/pkg/cdc/index_sqlwriter_test.go similarity index 100% rename from pkg/cdc/fulltext_sinker_test.go rename to pkg/cdc/index_sqlwriter_test.go From a44aacf7178a7e397038442e71c89dcdc1ab9d63 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 12:28:54 +0100 Subject: [PATCH 139/335] todo --- pkg/cdc/index_sinker.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index 373b9aef7e54d..37ab949b0526b 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -257,6 +257,8 @@ func (s *indexSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { } func (s *indexSyncSinker) Sink(ctx context.Context, data *DecoderOutput) { + // TODO: IMPORTANT: check the indexdef here so that Add/Drop index can be reflected here + watermark := s.watermarkUpdater.GetFromMem(s.dbTblInfo.SourceDbName, s.dbTblInfo.SourceTblName) if data.toTs.LE(&watermark) { logutil.Errorf("cdc indexSyncSinker(%v): unexpected watermark: %s, current watermark: %s", From 9aa078c1cfdcf0881e0c8866a842b996d9615665 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 13:11:21 +0100 Subject: [PATCH 140/335] bvt test --- pkg/frontend/cdc_options.go | 2 +- test/distributed/cases/vector/vector_hnsw_sync.result | 6 +++--- test/distributed/cases/vector/vector_hnsw_sync.sql | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/frontend/cdc_options.go b/pkg/frontend/cdc_options.go index 1b3c52b16137c..01173fdb20409 100644 --- a/pkg/frontend/cdc_options.go +++ b/pkg/frontend/cdc_options.go @@ -123,7 +123,7 @@ func (opts *CDCCreateTaskOptions) ValidateAndFill( if cdc.EnableConsoleSink && opts.SinkType == cdc.CDCSinkType_Console { opts.UseConsole = true } - if !opts.UseConsole && opts.SinkType != cdc.CDCSinkType_MySQL && opts.SinkType != cdc.CDCSinkType_MO && opts.SinkType != cdc.CDCSinkType_HnswSync { + if !opts.UseConsole && opts.SinkType != cdc.CDCSinkType_MySQL && opts.SinkType != cdc.CDCSinkType_MO && opts.SinkType != cdc.CDCSinkType_IndexSync { err = moerr.NewInternalErrorf(ctx, "unsupported sink type: %s", req.SinkType) return } diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index 758d48275e82b..aa9c5e350ae2e 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -6,7 +6,7 @@ create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; drop pitr if exists `__mo_table_pitr_t1`; create pitr `__mo_table_pitr_t1` for table hnsw_cdc t1 range 2 'h'; -create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; +create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; insert into t1 values (0, "[1,2,3]", 1); UPDATE t1 set b = '[4,5,6]' where a = 0; insert into t1 values (1, "[2,3,4]", 1); @@ -30,7 +30,7 @@ create table t2(a bigint primary key, b vecf32(128)); create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; drop pitr if exists `__mo_table_pitr_t2`; create pitr `__mo_table_pitr_t2` for table hnsw_cdc t2 range 2 'h'; -create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; +create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; select count(*) from t2; count(*) @@ -55,7 +55,7 @@ count(*) create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; -create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; +create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; select count(*) from t3; count(*) diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index b816c2cc49e2f..d5dd43f65648d 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -11,7 +11,7 @@ create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; drop pitr if exists `__mo_table_pitr_t1`; create pitr `__mo_table_pitr_t1` for table hnsw_cdc t1 range 2 'h'; -create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; +create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; -- show cdc all; -- select sleep(30); @@ -49,7 +49,7 @@ create table t2(a bigint primary key, b vecf32(128)); create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; drop pitr if exists `__mo_table_pitr_t2`; create pitr `__mo_table_pitr_t2` for table hnsw_cdc t2 range 2 'h'; -create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; +create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; -- select sleep(30); load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; @@ -85,7 +85,7 @@ create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTI drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; -create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; +create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; -- select sleep(30); From 01fc88d2128fd35f13c6bb2c4cd7545961a08b3e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 13:23:29 +0100 Subject: [PATCH 141/335] cleanup --- pkg/cdc/index_sinker.go | 3 +- pkg/cdc/index_sqlwriter.go | 75 +++++++++++++++++++++----------------- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index 37ab949b0526b..4490088962ecf 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -95,7 +95,8 @@ var NewIndexSyncSinker = func( indexmap := make(map[string]*IndexEntry) for _, idx := range tableDef.Indexes { - if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + // if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { key := idx.IndexName sidx, ok := indexmap[key] if ok { diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 2c0afbe92150a..6e2d61147bd01 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -13,6 +13,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) +// IndexSqlWriter interface type IndexSqlWriter interface { CheckLastOp(op string) bool Upsert(ctx context.Context, row []any) error @@ -24,6 +25,7 @@ type IndexSqlWriter interface { Empty() bool } +// Base implementation of IVFFLAT and FULLTEXT. Their implementation are simliar. type BaseIndexSqlWriter struct { lastCdcOp string vbuf []byte @@ -41,11 +43,13 @@ type BaseIndexSqlWriter struct { dbName string } +// Fulltext Sql Writer. Only one hidden secondary index table type FulltextSqlWriter struct { BaseIndexSqlWriter indexTableName string } +// Ivfflat Sql writer. Three hidden secondary index tables type IvfflatSqlWriter struct { BaseIndexSqlWriter centroids_tbl string @@ -54,6 +58,7 @@ type IvfflatSqlWriter struct { ivfparam vectorindex.IvfParam } +// Hnsw Sql Writer. Use the vectorindex.VectorIndeXCdc JSON format type HnswSqlWriter[T types.RealNumbers] struct { cdc *vectorindex.VectorIndexCdc[T] meta vectorindex.HnswCdcParam @@ -91,39 +96,7 @@ func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Table return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") } -func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} - - w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] - typ := tabledef.Cols[w.pkPos].Typ - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - - nparts := len(w.indexdef[0].Parts) - w.partsPos = make([]int32, nparts) - w.partsType = make([]*types.Type, nparts) - - for i, part := range w.indexdef[0].Parts { - w.partsPos[i] = tabledef.Name2ColIndex[part] - typ = tabledef.Cols[w.partsPos[i]].Typ - w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - } - - w.srcPos = make([]int32, nparts+1) - w.srcType = make([]*types.Type, nparts+1) - - w.srcPos[0] = w.pkPos - w.srcType[0] = w.pkType - for i := range w.partsType { - w.srcPos[i+1] = w.partsPos[i] - w.srcType[i+1] = w.partsType[i] - } - - w.indexTableName = w.indexdef[0].IndexTableName - w.dbName = tabledef.DbName - - return w, nil -} - +// Implementation of Base Index SqlWriter func (w *BaseIndexSqlWriter) Full() bool { return false } @@ -232,6 +205,40 @@ func (w *BaseIndexSqlWriter) Empty() bool { return len(w.vbuf) == 0 } +// New Fulltext Sql Writer +func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} + + w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] + typ := tabledef.Cols[w.pkPos].Typ + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + + nparts := len(w.indexdef[0].Parts) + w.partsPos = make([]int32, nparts) + w.partsType = make([]*types.Type, nparts) + + for i, part := range w.indexdef[0].Parts { + w.partsPos[i] = tabledef.Name2ColIndex[part] + typ = tabledef.Cols[w.partsPos[i]].Typ + w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } + + w.srcPos = make([]int32, nparts+1) + w.srcType = make([]*types.Type, nparts+1) + + w.srcPos[0] = w.pkPos + w.srcType[0] = w.pkType + for i := range w.partsType { + w.srcPos[i+1] = w.partsPos[i] + w.srcType[i+1] = w.partsType[i] + } + + w.indexTableName = w.indexdef[0].IndexTableName + w.dbName = tabledef.DbName + + return w, nil +} + // with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from // (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src // cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; @@ -283,6 +290,7 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { return []byte(sql), nil } +// Implementation of HNSW Sql writer func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { w := &HnswSqlWriter[float32]{tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, cdc: vectorindex.NewVectorIndexCdc[float32]()} @@ -447,6 +455,7 @@ func (w *HnswSqlWriter[T]) ToSql() ([]byte, error) { return []byte(sql), nil } +// Implementation of Ivfflat Sql writer func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { w := &IvfflatSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} From a39fa829c73cd4c2b796d96e2ec770c5b303525b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 13:26:30 +0100 Subject: [PATCH 142/335] cleanup --- pkg/cdc/index_sqlwriter.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 6e2d61147bd01..8fab542d412e4 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -93,7 +93,6 @@ func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Table return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") } - return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") } // Implementation of Base Index SqlWriter From 613544e2b5e5ad77f07bbea52f5bf068b0116aac Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 13:35:59 +0100 Subject: [PATCH 143/335] sca --- pkg/cdc/index_sqlwriter.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 8fab542d412e4..83e6ce34a82f0 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -285,7 +285,6 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) sql += fmt.Sprintf("SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", w.param, w.pkType.Oid, cnames_str) - fmt.Printf("SQL :%s\n", sql) return []byte(sql), nil } @@ -590,6 +589,5 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { catalog.SystemSI_IVFFLAT_TblCol_Centroids_centroid, w.tabledef.Cols[w.partsPos[0]].Name) - fmt.Printf("SQL :%s\n", sql) return []byte(sql), nil } From 1a38d8ba04fa1f35bbc1a58ec5262018986f8dc6 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 13:49:57 +0100 Subject: [PATCH 144/335] add license --- pkg/cdc/index_sqlwriter.go | 14 ++++++++++++++ pkg/cdc/index_sqlwriter_test.go | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 83e6ce34a82f0..80c81ae109d2b 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -1,3 +1,17 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package cdc import ( diff --git a/pkg/cdc/index_sqlwriter_test.go b/pkg/cdc/index_sqlwriter_test.go index ca2415deb258a..b43ef851fb085 100644 --- a/pkg/cdc/index_sqlwriter_test.go +++ b/pkg/cdc/index_sqlwriter_test.go @@ -1,3 +1,17 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package cdc import ( From be202328029c05136b7ad7b128bc3077d95b7e61 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 14:20:42 +0100 Subject: [PATCH 145/335] bug fix --- pkg/vectorindex/types_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/vectorindex/types_test.go b/pkg/vectorindex/types_test.go index 9c7f24261c17f..fad882167d8af 100644 --- a/pkg/vectorindex/types_test.go +++ b/pkg/vectorindex/types_test.go @@ -34,14 +34,14 @@ func TestCdc(t *testing.T) { js, err := cdc.ToJson() require.Nil(t, err) - require.Equal(t, js, `{"start":"","end":"","cdc":[{"t":"I","pk":0,"v":[0,1,2]}]}`) + require.Equal(t, js, `{"cdc":[{"t":"I","pk":0,"v":[0,1,2]}]}`) // delete cdc.Delete(key) js, err = cdc.ToJson() require.Nil(t, err) - require.Equal(t, js, `{"start":"","end":"","cdc":[{"t":"I","pk":0,"v":[0,1,2]},{"t":"D","pk":0}]}`) + require.Equal(t, js, `{"cdc":[{"t":"I","pk":0,"v":[0,1,2]},{"t":"D","pk":0}]}`) // upsert cdc.Upsert(key2, v2) @@ -49,7 +49,7 @@ func TestCdc(t *testing.T) { js, err = cdc.ToJson() require.Nil(t, err) - require.Equal(t, js, `{"start":"","end":"","cdc":[{"t":"I","pk":0,"v":[0,1,2]},{"t":"D","pk":0},{"t":"U","pk":1,"v":[1,2,3]}]}`) + require.Equal(t, js, `{"cdc":[{"t":"I","pk":0,"v":[0,1,2]},{"t":"D","pk":0},{"t":"U","pk":1,"v":[1,2,3]}]}`) require.False(t, cdc.Empty()) @@ -59,5 +59,5 @@ func TestCdc(t *testing.T) { js, err = cdc.ToJson() require.NoError(t, err) - require.Equal(t, js, `{"start":"","end":"","cdc":[]}`) + require.Equal(t, js, `{"cdc":[]}`) } From 622a8886e5f6c135c1ed71f923b582c02480a2d5 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 14:41:17 +0100 Subject: [PATCH 146/335] more comments --- pkg/sql/compile/ddl.go | 6 +++--- pkg/sql/compile/util.go | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index a3555e6187338..20a8b515a6106 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2109,11 +2109,11 @@ func (s *Scope) DropIndex(c *Compile) error { return err } - // TODO: HNSWCDC delete cdc task for vector, fulltext index - // cdc task name = __mo_cdc_{qry.Database}_{qry.Table}_{qry.IndexName} + // TODO: HNSWCDC delete cdc table task for vector, fulltext index + // cdc task name = __mo_cdc_{qry.Database}_{qry.Table} // pitr name = __mo_table_pitr_{qry.Database}_{qry.Table} // DROP PITR IF EXISTS `__mo_table_pitr_${qry.Database}_${srctable}` - // DROP CDC TASK __mo_cdc_${qry.Database}_${srctable}_${qry.IndexName} + // DROP CDC TASK __mo_cdc_${qry.Database}_${srctable} return nil } diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index 1a01954e26a5a..6f9c073c60b0f 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -563,10 +563,13 @@ func genBuildHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDe } // TODO: HNSWCDC 4. register CDC update +// CDC Task is 'Table' level. Existing CDC task may be serving other indexes and we shall drop and create CDC task so that TableDef.Indexes is up-to-date. +// If not, new index may not be updated because the old IndexSinker has to old TableDef.Indexes in memory. +// // DROP PITR IF EXISTS `__mo_table_pitr_${db}_${srctable}` -// DROP CDC IF EXISTS TASK __mo_cdc_${db}_${srctable}_${indexInfo.IndexName} NOTE: IF EXISTS is not valid SQL for DROP CDC -// CREATE PITR __mo_table_pitr_${db}_${srctable} for table ${db} ${srctable) range 2 'h'; -// CREATE CDC __mo_cdc_${db}_${srctable}_${indexInfo.IndexName} 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' '${db}.${srctable}' {'Level'='table'}' +// DROP CDC IF EXISTS TASK __mo_cdc_${db}_${srctable} NOTE: IF EXISTS is not valid SQL for DROP CDC +// CREATE PITR IF NOT EXISTS __mo_table_pitr_${db}_${srctable} for table ${db} ${srctable) range 2 'h'; +// CREATE CDC IF NOT EXISTS __mo_cdc_${db}_${srctable} 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' '${db}.${srctable}' {'Level'='table'}' func genCdcHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDef, qryDatabase string, originalTableDef *plan.TableDef) ([]string, error) { idxdef_meta, ok := indexDefs[catalog.Hnsw_TblType_Metadata] From 95a9a5c6b5af07089f7ee55bd0d0fc08444fc239 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 16:57:45 +0100 Subject: [PATCH 147/335] delete sql --- pkg/cdc/index_sqlwriter.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 80c81ae109d2b..69563a630d62a 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -27,6 +27,10 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) +const ( + MAX_CDC_DATA_SIZE = 8192 +) + // IndexSqlWriter interface type IndexSqlWriter interface { CheckLastOp(op string) bool @@ -43,6 +47,7 @@ type IndexSqlWriter interface { type BaseIndexSqlWriter struct { lastCdcOp string vbuf []byte + ndata int param string tabledef *plan.TableDef indexdef []*plan.IndexDef @@ -111,7 +116,7 @@ func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Table // Implementation of Base Index SqlWriter func (w *BaseIndexSqlWriter) Full() bool { - return false + return w.ndata >= MAX_CDC_DATA_SIZE } // return true when last op is empty or last op == current op @@ -140,6 +145,7 @@ func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { } w.vbuf = appendString(w.vbuf, ")") + w.ndata += 1 return nil } @@ -191,6 +197,7 @@ func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { if err != nil { return err } + w.ndata += 1 } @@ -205,6 +212,7 @@ func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { if err != nil { return err } + w.ndata += 1 return nil } @@ -212,6 +220,7 @@ func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { func (w *BaseIndexSqlWriter) Reset() { w.lastCdcOp = "" w.vbuf = w.vbuf[:0] + w.ndata = 0 } func (w *BaseIndexSqlWriter) Empty() bool { @@ -264,6 +273,7 @@ func (w *FulltextSqlWriter) ToSql() ([]byte, error) { switch w.lastCdcOp { case vectorindex.CDC_DELETE: + return w.toFulltextDelete() case vectorindex.CDC_UPSERT: return w.toFulltextUpsert(true) case vectorindex.CDC_INSERT: @@ -275,6 +285,11 @@ func (w *FulltextSqlWriter) ToSql() ([]byte, error) { return nil, nil } +func (w *FulltextSqlWriter) toFulltextDelete() ([]byte, error) { + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.indexTableName, catalog.FullTextIndex_TabCol_Id, string(w.vbuf)) + return []byte(sql), nil +} + func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { var sql string @@ -552,6 +567,7 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { switch w.lastCdcOp { case vectorindex.CDC_DELETE: + return w.toIvfflatDelete() case vectorindex.CDC_UPSERT: return w.toIvfflatUpsert(true) case vectorindex.CDC_INSERT: @@ -563,6 +579,17 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { return nil, nil } +// catalog.SystemSI_IVFFLAT_TblCol_Entries_version +// catalog.SystemSI_IVFFLAT_TblCol_Entries_pk +// catalog.CPrimaryKeyColName +func (w *IvfflatSqlWriter) toIvfflatDelete() ([]byte, error) { + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.entries_tbl, + catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, + string(w.vbuf)) + return []byte(sql), nil + +} + func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { var sql string From 4f0662965bf87a800ae1e4b98feec182929b2887 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 17:12:34 +0100 Subject: [PATCH 148/335] cleanup --- pkg/cdc/index_sqlwriter.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 69563a630d62a..322771ef88fd1 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -149,6 +149,17 @@ func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { return nil } +func (w *BaseIndexSqlWriter) writeDeleteRow(ctx context.Context, row []any) error { + var err error + + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) + if err != nil { + return err + } + w.ndata += 1 + return nil +} + func (w *BaseIndexSqlWriter) Upsert(ctx context.Context, row []any) error { if len(w.lastCdcOp) == 0 { @@ -188,17 +199,11 @@ func (w *BaseIndexSqlWriter) Insert(ctx context.Context, row []any) error { } func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { - var err error if len(w.lastCdcOp) == 0 { // init w.lastCdcOp = vectorindex.CDC_DELETE - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) - if err != nil { - return err - } - w.ndata += 1 - + return w.writeDeleteRow(ctx, row) } if w.lastCdcOp != vectorindex.CDC_DELETE { @@ -208,13 +213,7 @@ func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { // same as previous operation and append to IN () w.vbuf = appendString(w.vbuf, ",") - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) - if err != nil { - return err - } - w.ndata += 1 - - return nil + return w.writeDeleteRow(ctx, row) } func (w *BaseIndexSqlWriter) Reset() { From 3c34919859e4603d915b09d5d89933b9ae2b249d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 23 Jun 2025 17:16:42 +0100 Subject: [PATCH 149/335] cleanup --- pkg/cdc/index_sqlwriter.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 322771ef88fd1..d6e5605dd218f 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -280,8 +280,6 @@ func (w *FulltextSqlWriter) ToSql() ([]byte, error) { default: return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") } - - return nil, nil } func (w *FulltextSqlWriter) toFulltextDelete() ([]byte, error) { @@ -574,8 +572,6 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { default: return nil, moerr.NewInternalErrorNoCtx("IvfflatSqlWriter: invalid CDC type") } - - return nil, nil } // catalog.SystemSI_IVFFLAT_TblCol_Entries_version From d60145c047f489b06a3156f0fea572b9c71589a0 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 24 Jun 2025 11:48:28 +0100 Subject: [PATCH 150/335] bug fix delete row only have 1 column pk --- pkg/cdc/index_sinker.go | 12 ++++++++---- pkg/cdc/index_sqlwriter.go | 5 +++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index 4490088962ecf..90cbbaf56c31e 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -54,6 +54,7 @@ type indexSyncSinker struct { sqlBufSendCh chan []byte exec executor.SQLExecutor rowdata []any + rowdelete []any } type IndexEntry struct { @@ -95,8 +96,8 @@ var NewIndexSyncSinker = func( indexmap := make(map[string]*IndexEntry) for _, idx := range tableDef.Indexes { - // if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { + if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + //if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { key := idx.IndexName sidx, ok := indexmap[key] if ok { @@ -129,6 +130,7 @@ var NewIndexSyncSinker = func( exec: exec, sqlWriters: sqlwriters, rowdata: make([]any, len(tableDef.Cols)), + rowdelete: make([]any, 1), // delete row only have one column pk } return s, nil @@ -464,7 +466,7 @@ func (s *indexSyncSinker) sinkUpsert(ctx context.Context, upsertIter *atomicBatc func (s *indexSyncSinker) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { // get row from the batch - if err = deleteIter.Row(ctx, s.rowdata); err != nil { + if err = deleteIter.Row(ctx, s.rowdelete); err != nil { return err } @@ -479,7 +481,7 @@ func (s *indexSyncSinker) sinkDelete(ctx context.Context, deleteIter *atomicBatc } - writer.Delete(ctx, s.rowdata) + writer.Delete(ctx, s.rowdelete) if writer.Full() { // send SQL @@ -515,6 +517,8 @@ func (s *indexSyncSinker) sendSql(writer IndexSqlWriter) error { } s.sqlBufSendCh <- sql + os.Stderr.WriteString(string(sql)) + os.Stderr.WriteString("\n") // reset writer.Reset() diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index d6e5605dd218f..0daec9e130034 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -152,7 +152,7 @@ func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { func (w *BaseIndexSqlWriter) writeDeleteRow(ctx context.Context, row []any) error { var err error - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) + w.vbuf, err = convertColIntoSql(ctx, row[0], w.pkType, w.vbuf) if err != nil { return err } @@ -458,7 +458,8 @@ func (w *HnswSqlWriter[T]) Upsert(ctx context.Context, row []any) error { } func (w *HnswSqlWriter[T]) Delete(ctx context.Context, row []any) error { - key, ok := row[w.pkPos].(int64) + // first column is the primary key + key, ok := row[0].(int64) if !ok { return moerr.NewInternalError(ctx, "invalid key type. not int64") } From 84d945cf23d05cf4fb70e8a837a6997f932b52d4 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 24 Jun 2025 12:06:27 +0100 Subject: [PATCH 151/335] bug fix pre-defined column name --- pkg/cdc/index_sqlwriter.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 0daec9e130034..59b59bcb4948e 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -592,10 +592,10 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { coldefs := make([]string, 0, len(w.srcPos)) cnames := make([]string, 0, len(w.srcPos)) - for i, pos := range w.srcPos { + for i := range w.srcPos { typstr := w.srcType[i].DescString() - coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, w.tabledef.Cols[pos].Name)) - cnames = append(cnames, w.tabledef.Cols[pos].Name) + cnames = append(cnames, fmt.Sprintf("src%d", i)) + coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, cnames[i])) } cols := strings.Join(coldefs, ", ") @@ -624,7 +624,7 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { cnames_str, w.ivfparam.OpType, catalog.SystemSI_IVFFLAT_TblCol_Centroids_centroid, - w.tabledef.Cols[w.partsPos[0]].Name) + cnames[1]) return []byte(sql), nil } From 789fa58e31ec9a8019e6ce6104d9c6a58929139f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 24 Jun 2025 12:33:43 +0100 Subject: [PATCH 152/335] hardcode composite primary key column to varbinary --- pkg/cdc/index_sqlwriter.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 59b59bcb4948e..e694763e41377 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -302,7 +302,7 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { cols := strings.Join(coldefs, ", ") cnames_str := strings.Join(cnames, ", ") - if upsert { + if !upsert { sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbName, w.indexTableName) } else { sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbName, w.indexTableName) @@ -523,7 +523,12 @@ func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Tab w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] typ := tabledef.Cols[w.pkPos].Typ - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + if tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { + // hardcode __mo_cpkey_col column to varbinary + w.pkType = &types.Type{Oid: types.T_varbinary, Width: typ.Width, Scale: typ.Scale} + } else { + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } nparts := len(w.indexdef[0].Parts) w.partsPos = make([]int32, nparts) @@ -601,7 +606,7 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { cols := strings.Join(coldefs, ", ") cnames_str := strings.Join(cnames, ", ") - if upsert { + if !upsert { sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) } else { sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) From 504b616c8f966f15ebccce99c5657956f66939f2 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 24 Jun 2025 12:54:52 +0100 Subject: [PATCH 153/335] bug fix --- pkg/cdc/index_sqlwriter.go | 43 ++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index e694763e41377..7bca761cc3e8b 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -130,9 +130,17 @@ func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { w.vbuf = appendString(w.vbuf, "ROW(") // pk - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) - if err != nil { - return err + if w.tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { + cpkType := &types.Type{Oid: types.T_varbinary, Width: w.pkType.Width, Scale: w.pkType.Scale} + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], cpkType, w.vbuf) + if err != nil { + return err + } + } else { + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) + if err != nil { + return err + } } for i, t := range w.partsType { @@ -152,9 +160,18 @@ func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { func (w *BaseIndexSqlWriter) writeDeleteRow(ctx context.Context, row []any) error { var err error - w.vbuf, err = convertColIntoSql(ctx, row[0], w.pkType, w.vbuf) - if err != nil { - return err + if w.tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { + cpkType := &types.Type{Oid: types.T_varbinary, Width: w.pkType.Width, Scale: w.pkType.Scale} + w.vbuf, err = convertColIntoSql(ctx, row[0], cpkType, w.vbuf) + if err != nil { + return err + } + } else { + w.vbuf, err = convertColIntoSql(ctx, row[0], w.pkType, w.vbuf) + if err != nil { + return err + } + } w.ndata += 1 return nil @@ -232,7 +249,12 @@ func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Ta w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] typ := tabledef.Cols[w.pkPos].Typ - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + if tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { + // hardcode __mo_cpkey_col column to varbinary + w.pkType = &types.Type{Oid: types.T_varbinary, Width: typ.Width, Scale: typ.Scale} + } else { + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } nparts := len(w.indexdef[0].Parts) w.partsPos = make([]int32, nparts) @@ -523,12 +545,7 @@ func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Tab w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] typ := tabledef.Cols[w.pkPos].Typ - if tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { - // hardcode __mo_cpkey_col column to varbinary - w.pkType = &types.Type{Oid: types.T_varbinary, Width: typ.Width, Scale: typ.Scale} - } else { - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - } + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} nparts := len(w.indexdef[0].Parts) w.partsPos = make([]int32, nparts) From e97612ca04bdee662b77cf021c6297a5a4289c45 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 24 Jun 2025 14:25:51 +0100 Subject: [PATCH 154/335] disable fulltext and ivfflat --- pkg/sql/plan/build_dml_util.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/sql/plan/build_dml_util.go b/pkg/sql/plan/build_dml_util.go index 49b11caeb28c9..973685acd96ba 100644 --- a/pkg/sql/plan/build_dml_util.go +++ b/pkg/sql/plan/build_dml_util.go @@ -872,26 +872,35 @@ func buildInsertPlansWithRelatedHiddenTable( if err != nil { return err } - } else if postdml_flag && indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { + + } + /* disable fulltext + + else if postdml_flag && indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { // TODO: choose either PostInsertFullTextIndex or PreInsertFullTextIndex err = buildPostInsertFullTextIndex(stmt, ctx, builder, bindCtx, objRef, tableDef, updateColLength, sourceStep, ifInsertFromUniqueColMap, indexdef, idx) if err != nil { return err } } + */ } // TODO: choose either PostInsertFullTextIndex or PreInsertFullTextIndex + /* disable fulltext if !postdml_flag && indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { err = buildPreInsertFullTextIndex(stmt, ctx, builder, bindCtx, objRef, tableDef, updateColLength, sourceStep, ifInsertFromUniqueColMap, indexdef, idx) if err != nil { return err } } + */ } + /* disable IVFFLAT buildPreInsertMultiTableIndexes(ctx, builder, bindCtx, objRef, tableDef, sourceStep, multiTableIndexes) + */ ifInsertFromUnique := false if tableDef.Pkey != nil && ifInsertFromUniqueColMap != nil { @@ -4200,6 +4209,7 @@ func buildDeleteIndexPlans(ctx CompilerContext, builder *QueryBuilder, bindCtx * } } else if indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { // TODO: choose either PostDeleteFullTextIndex or PreDeleteFullTextIndex + /* distable fulltext if postdml_flag { err = buildPostDeleteFullTextIndex(ctx, builder, bindCtx, delCtx, indexdef, idx, typMap, posMap) } else { @@ -4208,10 +4218,13 @@ func buildDeleteIndexPlans(ctx CompilerContext, builder *QueryBuilder, bindCtx * if err != nil { return err } + */ } } + /* disable ivfflat buildDeleteMultiTableIndexes(ctx, builder, bindCtx, delCtx, multiTableIndexes) + */ } return nil From 3e5ead44069dd895b8c15b564c19b11c57735590 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 24 Jun 2025 14:33:21 +0100 Subject: [PATCH 155/335] bug fix --- pkg/cdc/index_sqlwriter.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go index 7bca761cc3e8b..57c1ce70dee07 100644 --- a/pkg/cdc/index_sqlwriter.go +++ b/pkg/cdc/index_sqlwriter.go @@ -249,12 +249,7 @@ func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.Ta w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] typ := tabledef.Cols[w.pkPos].Typ - if tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { - // hardcode __mo_cpkey_col column to varbinary - w.pkType = &types.Type{Oid: types.T_varbinary, Width: typ.Width, Scale: typ.Scale} - } else { - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - } + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} nparts := len(w.indexdef[0].Parts) w.partsPos = make([]int32, nparts) From 2806c240b126c1e41e2889d325f4beb418506fac Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 24 Jun 2025 14:49:41 +0100 Subject: [PATCH 156/335] only enable hnsw --- pkg/cdc/index_sinker.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index 90cbbaf56c31e..4ff5154e912b2 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -96,8 +96,8 @@ var NewIndexSyncSinker = func( indexmap := make(map[string]*IndexEntry) for _, idx := range tableDef.Indexes { - if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - //if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { + //if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { key := idx.IndexName sidx, ok := indexmap[key] if ok { From 9ba390e1b986d74e61980ede2c8f3974a754a67d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 25 Jun 2025 13:04:01 +0100 Subject: [PATCH 157/335] add async option --- pkg/catalog/secondary_index_utils.go | 29 +- pkg/fulltext/types.go | 1 + pkg/sql/parsers/dialect/mysql/keywords.go | 1 + pkg/sql/parsers/dialect/mysql/mysql_sql.go | 17023 ++++++++-------- pkg/sql/parsers/dialect/mysql/mysql_sql.y | 11 +- .../parsers/dialect/mysql/mysql_sql_test.go | 10 +- pkg/sql/parsers/tree/create.go | 4 + pkg/sql/plan/build_ddl.go | 8 +- pkg/sql/plan/build_show_util.go | 5 + pkg/vectorindex/types.go | 2 + 10 files changed, 8579 insertions(+), 8515 deletions(-) diff --git a/pkg/catalog/secondary_index_utils.go b/pkg/catalog/secondary_index_utils.go index 0f84dd346c8c3..63f79e89c6bd7 100644 --- a/pkg/catalog/secondary_index_utils.go +++ b/pkg/catalog/secondary_index_utils.go @@ -85,6 +85,7 @@ const ( HnswEfConstruction = "ef_construction" HnswQuantization = "quantization" HnswEfSearch = "ef_search" + Async = "async" ) /* 1. ToString Functions */ @@ -133,6 +134,12 @@ func IndexParamsToStringList(indexParams string) (string, error) { res += fmt.Sprintf(" %s '%s' ", IndexAlgoParamOpType, opType) } + if val, ok := result[Async]; ok { + if val == "true" { + res += fmt.Sprintf(" %s ", Async) + } + } + return res, nil } @@ -179,10 +186,18 @@ func fullTextIndexParamsToMap(def *tree.FullTextIndex) (map[string]string, error // fulltext index here if def.IndexOption != nil { parsername := strings.ToLower(def.IndexOption.ParserName) - if parsername != "ngram" && parsername != "default" && parsername != "json" && parsername != "json_value" { - return nil, moerr.NewInternalErrorNoCtx(fmt.Sprintf("invalid parser %s", parsername)) + if len(parsername) == 0 { + res["parser"] = "ngram" + } else { + if parsername != "ngram" && parsername != "default" && parsername != "json" && parsername != "json_value" { + return nil, moerr.NewInternalErrorNoCtx(fmt.Sprintf("invalid parser %s", parsername)) + } + res["parser"] = parsername + } + + if def.IndexOption.Async { + res[Async] = "true" } - res["parser"] = parsername } return res, nil } @@ -224,6 +239,10 @@ func indexParamsToMap(def interface{}) (map[string]string, error) { } else { res[IndexAlgoParamOpType] = metric.OpType_L2Distance // set l2 as default } + + if idx.IndexOption.Async { + res[Async] = "true" + } case tree.INDEX_TYPE_HNSW: if idx.IndexOption.HnswM < 0 { return nil, moerr.NewInternalErrorNoCtx("invalid M. hnsw.M must be > 0") @@ -265,6 +284,10 @@ func indexParamsToMap(def interface{}) (map[string]string, error) { } else { res[IndexAlgoParamOpType] = metric.OpType_L2Distance // set l2 as default } + + if idx.IndexOption.Async { + res[Async] = "true" + } default: return nil, moerr.NewInternalErrorNoCtx("invalid index alogorithm type") } diff --git a/pkg/fulltext/types.go b/pkg/fulltext/types.go index 40b7a1c9ec8ef..9c475f1f9119a 100644 --- a/pkg/fulltext/types.go +++ b/pkg/fulltext/types.go @@ -102,6 +102,7 @@ Run Eval() to get final answer and score // Parser parameters type FullTextParserParam struct { Parser string `json:"parser"` + Async string `json:"async"` } // Search accumulator is to parse the search string into list of pattern and each pattern will associate with WordAccum by pattern.Text diff --git a/pkg/sql/parsers/dialect/mysql/keywords.go b/pkg/sql/parsers/dialect/mysql/keywords.go index d2122bab73d7f..78a490fc0c4c6 100644 --- a/pkg/sql/parsers/dialect/mysql/keywords.go +++ b/pkg/sql/parsers/dialect/mysql/keywords.go @@ -36,6 +36,7 @@ func init() { "asc": ASC, "ascii": ASCII, "asensitive": UNUSED, + "async": ASYNC, "auto_increment": AUTO_INCREMENT, "autoextend_size": AUTOEXTEND_SIZE, "auto_random": AUTO_RANDOM, diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index 12a7d0d290fcd..0676e34af1e9e 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -361,304 +361,305 @@ const EF_SEARCH = 57684 const EF_CONSTRUCTION = 57685 const M = 57686 const QUANTIZATION = 57687 -const EXPIRE = 57688 -const ACCOUNT = 57689 -const ACCOUNTS = 57690 -const UNLOCK = 57691 -const DAY = 57692 -const NEVER = 57693 -const PUMP = 57694 -const MYSQL_COMPATIBILITY_MODE = 57695 -const UNIQUE_CHECK_ON_AUTOINCR = 57696 -const MODIFY = 57697 -const CHANGE = 57698 -const SECOND = 57699 -const ASCII = 57700 -const COALESCE = 57701 -const COLLATION = 57702 -const HOUR = 57703 -const MICROSECOND = 57704 -const MINUTE = 57705 -const MONTH = 57706 -const QUARTER = 57707 -const REPEAT = 57708 -const REVERSE = 57709 -const ROW_COUNT = 57710 -const WEEK = 57711 -const REVOKE = 57712 -const FUNCTION = 57713 -const PRIVILEGES = 57714 -const TABLESPACE = 57715 -const EXECUTE = 57716 -const SUPER = 57717 -const GRANT = 57718 -const OPTION = 57719 -const REFERENCES = 57720 -const REPLICATION = 57721 -const SLAVE = 57722 -const CLIENT = 57723 -const USAGE = 57724 -const RELOAD = 57725 -const FILE = 57726 -const TEMPORARY = 57727 -const ROUTINE = 57728 -const EVENT = 57729 -const SHUTDOWN = 57730 -const NULLX = 57731 -const AUTO_INCREMENT = 57732 -const APPROXNUM = 57733 -const SIGNED = 57734 -const UNSIGNED = 57735 -const ZEROFILL = 57736 -const ENGINES = 57737 -const LOW_CARDINALITY = 57738 -const AUTOEXTEND_SIZE = 57739 -const ADMIN_NAME = 57740 -const RANDOM = 57741 -const SUSPEND = 57742 -const ATTRIBUTE = 57743 -const HISTORY = 57744 -const REUSE = 57745 -const CURRENT = 57746 -const OPTIONAL = 57747 -const FAILED_LOGIN_ATTEMPTS = 57748 -const PASSWORD_LOCK_TIME = 57749 -const UNBOUNDED = 57750 -const SECONDARY = 57751 -const RESTRICTED = 57752 -const USER = 57753 -const IDENTIFIED = 57754 -const CIPHER = 57755 -const ISSUER = 57756 -const X509 = 57757 -const SUBJECT = 57758 -const SAN = 57759 -const REQUIRE = 57760 -const SSL = 57761 -const NONE = 57762 -const PASSWORD = 57763 -const SHARED = 57764 -const EXCLUSIVE = 57765 -const MAX_QUERIES_PER_HOUR = 57766 -const MAX_UPDATES_PER_HOUR = 57767 -const MAX_CONNECTIONS_PER_HOUR = 57768 -const MAX_USER_CONNECTIONS = 57769 -const FORMAT = 57770 -const VERBOSE = 57771 -const CONNECTION = 57772 -const TRIGGERS = 57773 -const PROFILES = 57774 -const LOAD = 57775 -const INLINE = 57776 -const INFILE = 57777 -const TERMINATED = 57778 -const OPTIONALLY = 57779 -const ENCLOSED = 57780 -const ESCAPED = 57781 -const STARTING = 57782 -const LINES = 57783 -const ROWS = 57784 -const IMPORT = 57785 -const DISCARD = 57786 -const JSONTYPE = 57787 -const MODUMP = 57788 -const OVER = 57789 -const PRECEDING = 57790 -const FOLLOWING = 57791 -const GROUPS = 57792 -const DATABASES = 57793 -const TABLES = 57794 -const SEQUENCES = 57795 -const EXTENDED = 57796 -const FULL = 57797 -const PROCESSLIST = 57798 -const FIELDS = 57799 -const COLUMNS = 57800 -const OPEN = 57801 -const ERRORS = 57802 -const WARNINGS = 57803 -const INDEXES = 57804 -const SCHEMAS = 57805 -const NODE = 57806 -const LOCKS = 57807 -const ROLES = 57808 -const TABLE_NUMBER = 57809 -const COLUMN_NUMBER = 57810 -const TABLE_VALUES = 57811 -const TABLE_SIZE = 57812 -const NAMES = 57813 -const GLOBAL = 57814 -const PERSIST = 57815 -const SESSION = 57816 -const ISOLATION = 57817 -const LEVEL = 57818 -const READ = 57819 -const WRITE = 57820 -const ONLY = 57821 -const REPEATABLE = 57822 -const COMMITTED = 57823 -const UNCOMMITTED = 57824 -const SERIALIZABLE = 57825 -const LOCAL = 57826 -const EVENTS = 57827 -const PLUGINS = 57828 -const CURRENT_TIMESTAMP = 57829 -const DATABASE = 57830 -const CURRENT_TIME = 57831 -const LOCALTIME = 57832 -const LOCALTIMESTAMP = 57833 -const UTC_DATE = 57834 -const UTC_TIME = 57835 -const UTC_TIMESTAMP = 57836 -const REPLACE = 57837 -const CONVERT = 57838 -const SEPARATOR = 57839 -const TIMESTAMPDIFF = 57840 -const CURRENT_DATE = 57841 -const CURRENT_USER = 57842 -const CURRENT_ROLE = 57843 -const SECOND_MICROSECOND = 57844 -const MINUTE_MICROSECOND = 57845 -const MINUTE_SECOND = 57846 -const HOUR_MICROSECOND = 57847 -const HOUR_SECOND = 57848 -const HOUR_MINUTE = 57849 -const DAY_MICROSECOND = 57850 -const DAY_SECOND = 57851 -const DAY_MINUTE = 57852 -const DAY_HOUR = 57853 -const YEAR_MONTH = 57854 -const SQL_TSI_HOUR = 57855 -const SQL_TSI_DAY = 57856 -const SQL_TSI_WEEK = 57857 -const SQL_TSI_MONTH = 57858 -const SQL_TSI_QUARTER = 57859 -const SQL_TSI_YEAR = 57860 -const SQL_TSI_SECOND = 57861 -const SQL_TSI_MINUTE = 57862 -const RECURSIVE = 57863 -const CONFIG = 57864 -const DRAINER = 57865 -const SOURCE = 57866 -const STREAM = 57867 -const HEADERS = 57868 -const CONNECTOR = 57869 -const CONNECTORS = 57870 -const DAEMON = 57871 -const PAUSE = 57872 -const CANCEL = 57873 -const TASK = 57874 -const RESUME = 57875 -const MATCH = 57876 -const AGAINST = 57877 -const BOOLEAN = 57878 -const LANGUAGE = 57879 -const WITH = 57880 -const QUERY = 57881 -const EXPANSION = 57882 -const WITHOUT = 57883 -const VALIDATION = 57884 -const UPGRADE = 57885 -const RETRY = 57886 -const ADDDATE = 57887 -const BIT_AND = 57888 -const BIT_OR = 57889 -const BIT_XOR = 57890 -const CAST = 57891 -const COUNT = 57892 -const APPROX_COUNT = 57893 -const APPROX_COUNT_DISTINCT = 57894 -const SERIAL_EXTRACT = 57895 -const APPROX_PERCENTILE = 57896 -const CURDATE = 57897 -const CURTIME = 57898 -const DATE_ADD = 57899 -const DATE_SUB = 57900 -const EXTRACT = 57901 -const GROUP_CONCAT = 57902 -const MAX = 57903 -const MID = 57904 -const MIN = 57905 -const NOW = 57906 -const POSITION = 57907 -const SESSION_USER = 57908 -const STD = 57909 -const STDDEV = 57910 -const MEDIAN = 57911 -const CLUSTER_CENTERS = 57912 -const KMEANS = 57913 -const STDDEV_POP = 57914 -const STDDEV_SAMP = 57915 -const SUBDATE = 57916 -const SUBSTR = 57917 -const SUBSTRING = 57918 -const SUM = 57919 -const SYSDATE = 57920 -const SYSTEM_USER = 57921 -const TRANSLATE = 57922 -const TRIM = 57923 -const VARIANCE = 57924 -const VAR_POP = 57925 -const VAR_SAMP = 57926 -const AVG = 57927 -const RANK = 57928 -const ROW_NUMBER = 57929 -const DENSE_RANK = 57930 -const BIT_CAST = 57931 -const BITMAP_BIT_POSITION = 57932 -const BITMAP_BUCKET_NUMBER = 57933 -const BITMAP_COUNT = 57934 -const BITMAP_CONSTRUCT_AGG = 57935 -const BITMAP_OR_AGG = 57936 -const NEXTVAL = 57937 -const SETVAL = 57938 -const CURRVAL = 57939 -const LASTVAL = 57940 -const ARROW = 57941 -const ROW = 57942 -const OUTFILE = 57943 -const HEADER = 57944 -const MAX_FILE_SIZE = 57945 -const FORCE_QUOTE = 57946 -const PARALLEL = 57947 -const STRICT = 57948 -const UNUSED = 57949 -const BINDINGS = 57950 -const DO = 57951 -const DECLARE = 57952 -const LOOP = 57953 -const WHILE = 57954 -const LEAVE = 57955 -const ITERATE = 57956 -const UNTIL = 57957 -const CALL = 57958 -const PREV = 57959 -const SLIDING = 57960 -const FILL = 57961 -const SPBEGIN = 57962 -const BACKEND = 57963 -const SERVERS = 57964 -const HANDLER = 57965 -const PERCENT = 57966 -const SAMPLE = 57967 -const MO_TS = 57968 -const PITR = 57969 -const RECOVERY_WINDOW = 57970 -const CDC = 57971 -const GROUPING = 57972 -const SETS = 57973 -const CUBE = 57974 -const ROLLUP = 57975 -const LOGSERVICE = 57976 -const REPLICAS = 57977 -const STORES = 57978 -const SETTINGS = 57979 -const KILL = 57980 -const BACKUP = 57981 -const FILESYSTEM = 57982 -const PARALLELISM = 57983 -const RESTORE = 57984 -const QUERY_RESULT = 57985 +const ASYNC = 57688 +const EXPIRE = 57689 +const ACCOUNT = 57690 +const ACCOUNTS = 57691 +const UNLOCK = 57692 +const DAY = 57693 +const NEVER = 57694 +const PUMP = 57695 +const MYSQL_COMPATIBILITY_MODE = 57696 +const UNIQUE_CHECK_ON_AUTOINCR = 57697 +const MODIFY = 57698 +const CHANGE = 57699 +const SECOND = 57700 +const ASCII = 57701 +const COALESCE = 57702 +const COLLATION = 57703 +const HOUR = 57704 +const MICROSECOND = 57705 +const MINUTE = 57706 +const MONTH = 57707 +const QUARTER = 57708 +const REPEAT = 57709 +const REVERSE = 57710 +const ROW_COUNT = 57711 +const WEEK = 57712 +const REVOKE = 57713 +const FUNCTION = 57714 +const PRIVILEGES = 57715 +const TABLESPACE = 57716 +const EXECUTE = 57717 +const SUPER = 57718 +const GRANT = 57719 +const OPTION = 57720 +const REFERENCES = 57721 +const REPLICATION = 57722 +const SLAVE = 57723 +const CLIENT = 57724 +const USAGE = 57725 +const RELOAD = 57726 +const FILE = 57727 +const TEMPORARY = 57728 +const ROUTINE = 57729 +const EVENT = 57730 +const SHUTDOWN = 57731 +const NULLX = 57732 +const AUTO_INCREMENT = 57733 +const APPROXNUM = 57734 +const SIGNED = 57735 +const UNSIGNED = 57736 +const ZEROFILL = 57737 +const ENGINES = 57738 +const LOW_CARDINALITY = 57739 +const AUTOEXTEND_SIZE = 57740 +const ADMIN_NAME = 57741 +const RANDOM = 57742 +const SUSPEND = 57743 +const ATTRIBUTE = 57744 +const HISTORY = 57745 +const REUSE = 57746 +const CURRENT = 57747 +const OPTIONAL = 57748 +const FAILED_LOGIN_ATTEMPTS = 57749 +const PASSWORD_LOCK_TIME = 57750 +const UNBOUNDED = 57751 +const SECONDARY = 57752 +const RESTRICTED = 57753 +const USER = 57754 +const IDENTIFIED = 57755 +const CIPHER = 57756 +const ISSUER = 57757 +const X509 = 57758 +const SUBJECT = 57759 +const SAN = 57760 +const REQUIRE = 57761 +const SSL = 57762 +const NONE = 57763 +const PASSWORD = 57764 +const SHARED = 57765 +const EXCLUSIVE = 57766 +const MAX_QUERIES_PER_HOUR = 57767 +const MAX_UPDATES_PER_HOUR = 57768 +const MAX_CONNECTIONS_PER_HOUR = 57769 +const MAX_USER_CONNECTIONS = 57770 +const FORMAT = 57771 +const VERBOSE = 57772 +const CONNECTION = 57773 +const TRIGGERS = 57774 +const PROFILES = 57775 +const LOAD = 57776 +const INLINE = 57777 +const INFILE = 57778 +const TERMINATED = 57779 +const OPTIONALLY = 57780 +const ENCLOSED = 57781 +const ESCAPED = 57782 +const STARTING = 57783 +const LINES = 57784 +const ROWS = 57785 +const IMPORT = 57786 +const DISCARD = 57787 +const JSONTYPE = 57788 +const MODUMP = 57789 +const OVER = 57790 +const PRECEDING = 57791 +const FOLLOWING = 57792 +const GROUPS = 57793 +const DATABASES = 57794 +const TABLES = 57795 +const SEQUENCES = 57796 +const EXTENDED = 57797 +const FULL = 57798 +const PROCESSLIST = 57799 +const FIELDS = 57800 +const COLUMNS = 57801 +const OPEN = 57802 +const ERRORS = 57803 +const WARNINGS = 57804 +const INDEXES = 57805 +const SCHEMAS = 57806 +const NODE = 57807 +const LOCKS = 57808 +const ROLES = 57809 +const TABLE_NUMBER = 57810 +const COLUMN_NUMBER = 57811 +const TABLE_VALUES = 57812 +const TABLE_SIZE = 57813 +const NAMES = 57814 +const GLOBAL = 57815 +const PERSIST = 57816 +const SESSION = 57817 +const ISOLATION = 57818 +const LEVEL = 57819 +const READ = 57820 +const WRITE = 57821 +const ONLY = 57822 +const REPEATABLE = 57823 +const COMMITTED = 57824 +const UNCOMMITTED = 57825 +const SERIALIZABLE = 57826 +const LOCAL = 57827 +const EVENTS = 57828 +const PLUGINS = 57829 +const CURRENT_TIMESTAMP = 57830 +const DATABASE = 57831 +const CURRENT_TIME = 57832 +const LOCALTIME = 57833 +const LOCALTIMESTAMP = 57834 +const UTC_DATE = 57835 +const UTC_TIME = 57836 +const UTC_TIMESTAMP = 57837 +const REPLACE = 57838 +const CONVERT = 57839 +const SEPARATOR = 57840 +const TIMESTAMPDIFF = 57841 +const CURRENT_DATE = 57842 +const CURRENT_USER = 57843 +const CURRENT_ROLE = 57844 +const SECOND_MICROSECOND = 57845 +const MINUTE_MICROSECOND = 57846 +const MINUTE_SECOND = 57847 +const HOUR_MICROSECOND = 57848 +const HOUR_SECOND = 57849 +const HOUR_MINUTE = 57850 +const DAY_MICROSECOND = 57851 +const DAY_SECOND = 57852 +const DAY_MINUTE = 57853 +const DAY_HOUR = 57854 +const YEAR_MONTH = 57855 +const SQL_TSI_HOUR = 57856 +const SQL_TSI_DAY = 57857 +const SQL_TSI_WEEK = 57858 +const SQL_TSI_MONTH = 57859 +const SQL_TSI_QUARTER = 57860 +const SQL_TSI_YEAR = 57861 +const SQL_TSI_SECOND = 57862 +const SQL_TSI_MINUTE = 57863 +const RECURSIVE = 57864 +const CONFIG = 57865 +const DRAINER = 57866 +const SOURCE = 57867 +const STREAM = 57868 +const HEADERS = 57869 +const CONNECTOR = 57870 +const CONNECTORS = 57871 +const DAEMON = 57872 +const PAUSE = 57873 +const CANCEL = 57874 +const TASK = 57875 +const RESUME = 57876 +const MATCH = 57877 +const AGAINST = 57878 +const BOOLEAN = 57879 +const LANGUAGE = 57880 +const WITH = 57881 +const QUERY = 57882 +const EXPANSION = 57883 +const WITHOUT = 57884 +const VALIDATION = 57885 +const UPGRADE = 57886 +const RETRY = 57887 +const ADDDATE = 57888 +const BIT_AND = 57889 +const BIT_OR = 57890 +const BIT_XOR = 57891 +const CAST = 57892 +const COUNT = 57893 +const APPROX_COUNT = 57894 +const APPROX_COUNT_DISTINCT = 57895 +const SERIAL_EXTRACT = 57896 +const APPROX_PERCENTILE = 57897 +const CURDATE = 57898 +const CURTIME = 57899 +const DATE_ADD = 57900 +const DATE_SUB = 57901 +const EXTRACT = 57902 +const GROUP_CONCAT = 57903 +const MAX = 57904 +const MID = 57905 +const MIN = 57906 +const NOW = 57907 +const POSITION = 57908 +const SESSION_USER = 57909 +const STD = 57910 +const STDDEV = 57911 +const MEDIAN = 57912 +const CLUSTER_CENTERS = 57913 +const KMEANS = 57914 +const STDDEV_POP = 57915 +const STDDEV_SAMP = 57916 +const SUBDATE = 57917 +const SUBSTR = 57918 +const SUBSTRING = 57919 +const SUM = 57920 +const SYSDATE = 57921 +const SYSTEM_USER = 57922 +const TRANSLATE = 57923 +const TRIM = 57924 +const VARIANCE = 57925 +const VAR_POP = 57926 +const VAR_SAMP = 57927 +const AVG = 57928 +const RANK = 57929 +const ROW_NUMBER = 57930 +const DENSE_RANK = 57931 +const BIT_CAST = 57932 +const BITMAP_BIT_POSITION = 57933 +const BITMAP_BUCKET_NUMBER = 57934 +const BITMAP_COUNT = 57935 +const BITMAP_CONSTRUCT_AGG = 57936 +const BITMAP_OR_AGG = 57937 +const NEXTVAL = 57938 +const SETVAL = 57939 +const CURRVAL = 57940 +const LASTVAL = 57941 +const ARROW = 57942 +const ROW = 57943 +const OUTFILE = 57944 +const HEADER = 57945 +const MAX_FILE_SIZE = 57946 +const FORCE_QUOTE = 57947 +const PARALLEL = 57948 +const STRICT = 57949 +const UNUSED = 57950 +const BINDINGS = 57951 +const DO = 57952 +const DECLARE = 57953 +const LOOP = 57954 +const WHILE = 57955 +const LEAVE = 57956 +const ITERATE = 57957 +const UNTIL = 57958 +const CALL = 57959 +const PREV = 57960 +const SLIDING = 57961 +const FILL = 57962 +const SPBEGIN = 57963 +const BACKEND = 57964 +const SERVERS = 57965 +const HANDLER = 57966 +const PERCENT = 57967 +const SAMPLE = 57968 +const MO_TS = 57969 +const PITR = 57970 +const RECOVERY_WINDOW = 57971 +const CDC = 57972 +const GROUPING = 57973 +const SETS = 57974 +const CUBE = 57975 +const ROLLUP = 57976 +const LOGSERVICE = 57977 +const REPLICAS = 57978 +const STORES = 57979 +const SETTINGS = 57980 +const KILL = 57981 +const BACKUP = 57982 +const FILESYSTEM = 57983 +const PARALLELISM = 57984 +const RESTORE = 57985 +const QUERY_RESULT = 57986 var yyToknames = [...]string{ "$end", @@ -1023,6 +1024,7 @@ var yyToknames = [...]string{ "EF_CONSTRUCTION", "M", "QUANTIZATION", + "ASYNC", "EXPIRE", "ACCOUNT", "ACCOUNTS", @@ -1334,7 +1336,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line mysql_sql.y:12975 +//line mysql_sql.y:12984 //line yacctab:1 var yyExca = [...]int{ @@ -1346,6043 +1348,6040 @@ var yyExca = [...]int{ 22, 812, -2, 805, -1, 167, - 246, 1246, + 246, 1247, 248, 1140, - -2, 1192, + -2, 1193, -1, 194, 44, 635, 248, 635, 275, 642, 276, 642, - 479, 635, + 480, 635, -2, 670, -1, 234, - 664, 2024, + 665, 2026, -2, 534, - -1, 548, - 664, 2148, + -1, 549, + 665, 2150, -2, 412, - -1, 606, - 664, 2207, - -2, 410, -1, 607, - 664, 2208, - -2, 411, + 665, 2209, + -2, 410, -1, 608, - 664, 2209, + 665, 2210, + -2, 411, + -1, 609, + 665, 2211, -2, 413, - -1, 748, + -1, 749, 327, 181, - 451, 181, 452, 181, - -2, 1921, - -1, 815, - 86, 1706, - -2, 2084, + 453, 181, + -2, 1923, -1, 816, - 86, 1725, - -2, 2055, - -1, 820, + 86, 1707, + -2, 2086, + -1, 817, 86, 1726, - -2, 2083, - -1, 854, - 86, 1633, - -2, 2287, + -2, 2057, + -1, 821, + 86, 1727, + -2, 2085, -1, 855, 86, 1634, - -2, 2286, + -2, 2289, -1, 856, 86, 1635, - -2, 2276, + -2, 2288, -1, 857, - 86, 2248, - -2, 2269, + 86, 1636, + -2, 2278, -1, 858, - 86, 2249, - -2, 2270, - -1, 859, 86, 2250, - -2, 2278, - -1, 860, + -2, 2271, + -1, 859, 86, 2251, - -2, 2258, - -1, 861, + -2, 2272, + -1, 860, 86, 2252, - -2, 2267, - -1, 862, + -2, 2280, + -1, 861, 86, 2253, - -2, 2279, - -1, 863, + -2, 2260, + -1, 862, 86, 2254, - -2, 2280, - -1, 864, + -2, 2269, + -1, 863, 86, 2255, - -2, 2285, - -1, 865, + -2, 2281, + -1, 864, 86, 2256, - -2, 2290, - -1, 866, + -2, 2282, + -1, 865, 86, 2257, - -2, 2291, + -2, 2287, + -1, 866, + 86, 2258, + -2, 2292, -1, 867, - 86, 1702, - -2, 2122, + 86, 2259, + -2, 2293, -1, 868, 86, 1703, - -2, 1905, + -2, 2124, -1, 869, 86, 1704, - -2, 2131, + -2, 1907, -1, 870, 86, 1705, - -2, 1914, - -1, 872, - 86, 1708, - -2, 1922, - -1, 874, - 86, 1710, - -2, 2155, - -1, 876, - 86, 1713, - -2, 1943, - -1, 878, - 86, 1715, - -2, 2167, + -2, 2133, + -1, 871, + 86, 1706, + -2, 1916, + -1, 873, + 86, 1709, + -2, 1924, + -1, 875, + 86, 1711, + -2, 2157, + -1, 877, + 86, 1714, + -2, 1945, -1, 879, 86, 1716, - -2, 2166, + -2, 2169, -1, 880, 86, 1717, - -2, 1990, + -2, 2168, -1, 881, 86, 1718, - -2, 2079, - -1, 884, - 86, 1721, - -2, 2178, - -1, 886, - 86, 1723, - -2, 2181, + -2, 1992, + -1, 882, + 86, 1719, + -2, 2081, + -1, 885, + 86, 1722, + -2, 2180, -1, 887, 86, 1724, -2, 2183, -1, 888, - 86, 1727, - -2, 2191, + 86, 1725, + -2, 2185, -1, 889, 86, 1728, - -2, 2064, + -2, 2193, -1, 890, 86, 1729, - -2, 2109, + -2, 2066, -1, 891, 86, 1730, - -2, 2074, + -2, 2111, -1, 892, 86, 1731, - -2, 2099, - -1, 903, - 86, 1611, - -2, 2281, + -2, 2076, + -1, 893, + 86, 1732, + -2, 2101, -1, 904, 86, 1612, - -2, 2282, + -2, 2283, -1, 905, 86, 1613, - -2, 2283, - -1, 1010, - 474, 670, + -2, 2284, + -1, 906, + 86, 1614, + -2, 2285, + -1, 1011, 475, 670, + 476, 670, -2, 636, - -1, 1061, - 128, 1905, - 139, 1905, - 159, 1905, - -2, 1879, - -1, 1182, + -1, 1062, + 128, 1907, + 139, 1907, + 159, 1907, + -2, 1880, + -1, 1183, 22, 839, -2, 788, - -1, 1292, + -1, 1293, 11, 812, 22, 812, - -2, 1488, - -1, 1376, + -2, 1489, + -1, 1377, 22, 839, -2, 788, - -1, 1735, - 86, 1778, - -2, 2081, -1, 1736, 86, 1779, - -2, 2082, - -1, 1911, + -2, 2083, + -1, 1737, + 86, 1780, + -2, 2084, + -1, 1912, 87, 1012, -2, 1018, - -1, 2366, - 111, 1184, - 155, 1184, - 195, 1184, - 198, 1184, - 288, 1184, - -2, 1177, - -1, 2531, + -1, 2367, + 111, 1185, + 155, 1185, + 195, 1185, + 198, 1185, + 288, 1185, + -2, 1178, + -1, 2532, 11, 812, 22, 812, -2, 953, - -1, 2565, - 87, 1865, - 160, 1865, - -2, 2066, -1, 2566, - 87, 1865, - 160, 1865, - -2, 2065, + 87, 1866, + 160, 1866, + -2, 2068, -1, 2567, - 87, 1841, - 160, 1841, - -2, 2052, + 87, 1866, + 160, 1866, + -2, 2067, -1, 2568, 87, 1842, 160, 1842, - -2, 2057, + -2, 2054, -1, 2569, 87, 1843, 160, 1843, - -2, 1978, + -2, 2059, -1, 2570, 87, 1844, 160, 1844, - -2, 1971, + -2, 1980, -1, 2571, 87, 1845, 160, 1845, - -2, 1895, + -2, 1973, -1, 2572, 87, 1846, 160, 1846, - -2, 2054, + -2, 1897, -1, 2573, 87, 1847, 160, 1847, - -2, 1976, + -2, 2056, -1, 2574, 87, 1848, 160, 1848, - -2, 1970, + -2, 1978, -1, 2575, 87, 1849, 160, 1849, - -2, 1958, + -2, 1972, -1, 2576, - 87, 1865, - 160, 1865, - -2, 1959, - -1, 2577, - 87, 1865, - 160, 1865, + 87, 1850, + 160, 1850, -2, 1960, - -1, 2579, - 87, 1854, - 160, 1854, - -2, 2099, + -1, 2577, + 87, 1866, + 160, 1866, + -2, 1961, + -1, 2578, + 87, 1866, + 160, 1866, + -2, 1962, -1, 2580, - 87, 1831, - 160, 1831, - -2, 2084, + 87, 1855, + 160, 1855, + -2, 2101, -1, 2581, - 87, 1863, - 160, 1863, - -2, 2055, + 87, 1832, + 160, 1832, + -2, 2086, -1, 2582, - 87, 1863, - 160, 1863, - -2, 2083, + 87, 1864, + 160, 1864, + -2, 2057, -1, 2583, - 87, 1863, - 160, 1863, - -2, 1923, + 87, 1864, + 160, 1864, + -2, 2085, -1, 2584, - 87, 1861, - 160, 1861, - -2, 2074, + 87, 1864, + 160, 1864, + -2, 1925, -1, 2585, - 87, 1858, - 160, 1858, - -2, 1948, + 87, 1862, + 160, 1862, + -2, 2076, -1, 2586, - 86, 1812, - 87, 1812, - 160, 1812, - 409, 1812, - 410, 1812, - 411, 1812, - -2, 1894, + 87, 1859, + 160, 1859, + -2, 1950, -1, 2587, 86, 1813, 87, 1813, 160, 1813, - 409, 1813, 410, 1813, 411, 1813, + 412, 1813, -2, 1896, -1, 2588, 86, 1814, 87, 1814, 160, 1814, - 409, 1814, 410, 1814, 411, 1814, - -2, 2127, + 412, 1814, + -2, 1898, -1, 2589, - 86, 1816, - 87, 1816, - 160, 1816, - 409, 1816, - 410, 1816, - 411, 1816, - -2, 2056, + 86, 1815, + 87, 1815, + 160, 1815, + 410, 1815, + 411, 1815, + 412, 1815, + -2, 2129, -1, 2590, - 86, 1818, - 87, 1818, - 160, 1818, - 409, 1818, - 410, 1818, - 411, 1818, - -2, 2034, + 86, 1817, + 87, 1817, + 160, 1817, + 410, 1817, + 411, 1817, + 412, 1817, + -2, 2058, -1, 2591, - 86, 1820, - 87, 1820, - 160, 1820, - 409, 1820, - 410, 1820, - 411, 1820, - -2, 1977, + 86, 1819, + 87, 1819, + 160, 1819, + 410, 1819, + 411, 1819, + 412, 1819, + -2, 2036, -1, 2592, - 86, 1822, - 87, 1822, - 160, 1822, - 409, 1822, - 410, 1822, - 411, 1822, - -2, 1954, + 86, 1821, + 87, 1821, + 160, 1821, + 410, 1821, + 411, 1821, + 412, 1821, + -2, 1979, -1, 2593, 86, 1823, 87, 1823, 160, 1823, - 409, 1823, 410, 1823, 411, 1823, - -2, 1955, + 412, 1823, + -2, 1956, -1, 2594, - 86, 1825, - 87, 1825, - 160, 1825, - 409, 1825, - 410, 1825, - 411, 1825, - -2, 1893, + 86, 1824, + 87, 1824, + 160, 1824, + 410, 1824, + 411, 1824, + 412, 1824, + -2, 1957, -1, 2595, - 87, 1868, - 160, 1868, - 409, 1868, - 410, 1868, - 411, 1868, - -2, 1928, + 86, 1826, + 87, 1826, + 160, 1826, + 410, 1826, + 411, 1826, + 412, 1826, + -2, 1895, -1, 2596, - 87, 1868, - 160, 1868, - 409, 1868, - 410, 1868, - 411, 1868, - -2, 1944, + 87, 1869, + 160, 1869, + 410, 1869, + 411, 1869, + 412, 1869, + -2, 1930, -1, 2597, - 87, 1871, - 160, 1871, - 409, 1871, - 410, 1871, - 411, 1871, - -2, 1924, + 87, 1869, + 160, 1869, + 410, 1869, + 411, 1869, + 412, 1869, + -2, 1946, -1, 2598, - 87, 1871, - 160, 1871, - 409, 1871, - 410, 1871, - 411, 1871, - -2, 1993, + 87, 1872, + 160, 1872, + 410, 1872, + 411, 1872, + 412, 1872, + -2, 1926, -1, 2599, - 87, 1868, - 160, 1868, - 409, 1868, - 410, 1868, - 411, 1868, - -2, 2016, - -1, 2820, - 111, 1184, - 155, 1184, - 195, 1184, - 198, 1184, - 288, 1184, - -2, 1178, - -1, 2838, - 84, 732, - 160, 732, - -2, 1362, - -1, 3269, - 198, 1184, - 312, 1451, - -2, 1423, - -1, 3458, - 111, 1184, - 155, 1184, - 195, 1184, - 198, 1184, - -2, 1302, - -1, 3460, - 111, 1184, - 155, 1184, - 195, 1184, - 198, 1184, - -2, 1302, - -1, 3472, + 87, 1872, + 160, 1872, + 410, 1872, + 411, 1872, + 412, 1872, + -2, 1995, + -1, 2600, + 87, 1869, + 160, 1869, + 410, 1869, + 411, 1869, + 412, 1869, + -2, 2018, + -1, 2821, + 111, 1185, + 155, 1185, + 195, 1185, + 198, 1185, + 288, 1185, + -2, 1179, + -1, 2839, 84, 732, 160, 732, - -2, 1362, - -1, 3493, - 198, 1184, - 312, 1451, + -2, 1363, + -1, 3270, + 198, 1185, + 312, 1452, -2, 1424, - -1, 3648, - 111, 1184, - 155, 1184, - 195, 1184, - 198, 1184, + -1, 3459, + 111, 1185, + 155, 1185, + 195, 1185, + 198, 1185, -2, 1303, - -1, 3676, - 87, 1264, - 160, 1264, - -2, 1184, - -1, 3822, - 87, 1264, - 160, 1264, - -2, 1184, - -1, 3991, - 87, 1268, - 160, 1268, - -2, 1184, - -1, 4046, + -1, 3461, + 111, 1185, + 155, 1185, + 195, 1185, + 198, 1185, + -2, 1303, + -1, 3473, + 84, 732, + 160, 732, + -2, 1363, + -1, 3494, + 198, 1185, + 312, 1452, + -2, 1425, + -1, 3649, + 111, 1185, + 155, 1185, + 195, 1185, + 198, 1185, + -2, 1304, + -1, 3677, + 87, 1265, + 160, 1265, + -2, 1185, + -1, 3823, + 87, 1265, + 160, 1265, + -2, 1185, + -1, 3993, 87, 1269, 160, 1269, - -2, 1184, + -2, 1185, + -1, 4048, + 87, 1270, + 160, 1270, + -2, 1185, } const yyPrivate = 57344 -const yyLast = 55687 +const yyLast = 55655 var yyAct = [...]int{ - 782, 758, 4100, 784, 4068, 2869, 223, 4092, 1637, 3995, - 1999, 1715, 3578, 3478, 4001, 3289, 3889, 4002, 3994, 3822, - 3255, 767, 3912, 3947, 3869, 3704, 3366, 3507, 3800, 1711, - 760, 3769, 2863, 3860, 3821, 3367, 1775, 1328, 3890, 3636, - 1481, 3738, 812, 3791, 1549, 37, 648, 1183, 2866, 1060, - 3582, 2782, 3870, 3872, 3440, 1487, 3573, 3494, 1944, 1762, - 3650, 2416, 3445, 666, 3657, 672, 672, 1177, 2841, 3645, - 3212, 672, 690, 699, 3264, 1718, 699, 3226, 3618, 3461, - 3188, 3364, 2982, 2983, 3215, 2981, 3432, 208, 2097, 2958, - 68, 2110, 2892, 3284, 1780, 3463, 756, 3273, 2978, 3266, - 2689, 3409, 711, 2207, 2133, 2094, 3051, 3011, 2059, 2561, - 3329, 2525, 2419, 1959, 2808, 2969, 1542, 696, 3193, 2563, - 3235, 3195, 2377, 1638, 1173, 2654, 3191, 707, 3190, 2321, - 2821, 3159, 141, 755, 3099, 2165, 3189, 3272, 2345, 750, - 2449, 1626, 3186, 1622, 2191, 2614, 2632, 2138, 3025, 36, - 2320, 2173, 1873, 940, 2166, 1630, 2174, 2090, 2526, 2797, - 2203, 1446, 2894, 2063, 1627, 2202, 2504, 2792, 2509, 2417, - 981, 1054, 2874, 1989, 2833, 219, 8, 1920, 2376, 1776, - 2366, 1709, 218, 7, 1413, 6, 2559, 2204, 2237, 1589, - 1527, 1121, 759, 1558, 665, 2357, 2412, 1521, 749, 648, - 1769, 1958, 2360, 2726, 768, 1749, 1199, 1700, 2169, 2172, - 27, 1641, 2154, 1659, 1596, 1714, 1615, 647, 704, 681, - 1708, 1919, 1466, 223, 1053, 223, 2533, 1112, 1113, 1916, - 23, 1526, 980, 2060, 672, 1523, 907, 1781, 1580, 24, - 1092, 713, 25, 17, 1019, 205, 1482, 10, 957, 757, - 1490, 209, 978, 16, 2505, 714, 963, 1398, 1005, 710, - 1470, 698, 15, 751, 201, 909, 1374, 1329, 3879, 3788, - 2725, 2211, 14, 910, 668, 1260, 1261, 1262, 1259, 2762, - 2762, 1452, 695, 1260, 1261, 1262, 1259, 2762, 1109, 33, - 971, 2535, 972, 1069, 1260, 1261, 1262, 1259, 3475, 3375, - 3242, 3068, 3067, 2221, 1178, 3609, 3448, 1179, 1087, 3359, - 1108, 684, 1110, 2677, 2620, 2618, 1886, 2617, 2615, 1603, - 1105, 1599, 1104, 207, 667, 691, 2319, 1456, 1393, 1525, - 3847, 952, 929, 677, 694, 1066, 2325, 702, 1367, 3169, - 673, 1449, 1450, 1451, 693, 966, 1105, 962, 1105, 1039, - 927, 2329, 1068, 1887, 1396, 3152, 3154, 1652, 3149, 3151, - 751, 692, 4080, 1504, 1178, 2754, 2752, 1880, 1389, 3571, - 3047, 1601, 3045, 2143, 3855, 206, 64, 197, 168, 3745, - 1088, 3739, 3574, 8, 3365, 2188, 3874, 1323, 2168, 908, - 7, 3128, 2160, 1103, 198, 1260, 1261, 1262, 1259, 2457, - 4106, 189, 3973, 943, 3868, 199, 4077, 3807, 3753, 2756, - 919, 1260, 1261, 1262, 1259, 1404, 3588, 4030, 1258, 3623, - 1222, 2663, 2671, 206, 140, 2208, 3619, 2367, 206, 64, - 197, 168, 928, 3462, 2368, 1636, 1777, 3866, 3775, 126, - 2707, 206, 3751, 206, 3923, 206, 2827, 1566, 202, 1403, - 926, 3808, 752, 1399, 1402, 1082, 1077, 1072, 1076, 1080, - 1401, 929, 1645, 927, 1657, 1070, 206, 1064, 206, 206, - 64, 197, 168, 709, 3126, 1065, 1405, 1438, 968, 2219, - 961, 1421, 206, 1085, 924, 1889, 2976, 1075, 2781, 965, - 964, 1650, 1642, 1668, 1654, 206, 2825, 1034, 1032, 1491, - 1033, 202, 2361, 2777, 2553, 898, 946, 897, 899, 900, - 953, 901, 902, 1649, 202, 3071, 1644, 3059, 1656, 920, - 1257, 1237, 1952, 2554, 1238, 148, 149, 3777, 150, 151, - 960, 140, 2107, 152, 3019, 3020, 153, 3153, 1083, 202, - 3150, 202, 202, 1528, 140, 1530, 2828, 1086, 1682, 970, - 1500, 3018, 1240, 1501, 959, 202, 2074, 2075, 958, 206, - 64, 197, 168, 2779, 945, 3970, 2540, 2073, 202, 2539, - 951, 2633, 2541, 1028, 1073, 1898, 1899, 1250, 2774, 206, - 64, 197, 168, 206, 64, 197, 168, 1478, 1040, 1488, - 1489, 3598, 1973, 3259, 2794, 1717, 3877, 949, 1084, 167, - 195, 204, 196, 124, 2795, 3257, 2778, 1255, 3876, 1063, - 2308, 206, 64, 197, 168, 1036, 1602, 1600, 1062, 2757, - 1420, 2775, 194, 188, 187, 3877, 3961, 1701, 3875, 70, - 1705, 3966, 202, 4005, 4006, 969, 3876, 3960, 1074, 1235, - 1950, 1503, 2658, 3949, 1191, 4072, 4073, 3368, 3975, 3976, - 3875, 3959, 202, 2793, 1704, 4029, 202, 3858, 1815, 3052, - 3368, 950, 3971, 3972, 3949, 3979, 3978, 3977, 3980, 2223, - 672, 672, 3952, 1106, 1107, 3053, 1194, 3054, 1111, 1038, - 3742, 672, 1187, 1486, 202, 1202, 1205, 1485, 1488, 1489, - 190, 191, 192, 167, 195, 204, 196, 3861, 3862, 3863, - 3864, 699, 699, 1236, 672, 1721, 1188, 2800, 2091, 3886, - 1202, 1205, 3382, 2081, 3433, 1081, 194, 2499, 2215, 1230, - 1696, 1242, 1232, 2151, 1243, 2913, 3208, 3628, 200, 3438, - 2970, 696, 696, 696, 2492, 3089, 3597, 2356, 967, 2755, - 2220, 969, 3779, 3780, 3599, 1706, 3761, 2780, 3762, 136, - 1233, 1078, 1245, 193, 1079, 137, 1037, 1392, 1609, 1608, - 1514, 2784, 2776, 3519, 3756, 3968, 1115, 1300, 3087, 1703, - 1252, 3878, 3787, 1422, 1253, 1254, 2668, 956, 193, 1069, - 1239, 1951, 3385, 3093, 2455, 1225, 3572, 1197, 922, 3046, - 2761, 1476, 2105, 2106, 2964, 4004, 1248, 1249, 1180, 2495, - 2496, 1179, 3764, 1179, 2494, 3202, 3784, 1179, 3625, 1502, - 2326, 1217, 138, 3732, 1187, 2209, 2209, 3534, 3413, 3261, - 2209, 1066, 2556, 2502, 3069, 63, 1247, 1888, 664, 1720, - 1719, 923, 3066, 3589, 3763, 3285, 3286, 1226, 1068, 1241, - 3287, 4037, 3288, 2242, 1332, 1105, 2210, 3531, 3213, 2085, - 1105, 1105, 1069, 1105, 1089, 3224, 1071, 1105, 1105, 3236, - 3806, 3974, 3905, 1228, 3900, 697, 2834, 1179, 2226, 2228, - 2229, 3812, 3804, 2222, 65, 1231, 1234, 944, 1246, 942, - 2960, 2487, 1727, 1730, 1731, 1294, 1702, 701, 700, 1204, - 1203, 2974, 2363, 1728, 1066, 1035, 695, 695, 695, 3524, - 3733, 1227, 3160, 1244, 3891, 745, 3907, 2616, 747, 146, - 203, 1068, 147, 746, 1204, 1203, 3479, 169, 908, 3752, - 1206, 3200, 61, 1604, 1395, 3913, 1397, 65, 2812, 2816, - 2817, 2818, 2813, 2815, 2814, 3761, 2753, 3762, 1409, 691, - 691, 691, 1412, 1181, 1175, 1182, 1418, 666, 694, 694, - 694, 1065, 2868, 3624, 1372, 3256, 2672, 1377, 693, 693, - 693, 1214, 1210, 1211, 1651, 169, 3214, 3778, 1216, 1400, - 169, 3206, 925, 1890, 1301, 692, 692, 692, 1229, 3486, - 981, 1488, 1489, 169, 2340, 169, 1465, 169, 139, 45, - 3291, 3764, 1196, 1488, 1489, 62, 697, 1190, 1192, 1195, - 3773, 3885, 3615, 1691, 203, 3421, 1692, 3176, 169, 2422, - 169, 169, 1296, 1297, 1298, 1299, 697, 143, 144, 2490, - 697, 145, 1477, 3763, 169, 3535, 3214, 3203, 3204, 3424, - 2799, 3695, 4095, 3813, 3805, 672, 2556, 169, 1516, 971, - 2498, 972, 672, 3205, 1193, 1484, 648, 648, 697, 3209, - 4112, 3262, 2971, 2467, 2092, 3967, 648, 648, 65, 3090, - 1553, 1553, 2466, 672, 3585, 3757, 3781, 1208, 2435, 3758, - 2864, 2865, 2806, 2868, 2415, 2438, 3684, 3690, 65, 2488, - 2489, 1538, 65, 1537, 699, 1581, 666, 2803, 2804, 1551, - 1551, 1592, 1344, 1345, 1480, 1479, 3993, 3423, 1215, 1463, - 1462, 169, 2802, 2215, 2942, 1555, 223, 3629, 3914, 1461, - 65, 3792, 1560, 3826, 3265, 648, 2227, 2082, 1186, 1174, - 2914, 169, 2915, 2916, 1697, 169, 1029, 3148, 1415, 1416, - 1729, 3201, 2437, 2458, 1425, 1426, 1427, 1428, 1429, 3464, - 1431, 1419, 1291, 2415, 3013, 3015, 1437, 3285, 3286, 3946, - 2421, 1515, 3569, 169, 3371, 2423, 1378, 3705, 3706, 3707, - 3711, 3709, 3710, 3712, 3708, 2697, 1414, 1634, 709, 1524, - 3222, 2432, 1639, 4096, 1547, 1548, 1376, 3281, 2436, 1648, - 1222, 3164, 2664, 3030, 3031, 3290, 2545, 2453, 2212, 2080, - 2057, 1411, 1430, 2425, 1165, 1161, 1162, 1163, 1164, 3320, - 2702, 3092, 2701, 2700, 2698, 1424, 1263, 2767, 1680, 2424, - 1031, 1436, 1435, 1030, 1293, 1434, 1433, 1532, 1534, 1643, - 1041, 3426, 1553, 1303, 1553, 1187, 1655, 1545, 1546, 1658, - 703, 1423, 1445, 975, 976, 977, 1892, 3697, 2911, 696, - 1448, 3410, 696, 696, 1505, 1506, 3825, 3282, 973, 1312, - 1333, 2238, 2648, 2084, 3757, 1690, 2224, 2225, 3871, 1472, - 1473, 1443, 1610, 2771, 1069, 2333, 1492, 1455, 1408, 1495, - 1221, 1069, 2699, 1901, 2341, 1464, 3101, 3100, 3992, 1902, - 1582, 1029, 1474, 2335, 2334, 941, 1605, 1624, 1625, 3607, - 1493, 1494, 1553, 1496, 1497, 3166, 1498, 2332, 970, 1900, - 1647, 1406, 1407, 3223, 1536, 930, 2479, 4093, 4094, 1187, - 1779, 1561, 931, 1675, 1676, 1458, 3691, 3692, 3014, 3658, - 1632, 1763, 1810, 1811, 1828, 1814, 1573, 1629, 2426, 1567, - 1633, 3686, 1593, 1829, 677, 3685, 4108, 934, 4114, 1613, - 3956, 1616, 1617, 1457, 1258, 1579, 1836, 3326, 1838, 2556, - 1839, 1840, 1841, 1618, 1619, 3322, 2359, 1594, 1457, 2943, - 2945, 2946, 2947, 2944, 1222, 1031, 2933, 2934, 1030, 2635, - 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, - 1747, 1748, 3429, 934, 1713, 2431, 1760, 1761, 933, 2429, - 3372, 1187, 1184, 936, 935, 2276, 3384, 1891, 2275, 1732, - 2348, 1894, 1698, 1896, 695, 1694, 1679, 695, 695, 2217, - 1813, 1903, 1905, 1871, 1906, 1678, 1908, 1909, 2703, 2704, - 1689, 1581, 1666, 2349, 2350, 1669, 1917, 1553, 1922, 1923, - 1661, 1925, 1516, 672, 938, 1837, 2768, 1710, 672, 936, - 935, 1553, 1818, 1819, 1820, 981, 1042, 691, 1945, 1688, - 691, 691, 1684, 1687, 3283, 1834, 694, 1683, 1835, 694, - 694, 1553, 1707, 1686, 1874, 1893, 693, 1516, 1029, 693, - 693, 1258, 690, 2839, 2358, 1848, 1849, 4102, 1712, 1220, - 1827, 4090, 1685, 692, 4048, 2524, 692, 692, 2313, 2395, - 1751, 4016, 1972, 2932, 1184, 1870, 1467, 1471, 1471, 1471, - 3326, 1979, 1979, 2663, 1516, 1667, 1516, 1516, 1670, 1671, - 672, 672, 2452, 2046, 1917, 2050, 937, 3241, 1553, 2054, - 2055, 1467, 1467, 4013, 2070, 4007, 648, 2523, 1260, 1261, - 1262, 1259, 1924, 912, 913, 914, 915, 1758, 1759, 3989, - 648, 1258, 1553, 1591, 3295, 1926, 785, 795, 3293, 3940, - 4103, 1976, 1031, 3158, 4049, 1030, 786, 4049, 787, 791, - 794, 790, 788, 789, 4017, 912, 913, 914, 915, 672, - 1917, 1553, 2001, 2115, 3124, 672, 672, 672, 707, 707, - 1260, 1261, 1262, 1259, 1842, 2125, 2126, 2127, 2128, 3156, - 1877, 2524, 2134, 2840, 1219, 3033, 4014, 3939, 2252, 223, - 2048, 2108, 223, 223, 2786, 223, 1913, 1914, 1915, 2758, - 1872, 792, 3990, 2653, 1564, 3933, 2840, 1982, 1928, 1929, - 1930, 1931, 1258, 2132, 1878, 3908, 2394, 2640, 2208, 1274, - 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1275, 2086, 1921, 1373, 793, 1828, 1828, 2176, 2278, 2077, - 2251, 2079, 3896, 2100, 2101, 2524, 1937, 1828, 1828, 1912, - 2072, 1716, 2098, 2099, 2193, 2408, 2117, 2118, 2119, 3845, - 1258, 1220, 1699, 2318, 2114, 2068, 1953, 1942, 1941, 3844, - 1260, 1261, 1262, 1259, 1955, 917, 2142, 1981, 2252, 2145, - 2146, 1961, 2148, 1643, 2312, 2311, 1945, 2071, 2217, 2187, - 1553, 2206, 2093, 1947, 1948, 3839, 3838, 1983, 1984, 3837, - 3836, 1722, 1723, 1724, 1725, 1726, 2178, 917, 696, 3816, - 3815, 1960, 3790, 1962, 1963, 3897, 2250, 2422, 2425, 2283, - 3540, 3488, 3454, 2053, 3402, 1069, 1965, 1969, 1069, 2052, - 671, 671, 3846, 2047, 1956, 1957, 679, 1069, 1970, 2199, - 2058, 3398, 2381, 1767, 2200, 1978, 1980, 1771, 1772, 1773, - 1774, 1966, 1967, 2076, 2087, 2078, 2130, 1812, 1260, 1261, - 1262, 1259, 3303, 3008, 2103, 1822, 2744, 1066, 2252, 2252, - 1946, 1977, 2252, 2252, 2732, 2724, 1710, 2679, 2661, 1066, - 2183, 2113, 2217, 2217, 1068, 2252, 2120, 2121, 2056, 2112, - 1444, 2171, 1964, 2556, 3489, 3455, 1068, 3403, 2649, 2642, - 2139, 1766, 1539, 2171, 2248, 1222, 4121, 2637, 1971, 2629, - 2627, 1974, 1975, 2625, 3399, 2623, 4104, 1882, 1875, 3475, - 2380, 2314, 3037, 2842, 2156, 2290, 2666, 1100, 1101, 1102, - 2289, 2665, 2657, 1069, 932, 3304, 2524, 2422, 2425, 2381, - 2274, 2402, 2265, 2235, 2236, 2264, 1275, 1258, 1258, 2177, - 1258, 2381, 2271, 2426, 2263, 2184, 1945, 2186, 2421, 2415, - 2420, 1099, 2418, 2423, 1096, 2189, 2231, 2253, 2256, 2198, - 2197, 2638, 2643, 695, 2410, 1066, 2137, 2216, 2323, 2324, - 2638, 2327, 2630, 2628, 2330, 3437, 2624, 3246, 2624, 2195, - 1672, 2123, 1068, 2381, 2313, 2336, 2201, 3722, 1258, 679, - 1949, 750, 3538, 1258, 672, 672, 672, 2214, 1663, 2254, - 1309, 1207, 1291, 1258, 2306, 1258, 691, 2424, 1258, 672, - 672, 672, 672, 1171, 1166, 694, 1968, 1258, 2230, 2102, - 1817, 1816, 2378, 3084, 4115, 693, 1817, 1816, 2239, 4076, - 2252, 2382, 2383, 2384, 3901, 2387, 1516, 2450, 1751, 2232, - 2217, 1467, 692, 3237, 1468, 3880, 3659, 2284, 2285, 2244, - 2287, 3789, 1453, 1673, 1543, 1471, 1454, 2294, 3749, 3688, - 2615, 3687, 1516, 2426, 2196, 1544, 3673, 1471, 2421, 2415, - 2420, 1499, 2418, 2423, 3467, 1875, 939, 3465, 3902, 2444, - 1875, 1875, 3632, 3447, 2233, 2234, 1843, 1844, 1845, 1846, - 3660, 3327, 1850, 1851, 1852, 1853, 1855, 1856, 1857, 1858, - 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1278, 1279, 1280, - 1281, 1282, 1275, 1541, 1093, 1094, 1095, 1098, 3468, 1097, - 3318, 3466, 2399, 3310, 3238, 1757, 2401, 2424, 2403, 2682, - 2141, 2451, 3305, 2144, 1854, 3217, 2147, 672, 1979, 2149, - 1847, 1754, 1756, 1753, 2967, 1755, 2528, 2528, 2070, 2528, - 2307, 2309, 2310, 1274, 1273, 1283, 1284, 1276, 1277, 1278, - 1279, 1280, 1281, 1282, 1275, 1469, 3357, 2966, 3239, 648, - 648, 2810, 2315, 2763, 1453, 2404, 2676, 1187, 1454, 1260, - 1261, 1262, 1259, 1553, 672, 1260, 1261, 1262, 1259, 2342, - 3360, 2641, 2547, 2686, 2181, 2192, 2619, 672, 2180, 2414, - 2179, 2413, 1440, 1187, 2600, 666, 1439, 1332, 1189, 2609, - 2140, 1592, 2551, 2070, 1770, 3038, 2605, 1540, 2607, 3958, - 1770, 223, 2245, 1597, 1907, 2140, 2716, 2456, 2407, 1259, - 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2388, 1069, 2468, - 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, - 3700, 2480, 2481, 2482, 2483, 2484, 2532, 2485, 2530, 3699, - 2534, 2645, 3055, 2542, 2903, 2543, 1262, 1259, 2536, 2901, - 2427, 2428, 2880, 2433, 1260, 1261, 1262, 1259, 2878, 2659, - 1066, 3679, 2206, 3358, 2548, 2549, 3633, 3634, 2558, 1553, - 4111, 1553, 1311, 1553, 3626, 1832, 2391, 1068, 1187, 2241, - 2746, 2397, 2747, 2246, 2398, 1310, 2678, 4086, 2610, 4085, - 1833, 2255, 4084, 1260, 1261, 1262, 1259, 2400, 4082, 4081, - 2669, 2604, 2688, 1260, 1261, 1262, 1259, 4020, 2497, 3988, - 3987, 2396, 1553, 1187, 2503, 3903, 2783, 2710, 3841, 3829, - 1532, 1534, 3819, 2537, 1260, 1261, 1262, 1259, 2262, 3809, - 2809, 3435, 2717, 2611, 3627, 4110, 2269, 1553, 3740, 3662, - 3661, 1551, 3480, 3469, 2389, 2390, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1275, 2392, 2393, 2705, 2552, 2286, 1260, - 1261, 1262, 1259, 2291, 2292, 2293, 1551, 1597, 2296, 2297, - 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 3117, 2601, - 2603, 2718, 2555, 2954, 3434, 3306, 2765, 2766, 2655, 2656, - 2769, 3436, 2721, 2722, 1273, 1283, 1284, 1276, 1277, 1278, - 1279, 1280, 1281, 1282, 1275, 671, 1176, 3207, 1187, 3080, - 2694, 1535, 1187, 3050, 2952, 3049, 1185, 2937, 2936, 1553, - 2935, 2927, 1516, 1260, 1261, 1262, 1259, 2690, 2050, 2690, - 2921, 2920, 1598, 2675, 2684, 2719, 2838, 2919, 2670, 1213, - 2708, 3116, 2844, 2953, 2267, 2845, 2918, 2950, 2759, 2662, - 2667, 2939, 2660, 1266, 1267, 1268, 1269, 1270, 1271, 1272, - 1264, 2651, 2750, 2855, 1260, 1261, 1262, 1259, 1260, 1261, - 1262, 1259, 2631, 1187, 2951, 2826, 1260, 1261, 1262, 1259, - 3103, 2877, 2680, 2681, 1710, 2544, 2317, 2822, 1187, 1187, - 1187, 1979, 2706, 2159, 1187, 3998, 2887, 2888, 2889, 2890, - 1187, 2897, 2696, 2898, 2899, 2158, 2900, 2949, 2902, 2157, - 3603, 2938, 2153, 2823, 2266, 2152, 2109, 2602, 1897, 2897, - 1069, 1895, 1260, 1261, 1262, 1259, 1664, 1391, 3441, 2001, - 3446, 2528, 2856, 3194, 4107, 2807, 1471, 1260, 1261, 1262, - 1259, 1260, 1261, 1262, 1259, 2955, 3782, 3783, 2683, 2846, - 3591, 2259, 4105, 4087, 2835, 648, 3579, 2796, 1260, 1261, - 1262, 1259, 4074, 2050, 1169, 4036, 4035, 1187, 2070, 2070, - 2070, 2070, 2070, 2070, 2789, 4032, 2791, 1260, 1261, 1262, - 1259, 3964, 3963, 3770, 1187, 2070, 2858, 3944, 2528, 3888, - 1875, 2875, 1875, 1333, 3637, 2875, 2805, 3882, 2788, 3865, - 3590, 3856, 2961, 3833, 3016, 4113, 1553, 797, 142, 2871, - 2829, 1875, 1875, 142, 2837, 8, 3828, 672, 672, 2564, - 2727, 2728, 7, 1168, 2882, 2843, 2733, 1260, 1261, 1262, - 1259, 3528, 3827, 3786, 1921, 3772, 745, 3771, 3741, 747, - 2857, 3681, 2860, 1591, 746, 3641, 2873, 3630, 1260, 1261, - 1262, 1259, 2909, 2910, 2249, 2879, 3390, 2885, 1260, 1261, - 1262, 1259, 3612, 3610, 2876, 3608, 3004, 2925, 2926, 3605, - 3602, 3601, 223, 3577, 3575, 2972, 678, 223, 3120, 142, - 3548, 2917, 3545, 1260, 1261, 1262, 1259, 3542, 2247, 2929, - 2959, 3431, 2644, 2963, 2647, 3418, 3411, 3395, 3393, 1828, - 3388, 1828, 3017, 3338, 3065, 1260, 1261, 1262, 1259, 3316, - 3932, 2854, 3315, 3313, 2673, 3312, 3307, 2968, 3079, 2962, - 3301, 3300, 3218, 3119, 1553, 3181, 2965, 3086, 4062, 3180, - 2847, 3179, 1260, 1261, 1262, 1259, 3170, 3168, 3165, 2852, - 2853, 3163, 2322, 3060, 3034, 3094, 3007, 3006, 3005, 3001, - 1260, 1261, 1262, 1259, 3091, 3072, 3070, 3048, 2687, 3039, - 3023, 2693, 2948, 2940, 3043, 3024, 1260, 1261, 1262, 1259, - 1511, 3021, 2711, 2712, 2930, 2928, 2924, 1522, 2923, 2848, - 2714, 2715, 2922, 2772, 2851, 1874, 1624, 1625, 1069, 2764, - 3064, 2760, 853, 852, 2870, 2652, 2720, 2337, 1559, 2331, - 1069, 2985, 2986, 2987, 2988, 2989, 2990, 2328, 2162, 2155, - 1067, 1885, 1884, 1665, 1632, 142, 1340, 1336, 1335, 3041, - 3040, 1629, 1172, 921, 1633, 1722, 1875, 3083, 3920, 3167, - 142, 3916, 142, 3766, 3088, 3062, 3171, 3172, 3173, 3175, - 3765, 3177, 3178, 1617, 2787, 3754, 3073, 3750, 2564, 3058, - 3056, 1187, 3063, 1618, 1619, 3061, 3604, 3197, 3076, 3075, - 3074, 206, 3586, 197, 168, 3558, 3460, 3211, 3459, 3458, - 3428, 3407, 672, 3405, 3404, 3401, 3096, 3400, 3394, 3392, - 3373, 3363, 3362, 3349, 3082, 3227, 1187, 3102, 3095, 672, - 3118, 1187, 1187, 3348, 3247, 3115, 3184, 3155, 3111, 3112, - 2070, 2378, 3108, 3245, 3110, 3109, 3122, 2849, 2850, 2872, - 3113, 3105, 3104, 3157, 3098, 3032, 2785, 1260, 1261, 1262, - 1259, 2743, 2626, 2444, 2872, 2883, 2884, 2742, 2622, 2621, - 2886, 2741, 3221, 3230, 202, 3271, 2893, 3274, 3234, 3274, - 3274, 2822, 2295, 2288, 1187, 2282, 2281, 2280, 1260, 1261, - 1262, 1259, 3162, 3161, 1260, 1261, 1262, 1259, 1260, 1261, - 1262, 1259, 3296, 2240, 2279, 3254, 3292, 3183, 2277, 2273, - 1553, 1553, 2272, 3199, 3106, 3107, 1069, 2740, 1069, 3249, - 3258, 3260, 2270, 1069, 2261, 3182, 2258, 1274, 1273, 1283, - 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1275, 1551, - 1551, 2257, 2161, 2984, 1260, 1261, 1262, 1259, 3243, 1868, - 1069, 3220, 1867, 1866, 3297, 3298, 2739, 672, 1066, 1831, - 2984, 3240, 1830, 3244, 3197, 1821, 206, 3820, 3229, 1565, - 1563, 4061, 3270, 3232, 3233, 1068, 4019, 1516, 3253, 3938, - 2050, 2050, 3279, 1260, 1261, 1262, 1259, 1330, 2414, 1875, - 2413, 3915, 3269, 3930, 3129, 3130, 3003, 3670, 3851, 3848, - 3131, 3132, 3133, 3134, 3835, 3135, 3136, 3137, 3138, 3139, - 3140, 3141, 3142, 3143, 3144, 3145, 3275, 3276, 3830, 3294, - 3280, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, - 1281, 1282, 1275, 3735, 1187, 3734, 3716, 3698, 2710, 202, - 3694, 3672, 3656, 4054, 2738, 3559, 3361, 3556, 3302, 3526, - 708, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, - 1281, 1282, 1275, 3525, 3522, 3277, 3521, 3487, 3042, 3484, - 3044, 1260, 1261, 1262, 1259, 2737, 3482, 3449, 3323, 3324, - 3114, 3308, 3311, 1612, 3314, 3309, 3928, 2736, 3317, 1875, - 3321, 3926, 2735, 672, 1875, 1623, 1614, 4052, 3334, 1628, - 3335, 1801, 1260, 1261, 1262, 1259, 2192, 1631, 1927, 3340, - 2734, 1620, 1447, 1932, 1260, 1261, 1262, 1259, 3342, 1260, - 1261, 1262, 1259, 2995, 2956, 2881, 3345, 3346, 3347, 1286, - 2831, 1290, 2830, 2824, 2790, 2745, 3252, 1260, 1261, 1262, - 1259, 3097, 2636, 3351, 2546, 2486, 2379, 1287, 1289, 1285, - 2351, 1288, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1275, 2316, 1752, 2134, 3415, 202, 3121, - 3417, 2731, 2122, 1911, 3419, 3248, 1881, 1695, 1646, 3425, - 3250, 3251, 3377, 2730, 3380, 1985, 1986, 3381, 3677, 2729, - 1621, 1390, 1375, 1371, 3396, 3374, 1370, 1369, 1260, 1261, - 1262, 1259, 1368, 1367, 3386, 1366, 1365, 3376, 1364, 1363, - 1260, 1261, 1262, 1259, 672, 2050, 1260, 1261, 1262, 1259, - 1362, 1361, 1360, 2690, 1359, 3453, 3420, 2872, 3422, 2723, - 1358, 3427, 1357, 142, 142, 142, 1067, 1356, 3430, 1355, - 1354, 2528, 2070, 3472, 2111, 1353, 1352, 1351, 1350, 1349, - 2111, 2111, 2111, 3408, 1348, 1347, 1260, 1261, 1262, 1259, - 1346, 1343, 2872, 3412, 1342, 1341, 3490, 2872, 2872, 1187, - 3414, 1339, 1338, 1337, 1797, 1334, 1069, 1327, 3271, 1326, - 1324, 1794, 1187, 1069, 1323, 1796, 1793, 1795, 1799, 1800, - 1322, 1321, 1320, 1798, 1187, 1319, 3537, 1318, 1317, 1316, - 1553, 1315, 1314, 1313, 1308, 3442, 1307, 3523, 2713, 1292, - 3325, 2386, 2709, 3444, 3474, 1306, 1305, 4003, 2685, 1304, - 2872, 672, 1224, 2050, 1170, 3330, 3331, 1187, 2365, 1551, - 3513, 3520, 3341, 1212, 3278, 1260, 1261, 1262, 1259, 1260, - 1261, 1262, 1259, 3333, 3539, 1260, 1261, 1262, 1259, 3477, - 3471, 2811, 3470, 2557, 3481, 2164, 3483, 1223, 3339, 223, - 1765, 3336, 3450, 3451, 3452, 2998, 2993, 3002, 3456, 3457, - 2999, 2991, 1187, 3552, 3549, 3527, 3532, 2992, 125, 2996, - 3529, 3957, 3867, 3563, 2997, 2650, 3536, 1260, 1261, 1262, - 1259, 3561, 67, 66, 3541, 3000, 3544, 2518, 2519, 3562, - 2639, 3543, 3547, 1441, 1939, 1940, 3216, 3267, 3551, 3268, - 3553, 3078, 3550, 2454, 3606, 2905, 3554, 3546, 1934, 1935, - 1936, 3533, 2906, 2907, 2908, 3614, 3352, 3378, 3379, 2039, - 1187, 1606, 2634, 3584, 2655, 2656, 2338, 1804, 1805, 1806, - 1807, 1808, 1809, 1802, 1803, 2674, 3570, 674, 1660, 3560, - 1187, 1553, 1553, 1640, 3580, 2124, 3227, 1218, 1379, 3581, - 3192, 675, 676, 3185, 2859, 2832, 2406, 2374, 1943, 3649, - 2564, 3649, 1910, 3611, 4065, 3613, 1817, 1816, 3832, 3565, - 1551, 1763, 3299, 1187, 3666, 1187, 3638, 3643, 3644, 1386, - 1387, 1384, 1385, 2500, 3669, 3639, 3671, 1382, 1383, 1380, - 1381, 2493, 1553, 2051, 3646, 1508, 1507, 1251, 3620, 3622, - 3621, 3640, 2182, 3631, 3344, 3026, 2339, 2194, 1460, 1459, - 672, 3600, 1187, 1187, 1432, 1483, 1187, 1187, 4026, 4024, - 3654, 1763, 3981, 3642, 3954, 3653, 3953, 3951, 3892, 3852, - 2178, 3474, 3665, 3730, 3718, 3729, 3617, 3667, 3576, 1069, - 3713, 3678, 3397, 3370, 3513, 3520, 3369, 1945, 3702, 3703, - 3727, 3682, 3714, 3715, 3675, 3355, 2439, 2409, 1662, 3354, - 3389, 3473, 3736, 3737, 3036, 1457, 3416, 3391, 4056, 4055, - 3476, 3081, 2770, 2506, 3674, 1553, 2367, 2260, 1394, 2352, - 2353, 2354, 1209, 3724, 3680, 4055, 4056, 3696, 3350, 1184, - 210, 3, 1475, 75, 2369, 2370, 2371, 2372, 3767, 3406, - 3723, 2, 4078, 1562, 1551, 3725, 4079, 678, 3760, 1, - 2513, 2517, 2518, 2519, 2514, 2522, 2515, 2520, 3719, 3748, - 2516, 2751, 2521, 1879, 1388, 916, 911, 1529, 3743, 3747, - 912, 913, 914, 915, 2538, 1184, 2104, 1557, 1883, 3755, - 3759, 918, 981, 142, 3009, 3010, 3343, 3801, 3012, 3795, - 2773, 2213, 2973, 3592, 2491, 3593, 2355, 3774, 3210, 1442, - 974, 1823, 1677, 1187, 1201, 3720, 1674, 1200, 1198, 3721, - 1768, 799, 2167, 2957, 3818, 2931, 3785, 3824, 3726, 4064, - 4099, 4018, 4067, 3793, 1693, 783, 3945, 3857, 3798, 4022, - 3796, 3859, 3746, 3584, 3797, 3491, 2218, 1256, 3057, 1001, - 840, 3810, 810, 1325, 1653, 3127, 3814, 1187, 3530, 3125, - 809, 142, 1553, 3439, 2801, 3731, 3029, 3803, 142, 1002, - 2893, 2150, 1522, 3854, 3744, 1607, 1611, 2405, 1069, 3831, - 3811, 142, 3911, 3676, 142, 142, 3263, 2867, 1635, 3906, - 3485, 1551, 3596, 3840, 3594, 3668, 3595, 142, 715, 2083, - 646, 1051, 3717, 2984, 1875, 2163, 3842, 716, 2385, 3969, - 3834, 954, 2364, 955, 947, 2820, 3884, 2819, 3873, 1559, - 1875, 1733, 1265, 3555, 1750, 3853, 3557, 3146, 3147, 1302, - 754, 2243, 2111, 2798, 3508, 3022, 74, 73, 3663, 3664, - 72, 71, 231, 801, 230, 3893, 3768, 3564, 2984, 1274, - 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1275, 3123, 3635, 3941, 4069, 3881, 780, 779, 3887, 778, - 777, 776, 775, 3910, 2511, 2512, 1187, 3895, 2510, 2508, - 2507, 2065, 2064, 3035, 1553, 3353, 2129, 3935, 2131, 3225, - 2896, 3904, 3942, 3925, 3927, 3929, 3931, 3909, 3849, 3850, - 2891, 1990, 1988, 3843, 1520, 3943, 2872, 2434, 2441, 3918, - 1987, 4000, 3924, 1551, 3387, 1274, 1273, 1283, 1284, 1276, - 1277, 1278, 1279, 1280, 1281, 1282, 1275, 3587, 3934, 3921, - 3922, 3693, 2941, 3950, 3948, 1553, 3583, 1933, 3801, 1274, - 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, - 1275, 3962, 2430, 2007, 3991, 2912, 2004, 2003, 2904, 1716, - 3999, 1716, 3689, 3683, 1551, 3982, 3984, 2035, 3799, 3985, - 3986, 3648, 3492, 3493, 3499, 2373, 1120, 3894, 1116, 3983, - 1118, 1119, 3898, 3899, 1117, 2695, 3319, 4015, 2411, 3187, - 2347, 2346, 4008, 2344, 4009, 2343, 4010, 1417, 4011, 3883, - 3965, 4012, 3616, 2562, 4025, 2560, 4027, 4028, 1167, 3332, - 3328, 2175, 4023, 3919, 4021, 3337, 2994, 2190, 3077, 2066, - 3873, 2062, 1187, 4031, 1283, 1284, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1275, 1801, 2061, 1091, 1090, 1588, 2975, - 2501, 3776, 3824, 4044, 1938, 948, 2362, 109, 41, 122, - 108, 4046, 4047, 4045, 4050, 185, 59, 4053, 4063, 4051, - 4071, 184, 58, 4070, 120, 4057, 4058, 4059, 4060, 182, - 2513, 2517, 2518, 2519, 2514, 2522, 2515, 2520, 4083, 4075, - 2516, 57, 2521, 103, 1187, 102, 119, 180, 56, 215, - 214, 2836, 217, 216, 213, 4088, 2612, 3910, 4089, 4091, - 2613, 212, 1595, 211, 4097, 3955, 3652, 4101, 3937, 906, - 4098, 2069, 44, 43, 186, 42, 110, 60, 40, 39, - 38, 34, 13, 1509, 1510, 12, 1512, 1513, 35, 1517, - 1518, 1519, 22, 21, 1681, 4109, 20, 26, 32, 31, - 135, 134, 30, 133, 4071, 4117, 132, 4070, 4116, 1716, - 131, 4033, 4034, 130, 129, 128, 4101, 4118, 4038, 4039, - 4040, 4041, 4122, 1568, 1569, 1570, 1571, 1572, 127, 1574, - 1575, 1576, 1577, 1578, 29, 19, 51, 1584, 1585, 1586, - 1587, 50, 49, 48, 47, 46, 142, 9, 123, 142, - 142, 118, 142, 116, 28, 117, 114, 206, 64, 197, - 168, 115, 113, 112, 111, 106, 104, 1797, 86, 85, - 84, 99, 98, 97, 1794, 96, 198, 3497, 1796, 1793, - 1795, 1799, 1800, 189, 95, 94, 1798, 199, 92, 93, - 1000, 83, 1067, 82, 81, 142, 80, 79, 101, 107, - 105, 90, 100, 91, 1067, 89, 140, 88, 87, 78, - 77, 76, 166, 165, 164, 163, 162, 1312, 3509, 160, - 142, 126, 161, 159, 158, 157, 156, 155, 154, 52, - 202, 3500, 3027, 3028, 53, 54, 55, 176, 175, 177, - 179, 181, 3495, 178, 183, 173, 171, 3517, 3518, 174, - 172, 170, 69, 3496, 11, 121, 18, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 727, 726, 733, 723, 0, 989, 0, 0, - 0, 0, 0, 3917, 0, 730, 731, 0, 732, 736, - 3501, 0, 717, 0, 0, 0, 0, 0, 0, 0, - 1292, 0, 741, 0, 0, 0, 0, 148, 149, 0, - 150, 151, 0, 0, 0, 152, 0, 0, 153, 1782, - 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, - 1804, 1805, 1806, 1807, 1808, 1809, 1802, 1803, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 745, 985, - 986, 747, 0, 0, 0, 0, 746, 0, 0, 0, - 1029, 0, 0, 0, 0, 0, 0, 0, 3996, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 167, 195, 204, 196, 124, 0, 0, 3516, 0, - 2420, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 194, 188, 187, 0, 0, 0, - 0, 70, 0, 0, 0, 3505, 0, 0, 4042, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3502, 3506, 3504, - 3503, 0, 0, 0, 1031, 0, 3996, 1030, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 190, 191, 192, 0, 0, 3511, 3512, 0, - 1716, 0, 0, 0, 0, 0, 1015, 3219, 0, 0, - 0, 0, 0, 0, 0, 990, 718, 720, 719, 0, - 0, 0, 3996, 0, 3231, 0, 0, 725, 0, 0, - 200, 0, 0, 0, 0, 0, 0, 0, 0, 729, - 0, 0, 992, 0, 0, 0, 744, 0, 0, 0, - 3519, 136, 0, 722, 0, 193, 0, 137, 0, 0, - 0, 0, 3498, 0, 0, 0, 0, 0, 3510, 0, - 727, 726, 733, 723, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 730, 731, 0, 732, 736, 4120, 0, - 717, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 741, 2036, 0, 0, 0, 0, 1997, 1014, 1012, 0, - 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 1011, 2531, 0, 2039, 2006, 0, - 0, 0, 0, 0, 2116, 0, 984, 2040, 2041, 0, - 0, 0, 2111, 0, 0, 0, 0, 991, 1024, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 724, 728, 734, 2005, 735, 737, 65, 0, 738, 739, - 740, 1020, 0, 742, 743, 0, 0, 0, 0, 0, - 0, 2013, 0, 0, 0, 0, 0, 0, 3515, 0, - 2069, 0, 0, 0, 0, 0, 0, 0, 142, 0, - 0, 146, 203, 0, 147, 0, 0, 1021, 1025, 169, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1008, 0, 1006, - 1010, 1028, 0, 0, 0, 1007, 1004, 1003, 0, 1009, - 994, 995, 993, 996, 997, 998, 999, 0, 1026, 2029, - 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1022, 1023, 0, 3514, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3383, 0, - 139, 45, 0, 0, 718, 720, 719, 62, 0, 0, - 0, 5, 0, 0, 0, 725, 0, 0, 1018, 0, - 0, 0, 0, 0, 1017, 0, 0, 729, 0, 143, - 144, 0, 0, 145, 744, 0, 0, 0, 0, 1013, - 0, 722, 0, 1996, 1998, 1995, 0, 0, 1992, 721, - 0, 0, 0, 2017, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2023, 0, 2036, 0, 0, 0, - 0, 1997, 2008, 0, 1991, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2011, 2045, 0, 0, 2012, 2014, - 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, - 2032, 2033, 2039, 2006, 0, 0, 0, 0, 0, 2021, - 2030, 2022, 2040, 2041, 0, 0, 0, 1016, 0, 2111, - 0, 2000, 0, 987, 988, 982, 0, 0, 0, 0, - 983, 0, 0, 0, 0, 0, 0, 0, 2005, 0, - 0, 0, 0, 0, 0, 2037, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 2013, 142, 724, 728, - 734, 0, 735, 737, 0, 0, 738, 739, 740, 0, - 0, 742, 743, 0, 0, 0, 0, 1993, 1994, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2034, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2010, 0, 0, 0, 0, 0, 0, 2009, - 0, 0, 0, 0, 2029, 0, 2111, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, - 0, 0, 2015, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2043, 2042, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2069, 2069, 2069, 2069, 2069, - 2069, 0, 0, 0, 0, 0, 0, 0, 1996, 2862, - 1995, 0, 2069, 2861, 0, 0, 0, 0, 2017, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2002, 2023, - 0, 0, 0, 0, 0, 0, 0, 721, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2011, - 2045, 0, 0, 2012, 2014, 2016, 0, 2018, 2019, 2020, - 2024, 2025, 2026, 2028, 2031, 2032, 2033, 0, 0, 0, - 2038, 0, 0, 2044, 2021, 2030, 2022, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2000, 1139, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, - 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, - 2037, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3701, 0, 142, 0, 0, - 0, 0, 1993, 1994, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2034, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2010, 0, 0, - 0, 0, 0, 0, 2009, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2027, 0, - 0, 1124, 0, 0, 0, 0, 0, 2015, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2043, 2042, 1147, 1151, 1153, 1155, 1157, 1158, 1160, 0, - 1165, 1161, 1162, 1163, 1164, 0, 1142, 1143, 1144, 1145, - 1122, 1123, 1148, 0, 1125, 0, 1127, 1128, 1129, 1130, - 1126, 1131, 1132, 1133, 1134, 1135, 1138, 1140, 1136, 1137, - 1146, 0, 0, 0, 0, 0, 0, 0, 1150, 1152, - 1154, 1156, 1159, 2002, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2036, 0, 0, 0, 0, 0, 0, 206, 0, - 0, 0, 0, 1067, 0, 142, 0, 0, 1141, 1124, - 142, 1139, 0, 1114, 0, 2038, 0, 2069, 2044, 0, - 0, 3647, 0, 0, 0, 0, 0, 2039, 0, 0, - 1147, 1151, 1153, 1155, 1157, 1158, 1160, 142, 1165, 1161, - 1162, 1163, 1164, 0, 1142, 1143, 1144, 1145, 1122, 1123, - 1148, 0, 1125, 2036, 1127, 1128, 1129, 1130, 1126, 1131, - 1132, 1133, 1134, 1135, 1138, 1140, 1136, 1137, 1146, 0, - 0, 202, 0, 0, 0, 0, 1150, 1152, 1154, 1156, - 1159, 2013, 0, 0, 0, 0, 0, 0, 0, 2039, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1141, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3823, 0, 1124, 0, 0, 0, 0, - 0, 0, 0, 2013, 0, 0, 0, 0, 0, 2029, - 0, 0, 0, 0, 2691, 2692, 1147, 1151, 1153, 1155, - 1157, 1158, 1160, 0, 1165, 1161, 1162, 1163, 1164, 0, - 1142, 1143, 1144, 1145, 1122, 1123, 1148, 0, 1125, 0, - 1127, 1128, 1129, 1130, 1126, 1131, 1132, 1133, 1134, 1135, - 1138, 1140, 1136, 1137, 1146, 0, 0, 0, 0, 0, - 0, 0, 1150, 1152, 1154, 1156, 1159, 0, 0, 0, - 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2017, 0, 0, 0, 0, 0, 0, - 0, 0, 1141, 0, 2023, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2011, 2045, 0, 0, 2012, 2014, - 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, 2028, 2031, - 2032, 2033, 0, 0, 0, 0, 0, 0, 0, 2021, - 2030, 2022, 0, 0, 0, 2017, 0, 0, 1149, 0, - 0, 0, 0, 0, 0, 0, 2023, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2037, 2011, 2045, 0, 0, - 2012, 2014, 2016, 0, 2018, 2019, 2020, 2024, 2025, 2026, - 2028, 2031, 2032, 2033, 0, 0, 0, 0, 0, 0, - 0, 2021, 2030, 2022, 0, 0, 0, 0, 0, 0, + 783, 759, 4102, 785, 4070, 2870, 223, 4094, 1638, 2000, + 3997, 1716, 3479, 3579, 4003, 3290, 3996, 4004, 3913, 3823, + 3890, 3256, 768, 3870, 3948, 3705, 3367, 3508, 3801, 1712, + 761, 3770, 2864, 3861, 1482, 3368, 1776, 1329, 3822, 3891, + 3637, 1550, 813, 2783, 3739, 2867, 649, 1184, 3583, 1061, + 3792, 3441, 3871, 3873, 3574, 3446, 1945, 3495, 1488, 1763, + 3651, 2417, 3265, 667, 1457, 673, 673, 3658, 2842, 3646, + 3213, 673, 691, 700, 1719, 3619, 700, 3227, 3189, 3365, + 3462, 2983, 2984, 2982, 3216, 2959, 3433, 208, 37, 2095, + 1781, 757, 2893, 3285, 68, 1178, 3267, 2564, 2098, 2111, + 3274, 3464, 2060, 2979, 2526, 2134, 3410, 2690, 3052, 2208, + 2562, 2166, 3012, 3330, 2420, 1543, 2809, 3194, 1960, 3273, + 2655, 3196, 3190, 1174, 3236, 3192, 3191, 708, 2970, 141, + 712, 2378, 36, 2322, 1627, 3187, 3160, 2321, 2822, 751, + 1616, 2346, 2192, 2615, 2061, 2633, 2175, 2174, 2139, 3100, + 1623, 3026, 1874, 941, 2167, 2204, 2203, 2091, 2793, 2895, + 697, 2798, 2505, 2064, 2875, 1990, 2527, 2418, 756, 1491, + 982, 1628, 2834, 1631, 1447, 2510, 219, 8, 2377, 218, + 7, 6, 1921, 2367, 1414, 2238, 2560, 2205, 1590, 1777, + 1710, 760, 1559, 1522, 1122, 666, 1528, 1492, 2358, 649, + 750, 2413, 1959, 1770, 2727, 769, 1750, 1701, 2361, 1200, + 2173, 15, 1660, 2170, 1642, 2155, 1597, 705, 1917, 1709, + 1920, 2534, 2506, 223, 1054, 223, 685, 1113, 1114, 1467, + 1581, 1471, 981, 682, 673, 1524, 1527, 908, 1715, 715, + 205, 209, 24, 1782, 1020, 25, 27, 714, 17, 758, + 1093, 1483, 979, 16, 10, 964, 1399, 699, 958, 1006, + 711, 201, 1639, 3880, 1110, 1375, 2212, 1330, 3789, 2763, + 910, 911, 3376, 669, 23, 2763, 1261, 1262, 1263, 1260, + 1088, 2763, 2536, 695, 14, 3476, 2726, 3243, 3069, 3068, + 33, 1261, 1262, 1263, 1260, 2222, 1179, 1070, 1055, 1261, + 1262, 1263, 1260, 3610, 3449, 1180, 3360, 2678, 2618, 2621, + 1109, 2619, 1111, 1887, 2616, 1600, 1604, 1453, 696, 1105, + 1106, 207, 668, 2320, 1394, 692, 1450, 1451, 1452, 1526, + 678, 3848, 1067, 703, 1368, 1069, 1040, 1106, 2326, 674, + 930, 928, 1888, 3170, 648, 1106, 1653, 2330, 1397, 3155, + 3152, 4082, 1089, 1505, 3153, 1179, 694, 3150, 1881, 2755, + 2753, 1390, 693, 1602, 3572, 1261, 1262, 1263, 1260, 3048, + 3046, 1778, 2144, 3856, 206, 64, 197, 168, 1261, 1262, + 1263, 1260, 3746, 3740, 8, 3575, 3366, 7, 2189, 1104, + 3875, 1324, 2169, 198, 909, 3129, 2161, 2458, 4108, 3869, + 189, 3808, 752, 2757, 199, 920, 4079, 3754, 4032, 206, + 206, 3620, 1259, 3589, 1223, 1405, 3624, 3463, 2664, 2369, + 2209, 2672, 1637, 140, 3867, 206, 3776, 1083, 1078, 1073, + 1077, 1081, 206, 3974, 2708, 3924, 1567, 1404, 126, 206, + 929, 927, 3752, 2368, 1646, 3809, 1400, 202, 206, 1403, + 1402, 1658, 753, 930, 928, 1086, 1071, 206, 3072, 1076, + 710, 3127, 2828, 2220, 206, 1422, 1439, 206, 64, 197, + 168, 2977, 1065, 1066, 1643, 1890, 1406, 2362, 1953, 2554, + 1651, 1655, 202, 202, 1035, 1033, 1258, 1034, 206, 64, + 197, 168, 206, 64, 197, 168, 2555, 140, 1645, 752, + 2108, 2541, 1650, 3019, 2540, 1657, 3060, 2542, 3020, 3021, + 1084, 2074, 2826, 140, 921, 2634, 3778, 925, 2782, 1087, + 2778, 202, 1029, 1702, 148, 149, 1706, 150, 151, 3260, + 202, 972, 152, 973, 1974, 153, 3154, 202, 1479, 3151, + 202, 1529, 899, 1531, 898, 900, 901, 1074, 902, 903, + 1705, 1718, 206, 64, 197, 168, 2795, 1195, 2075, 2076, + 1501, 202, 2829, 1502, 3599, 202, 2796, 1683, 1899, 1900, + 1256, 1085, 953, 1238, 1487, 1041, 1239, 1064, 1486, 1489, + 1490, 1251, 206, 64, 197, 168, 967, 1063, 963, 206, + 64, 197, 168, 2780, 3258, 2775, 3971, 1951, 167, 195, + 204, 196, 124, 1037, 1241, 1421, 1489, 1490, 1603, 1601, + 3878, 1075, 3877, 2758, 3876, 2794, 2309, 1669, 4007, 4008, + 4031, 194, 188, 187, 3967, 202, 3878, 3962, 70, 3877, + 3961, 3876, 3960, 4074, 4075, 3434, 3950, 2779, 3859, 2776, + 1722, 3369, 1707, 2659, 944, 3950, 3369, 1192, 3053, 3953, + 1189, 1504, 3054, 3743, 3055, 202, 1203, 1206, 2450, 2224, + 3887, 3383, 202, 2801, 2092, 2082, 1704, 1039, 1697, 2914, + 2216, 673, 673, 1107, 1108, 3629, 1203, 1206, 1112, 3976, + 3977, 3209, 673, 1188, 3862, 3863, 3864, 3865, 1082, 190, + 191, 192, 1236, 3972, 3973, 1198, 3980, 3979, 3978, 3981, + 3982, 3439, 700, 700, 2493, 673, 2971, 2357, 2785, 2500, + 3598, 3520, 167, 195, 204, 196, 3780, 3781, 3600, 969, + 970, 962, 2669, 2152, 1079, 2221, 3090, 1080, 200, 3969, + 966, 965, 1610, 1609, 2756, 194, 193, 3207, 1952, 1254, + 1255, 3088, 1477, 1253, 1038, 1116, 2456, 947, 1515, 136, + 1226, 954, 3573, 193, 1393, 137, 1237, 3203, 1423, 3047, + 2965, 2106, 2107, 2496, 2497, 1721, 1720, 3879, 1301, 2495, + 3785, 961, 3788, 3386, 3626, 697, 697, 697, 2781, 3094, + 2777, 4006, 3414, 1703, 1070, 2762, 2503, 3214, 2557, 1180, + 971, 1180, 1248, 3204, 3205, 960, 665, 3535, 1181, 959, + 1180, 1249, 1250, 4039, 3288, 946, 3289, 3225, 3733, 3206, + 2210, 952, 138, 2327, 2210, 1188, 2210, 1889, 3262, 1067, + 1503, 923, 1069, 3532, 3813, 63, 3070, 1090, 3237, 1072, + 2086, 3590, 3805, 1240, 3906, 2227, 2229, 2230, 3901, 950, + 1218, 3067, 2211, 1106, 2835, 1333, 1106, 2961, 1106, 2243, + 1106, 2488, 1106, 3286, 3287, 3807, 1106, 1070, 702, 1180, + 701, 1205, 1204, 2975, 2364, 924, 2223, 3525, 3161, 3892, + 3908, 3480, 3914, 3201, 65, 3257, 2869, 970, 2617, 3487, + 2341, 1205, 1204, 1036, 2865, 2866, 746, 2869, 1466, 748, + 3536, 1605, 1067, 3975, 747, 1069, 3774, 3734, 695, 695, + 695, 1197, 3292, 951, 3616, 698, 3215, 3422, 3177, 146, + 203, 2491, 147, 1191, 1193, 1196, 3886, 169, 1489, 1490, + 3753, 3696, 61, 909, 4114, 1396, 1194, 1398, 4097, 3425, + 698, 2754, 2557, 696, 696, 696, 2468, 2807, 2467, 1410, + 692, 692, 692, 1413, 1176, 1183, 1215, 1419, 667, 1182, + 1066, 3625, 169, 169, 1652, 1373, 2673, 3779, 1378, 1211, + 1212, 3586, 1209, 1401, 1891, 1207, 1539, 65, 169, 2423, + 1217, 694, 694, 694, 1478, 169, 1302, 693, 693, 693, + 968, 982, 169, 1489, 1490, 1538, 3814, 2800, 139, 45, + 698, 169, 65, 3215, 3806, 62, 2436, 3424, 3691, 5, + 169, 1231, 2416, 2439, 1233, 3210, 926, 169, 2489, 2490, + 169, 2093, 1216, 1297, 1298, 1299, 1300, 143, 144, 957, + 698, 145, 3685, 1692, 203, 1295, 1693, 698, 1464, 2972, + 3915, 169, 1234, 2499, 1463, 169, 673, 1481, 1480, 1517, + 1485, 3782, 1462, 673, 2804, 2805, 3827, 649, 649, 3968, + 3263, 3091, 65, 1459, 1187, 3793, 3630, 649, 649, 2803, + 2438, 1554, 1554, 3266, 673, 2915, 3465, 2916, 2917, 4098, + 2083, 1243, 1175, 1698, 1244, 3762, 3995, 3763, 1030, 3031, + 3032, 3149, 65, 2228, 3202, 700, 1582, 667, 2459, 65, + 1552, 1552, 1593, 1345, 1346, 169, 2216, 3291, 2416, 3762, + 3570, 3763, 1246, 1556, 1292, 3372, 2437, 223, 1431, 3947, + 2422, 3014, 3016, 1561, 1415, 2424, 649, 3757, 710, 945, + 1227, 943, 3223, 3286, 3287, 169, 972, 1525, 973, 1416, + 1417, 3765, 169, 3282, 3165, 1426, 1427, 1428, 1429, 1430, + 2665, 1432, 2546, 1420, 1223, 2454, 1229, 1438, 2213, 1728, + 1731, 1732, 1379, 2081, 2058, 3765, 1412, 1516, 1232, 1235, + 1729, 935, 1032, 3764, 2768, 1031, 2426, 1893, 1635, 2425, + 2342, 3321, 2433, 1640, 1548, 1549, 1377, 3093, 1437, 3826, + 1649, 1436, 1435, 1434, 1228, 1042, 1334, 3764, 704, 3427, + 1242, 2225, 2226, 3283, 3698, 1468, 1472, 1472, 1472, 976, + 977, 978, 2912, 4095, 4096, 1425, 3411, 1264, 2649, 1681, + 3102, 3101, 939, 2239, 1444, 1294, 1902, 937, 936, 1030, + 1468, 1468, 974, 1554, 1304, 1554, 1188, 2934, 2935, 1247, + 1659, 1473, 1474, 1446, 1222, 2085, 2772, 3692, 3693, 2334, + 1449, 3706, 3707, 3708, 3712, 3710, 3711, 3713, 3709, 1409, + 1313, 1903, 1506, 1507, 1245, 3224, 1611, 935, 3994, 2336, + 2335, 1230, 942, 1644, 1614, 3608, 1617, 1618, 1493, 1070, + 1656, 1496, 1901, 2943, 1407, 1408, 1070, 3687, 1619, 1620, + 3167, 3686, 1583, 697, 2333, 3015, 697, 697, 931, 1537, + 2480, 932, 3659, 1554, 938, 1625, 1626, 2349, 1185, 1691, + 1648, 2427, 2277, 1032, 1456, 2276, 1031, 1562, 934, 4116, + 1188, 1780, 1465, 937, 936, 2524, 1458, 1699, 1424, 1475, + 2350, 2351, 1764, 1811, 1812, 1829, 1815, 1494, 1495, 1568, + 1497, 1498, 678, 1499, 1830, 1630, 1458, 1574, 1634, 1633, + 3242, 3373, 1580, 1594, 2840, 1533, 1535, 1837, 1595, 1839, + 3957, 1840, 1841, 1842, 2933, 1546, 1547, 2813, 2817, 2818, + 2819, 2814, 2816, 2815, 4110, 4104, 1738, 1739, 1740, 1741, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1259, 2133, + 1714, 4092, 1761, 1762, 1185, 971, 2432, 4050, 1676, 1677, + 2430, 2360, 1188, 2769, 1221, 3758, 1894, 1730, 1892, 3872, + 3284, 4018, 1895, 4015, 1897, 1695, 695, 1814, 1872, 695, + 695, 4009, 1904, 1906, 1606, 1907, 2841, 1909, 1910, 3758, + 1043, 1668, 1582, 3759, 1671, 1672, 1259, 1918, 1554, 1923, + 1924, 1838, 1926, 1517, 673, 1733, 1662, 2218, 4105, 673, + 3991, 696, 1554, 2525, 696, 696, 982, 1259, 692, 1946, + 1030, 692, 692, 1689, 4051, 2396, 1685, 1690, 2525, 1688, + 4051, 1711, 1554, 1713, 1687, 1684, 2252, 1667, 1517, 1708, + 1670, 1828, 3941, 691, 4019, 1875, 4016, 3940, 3327, 694, + 1220, 1680, 694, 694, 2253, 693, 3327, 2841, 693, 693, + 1679, 2557, 1752, 1973, 2453, 1686, 1261, 1262, 1263, 1260, + 3323, 1223, 1980, 1980, 2636, 1517, 3430, 1517, 1517, 2359, + 3385, 673, 673, 3992, 2047, 1918, 2051, 2314, 1947, 1554, + 2055, 2056, 2131, 2664, 3296, 2071, 3294, 649, 2944, 2946, + 2947, 2948, 2945, 1374, 1032, 3159, 3157, 1031, 1759, 1760, + 1965, 649, 2251, 1554, 1592, 1259, 1261, 1262, 1263, 1260, + 1259, 1927, 786, 796, 2525, 1977, 1972, 1221, 3034, 1975, + 1976, 1925, 787, 3934, 788, 792, 795, 791, 789, 790, + 673, 1918, 1554, 2002, 2116, 2787, 673, 673, 673, 708, + 708, 2759, 1819, 1820, 1821, 2654, 2126, 2127, 2128, 2129, + 1878, 1843, 2395, 2135, 3909, 1835, 2109, 1717, 1836, 2049, + 223, 1700, 2641, 223, 223, 2209, 223, 1914, 1915, 1916, + 3897, 3846, 1873, 2073, 2409, 1849, 1850, 793, 2319, 1929, + 1930, 1931, 1932, 1983, 2313, 2312, 1261, 1262, 1263, 1260, + 1879, 913, 914, 915, 916, 1871, 2253, 4123, 2101, 2102, + 2284, 1961, 2200, 1963, 1964, 3845, 1829, 1829, 2177, 2078, + 794, 2080, 1913, 1261, 1262, 1263, 1260, 1970, 1829, 1829, + 1468, 3840, 2099, 2100, 2104, 2194, 1922, 2218, 3839, 3838, + 2087, 1802, 3125, 2057, 1472, 2118, 2119, 2120, 1943, 1942, + 1938, 2423, 2426, 3898, 3847, 1445, 1472, 2143, 1982, 1767, + 2146, 2147, 1956, 2149, 2188, 1540, 4106, 1946, 2094, 2249, + 1954, 1554, 2207, 2115, 1948, 1949, 1962, 3837, 1966, 1984, + 1985, 3817, 1723, 1724, 1725, 1726, 1727, 3438, 2382, 3476, + 1971, 3816, 3791, 3038, 1979, 1981, 913, 914, 915, 916, + 3541, 2843, 3489, 2048, 2253, 3455, 3403, 1644, 3399, 2053, + 1070, 2253, 2253, 1070, 1223, 2179, 2059, 3304, 3009, 2667, + 2666, 2658, 1070, 2201, 1768, 2745, 2403, 2054, 1772, 1773, + 1774, 1775, 697, 1883, 2733, 2088, 2725, 2184, 1813, 2077, + 2680, 2079, 2272, 2662, 2650, 1067, 1823, 2257, 1069, 3247, + 2253, 1957, 1958, 918, 2218, 2199, 2138, 1067, 2643, 2113, + 1069, 2114, 2172, 2638, 2218, 2253, 2121, 2122, 1967, 1968, + 2630, 2628, 3723, 2557, 2172, 3490, 2626, 1565, 3456, 3404, + 1711, 3400, 2124, 2140, 2624, 2381, 1664, 2427, 1978, 3539, + 3305, 2525, 2422, 2416, 2421, 2072, 2419, 2424, 2382, 1876, + 2315, 2291, 2290, 1310, 1208, 2275, 2266, 1259, 2157, 1259, + 1172, 2265, 1276, 1259, 1167, 1798, 2382, 2639, 1070, 2236, + 2237, 1292, 1795, 2264, 2103, 2254, 1797, 1794, 1796, 1800, + 1801, 2644, 2217, 2178, 1799, 1673, 2639, 1946, 933, 2187, + 3085, 2185, 1500, 2631, 2629, 2190, 1454, 1469, 918, 2625, + 1455, 2425, 2616, 1067, 2198, 695, 1069, 2625, 2382, 2324, + 2325, 1544, 2328, 2423, 2426, 2331, 3358, 4117, 4078, 3238, + 2197, 3902, 1545, 2314, 1259, 1259, 2337, 2202, 1259, 1259, + 2451, 1950, 751, 2255, 1259, 673, 673, 673, 3881, 3790, + 696, 3660, 3468, 2307, 2215, 3750, 1259, 692, 2253, 3689, + 673, 673, 673, 673, 3688, 2218, 1542, 1969, 1674, 2698, + 2231, 1818, 1817, 2379, 2196, 3903, 2240, 2687, 1101, 1102, + 1103, 3674, 2383, 2384, 2385, 3466, 2388, 1517, 694, 3633, + 1752, 2233, 1818, 1817, 693, 3661, 3469, 2610, 1166, 1162, + 1163, 1164, 1165, 2245, 2703, 1454, 2702, 2701, 2699, 1455, + 3239, 2141, 1100, 1517, 3448, 1097, 1284, 1285, 1277, 1278, + 1279, 1280, 1281, 1282, 1283, 1276, 1876, 3328, 1470, 3467, + 2445, 1876, 1876, 3319, 3311, 2234, 2235, 3306, 1805, 1806, + 1807, 1808, 1809, 1810, 1803, 1804, 2232, 3218, 2968, 2967, + 940, 2811, 2390, 2391, 3240, 2764, 2677, 2642, 2548, 2427, + 2182, 2181, 2393, 2394, 2422, 2416, 2421, 2180, 2419, 2424, + 1541, 1441, 798, 142, 1440, 1190, 2700, 1771, 142, 2246, + 2411, 2142, 2452, 1771, 2145, 1855, 3039, 2148, 673, 1980, + 2150, 1279, 1280, 1281, 1282, 1283, 1276, 2529, 2529, 2071, + 2529, 2400, 2308, 2310, 2311, 2402, 1848, 2404, 1275, 1274, + 1284, 1285, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, + 649, 649, 2316, 2425, 1598, 1908, 2141, 2279, 1188, 1263, + 1260, 2405, 3959, 1260, 1554, 673, 3701, 2285, 2286, 3700, + 2288, 679, 2343, 3056, 142, 2904, 2193, 2295, 673, 2415, + 2414, 2902, 2881, 2879, 1188, 2601, 667, 3680, 1333, 3634, + 3635, 3627, 1593, 2552, 2071, 4088, 2392, 2606, 2747, 2608, + 2748, 2398, 223, 4113, 2399, 1094, 1095, 1096, 1099, 1758, + 1098, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, 2389, + 1312, 3436, 2408, 1070, 2810, 1755, 1757, 1754, 2543, 1756, + 2544, 2533, 2531, 1311, 2535, 1472, 1261, 1262, 1263, 1260, + 4087, 4086, 2646, 1261, 1262, 1263, 1260, 3361, 2537, 2549, + 2550, 3628, 3359, 2704, 2705, 2603, 2428, 2429, 1067, 2434, + 2660, 1069, 4084, 2207, 1261, 1262, 1263, 1260, 4112, 2401, + 1554, 1833, 1554, 4083, 1554, 2620, 4022, 2559, 3990, 1188, + 2242, 3437, 3989, 3904, 2247, 3442, 1834, 2679, 2784, 2611, + 3842, 2955, 2256, 3118, 3830, 3820, 2605, 1261, 1262, 1263, + 1260, 2670, 3810, 3741, 3663, 1068, 2689, 3447, 3662, 3481, + 142, 2504, 2498, 1554, 1188, 3470, 3435, 3307, 2711, 1261, + 1262, 1263, 1260, 3208, 3081, 142, 3051, 142, 2612, 2263, + 2538, 3195, 3050, 2718, 2938, 2717, 3104, 2270, 1554, 2937, + 2936, 2268, 1552, 1261, 1262, 1263, 1260, 2953, 2397, 2656, + 2657, 2954, 1599, 2928, 2706, 4109, 3117, 2553, 2922, 2287, + 1261, 1262, 1263, 1260, 2292, 2293, 2294, 1552, 1598, 2297, + 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2719, + 2604, 2602, 2556, 1261, 1262, 1263, 1260, 2766, 2767, 2921, + 2920, 2770, 2069, 2722, 2723, 1274, 1284, 1285, 1277, 1278, + 1279, 1280, 1281, 1282, 1283, 1276, 2691, 2952, 2691, 1188, + 2919, 2267, 2951, 1188, 1261, 1262, 1263, 1260, 2695, 2760, + 1554, 2676, 2632, 1517, 2545, 1261, 1262, 1263, 1260, 2051, + 2671, 2720, 1261, 1262, 1263, 1260, 2709, 2839, 1261, 1262, + 1263, 1260, 2318, 2845, 2160, 2159, 2846, 2158, 1533, 1535, + 2663, 2940, 2661, 4107, 2154, 2153, 4000, 672, 672, 2110, + 2668, 2652, 1898, 680, 2856, 1261, 1262, 1263, 1260, 1896, + 2685, 4089, 2950, 2751, 1188, 1665, 1392, 3783, 3784, 2250, + 2681, 2682, 2878, 1261, 1262, 1263, 1260, 3580, 2823, 1188, + 1188, 1188, 1980, 4076, 4038, 1188, 4037, 2888, 2889, 2890, + 2891, 1188, 2898, 2707, 2899, 2900, 2697, 2901, 1711, 2903, + 3604, 2939, 2824, 746, 4034, 3592, 748, 2849, 1170, 2827, + 2898, 747, 2852, 3591, 3965, 1070, 3964, 3771, 4115, 1334, + 2002, 3945, 2529, 2836, 3889, 1536, 3638, 1261, 1262, 1263, + 1260, 2808, 1261, 1262, 1263, 1260, 2956, 3883, 3866, 2684, + 1261, 1262, 1263, 1260, 3529, 2565, 649, 1261, 1262, 1263, + 1260, 2857, 3857, 3834, 2051, 2859, 3829, 3828, 1188, 2071, + 2071, 2071, 2071, 2071, 2071, 3787, 3773, 1169, 2847, 3772, + 3742, 1261, 1262, 1263, 1260, 1188, 2071, 3682, 2790, 2529, + 2792, 1876, 3642, 1876, 2876, 2962, 2872, 3631, 2876, 2789, + 3391, 3613, 2806, 3611, 3609, 3017, 3606, 1554, 3603, 2260, + 3602, 2883, 1876, 1876, 2830, 2838, 3578, 8, 673, 673, + 7, 3576, 2844, 3549, 3546, 3543, 680, 1261, 1262, 1263, + 1260, 2855, 3121, 2960, 3432, 2861, 3419, 2728, 2729, 2858, + 3120, 3412, 3396, 2734, 1592, 2874, 3394, 3119, 2880, 3389, + 2674, 3339, 3933, 2744, 2886, 3317, 3316, 3314, 1922, 1261, + 1262, 1263, 1260, 3313, 3308, 2877, 3005, 1261, 1262, 1263, + 1260, 3302, 3301, 223, 1261, 1262, 1263, 1260, 223, 2918, + 1261, 1262, 1263, 1260, 4064, 3219, 3182, 3018, 3181, 2973, + 3180, 2248, 3171, 2645, 3169, 2648, 3166, 3164, 2930, 2323, + 1829, 3095, 1829, 3092, 3071, 3066, 1261, 1262, 1263, 1260, + 3049, 2963, 3024, 2986, 2987, 2988, 2989, 2990, 2991, 3080, + 2969, 2949, 2941, 3035, 2931, 1554, 2457, 2929, 3087, 2460, + 2461, 2462, 2463, 2464, 2465, 2466, 2925, 2924, 2469, 2470, + 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 3006, + 2481, 2482, 2483, 2484, 2485, 3008, 2486, 3002, 2923, 2688, + 3040, 3007, 2694, 3022, 2773, 3044, 3025, 2848, 1618, 1261, + 1262, 1263, 1260, 2712, 2713, 2765, 2853, 2854, 1619, 1620, + 2788, 2715, 2716, 2761, 2565, 2653, 2743, 3061, 2338, 142, + 142, 142, 1068, 1070, 1625, 1626, 1875, 2721, 2332, 3073, + 2329, 3065, 854, 853, 3931, 1070, 2163, 2156, 1886, 1885, + 1666, 1341, 3063, 1261, 1262, 1263, 1260, 1337, 3042, 1336, + 1173, 922, 3041, 3074, 3921, 3917, 1723, 1876, 3767, 1630, + 3168, 3766, 1634, 1633, 3755, 3751, 3605, 3172, 3173, 3174, + 3176, 3089, 3178, 3179, 3587, 2873, 3062, 3559, 3461, 3064, + 3059, 3057, 1188, 3460, 2966, 1816, 3084, 3077, 3198, 3076, + 2873, 2884, 2885, 3459, 3075, 1293, 2887, 3429, 3212, 3408, + 3406, 3405, 2894, 673, 3402, 206, 3096, 197, 168, 3401, + 3083, 3395, 3393, 3374, 3364, 3363, 3228, 1188, 3350, 3349, + 673, 3116, 1188, 1188, 3248, 3185, 3109, 3156, 3111, 3107, + 3108, 2071, 2379, 3103, 3246, 3123, 3114, 3106, 2850, 2851, + 3158, 3105, 3097, 3110, 3112, 3113, 1267, 1268, 1269, 1270, + 1271, 1272, 1273, 1265, 2445, 2742, 3099, 3033, 2786, 2627, + 2623, 2622, 2296, 3222, 2289, 2283, 3272, 2282, 3275, 2985, + 3275, 3275, 2823, 2281, 2280, 1188, 3184, 2278, 202, 3929, + 2274, 2273, 1261, 1262, 1263, 1260, 2985, 3163, 2271, 3162, + 2262, 2259, 2258, 3297, 2741, 2162, 1869, 3293, 2740, 1868, + 1867, 1554, 1554, 3249, 1832, 1831, 1822, 3231, 3251, 3252, + 1566, 1070, 3235, 1070, 3259, 3261, 1564, 3200, 1070, 3183, + 2871, 1261, 1262, 1263, 1260, 1261, 1262, 1263, 1260, 4063, + 1552, 1552, 4021, 3244, 3939, 1331, 3916, 3852, 3250, 3255, + 3849, 3836, 3298, 3299, 1380, 1070, 1067, 2739, 673, 1069, + 3221, 3241, 3230, 206, 2738, 3198, 3831, 3233, 3234, 3736, + 3735, 3270, 3717, 3245, 3699, 3695, 3271, 3673, 1517, 3657, + 3280, 2051, 2051, 3254, 1261, 1262, 1263, 1260, 2415, 2414, + 1876, 1261, 1262, 1263, 1260, 3560, 3557, 3527, 3526, 3276, + 3277, 3523, 3522, 672, 1177, 3488, 3485, 3281, 3483, 3450, + 3115, 3130, 3131, 2737, 1186, 3295, 2797, 3132, 3133, 3134, + 3135, 1613, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, + 3144, 3145, 3146, 2736, 1624, 1188, 202, 1214, 1615, 2711, + 1261, 1262, 1263, 1260, 4056, 2735, 1629, 3362, 3326, 2732, + 1632, 709, 1621, 1448, 2996, 2957, 2882, 3303, 2832, 2831, + 1261, 1262, 1263, 1260, 2825, 2791, 3278, 2746, 2637, 3043, + 3342, 3045, 1261, 1262, 1263, 1260, 1261, 1262, 1263, 1260, + 2547, 3309, 3312, 2487, 3324, 3325, 3310, 2731, 2380, 2352, + 1876, 3318, 2730, 2317, 673, 1876, 3322, 1753, 3315, 202, + 2123, 1912, 3335, 1882, 3336, 2724, 1696, 2193, 1647, 1563, + 2714, 2910, 2911, 679, 1261, 1262, 1263, 1260, 1622, 1261, + 1262, 1263, 1260, 1391, 3343, 1376, 2926, 2927, 2710, 3346, + 3347, 3348, 1261, 1262, 1263, 1260, 1372, 1261, 1262, 1263, + 1260, 1371, 3098, 1370, 1369, 3352, 1368, 1367, 1366, 142, + 1365, 1364, 2964, 1363, 1362, 1261, 1262, 1263, 1260, 2686, + 1361, 1360, 1359, 2873, 1358, 1357, 1356, 2135, 3416, 1355, + 3122, 3418, 3375, 3253, 1354, 3420, 1353, 4054, 1766, 1352, + 3426, 1351, 1350, 1349, 3377, 3378, 1261, 1262, 1263, 1260, + 1348, 1347, 1344, 1343, 3382, 3397, 1342, 1340, 2873, 1339, + 1338, 1335, 2691, 2873, 2873, 1261, 1262, 1263, 1260, 1328, + 1327, 1325, 3387, 3381, 1324, 673, 2051, 142, 1323, 3421, + 1322, 3423, 1321, 1320, 142, 1319, 3454, 1318, 1317, 1316, + 1315, 1314, 1309, 1308, 1307, 1306, 1305, 142, 1225, 1171, + 142, 142, 2529, 2071, 3473, 3331, 3332, 3927, 3524, 2387, + 3409, 2366, 1213, 142, 4005, 3334, 2873, 2812, 2558, 2165, + 1224, 3004, 2994, 2999, 3341, 3340, 2997, 3491, 3000, 3413, + 1188, 2998, 3415, 2993, 3001, 3428, 2519, 2520, 3562, 3272, + 3337, 1070, 3431, 1188, 3003, 2992, 3563, 3958, 1070, 125, + 67, 3868, 66, 3678, 2651, 1188, 2640, 3538, 1442, 1940, + 1941, 1554, 1935, 1936, 1937, 3217, 3268, 3079, 3269, 3474, + 3379, 3380, 2455, 3534, 3443, 3475, 3353, 2040, 3477, 3445, + 1607, 2635, 673, 2675, 2051, 2656, 2657, 2339, 1188, 1661, + 1552, 3514, 3521, 1641, 2125, 3279, 3561, 1219, 3193, 3186, + 2906, 2860, 3540, 2833, 2407, 3472, 3471, 2907, 2908, 2909, + 3482, 2375, 3484, 1944, 1911, 4067, 3478, 3833, 675, 676, + 223, 677, 1818, 1817, 1387, 1388, 1385, 1386, 1512, 1383, + 1384, 3300, 3550, 1188, 3553, 1523, 2501, 3533, 3530, 3528, + 2494, 3821, 1381, 1382, 3564, 2052, 1509, 3537, 1508, 1252, + 2183, 3542, 3345, 3027, 2340, 2195, 1560, 3545, 3544, 1461, + 1460, 1433, 3547, 3548, 1484, 4028, 2565, 3552, 4026, 3983, + 3554, 3955, 3954, 3952, 3893, 3607, 3853, 3731, 3730, 3668, + 3577, 3551, 3398, 3371, 3370, 3356, 3615, 3555, 2440, 2410, + 1663, 1188, 3355, 3037, 3585, 1275, 1274, 1284, 1285, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1276, 3571, 1458, 4058, + 4057, 1188, 1554, 1554, 3581, 3417, 3082, 3228, 3582, 2771, + 2368, 2261, 1395, 1210, 4057, 4058, 3612, 3697, 3614, 3650, + 3351, 3650, 913, 914, 915, 916, 1185, 1185, 210, 3, + 1476, 1552, 1764, 75, 1188, 3667, 1188, 3639, 3644, 3645, + 2, 4080, 4081, 3640, 1, 3670, 2752, 3672, 1880, 1389, + 917, 912, 1530, 1554, 2539, 2105, 1558, 3623, 1884, 3622, + 3621, 919, 3641, 3010, 3632, 3011, 3344, 3013, 2774, 2214, + 2974, 673, 2492, 1188, 1188, 3618, 2356, 1188, 1188, 3211, + 1443, 3655, 1764, 975, 3643, 3654, 3664, 3665, 3671, 1824, + 1678, 1202, 3475, 1675, 1201, 3719, 3666, 1199, 3647, 1769, + 800, 3714, 3679, 3676, 1070, 3514, 3521, 2168, 1946, 3703, + 3704, 3728, 3683, 3715, 3716, 2958, 2932, 2070, 3727, 2179, + 4066, 3390, 4101, 3737, 3738, 4020, 4069, 1694, 3392, 784, + 3675, 3946, 3858, 4024, 3860, 3747, 1554, 2219, 3725, 1257, + 3681, 2507, 1275, 1274, 1284, 1285, 1277, 1278, 1279, 1280, + 1281, 1282, 1283, 1276, 3724, 3058, 1002, 841, 811, 3768, + 3407, 1326, 1654, 3128, 3726, 1552, 3126, 810, 3440, 3566, + 3761, 2802, 3732, 3030, 3720, 3804, 1003, 3749, 2514, 2518, + 2519, 2520, 2515, 2523, 2516, 2521, 2151, 3744, 2517, 3855, + 2522, 3492, 142, 3748, 3745, 142, 142, 1608, 142, 1612, + 3756, 3760, 2406, 982, 3531, 3812, 3912, 3677, 3802, 3796, + 3775, 3601, 3264, 2868, 1636, 3907, 2894, 3486, 3597, 3595, + 3669, 3596, 716, 2084, 1188, 647, 1052, 3718, 2164, 717, + 3593, 2386, 3594, 3970, 3786, 3819, 3835, 3825, 1068, 955, + 2365, 142, 956, 948, 2821, 2820, 1734, 1266, 1751, 2985, + 1068, 3797, 3147, 3798, 3585, 3148, 3799, 1303, 755, 2244, + 2799, 3509, 3811, 3023, 3815, 74, 142, 73, 1188, 72, + 71, 231, 802, 1554, 1275, 1274, 1284, 1285, 1277, 1278, + 1279, 1280, 1281, 1282, 1283, 1276, 230, 3794, 3769, 3636, + 3832, 3942, 4071, 1070, 2985, 781, 780, 779, 778, 777, + 776, 2512, 1552, 2513, 3841, 2511, 2509, 2508, 2066, 2065, + 3036, 3354, 2130, 2132, 3843, 1876, 1928, 3226, 2897, 2892, + 1991, 1933, 1989, 1521, 2435, 2442, 1988, 3885, 4002, 3388, + 3874, 1876, 3588, 3922, 3556, 3923, 3694, 3558, 2942, 3854, + 3584, 1934, 2431, 2008, 2913, 2005, 1293, 2004, 2905, 3690, + 3684, 2036, 2873, 3800, 3649, 3894, 3493, 3494, 3565, 2514, + 2518, 2519, 2520, 2515, 2523, 2516, 2521, 3500, 3882, 2517, + 2374, 2522, 1121, 1117, 1119, 1120, 1118, 2696, 3320, 2412, + 3888, 3188, 2348, 3911, 2347, 2345, 2344, 1188, 1418, 3896, + 3884, 3966, 3617, 1986, 1987, 1554, 3905, 2563, 3936, 2561, + 1168, 3333, 3329, 3943, 2176, 1717, 3338, 1717, 3926, 3928, + 3930, 3932, 3910, 2995, 2191, 3078, 2067, 3944, 2063, 2062, + 3919, 1092, 1091, 3925, 1552, 1589, 2976, 2502, 3777, 1939, + 949, 3451, 3452, 3453, 2363, 109, 3935, 3457, 3458, 41, + 122, 108, 185, 59, 3951, 3949, 1554, 184, 58, 3802, + 120, 182, 2112, 57, 103, 102, 119, 180, 2112, 2112, + 2112, 56, 3963, 215, 214, 3993, 217, 216, 213, 2613, + 2614, 4001, 212, 1596, 211, 1552, 3984, 3986, 3956, 3653, + 3987, 3988, 3124, 3938, 907, 44, 43, 3985, 186, 42, + 110, 60, 40, 39, 38, 34, 13, 12, 4017, 35, + 22, 21, 1682, 4010, 20, 4011, 26, 4012, 32, 4013, + 31, 135, 4014, 134, 30, 133, 4027, 132, 4029, 4030, + 131, 130, 129, 128, 4025, 4023, 127, 29, 19, 51, + 50, 49, 3874, 4033, 1188, 48, 1275, 1274, 1284, 1285, + 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, 3850, 3851, + 47, 46, 9, 3825, 123, 118, 4046, 116, 28, 117, + 114, 4047, 4049, 4048, 115, 113, 4052, 112, 111, 4055, + 4065, 4053, 4073, 106, 104, 4072, 86, 85, 84, 99, + 98, 4059, 4060, 4061, 4062, 97, 96, 95, 94, 92, + 4085, 93, 4077, 1001, 83, 1717, 1188, 82, 81, 2683, + 80, 79, 101, 107, 105, 90, 100, 4090, 3911, 4091, + 91, 89, 4093, 88, 87, 78, 4099, 77, 76, 4103, + 166, 165, 4100, 1275, 1274, 1284, 1285, 1277, 1278, 1279, + 1280, 1281, 1282, 1283, 1276, 1510, 1511, 164, 1513, 1514, + 163, 1518, 1519, 1520, 162, 160, 161, 4111, 159, 158, + 157, 156, 155, 154, 52, 53, 4073, 4119, 54, 4072, + 4118, 2532, 55, 176, 175, 177, 179, 181, 4103, 4120, + 178, 183, 173, 171, 4124, 1569, 1570, 1571, 1572, 1573, + 174, 1575, 1576, 1577, 1578, 1579, 172, 170, 69, 1585, + 1586, 1587, 1588, 11, 1844, 1845, 1846, 1847, 121, 18, + 1851, 1852, 1853, 1854, 1856, 1857, 1858, 1859, 1860, 1861, + 1862, 1863, 1864, 1865, 1866, 4, 0, 206, 64, 197, + 168, 0, 0, 0, 0, 0, 2070, 0, 0, 0, + 0, 1287, 0, 1291, 142, 0, 198, 0, 0, 0, + 0, 0, 0, 189, 3721, 2241, 0, 199, 3722, 1288, + 1290, 1286, 0, 1289, 1275, 1274, 1284, 1285, 1277, 1278, + 1279, 1280, 1281, 1282, 1283, 1276, 140, 3498, 1313, 1275, + 1274, 1284, 1285, 1277, 1278, 1279, 1280, 1281, 1282, 1283, + 1276, 126, 0, 0, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 0, 0, 0, 0, 2353, 2354, 2355, + 0, 0, 0, 0, 0, 0, 0, 0, 3510, 0, + 0, 0, 2370, 2371, 2372, 2373, 0, 0, 0, 0, + 0, 3501, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3496, 0, 3918, 0, 0, 3518, 3519, 0, + 0, 0, 0, 3497, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 990, 1275, 1274, 1284, 1285, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1276, 148, 149, 0, + 150, 151, 0, 0, 0, 152, 0, 0, 153, 0, + 3502, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 728, 727, 734, 724, 0, 4044, 0, 0, 0, 0, + 0, 0, 0, 731, 732, 0, 733, 737, 0, 3998, + 718, 0, 0, 0, 0, 0, 986, 987, 0, 0, + 742, 0, 3844, 0, 0, 0, 0, 1030, 0, 0, + 1523, 167, 195, 204, 196, 124, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 194, 188, 187, 1717, 0, 0, + 0, 70, 0, 142, 0, 0, 746, 0, 3517, 748, + 2421, 0, 0, 0, 747, 0, 0, 1560, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3998, 0, + 2112, 0, 0, 0, 0, 3506, 3895, 0, 0, 0, + 0, 3899, 3900, 0, 0, 0, 0, 0, 0, 0, + 0, 1032, 0, 0, 1031, 0, 0, 3503, 3507, 3505, + 3504, 0, 190, 191, 192, 0, 0, 0, 0, 0, + 0, 0, 3920, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3998, 0, 0, 0, 0, 0, + 0, 0, 0, 1016, 0, 0, 0, 3512, 3513, 0, + 0, 200, 991, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 136, 0, 0, 0, 193, 0, 137, 993, + 0, 2070, 2070, 2070, 2070, 2070, 2070, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2070, 0, + 4122, 3520, 0, 0, 719, 721, 720, 0, 0, 0, + 0, 0, 0, 3499, 0, 726, 0, 0, 0, 3511, + 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, + 0, 0, 0, 0, 745, 138, 0, 0, 0, 0, + 0, 723, 0, 0, 1015, 1013, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, 2117, 0, 0, 0, + 4035, 4036, 0, 0, 0, 0, 0, 4040, 4041, 4042, + 4043, 0, 1012, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 985, 142, 0, 0, 0, 0, + 142, 0, 0, 0, 0, 992, 1025, 65, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 0, 0, 0, 0, 0, 0, 1021, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, - 142, 0, 0, 0, 0, 2034, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, - 0, 0, 2010, 0, 0, 0, 0, 0, 0, 2009, - 0, 0, 0, 0, 0, 0, 1149, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, - 0, 0, 0, 2027, 0, 0, 0, 0, 0, 0, - 0, 0, 2015, 0, 0, 0, 0, 2034, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2010, 0, 0, 0, 0, 0, - 0, 2009, 0, 0, 0, 0, 817, 0, 0, 0, - 0, 0, 0, 0, 0, 401, 0, 0, 532, 565, - 554, 638, 520, 0, 0, 2027, 0, 0, 0, 769, - 0, 0, 0, 336, 2015, 0, 369, 569, 551, 561, - 552, 537, 538, 539, 546, 348, 540, 541, 542, 512, - 543, 513, 544, 545, 808, 568, 519, 434, 385, 586, - 585, 0, 0, 877, 885, 0, 0, 0, 0, 0, - 0, 0, 1149, 873, 0, 0, 142, 0, 761, 0, - 3651, 798, 853, 852, 785, 795, 0, 0, 309, 229, - 514, 634, 516, 515, 786, 0, 787, 791, 794, 790, - 788, 789, 0, 868, 0, 0, 0, 0, 0, 0, - 753, 765, 0, 770, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 762, 763, 0, - 0, 0, 3655, 818, 0, 764, 0, 0, 813, 792, - 796, 0, 0, 0, 0, 299, 441, 460, 310, 429, - 473, 315, 437, 452, 305, 400, 426, 0, 0, 301, - 458, 436, 382, 359, 360, 300, 142, 420, 334, 350, - 331, 398, 793, 816, 820, 330, 891, 814, 468, 303, - 0, 467, 397, 454, 459, 383, 376, 0, 302, 456, - 381, 375, 363, 340, 892, 364, 365, 354, 409, 373, - 410, 355, 387, 386, 388, 0, 0, 0, 0, 0, - 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 627, 811, 0, 631, - 0, 470, 0, 0, 875, 0, 0, 0, 440, 0, - 0, 366, 0, 0, 0, 815, 0, 423, 403, 888, - 0, 0, 421, 371, 455, 411, 461, 442, 469, 417, - 412, 294, 443, 333, 384, 306, 308, 328, 335, 337, - 341, 342, 393, 394, 406, 428, 445, 446, 447, 332, - 316, 422, 317, 352, 318, 295, 324, 322, 325, 430, - 326, 297, 407, 451, 0, 347, 418, 379, 298, 378, - 408, 450, 449, 307, 477, 483, 484, 573, 0, 489, - 660, 661, 662, 498, 0, 413, 503, 504, 505, 507, - 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, - 529, 530, 357, 594, 1825, 1824, 1826, 482, 367, 368, - 0, 339, 338, 380, 416, 345, 291, 292, 655, 872, - 399, 596, 629, 630, 521, 142, 887, 867, 869, 870, - 874, 878, 879, 880, 881, 882, 884, 886, 890, 654, - 0, 575, 590, 658, 589, 651, 405, 0, 427, 587, - 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, - 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, - 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, - 889, 556, 533, 559, 474, 536, 535, 0, 0, 570, - 819, 571, 572, 389, 390, 391, 392, 876, 597, 314, - 493, 415, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 562, 563, 560, 663, 0, 620, 621, 0, - 0, 487, 488, 344, 351, 506, 353, 313, 404, 346, - 472, 361, 0, 499, 564, 500, 623, 626, 624, 625, - 396, 356, 358, 431, 362, 372, 419, 471, 402, 424, - 311, 462, 433, 377, 550, 577, 898, 871, 897, 899, - 900, 896, 901, 902, 883, 774, 0, 826, 894, 893, - 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, - 0, 0, 547, 448, 323, 285, 319, 320, 327, 652, - 649, 453, 653, 781, 293, 527, 370, 0, 414, 343, - 592, 593, 0, 644, 860, 833, 834, 835, 771, 836, - 830, 831, 772, 832, 861, 824, 857, 858, 800, 827, - 837, 856, 838, 859, 862, 863, 903, 904, 844, 828, - 257, 905, 841, 864, 855, 854, 839, 825, 865, 866, - 807, 802, 842, 843, 829, 848, 849, 850, 773, 821, - 822, 823, 845, 846, 803, 804, 805, 806, 0, 0, - 0, 478, 479, 480, 502, 0, 464, 526, 650, 0, - 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, - 632, 633, 635, 637, 851, 639, 438, 439, 0, 847, - 642, 643, 640, 374, 425, 444, 432, 817, 656, 517, - 518, 657, 628, 0, 766, 0, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 769, 0, 0, 0, 336, 1876, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 808, 568, 519, 434, 385, - 586, 585, 0, 0, 877, 885, 0, 0, 0, 0, - 0, 0, 0, 0, 873, 0, 2095, 0, 0, 761, - 0, 0, 798, 853, 852, 785, 795, 0, 0, 309, - 229, 514, 634, 516, 515, 786, 0, 787, 791, 794, - 790, 788, 789, 0, 868, 0, 0, 0, 0, 0, - 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 762, 763, - 0, 0, 0, 0, 818, 0, 764, 0, 0, 2096, - 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 793, 816, 820, 330, 891, 814, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 811, 0, - 631, 0, 470, 0, 0, 875, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 815, 0, 423, 403, - 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 872, 399, 596, 629, 630, 521, 0, 887, 867, 869, - 870, 874, 878, 879, 880, 881, 882, 884, 886, 890, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 889, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 819, 571, 572, 389, 390, 391, 392, 876, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 898, 871, 897, - 899, 900, 896, 901, 902, 883, 774, 0, 826, 894, - 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 781, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 860, 833, 834, 835, 771, - 836, 830, 831, 772, 832, 861, 824, 857, 858, 800, - 827, 837, 856, 838, 859, 862, 863, 903, 904, 844, - 828, 257, 905, 841, 864, 855, 854, 839, 825, 865, - 866, 807, 802, 842, 843, 829, 848, 849, 850, 773, - 821, 822, 823, 845, 846, 803, 804, 805, 806, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 851, 639, 438, 439, 0, - 847, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 0, 766, 206, 817, 0, 0, - 0, 0, 0, 0, 0, 0, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 769, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 1295, 568, 519, 434, 385, - 586, 585, 0, 0, 877, 885, 0, 0, 0, 0, - 0, 0, 0, 0, 873, 0, 0, 0, 0, 761, - 0, 0, 798, 853, 852, 785, 795, 0, 0, 309, - 229, 514, 634, 516, 515, 786, 0, 787, 791, 794, - 790, 788, 789, 0, 868, 0, 0, 0, 0, 0, - 0, 753, 765, 0, 770, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 762, 763, - 0, 0, 0, 0, 818, 0, 764, 0, 0, 813, - 792, 796, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 793, 816, 820, 330, 891, 814, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 892, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 811, 0, - 631, 0, 470, 0, 0, 875, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 815, 0, 423, 403, - 888, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 872, 399, 596, 629, 630, 521, 0, 887, 867, 869, - 870, 874, 878, 879, 880, 881, 882, 884, 886, 890, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 889, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 819, 571, 572, 389, 390, 391, 392, 876, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 898, 871, 897, - 899, 900, 896, 901, 902, 883, 774, 0, 826, 894, - 893, 895, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 781, 293, 527, 370, 169, 414, - 343, 592, 593, 0, 644, 860, 833, 834, 835, 771, - 836, 830, 831, 772, 832, 861, 824, 857, 858, 800, - 827, 837, 856, 838, 859, 862, 863, 903, 904, 844, - 828, 257, 905, 841, 864, 855, 854, 839, 825, 865, - 866, 807, 802, 842, 843, 829, 848, 849, 850, 773, - 821, 822, 823, 845, 846, 803, 804, 805, 806, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 851, 639, 438, 439, 0, - 847, 642, 643, 640, 374, 425, 444, 432, 817, 656, - 517, 518, 657, 628, 0, 766, 0, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 769, 0, 0, 0, 336, 4119, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 808, 568, 519, 434, - 385, 586, 585, 0, 0, 877, 885, 0, 0, 0, - 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, - 761, 0, 0, 798, 853, 852, 785, 795, 0, 0, - 309, 229, 514, 634, 516, 515, 786, 0, 787, 791, - 794, 790, 788, 789, 0, 868, 0, 0, 0, 0, - 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, - 763, 0, 0, 0, 0, 818, 0, 764, 0, 0, - 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 793, 816, 820, 330, 891, 814, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 811, - 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 815, 0, 423, - 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 872, 399, 596, 629, 630, 521, 0, 887, 867, - 869, 870, 874, 878, 879, 880, 881, 882, 884, 886, - 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 889, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 819, 571, 572, 389, 390, 391, 392, 876, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 898, 871, - 897, 899, 900, 896, 901, 902, 883, 774, 0, 826, - 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 781, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 860, 833, 834, 835, - 771, 836, 830, 831, 772, 832, 861, 824, 857, 858, - 800, 827, 837, 856, 838, 859, 862, 863, 903, 904, - 844, 828, 257, 905, 841, 864, 855, 854, 839, 825, - 865, 866, 807, 802, 842, 843, 829, 848, 849, 850, - 773, 821, 822, 823, 845, 846, 803, 804, 805, 806, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 851, 639, 438, 439, - 0, 847, 642, 643, 640, 374, 425, 444, 432, 817, - 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 808, 568, 519, - 434, 385, 586, 585, 0, 0, 877, 885, 0, 0, - 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, - 0, 761, 0, 0, 798, 853, 852, 785, 795, 0, - 0, 309, 229, 514, 634, 516, 515, 786, 0, 787, - 791, 794, 790, 788, 789, 0, 868, 0, 0, 0, - 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 762, 763, 0, 0, 0, 0, 818, 0, 764, 0, - 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 793, 816, 820, 330, 891, - 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 815, 0, - 423, 403, 888, 3997, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 872, 399, 596, 629, 630, 521, 0, 887, - 867, 869, 870, 874, 878, 879, 880, 881, 882, 884, - 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 889, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 819, 571, 572, 389, 390, 391, 392, - 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 898, - 871, 897, 899, 900, 896, 901, 902, 883, 774, 0, - 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 781, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 860, 833, 834, - 835, 771, 836, 830, 831, 772, 832, 861, 824, 857, - 858, 800, 827, 837, 856, 838, 859, 862, 863, 903, - 904, 844, 828, 257, 905, 841, 864, 855, 854, 839, - 825, 865, 866, 807, 802, 842, 843, 829, 848, 849, - 850, 773, 821, 822, 823, 845, 846, 803, 804, 805, - 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 851, 639, 438, - 439, 0, 847, 642, 643, 640, 374, 425, 444, 432, - 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 769, 0, 0, 0, 336, 1876, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 808, 568, - 519, 434, 385, 586, 585, 0, 0, 877, 885, 0, - 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, - 0, 0, 761, 0, 0, 798, 853, 852, 785, 795, - 0, 0, 309, 229, 514, 634, 516, 515, 786, 0, - 787, 791, 794, 790, 788, 789, 0, 868, 0, 0, - 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 762, 763, 0, 0, 0, 0, 818, 0, 764, - 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 793, 816, 820, 330, - 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 815, - 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 872, 399, 596, 629, 630, 521, 0, - 887, 867, 869, 870, 874, 878, 879, 880, 881, 882, - 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 889, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 819, 571, 572, 389, 390, 391, - 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 898, 871, 897, 899, 900, 896, 901, 902, 883, 774, - 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 781, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 860, 833, - 834, 835, 771, 836, 830, 831, 772, 832, 861, 824, - 857, 858, 800, 827, 837, 856, 838, 859, 862, 863, - 903, 904, 844, 828, 257, 905, 841, 864, 855, 854, - 839, 825, 865, 866, 807, 802, 842, 843, 829, 848, - 849, 850, 773, 821, 822, 823, 845, 846, 803, 804, - 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 851, 639, - 438, 439, 0, 847, 642, 643, 640, 374, 425, 444, - 432, 817, 656, 517, 518, 657, 628, 0, 766, 0, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 808, - 568, 519, 434, 385, 586, 585, 0, 0, 877, 885, - 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, - 0, 0, 0, 761, 0, 0, 798, 853, 852, 785, - 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, - 0, 787, 791, 794, 790, 788, 789, 0, 868, 0, - 0, 0, 0, 0, 0, 753, 765, 0, 770, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 762, 763, 1590, 0, 0, 0, 818, 0, - 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 793, 816, 820, - 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 892, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 811, 0, 631, 0, 470, 0, 0, 875, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 872, 399, 596, 629, 630, 521, - 0, 887, 867, 869, 870, 874, 878, 879, 880, 881, - 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 889, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 819, 571, 572, 389, 390, - 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 898, 871, 897, 899, 900, 896, 901, 902, 883, - 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 781, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 860, - 833, 834, 835, 771, 836, 830, 831, 772, 832, 861, - 824, 857, 858, 800, 827, 837, 856, 838, 859, 862, - 863, 903, 904, 844, 828, 257, 905, 841, 864, 855, - 854, 839, 825, 865, 866, 807, 802, 842, 843, 829, - 848, 849, 850, 773, 821, 822, 823, 845, 846, 803, - 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 851, - 639, 438, 439, 0, 847, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 817, 766, - 0, 2268, 0, 0, 0, 0, 0, 401, 0, 0, - 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, - 0, 769, 0, 0, 0, 336, 0, 0, 369, 569, - 551, 561, 552, 537, 538, 539, 546, 348, 540, 541, - 542, 512, 543, 513, 544, 545, 808, 568, 519, 434, - 385, 586, 585, 0, 0, 877, 885, 0, 0, 0, - 0, 0, 0, 0, 0, 873, 0, 0, 0, 0, - 761, 0, 0, 798, 853, 852, 785, 795, 0, 0, - 309, 229, 514, 634, 516, 515, 786, 0, 787, 791, - 794, 790, 788, 789, 0, 868, 0, 0, 0, 0, - 0, 0, 753, 765, 0, 770, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, - 763, 0, 0, 0, 0, 818, 0, 764, 0, 0, - 813, 792, 796, 0, 0, 0, 0, 299, 441, 460, - 310, 429, 473, 315, 437, 452, 305, 400, 426, 0, - 0, 301, 458, 436, 382, 359, 360, 300, 0, 420, - 334, 350, 331, 398, 793, 816, 820, 330, 891, 814, - 468, 303, 0, 467, 397, 454, 459, 383, 376, 0, - 302, 456, 381, 375, 363, 340, 892, 364, 365, 354, - 409, 373, 410, 355, 387, 386, 388, 0, 0, 0, - 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 627, 811, - 0, 631, 0, 470, 0, 0, 875, 0, 0, 0, - 440, 0, 0, 366, 0, 0, 0, 815, 0, 423, - 403, 888, 0, 0, 421, 371, 455, 411, 461, 442, - 469, 417, 412, 294, 443, 333, 384, 306, 308, 328, - 335, 337, 341, 342, 393, 394, 406, 428, 445, 446, - 447, 332, 316, 422, 317, 352, 318, 295, 324, 322, - 325, 430, 326, 297, 407, 451, 0, 347, 418, 379, - 298, 378, 408, 450, 449, 307, 477, 483, 484, 573, - 0, 489, 660, 661, 662, 498, 0, 413, 503, 504, - 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, - 582, 525, 529, 530, 357, 594, 0, 0, 0, 482, - 367, 368, 0, 339, 338, 380, 416, 345, 291, 292, - 655, 872, 399, 596, 629, 630, 521, 0, 887, 867, - 869, 870, 874, 878, 879, 880, 881, 882, 884, 886, - 890, 654, 0, 575, 590, 658, 589, 651, 405, 0, - 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, - 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, - 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, - 619, 612, 889, 556, 533, 559, 474, 536, 535, 0, - 0, 570, 819, 571, 572, 389, 390, 391, 392, 876, - 597, 314, 493, 415, 0, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 562, 563, 560, 663, 0, 620, - 621, 0, 0, 487, 488, 344, 351, 506, 353, 313, - 404, 346, 472, 361, 0, 499, 564, 500, 623, 626, - 624, 625, 396, 356, 358, 431, 362, 372, 419, 471, - 402, 424, 311, 462, 433, 377, 550, 577, 898, 871, - 897, 899, 900, 896, 901, 902, 883, 774, 0, 826, - 894, 893, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, - 599, 598, 0, 0, 547, 448, 323, 285, 319, 320, - 327, 652, 649, 453, 653, 781, 293, 527, 370, 0, - 414, 343, 592, 593, 0, 644, 860, 833, 834, 835, - 771, 836, 830, 831, 772, 832, 861, 824, 857, 858, - 800, 827, 837, 856, 838, 859, 862, 863, 903, 904, - 844, 828, 257, 905, 841, 864, 855, 854, 839, 825, - 865, 866, 807, 802, 842, 843, 829, 848, 849, 850, - 773, 821, 822, 823, 845, 846, 803, 804, 805, 806, - 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, - 650, 0, 0, 0, 0, 0, 0, 0, 576, 588, - 622, 0, 632, 633, 635, 637, 851, 639, 438, 439, - 0, 847, 642, 643, 640, 374, 425, 444, 432, 817, - 656, 517, 518, 657, 628, 0, 766, 0, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 769, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 808, 568, 519, - 434, 385, 586, 585, 0, 0, 877, 885, 0, 0, - 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, - 0, 761, 0, 0, 798, 853, 852, 785, 795, 0, - 0, 309, 229, 514, 634, 516, 515, 786, 0, 787, - 791, 794, 790, 788, 789, 0, 868, 0, 0, 0, - 0, 0, 0, 753, 765, 0, 770, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 762, 763, 1869, 0, 0, 0, 818, 0, 764, 0, - 0, 813, 792, 796, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 793, 816, 820, 330, 891, - 814, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 892, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 811, 0, 631, 0, 470, 0, 0, 875, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 815, 0, - 423, 403, 888, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 872, 399, 596, 629, 630, 521, 0, 887, - 867, 869, 870, 874, 878, 879, 880, 881, 882, 884, - 886, 890, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 889, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 819, 571, 572, 389, 390, 391, 392, - 876, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 898, - 871, 897, 899, 900, 896, 901, 902, 883, 774, 0, - 826, 894, 893, 895, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 781, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 860, 833, 834, - 835, 771, 836, 830, 831, 772, 832, 861, 824, 857, - 858, 800, 827, 837, 856, 838, 859, 862, 863, 903, - 904, 844, 828, 257, 905, 841, 864, 855, 854, 839, - 825, 865, 866, 807, 802, 842, 843, 829, 848, 849, - 850, 773, 821, 822, 823, 845, 846, 803, 804, 805, - 806, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 851, 639, 438, - 439, 0, 847, 642, 643, 640, 374, 425, 444, 432, - 817, 656, 517, 518, 657, 628, 0, 766, 0, 401, - 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, - 0, 0, 0, 769, 0, 0, 0, 336, 0, 0, - 369, 569, 551, 561, 552, 537, 538, 539, 546, 348, - 540, 541, 542, 512, 543, 513, 544, 545, 808, 568, - 519, 434, 385, 586, 585, 0, 0, 877, 885, 0, - 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, - 0, 0, 761, 0, 0, 798, 853, 852, 785, 795, - 0, 0, 309, 229, 514, 634, 516, 515, 786, 0, - 787, 791, 794, 790, 788, 789, 0, 868, 0, 0, - 0, 0, 0, 0, 753, 765, 0, 770, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 762, 763, 0, 0, 0, 0, 818, 0, 764, - 0, 0, 813, 792, 796, 0, 0, 0, 0, 299, - 441, 460, 310, 429, 473, 315, 437, 452, 305, 400, - 426, 0, 0, 301, 458, 436, 382, 359, 360, 300, - 0, 420, 334, 350, 331, 398, 793, 816, 820, 330, - 891, 814, 468, 303, 0, 467, 397, 454, 459, 383, - 376, 0, 302, 456, 381, 375, 363, 340, 892, 364, - 365, 354, 409, 373, 410, 355, 387, 386, 388, 0, - 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 627, 811, 0, 631, 0, 470, 0, 0, 875, 0, - 0, 0, 440, 0, 0, 366, 0, 0, 0, 815, - 0, 423, 403, 888, 0, 0, 421, 371, 455, 411, - 461, 442, 469, 417, 412, 294, 443, 333, 384, 306, - 308, 328, 335, 337, 341, 342, 393, 394, 406, 428, - 445, 446, 447, 332, 316, 422, 317, 352, 318, 295, - 324, 322, 325, 430, 326, 297, 407, 451, 0, 347, - 418, 379, 298, 378, 408, 450, 449, 307, 477, 483, - 484, 573, 0, 489, 660, 661, 662, 498, 0, 413, - 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, - 528, 491, 582, 525, 529, 530, 357, 594, 0, 0, - 0, 482, 367, 368, 0, 339, 338, 380, 416, 345, - 291, 292, 655, 872, 399, 596, 629, 630, 521, 0, - 887, 867, 869, 870, 874, 878, 879, 880, 881, 882, - 884, 886, 890, 654, 0, 575, 590, 658, 589, 651, - 405, 0, 427, 587, 534, 0, 579, 553, 0, 580, - 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, - 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, - 617, 618, 619, 612, 889, 556, 533, 559, 474, 536, - 535, 0, 0, 570, 819, 571, 572, 389, 390, 391, - 392, 876, 597, 314, 493, 415, 0, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 562, 563, 560, 663, - 0, 620, 621, 0, 0, 487, 488, 344, 351, 506, - 353, 313, 404, 346, 472, 361, 0, 499, 564, 500, - 623, 626, 624, 625, 396, 356, 358, 431, 362, 372, - 419, 471, 402, 424, 311, 462, 433, 377, 550, 577, - 898, 871, 897, 899, 900, 896, 901, 902, 883, 774, - 0, 826, 894, 893, 895, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, - 601, 600, 599, 598, 0, 0, 547, 448, 323, 285, - 319, 320, 327, 652, 649, 453, 653, 781, 293, 527, - 370, 0, 414, 343, 592, 593, 0, 644, 860, 833, - 834, 835, 771, 836, 830, 831, 772, 832, 861, 824, - 857, 858, 800, 827, 837, 856, 838, 859, 862, 863, - 903, 904, 844, 828, 257, 905, 841, 864, 855, 854, - 839, 825, 865, 866, 807, 802, 842, 843, 829, 848, - 849, 850, 773, 821, 822, 823, 845, 846, 803, 804, - 805, 806, 0, 0, 0, 478, 479, 480, 502, 0, - 464, 526, 650, 0, 0, 0, 0, 0, 0, 0, - 576, 588, 622, 0, 632, 633, 635, 637, 851, 639, - 438, 439, 0, 847, 642, 643, 640, 374, 425, 444, - 432, 817, 656, 517, 518, 657, 628, 0, 766, 0, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 769, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 808, - 568, 519, 434, 385, 586, 585, 0, 0, 877, 885, - 0, 0, 0, 0, 0, 0, 0, 0, 873, 0, - 0, 0, 0, 761, 0, 0, 798, 853, 852, 785, - 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, - 0, 787, 791, 794, 790, 788, 789, 0, 868, 0, - 0, 0, 0, 0, 0, 753, 765, 0, 770, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 762, 763, 0, 0, 0, 0, 818, 0, - 764, 0, 0, 813, 792, 796, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 793, 816, 820, - 330, 891, 814, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 892, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 811, 0, 631, 0, 470, 0, 0, 875, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 815, 0, 423, 403, 888, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 872, 399, 596, 629, 630, 521, - 0, 887, 867, 869, 870, 874, 878, 879, 880, 881, - 882, 884, 886, 890, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 889, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 819, 571, 572, 389, 390, - 391, 392, 876, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 898, 871, 897, 899, 900, 896, 901, 902, 883, - 774, 0, 826, 894, 893, 895, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 781, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 860, - 833, 834, 835, 771, 836, 830, 831, 772, 832, 861, - 824, 857, 858, 800, 827, 837, 856, 838, 859, 862, - 863, 903, 904, 844, 828, 257, 905, 841, 864, 855, - 854, 839, 825, 865, 866, 807, 802, 842, 843, 829, - 848, 849, 850, 773, 821, 822, 823, 845, 846, 803, - 804, 805, 806, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 851, - 639, 438, 439, 0, 3566, 642, 3567, 3568, 374, 425, - 444, 432, 817, 656, 517, 518, 657, 628, 0, 766, - 0, 401, 0, 0, 532, 565, 554, 638, 520, 0, - 0, 0, 0, 0, 0, 769, 0, 0, 0, 336, - 0, 0, 369, 569, 551, 561, 552, 537, 538, 539, - 546, 348, 540, 541, 542, 512, 543, 513, 544, 545, - 808, 568, 519, 434, 385, 586, 585, 0, 0, 877, - 885, 0, 0, 0, 0, 0, 0, 0, 0, 873, - 0, 0, 0, 0, 761, 0, 0, 798, 853, 852, - 785, 795, 0, 0, 309, 229, 514, 634, 516, 515, - 2748, 0, 2749, 791, 794, 790, 788, 789, 0, 868, - 0, 0, 0, 0, 0, 0, 753, 765, 0, 770, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 762, 763, 0, 0, 0, 0, 818, - 0, 764, 0, 0, 813, 792, 796, 0, 0, 0, - 0, 299, 441, 460, 310, 429, 473, 315, 437, 452, - 305, 400, 426, 0, 0, 301, 458, 436, 382, 359, - 360, 300, 0, 420, 334, 350, 331, 398, 793, 816, - 820, 330, 891, 814, 468, 303, 0, 467, 397, 454, - 459, 383, 376, 0, 302, 456, 381, 375, 363, 340, - 892, 364, 365, 354, 409, 373, 410, 355, 387, 386, - 388, 0, 0, 0, 0, 0, 496, 497, 0, 0, - 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 627, 811, 0, 631, 0, 470, 0, 0, - 875, 0, 0, 0, 440, 0, 0, 366, 0, 0, - 0, 815, 0, 423, 403, 888, 0, 0, 421, 371, - 455, 411, 461, 442, 469, 417, 412, 294, 443, 333, - 384, 306, 308, 328, 335, 337, 341, 342, 393, 394, - 406, 428, 445, 446, 447, 332, 316, 422, 317, 352, - 318, 295, 324, 322, 325, 430, 326, 297, 407, 451, - 0, 347, 418, 379, 298, 378, 408, 450, 449, 307, - 477, 483, 484, 573, 0, 489, 660, 661, 662, 498, - 0, 413, 503, 504, 505, 507, 508, 509, 510, 574, - 591, 558, 528, 491, 582, 525, 529, 530, 357, 594, - 0, 0, 0, 482, 367, 368, 0, 339, 338, 380, - 416, 345, 291, 292, 655, 872, 399, 596, 629, 630, - 521, 0, 887, 867, 869, 870, 874, 878, 879, 880, - 881, 882, 884, 886, 890, 654, 0, 575, 590, 658, - 589, 651, 405, 0, 427, 587, 534, 0, 579, 553, - 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, - 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, - 615, 616, 617, 618, 619, 612, 889, 556, 533, 559, - 474, 536, 535, 0, 0, 570, 819, 571, 572, 389, - 390, 391, 392, 876, 597, 314, 493, 415, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, - 560, 663, 0, 620, 621, 0, 0, 487, 488, 344, - 351, 506, 353, 313, 404, 346, 472, 361, 0, 499, - 564, 500, 623, 626, 624, 625, 396, 356, 358, 431, - 362, 372, 419, 471, 402, 424, 311, 462, 433, 377, - 550, 577, 898, 871, 897, 899, 900, 896, 901, 902, - 883, 774, 0, 826, 894, 893, 895, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, - 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, - 323, 285, 319, 320, 327, 652, 649, 453, 653, 781, - 293, 527, 370, 0, 414, 343, 592, 593, 0, 644, - 860, 833, 834, 835, 771, 836, 830, 831, 772, 832, - 861, 824, 857, 858, 800, 827, 837, 856, 838, 859, - 862, 863, 903, 904, 844, 828, 257, 905, 841, 864, - 855, 854, 839, 825, 865, 866, 807, 802, 842, 843, - 829, 848, 849, 850, 773, 821, 822, 823, 845, 846, - 803, 804, 805, 806, 0, 0, 0, 478, 479, 480, - 502, 0, 464, 526, 650, 0, 0, 0, 0, 0, - 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, - 851, 639, 438, 439, 0, 847, 642, 643, 640, 374, - 425, 444, 432, 817, 656, 517, 518, 657, 628, 0, - 766, 0, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 1734, 0, 0, 0, 769, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 808, 568, 519, 434, 385, 586, 585, 0, 0, - 877, 885, 0, 0, 0, 0, 0, 0, 0, 0, - 873, 0, 0, 0, 0, 761, 0, 0, 798, 853, - 852, 785, 795, 0, 0, 309, 229, 514, 634, 516, - 515, 786, 0, 787, 791, 794, 790, 788, 789, 0, - 868, 0, 0, 0, 0, 0, 0, 0, 765, 0, - 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 762, 763, 0, 0, 0, 0, - 818, 0, 764, 0, 0, 813, 792, 796, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 793, - 816, 820, 330, 891, 814, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 892, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 811, 0, 631, 0, 470, 0, - 0, 875, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 815, 0, 423, 403, 888, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 1735, 1736, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 872, 399, 596, 629, - 630, 521, 0, 887, 867, 869, 870, 874, 878, 879, - 880, 881, 882, 884, 886, 890, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 889, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 819, 571, 572, - 389, 390, 391, 392, 876, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 898, 871, 897, 899, 900, 896, 901, - 902, 883, 774, 0, 826, 894, 893, 895, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 781, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 860, 833, 834, 835, 771, 836, 830, 831, 772, - 832, 861, 824, 857, 858, 800, 827, 837, 856, 838, - 859, 862, 863, 903, 904, 844, 828, 257, 905, 841, - 864, 855, 854, 839, 825, 865, 866, 807, 802, 842, - 843, 829, 848, 849, 850, 773, 821, 822, 823, 845, - 846, 803, 804, 805, 806, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 851, 639, 438, 439, 0, 847, 642, 643, 640, - 374, 425, 444, 432, 817, 656, 517, 518, 657, 628, - 0, 766, 0, 401, 0, 0, 532, 565, 554, 638, - 520, 0, 0, 0, 0, 0, 0, 769, 0, 0, - 0, 336, 0, 0, 369, 569, 551, 561, 552, 537, - 538, 539, 546, 348, 540, 541, 542, 512, 543, 513, - 544, 545, 808, 568, 519, 434, 385, 586, 585, 0, - 0, 877, 885, 0, 0, 0, 0, 0, 0, 0, - 0, 873, 0, 0, 0, 0, 761, 0, 0, 798, - 853, 852, 785, 795, 0, 0, 309, 229, 514, 634, - 516, 515, 786, 0, 787, 791, 794, 790, 788, 789, - 0, 868, 0, 0, 0, 0, 0, 0, 0, 765, - 0, 770, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 762, 763, 0, 0, 0, - 0, 818, 0, 764, 0, 0, 813, 792, 796, 0, - 0, 0, 0, 299, 441, 460, 310, 429, 473, 315, - 437, 452, 305, 400, 426, 0, 0, 301, 458, 436, - 382, 359, 360, 300, 0, 420, 334, 350, 331, 398, - 793, 816, 820, 330, 891, 814, 468, 303, 0, 467, - 397, 454, 459, 383, 376, 0, 302, 456, 381, 375, - 363, 340, 892, 364, 365, 354, 409, 373, 410, 355, - 387, 386, 388, 0, 0, 0, 0, 0, 496, 497, - 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 627, 811, 0, 631, 0, 470, - 0, 0, 875, 0, 0, 0, 440, 0, 0, 366, - 0, 0, 0, 815, 0, 423, 403, 888, 0, 0, - 421, 371, 455, 411, 461, 442, 469, 417, 412, 294, - 443, 333, 384, 306, 308, 328, 335, 337, 341, 342, - 393, 394, 406, 428, 445, 446, 447, 332, 316, 422, - 317, 352, 318, 295, 324, 322, 325, 430, 326, 297, - 407, 451, 0, 347, 418, 379, 298, 378, 408, 450, - 449, 307, 477, 483, 484, 573, 0, 489, 660, 661, - 662, 498, 0, 413, 503, 504, 505, 507, 508, 509, - 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, - 357, 594, 0, 0, 0, 482, 367, 368, 0, 339, - 338, 380, 416, 345, 291, 292, 655, 872, 399, 596, - 629, 630, 521, 0, 887, 867, 869, 870, 874, 878, - 879, 880, 881, 882, 884, 886, 890, 654, 0, 575, - 590, 658, 589, 651, 405, 0, 427, 587, 534, 0, - 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, - 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, - 613, 614, 615, 616, 617, 618, 619, 612, 889, 556, - 533, 559, 474, 536, 535, 0, 0, 570, 819, 571, - 572, 389, 390, 391, 392, 876, 597, 314, 493, 415, - 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 562, 563, 560, 663, 0, 620, 621, 0, 0, 487, - 488, 344, 351, 506, 353, 313, 404, 346, 472, 361, - 0, 499, 564, 500, 623, 626, 624, 625, 396, 356, - 358, 431, 362, 372, 419, 471, 402, 424, 311, 462, - 433, 377, 550, 577, 898, 871, 897, 899, 900, 896, - 901, 902, 883, 774, 0, 826, 894, 893, 895, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, - 547, 448, 323, 285, 319, 320, 327, 652, 649, 453, - 653, 781, 293, 527, 370, 0, 414, 343, 592, 593, - 0, 644, 860, 833, 834, 835, 771, 836, 830, 831, - 772, 832, 861, 824, 857, 858, 800, 827, 837, 856, - 838, 859, 862, 863, 903, 904, 844, 828, 257, 905, - 841, 864, 855, 854, 839, 825, 865, 866, 807, 802, - 842, 843, 829, 848, 849, 850, 773, 821, 822, 823, - 845, 846, 803, 804, 805, 806, 0, 0, 0, 478, - 479, 480, 502, 0, 464, 526, 650, 0, 0, 0, - 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, - 635, 637, 851, 639, 438, 439, 0, 847, 642, 643, - 640, 374, 425, 444, 432, 817, 656, 517, 518, 657, - 628, 0, 766, 0, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 769, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 808, 568, 519, 434, 385, 586, 585, - 0, 0, 877, 885, 0, 0, 0, 0, 0, 0, - 0, 0, 873, 0, 0, 0, 0, 0, 0, 0, - 798, 853, 852, 785, 795, 0, 0, 309, 229, 514, - 634, 516, 515, 786, 0, 787, 791, 794, 790, 788, - 789, 0, 868, 0, 0, 0, 0, 0, 0, 753, - 765, 0, 770, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 762, 763, 0, 0, - 0, 0, 818, 0, 764, 0, 0, 813, 792, 796, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 793, 816, 820, 330, 891, 814, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 892, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 811, 0, 631, 0, - 470, 0, 0, 875, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 815, 0, 423, 403, 888, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 872, 399, - 596, 629, 630, 521, 0, 887, 867, 869, 870, 874, - 878, 879, 880, 881, 882, 884, 886, 890, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 889, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 819, - 571, 572, 389, 390, 391, 392, 876, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 898, 871, 897, 899, 900, - 896, 901, 902, 883, 774, 0, 826, 894, 893, 895, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 781, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 860, 833, 834, 835, 771, 836, 830, - 831, 772, 832, 861, 824, 857, 858, 800, 827, 837, - 856, 838, 859, 862, 863, 903, 904, 844, 828, 257, - 905, 841, 864, 855, 854, 839, 825, 865, 866, 807, - 802, 842, 843, 829, 848, 849, 850, 773, 821, 822, - 823, 845, 846, 803, 804, 805, 806, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 851, 639, 438, 439, 0, 847, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 0, 766, 206, 64, 197, 168, 0, 0, - 0, 0, 0, 0, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 198, 0, 0, 0, 0, 0, 0, - 189, 0, 336, 0, 199, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 140, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, - 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 167, 195, - 204, 196, 124, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 221, 0, 0, 0, 440, 0, 0, - 366, 194, 188, 187, 486, 0, 423, 403, 233, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 606, - 607, 608, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 465, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 224, 578, 581, 511, 234, 0, - 575, 590, 548, 589, 235, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 138, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 232, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 239, 304, - 453, 240, 0, 293, 527, 370, 169, 414, 343, 592, - 593, 61, 644, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 236, 45, 222, - 225, 227, 226, 0, 62, 576, 588, 622, 5, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 143, 237, 517, 518, - 238, 628, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 202, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 2422, 2425, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 2426, 470, 0, - 0, 0, 2421, 0, 2420, 440, 2418, 2423, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 2424, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 169, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1331, 0, 0, 228, 0, 0, 785, - 795, 0, 0, 309, 229, 514, 634, 516, 515, 786, - 0, 787, 791, 794, 790, 788, 789, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 793, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 206, 64, - 197, 168, 0, 0, 0, 0, 0, 0, 401, 682, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 689, 0, 0, 0, 0, 0, 0, - 0, 688, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 686, 687, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 683, 685, 314, 493, 415, 697, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 169, 414, 343, 592, 593, 0, 644, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 1139, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1124, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 2586, 2589, 2590, 2591, 2592, 2593, 2594, 0, 2599, 2595, - 2596, 2597, 2598, 0, 2581, 2582, 2583, 2584, 1122, 2565, - 2587, 0, 2566, 397, 2567, 2568, 2569, 2570, 1126, 2571, - 2572, 2573, 2574, 2575, 2578, 2579, 2576, 2577, 2585, 409, - 373, 410, 355, 387, 386, 388, 1150, 1152, 1154, 1156, - 1159, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 2580, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 2588, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 2422, 2425, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 2426, - 470, 0, 0, 0, 2421, 0, 2420, 440, 2418, 2423, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 2424, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 2443, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 2442, 470, 0, - 0, 0, 2448, 2445, 2447, 440, 0, 2446, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 2440, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 2443, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 2442, 470, 0, 0, 0, - 2448, 2445, 2447, 440, 0, 2446, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 2135, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 2136, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 1260, - 1261, 1262, 1259, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 206, 656, 517, 518, 657, 628, 0, 0, 0, 0, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 140, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 202, 2185, 0, 228, 0, 0, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 169, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 206, 656, 517, 518, 657, 628, 0, 0, - 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 202, 2170, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 169, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 1050, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 1057, 1058, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1061, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 1044, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 1031, 468, 303, 1030, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 1048, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 1049, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 1052, 571, 572, 389, 390, - 391, 392, 349, 597, 1047, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 1059, 1045, 1055, 1046, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 1056, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 1043, 425, - 444, 432, 206, 656, 517, 518, 657, 628, 0, 0, - 0, 0, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 140, 568, 519, 434, 385, 586, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2067, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 169, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 1057, 1058, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1061, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 1031, 468, 303, 1030, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 1059, 2088, 1055, 2089, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 1056, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 2977, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 2980, 0, 0, 0, 2979, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 0, 0, 146, 203, 0, 147, 0, 0, 0, 2837, + 169, 0, 0, 0, 0, 61, 0, 0, 0, 3516, + 0, 0, 0, 0, 0, 1022, 1026, 0, 0, 725, + 729, 735, 0, 736, 738, 0, 0, 739, 740, 741, + 0, 0, 743, 744, 0, 1009, 0, 1007, 1011, 1029, + 0, 0, 0, 1008, 1005, 1004, 0, 1010, 995, 996, + 994, 997, 998, 999, 1000, 0, 1027, 0, 1028, 0, + 0, 2037, 0, 0, 0, 0, 1998, 0, 0, 1023, + 1024, 139, 45, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 0, 3515, 0, 0, 0, 0, + 1140, 0, 0, 0, 0, 0, 0, 2040, 2007, 0, + 143, 144, 0, 0, 145, 0, 1019, 2041, 2042, 0, + 0, 0, 1018, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1014, 0, 0, + 0, 0, 0, 2006, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2014, 0, 0, 728, 727, 734, 724, 0, 1068, + 0, 142, 0, 0, 0, 0, 142, 731, 732, 0, + 733, 737, 0, 2070, 718, 0, 0, 0, 0, 0, + 3028, 3029, 0, 0, 742, 0, 0, 0, 722, 0, + 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1017, 0, 0, 0, 0, + 0, 988, 989, 983, 1125, 0, 0, 0, 984, 2030, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1148, 1152, 1154, 1156, 1158, + 1159, 1161, 0, 1166, 1162, 1163, 1164, 1165, 0, 1143, + 1144, 1145, 1146, 1123, 1124, 1149, 0, 1126, 0, 1128, + 1129, 1130, 1131, 1127, 1132, 1133, 1134, 1135, 1136, 1139, + 1141, 1137, 1138, 1147, 0, 0, 0, 0, 0, 0, + 0, 1151, 1153, 1155, 1157, 1160, 0, 0, 0, 0, + 0, 0, 0, 1997, 1999, 1996, 0, 0, 1993, 0, + 0, 0, 0, 2018, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2024, 0, 0, 0, 0, 0, + 2037, 1142, 2009, 0, 1992, 1998, 0, 0, 0, 0, + 0, 0, 0, 0, 2012, 2046, 0, 0, 2013, 2015, + 2017, 0, 2019, 2020, 2021, 2025, 2026, 2027, 2029, 2032, + 2033, 2034, 0, 0, 0, 0, 2040, 2007, 0, 2022, + 2031, 2023, 0, 0, 0, 0, 2041, 2042, 0, 0, + 0, 2001, 0, 0, 0, 0, 0, 0, 719, 721, + 720, 0, 0, 0, 0, 0, 0, 0, 0, 726, + 0, 0, 2006, 0, 0, 2038, 0, 0, 0, 0, + 0, 730, 0, 0, 0, 0, 0, 0, 745, 0, + 2014, 0, 0, 0, 0, 723, 0, 728, 727, 734, + 724, 0, 0, 0, 0, 0, 0, 0, 1994, 1995, + 731, 732, 0, 733, 737, 3220, 0, 718, 0, 0, + 0, 0, 0, 0, 0, 0, 2035, 742, 0, 0, + 0, 0, 3232, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2011, 0, 0, 0, 0, 2692, 2693, + 2010, 0, 0, 0, 0, 0, 0, 0, 2030, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 746, 2028, 0, 748, 0, 0, 0, + 0, 747, 0, 2016, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2044, 2043, 0, 142, + 0, 0, 0, 0, 0, 0, 142, 0, 0, 0, + 0, 0, 0, 725, 729, 735, 0, 736, 738, 0, + 0, 739, 740, 741, 0, 0, 743, 744, 0, 0, + 0, 0, 1997, 2863, 1996, 0, 0, 2862, 0, 0, + 0, 0, 2018, 0, 0, 0, 0, 0, 0, 2003, + 0, 0, 0, 2024, 0, 2070, 0, 0, 0, 0, + 2112, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2012, 2046, 0, 0, 2013, 2015, 2017, + 0, 2019, 2020, 2021, 2025, 2026, 2027, 2029, 2032, 2033, + 2034, 2039, 1150, 0, 2045, 0, 0, 0, 2022, 2031, + 2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2001, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 719, 721, 720, 0, 0, 0, 0, 0, 0, + 0, 0, 726, 0, 2038, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, + 0, 745, 0, 0, 0, 0, 0, 0, 723, 0, + 0, 0, 713, 0, 0, 0, 0, 1994, 1995, 0, + 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 722, 0, 0, 2035, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3384, 0, 0, 0, + 0, 0, 2011, 0, 0, 0, 0, 0, 0, 2010, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2028, 0, 0, 0, 0, 0, 0, + 0, 0, 2016, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2044, 2043, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 142, 0, 0, 0, 725, 729, 735, 0, + 736, 738, 0, 0, 739, 740, 741, 0, 0, 743, + 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2003, 0, + 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, + 0, 0, 0, 0, 0, 818, 0, 0, 0, 0, + 0, 0, 0, 0, 402, 0, 0, 533, 566, 555, + 639, 521, 0, 0, 0, 0, 0, 0, 770, 0, + 2039, 0, 337, 2045, 0, 370, 570, 552, 562, 553, + 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, + 514, 545, 546, 809, 569, 520, 435, 386, 587, 586, + 0, 0, 878, 886, 0, 0, 0, 0, 0, 0, + 0, 0, 874, 0, 0, 0, 0, 762, 0, 0, + 799, 854, 853, 786, 796, 0, 0, 310, 229, 515, + 635, 517, 516, 787, 0, 788, 792, 795, 791, 789, + 790, 0, 869, 0, 2112, 0, 0, 0, 0, 754, + 766, 0, 771, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 763, 764, 0, 0, + 0, 142, 819, 0, 765, 0, 0, 814, 793, 797, + 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, + 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, + 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, + 399, 794, 817, 821, 331, 892, 815, 469, 304, 0, + 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, + 376, 364, 341, 893, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, + 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 628, 812, 0, 632, 0, + 471, 0, 0, 876, 0, 0, 0, 441, 0, 0, + 367, 0, 0, 0, 816, 0, 424, 404, 889, 0, + 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, + 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, + 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, + 297, 408, 452, 3702, 348, 419, 380, 298, 379, 409, + 451, 450, 308, 478, 484, 485, 574, 0, 490, 661, + 662, 663, 499, 0, 414, 504, 505, 506, 508, 509, + 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, + 531, 358, 595, 1826, 1825, 1827, 483, 368, 369, 0, + 340, 339, 381, 417, 299, 346, 291, 292, 656, 873, + 400, 597, 630, 631, 522, 0, 888, 868, 870, 871, + 875, 879, 880, 881, 882, 883, 885, 887, 891, 655, + 0, 576, 591, 659, 590, 652, 406, 0, 428, 588, + 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, + 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, + 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, + 890, 557, 534, 560, 475, 537, 536, 0, 0, 571, + 820, 572, 573, 390, 391, 392, 393, 877, 598, 315, + 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 564, 561, 664, 0, 621, 622, 0, + 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, + 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, + 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, + 312, 463, 434, 378, 551, 578, 899, 872, 898, 900, + 901, 897, 902, 903, 884, 775, 0, 827, 895, 894, + 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, + 0, 0, 548, 449, 324, 285, 320, 321, 328, 653, + 650, 454, 654, 782, 293, 528, 371, 0, 415, 344, + 593, 594, 0, 645, 861, 834, 835, 836, 772, 837, + 831, 832, 773, 833, 862, 825, 858, 859, 801, 828, + 838, 857, 839, 860, 863, 864, 904, 905, 845, 829, + 257, 906, 842, 865, 856, 855, 840, 826, 866, 867, + 808, 803, 843, 844, 830, 849, 850, 851, 774, 822, + 823, 824, 846, 847, 804, 805, 806, 807, 0, 0, + 0, 479, 480, 481, 503, 0, 465, 527, 651, 0, + 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, + 633, 634, 636, 638, 852, 640, 439, 440, 0, 848, + 643, 644, 641, 375, 426, 445, 433, 818, 657, 518, + 519, 658, 629, 0, 767, 0, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, + 770, 0, 0, 0, 337, 1877, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 809, 569, 520, 435, 386, + 587, 586, 0, 0, 878, 886, 0, 0, 0, 0, + 0, 0, 0, 0, 874, 0, 2096, 0, 0, 762, + 0, 0, 799, 854, 853, 786, 796, 0, 0, 310, + 229, 515, 635, 517, 516, 787, 0, 788, 792, 795, + 791, 789, 790, 0, 869, 0, 0, 0, 0, 0, + 0, 754, 766, 0, 771, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 763, 764, + 0, 0, 0, 0, 819, 0, 765, 0, 0, 2097, + 793, 797, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 794, 817, 821, 331, 892, 815, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 893, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 628, 812, 0, + 632, 0, 471, 0, 0, 876, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 816, 0, 424, 404, + 889, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 873, 400, 597, 630, 631, 522, 0, 888, 868, + 870, 871, 875, 879, 880, 881, 882, 883, 885, 887, + 891, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 890, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 820, 572, 573, 390, 391, 392, 393, 877, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 899, 872, + 898, 900, 901, 897, 902, 903, 884, 775, 0, 827, + 895, 894, 896, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 782, 293, 528, 371, 0, + 415, 344, 593, 594, 0, 645, 861, 834, 835, 836, + 772, 837, 831, 832, 773, 833, 862, 825, 858, 859, + 801, 828, 838, 857, 839, 860, 863, 864, 904, 905, + 845, 829, 257, 906, 842, 865, 856, 855, 840, 826, + 866, 867, 808, 803, 843, 844, 830, 849, 850, 851, + 774, 822, 823, 824, 846, 847, 804, 805, 806, 807, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 852, 640, 439, 440, + 0, 848, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 0, 767, 206, 818, 0, + 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 770, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 1296, 569, 520, 435, + 386, 587, 586, 0, 0, 878, 886, 0, 0, 0, + 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, + 762, 0, 0, 799, 854, 853, 786, 796, 0, 0, + 310, 229, 515, 635, 517, 516, 787, 0, 788, 792, + 795, 791, 789, 790, 0, 869, 0, 0, 0, 0, + 0, 0, 754, 766, 0, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, + 764, 0, 0, 0, 0, 819, 0, 765, 0, 0, + 814, 793, 797, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 794, 817, 821, 331, 892, 815, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 893, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 812, + 0, 632, 0, 471, 0, 0, 876, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 816, 0, 424, + 404, 889, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 873, 400, 597, 630, 631, 522, 0, 888, + 868, 870, 871, 875, 879, 880, 881, 882, 883, 885, + 887, 891, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 890, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 820, 572, 573, 390, 391, 392, 393, + 877, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 899, + 872, 898, 900, 901, 897, 902, 903, 884, 775, 0, + 827, 895, 894, 896, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 782, 293, 528, 371, + 169, 415, 344, 593, 594, 0, 645, 861, 834, 835, + 836, 772, 837, 831, 832, 773, 833, 862, 825, 858, + 859, 801, 828, 838, 857, 839, 860, 863, 864, 904, + 905, 845, 829, 257, 906, 842, 865, 856, 855, 840, + 826, 866, 867, 808, 803, 843, 844, 830, 849, 850, + 851, 774, 822, 823, 824, 846, 847, 804, 805, 806, + 807, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 852, 640, 439, + 440, 0, 848, 643, 644, 641, 375, 426, 445, 433, + 818, 657, 518, 519, 658, 629, 0, 767, 0, 402, + 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, + 0, 0, 0, 770, 0, 0, 0, 337, 4121, 0, + 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, + 541, 542, 543, 513, 544, 514, 545, 546, 809, 569, + 520, 435, 386, 587, 586, 0, 0, 878, 886, 0, + 0, 0, 0, 0, 0, 0, 0, 874, 0, 0, + 0, 0, 762, 0, 0, 799, 854, 853, 786, 796, + 0, 0, 310, 229, 515, 635, 517, 516, 787, 0, + 788, 792, 795, 791, 789, 790, 0, 869, 0, 0, + 0, 0, 0, 0, 754, 766, 0, 771, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 763, 764, 0, 0, 0, 0, 819, 0, 765, + 0, 0, 814, 793, 797, 0, 0, 0, 0, 300, + 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, + 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, + 0, 421, 335, 351, 332, 399, 794, 817, 821, 331, + 892, 815, 469, 304, 0, 468, 398, 455, 460, 384, + 377, 0, 303, 457, 382, 376, 364, 341, 893, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 628, 812, 0, 632, 0, 471, 0, 0, 876, 0, + 0, 0, 441, 0, 0, 367, 0, 0, 0, 816, + 0, 424, 404, 889, 0, 0, 422, 372, 456, 412, + 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, + 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, + 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, + 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, + 485, 574, 0, 490, 661, 662, 663, 499, 0, 414, + 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, + 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, + 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, + 346, 291, 292, 656, 873, 400, 597, 630, 631, 522, + 0, 888, 868, 870, 871, 875, 879, 880, 881, 882, + 883, 885, 887, 891, 655, 0, 576, 591, 659, 590, + 652, 406, 0, 428, 588, 535, 0, 580, 554, 0, + 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, + 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, + 617, 618, 619, 620, 613, 890, 557, 534, 560, 475, + 537, 536, 0, 0, 571, 820, 572, 573, 390, 391, + 392, 393, 877, 598, 315, 494, 416, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, + 664, 0, 621, 622, 0, 0, 488, 489, 345, 352, + 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, + 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, + 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, + 578, 899, 872, 898, 900, 901, 897, 902, 903, 884, + 775, 0, 827, 895, 894, 896, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, + 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, + 285, 320, 321, 328, 653, 650, 454, 654, 782, 293, + 528, 371, 0, 415, 344, 593, 594, 0, 645, 861, + 834, 835, 836, 772, 837, 831, 832, 773, 833, 862, + 825, 858, 859, 801, 828, 838, 857, 839, 860, 863, + 864, 904, 905, 845, 829, 257, 906, 842, 865, 856, + 855, 840, 826, 866, 867, 808, 803, 843, 844, 830, + 849, 850, 851, 774, 822, 823, 824, 846, 847, 804, + 805, 806, 807, 0, 0, 0, 479, 480, 481, 503, + 0, 465, 527, 651, 0, 0, 0, 0, 0, 0, + 0, 577, 589, 623, 0, 633, 634, 636, 638, 852, + 640, 439, 440, 0, 848, 643, 644, 641, 375, 426, + 445, 433, 818, 657, 518, 519, 658, 629, 0, 767, + 0, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 770, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 809, 569, 520, 435, 386, 587, 586, 0, 0, 878, + 886, 0, 0, 0, 0, 0, 0, 0, 0, 874, + 0, 0, 0, 0, 762, 0, 0, 799, 854, 853, + 786, 796, 0, 0, 310, 229, 515, 635, 517, 516, + 787, 0, 788, 792, 795, 791, 789, 790, 0, 869, + 0, 0, 0, 0, 0, 0, 754, 766, 0, 771, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 763, 764, 0, 0, 0, 0, 819, + 0, 765, 0, 0, 814, 793, 797, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 794, 817, + 821, 331, 892, 815, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 893, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 812, 0, 632, 0, 471, 0, 0, + 876, 0, 0, 0, 441, 0, 0, 367, 0, 0, + 0, 816, 0, 424, 404, 889, 3999, 0, 422, 372, + 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 0, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 873, 400, 597, 630, + 631, 522, 0, 888, 868, 870, 871, 875, 879, 880, + 881, 882, 883, 885, 887, 891, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 890, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 820, 572, 573, + 390, 391, 392, 393, 877, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 899, 872, 898, 900, 901, 897, 902, + 903, 884, 775, 0, 827, 895, 894, 896, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 782, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 861, 834, 835, 836, 772, 837, 831, 832, 773, + 833, 862, 825, 858, 859, 801, 828, 838, 857, 839, + 860, 863, 864, 904, 905, 845, 829, 257, 906, 842, + 865, 856, 855, 840, 826, 866, 867, 808, 803, 843, + 844, 830, 849, 850, 851, 774, 822, 823, 824, 846, + 847, 804, 805, 806, 807, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 852, 640, 439, 440, 0, 848, 643, 644, 641, + 375, 426, 445, 433, 818, 657, 518, 519, 658, 629, + 0, 767, 0, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 770, 0, 0, + 0, 337, 1877, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 809, 569, 520, 435, 386, 587, 586, 0, + 0, 878, 886, 0, 0, 0, 0, 0, 0, 0, + 0, 874, 0, 0, 0, 0, 762, 0, 0, 799, + 854, 853, 786, 796, 0, 0, 310, 229, 515, 635, + 517, 516, 787, 0, 788, 792, 795, 791, 789, 790, + 0, 869, 0, 0, 0, 0, 0, 0, 754, 766, + 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 763, 764, 0, 0, 0, + 0, 819, 0, 765, 0, 0, 814, 793, 797, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 794, 817, 821, 331, 892, 815, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 893, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 812, 0, 632, 0, 471, + 0, 0, 876, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 816, 0, 424, 404, 889, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 873, 400, + 597, 630, 631, 522, 0, 888, 868, 870, 871, 875, + 879, 880, 881, 882, 883, 885, 887, 891, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 890, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 820, + 572, 573, 390, 391, 392, 393, 877, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 899, 872, 898, 900, 901, + 897, 902, 903, 884, 775, 0, 827, 895, 894, 896, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 782, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 861, 834, 835, 836, 772, 837, 831, + 832, 773, 833, 862, 825, 858, 859, 801, 828, 838, + 857, 839, 860, 863, 864, 904, 905, 845, 829, 257, + 906, 842, 865, 856, 855, 840, 826, 866, 867, 808, + 803, 843, 844, 830, 849, 850, 851, 774, 822, 823, + 824, 846, 847, 804, 805, 806, 807, 0, 0, 0, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 852, 640, 439, 440, 0, 848, 643, + 644, 641, 375, 426, 445, 433, 818, 657, 518, 519, + 658, 629, 0, 767, 0, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 770, + 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 809, 569, 520, 435, 386, 587, + 586, 0, 0, 878, 886, 0, 0, 0, 0, 0, + 0, 0, 0, 874, 0, 0, 0, 0, 762, 0, + 0, 799, 854, 853, 786, 796, 0, 0, 310, 229, + 515, 635, 517, 516, 787, 0, 788, 792, 795, 791, + 789, 790, 0, 869, 0, 0, 0, 0, 0, 0, + 754, 766, 0, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 763, 764, 1591, + 0, 0, 0, 819, 0, 765, 0, 0, 814, 793, + 797, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 794, 817, 821, 331, 892, 815, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 893, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 812, 0, 632, + 0, 471, 0, 0, 876, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 816, 0, 424, 404, 889, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 873, 400, 597, 630, 631, 522, 0, 888, 868, 870, + 871, 875, 879, 880, 881, 882, 883, 885, 887, 891, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 890, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 820, 572, 573, 390, 391, 392, 393, 877, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 899, 872, 898, + 900, 901, 897, 902, 903, 884, 775, 0, 827, 895, + 894, 896, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 782, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 861, 834, 835, 836, 772, + 837, 831, 832, 773, 833, 862, 825, 858, 859, 801, + 828, 838, 857, 839, 860, 863, 864, 904, 905, 845, + 829, 257, 906, 842, 865, 856, 855, 840, 826, 866, + 867, 808, 803, 843, 844, 830, 849, 850, 851, 774, + 822, 823, 824, 846, 847, 804, 805, 806, 807, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 852, 640, 439, 440, 0, + 848, 643, 644, 641, 375, 426, 445, 433, 0, 657, + 518, 519, 658, 629, 818, 767, 0, 2269, 0, 0, + 0, 0, 0, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 770, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 809, 569, 520, 435, 386, 587, 586, 0, + 0, 878, 886, 0, 0, 0, 0, 0, 0, 0, + 0, 874, 0, 0, 0, 0, 762, 0, 0, 799, + 854, 853, 786, 796, 0, 0, 310, 229, 515, 635, + 517, 516, 787, 0, 788, 792, 795, 791, 789, 790, + 0, 869, 0, 0, 0, 0, 0, 0, 754, 766, + 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 763, 764, 0, 0, 0, + 0, 819, 0, 765, 0, 0, 814, 793, 797, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 794, 817, 821, 331, 892, 815, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 893, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 812, 0, 632, 0, 471, + 0, 0, 876, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 816, 0, 424, 404, 889, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 873, 400, + 597, 630, 631, 522, 0, 888, 868, 870, 871, 875, + 879, 880, 881, 882, 883, 885, 887, 891, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 890, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 820, + 572, 573, 390, 391, 392, 393, 877, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 899, 872, 898, 900, 901, + 897, 902, 903, 884, 775, 0, 827, 895, 894, 896, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 782, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 861, 834, 835, 836, 772, 837, 831, + 832, 773, 833, 862, 825, 858, 859, 801, 828, 838, + 857, 839, 860, 863, 864, 904, 905, 845, 829, 257, + 906, 842, 865, 856, 855, 840, 826, 866, 867, 808, + 803, 843, 844, 830, 849, 850, 851, 774, 822, 823, + 824, 846, 847, 804, 805, 806, 807, 0, 0, 0, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 852, 640, 439, 440, 0, 848, 643, + 644, 641, 375, 426, 445, 433, 818, 657, 518, 519, + 658, 629, 0, 767, 0, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 770, + 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 809, 569, 520, 435, 386, 587, + 586, 0, 0, 878, 886, 0, 0, 0, 0, 0, + 0, 0, 0, 874, 0, 0, 0, 0, 762, 0, + 0, 799, 854, 853, 786, 796, 0, 0, 310, 229, + 515, 635, 517, 516, 787, 0, 788, 792, 795, 791, + 789, 790, 0, 869, 0, 0, 0, 0, 0, 0, + 754, 766, 0, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 763, 764, 1870, + 0, 0, 0, 819, 0, 765, 0, 0, 814, 793, + 797, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 794, 817, 821, 331, 892, 815, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 893, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 812, 0, 632, + 0, 471, 0, 0, 876, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 816, 0, 424, 404, 889, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 873, 400, 597, 630, 631, 522, 0, 888, 868, 870, + 871, 875, 879, 880, 881, 882, 883, 885, 887, 891, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 890, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 820, 572, 573, 390, 391, 392, 393, 877, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 899, 872, 898, + 900, 901, 897, 902, 903, 884, 775, 0, 827, 895, + 894, 896, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 782, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 861, 834, 835, 836, 772, + 837, 831, 832, 773, 833, 862, 825, 858, 859, 801, + 828, 838, 857, 839, 860, 863, 864, 904, 905, 845, + 829, 257, 906, 842, 865, 856, 855, 840, 826, 866, + 867, 808, 803, 843, 844, 830, 849, 850, 851, 774, + 822, 823, 824, 846, 847, 804, 805, 806, 807, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 852, 640, 439, 440, 0, + 848, 643, 644, 641, 375, 426, 445, 433, 818, 657, + 518, 519, 658, 629, 0, 767, 0, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 770, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 809, 569, 520, 435, + 386, 587, 586, 0, 0, 878, 886, 0, 0, 0, + 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, + 762, 0, 0, 799, 854, 853, 786, 796, 0, 0, + 310, 229, 515, 635, 517, 516, 787, 0, 788, 792, + 795, 791, 789, 790, 0, 869, 0, 0, 0, 0, + 0, 0, 754, 766, 0, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, + 764, 0, 0, 0, 0, 819, 0, 765, 0, 0, + 814, 793, 797, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 794, 817, 821, 331, 892, 815, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 893, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 812, + 0, 632, 0, 471, 0, 0, 876, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 816, 0, 424, + 404, 889, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 873, 400, 597, 630, 631, 522, 0, 888, + 868, 870, 871, 875, 879, 880, 881, 882, 883, 885, + 887, 891, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 890, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 820, 572, 573, 390, 391, 392, 393, + 877, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 899, + 872, 898, 900, 901, 897, 902, 903, 884, 775, 0, + 827, 895, 894, 896, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 782, 293, 528, 371, + 0, 415, 344, 593, 594, 0, 645, 861, 834, 835, + 836, 772, 837, 831, 832, 773, 833, 862, 825, 858, + 859, 801, 828, 838, 857, 839, 860, 863, 864, 904, + 905, 845, 829, 257, 906, 842, 865, 856, 855, 840, + 826, 866, 867, 808, 803, 843, 844, 830, 849, 850, + 851, 774, 822, 823, 824, 846, 847, 804, 805, 806, + 807, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 852, 640, 439, + 440, 0, 848, 643, 644, 641, 375, 426, 445, 433, + 818, 657, 518, 519, 658, 629, 0, 767, 0, 402, + 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, + 0, 0, 0, 770, 0, 0, 0, 337, 0, 0, + 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, + 541, 542, 543, 513, 544, 514, 545, 546, 809, 569, + 520, 435, 386, 587, 586, 0, 0, 878, 886, 0, + 0, 0, 0, 0, 0, 0, 0, 874, 0, 0, + 0, 0, 762, 0, 0, 799, 854, 853, 786, 796, + 0, 0, 310, 229, 515, 635, 517, 516, 787, 0, + 788, 792, 795, 791, 789, 790, 0, 869, 0, 0, + 0, 0, 0, 0, 754, 766, 0, 771, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 763, 764, 0, 0, 0, 0, 819, 0, 765, + 0, 0, 814, 793, 797, 0, 0, 0, 0, 300, + 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, + 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, + 0, 421, 335, 351, 332, 399, 794, 817, 821, 331, + 892, 815, 469, 304, 0, 468, 398, 455, 460, 384, + 377, 0, 303, 457, 382, 376, 364, 341, 893, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 628, 812, 0, 632, 0, 471, 0, 0, 876, 0, + 0, 0, 441, 0, 0, 367, 0, 0, 0, 816, + 0, 424, 404, 889, 0, 0, 422, 372, 456, 412, + 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, + 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, + 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, + 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, + 485, 574, 0, 490, 661, 662, 663, 499, 0, 414, + 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, + 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, + 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, + 346, 291, 292, 656, 873, 400, 597, 630, 631, 522, + 0, 888, 868, 870, 871, 875, 879, 880, 881, 882, + 883, 885, 887, 891, 655, 0, 576, 591, 659, 590, + 652, 406, 0, 428, 588, 535, 0, 580, 554, 0, + 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, + 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, + 617, 618, 619, 620, 613, 890, 557, 534, 560, 475, + 537, 536, 0, 0, 571, 820, 572, 573, 390, 391, + 392, 393, 877, 598, 315, 494, 416, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, + 664, 0, 621, 622, 0, 0, 488, 489, 345, 352, + 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, + 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, + 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, + 578, 899, 872, 898, 900, 901, 897, 902, 903, 884, + 775, 0, 827, 895, 894, 896, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, + 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, + 285, 320, 321, 328, 653, 650, 454, 654, 782, 293, + 528, 371, 0, 415, 344, 593, 594, 0, 645, 861, + 834, 835, 836, 772, 837, 831, 832, 773, 833, 862, + 825, 858, 859, 801, 828, 838, 857, 839, 860, 863, + 864, 904, 905, 845, 829, 257, 906, 842, 865, 856, + 855, 840, 826, 866, 867, 808, 803, 843, 844, 830, + 849, 850, 851, 774, 822, 823, 824, 846, 847, 804, + 805, 806, 807, 0, 0, 0, 479, 480, 481, 503, + 0, 465, 527, 651, 0, 0, 0, 0, 0, 0, + 0, 577, 589, 623, 0, 633, 634, 636, 638, 852, + 640, 439, 440, 0, 3567, 643, 3568, 3569, 375, 426, + 445, 433, 818, 657, 518, 519, 658, 629, 0, 767, + 0, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 770, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 809, 569, 520, 435, 386, 587, 586, 0, 0, 878, + 886, 0, 0, 0, 0, 0, 0, 0, 0, 874, + 0, 0, 0, 0, 762, 0, 0, 799, 854, 853, + 786, 796, 0, 0, 310, 229, 515, 635, 517, 516, + 2749, 0, 2750, 792, 795, 791, 789, 790, 0, 869, + 0, 0, 0, 0, 0, 0, 754, 766, 0, 771, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 763, 764, 0, 0, 0, 0, 819, + 0, 765, 0, 0, 814, 793, 797, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 794, 817, + 821, 331, 892, 815, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 893, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 812, 0, 632, 0, 471, 0, 0, + 876, 0, 0, 0, 441, 0, 0, 367, 0, 0, + 0, 816, 0, 424, 404, 889, 0, 0, 422, 372, + 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 0, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 873, 400, 597, 630, + 631, 522, 0, 888, 868, 870, 871, 875, 879, 880, + 881, 882, 883, 885, 887, 891, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 890, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 820, 572, 573, + 390, 391, 392, 393, 877, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 899, 872, 898, 900, 901, 897, 902, + 903, 884, 775, 0, 827, 895, 894, 896, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 782, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 861, 834, 835, 836, 772, 837, 831, 832, 773, + 833, 862, 825, 858, 859, 801, 828, 838, 857, 839, + 860, 863, 864, 904, 905, 845, 829, 257, 906, 842, + 865, 856, 855, 840, 826, 866, 867, 808, 803, 843, + 844, 830, 849, 850, 851, 774, 822, 823, 824, 846, + 847, 804, 805, 806, 807, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 852, 640, 439, 440, 0, 848, 643, 644, 641, + 375, 426, 445, 433, 818, 657, 518, 519, 658, 629, + 0, 767, 0, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 1735, 0, 0, 0, 770, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 809, 569, 520, 435, 386, 587, 586, 0, + 0, 878, 886, 0, 0, 0, 0, 0, 0, 0, + 0, 874, 0, 0, 0, 0, 762, 0, 0, 799, + 854, 853, 786, 796, 0, 0, 310, 229, 515, 635, + 517, 516, 787, 0, 788, 792, 795, 791, 789, 790, + 0, 869, 0, 0, 0, 0, 0, 0, 0, 766, + 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 763, 764, 0, 0, 0, + 0, 819, 0, 765, 0, 0, 814, 793, 797, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 794, 817, 821, 331, 892, 815, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 893, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 812, 0, 632, 0, 471, + 0, 0, 876, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 816, 0, 424, 404, 889, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 1736, 1737, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 873, 400, + 597, 630, 631, 522, 0, 888, 868, 870, 871, 875, + 879, 880, 881, 882, 883, 885, 887, 891, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 890, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 820, + 572, 573, 390, 391, 392, 393, 877, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 899, 872, 898, 900, 901, + 897, 902, 903, 884, 775, 0, 827, 895, 894, 896, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 782, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 861, 834, 835, 836, 772, 837, 831, + 832, 773, 833, 862, 825, 858, 859, 801, 828, 838, + 857, 839, 860, 863, 864, 904, 905, 845, 829, 257, + 906, 842, 865, 856, 855, 840, 826, 866, 867, 808, + 803, 843, 844, 830, 849, 850, 851, 774, 822, 823, + 824, 846, 847, 804, 805, 806, 807, 0, 0, 0, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 852, 640, 439, 440, 0, 848, 643, + 644, 641, 375, 426, 445, 433, 818, 657, 518, 519, + 658, 629, 0, 767, 0, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 770, + 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 809, 569, 520, 435, 386, 587, + 586, 0, 0, 878, 886, 0, 0, 0, 0, 0, + 0, 0, 0, 874, 0, 0, 0, 0, 762, 0, + 0, 799, 854, 853, 786, 796, 0, 0, 310, 229, + 515, 635, 517, 516, 787, 0, 788, 792, 795, 791, + 789, 790, 0, 869, 0, 0, 0, 0, 0, 0, + 0, 766, 0, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 763, 764, 0, + 0, 0, 0, 819, 0, 765, 0, 0, 814, 793, + 797, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 794, 817, 821, 331, 892, 815, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 893, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 812, 0, 632, + 0, 471, 0, 0, 876, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 816, 0, 424, 404, 889, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 873, 400, 597, 630, 631, 522, 0, 888, 868, 870, + 871, 875, 879, 880, 881, 882, 883, 885, 887, 891, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 890, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 820, 572, 573, 390, 391, 392, 393, 877, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 899, 872, 898, + 900, 901, 897, 902, 903, 884, 775, 0, 827, 895, + 894, 896, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 782, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 861, 834, 835, 836, 772, + 837, 831, 832, 773, 833, 862, 825, 858, 859, 801, + 828, 838, 857, 839, 860, 863, 864, 904, 905, 845, + 829, 257, 906, 842, 865, 856, 855, 840, 826, 866, + 867, 808, 803, 843, 844, 830, 849, 850, 851, 774, + 822, 823, 824, 846, 847, 804, 805, 806, 807, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 852, 640, 439, 440, 0, + 848, 643, 644, 641, 375, 426, 445, 433, 818, 657, + 518, 519, 658, 629, 0, 767, 0, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 770, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 809, 569, 520, 435, + 386, 587, 586, 0, 0, 878, 886, 0, 0, 0, + 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, + 0, 0, 0, 799, 854, 853, 786, 796, 0, 0, + 310, 229, 515, 635, 517, 516, 787, 0, 788, 792, + 795, 791, 789, 790, 0, 869, 0, 0, 0, 0, + 0, 0, 754, 766, 0, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, + 764, 0, 0, 0, 0, 819, 0, 765, 0, 0, + 814, 793, 797, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 794, 817, 821, 331, 892, 815, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 893, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 812, + 0, 632, 0, 471, 0, 0, 876, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 816, 0, 424, + 404, 889, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 873, 400, 597, 630, 631, 522, 0, 888, + 868, 870, 871, 875, 879, 880, 881, 882, 883, 885, + 887, 891, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 890, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 820, 572, 573, 390, 391, 392, 393, + 877, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 899, + 872, 898, 900, 901, 897, 902, 903, 884, 775, 0, + 827, 895, 894, 896, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 782, 293, 528, 371, + 0, 415, 344, 593, 594, 0, 645, 861, 834, 835, + 836, 772, 837, 831, 832, 773, 833, 862, 825, 858, + 859, 801, 828, 838, 857, 839, 860, 863, 864, 904, + 905, 845, 829, 257, 906, 842, 865, 856, 855, 840, + 826, 866, 867, 808, 803, 843, 844, 830, 849, 850, + 851, 774, 822, 823, 824, 846, 847, 804, 805, 806, + 807, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 852, 640, 439, + 440, 0, 848, 643, 644, 641, 375, 426, 445, 433, + 0, 657, 518, 519, 658, 629, 0, 767, 206, 64, + 197, 168, 0, 0, 0, 0, 0, 0, 402, 0, + 0, 533, 566, 555, 639, 521, 0, 198, 0, 0, + 0, 0, 0, 0, 189, 0, 337, 0, 199, 370, + 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, + 542, 543, 513, 544, 514, 545, 546, 140, 569, 520, + 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, + 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, + 0, 202, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, + 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, + 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, + 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, + 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, + 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, + 0, 0, 167, 195, 204, 196, 124, 0, 0, 628, + 0, 0, 632, 0, 471, 0, 0, 221, 0, 0, + 0, 441, 0, 0, 367, 194, 188, 187, 487, 0, + 424, 404, 233, 0, 0, 422, 372, 456, 412, 462, + 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, + 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, + 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, + 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, + 574, 0, 490, 607, 608, 609, 499, 0, 414, 504, + 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, + 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, + 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, + 291, 292, 466, 330, 400, 597, 630, 631, 522, 0, + 584, 523, 532, 322, 556, 568, 567, 396, 482, 224, + 579, 582, 512, 234, 0, 576, 591, 549, 590, 235, + 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, + 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, + 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, + 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, + 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, + 393, 350, 598, 315, 494, 416, 138, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 563, 564, 561, 232, + 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, + 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, + 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, + 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, + 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, + 320, 321, 328, 239, 305, 454, 240, 0, 293, 528, + 371, 169, 415, 344, 593, 594, 61, 645, 241, 242, + 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, + 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, + 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, + 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, + 465, 527, 236, 45, 222, 225, 227, 226, 0, 62, + 577, 589, 623, 5, 633, 634, 636, 638, 637, 640, + 439, 440, 0, 642, 643, 644, 641, 375, 426, 445, + 433, 143, 237, 518, 519, 238, 629, 206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 140, 569, 520, 435, + 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 313, 2423, 2426, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, + 0, 632, 2427, 471, 0, 0, 0, 2422, 0, 2421, + 441, 2419, 2424, 367, 0, 0, 0, 487, 0, 424, + 404, 660, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 2425, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 330, 400, 597, 630, 631, 522, 0, 584, + 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, + 582, 512, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, + 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 0, 293, 528, 371, + 169, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 1556, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 1554, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1552, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, + 440, 0, 642, 643, 644, 641, 375, 426, 445, 433, + 0, 657, 518, 519, 658, 629, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, + 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1332, + 0, 0, 228, 0, 0, 786, 796, 0, 0, 310, + 229, 515, 635, 517, 516, 787, 0, 788, 792, 795, + 791, 789, 790, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 793, 0, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 794, 458, 486, 331, 477, 0, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, + 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, + 660, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 330, 400, 597, 630, 631, 522, 0, 584, 523, + 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, + 512, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 0, 293, 528, 371, 0, + 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, + 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 206, 64, 197, 168, 0, + 0, 0, 0, 0, 0, 402, 683, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 690, 0, 0, 0, 0, 0, 0, 0, 689, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 310, 229, + 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 687, 688, 0, 628, 0, 0, 632, + 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 487, 0, 424, 404, 660, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, + 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 491, 572, 573, 390, 391, 392, 393, 684, 686, + 315, 494, 416, 698, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 0, 0, 280, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 0, 293, 528, 371, 169, 415, + 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 1550, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 1554, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1552, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 637, 640, 439, 440, 0, + 642, 643, 644, 641, 375, 426, 445, 433, 0, 657, + 518, 519, 658, 629, 402, 0, 0, 533, 566, 555, + 639, 521, 0, 1140, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, + 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, + 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, + 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1125, 0, 0, + 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, + 316, 438, 453, 306, 401, 427, 0, 0, 2587, 2590, + 2591, 2592, 2593, 2594, 2595, 0, 2600, 2596, 2597, 2598, + 2599, 0, 2582, 2583, 2584, 2585, 1123, 2566, 2588, 0, + 2567, 398, 2568, 2569, 2570, 2571, 1127, 2572, 2573, 2574, + 2575, 2576, 2579, 2580, 2577, 2578, 2586, 410, 374, 411, + 356, 388, 387, 389, 1151, 1153, 1155, 1157, 1160, 497, + 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, + 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 367, 0, 0, 0, 2581, 0, 424, 404, 660, 0, + 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, + 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, + 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, + 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, + 451, 450, 308, 478, 484, 485, 574, 0, 490, 661, + 662, 663, 499, 0, 414, 504, 505, 506, 508, 509, + 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, + 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, + 340, 339, 381, 417, 299, 346, 291, 292, 656, 330, + 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, + 556, 568, 567, 396, 482, 0, 579, 582, 512, 655, + 0, 576, 591, 659, 590, 652, 406, 0, 428, 588, + 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, + 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, + 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, + 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, + 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, + 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 564, 561, 664, 0, 621, 622, 0, + 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, + 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, + 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, + 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, + 0, 0, 548, 449, 324, 285, 320, 321, 328, 653, + 650, 454, 654, 0, 293, 2589, 371, 0, 415, 344, + 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 479, 480, 481, 503, 0, 465, 527, 651, 0, + 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, + 633, 634, 636, 638, 637, 640, 439, 440, 0, 642, + 643, 644, 641, 375, 426, 445, 433, 0, 657, 518, + 519, 658, 629, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, + 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 2423, 2426, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 0, 0, 632, 2427, 471, + 0, 0, 0, 2422, 0, 2421, 441, 2419, 2424, 367, + 0, 0, 0, 487, 0, 424, 404, 660, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 2425, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 330, 400, + 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, + 568, 567, 396, 482, 0, 579, 582, 512, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, + 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 0, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4066, 0, 228, 853, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 1554, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1552, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 2487, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 637, 640, 439, 440, 0, 642, 643, + 644, 641, 375, 426, 445, 433, 0, 657, 518, 519, + 658, 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 979, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 1554, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1764, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 2527, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 2529, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 2135, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, + 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, + 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, + 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 2136, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, + 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 2444, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, + 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, + 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, + 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, + 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, + 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, + 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 628, 0, 0, 632, 2443, 471, 0, + 0, 0, 2449, 2446, 2448, 441, 0, 2447, 367, 0, + 0, 0, 487, 0, 424, 404, 660, 0, 2441, 422, + 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, + 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, + 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, + 308, 478, 484, 485, 574, 0, 490, 661, 662, 663, + 499, 0, 414, 504, 505, 506, 508, 509, 510, 511, + 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, + 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, + 381, 417, 299, 346, 291, 292, 656, 330, 400, 597, + 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, + 567, 396, 482, 0, 579, 582, 512, 655, 0, 576, + 591, 659, 590, 652, 406, 0, 428, 588, 535, 0, + 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, + 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, + 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, + 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, + 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, + 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 564, 561, 664, 0, 621, 622, 0, 0, 488, + 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, + 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, + 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, + 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, + 548, 449, 324, 285, 320, 321, 328, 653, 650, 454, + 654, 0, 293, 528, 371, 0, 415, 344, 593, 594, + 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, + 480, 481, 503, 0, 465, 527, 651, 0, 0, 0, + 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, + 636, 638, 637, 640, 439, 440, 0, 642, 643, 644, + 641, 375, 426, 445, 433, 0, 657, 518, 519, 658, + 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 310, 229, 515, 635, 517, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 2444, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, + 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 0, 0, 632, 2443, 471, 0, 0, + 0, 2449, 2446, 2448, 441, 0, 2447, 367, 0, 0, + 0, 487, 0, 424, 404, 660, 0, 0, 422, 372, + 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 0, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 330, 400, 597, 630, + 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, + 396, 482, 0, 579, 582, 512, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, + 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 3196, - 3198, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 2550, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 1554, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 670, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 669, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 853, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 637, 640, 439, 440, 0, 642, 643, 644, 641, + 375, 426, 445, 433, 0, 657, 518, 519, 658, 629, + 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, + 0, 0, 0, 2136, 0, 0, 0, 0, 337, 0, + 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, + 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, + 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 2137, + 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 1261, 1262, 1263, 1260, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, + 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, + 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, + 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, + 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, + 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, + 487, 0, 424, 404, 660, 0, 0, 422, 372, 456, + 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, + 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, + 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, + 484, 485, 574, 0, 490, 661, 662, 663, 499, 0, + 414, 504, 505, 506, 508, 509, 510, 511, 575, 592, + 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, + 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, + 299, 346, 291, 292, 656, 330, 400, 597, 630, 631, + 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, + 482, 0, 579, 582, 512, 655, 0, 576, 591, 659, + 590, 652, 406, 0, 428, 588, 535, 0, 580, 554, + 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, + 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, + 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, + 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, + 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, + 561, 664, 0, 621, 622, 0, 0, 488, 489, 345, + 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, + 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, + 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, + 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, + 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, + 324, 285, 320, 321, 328, 653, 650, 454, 654, 0, + 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, + 503, 0, 465, 527, 651, 0, 0, 0, 0, 0, + 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, + 637, 640, 439, 440, 0, 642, 643, 644, 641, 375, + 426, 445, 433, 206, 657, 518, 519, 658, 629, 0, + 0, 0, 0, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 140, 569, 520, 435, 386, 587, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 202, 2186, 0, 228, + 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, + 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, + 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 487, 0, 424, 404, 660, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 330, 400, + 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, + 568, 567, 396, 482, 0, 579, 582, 512, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, + 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 0, 293, 528, 371, 169, 415, 344, 593, + 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4043, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 3802, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 3936, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1778, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 637, 640, 439, 440, 0, 642, 643, + 644, 641, 375, 426, 445, 433, 206, 657, 518, 519, + 658, 629, 0, 0, 0, 0, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 140, 569, 520, 435, 386, + 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, + 2171, 0, 228, 0, 0, 0, 0, 0, 0, 310, + 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, + 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, + 660, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 330, 400, 597, 630, 631, 522, 0, 584, 523, + 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, + 512, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 0, 293, 528, 371, 169, + 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, + 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 337, 1051, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 1058, 1059, 0, 0, 0, 0, 310, 229, + 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1062, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 442, 1045, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 0, 458, 486, 331, 477, 1032, 469, 304, + 1031, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, + 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 487, 0, 424, 404, 660, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 1049, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, + 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 1050, + 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 1053, 572, 573, 390, 391, 392, 393, 350, 598, + 1048, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 1060, 1046, 1056, 1047, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 1057, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 0, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3817, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 3728, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 3228, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3246, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 637, 640, 439, 440, 0, + 642, 643, 644, 641, 1044, 426, 445, 433, 206, 657, + 518, 519, 658, 629, 0, 0, 0, 0, 402, 0, + 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, + 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, + 542, 543, 513, 544, 514, 545, 546, 140, 569, 520, + 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2068, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, + 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, + 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, + 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, + 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, + 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, + 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, + 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, + 424, 404, 660, 0, 0, 422, 372, 456, 412, 462, + 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, + 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, + 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, + 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, + 574, 0, 490, 661, 662, 663, 499, 0, 414, 504, + 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, + 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, + 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, + 291, 292, 656, 330, 400, 597, 630, 631, 522, 0, + 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, + 579, 582, 512, 655, 0, 576, 591, 659, 590, 652, + 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, + 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, + 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, + 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, + 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, + 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 563, 564, 561, 664, + 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, + 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, + 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, + 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, + 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, + 320, 321, 328, 653, 650, 454, 654, 0, 293, 528, + 371, 169, 415, 344, 593, 594, 0, 645, 241, 242, + 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, + 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, + 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, + 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, + 465, 527, 651, 0, 0, 0, 0, 0, 0, 0, + 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, + 439, 440, 0, 642, 643, 644, 641, 375, 426, 445, + 433, 0, 657, 518, 519, 658, 629, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, + 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 1058, 1059, 0, 0, 0, 0, + 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1062, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 0, 458, 486, 331, 477, 1032, + 469, 304, 1031, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, + 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, + 404, 660, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 330, 400, 597, 630, 631, 522, 0, 584, + 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, + 582, 512, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, + 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 1060, 2089, 1056, 2090, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 1057, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 0, 293, 528, 371, + 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2067, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, + 440, 0, 642, 643, 644, 641, 375, 426, 445, 433, + 0, 657, 518, 519, 658, 629, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 2978, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, + 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, + 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 2981, 0, 0, 0, 2980, 628, 0, 0, + 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, + 660, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 330, 400, 597, 630, 631, 522, 0, 584, 523, + 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, + 512, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 0, 293, 528, 371, 0, + 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, + 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 337, 1557, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 1555, 0, 0, 0, 310, 229, + 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1553, 0, + 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, + 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 487, 0, 424, 404, 660, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, + 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 0, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 3443, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 637, 640, 439, 440, 0, + 642, 643, 644, 641, 375, 426, 445, 433, 0, 657, + 518, 519, 658, 629, 402, 0, 0, 533, 566, 555, + 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 1551, 0, 370, 570, 552, 562, 553, + 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, + 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 1555, 0, 0, 0, 310, 229, 515, + 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1553, 0, 0, + 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, + 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, + 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, + 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, + 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, + 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, + 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, + 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 367, 0, 0, 0, 487, 0, 424, 404, 660, 0, + 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, + 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, + 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, + 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, + 451, 450, 308, 478, 484, 485, 574, 0, 490, 661, + 662, 663, 499, 0, 414, 504, 505, 506, 508, 509, + 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, + 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, + 340, 339, 381, 417, 299, 346, 291, 292, 656, 330, + 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, + 556, 568, 567, 396, 482, 0, 579, 582, 512, 655, + 0, 576, 591, 659, 590, 652, 406, 0, 428, 588, + 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, + 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, + 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, + 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, + 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, + 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 564, 561, 664, 0, 621, 622, 0, + 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, + 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, + 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, + 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, + 0, 0, 548, 449, 324, 285, 320, 321, 328, 653, + 650, 454, 654, 0, 293, 528, 371, 0, 415, 344, + 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 479, 480, 481, 503, 0, 465, 527, 651, 0, + 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, + 633, 634, 636, 638, 637, 640, 439, 440, 0, 642, + 643, 644, 641, 375, 426, 445, 433, 0, 657, 518, + 519, 658, 629, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4068, 0, 228, + 854, 0, 0, 0, 0, 0, 310, 229, 515, 635, + 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, + 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 487, 0, 424, 404, 660, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 330, 400, + 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, + 568, 567, 396, 482, 0, 579, 582, 512, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, + 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 0, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 637, 640, 439, 440, 0, 642, 643, + 644, 641, 375, 426, 445, 433, 0, 657, 518, 519, + 658, 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, + 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, + 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, + 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3356, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 1555, 0, 0, 0, 310, 229, 515, 635, 517, + 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1553, 0, 0, 0, 0, + 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, + 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, + 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, + 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, + 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, + 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, + 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, + 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, + 0, 0, 487, 0, 424, 404, 660, 0, 0, 422, + 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, + 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, + 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, + 308, 478, 484, 485, 574, 0, 490, 661, 662, 663, + 499, 0, 414, 504, 505, 506, 508, 509, 510, 511, + 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, + 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, + 381, 417, 299, 346, 291, 292, 656, 330, 400, 597, + 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, + 567, 396, 482, 0, 579, 582, 512, 655, 0, 576, + 591, 659, 590, 652, 406, 0, 428, 588, 535, 0, + 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, + 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, + 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, + 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, + 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, + 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 564, 561, 664, 0, 621, 622, 0, 0, 488, + 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, + 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, + 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, + 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, + 548, 449, 324, 285, 320, 321, 328, 653, 650, 454, + 654, 0, 293, 528, 371, 0, 415, 344, 593, 594, + 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, + 480, 481, 503, 0, 465, 527, 651, 0, 0, 0, + 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, + 636, 638, 637, 640, 439, 440, 0, 642, 643, 644, + 641, 375, 426, 445, 433, 0, 657, 518, 519, 658, + 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 310, 229, 515, 635, 517, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, + 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, + 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, + 0, 487, 0, 424, 404, 660, 0, 0, 422, 372, + 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 2488, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 330, 400, 597, 630, + 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, + 396, 482, 0, 579, 582, 512, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, + 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 980, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3085, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 637, 640, 439, 440, 0, 642, 643, 644, 641, + 375, 426, 445, 433, 0, 657, 518, 519, 658, 629, + 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, + 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, + 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 1555, + 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1765, 0, 0, 0, 0, 0, 0, + 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, + 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, + 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, + 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, + 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, + 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, + 487, 0, 424, 404, 660, 0, 0, 422, 372, 456, + 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, + 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, + 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, + 484, 485, 574, 0, 490, 661, 662, 663, 499, 0, + 414, 504, 505, 506, 508, 509, 510, 511, 575, 592, + 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, + 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, + 299, 346, 291, 292, 656, 330, 400, 597, 630, 631, + 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, + 482, 0, 579, 582, 512, 655, 0, 576, 591, 659, + 590, 652, 406, 0, 428, 588, 535, 0, 580, 554, + 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, + 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, + 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, + 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, + 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, + 561, 664, 0, 621, 622, 0, 0, 488, 489, 345, + 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, + 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, + 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, + 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, + 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, + 324, 285, 320, 321, 328, 653, 650, 454, 654, 0, + 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, + 503, 0, 465, 527, 651, 0, 0, 0, 0, 0, + 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, + 637, 640, 439, 440, 0, 642, 643, 644, 641, 375, + 426, 445, 433, 0, 657, 518, 519, 658, 629, 402, + 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, + 0, 0, 2528, 0, 0, 0, 0, 337, 0, 0, + 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, + 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, + 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 2530, 0, + 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, + 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, + 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, + 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, + 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, + 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, + 0, 424, 404, 660, 0, 0, 422, 372, 456, 412, + 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, + 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, + 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, + 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, + 485, 574, 0, 490, 661, 662, 663, 499, 0, 414, + 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, + 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, + 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, + 346, 291, 292, 656, 330, 400, 597, 630, 631, 522, + 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, + 0, 579, 582, 512, 655, 0, 576, 591, 659, 590, + 652, 406, 0, 428, 588, 535, 0, 580, 554, 0, + 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, + 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, + 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, + 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, + 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, + 664, 0, 621, 622, 0, 0, 488, 489, 345, 352, + 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, + 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, + 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, + 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, + 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, + 285, 320, 321, 328, 653, 650, 454, 654, 0, 293, + 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 1554, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, + 0, 465, 527, 651, 0, 0, 0, 0, 0, 0, + 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, + 640, 439, 440, 0, 642, 643, 644, 641, 375, 426, + 445, 433, 0, 657, 518, 519, 658, 629, 402, 0, + 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, + 0, 2136, 0, 0, 0, 0, 337, 0, 0, 370, + 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, + 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, + 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 2137, 0, 0, + 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, + 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, + 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, + 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, + 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, + 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, + 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, + 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, + 424, 404, 660, 0, 0, 422, 372, 456, 412, 462, + 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, + 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, + 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, + 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, + 574, 0, 490, 661, 662, 663, 499, 0, 414, 504, + 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, + 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, + 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, + 291, 292, 656, 330, 400, 597, 630, 631, 522, 0, + 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, + 579, 582, 512, 655, 0, 576, 591, 659, 590, 652, + 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, + 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, + 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, + 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, + 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, + 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 563, 564, 561, 664, + 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, + 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, + 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, + 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, + 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, + 320, 321, 328, 653, 650, 454, 654, 0, 293, 528, + 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, + 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, + 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, + 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, + 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, + 465, 527, 651, 0, 0, 0, 0, 0, 0, 0, + 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, + 439, 440, 0, 642, 643, 644, 641, 375, 426, 445, + 433, 0, 657, 518, 519, 658, 629, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, + 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 3197, 3199, 0, 0, + 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, + 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, + 404, 660, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 330, 400, 597, 630, 631, 522, 0, 584, + 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, + 582, 512, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, + 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 0, 293, 528, 371, + 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 2529, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, + 440, 0, 642, 643, 644, 641, 375, 426, 445, 433, + 0, 657, 518, 519, 658, 629, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 2551, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, + 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 1555, 0, 0, 0, 310, + 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, + 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, + 660, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 330, 400, 597, 630, 631, 522, 0, 584, 523, + 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, + 512, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 0, 293, 528, 371, 0, + 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, + 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 671, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 310, 229, + 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, + 0, 471, 0, 670, 0, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 487, 0, 424, 404, 660, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, + 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 0, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 2895, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 637, 640, 439, 440, 0, + 642, 643, 644, 641, 375, 426, 445, 433, 0, 657, + 518, 519, 658, 629, 402, 0, 0, 533, 566, 555, + 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, + 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, + 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 854, 0, 0, 0, 0, 0, 310, 229, 515, + 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, + 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, + 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, + 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, + 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, + 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, + 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, + 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 367, 0, 0, 0, 487, 0, 424, 404, 660, 0, + 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, + 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, + 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, + 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, + 451, 450, 308, 478, 484, 485, 574, 0, 490, 661, + 662, 663, 499, 0, 414, 504, 505, 506, 508, 509, + 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, + 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, + 340, 339, 381, 417, 299, 346, 291, 292, 656, 330, + 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, + 556, 568, 567, 396, 482, 0, 579, 582, 512, 655, + 0, 576, 591, 659, 590, 652, 406, 0, 428, 588, + 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, + 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, + 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, + 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, + 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, + 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 564, 561, 664, 0, 621, 622, 0, + 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, + 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, + 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, + 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, + 0, 0, 548, 449, 324, 285, 320, 321, 328, 653, + 650, 454, 654, 0, 293, 528, 371, 0, 415, 344, + 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 479, 480, 481, 503, 0, 465, 527, 651, 0, + 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, + 633, 634, 636, 638, 637, 640, 439, 440, 0, 642, + 643, 644, 641, 375, 426, 445, 433, 0, 657, 518, + 519, 658, 629, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4045, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, + 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, + 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 487, 0, 424, 404, 660, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 330, 400, + 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, + 568, 567, 396, 482, 0, 579, 582, 512, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, + 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 0, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 637, 640, 439, 440, 0, 642, 643, + 644, 641, 375, 426, 445, 433, 0, 657, 518, 519, + 658, 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, + 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, + 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, + 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2205, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 3803, 0, 0, 0, 310, 229, 515, 635, 517, + 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, + 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, + 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, + 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, + 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, + 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, + 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, + 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, + 0, 0, 487, 0, 424, 404, 660, 0, 0, 422, + 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, + 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, + 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, + 308, 478, 484, 485, 574, 0, 490, 661, 662, 663, + 499, 0, 414, 504, 505, 506, 508, 509, 510, 511, + 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, + 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, + 381, 417, 299, 346, 291, 292, 656, 330, 400, 597, + 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, + 567, 396, 482, 0, 579, 582, 512, 655, 0, 576, + 591, 659, 590, 652, 406, 0, 428, 588, 535, 0, + 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, + 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, + 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, + 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, + 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, + 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 564, 561, 664, 0, 621, 622, 0, 0, 488, + 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, + 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, + 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, + 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, + 548, 449, 324, 285, 320, 321, 328, 653, 650, 454, + 654, 0, 293, 528, 371, 0, 415, 344, 593, 594, + 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, + 480, 481, 503, 0, 465, 527, 651, 0, 0, 0, + 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, + 636, 638, 637, 640, 439, 440, 0, 642, 643, 644, + 641, 375, 426, 445, 433, 0, 657, 518, 519, 658, + 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 310, 229, 515, 635, 517, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, + 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, + 0, 3937, 0, 0, 441, 0, 0, 367, 0, 0, + 0, 487, 0, 424, 404, 660, 0, 0, 422, 372, + 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 0, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 330, 400, 597, 630, + 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, + 396, 482, 0, 579, 582, 512, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, + 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 2646, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 637, 640, 439, 440, 0, 642, 643, 644, 641, + 375, 426, 445, 433, 0, 657, 518, 519, 658, 629, + 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, + 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, + 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1779, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, + 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, + 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, + 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, + 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, + 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, + 487, 0, 424, 404, 660, 0, 0, 422, 372, 456, + 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, + 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, + 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, + 484, 485, 574, 0, 490, 661, 662, 663, 499, 0, + 414, 504, 505, 506, 508, 509, 510, 511, 575, 592, + 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, + 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, + 299, 346, 291, 292, 656, 330, 400, 597, 630, 631, + 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, + 482, 0, 579, 582, 512, 655, 0, 576, 591, 659, + 590, 652, 406, 0, 428, 588, 535, 0, 580, 554, + 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, + 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, + 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, + 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, + 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, + 561, 664, 0, 621, 622, 0, 0, 488, 489, 345, + 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, + 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, + 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, + 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, + 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, + 324, 285, 320, 321, 328, 653, 650, 454, 654, 0, + 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, + 503, 0, 465, 527, 651, 0, 0, 0, 0, 0, + 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, + 637, 640, 439, 440, 0, 642, 643, 644, 641, 375, + 426, 445, 433, 0, 657, 518, 519, 658, 629, 402, + 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, + 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, + 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, + 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3818, 0, 228, 0, 0, 0, 0, + 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, + 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, + 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, + 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, + 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, + 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, + 0, 424, 404, 660, 0, 0, 422, 372, 456, 412, + 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, + 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, + 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, + 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, + 485, 574, 0, 490, 661, 662, 663, 499, 0, 414, + 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, + 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, + 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, + 346, 291, 292, 656, 330, 400, 597, 630, 631, 522, + 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, + 0, 579, 582, 512, 655, 0, 576, 591, 659, 590, + 652, 406, 0, 428, 588, 535, 0, 580, 554, 0, + 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, + 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, + 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, + 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, + 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, + 664, 0, 621, 622, 0, 0, 488, 489, 345, 352, + 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, + 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, + 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, + 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, + 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, + 285, 320, 321, 328, 653, 650, 454, 654, 0, 293, + 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, + 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, + 0, 465, 527, 651, 0, 0, 0, 0, 0, 0, + 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, + 640, 439, 440, 0, 642, 643, 644, 641, 375, 426, + 445, 433, 0, 657, 518, 519, 658, 629, 402, 0, + 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, + 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, + 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, + 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2608, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, + 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, + 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, + 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, + 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, + 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, + 0, 0, 632, 0, 471, 0, 0, 0, 3729, 0, + 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, + 424, 404, 660, 0, 0, 422, 372, 456, 412, 462, + 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, + 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, + 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, + 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, + 574, 0, 490, 661, 662, 663, 499, 0, 414, 504, + 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, + 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, + 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, + 291, 292, 656, 330, 400, 597, 630, 631, 522, 0, + 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, + 579, 582, 512, 655, 0, 576, 591, 659, 590, 652, + 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, + 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, + 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, + 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, + 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, + 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 563, 564, 561, 664, + 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, + 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, + 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, + 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, + 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, + 320, 321, 328, 653, 650, 454, 654, 0, 293, 528, + 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, + 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, + 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, + 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, + 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, + 465, 527, 651, 0, 0, 0, 0, 0, 0, 0, + 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, + 439, 440, 0, 642, 643, 644, 641, 375, 426, 445, + 433, 0, 657, 518, 519, 658, 629, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, + 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 3229, 0, 0, 0, + 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, + 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, + 404, 660, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 330, 400, 597, 630, 631, 522, 0, 584, + 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, + 582, 512, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, + 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 0, 293, 528, 371, + 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 2606, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, + 440, 0, 642, 643, 644, 641, 375, 426, 445, 433, + 0, 657, 518, 519, 658, 629, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, + 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, + 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3247, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, + 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, + 660, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 330, 400, 597, 630, 631, 522, 0, 584, 523, + 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, + 512, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 0, 293, 528, 371, 0, + 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, + 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2068, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 310, 229, + 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, + 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 487, 0, 424, 404, 660, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, + 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 0, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 2375, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 637, 640, 439, 440, 0, + 642, 643, 644, 641, 375, 426, 445, 433, 0, 657, + 518, 519, 658, 629, 402, 0, 0, 533, 566, 555, + 639, 521, 0, 0, 3444, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, + 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, + 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, + 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, + 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, + 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, + 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, + 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, + 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, + 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, + 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 367, 0, 0, 0, 487, 0, 424, 404, 660, 0, + 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, + 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, + 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, + 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, + 451, 450, 308, 478, 484, 485, 574, 0, 490, 661, + 662, 663, 499, 0, 414, 504, 505, 506, 508, 509, + 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, + 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, + 340, 339, 381, 417, 299, 346, 291, 292, 656, 330, + 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, + 556, 568, 567, 396, 482, 0, 579, 582, 512, 655, + 0, 576, 591, 659, 590, 652, 406, 0, 428, 588, + 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, + 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, + 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, + 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, + 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, + 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 564, 561, 664, 0, 621, 622, 0, + 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, + 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, + 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, + 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, + 0, 0, 548, 449, 324, 285, 320, 321, 328, 653, + 650, 454, 654, 0, 293, 528, 371, 0, 415, 344, + 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 479, 480, 481, 503, 0, 465, 527, 651, 0, + 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, + 633, 634, 636, 638, 637, 640, 439, 440, 0, 642, + 643, 644, 641, 375, 426, 445, 433, 0, 657, 518, + 519, 658, 629, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, + 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3357, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, + 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 487, 0, 424, 404, 660, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 330, 400, + 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, + 568, 567, 396, 482, 0, 579, 582, 512, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, + 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 0, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 637, 640, 439, 440, 0, 642, 643, + 644, 641, 375, 426, 445, 433, 0, 657, 518, 519, + 658, 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, + 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, + 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, + 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 1918, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, + 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3086, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, + 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, + 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, + 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, + 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, + 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, + 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, + 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, + 0, 0, 487, 0, 424, 404, 660, 0, 0, 422, + 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, + 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, + 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, + 308, 478, 484, 485, 574, 0, 490, 661, 662, 663, + 499, 0, 414, 504, 505, 506, 508, 509, 510, 511, + 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, + 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, + 381, 417, 299, 346, 291, 292, 656, 330, 400, 597, + 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, + 567, 396, 482, 0, 579, 582, 512, 655, 0, 576, + 591, 659, 590, 652, 406, 0, 428, 588, 535, 0, + 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, + 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, + 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, + 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, + 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, + 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 564, 561, 664, 0, 621, 622, 0, 0, 488, + 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, + 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, + 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, + 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, + 548, 449, 324, 285, 320, 321, 328, 653, 650, 454, + 654, 0, 293, 528, 371, 0, 415, 344, 593, 594, + 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, + 480, 481, 503, 0, 465, 527, 651, 0, 0, 0, + 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, + 636, 638, 637, 640, 439, 440, 0, 642, 643, 644, + 641, 375, 426, 445, 433, 0, 657, 518, 519, 658, + 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 1555, 0, 0, 0, 310, 229, 515, 635, 517, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, + 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, + 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, + 0, 487, 0, 424, 404, 660, 0, 0, 422, 372, + 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 0, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 330, 400, 597, 630, + 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, + 396, 482, 0, 579, 582, 512, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, + 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 2049, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 637, 640, 439, 440, 0, 642, 643, 644, 641, + 375, 426, 445, 433, 0, 657, 518, 519, 658, 629, + 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, + 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, + 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 2530, + 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, + 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, + 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, + 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, + 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, + 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, + 487, 0, 424, 404, 660, 0, 0, 422, 372, 456, + 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, + 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, + 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, + 484, 485, 574, 0, 490, 661, 662, 663, 499, 0, + 414, 504, 505, 506, 508, 509, 510, 511, 575, 592, + 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, + 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, + 299, 346, 291, 292, 656, 330, 400, 597, 630, 631, + 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, + 482, 0, 579, 582, 512, 655, 0, 576, 591, 659, + 590, 652, 406, 0, 428, 588, 535, 0, 580, 554, + 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, + 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, + 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, + 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, + 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, + 561, 664, 0, 621, 622, 0, 0, 488, 489, 345, + 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, + 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, + 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, + 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, + 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, + 324, 285, 320, 321, 328, 653, 650, 454, 654, 0, + 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, + 503, 0, 465, 527, 651, 0, 0, 0, 0, 0, + 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, + 637, 640, 439, 440, 0, 642, 643, 644, 641, 375, + 426, 445, 433, 0, 657, 518, 519, 658, 629, 402, + 0, 0, 533, 566, 555, 639, 521, 0, 0, 2896, + 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, + 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, + 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, + 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, + 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, + 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, + 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, + 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, + 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, + 0, 424, 404, 660, 0, 0, 422, 372, 456, 412, + 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, + 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, + 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, + 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, + 485, 574, 0, 490, 661, 662, 663, 499, 0, 414, + 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, + 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, + 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, + 346, 291, 292, 656, 330, 400, 597, 630, 631, 522, + 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, + 0, 579, 582, 512, 655, 0, 576, 591, 659, 590, + 652, 406, 0, 428, 588, 535, 0, 580, 554, 0, + 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, + 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, + 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, + 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, + 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, + 664, 0, 621, 622, 0, 0, 488, 489, 345, 352, + 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, + 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, + 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, + 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, + 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, + 285, 320, 321, 328, 653, 650, 454, 654, 0, 293, + 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 1554, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 1954, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, + 0, 465, 527, 651, 0, 0, 0, 0, 0, 0, + 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, + 640, 439, 440, 0, 642, 643, 644, 641, 375, 426, + 445, 433, 0, 657, 518, 519, 658, 629, 402, 0, + 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, + 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, + 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, + 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2206, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, + 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, + 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, + 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, + 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, + 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, + 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, + 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, + 424, 404, 660, 0, 0, 422, 372, 456, 412, 462, + 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, + 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, + 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, + 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, + 574, 0, 490, 661, 662, 663, 499, 0, 414, 504, + 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, + 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, + 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, + 291, 292, 656, 330, 400, 597, 630, 631, 522, 0, + 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, + 579, 582, 512, 655, 0, 576, 591, 659, 590, 652, + 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, + 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, + 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, + 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, + 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, + 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 563, 564, 561, 664, + 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, + 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, + 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, + 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, + 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, + 320, 321, 328, 653, 650, 454, 654, 0, 293, 528, + 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, + 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, + 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, + 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, + 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, + 465, 527, 651, 0, 0, 0, 0, 0, 0, 0, + 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, + 439, 440, 0, 642, 643, 644, 641, 375, 426, 445, + 433, 0, 657, 518, 519, 658, 629, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, + 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 2647, 0, 0, 0, + 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, + 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, + 404, 660, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 330, 400, 597, 630, 631, 522, 0, 584, + 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, + 582, 512, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, + 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 0, 293, 528, 371, + 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 1583, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, + 440, 0, 642, 643, 644, 641, 375, 426, 445, 433, + 0, 657, 518, 519, 658, 629, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, + 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, + 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2609, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, + 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, + 660, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 330, 400, 597, 630, 631, 522, 0, 584, 523, + 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, + 512, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 0, 293, 528, 371, 0, + 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, + 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 2607, 0, 0, 0, 310, 229, + 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, + 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 487, 0, 424, 404, 660, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, + 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 0, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 670, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 637, 640, 439, 440, 0, + 642, 643, 644, 641, 375, 426, 445, 433, 2376, 657, + 518, 519, 658, 629, 402, 0, 0, 533, 566, 555, + 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, + 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, + 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, + 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, + 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, + 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, + 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, + 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, + 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, + 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, + 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 367, 0, 0, 0, 487, 0, 424, 404, 660, 0, + 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, + 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, + 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, + 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, + 451, 450, 308, 478, 484, 485, 574, 0, 490, 661, + 662, 663, 499, 0, 414, 504, 505, 506, 508, 509, + 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, + 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, + 340, 339, 381, 417, 299, 346, 291, 292, 656, 330, + 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, + 556, 568, 567, 396, 482, 0, 579, 582, 512, 655, + 0, 576, 591, 659, 590, 652, 406, 0, 428, 588, + 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, + 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, + 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, + 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, + 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, + 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 564, 561, 664, 0, 621, 622, 0, + 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, + 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, + 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, + 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, + 0, 0, 548, 449, 324, 285, 320, 321, 328, 653, + 650, 454, 654, 0, 293, 528, 371, 0, 415, 344, + 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 479, 480, 481, 503, 0, 465, 527, 651, 0, + 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, + 633, 634, 636, 638, 637, 640, 439, 440, 0, 642, + 643, 644, 641, 375, 426, 445, 433, 0, 657, 518, + 519, 658, 629, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 1919, 0, 0, 310, 229, 515, 635, + 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, + 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 487, 0, 424, 404, 660, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 330, 400, + 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, + 568, 567, 396, 482, 0, 579, 582, 512, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, + 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 0, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 637, 640, 439, 440, 0, 642, 643, + 644, 641, 375, 426, 445, 433, 0, 657, 518, 519, + 658, 629, 402, 0, 0, 533, 566, 555, 639, 521, + 0, 2050, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, + 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, + 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 460, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 680, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, + 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, + 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, + 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, + 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, + 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, + 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, + 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, + 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, + 0, 0, 487, 0, 424, 404, 660, 0, 0, 422, + 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, + 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, + 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, + 308, 478, 484, 485, 574, 0, 490, 661, 662, 663, + 499, 0, 414, 504, 505, 506, 508, 509, 510, 511, + 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, + 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, + 381, 417, 299, 346, 291, 292, 656, 330, 400, 597, + 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, + 567, 396, 482, 0, 579, 582, 512, 655, 0, 576, + 591, 659, 590, 652, 406, 0, 428, 588, 535, 0, + 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, + 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, + 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, + 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, + 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, + 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 564, 561, 664, 0, 621, 622, 0, 0, 488, + 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, + 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, + 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, + 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, + 548, 449, 324, 285, 320, 321, 328, 653, 650, 454, + 654, 0, 293, 528, 371, 0, 415, 344, 593, 594, + 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, + 480, 481, 503, 0, 465, 527, 651, 0, 0, 0, + 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, + 636, 638, 637, 640, 439, 440, 0, 642, 643, 644, + 641, 375, 426, 445, 433, 0, 657, 518, 519, 658, + 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 1555, 0, 0, 0, 310, 229, 515, 635, 517, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, + 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, + 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, + 0, 487, 0, 424, 404, 660, 0, 0, 422, 372, + 456, 412, 462, 443, 470, 1955, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 0, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 330, 400, 597, 630, + 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, + 396, 482, 0, 579, 582, 512, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, + 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 637, 640, 439, 440, 0, 642, 643, 644, 641, + 375, 426, 445, 433, 0, 657, 518, 519, 658, 629, + 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, + 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, + 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 460, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, + 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, + 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, + 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, + 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 628, 0, 0, 632, 0, 471, 0, 0, 1584, + 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, + 487, 0, 424, 404, 660, 0, 0, 422, 372, 456, + 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, + 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, + 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, + 484, 485, 574, 0, 490, 661, 662, 663, 499, 0, + 414, 504, 505, 506, 508, 509, 510, 511, 575, 592, + 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, + 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, + 299, 346, 291, 292, 656, 330, 400, 597, 630, 631, + 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, + 482, 0, 579, 582, 512, 655, 0, 576, 591, 659, + 590, 652, 406, 0, 428, 588, 535, 0, 580, 554, + 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, + 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, + 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, + 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, + 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, + 561, 664, 0, 621, 622, 0, 0, 488, 489, 345, + 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, + 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, + 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, + 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, + 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, + 324, 285, 320, 321, 328, 653, 650, 454, 654, 0, + 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, + 503, 0, 465, 527, 651, 0, 0, 0, 0, 0, + 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, + 637, 640, 439, 440, 0, 642, 643, 644, 641, 375, + 426, 445, 433, 0, 657, 518, 519, 658, 629, 402, + 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 671, 337, 0, 0, + 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, + 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, + 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, + 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, + 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, + 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, + 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, + 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, + 0, 424, 404, 660, 0, 0, 422, 372, 456, 412, + 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, + 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, + 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, + 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, + 485, 574, 0, 490, 661, 662, 663, 499, 0, 414, + 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, + 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, + 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, + 346, 291, 292, 656, 330, 400, 597, 630, 631, 522, + 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, + 0, 579, 582, 512, 655, 0, 576, 591, 659, 590, + 652, 406, 0, 428, 588, 535, 0, 580, 554, 0, + 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, + 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, + 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, + 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, + 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, + 664, 0, 621, 622, 0, 0, 488, 489, 345, 352, + 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, + 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, + 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, + 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 979, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, + 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, + 285, 320, 321, 328, 653, 650, 454, 654, 0, 293, + 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, + 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, + 0, 465, 527, 651, 0, 0, 0, 0, 0, 0, + 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, + 640, 439, 440, 0, 642, 643, 644, 641, 375, 426, + 445, 433, 0, 657, 518, 519, 658, 629, 402, 0, + 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, + 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, + 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, + 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 452, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, + 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, + 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, + 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, + 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, + 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, + 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, + 0, 681, 632, 0, 471, 0, 0, 0, 0, 0, + 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, + 424, 404, 660, 0, 0, 422, 372, 456, 412, 462, + 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, + 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, + 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, + 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, + 574, 0, 490, 661, 662, 663, 499, 0, 414, 504, + 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, + 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, + 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, + 291, 292, 656, 330, 400, 597, 630, 631, 522, 0, + 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, + 579, 582, 512, 655, 0, 576, 591, 659, 590, 652, + 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, + 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, + 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, + 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, + 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, + 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 563, 564, 561, 664, + 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, + 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, + 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, + 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, + 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, + 320, 321, 328, 653, 650, 454, 654, 0, 293, 528, + 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, + 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, + 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, + 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, + 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, + 465, 527, 651, 0, 0, 0, 0, 0, 0, 0, + 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, + 439, 440, 0, 642, 643, 644, 641, 375, 426, 445, + 433, 0, 657, 518, 519, 658, 629, 402, 0, 0, + 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, + 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, + 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, + 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, + 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, + 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, + 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, + 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, + 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, + 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, + 404, 660, 0, 0, 422, 372, 456, 412, 462, 443, + 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, + 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, + 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, + 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, + 0, 490, 661, 662, 663, 499, 0, 414, 504, 505, + 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, + 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, + 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, + 292, 656, 330, 400, 597, 630, 631, 522, 0, 584, + 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, + 582, 512, 655, 0, 576, 591, 659, 590, 652, 406, + 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, + 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, + 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, + 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, + 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, + 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 563, 564, 561, 664, 0, + 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, + 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, + 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, + 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, + 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, + 601, 600, 599, 980, 0, 548, 449, 324, 285, 320, + 321, 328, 653, 650, 454, 654, 0, 293, 528, 371, + 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, + 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 328, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 3174, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, + 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, + 527, 651, 0, 0, 0, 0, 0, 0, 0, 577, + 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, + 440, 0, 642, 643, 644, 641, 375, 426, 445, 433, + 0, 657, 518, 519, 658, 629, 402, 0, 0, 533, + 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, + 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, + 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, + 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, + 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, + 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, + 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, + 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, + 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, + 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, + 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, + 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, + 660, 0, 0, 422, 372, 456, 412, 462, 443, 470, + 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, + 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, + 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, + 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, + 490, 661, 662, 663, 499, 0, 414, 504, 505, 506, + 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, + 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, + 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, + 656, 330, 400, 597, 630, 631, 522, 0, 584, 523, + 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, + 512, 655, 0, 576, 591, 659, 590, 652, 406, 0, + 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, + 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, + 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, + 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, + 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, + 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 563, 564, 561, 664, 0, 621, + 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, + 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, + 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, + 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, + 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, + 328, 653, 650, 454, 654, 0, 293, 528, 371, 0, + 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, + 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, + 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, + 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, + 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, + 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, + 651, 0, 0, 0, 0, 0, 0, 0, 577, 589, + 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, + 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, + 657, 518, 519, 658, 629, 402, 0, 0, 533, 566, + 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, + 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, + 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 310, 229, + 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, + 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, + 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, + 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, + 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, + 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, + 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, + 0, 367, 0, 0, 0, 487, 0, 424, 404, 660, + 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, + 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, + 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, + 327, 297, 408, 452, 0, 348, 3175, 380, 298, 379, + 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, + 661, 662, 663, 499, 0, 414, 504, 505, 506, 508, + 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, + 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, + 0, 340, 339, 381, 417, 299, 346, 291, 292, 656, + 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, + 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, + 655, 0, 576, 591, 659, 590, 652, 406, 0, 428, + 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, + 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, + 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, + 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, + 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, + 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 563, 564, 561, 664, 0, 621, 622, + 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, + 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, + 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, + 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, + 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, + 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, + 653, 650, 454, 654, 0, 293, 528, 371, 0, 415, + 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, + 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 1904, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 417, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 619, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, + 0, 0, 479, 480, 481, 503, 0, 465, 527, 651, + 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, + 0, 633, 634, 636, 638, 637, 640, 439, 440, 0, + 642, 643, 644, 641, 375, 426, 445, 433, 0, 657, + 518, 519, 658, 629, 402, 0, 0, 533, 566, 555, + 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, + 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, + 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, + 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, + 316, 438, 1905, 306, 401, 427, 0, 0, 302, 459, + 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, + 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, + 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, + 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, + 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, + 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, + 367, 0, 0, 0, 487, 0, 424, 404, 660, 0, + 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, + 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, + 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, + 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, + 451, 450, 308, 478, 484, 485, 574, 0, 490, 661, + 662, 663, 499, 0, 414, 504, 505, 506, 508, 509, + 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, + 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, + 340, 339, 381, 417, 299, 346, 291, 292, 656, 330, + 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, + 556, 568, 567, 396, 482, 0, 579, 582, 512, 655, + 0, 576, 591, 659, 590, 652, 406, 0, 428, 588, + 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, + 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, + 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, + 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, + 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, + 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 563, 564, 561, 664, 0, 621, 622, 0, + 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, + 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, + 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, + 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, + 0, 0, 548, 449, 324, 285, 320, 321, 328, 653, + 650, 454, 654, 0, 293, 528, 371, 0, 415, 344, + 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, + 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, + 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, + 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, + 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, + 0, 479, 480, 481, 503, 0, 465, 527, 651, 0, + 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, + 633, 634, 636, 638, 637, 640, 439, 440, 0, 642, + 643, 644, 641, 375, 426, 445, 433, 0, 657, 518, + 519, 658, 629, 402, 0, 0, 533, 566, 555, 639, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, + 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, + 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, + 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 300, 442, 1534, 311, 430, 474, 316, + 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, + 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, + 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, + 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, + 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, + 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, + 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, + 0, 0, 0, 487, 0, 424, 404, 660, 0, 0, + 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, + 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, + 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, + 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, + 450, 308, 478, 484, 485, 574, 0, 490, 661, 662, + 663, 499, 0, 414, 504, 505, 506, 508, 509, 510, + 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, + 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, + 339, 381, 417, 299, 346, 291, 292, 656, 330, 400, + 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, + 568, 567, 396, 482, 0, 579, 582, 512, 655, 0, + 576, 591, 659, 590, 652, 406, 0, 428, 588, 535, + 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, + 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, + 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, + 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, + 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, + 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 563, 564, 561, 664, 0, 621, 622, 0, 0, + 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, + 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, + 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, + 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, + 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, + 0, 548, 449, 324, 285, 320, 321, 328, 653, 650, + 454, 654, 0, 293, 528, 371, 0, 415, 344, 593, + 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, + 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 401, 0, 0, 532, 565, 554, 638, 520, + 479, 480, 481, 503, 0, 465, 527, 651, 0, 0, + 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, + 634, 636, 638, 637, 640, 439, 440, 0, 642, 643, + 644, 641, 375, 426, 445, 433, 0, 657, 518, 519, + 658, 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 0, 369, 569, 551, 561, 552, 537, 538, - 539, 546, 348, 540, 541, 542, 512, 543, 513, 544, - 545, 0, 568, 519, 434, 385, 586, 585, 0, 0, + 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, + 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, + 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 309, 229, 514, 634, 516, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 299, 441, 1533, 310, 429, 473, 315, 437, - 452, 305, 400, 426, 0, 0, 301, 458, 436, 382, - 359, 360, 300, 0, 420, 334, 350, 331, 398, 0, - 457, 485, 330, 476, 0, 468, 303, 0, 467, 397, - 454, 459, 383, 376, 0, 302, 456, 381, 375, 363, - 340, 501, 364, 365, 354, 409, 373, 410, 355, 387, - 386, 388, 0, 0, 0, 0, 0, 496, 497, 0, - 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 366, 0, - 0, 0, 486, 0, 423, 403, 659, 0, 0, 421, - 371, 455, 411, 461, 442, 469, 417, 412, 294, 443, - 333, 384, 306, 308, 328, 335, 337, 341, 342, 393, - 394, 406, 428, 445, 446, 447, 332, 316, 422, 317, - 352, 318, 295, 324, 322, 325, 430, 326, 297, 407, - 451, 0, 347, 418, 379, 298, 378, 408, 450, 449, - 307, 477, 483, 484, 573, 0, 489, 660, 661, 662, - 498, 0, 413, 503, 504, 505, 507, 508, 509, 510, - 574, 591, 558, 528, 491, 582, 525, 529, 530, 357, - 594, 0, 0, 0, 482, 367, 368, 0, 339, 338, - 380, 416, 345, 291, 292, 655, 329, 399, 596, 629, - 630, 521, 0, 583, 522, 531, 321, 555, 567, 566, - 395, 481, 0, 578, 581, 511, 654, 0, 575, 590, - 658, 589, 651, 405, 0, 427, 587, 534, 0, 579, - 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, - 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, - 614, 615, 616, 617, 618, 619, 612, 466, 556, 533, - 559, 474, 536, 535, 0, 0, 570, 490, 571, 572, - 389, 390, 391, 392, 349, 597, 314, 493, 415, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, - 563, 560, 663, 0, 620, 621, 0, 0, 487, 488, - 344, 351, 506, 353, 313, 404, 346, 472, 361, 0, - 499, 564, 500, 623, 626, 624, 625, 396, 356, 358, - 431, 362, 372, 419, 471, 402, 424, 311, 462, 433, - 377, 550, 577, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, + 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 442, 1532, 311, 430, 474, 316, 438, + 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, + 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, + 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, + 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, + 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, + 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, + 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, + 0, 0, 487, 0, 424, 404, 660, 0, 0, 422, + 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, + 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, + 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, + 308, 478, 484, 485, 574, 0, 490, 661, 662, 663, + 499, 0, 414, 504, 505, 506, 508, 509, 510, 511, + 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, + 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, + 381, 417, 299, 346, 291, 292, 656, 330, 400, 597, + 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, + 567, 396, 482, 0, 579, 582, 512, 655, 0, 576, + 591, 659, 590, 652, 406, 0, 428, 588, 535, 0, + 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, + 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, + 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, + 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, + 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, + 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, + 563, 564, 561, 664, 0, 621, 622, 0, 0, 488, + 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, + 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, + 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, + 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, + 548, 449, 324, 285, 320, 321, 328, 653, 650, 454, + 654, 0, 293, 528, 371, 0, 415, 344, 593, 594, + 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, + 480, 481, 503, 0, 465, 527, 651, 0, 0, 0, + 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, + 636, 638, 637, 640, 439, 440, 0, 642, 643, 644, + 641, 375, 426, 445, 433, 0, 657, 518, 519, 658, + 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, + 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, + 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, + 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 310, 229, 515, 635, 517, 516, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 300, 442, 461, 311, 430, 474, 316, 438, 1411, + 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, + 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, + 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, + 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, + 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, + 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, + 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, + 0, 487, 0, 424, 404, 660, 0, 0, 422, 372, + 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, + 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, + 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, + 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, + 478, 484, 485, 574, 0, 490, 661, 662, 663, 499, + 0, 414, 504, 505, 506, 508, 509, 510, 511, 575, + 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, + 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, + 417, 299, 346, 291, 292, 656, 330, 400, 597, 630, + 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, + 396, 482, 0, 579, 582, 512, 655, 0, 576, 591, + 659, 590, 652, 406, 0, 428, 588, 535, 0, 580, + 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, + 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, + 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, + 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, + 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, + 564, 561, 664, 0, 621, 622, 0, 0, 488, 489, + 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, + 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, + 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, + 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, - 448, 323, 285, 319, 320, 327, 652, 649, 453, 653, - 0, 293, 527, 370, 0, 414, 343, 592, 593, 0, - 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, + 449, 324, 285, 320, 321, 328, 653, 650, 454, 654, + 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, + 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, + 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 478, 479, - 480, 502, 0, 464, 526, 650, 0, 0, 0, 0, - 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, - 637, 636, 639, 438, 439, 0, 641, 642, 643, 640, - 374, 425, 444, 432, 0, 656, 517, 518, 657, 628, - 401, 0, 0, 532, 565, 554, 638, 520, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, - 0, 369, 569, 551, 561, 552, 537, 538, 539, 546, - 348, 540, 541, 542, 512, 543, 513, 544, 545, 0, - 568, 519, 434, 385, 586, 585, 0, 0, 0, 0, + 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, + 481, 503, 0, 465, 527, 651, 0, 0, 0, 0, + 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, + 638, 637, 640, 439, 440, 0, 642, 643, 644, 641, + 375, 426, 445, 433, 0, 657, 518, 519, 658, 629, + 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, + 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, + 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 309, 229, 514, 634, 516, 515, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 299, 441, 1531, 310, 429, 473, 315, 437, 452, 305, - 400, 426, 0, 0, 301, 458, 436, 382, 359, 360, - 300, 0, 420, 334, 350, 331, 398, 0, 457, 485, - 330, 476, 0, 468, 303, 0, 467, 397, 454, 459, - 383, 376, 0, 302, 456, 381, 375, 363, 340, 501, - 364, 365, 354, 409, 373, 410, 355, 387, 386, 388, - 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 366, 0, 0, 0, - 486, 0, 423, 403, 659, 0, 0, 421, 371, 455, - 411, 461, 442, 469, 417, 412, 294, 443, 333, 384, - 306, 308, 328, 335, 337, 341, 342, 393, 394, 406, - 428, 445, 446, 447, 332, 316, 422, 317, 352, 318, - 295, 324, 322, 325, 430, 326, 297, 407, 451, 0, - 347, 418, 379, 298, 378, 408, 450, 449, 307, 477, - 483, 484, 573, 0, 489, 660, 661, 662, 498, 0, - 413, 503, 504, 505, 507, 508, 509, 510, 574, 591, - 558, 528, 491, 582, 525, 529, 530, 357, 594, 0, - 0, 0, 482, 367, 368, 0, 339, 338, 380, 416, - 345, 291, 292, 655, 329, 399, 596, 629, 630, 521, - 0, 583, 522, 531, 321, 555, 567, 566, 395, 481, - 0, 578, 581, 511, 654, 0, 575, 590, 658, 589, - 651, 405, 0, 427, 587, 534, 0, 579, 553, 0, - 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, - 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, - 616, 617, 618, 619, 612, 466, 556, 533, 559, 474, - 536, 535, 0, 0, 570, 490, 571, 572, 389, 390, - 391, 392, 349, 597, 314, 493, 415, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, - 663, 0, 620, 621, 0, 0, 487, 488, 344, 351, - 506, 353, 313, 404, 346, 472, 361, 0, 499, 564, - 500, 623, 626, 624, 625, 396, 356, 358, 431, 362, - 372, 419, 471, 402, 424, 311, 462, 433, 377, 550, - 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, + 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, + 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, + 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, + 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, + 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, + 487, 0, 424, 404, 660, 0, 0, 422, 372, 456, + 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 307, 309, 749, 336, 338, 342, 343, 394, 395, 407, + 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, + 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, + 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, + 484, 485, 574, 0, 490, 661, 662, 663, 499, 0, + 414, 504, 505, 506, 508, 509, 510, 511, 575, 592, + 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, + 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, + 299, 346, 291, 292, 656, 330, 400, 597, 630, 631, + 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, + 482, 0, 579, 582, 512, 655, 0, 576, 591, 659, + 590, 652, 406, 0, 428, 588, 535, 0, 580, 554, + 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, + 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, + 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, + 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, + 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, + 561, 664, 0, 621, 622, 0, 0, 488, 489, 345, + 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, + 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, + 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, + 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, + 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, + 324, 285, 320, 321, 328, 653, 650, 454, 654, 0, + 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, + 503, 0, 465, 527, 651, 0, 0, 0, 0, 0, + 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, + 637, 640, 439, 440, 0, 642, 643, 644, 641, 375, + 426, 445, 433, 0, 657, 518, 519, 658, 629, 402, + 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, + 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, + 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, + 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, + 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, + 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, + 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, + 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, + 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, + 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, + 0, 424, 404, 660, 0, 0, 422, 372, 456, 412, + 462, 443, 470, 706, 413, 294, 444, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, + 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, + 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, + 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, + 485, 574, 0, 490, 661, 662, 663, 499, 0, 414, + 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, + 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, + 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, + 346, 291, 292, 656, 330, 400, 597, 630, 631, 522, + 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, + 0, 579, 582, 512, 655, 0, 576, 591, 659, 590, + 652, 406, 0, 428, 588, 535, 0, 580, 554, 0, + 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, + 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, + 617, 618, 619, 707, 613, 467, 557, 534, 560, 475, + 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, + 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, + 664, 0, 621, 622, 0, 0, 488, 489, 345, 352, + 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, + 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, + 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, + 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, - 602, 601, 600, 599, 598, 0, 0, 547, 448, 323, - 285, 319, 320, 327, 652, 649, 453, 653, 0, 293, - 527, 370, 0, 414, 343, 592, 593, 0, 644, 241, + 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, + 603, 602, 601, 600, 599, 1140, 0, 548, 449, 324, + 285, 320, 321, 328, 653, 650, 454, 654, 0, 293, + 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, + 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 478, 479, 480, 502, - 0, 464, 526, 650, 0, 0, 0, 0, 0, 0, - 0, 576, 588, 622, 0, 632, 633, 635, 637, 636, - 639, 438, 439, 0, 641, 642, 643, 640, 374, 425, - 444, 432, 0, 656, 517, 518, 657, 628, 401, 0, - 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 336, 0, 0, 369, - 569, 551, 561, 552, 537, 538, 539, 546, 348, 540, - 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, - 434, 385, 586, 585, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 309, 229, 514, 634, 516, 515, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 299, 441, - 460, 310, 429, 473, 315, 437, 1410, 305, 400, 426, - 0, 0, 301, 458, 436, 382, 359, 360, 300, 0, - 420, 334, 350, 331, 398, 0, 457, 485, 330, 476, - 0, 468, 303, 0, 467, 397, 454, 459, 383, 376, - 0, 302, 456, 381, 375, 363, 340, 501, 364, 365, - 354, 409, 373, 410, 355, 387, 386, 388, 0, 0, - 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, - 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, - 0, 440, 0, 0, 366, 0, 0, 0, 486, 0, - 423, 403, 659, 0, 0, 421, 371, 455, 411, 461, - 442, 469, 417, 412, 294, 443, 333, 384, 306, 308, - 328, 335, 337, 341, 342, 393, 394, 406, 428, 445, - 446, 447, 332, 316, 422, 317, 352, 318, 295, 324, - 322, 325, 430, 326, 297, 407, 451, 0, 347, 418, - 379, 298, 378, 408, 450, 449, 307, 477, 483, 484, - 573, 0, 489, 660, 661, 662, 498, 0, 413, 503, - 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, - 491, 582, 525, 529, 530, 357, 594, 0, 0, 0, - 482, 367, 368, 0, 339, 338, 380, 416, 345, 291, - 292, 655, 329, 399, 596, 629, 630, 521, 0, 583, - 522, 531, 321, 555, 567, 566, 395, 481, 0, 578, - 581, 511, 654, 0, 575, 590, 658, 589, 651, 405, - 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, - 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, - 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, - 618, 619, 612, 466, 556, 533, 559, 474, 536, 535, - 0, 0, 570, 490, 571, 572, 389, 390, 391, 392, - 349, 597, 314, 493, 415, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 562, 563, 560, 663, 0, - 620, 621, 0, 0, 487, 488, 344, 351, 506, 353, - 313, 404, 346, 472, 361, 0, 499, 564, 500, 623, - 626, 624, 625, 396, 356, 358, 431, 362, 372, 419, - 471, 402, 424, 311, 462, 433, 377, 550, 577, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, - 600, 599, 598, 0, 0, 547, 448, 323, 285, 319, - 320, 327, 652, 649, 453, 653, 0, 293, 527, 370, - 0, 414, 343, 592, 593, 0, 644, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 478, 479, 480, 502, 0, 464, - 526, 650, 0, 0, 0, 0, 0, 0, 0, 576, - 588, 622, 0, 632, 633, 635, 637, 636, 639, 438, - 439, 0, 641, 642, 643, 640, 374, 425, 444, 432, - 0, 656, 517, 518, 657, 628, 401, 0, 0, 532, - 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 336, 0, 0, 369, 569, 551, - 561, 552, 537, 538, 539, 546, 348, 540, 541, 542, - 512, 543, 513, 544, 545, 0, 568, 519, 434, 385, - 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 309, - 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 299, 441, 460, 310, - 429, 473, 315, 437, 452, 305, 400, 426, 0, 0, - 301, 458, 436, 382, 359, 360, 300, 0, 420, 334, - 350, 331, 398, 0, 457, 485, 330, 476, 0, 468, - 303, 0, 467, 397, 454, 459, 383, 376, 0, 302, - 456, 381, 375, 363, 340, 501, 364, 365, 354, 409, - 373, 410, 355, 387, 386, 388, 0, 0, 0, 0, - 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, - 631, 0, 470, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 366, 0, 0, 0, 486, 0, 423, 403, - 659, 0, 0, 421, 371, 455, 411, 461, 442, 469, - 417, 412, 294, 443, 333, 384, 306, 308, 748, 335, - 337, 341, 342, 393, 394, 406, 428, 445, 446, 447, - 332, 316, 422, 317, 352, 318, 295, 324, 322, 325, - 430, 326, 297, 407, 451, 0, 347, 418, 379, 298, - 378, 408, 450, 449, 307, 477, 483, 484, 573, 0, - 489, 660, 661, 662, 498, 0, 413, 503, 504, 505, - 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, - 525, 529, 530, 357, 594, 0, 0, 0, 482, 367, - 368, 0, 339, 338, 380, 416, 345, 291, 292, 655, - 329, 399, 596, 629, 630, 521, 0, 583, 522, 531, - 321, 555, 567, 566, 395, 481, 0, 578, 581, 511, - 654, 0, 575, 590, 658, 589, 651, 405, 0, 427, - 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, - 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, - 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, - 612, 466, 556, 533, 559, 474, 536, 535, 0, 0, - 570, 490, 571, 572, 389, 390, 391, 392, 349, 597, - 314, 493, 415, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 562, 563, 560, 663, 0, 620, 621, - 0, 0, 487, 488, 344, 351, 506, 353, 313, 404, - 346, 472, 361, 0, 499, 564, 500, 623, 626, 624, - 625, 396, 356, 358, 431, 362, 372, 419, 471, 402, - 424, 311, 462, 433, 377, 550, 577, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, - 598, 0, 0, 547, 448, 323, 285, 319, 320, 327, - 652, 649, 453, 653, 0, 293, 527, 370, 0, 414, - 343, 592, 593, 0, 644, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 595, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 478, 479, 480, 502, 0, 464, 526, 650, - 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, - 0, 632, 633, 635, 637, 636, 639, 438, 439, 0, - 641, 642, 643, 640, 374, 425, 444, 432, 0, 656, - 517, 518, 657, 628, 401, 0, 0, 532, 565, 554, - 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 336, 0, 0, 369, 569, 551, 561, 552, - 537, 538, 539, 546, 348, 540, 541, 542, 512, 543, - 513, 544, 545, 0, 568, 519, 434, 385, 586, 585, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 309, 229, 514, - 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 299, 441, 460, 310, 429, 473, - 315, 437, 452, 305, 400, 426, 0, 0, 301, 458, - 436, 382, 359, 360, 300, 0, 420, 334, 350, 331, - 398, 0, 457, 485, 330, 476, 0, 468, 303, 0, - 467, 397, 454, 459, 383, 376, 0, 302, 456, 381, - 375, 363, 340, 501, 364, 365, 354, 409, 373, 410, - 355, 387, 386, 388, 0, 0, 0, 0, 0, 496, - 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, - 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, - 366, 0, 0, 0, 486, 0, 423, 403, 659, 0, - 0, 421, 371, 455, 411, 461, 442, 469, 705, 412, - 294, 443, 333, 384, 306, 308, 328, 335, 337, 341, - 342, 393, 394, 406, 428, 445, 446, 447, 332, 316, - 422, 317, 352, 318, 295, 324, 322, 325, 430, 326, - 297, 407, 451, 0, 347, 418, 379, 298, 378, 408, - 450, 449, 307, 477, 483, 484, 573, 0, 489, 660, - 661, 662, 498, 0, 413, 503, 504, 505, 507, 508, - 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, - 530, 357, 594, 0, 0, 0, 482, 367, 368, 0, - 339, 338, 380, 416, 345, 291, 292, 655, 329, 399, - 596, 629, 630, 521, 0, 583, 522, 531, 321, 555, - 567, 566, 395, 481, 0, 578, 581, 511, 654, 0, - 575, 590, 658, 589, 651, 405, 0, 427, 587, 534, - 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, - 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, - 494, 613, 614, 615, 616, 617, 618, 706, 612, 466, - 556, 533, 559, 474, 536, 535, 0, 0, 570, 490, - 571, 572, 389, 390, 391, 392, 349, 597, 314, 493, - 415, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 562, 563, 560, 663, 0, 620, 621, 0, 0, - 487, 488, 344, 351, 506, 353, 313, 404, 346, 472, - 361, 0, 499, 564, 500, 623, 626, 624, 625, 396, - 356, 358, 431, 362, 372, 419, 471, 402, 424, 311, - 462, 433, 377, 550, 577, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, - 0, 547, 448, 323, 285, 319, 320, 327, 652, 649, - 453, 653, 0, 293, 527, 370, 0, 414, 343, 592, - 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 478, 479, 480, 502, 0, 464, 526, 650, 0, 0, - 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, - 633, 635, 637, 636, 639, 438, 439, 0, 641, 642, - 643, 640, 374, 425, 444, 432, 0, 656, 517, 518, - 657, 628, 727, 726, 733, 723, 0, 0, 2036, 0, - 0, 0, 0, 0, 0, 730, 731, 0, 732, 736, - 0, 0, 717, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2039, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2036, 0, 0, - 0, 1260, 1261, 1262, 1259, 0, 0, 0, 745, 0, - 0, 747, 0, 0, 0, 0, 746, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2013, 0, - 0, 0, 0, 2039, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1801, 0, 0, 0, 0, 0, 2013, 0, 0, - 0, 0, 3794, 0, 0, 0, 2029, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2029, 718, 720, 719, 0, - 0, 0, 0, 0, 0, 0, 0, 725, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, - 2017, 0, 0, 0, 0, 0, 744, 0, 0, 0, - 0, 2023, 0, 722, 0, 0, 0, 712, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2011, 2045, 0, 0, 2012, 2014, 2016, 0, 2018, - 2019, 2020, 2024, 2025, 2026, 2028, 2031, 2032, 2033, 0, - 0, 0, 0, 0, 0, 0, 2021, 2030, 2022, 2017, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2023, 0, 0, 0, 1797, 0, 0, 0, 0, 0, - 0, 1794, 0, 0, 0, 1796, 1793, 1795, 1799, 1800, - 2011, 2045, 2037, 1798, 2012, 2014, 2016, 0, 2018, 2019, - 2020, 2024, 2025, 2026, 2028, 2031, 2032, 2033, 0, 0, - 0, 0, 0, 0, 0, 2021, 2030, 2022, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 724, 728, 734, 0, 735, 737, 0, 0, 738, 739, - 740, 0, 2034, 742, 743, 0, 0, 0, 0, 0, - 0, 2037, 0, 0, 0, 0, 0, 0, 0, 2010, - 0, 0, 0, 0, 0, 0, 2009, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2027, 0, 0, 0, 0, 0, 0, 0, 0, 2015, - 0, 2034, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2010, 0, - 0, 0, 0, 0, 0, 2009, 1782, 1783, 1784, 1785, - 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1804, 1805, 1806, - 1807, 1808, 1809, 1802, 1803, 0, 0, 0, 0, 2027, - 0, 0, 0, 0, 0, 0, 0, 0, 2015, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 721, - 0, 0, 0, 0, 0, 0, 0, 3655, 0, 0, + 1140, 0, 0, 287, 288, 289, 290, 0, 0, 281, + 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, + 0, 465, 527, 651, 0, 0, 0, 0, 0, 0, + 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, + 640, 439, 440, 0, 642, 643, 644, 641, 375, 426, + 445, 433, 0, 657, 518, 519, 658, 629, 0, 1125, + 0, 0, 0, 1115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1148, 1152, 1154, 1156, 1158, 1159, 1161, 0, 1166, 1162, + 1163, 1164, 1165, 0, 1143, 1144, 1145, 1146, 1123, 1124, + 1149, 0, 1126, 0, 1128, 1129, 1130, 1131, 1127, 1132, + 1133, 1134, 1135, 1136, 1139, 1141, 1137, 1138, 1147, 0, + 0, 0, 2037, 0, 1125, 0, 1151, 1153, 1155, 1157, + 1160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1148, 1152, 1154, 1156, 1158, + 1159, 1161, 0, 1166, 1162, 1163, 1164, 1165, 2040, 1143, + 1144, 1145, 1146, 1123, 1124, 1149, 1142, 1126, 0, 1128, + 1129, 1130, 1131, 1127, 1132, 1133, 1134, 1135, 1136, 1139, + 1141, 1137, 1138, 1147, 0, 0, 0, 0, 0, 2037, + 0, 1151, 1153, 1155, 1157, 1160, 206, 0, 0, 0, + 0, 0, 3824, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2014, 0, 0, 0, 0, 0, 0, 3648, + 0, 0, 0, 0, 0, 2040, 0, 2037, 0, 0, + 0, 1142, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2040, 0, 0, 0, 0, 0, 202, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2014, + 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2037, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2014, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2040, 0, 0, 0, 1261, 1262, 1263, 1260, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2030, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2018, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2024, 0, 0, 0, 0, + 0, 3795, 0, 0, 2014, 2030, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2012, 2046, 0, 0, 2013, + 2015, 2017, 0, 2019, 2020, 2021, 2025, 2026, 2027, 2029, + 2032, 2033, 2034, 0, 1802, 0, 0, 0, 0, 0, + 2022, 2031, 2023, 0, 0, 0, 0, 0, 0, 0, + 0, 2018, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2024, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2030, 1802, 0, 0, 2038, 1150, 0, 0, + 0, 0, 2012, 2046, 0, 0, 2013, 2015, 2017, 2018, + 2019, 2020, 2021, 2025, 2026, 2027, 2029, 2032, 2033, 2034, + 2024, 0, 0, 0, 0, 0, 0, 2022, 2031, 2023, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2012, 2046, 0, 0, 2013, 2015, 2017, 2035, 2019, 2020, + 2021, 2025, 2026, 2027, 2029, 2032, 2033, 2034, 0, 0, + 0, 0, 1150, 2038, 2011, 2022, 2031, 2023, 0, 0, + 0, 2010, 0, 0, 0, 0, 2018, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2024, 0, 0, + 0, 0, 0, 0, 0, 2028, 0, 0, 0, 0, + 0, 2038, 0, 0, 2016, 0, 0, 2012, 2046, 0, + 0, 2013, 2015, 2017, 2035, 2019, 2020, 2021, 2025, 2026, + 2027, 2029, 2032, 2033, 2034, 0, 0, 0, 1798, 0, + 0, 2011, 2022, 2031, 2023, 1795, 0, 0, 2010, 1797, + 1794, 1796, 1800, 1801, 0, 0, 0, 1799, 0, 0, + 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2028, 0, 0, 0, 0, 1798, 2038, 2011, + 0, 2016, 0, 0, 1795, 0, 2010, 0, 1797, 1794, + 1796, 1800, 1801, 0, 0, 0, 1799, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2028, 0, 0, 0, 0, 0, 0, 0, 0, 2016, + 0, 0, 3656, 0, 0, 0, 0, 0, 0, 2035, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2011, 0, 0, 0, + 0, 0, 0, 2010, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2028, 0, 0, + 0, 0, 0, 0, 0, 0, 2016, 0, 0, 3652, + 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 1793, 1805, 1806, 1807, 1808, 1809, 1810, 1803, 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3656, 0, 1783, + 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, + 1805, 1806, 1807, 1808, 1809, 1810, 1803, 1804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3655, + 0, 0, 0, 0, 3656, } var yyPact = [...]int{ - 4144, -1000, -1000, -1000, -338, 15461, -1000, -1000, -1000, -1000, + 361, -1000, -1000, -1000, -341, 15195, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 49945, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 49733, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 464, 49945, -336, 31443, 48031, -1000, -1000, 2788, -1000, - 48669, 17395, 49945, 560, 559, 49945, -1000, -1000, -1000, -1000, + -1000, 431, 49733, -339, 31202, 47816, -1000, -1000, 2802, -1000, + 48455, 17132, 49733, 532, 530, 49733, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 984, -1000, 54411, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 916, 55059, 53773, 11606, - -228, -1000, 1559, -37, 2671, 467, -196, -214, 1137, 1147, - 1220, 1266, 49945, 1114, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 233, 999, 49307, + -1000, -1000, -1000, -1000, 942, -1000, 54206, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 866, 5114, 53567, 11334, + -224, -1000, 1625, -43, 2669, 500, -206, -207, 1120, 1126, + 1140, 1044, 49733, 1091, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 474, 965, 49094, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 4249, 251, 974, 999, 22507, 149, - 140, 1559, 482, -81, 210, -1000, 1804, 362, 197, -1000, + -1000, -1000, -1000, -1000, 4276, 238, 939, 965, 22252, 117, + 107, 1625, 451, -91, 182, -1000, 1915, 4154, 194, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 11606, 11606, 15461, -376, 15461, 11606, 49945, 49945, -1000, -1000, - -1000, -1000, -336, 48669, 916, 55059, 11606, 2671, 467, -196, - -214, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 11334, 11334, 15195, -401, 15195, 11334, 49733, 49733, -1000, -1000, + -1000, -1000, -339, 48455, 866, 5114, 11334, 2669, 500, -206, + -207, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -81, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -91, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7398,7 +7397,7 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 140, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 107, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7416,424 +7415,424 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 5223, -1000, 1775, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 54713, -1000, 1685, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2471, 3238, 1774, 2670, 850, 48031, - 49945, -1000, 145, 850, -1000, -1000, -1000, 1559, 3634, -1000, - 49945, 49945, 259, 2000, -1000, 566, 598, 546, 469, 387, - 1762, -1000, -1000, -1000, -1000, -1000, -1000, 782, 3575, -1000, - 49945, 49945, 3249, 49945, -1000, 2487, 821, -1000, 4259, 3420, - 1511, 1020, 3274, -1000, -1000, 3236, -1000, 396, 473, 275, - 475, 462, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 328, - -1000, 3479, -1000, -1000, 376, -1000, -1000, 377, -1000, -1000, - -1000, 138, -1000, -1000, -1000, -1000, -1000, -1000, 19, -1000, - -1000, 1184, 2302, 11606, 2265, -1000, 3011, 1767, -1000, -1000, - -1000, 7113, 14170, 14170, 14170, 14170, 49945, -1000, -1000, 3082, - 11606, 3233, 3230, 3229, 3220, -1000, -1000, -1000, -1000, -1000, - -1000, 3218, 1761, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2120, -1000, -1000, -1000, 14811, -1000, 3217, 3216, - 3215, 3213, 3212, 3211, 3209, 3206, 3205, 3204, 3198, 3194, - 3193, 3191, 2901, 16747, 3189, 2666, 2665, 3187, 3186, 3185, - 2664, 3179, 3178, 3175, 2901, 2901, 3174, 3169, 3168, 3163, - 3162, 3161, 3160, 3159, 3154, 3153, 3151, 3146, 3144, 3138, - 3136, 3135, 3134, 3123, 3122, 3120, 3119, 3117, 3116, 3111, - 3110, 3107, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2425, 3153, 1681, 2668, 803, + 47816, 49733, -1000, 137, 803, -1000, -1000, -1000, 1625, 3466, + -1000, 49733, 49733, 202, 1917, -1000, 569, 479, 454, 435, + 344, 1675, -1000, -1000, -1000, -1000, -1000, -1000, 677, 3446, + -1000, 49733, 49733, 3168, 49733, -1000, 2364, 735, -1000, 4337, + 3300, 1397, 984, 3177, -1000, -1000, 3152, -1000, 360, 755, + 327, 825, 427, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 332, -1000, 3361, -1000, -1000, 348, -1000, -1000, 341, -1000, + -1000, -1000, 100, -1000, -1000, -1000, -1000, -1000, -1000, -16, + -1000, -1000, 1266, 2291, 11334, 2728, -1000, 4063, 1696, -1000, + -1000, -1000, 6834, 13902, 13902, 13902, 13902, 49733, -1000, -1000, + 3013, 11334, 3150, 3149, 3148, 3147, -1000, -1000, -1000, -1000, + -1000, -1000, 3146, 1674, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 2068, -1000, -1000, -1000, 14544, -1000, 3145, + 3144, 3143, 3142, 3141, 3139, 3137, 3136, 3134, 3132, 3128, + 3125, 3124, 3123, 2859, 16483, 3115, 2667, 2665, 3114, 3113, + 3111, 2659, 3110, 3107, 3106, 2859, 2859, 3105, 3104, 3097, + 3096, 3095, 3093, 3090, 3088, 3083, 3080, 3079, 3078, 3076, + 3075, 3074, 3068, 3067, 3065, 3064, 3062, 3061, 3060, 3058, + 3057, 3055, 3050, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1483, -1000, 3106, 3588, - 2953, -1000, 3466, 3464, 3458, 3456, -267, 3105, 2365, -1000, - -1000, 100, 3571, 49945, -290, 49945, 420, -89, -95, -100, - -1000, -79, -1000, -1000, 1129, -1000, 1094, 53135, 941, -1000, - -1000, 49945, 914, 914, 914, 49945, 49945, 232, 982, 914, - 914, 914, 914, 914, 944, 914, 3500, 970, 969, 966, - 965, 914, -35, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1998, 1994, 3343, 1085, -1000, -1000, -1000, -1000, 1640, 49945, - -1000, 3026, 420, -311, 1836, 1836, 3557, 3557, 3495, 3494, - 834, 825, 824, 1836, 671, -1000, 1947, 1947, 1947, 1947, - 1836, 543, 819, 3503, 3503, 214, 1947, 101, 1836, 1836, - 101, 1836, 1836, -1000, 1958, 304, -276, -1000, -1000, -1000, - -1000, 1947, 1947, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 3474, 3473, 916, 916, 49945, 916, 221, 49945, 916, 916, - 916, 49945, 918, -325, 51, 52497, 51859, 2262, 2487, 806, - 804, 1652, 2009, -1000, 1846, 49945, 49945, 1846, 1846, 25701, - 25063, -1000, 49945, -1000, 3588, 2953, 2883, 1527, 2882, 2953, - -102, 420, 916, 916, 916, 916, 916, 339, 916, 916, - 916, 916, 916, 49945, 49945, 47393, 916, 916, 916, 916, - 9677, 1804, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 15461, 2185, 2249, 196, -12, - -313, 297, -1000, -1000, 49945, 3389, 349, -1000, -1000, -1000, - 2997, -1000, 3010, 3010, 3010, 3010, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 3010, 3010, 3025, 3104, - -1000, -1000, 3009, 3009, 3009, 2997, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1373, -1000, 3039, + 3465, 2950, -1000, 3349, 3336, 3333, 3331, -275, 3037, 2314, + -1000, -1000, 96, 3445, 49733, -297, 49733, 413, -100, -101, + -113, -1000, -80, -1000, -1000, 1102, -1000, 1075, 52928, 906, + -1000, -1000, 49733, 862, 862, 862, 49733, 49733, 216, 1069, + 862, 862, 862, 862, 862, 860, 862, 3377, 937, 936, + 935, 932, 862, -47, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 1916, 1913, 3238, 1038, -1000, -1000, -1000, -1000, 1525, + 49733, -1000, 2967, 413, -327, 1740, 1740, 3430, 3430, 3376, + 3375, 767, 759, 753, 1740, 573, -1000, 1860, 1860, 1860, + 1860, 1740, 494, 762, 3382, 3382, 104, 1860, 49, 1740, + 1740, 49, 1740, 1740, -1000, 1839, 314, -287, -1000, -1000, + -1000, -1000, 1860, 1860, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 3356, 3354, 866, 866, 49733, 866, 208, 49733, 866, + 866, 866, 49733, 876, -326, 48, 52289, 51650, 2386, 2364, + 708, 689, 1535, 1912, -1000, 1763, 49733, 49733, 1763, 1763, + 25451, 24812, -1000, 49733, -1000, 3465, 2950, 2839, 1720, 2833, + 2950, -114, 413, 866, 866, 866, 866, 866, 317, 866, + 866, 866, 866, 866, 49733, 49733, 47177, 866, 866, 866, + 866, 9402, 1915, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 15195, 2186, 2169, 190, + -21, -317, 264, -1000, -1000, 49733, 3278, 322, -1000, -1000, + -1000, 2935, -1000, 2952, 2952, 2952, 2952, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2952, 2952, 2966, + 3032, -1000, -1000, 2948, 2948, 2948, 2935, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 3013, 3013, 3021, 3021, 3013, 49945, -120, -1000, -1000, - 11606, 49945, 3413, 430, 3092, 850, -1000, -1000, 49945, 321, - 432, 3588, 3408, 3503, 3547, -1000, -1000, 1759, 2364, 2661, - -1000, 387, -1000, 415, 387, -1000, 570, 570, 1813, -1000, - 1205, -1000, -1000, -1000, -1000, -1000, -1000, 49945, 19, 456, - -1000, -1000, 2642, 3091, -1000, 687, 1319, 1655, -1000, 381, - 4537, 40375, 2487, 40375, 49945, -1000, -1000, -1000, -1000, -1000, - -1000, 126, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 2960, 2960, 2964, 2964, 2960, 49733, -134, -1000, + -1000, 11334, 49733, 3293, 412, 3022, 803, -1000, -1000, 49733, + 310, 419, 3465, 3289, 3382, 3409, -1000, -1000, 1657, 2313, + 2658, -1000, 344, -1000, 539, 344, -1000, 576, 576, 1778, + -1000, 1280, -1000, -1000, -1000, -1000, -1000, -1000, 49733, -16, + 475, -1000, -1000, 2652, 3020, -1000, 635, 1234, 1584, -1000, + 277, 4851, 40148, 2364, 40148, 49733, -1000, -1000, -1000, -1000, + -1000, -1000, 81, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 378, -1000, 11606, 11606, - 11606, 11606, 11606, -1000, 775, 13529, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 14170, 14170, 14170, 14170, 14170, 14170, 14170, - 14170, 14170, 14170, 14170, 14170, 3079, 1925, 14170, 14170, 14170, - 14170, 28253, 1527, 3273, 1651, 301, 1767, 1767, 1767, 1767, - 11606, -1000, 2012, 2302, 11606, 11606, 11606, 11606, 34633, 49945, - -1000, -1000, 55027, 11606, 11606, 3800, 11606, 3443, 11606, 11606, - 11606, 2878, 5822, 49945, 11606, -1000, 2875, 2872, -1000, -1000, - 2128, 11606, -1000, -1000, 11606, -1000, -1000, 11606, 14170, 11606, - -1000, 11606, 11606, 11606, -1000, -1000, 2907, 3443, 3443, 3443, - 1913, 11606, 11606, 3443, 3443, 3443, 1907, 3443, 3443, 3443, - 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 2866, 2865, - 2862, 10965, 3503, -228, -1000, 9036, 3408, 3503, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -269, 3090, - 49945, 2660, 2659, -346, 183, 468, 49945, 1219, -1000, -1000, - 49945, 2359, 49945, 2356, 80, 1130, 1100, 1107, -1000, -1000, - 49945, 51221, -1000, 49945, 2026, 49945, 49945, 3436, -1000, 3087, - 49945, 914, 914, 914, -1000, 45479, 40375, 49945, 49945, 2487, - 49945, 49945, 49945, 914, 914, 914, 914, 49945, -1000, 3364, - 40375, 3347, 918, -1000, 49945, 1640, 3432, 49945, -1000, -1000, - -1000, -1000, 3557, 14170, 14170, -1000, -1000, 11606, -1000, 276, - 46755, 1947, 1836, 1836, -1000, -1000, 49945, -1000, -1000, -1000, - 1947, 49945, 1947, 1947, 3557, 1947, -1000, -1000, -1000, 1836, - 1836, -1000, -1000, 11606, -1000, -1000, 1947, 1947, -1000, -1000, - 3557, 49945, 123, 3557, 3557, 115, -1000, -1000, -1000, 1836, - 49945, 49945, 914, 49945, -1000, 49945, 49945, -1000, -1000, 49945, - 49945, 4575, 49945, 45479, 46117, 3471, -1000, 40375, 49945, 49945, - 1638, -1000, 940, 37823, -1000, 49945, 1500, -1000, 74, -1000, - 61, 51, 1846, 51, 1846, 939, -1000, 680, 816, 23787, - 616, 40375, 6463, -1000, -1000, 1846, 1846, 6463, 6463, 1784, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1614, -1000, 298, - 3503, -1000, -1000, -1000, -1000, -1000, 2354, -1000, 49945, 45479, - 40375, 2487, 49945, 916, 49945, 49945, 49945, 49945, 49945, -1000, - 3086, 1742, -1000, 3418, 49945, 49945, 49945, 49945, 1606, -1000, - -1000, 20585, 1727, -1000, -1000, 2021, -1000, 11606, 15461, -255, - 11606, 15461, 15461, 11606, 15461, -1000, 11606, 312, -1000, -1000, - -1000, -1000, 2353, -1000, 2350, -1000, -1000, -1000, -1000, -1000, - 2657, 2657, -1000, 2347, -1000, -1000, -1000, -1000, 2343, -1000, - -1000, 2331, -1000, -1000, -1000, -1000, -169, 2855, 1184, -1000, - 2656, 3272, -229, -1000, 21869, 49945, 49945, 430, -355, 1992, - 1990, 1986, 3487, -1000, -229, -1000, 21227, 49945, 3503, -1000, - -233, 3408, 11606, 49945, -1000, 3493, -1000, -1000, 387, -1000, - -1000, -1000, 570, 444, -1000, -1000, -1000, -1000, -1000, -1000, - 1720, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -83, -85, 1589, -1000, 49945, -1000, -1000, 381, 40375, - 42289, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 265, -1000, - -1000, 181, -1000, 938, 289, 1800, -1000, -1000, 228, 211, - 224, 1028, 2302, -1000, 2070, 2070, 2032, -1000, 761, -1000, - -1000, -1000, -1000, 3082, -1000, -1000, -1000, 3841, 2192, -1000, - 1880, 1880, 1704, 1704, 1704, 1704, 1704, 2141, 2141, -1000, - -1000, -1000, 7113, 3079, 14170, 14170, 14170, 14170, 987, 987, - 3758, 2786, -1000, -1000, -1000, -1000, 11606, 180, 2018, -1000, - 11606, 2592, 1654, 2558, 1566, 1790, -1000, 2997, 11606, 1719, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 313, -1000, 11334, + 11334, 11334, 11334, 11334, -1000, 1042, 13260, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 13902, 13902, 13902, 13902, 13902, 13902, + 13902, 13902, 13902, 13902, 13902, 13902, 3011, 2029, 13902, 13902, + 13902, 13902, 28007, 1720, 3091, 1529, 305, 1696, 1696, 1696, + 1696, 11334, -1000, 1931, 2291, 11334, 11334, 11334, 11334, 34397, + 49733, -1000, -1000, 55030, 11334, 11334, 55069, 11334, 3329, 11334, + 11334, 11334, 2829, 5541, 49733, 11334, -1000, 2828, 2827, -1000, + -1000, 2124, 11334, -1000, -1000, 11334, -1000, -1000, 11334, 13902, + 11334, -1000, 11334, 11334, 11334, -1000, -1000, 1477, 3329, 3329, + 3329, 1929, 11334, 11334, 3329, 3329, 3329, 1908, 3329, 3329, + 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 2823, + 2822, 2819, 10692, 3382, -224, -1000, 8760, 3289, 3382, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -279, + 3017, 49733, 2657, 2656, -350, 172, 458, 49733, 1150, -1000, + -1000, 49733, 2307, 49733, 2300, 72, 1103, 1043, 1079, -1000, + -1000, 49733, 51011, -1000, 49733, 1977, 49733, 49733, 3318, -1000, + 3015, 49733, 862, 862, 862, -1000, 45260, 40148, 49733, 49733, + 2364, 49733, 49733, 49733, 862, 862, 862, 862, 49733, -1000, + 3248, 40148, 3242, 876, -1000, 49733, 1525, 3317, 49733, -1000, + -1000, -1000, -1000, 3430, 13902, 13902, -1000, -1000, 11334, -1000, + 232, 46538, 1860, 1740, 1740, -1000, -1000, 49733, -1000, -1000, + -1000, 1860, 49733, 1860, 1860, 3430, 1860, -1000, -1000, -1000, + 1740, 1740, -1000, -1000, 11334, -1000, -1000, 1860, 1860, -1000, + -1000, 3430, 49733, 64, 3430, 3430, 131, -1000, -1000, -1000, + 1740, 49733, 49733, 862, 49733, -1000, 49733, 49733, -1000, -1000, + 49733, 49733, 4765, 49733, 45260, 45899, 3353, -1000, 40148, 49733, + 49733, 1513, -1000, 904, 37592, -1000, 49733, 1453, -1000, 17, + -1000, 62, 48, 1763, 48, 1763, 903, -1000, 632, 797, + 23534, 572, 40148, 6183, -1000, -1000, 1763, 1763, 6183, 6183, + 1699, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1504, -1000, + 266, 3382, -1000, -1000, -1000, -1000, -1000, 2297, -1000, 49733, + 45260, 40148, 2364, 49733, 866, 49733, 49733, 49733, 49733, 49733, + -1000, 3014, 1653, -1000, 3297, 49733, 49733, 49733, 49733, 1362, + -1000, -1000, 20327, 1627, -1000, -1000, 1972, -1000, 11334, 15195, + -257, 11334, 15195, 15195, 11334, 15195, -1000, 11334, 311, -1000, + -1000, -1000, -1000, 2293, -1000, 2292, -1000, -1000, -1000, -1000, + -1000, 2655, 2655, -1000, 2285, -1000, -1000, -1000, -1000, 2283, + -1000, -1000, 2282, -1000, -1000, -1000, -1000, -166, 2818, 1266, + -1000, 2654, 3176, -226, -1000, 21613, 49733, 49733, 412, -358, + 1909, 1903, 1902, 3365, -1000, -226, -1000, 20970, 49733, 3382, + -1000, -231, 3289, 11334, 49733, -1000, 3371, -1000, -1000, 344, + -1000, -1000, -1000, 576, 415, -1000, -1000, -1000, -1000, -1000, + -1000, 1626, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -93, -94, 1482, -1000, 49733, -1000, -1000, 277, + 40148, 42065, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 260, + -1000, -1000, 176, -1000, 898, 240, 1775, -1000, -1000, 212, + 203, 213, 963, 2291, -1000, 1983, 1983, 1986, -1000, 728, + -1000, -1000, -1000, -1000, 3013, -1000, -1000, -1000, 1843, 2193, + -1000, 1914, 1914, 1690, 1690, 1690, 1690, 1690, 2006, 2006, + -1000, -1000, -1000, 6834, 3011, 13902, 13902, 13902, 13902, 949, + 949, 4164, 4078, -1000, -1000, -1000, -1000, 11334, 185, 1925, + -1000, 11334, 2595, 1539, 2383, 1382, 1768, -1000, 2935, 11334, + 1618, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2815, 2814, 2532, 3444, 2813, 11334, -1000, -1000, 1766, + 1754, 1749, -1000, 2264, 10050, -1000, -1000, -1000, 2811, 1613, + 2804, -1000, -1000, -1000, 2803, 1748, 1218, 2800, 1937, 2797, + 2796, 2790, 2788, 1480, 11334, 11334, 11334, 11334, 2787, 1745, + 1744, 11334, 11334, 11334, 11334, 2785, 11334, 11334, 11334, 11334, + 11334, 11334, 11334, 11334, 11334, 11334, 49733, 151, 151, 151, + 1465, 1464, -1000, -1000, 1743, -1000, 2291, -1000, -1000, 3289, + -1000, 3007, 2280, 1458, -1000, -1000, -336, 2547, 49733, 49733, + 168, 49733, 2648, -298, 49733, -1000, -1000, 2646, -1000, -1000, + -1000, 1114, 1065, 1086, -1000, 49733, -1000, 2636, 3290, 3370, + 856, 49733, 1159, 3003, 49733, 49733, 49733, 291, -1000, -1000, + 1349, -1000, 240, -29, 537, 1341, 3167, 3443, -137, 49733, + 49733, 49733, 49733, 3315, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 44621, -1000, 3002, 1728, -1000, -1000, 1696, 1696, + 2291, 49733, 49733, 49733, 3165, 49733, 49733, 3430, 3430, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1860, 3430, 3430, 1432, + 1740, 1860, -1000, -1000, 1860, -358, -1000, 1860, -1000, -358, + 1597, -358, 49733, -1000, -1000, -1000, 3308, 2967, 1454, -1000, + -1000, -1000, 3408, 1781, 844, 844, 1136, 748, 3407, 19049, + -1000, 1782, 1339, 895, 3268, 355, -1000, 1782, -163, 819, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 652, 650, 1782, + 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, + 1125, 1782, 1782, 1782, 1782, 1782, -1000, 1782, 2997, 519, + -1000, -1000, -1000, -1000, -1000, -1000, 727, 597, 288, 3348, + 398, -1000, 392, 1349, 666, 3344, 421, 49733, 49733, 3559, + 1283, -1000, -1000, -1000, -1000, -1000, 28646, 28646, 22895, 28646, + -1000, 196, 1763, 48, 6, -1000, -1000, 1453, 6183, 1453, + 6183, 2262, -1000, -1000, 892, -1000, -1000, 1341, -1000, 49733, + 49733, -1000, -1000, 2994, 1900, -1000, -1000, 16483, -1000, 6183, + 6183, -1000, -1000, 30563, 49733, -1000, -23, -1000, 0, 3289, + -1000, 1331, -1000, -1000, 1445, 1341, 3175, 49733, 1331, 1331, + 1331, -1000, -1000, 17771, 49733, 49733, -1000, -1000, -1000, -1000, + 3430, 9402, -1000, 37592, -1000, -1000, 43982, -1000, 43343, 1842, + -1000, 15195, 2145, 188, -1000, 251, -325, 186, 2090, 184, + 2291, -1000, -1000, 2784, 2783, 1727, -1000, 1719, 2782, 1714, + 1713, 2260, -1000, 40, -1000, 3280, 1344, -1000, 2982, -1000, + 1706, 3234, -1000, 1442, -1000, 1899, 1701, -1000, -1000, -1000, + 11334, 42704, 11334, 1016, 1344, 1687, 3232, 1442, 3289, 2633, + -1000, 1425, -1000, 2251, 1592, 195, -1000, -1000, -1000, 49733, + 2652, 1686, 42065, 1363, -1000, 890, 1591, 1590, -1000, 40148, + 328, 40148, -1000, 40148, -1000, -1000, 400, -1000, 49733, 3283, + -1000, -1000, -1000, 2547, 1898, -356, 49733, -1000, -1000, -1000, + -1000, -1000, 1683, -1000, 949, 949, 4164, 3932, -1000, 13902, + -1000, 13902, 3072, -1000, 1822, -1000, 11334, 2123, 4768, 11334, + 4768, 1783, 26729, 34397, -119, 3287, 3041, 49733, -1000, -1000, + 11334, 11334, -1000, 3023, -1000, -1000, -1000, -1000, 11334, 11334, + 2258, -1000, 49733, -1000, -1000, -1000, -1000, 26729, -1000, 13902, + -1000, -1000, -1000, -1000, 11334, 1287, 1287, 3018, 1679, 151, + 151, 151, 3005, 3000, 2962, 1677, 151, 2958, 2946, 2926, + 2877, 2870, 2821, 2817, 2778, 2639, 2506, 1668, -1000, 2981, + -1000, -1000, 2036, 12618, 8760, -1000, -1000, 296, 1421, 2257, + 2631, 121, -1000, 1897, -1000, 2623, 49733, 49733, 1147, -1000, + 49733, 3442, -1000, -1000, -1000, -1000, 1062, -1000, 2612, -1000, + 274, 272, 2126, 306, 2781, 1415, -1000, -1000, 49733, -1000, + -1000, -1000, 17771, 2967, 2979, 2967, 138, 1782, 620, 40148, + 660, -1000, 49733, 2065, 1893, 3174, 1013, 3275, 49733, 2978, + 426, 2973, 2972, 3307, 510, 54778, 49733, 1327, -1000, 1572, + 4154, -1000, 49733, -1000, -1000, 49733, -1000, 2364, -1000, 1740, + -1000, -1000, 3430, -1000, -1000, 11334, 11334, 3430, 1740, 1740, + -1000, 1860, -1000, 49733, -1000, -358, 510, 54778, 3305, 5024, + 570, 2844, -1000, 49733, -1000, -1000, -1000, 857, -1000, 1053, + 862, 49733, 2010, 1053, 2009, 2970, -1000, -1000, 49733, 49733, + 49733, 49733, -1000, -1000, 49733, -1000, 49733, 49733, 49733, 49733, + 49733, 41426, -1000, 49733, 49733, -1000, 49733, 2008, 49733, 2002, + 3298, -1000, 1782, 1782, 1004, -1000, -1000, 627, -1000, 41426, + 2248, 2228, 2227, 2196, 2606, 2585, 2584, 1782, 1782, 2191, + 2575, 40787, 2572, 1181, 2178, 2177, 2172, 2349, 2570, 1231, + -1000, 2569, 2310, 2245, 2189, 49733, 2969, 2481, 514, -1000, + -1000, 2126, 138, 1782, 389, 49733, 1891, 1890, 620, 610, + 610, 536, -35, 24173, -1000, -1000, -1000, 49733, 37592, 37592, + 37592, 37592, 37592, 37592, -1000, 3216, 3193, 2968, -1000, 3197, + 3194, 3205, 3215, 3181, 49733, 37592, 2967, -1000, 40787, -1000, + -1000, -1000, 1720, 1661, 3740, 1034, 11334, 6183, -1000, -1000, + 8, 9, -1000, -1000, -1000, -1000, 40148, 2560, 572, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 3369, 49733, 49733, 772, + 2780, 1398, -1000, -1000, -1000, 54778, 2952, 2952, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2952, 2952, 2966, + -1000, -1000, 2948, 2948, 2948, 2935, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2960, 2960, 2964, 2964, + 2960, -1000, -1000, 3414, -1000, 1394, -1000, -1000, 1564, -1000, + 1935, -342, 15195, 1857, 1756, -1000, 11334, 15195, 11334, -259, + 375, -261, -1000, -1000, -1000, 2558, -1000, -1000, -1000, 2170, + -1000, 2164, -1000, 189, 198, 2000, -226, 8760, 444, 49733, + -226, 49733, 8760, -1000, 49733, 177, -375, -376, 162, 2552, + 396, -226, 3369, 40, 11334, 3262, -1000, -1000, 49733, 2162, + -1000, -1000, -1000, 3439, 40148, 2364, 1723, 39509, -1000, 346, + -1000, 258, 634, 2551, -1000, 931, 115, 2549, 2547, -1000, + -1000, -1000, -1000, 13902, 1696, -1000, -1000, -1000, 2291, 11334, + 2779, -1000, 1029, 1029, 2240, 2764, 2760, -1000, 2952, 2952, + -1000, 2935, 2948, 2935, 1029, 1029, 2759, -1000, 2924, -1000, + 3287, -1000, 2209, 2500, -1000, 2493, 2485, 11334, -1000, 2758, + 3845, 1512, -54, -194, 151, 151, -1000, -1000, -1000, -1000, + 151, 151, 151, 151, -1000, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 812, -103, -292, -106, + -293, -1000, 2750, 1376, -1000, -1000, -1000, -1000, -1000, 55069, + 1375, 546, 546, 2547, 2545, -1000, 884, 2544, 1110, 49733, + 2542, -302, -1000, 2540, -1000, -1000, 49733, 49733, 49733, 50372, + 594, 49733, 49733, 2538, -1000, 2536, 2534, 1159, 54778, 2748, + 3303, 18410, 3302, 2175, -1000, -1000, -1000, 29924, 610, -1000, + -1000, -1000, 715, 373, 2161, 579, -1000, 49733, 541, 3252, + 1889, 2533, 49733, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 3275, -1000, 967, 470, 36314, 15844, -1000, 397, 49733, + -1000, 18410, 18410, 397, 492, 1878, -1000, 803, 1256, 128, + 37592, 49733, -1000, 36953, 2747, -1000, -1000, 1341, 3430, -1000, + 2291, 2291, -358, 3430, 3430, 1740, -1000, -1000, 492, -1000, + 397, -1000, 1569, 19688, 557, 508, 443, -1000, 705, -1000, + -1000, 794, 3260, 54778, -1000, 49733, -1000, 49733, -1000, 49733, + 49733, 862, 11334, 3260, 49733, 883, -1000, 1161, 511, 456, + 784, 784, 1366, -1000, 3287, -1000, -1000, 1364, -1000, -1000, + -1000, -1000, 49733, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 26729, 26729, 3339, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2520, 2519, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2854, 2839, 2474, 3570, 2837, 11606, -1000, -1000, 1777, 1768, - 1765, -1000, 2367, 10324, -1000, -1000, -1000, 2835, 1703, 2825, - -1000, -1000, -1000, 2822, 1763, 1311, 2821, 1488, 2817, 2800, - 2799, 2798, 1569, 11606, 11606, 11606, 11606, 2796, 1753, 1748, - 11606, 11606, 11606, 11606, 2795, 11606, 11606, 11606, 11606, 11606, - 11606, 11606, 11606, 11606, 11606, 49945, 146, 146, 146, 1535, - 1534, -1000, -1000, 1744, -1000, 2302, -1000, -1000, 3408, -1000, - 3078, 2324, 1513, -1000, -1000, -332, 2590, 49945, 49945, 166, - 49945, 2655, -293, 49945, -1000, -1000, 2647, -1000, -1000, -1000, - 1127, 1091, 1110, -1000, 49945, -1000, 2645, 3399, 3492, 960, - 49945, 1262, 3064, 49945, 49945, 49945, 322, -1000, -1000, 1314, - -1000, 289, -3, 565, 1204, 3244, 3569, -121, 49945, 49945, - 49945, 49945, 3431, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 44841, -1000, 3060, 1743, -1000, -1000, 1767, 1767, 2302, - 49945, 49945, 49945, 3227, 49945, 49945, 3557, 3557, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1947, 3557, 3557, 1466, 1836, - 1947, -1000, -1000, 1947, -355, -1000, 1947, -1000, -355, 1692, - -355, 49945, -1000, -1000, -1000, 3430, 3026, 1505, -1000, -1000, - -1000, 3546, 1615, 889, 889, 1135, 820, 3545, 19309, -1000, - 1829, 1357, 937, 3369, 394, -1000, 1829, -160, 864, 1829, - 1829, 1829, 1829, 1829, 1829, 1829, 776, 767, 1829, 1829, - 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1141, - 1829, 1829, 1829, 1829, 1829, -1000, 1829, 3059, 549, -1000, - -1000, -1000, -1000, -1000, -1000, 798, 705, 319, 3469, 434, - -1000, 429, 1314, 674, 3461, 459, 49945, 49945, 3551, 1495, - -1000, -1000, -1000, -1000, -1000, 28891, 28891, 23149, 28891, -1000, - 205, 1846, 51, 72, -1000, -1000, 1500, 6463, 1500, 6463, - 2323, -1000, -1000, 936, -1000, -1000, 1204, -1000, 49945, 49945, - -1000, -1000, 3058, 1984, -1000, -1000, 16747, -1000, 6463, 6463, - -1000, -1000, 30805, 49945, -1000, 3, -1000, 28, 3408, -1000, - 1189, -1000, -1000, 1468, 1204, 3270, 49945, 1189, 1189, 1189, - -1000, -1000, 18033, 49945, 49945, -1000, -1000, -1000, -1000, 3557, - 9677, -1000, 37823, -1000, -1000, 44203, -1000, 43565, 2004, -1000, - 15461, 2150, 192, -1000, 281, -315, 190, 1991, 189, 2302, - -1000, -1000, 2782, 2781, 1738, -1000, 1736, 2775, 1733, 1732, - 2310, -1000, 97, -1000, 3391, 1209, -1000, 3056, -1000, 1730, - 3338, -1000, 1467, -1000, 1983, 1722, -1000, -1000, -1000, 11606, - 42927, 11606, 1060, 1209, 1721, 3323, 1467, 3408, 2643, -1000, - 1453, -1000, 2290, 1683, 195, -1000, -1000, -1000, 49945, 2642, - 1701, 42289, 1343, -1000, 932, 1682, 1677, -1000, 40375, 383, - 40375, -1000, 40375, -1000, -1000, 401, -1000, 49945, 3405, -1000, - -1000, -1000, 2590, 1968, -349, 49945, -1000, -1000, -1000, -1000, - -1000, 1700, -1000, 987, 987, 3758, 1932, -1000, 14170, -1000, - 14170, 3231, -1000, 1988, -1000, 11606, 2119, 5115, 11606, 5115, - 1009, 26977, 34633, -112, 3396, 3225, 49945, -1000, -1000, 11606, - 11606, -1000, 3221, -1000, -1000, -1000, -1000, 11606, 11606, 2129, - -1000, 49945, -1000, -1000, -1000, -1000, 26977, -1000, 14170, -1000, - -1000, -1000, -1000, 11606, 1381, 1381, 3142, 1698, 146, 146, - 146, 3102, 3096, 3084, 1697, 146, 3023, 3005, 3000, 2988, - 2957, 2869, 2830, 2784, 2780, 2774, 1689, -1000, 3049, -1000, - -1000, 2118, 12888, 9036, -1000, -1000, 302, 1449, 2286, 2639, - 127, -1000, 1965, -1000, 2637, 49945, 49945, 1190, -1000, 49945, - 3565, -1000, -1000, -1000, -1000, 1089, -1000, 2631, -1000, 257, - 242, 2154, 360, 2769, 1444, -1000, -1000, 49945, -1000, -1000, - -1000, 18033, 3026, 3048, 3026, 177, 1829, 664, 40375, 795, - -1000, 49945, 2171, 1963, 3268, 584, 3387, 49945, 3047, 410, - 3046, 3044, 3429, 532, 5349, 49945, 1456, -1000, 1674, 362, - -1000, 49945, -1000, -1000, 49945, -1000, 2487, -1000, 1836, -1000, - -1000, 3557, -1000, -1000, 11606, 11606, 3557, 1836, 1836, -1000, - 1947, -1000, 49945, -1000, -355, 532, 5349, 3428, 4830, 756, - 2648, -1000, 49945, -1000, -1000, -1000, 897, -1000, 1080, 914, - 49945, 2085, 1080, 2079, 3039, -1000, -1000, 49945, 49945, 49945, - 49945, -1000, -1000, 49945, -1000, 49945, 49945, 49945, 49945, 49945, - 41651, -1000, 49945, 49945, -1000, 49945, 2076, 49945, 2071, 3373, - -1000, 1829, 1829, 1040, -1000, -1000, 683, -1000, 41651, 2284, - 2275, 2269, 2268, 2630, 2626, 2624, 1829, 1829, 2259, 2623, - 41013, 2622, 1320, 2258, 2256, 2255, 2349, 2611, 1062, -1000, - 2610, 2345, 2312, 2281, 49945, 3038, 2538, 547, -1000, -1000, - 2154, 177, 1829, 424, 49945, 1959, 1936, 664, 634, 634, - 564, -19, 24425, -1000, -1000, -1000, 49945, 37823, 37823, 37823, - 37823, 37823, 37823, -1000, 3302, 3297, 3037, -1000, 3310, 3296, - 3326, 3298, 2916, 49945, 37823, 3026, -1000, 41013, -1000, -1000, - -1000, 1527, 1686, 3961, 1067, 11606, 6463, -1000, -1000, 57, - 36, -1000, -1000, -1000, -1000, 40375, 2608, 616, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 3491, 49945, 49945, 876, 2768, - 1435, -1000, -1000, -1000, 5349, 3010, 3010, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 3010, 3010, 3025, -1000, - -1000, 3009, 3009, 3009, 2997, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 3013, 3013, 3021, 3021, 3013, - -1000, -1000, 3555, -1000, 1431, -1000, -1000, 1673, -1000, 2014, - -341, 15461, 2006, 1854, -1000, 11606, 15461, 11606, -256, 406, - -259, -1000, -1000, -1000, 2605, -1000, -1000, -1000, 2253, -1000, - 2251, -1000, 201, 222, 2069, -229, 9036, 455, 49945, -229, - 49945, 9036, -1000, 49945, 169, -361, -362, 161, 2604, 453, - -229, 3491, 97, 11606, 3366, -1000, -1000, 49945, 2247, -1000, - -1000, -1000, 3564, 40375, 2487, 1796, 39737, -1000, 374, -1000, - 261, 643, 2602, -1000, 955, 120, 2593, 2590, -1000, -1000, - -1000, -1000, 14170, 1767, -1000, -1000, -1000, 2302, 11606, 2767, - -1000, 1095, 1095, 2384, 2765, 2764, -1000, 3010, 3010, -1000, - 2997, 3009, 2997, 1095, 1095, 2763, -1000, 2994, -1000, 3396, - -1000, 2294, 2743, -1000, 2576, 2531, 11606, -1000, 2759, 3734, - 1414, -40, -197, 146, 146, -1000, -1000, -1000, -1000, 146, - 146, 146, 146, -1000, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 858, -101, -282, -104, -285, - -1000, 2750, 1429, -1000, -1000, -1000, -1000, -1000, 3800, 1393, - 580, 580, 2590, 2589, -1000, 931, 2586, 1125, 49945, 2585, - -305, -1000, 2584, -1000, -1000, 49945, 49945, 49945, 50583, 693, - 49945, 49945, 2579, -1000, 2577, 2573, 1262, 5349, 2749, 3427, - 18671, 3424, 2377, -1000, -1000, -1000, 30167, 634, -1000, -1000, - -1000, 763, 608, 2245, 624, -1000, 49945, 602, 3353, 1927, - 2570, 49945, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 3387, -1000, 1015, 518, 36547, 16109, -1000, 428, 49945, -1000, - 18671, 18671, 428, 523, 1942, -1000, 850, 1433, 141, 37823, - 49945, -1000, 37185, 2747, -1000, -1000, 1204, 3557, -1000, 2302, - 2302, -355, 3557, 3557, 1836, -1000, -1000, 523, -1000, 428, - -1000, 1735, 19947, 637, 519, 507, -1000, 706, -1000, -1000, - 845, 3361, 5349, -1000, 49945, -1000, 49945, -1000, 49945, 49945, - 914, 11606, 3361, 49945, 927, -1000, 1215, 493, 492, 872, - 872, 1388, -1000, 3396, -1000, -1000, 1384, -1000, -1000, -1000, - -1000, 49945, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 26977, - 26977, 3450, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 2569, 2568, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 49733, 1660, -1000, + 1879, 2155, 2512, 2175, 29924, 1876, 1763, 2511, 2505, 610, + -1000, 2504, 2503, -1000, 2065, 1875, 925, 49733, -1000, 1340, + 49733, 49733, -1000, 1318, -1000, 1869, 3162, 3172, 3162, -1000, + 3162, -1000, -1000, -1000, -1000, 3211, 2499, -1000, 3196, -1000, + 3195, -1000, -1000, -1000, -1000, 1318, -1000, -1000, -1000, -1000, + -1000, 1034, -1000, 3368, 1053, 1053, 1053, 2742, -1000, -1000, + -1000, -1000, 1363, 2741, -1000, -1000, -1000, 3455, -1000, -1000, + -1000, -1000, -1000, -1000, 17771, 3274, 3412, 3404, 38870, -1000, + -342, 1771, -1000, 2069, 181, 2062, 49733, -1000, -1000, -1000, + 2738, 2737, -234, 192, 3403, 3402, 1090, -1000, 2736, 1357, + -226, -1000, -1000, 1344, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -392, -226, -1000, 1344, -1000, 189, -1000, -1000, 3264, + -1000, -1000, 2364, -1000, 254, -1000, -1000, -1000, -1000, -1000, + -1000, 222, -1000, 49733, -1000, 1350, 109, -1000, 2291, -1000, + -1000, -1000, -1000, -1000, 4768, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2497, -1000, -1000, 11334, -1000, + -1000, -1000, 2453, -1000, -1000, 11334, 2735, 2494, 2734, 2490, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 49945, 1685, -1000, 1924, - 2223, 2564, 2377, 30167, 1915, 1846, 2563, 2561, 634, -1000, - 2560, 2557, -1000, 2171, 1912, 953, 49945, -1000, 1195, 49945, - 49945, -1000, 1340, -1000, 1883, 3242, 3260, 3242, -1000, 3242, - -1000, -1000, -1000, -1000, 3292, 2551, -1000, 3289, -1000, 3040, - -1000, -1000, -1000, -1000, 1340, -1000, -1000, -1000, -1000, -1000, - 1067, -1000, 3490, 1080, 1080, 1080, 2746, -1000, -1000, -1000, - -1000, 1343, 2736, -1000, -1000, -1000, 3583, -1000, -1000, -1000, - -1000, -1000, -1000, 18033, 3384, 3549, 3544, 39099, -1000, -341, - 1961, -1000, 2080, 184, 1985, 49945, -1000, -1000, -1000, 2735, - 2734, -235, 194, 3535, 3532, 1139, -1000, 2733, 1328, -229, - -1000, -1000, 1209, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -364, -229, -1000, 1209, -1000, 201, -1000, -1000, 3381, -1000, - -1000, 2487, -1000, 260, -1000, -1000, -1000, -1000, -1000, -1000, - 274, -1000, 49945, -1000, 1236, 119, -1000, 2302, -1000, -1000, - -1000, -1000, -1000, 5115, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2548, -1000, -1000, 11606, -1000, -1000, - -1000, 2509, -1000, -1000, 11606, 2732, 2546, 2731, 2545, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 3588, -1000, 3531, 1664, - 2730, 2728, 1647, 2727, 2726, -1000, 11606, 2724, 3800, 1049, - 2544, 1049, -1000, -1000, 454, 29529, 49945, 3559, -1000, 49945, - 2543, -1000, -1000, 49945, 2154, 691, 2154, 783, 49945, -1000, - -1000, -1000, -1000, -1000, 977, 428, 2723, 1222, -1000, -1000, - -1000, -1000, 428, -1000, 2539, 285, -1000, -1000, -1000, -1000, - 2222, -1000, -1000, 2229, 1737, 308, -1000, -1000, -1000, -1000, - -1000, -1000, 2372, 49945, 38461, 2374, 1875, -356, -1000, 2991, - -1000, 1829, 1829, 1829, 49945, 1645, -1000, 1829, 1829, 2722, - -1000, -1000, 2721, 2719, -122, 871, 1895, 1892, -1000, 2181, - 28891, 37823, 37185, 1325, -1000, 1670, -1000, -1000, -1000, -1000, - -1000, -1000, 3557, 871, -1000, 597, 2180, 14170, 2990, 14170, - 2983, 663, 2981, 1644, -1000, 49945, -1000, -1000, 49945, 4135, - 2980, -1000, 2978, 3223, 577, 2977, 2963, 49945, 2484, -1000, - 3361, 49945, 805, 3379, -1000, -1000, -1000, 461, -1000, -1000, - -1000, 712, -1000, 49945, -1000, 49945, -1000, 1757, -1000, 26977, - -1000, -1000, 1643, -1000, 2538, 2535, 3800, -1000, -1000, 285, - 2530, 6463, -1000, -1000, -1000, -1000, -1000, 3353, 2528, 2372, - 49945, -1000, 49945, 1195, 1195, 3588, 49945, 9036, -1000, -1000, - 11606, 2961, -1000, 11606, -1000, -1000, -1000, 2718, -1000, -1000, - -1000, -1000, -1000, 2959, 3380, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1454, -1000, 11606, 12247, -1000, 900, 15461, -260, - 403, -1000, -1000, -1000, -238, 2522, -1000, -1000, 3527, 2521, - 2404, 49945, -1000, -1000, 1209, -1000, 1209, -235, -1000, -1000, - 1204, -1000, -1000, 1170, 779, -1000, 2715, 278, -1000, 2453, - -1000, 2403, 146, -1000, 146, -1000, 277, 11606, -1000, 2519, - -1000, -1000, -1000, 2518, -1000, -1000, 2363, -1000, 2709, -1000, - 2517, -1000, -1000, 49945, -1000, -1000, 1119, 2513, -357, -1000, - 2511, 2154, 2510, 2154, 49945, 688, 5349, -129, -122, 18671, - -129, -1000, -1000, 398, 441, -1000, -1000, 2172, 685, -1000, - -1000, 2495, 662, -1000, 1195, -1000, 1874, 2098, 2442, 34633, - 26977, 28253, 2493, -1000, -1000, 36547, 1454, 1454, 5355, 378, - 55131, -1000, 2956, 1155, 1864, -1000, 2178, -1000, 2177, -1000, - 3557, 1325, 139, -1000, -1000, 1750, -1000, 1155, 2648, 3526, - -1000, 3668, 49945, 2910, 49945, 2955, 1858, 14170, -1000, 845, - 3126, -1000, -1000, 4135, -1000, -1000, 2094, 14170, -1000, -1000, - 2489, 28253, 1034, 1853, 1851, 1035, 2954, -1000, 719, 3582, - -1000, -1000, -1000, 1039, 2951, -1000, 2066, 2057, -1000, 49945, - -1000, 34633, 34633, 813, 813, 34633, 34633, 2950, 872, -1000, - -1000, 14170, -1000, -1000, 1829, -1000, -1000, -1000, 1829, 1752, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2374, -1000, -1000, - 1189, -1000, 3503, -1000, -1000, 2302, 49945, 2302, -1000, 35909, - -1000, 3524, 3522, -1000, 2302, 258, 252, 2949, 2947, -1000, - -341, 49945, 49945, -240, 2176, -1000, 2486, 225, -1000, -1000, - 1187, -238, -243, 115, 26977, 1850, -1000, 2700, 366, -148, - -1000, -1000, -1000, -1000, 2698, -1000, 644, -1000, -1000, -1000, - 1184, 2693, 2686, -1000, -1000, -1000, -1000, 49945, -1000, 2431, - -1000, 2485, -1000, 2483, 686, 2154, -116, -1000, -1000, 466, - -1000, -1000, -1000, 650, 2394, -1000, -1000, 439, -1000, -1000, - -1000, 2372, 2481, -1000, -1000, 109, -1000, 1843, 1635, -1000, - -1000, -1000, -1000, -1000, -1000, 842, -1000, 428, 55072, -1000, - 1357, 27615, -1000, 1170, 842, 549, 33357, 699, 305, -1000, - 2167, -1000, -1000, 3588, -1000, 698, -1000, 635, -1000, 1633, - -1000, 1632, 35271, 2160, 2880, -1000, 5417, 975, -1000, -1000, - 3758, -1000, -1000, -1000, -1000, -1000, -1000, 2480, 2464, -1000, - -1000, -1000, -1000, -1000, 2157, 2932, 1, 3446, 2451, -1000, - -1000, 2918, 1623, 1622, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1619, 1618, 34633, -1000, -1000, 3758, - 2156, 26977, 1829, -1000, -1000, 1592, 1582, -1000, -1000, -1000, - -1000, -1000, -320, 2913, 11606, 11606, -1000, -1000, -1000, 2912, - -1000, -1000, 3518, -240, -249, 2449, 199, 244, -1000, 2447, - -1000, -117, 3316, -153, -1000, -1000, 833, -231, 163, 143, - 131, -1000, -1000, -1000, 11606, -1000, -1000, -1000, 108, -1000, - 1837, -1000, -1000, 2154, 2445, 49945, 689, -1000, -1000, -1000, - -1000, 271, -1000, -1000, -1000, -1000, -1000, -1000, 2442, 2437, - -1000, 583, 3517, -1000, 55131, -1000, 1829, -1000, 583, 1565, - -1000, 1829, 1829, -1000, 529, -1000, 1852, -1000, 2153, -1000, - 3503, -1000, 527, -1000, 586, -1000, -1000, -1000, 1538, -1000, - -1000, -1000, 5417, 606, -1000, 836, 2905, -1000, -1000, 2684, - 11606, 2901, 1829, 2681, -107, 34633, 3007, 3002, 2909, 2566, - 1528, -1000, -1000, 26977, -1000, -1000, 33995, -1000, 2893, 1510, - 1462, 49945, 2404, -1000, -1000, 2435, -1000, 898, 207, 244, - -1000, 3516, 217, 3515, 3513, 1180, 3315, -1000, -1000, 2022, - -1000, 185, 171, 160, -1000, -1000, -1000, -1000, -1000, 2431, - 2430, 2429, -1000, 595, -1000, 371, -1000, -1000, -1000, 306, - -1000, 3511, 756, -1000, 26977, -1000, -1000, 33357, 1454, 1454, - -1000, -1000, 2148, -1000, -1000, -1000, -1000, 2147, -1000, -1000, - -1000, 1452, -1000, 49945, 1010, 8395, -1000, 2348, -1000, 49945, - -1000, 3234, -1000, 323, 1438, 306, 813, 306, 813, 306, - 813, 306, 813, 368, -1000, -1000, -1000, 1436, 11606, -1000, - -1000, 1404, -1000, -1000, -1000, 2890, 2145, 194, 186, 3508, - -1000, 2404, 3507, 2404, 2404, -1000, 193, -138, 833, -1000, - -1000, -1000, -1000, -1000, -1000, 2423, -1000, -1000, -1000, -1000, - 1829, 1829, 2414, 2413, 500, -1000, -1000, 1829, 1829, 1829, - 1829, 32719, 637, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 606, 55131, -1000, 8395, 1397, -1000, 2302, -1000, 872, -1000, - -1000, 3014, 2960, 3563, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2885, 2581, -1000, 49945, 3442, 26339, - 187, -1000, -1000, -1000, 2410, -1000, 2404, -1000, -1000, 1821, - -150, -1000, -278, 2137, 2136, -1000, -1000, 49945, 2130, 2127, - 2125, 2401, -1000, 49945, 597, -1000, 55131, 1394, -1000, 8395, - -1000, -1000, 3581, -1000, 3579, 1000, 1000, 306, 306, 306, - 306, 11606, -1000, -1000, -1000, 49945, -1000, 1390, -1000, -1000, - -1000, 1667, -1000, -1000, -1000, -1000, 2400, -157, -1000, -1000, - 2382, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1249, 2648, - -1000, -1000, -1000, -1000, -1000, 2168, 741, -1000, 2458, 1178, - -1000, 1816, -1000, 32081, 49945, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 49945, 7754, -1000, 1657, -1000, -1000, - 2302, 49945, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3465, -1000, 3401, + 1651, 2732, 2727, 1649, 2724, 2723, -1000, 11334, 2722, 55069, + 1014, 2489, 1014, -1000, -1000, 417, 29285, 49733, 3438, -1000, + 49733, 2484, -1000, -1000, 49733, 2126, 593, 2126, 683, 49733, + -1000, -1000, -1000, -1000, -1000, 945, 397, 2720, 1346, -1000, + -1000, -1000, -1000, 397, -1000, 2482, 205, -1000, -1000, -1000, + -1000, 2154, -1000, -1000, 2119, 1559, 279, -1000, -1000, -1000, + -1000, -1000, -1000, 2129, 49733, 38231, 2151, 1856, -359, -1000, + 2923, -1000, 1782, 1782, 1782, 49733, 1648, -1000, 1782, 1782, + 2716, -1000, -1000, 2706, 2701, -139, 798, 1853, 1820, -1000, + 2153, 28646, 37592, 36953, 1298, -1000, 1560, -1000, -1000, -1000, + -1000, -1000, -1000, 3430, 798, -1000, 552, 2147, 13902, 2922, + 13902, 2920, 563, 2919, 1645, -1000, 49733, -1000, -1000, 49733, + 4175, 2916, -1000, 2915, 3164, 545, 2912, 2911, 49733, 2407, + -1000, 3260, 49733, 781, 3271, -1000, -1000, -1000, 441, -1000, + -1000, -1000, 577, -1000, 49733, -1000, 49733, -1000, 1664, -1000, + 26729, -1000, -1000, 1643, -1000, 2481, 2473, 55069, -1000, -1000, + 205, 2472, 6183, -1000, -1000, -1000, -1000, -1000, 3252, 2471, + 2129, 49733, -1000, 49733, 1340, 1340, 3465, 49733, 8760, -1000, + -1000, 11334, 2910, -1000, 11334, -1000, -1000, -1000, 2700, -1000, + -1000, -1000, -1000, -1000, 2909, 3267, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1460, -1000, 11334, 11976, -1000, 848, 15195, + -266, 368, -1000, -1000, -1000, -236, 2469, -1000, -1000, 3399, + 2464, 2335, 49733, -1000, -1000, 1344, -1000, 1344, -234, -1000, + -1000, 1341, -1000, -1000, 1108, 676, -1000, 2697, 275, -1000, + 2376, -1000, 2368, 151, -1000, 151, -1000, 250, 11334, -1000, + 2458, -1000, -1000, -1000, 2456, -1000, -1000, 2363, -1000, 2689, + -1000, 2454, -1000, -1000, 49733, -1000, -1000, 1095, 2452, -360, + -1000, 2451, 2126, 2449, 2126, 49733, 590, 54778, -145, -139, + 18410, -145, -1000, -1000, 395, 406, -1000, -1000, 2089, 633, + -1000, -1000, 2445, 628, -1000, 1340, -1000, 1831, 2021, 2384, + 34397, 26729, 28007, 2440, -1000, -1000, 36314, 1460, 1460, 54993, + 313, 55098, -1000, 2893, 1128, 1819, -1000, 2146, -1000, 2142, + -1000, 3430, 1298, 126, -1000, -1000, 1632, -1000, 1128, 2844, + 3398, -1000, 3583, 49733, 3451, 49733, 2891, 1823, 13902, -1000, + 794, 3231, -1000, -1000, 4175, -1000, -1000, 2020, 13902, -1000, + -1000, 2435, 28007, 980, 1806, 1801, 956, 2889, -1000, 609, + 3452, -1000, -1000, -1000, 996, 2888, -1000, 1996, 1993, -1000, + 49733, -1000, 34397, 34397, 897, 897, 34397, 34397, 2886, 784, + -1000, -1000, 13902, -1000, -1000, 1782, -1000, -1000, -1000, 1782, + 1647, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2151, -1000, + -1000, 1331, -1000, 3382, -1000, -1000, 2291, 49733, 2291, -1000, + 35675, -1000, 3397, 3396, -1000, 2291, 252, 248, 2884, 2883, + -1000, -342, 49733, 49733, -239, 2141, -1000, 2428, 197, -1000, + -1000, 1326, -236, -241, 131, 26729, 1797, -1000, 2688, 366, + -150, -1000, -1000, -1000, -1000, 2687, -1000, 997, -1000, -1000, + -1000, 1266, 2684, 2681, -1000, -1000, -1000, -1000, 49733, -1000, + 2375, -1000, 2427, -1000, 2424, 582, 2126, -129, -1000, -1000, + 455, -1000, -1000, -1000, 624, 2325, -1000, -1000, 402, -1000, + -1000, -1000, 2129, 2423, -1000, -1000, 108, -1000, 1791, 1635, + -1000, -1000, -1000, -1000, -1000, -1000, 786, -1000, 397, 55031, + -1000, 1339, 27368, -1000, 1108, 786, 519, 33119, 659, 299, + -1000, 2140, -1000, -1000, 3465, -1000, 651, -1000, 559, -1000, + 1634, -1000, 1624, 35036, 2133, 3294, -1000, 54926, 908, -1000, + -1000, 4164, -1000, -1000, -1000, -1000, -1000, -1000, 2415, 2414, + -1000, -1000, -1000, -1000, -1000, 2132, 2880, 37, 3325, 2411, + -1000, -1000, 2865, 1620, 1582, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1581, 1574, 34397, -1000, -1000, + 4164, 2128, 26729, 1782, -1000, -1000, 1558, 1524, -1000, -1000, + -1000, -1000, -1000, -320, 2864, 11334, 11334, -1000, -1000, -1000, + 2861, -1000, -1000, 3395, -239, -251, 2410, 179, 230, -1000, + 2396, -1000, -131, 3225, -159, -1000, -1000, 973, -228, 148, + 146, 144, -1000, -1000, -1000, 11334, -1000, -1000, -1000, 103, + -1000, 1790, -1000, -1000, 2126, 2395, 49733, 604, -1000, -1000, + -1000, -1000, 221, -1000, -1000, -1000, -1000, -1000, -1000, 2384, + 2382, -1000, 548, 3393, -1000, 55098, -1000, 1782, -1000, 548, + 1523, -1000, 1782, 1782, -1000, 503, -1000, 1799, -1000, 2121, + -1000, 3382, -1000, 499, -1000, 550, -1000, -1000, -1000, 1507, + -1000, -1000, -1000, 54926, 553, -1000, 758, 2860, -1000, -1000, + 2678, 11334, 2859, 1782, 2677, -117, 34397, 3163, 2805, 2660, + 2508, 1476, -1000, -1000, 26729, -1000, -1000, 33758, -1000, 2858, + 1390, 1385, 49733, 2335, -1000, -1000, 2379, -1000, 858, 187, + 230, -1000, 3392, 193, 3391, 3390, 1190, 3221, -1000, -1000, + 1985, -1000, 165, 163, 160, -1000, -1000, -1000, -1000, -1000, + 2375, 2374, 2372, -1000, 588, -1000, 334, -1000, -1000, -1000, + 337, -1000, 3388, 570, -1000, 26729, -1000, -1000, 33119, 1460, + 1460, -1000, -1000, 2120, -1000, -1000, -1000, -1000, 2116, -1000, + -1000, -1000, 1353, -1000, 49733, 990, 8118, -1000, 2309, -1000, + 49733, -1000, 3171, -1000, 308, 1324, 337, 897, 337, 897, + 337, 897, 337, 897, 315, -1000, -1000, -1000, 1316, 11334, + -1000, -1000, 1314, -1000, -1000, -1000, 2856, 2114, 192, 178, + 3387, -1000, 2335, 3384, 2335, 2335, -1000, 157, -148, 973, + -1000, -1000, -1000, -1000, -1000, -1000, 2362, -1000, -1000, -1000, + -1000, 1782, 1782, 2344, 2342, 462, -1000, -1000, 1782, 1782, + 1782, 1782, -1000, 32480, 557, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 553, 55098, -1000, 8118, 1300, -1000, 2291, -1000, + 784, -1000, -1000, 3094, 2961, 3434, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2853, 2537, -1000, 49733, + 3323, 26090, 174, -1000, -1000, -1000, 2341, -1000, 2335, -1000, + -1000, 1770, -151, -1000, -290, 2111, 2100, -1000, -1000, 49733, + 2079, 2078, 2033, 2319, -1000, 49733, 552, -1000, 55098, 1294, + -1000, 8118, -1000, -1000, 3450, -1000, 3448, 896, 896, 337, + 337, 337, 337, 11334, -1000, -1000, -1000, 49733, -1000, 1278, + -1000, -1000, -1000, 1537, -1000, -1000, -1000, -1000, 2301, -160, + -1000, -1000, 2203, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1277, 2844, -1000, -1000, -1000, -1000, -1000, 2101, 615, -1000, + 2381, 1149, -1000, 1769, -1000, 31841, 49733, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 49733, 7476, -1000, 1478, + -1000, -1000, 2291, 49733, -1000, } var yyPgo = [...]int{ - 0, 185, 3600, 251, 182, 4257, 87, 247, 272, 253, - 243, 242, 4256, 4255, 4254, 3393, 3392, 4252, 4251, 4250, - 4249, 4246, 4245, 4244, 4243, 4241, 4240, 4239, 4238, 4237, - 4236, 4235, 4234, 4229, 4228, 4227, 4226, 4225, 4224, 4223, - 4222, 4219, 4216, 4215, 4214, 4213, 4212, 239, 4211, 4210, - 4209, 4208, 4207, 4205, 4203, 4202, 4201, 4200, 4199, 4198, - 4197, 4196, 4194, 4193, 4191, 4190, 4189, 4188, 4185, 4184, - 4175, 4173, 4172, 4171, 4170, 4169, 4168, 4166, 4165, 4164, - 4163, 4162, 4161, 4156, 4155, 210, 4154, 3378, 4153, 4151, - 4148, 4147, 4145, 4144, 4143, 4142, 4141, 4136, 4135, 311, - 4134, 4128, 4115, 4114, 4113, 4110, 4106, 4103, 4102, 4101, - 4100, 4099, 4098, 289, 4097, 4096, 4094, 4093, 230, 4092, - 262, 4088, 175, 149, 4085, 4082, 4081, 4080, 4079, 4078, - 4077, 4076, 4075, 4074, 4073, 4072, 4069, 4068, 236, 213, - 75, 4066, 50, 4065, 4063, 214, 4062, 147, 4061, 145, - 4060, 4056, 4054, 4053, 4052, 4050, 4049, 4048, 4047, 4046, - 4045, 4043, 4041, 4029, 4024, 4022, 4021, 4016, 4015, 4010, - 4009, 4008, 4007, 4006, 54, 4005, 256, 4004, 78, 4001, - 180, 4000, 70, 3999, 45, 132, 264, 2547, 245, 3998, - 189, 3997, 3996, 240, 178, 3995, 3981, 274, 3979, 233, - 226, 163, 108, 125, 3978, 144, 3977, 266, 47, 40, - 246, 156, 3976, 3975, 58, 161, 124, 3971, 208, 98, - 110, 3970, 3969, 148, 3968, 238, 186, 3965, 109, 3963, - 3962, 3960, 3959, 3957, 198, 194, 3955, 3953, 138, 3951, - 3950, 67, 142, 3949, 80, 128, 169, 126, 3948, 1675, - 122, 91, 3946, 136, 100, 3945, 119, 3944, 3941, 3940, - 3938, 191, 3936, 3935, 134, 57, 3934, 3933, 3932, 69, - 3931, 79, 3928, 44, 3927, 59, 3923, 3922, 3918, 3917, - 3916, 3915, 3913, 3912, 3897, 3896, 3892, 3891, 56, 3890, - 3889, 3887, 3874, 7, 14, 17, 3871, 27, 3870, 173, - 3868, 3867, 166, 3864, 197, 3862, 3861, 99, 92, 3860, - 93, 162, 3850, 10, 28, 77, 3849, 3848, 3846, 327, - 3845, 3843, 3842, 273, 3841, 3840, 3839, 168, 3838, 3835, - 3834, 658, 3832, 3831, 3830, 3829, 3827, 3826, 436, 3824, - 1, 212, 41, 3823, 129, 150, 3822, 39, 31, 3806, - 49, 113, 201, 131, 101, 3804, 3803, 3802, 140, 196, - 111, 29, 0, 104, 218, 158, 3801, 3800, 3797, 261, - 3796, 219, 260, 254, 281, 258, 250, 3795, 3794, 61, - 3793, 159, 30, 53, 133, 96, 21, 249, 3791, 452, - 9, 188, 3790, 205, 3789, 8, 18, 123, 154, 3788, - 3787, 37, 267, 3784, 3782, 3781, 130, 3777, 3775, 184, - 60, 3774, 3773, 3772, 3771, 36, 3770, 179, 16, 3769, - 102, 3768, 255, 3767, 215, 160, 181, 177, 165, 220, - 221, 83, 82, 3765, 1844, 157, 103, 15, 3762, 224, - 3761, 171, 116, 3760, 105, 3759, 241, 259, 207, 3758, - 187, 11, 43, 38, 32, 48, 13, 270, 203, 3756, - 3754, 24, 52, 3752, 55, 3750, 20, 3749, 3748, 51, - 3747, 74, 5, 3746, 3743, 19, 22, 3742, 34, 204, - 174, 120, 95, 64, 3740, 3737, 141, 216, 3736, 143, - 164, 155, 3735, 81, 3734, 3733, 3731, 3729, 3050, 248, - 3727, 3726, 3725, 3724, 3723, 3720, 3719, 3715, 211, 3714, - 135, 42, 3713, 3712, 3710, 3709, 88, 152, 3708, 3707, - 3706, 3702, 33, 146, 3701, 12, 3699, 26, 23, 35, - 3697, 106, 3696, 3, 192, 3695, 3694, 4, 3692, 3691, - 2, 3690, 3689, 137, 3688, 97, 25, 172, 112, 3685, - 3683, 89, 209, 151, 3682, 3681, 94, 237, 200, 3680, - 90, 232, 252, 3678, 206, 3677, 3676, 3674, 3672, 3671, - 1248, 3670, 3669, 235, 68, 85, 3668, 229, 121, 3666, - 3664, 86, 167, 118, 115, 62, 84, 3662, 114, 202, - 3661, 195, 3660, 257, 3658, 3656, 107, 3655, 3654, 3651, - 3648, 193, 3647, 3646, 190, 231, 3644, 3637, 265, 3636, - 3635, 3634, 3633, 3631, 3619, 3616, 3612, 3611, 3603, 222, - 499, 3602, + 0, 181, 3478, 241, 179, 4165, 87, 254, 284, 253, + 248, 245, 4149, 4148, 4143, 3292, 3290, 4138, 4137, 4136, + 4130, 4123, 4122, 4121, 4120, 4117, 4116, 4115, 4114, 4113, + 4112, 4108, 4105, 4104, 4103, 4102, 4101, 4100, 4099, 4098, + 4096, 4095, 4094, 4090, 4087, 4071, 4070, 242, 4068, 4067, + 4065, 4064, 4063, 4061, 4060, 4056, 4055, 4054, 4053, 4052, + 4051, 4050, 4048, 4047, 4044, 4043, 4041, 4039, 4038, 4037, + 4036, 4035, 4030, 4029, 4028, 4027, 4026, 4024, 4023, 4018, + 4017, 4015, 4014, 4010, 4009, 246, 4008, 3289, 4007, 4005, + 4004, 4002, 4001, 4000, 3985, 3981, 3980, 3979, 3978, 226, + 3977, 3976, 3973, 3972, 3971, 3970, 3967, 3965, 3964, 3963, + 3961, 3960, 3958, 290, 3956, 3954, 3952, 3951, 274, 3950, + 211, 3949, 176, 132, 3947, 3946, 3945, 3944, 3943, 3942, + 3941, 3940, 3939, 3938, 3936, 3935, 3934, 3933, 237, 212, + 74, 3929, 48, 3928, 3924, 216, 3923, 148, 3922, 143, + 3920, 3919, 3918, 3917, 3916, 3914, 3913, 3911, 3907, 3906, + 3905, 3904, 3903, 3901, 3900, 3898, 3897, 3893, 3892, 3891, + 3890, 3889, 3885, 3884, 51, 3880, 255, 3879, 75, 3878, + 183, 3877, 70, 3876, 88, 129, 261, 2042, 240, 3875, + 188, 3872, 3871, 250, 178, 3869, 3868, 273, 3866, 144, + 221, 163, 102, 120, 3865, 142, 3864, 265, 47, 34, + 251, 146, 3863, 3856, 56, 174, 123, 3854, 213, 103, + 113, 3852, 3851, 151, 3850, 230, 186, 3849, 110, 3847, + 3842, 3841, 3840, 3838, 200, 195, 3836, 3835, 141, 3834, + 3832, 95, 135, 3831, 78, 126, 167, 125, 3829, 2332, + 131, 99, 3828, 122, 107, 3827, 97, 3826, 3825, 3824, + 3823, 194, 3822, 3820, 149, 57, 3817, 3807, 3806, 69, + 3804, 80, 3803, 41, 3801, 59, 3800, 3799, 3798, 3797, + 3795, 3794, 3793, 3792, 3791, 3790, 3788, 3786, 54, 3785, + 3783, 3782, 3779, 7, 14, 17, 3778, 27, 3776, 165, + 3775, 3774, 162, 3773, 193, 3772, 3770, 96, 92, 3769, + 93, 159, 3768, 9, 28, 77, 3767, 3763, 3762, 64, + 3761, 3760, 3759, 271, 3758, 3757, 3756, 175, 3755, 3753, + 3751, 2795, 3750, 3749, 3748, 3747, 3746, 3745, 371, 3742, + 1, 215, 44, 3741, 133, 137, 3739, 40, 31, 3738, + 49, 118, 202, 136, 106, 3736, 3722, 3721, 658, 201, + 104, 29, 0, 105, 217, 166, 3720, 3719, 3717, 257, + 3715, 233, 231, 222, 317, 259, 169, 3713, 3711, 61, + 3710, 161, 30, 53, 168, 91, 22, 249, 3709, 452, + 10, 185, 3708, 206, 3707, 8, 16, 262, 154, 3705, + 3702, 37, 267, 3698, 3697, 3696, 138, 3695, 3694, 184, + 60, 3693, 3692, 3690, 3689, 36, 3686, 189, 20, 3683, + 130, 3681, 239, 3679, 238, 155, 190, 182, 156, 219, + 220, 82, 81, 3678, 1868, 157, 109, 15, 3677, 224, + 3676, 298, 115, 3675, 89, 3673, 247, 260, 207, 3672, + 187, 11, 50, 39, 32, 45, 12, 286, 204, 3671, + 3669, 23, 52, 3668, 58, 3667, 21, 3665, 3664, 43, + 3663, 62, 5, 3662, 3657, 19, 18, 3656, 38, 205, + 172, 124, 101, 67, 3655, 3652, 134, 140, 3649, 150, + 171, 173, 3647, 79, 3644, 3639, 3636, 3626, 3051, 258, + 3625, 3623, 3622, 3621, 3618, 3617, 3616, 3613, 214, 3612, + 111, 42, 3611, 3608, 3607, 3606, 98, 152, 3605, 3589, + 3587, 3585, 33, 145, 3584, 13, 3583, 26, 24, 35, + 3582, 108, 3581, 3, 191, 3579, 3577, 4, 3576, 3575, + 2, 3572, 3570, 119, 3568, 100, 25, 164, 114, 3566, + 3565, 85, 210, 147, 3557, 3550, 90, 243, 203, 3549, + 94, 232, 252, 3547, 209, 3544, 3543, 3541, 3540, 3539, + 1222, 3533, 3530, 235, 68, 83, 3529, 218, 121, 3526, + 3522, 86, 158, 117, 128, 55, 84, 3520, 116, 208, + 3519, 198, 3518, 256, 3517, 3516, 112, 3515, 3513, 3511, + 3508, 192, 3506, 3505, 196, 236, 3504, 3502, 270, 3501, + 3500, 3499, 3498, 3496, 3494, 3492, 3491, 3490, 3483, 229, + 197, 3480, } -//line mysql_sql.y:12975 +//line mysql_sql.y:12984 type yySymType struct { union interface{} id int @@ -8993,80 +8992,80 @@ var yyR1 = [...]int{ 428, 428, 425, 424, 424, 424, 590, 590, 589, 589, 589, 361, 361, 32, 420, 420, 422, 423, 423, 423, 414, 414, 414, 414, 36, 418, 418, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 419, 419, 415, 415, - 417, 417, 413, 413, 413, 413, 413, 413, 413, 413, - 35, 180, 180, 412, 412, 409, 409, 407, 407, 408, - 408, 406, 406, 406, 410, 410, 43, 78, 44, 45, - 46, 42, 411, 411, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 141, 140, 140, 140, 140, 140, - 143, 143, 345, 345, 344, 344, 142, 285, 285, 41, - 263, 263, 485, 485, 480, 480, 480, 480, 480, 500, - 500, 500, 481, 481, 481, 482, 482, 482, 484, 484, - 484, 483, 483, 483, 483, 483, 499, 499, 501, 501, - 501, 452, 452, 453, 453, 453, 456, 456, 472, 472, - 473, 473, 471, 471, 478, 478, 477, 477, 476, 476, - 475, 475, 474, 474, 474, 474, 467, 467, 466, 466, - 454, 454, 454, 454, 454, 455, 455, 455, 465, 465, - 470, 470, 316, 316, 315, 315, 271, 271, 272, 272, - 314, 314, 269, 269, 270, 270, 270, 313, 313, 313, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 415, + 415, 417, 417, 413, 413, 413, 413, 413, 413, 413, + 413, 35, 180, 180, 412, 412, 409, 409, 407, 407, + 408, 408, 406, 406, 406, 410, 410, 43, 78, 44, + 45, 46, 42, 411, 411, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 141, 140, 140, 140, 140, + 140, 143, 143, 345, 345, 344, 344, 142, 285, 285, + 41, 263, 263, 485, 485, 480, 480, 480, 480, 480, + 500, 500, 500, 481, 481, 481, 482, 482, 482, 484, + 484, 484, 483, 483, 483, 483, 483, 499, 499, 501, + 501, 501, 452, 452, 453, 453, 453, 456, 456, 472, + 472, 473, 473, 471, 471, 478, 478, 477, 477, 476, + 476, 475, 475, 474, 474, 474, 474, 467, 467, 466, + 466, 454, 454, 454, 454, 454, 455, 455, 455, 465, + 465, 470, 470, 316, 316, 315, 315, 271, 271, 272, + 272, 314, 314, 269, 269, 270, 270, 270, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 550, 550, 551, 274, 274, 286, 286, - 286, 286, 286, 286, 273, 273, 275, 275, 251, 251, - 249, 249, 241, 241, 241, 241, 241, 241, 242, 242, - 243, 243, 244, 244, 244, 248, 248, 247, 247, 247, - 247, 245, 245, 246, 246, 246, 246, 246, 246, 438, - 438, 547, 547, 548, 548, 543, 543, 543, 546, 546, - 546, 546, 546, 546, 546, 546, 549, 549, 549, 545, - 545, 253, 339, 339, 339, 362, 362, 362, 362, 364, - 338, 338, 338, 268, 268, 267, 267, 265, 265, 265, + 313, 313, 313, 313, 550, 550, 551, 274, 274, 286, + 286, 286, 286, 286, 286, 273, 273, 275, 275, 251, + 251, 249, 249, 241, 241, 241, 241, 241, 241, 242, + 242, 243, 243, 244, 244, 244, 248, 248, 247, 247, + 247, 247, 245, 245, 246, 246, 246, 246, 246, 246, + 438, 438, 547, 547, 548, 548, 543, 543, 543, 546, + 546, 546, 546, 546, 546, 546, 546, 549, 549, 549, + 545, 545, 253, 339, 339, 339, 362, 362, 362, 362, + 364, 338, 338, 338, 268, 268, 267, 267, 265, 265, + 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 437, - 437, 378, 378, 379, 379, 297, 296, 296, 296, 296, - 296, 294, 295, 293, 293, 293, 293, 293, 290, 290, - 289, 289, 289, 291, 291, 291, 291, 291, 416, 416, - 287, 287, 277, 277, 277, 276, 276, 276, 479, 385, + 437, 437, 378, 378, 379, 379, 297, 296, 296, 296, + 296, 296, 294, 295, 293, 293, 293, 293, 293, 290, + 290, 289, 289, 289, 291, 291, 291, 291, 291, 416, + 416, 287, 287, 277, 277, 277, 276, 276, 276, 479, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 387, 387, 387, 387, 387, 387, 387, 387, + 385, 385, 385, 387, 387, 387, 387, 387, 387, 387, + 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, - 387, 387, 387, 387, 387, 387, 387, 387, 387, 292, - 336, 336, 336, 337, 337, 337, 337, 337, 337, 337, - 337, 388, 388, 394, 394, 559, 559, 558, 254, 254, - 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 264, 264, 264, 461, 461, 461, 461, 462, 462, 462, - 462, 463, 463, 463, 459, 459, 460, 460, 399, 400, - 400, 506, 506, 507, 507, 457, 457, 458, 335, 335, + 292, 336, 336, 336, 337, 337, 337, 337, 337, 337, + 337, 337, 388, 388, 394, 394, 559, 559, 558, 254, + 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 264, 264, 264, 461, 461, 461, 461, 462, 462, + 462, 462, 463, 463, 463, 459, 459, 460, 460, 399, + 400, 400, 506, 506, 507, 507, 457, 457, 458, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 514, 514, 514, 332, 332, 332, 332, 332, 332, + 335, 335, 514, 514, 514, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 569, 569, 569, 555, 555, 555, 556, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 557, 557, + 332, 569, 569, 569, 555, 555, 555, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 334, 334, 334, 333, 333, + 557, 557, 557, 557, 557, 557, 334, 334, 334, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 333, 401, 401, 402, 402, - 511, 511, 511, 511, 511, 511, 512, 512, 513, 513, - 513, 513, 505, 505, 505, 505, 505, 505, 505, 505, + 333, 333, 333, 333, 333, 333, 333, 401, 401, 402, + 402, 511, 511, 511, 511, 511, 511, 512, 512, 513, + 513, 513, 513, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, - 505, 505, 386, 331, 331, 331, 403, 395, 395, 396, - 396, 397, 397, 389, 389, 389, 389, 389, 389, 390, - 390, 392, 392, 392, 392, 392, 392, 392, 392, 392, - 392, 392, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 384, 391, 391, 393, 393, 405, 405, 405, - 404, 404, 404, 404, 404, 404, 404, 266, 266, 266, - 266, 383, 383, 383, 382, 382, 382, 382, 382, 382, - 382, 382, 382, 382, 382, 382, 256, 256, 256, 256, - 260, 260, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 261, 261, 261, 261, - 261, 259, 259, 259, 259, 259, 257, 257, 257, 257, + 505, 505, 505, 386, 331, 331, 331, 403, 395, 395, + 396, 396, 397, 397, 389, 389, 389, 389, 389, 389, + 390, 390, 392, 392, 392, 392, 392, 392, 392, 392, + 392, 392, 392, 384, 384, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 391, 391, 393, 393, 405, 405, + 405, 404, 404, 404, 404, 404, 404, 404, 266, 266, + 266, 266, 383, 383, 383, 382, 382, 382, 382, 382, + 382, 382, 382, 382, 382, 382, 382, 256, 256, 256, + 256, 260, 260, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 261, 261, 261, + 261, 261, 259, 259, 259, 259, 259, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 121, 122, 122, 258, 341, - 341, 486, 486, 489, 489, 487, 487, 488, 490, 490, - 490, 491, 491, 491, 492, 492, 492, 496, 496, 350, - 350, 350, 358, 358, 357, 357, 357, 357, 357, 357, + 257, 257, 257, 257, 257, 257, 121, 122, 122, 258, + 341, 341, 486, 486, 489, 489, 487, 487, 488, 490, + 490, 490, 491, 491, 491, 492, 492, 492, 496, 496, + 350, 350, 350, 358, 358, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, @@ -9102,13 +9101,13 @@ var yyR1 = [...]int{ 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, - 357, 357, 357, 357, 357, 357, 357, 357, 356, 356, - 356, 356, 356, 356, 356, 356, 356, 356, 355, 355, + 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, + 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 355, 355, 355, 355, 355, } var yyR2 = [...]int{ @@ -9227,80 +9226,81 @@ var yyR2 = [...]int{ 1, 3, 2, 1, 3, 2, 0, 1, 3, 4, 3, 1, 1, 4, 1, 3, 1, 1, 1, 1, 0, 1, 1, 1, 11, 0, 2, 3, 3, 2, - 2, 3, 1, 1, 3, 3, 3, 3, 1, 3, - 3, 4, 0, 2, 2, 2, 2, 2, 2, 2, - 6, 0, 4, 1, 1, 0, 3, 0, 1, 1, - 2, 4, 4, 4, 0, 1, 8, 2, 4, 4, - 4, 9, 0, 2, 11, 9, 11, 8, 6, 9, - 7, 10, 7, 6, 2, 2, 9, 4, 5, 3, - 0, 4, 1, 3, 0, 3, 6, 0, 2, 10, - 0, 2, 0, 2, 0, 3, 2, 4, 3, 0, - 2, 1, 0, 2, 3, 0, 2, 3, 0, 2, - 1, 0, 3, 2, 4, 3, 0, 1, 0, 1, - 1, 0, 6, 0, 3, 5, 0, 4, 0, 3, - 1, 3, 4, 5, 0, 3, 1, 3, 2, 3, - 1, 2, 0, 4, 6, 5, 0, 2, 0, 2, - 4, 5, 4, 5, 1, 5, 6, 5, 0, 3, - 0, 1, 1, 3, 3, 3, 0, 4, 1, 3, - 3, 3, 0, 1, 1, 3, 2, 3, 3, 3, - 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, - 5, 4, 5, 1, 3, 3, 2, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 4, 0, 5, 5, 5, 5, 6, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 7, 9, 7, - 9, 2, 1, 7, 9, 7, 9, 8, 5, 0, - 1, 0, 1, 1, 1, 1, 3, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 3, 1, 3, 5, 1, 1, 1, 1, 1, - 1, 3, 5, 0, 1, 1, 2, 1, 2, 2, - 1, 1, 2, 2, 2, 3, 3, 2, 2, 1, - 5, 6, 4, 1, 1, 1, 5, 4, 1, 1, - 2, 0, 1, 1, 2, 5, 0, 1, 1, 2, - 2, 3, 3, 1, 1, 2, 2, 2, 0, 1, - 2, 2, 2, 0, 4, 7, 3, 3, 0, 3, - 0, 3, 1, 1, 1, 1, 1, 1, 1, 3, + 2, 3, 1, 1, 3, 3, 3, 3, 1, 1, + 3, 3, 4, 0, 2, 2, 2, 2, 2, 2, + 2, 6, 0, 4, 1, 1, 0, 3, 0, 1, + 1, 2, 4, 4, 4, 0, 1, 8, 2, 4, + 4, 4, 9, 0, 2, 11, 9, 11, 8, 6, + 9, 7, 10, 7, 6, 2, 2, 9, 4, 5, + 3, 0, 4, 1, 3, 0, 3, 6, 0, 2, + 10, 0, 2, 0, 2, 0, 3, 2, 4, 3, + 0, 2, 1, 0, 2, 3, 0, 2, 3, 0, + 2, 1, 0, 3, 2, 4, 3, 0, 1, 0, + 1, 1, 0, 6, 0, 3, 5, 0, 4, 0, + 3, 1, 3, 4, 5, 0, 3, 1, 3, 2, + 3, 1, 2, 0, 4, 6, 5, 0, 2, 0, + 2, 4, 5, 4, 5, 1, 5, 6, 5, 0, + 3, 0, 1, 1, 3, 3, 3, 0, 4, 1, + 3, 3, 3, 0, 1, 1, 3, 2, 3, 3, + 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 1, 1, 1, 1, 3, 5, 2, 2, 2, - 2, 4, 1, 1, 2, 5, 6, 8, 6, 6, - 6, 1, 1, 1, 1, 1, 1, 3, 9, 1, - 4, 4, 4, 7, 9, 7, 7, 7, 9, 7, - 7, 0, 2, 0, 1, 1, 2, 4, 1, 2, - 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, - 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 2, 5, 0, 1, 3, 0, - 1, 0, 2, 0, 2, 0, 1, 6, 8, 8, - 6, 6, 5, 5, 5, 6, 6, 6, 6, 5, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 1, 1, 1, 4, 4, 6, 8, 6, 4, - 5, 4, 4, 4, 3, 4, 6, 6, 7, 4, + 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 5, 4, 5, 1, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 2, 4, 0, 5, 5, 5, 5, 6, 0, + 1, 1, 3, 1, 1, 1, 1, 1, 7, 9, + 7, 9, 2, 1, 7, 9, 7, 9, 8, 5, + 0, 1, 0, 1, 1, 1, 1, 3, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 3, 1, 3, 5, 1, 1, 1, 1, + 1, 1, 3, 5, 0, 1, 1, 2, 1, 2, + 2, 1, 1, 2, 2, 2, 3, 3, 2, 2, + 1, 5, 6, 4, 1, 1, 1, 5, 4, 1, + 1, 2, 0, 1, 1, 2, 5, 0, 1, 1, + 2, 2, 3, 3, 1, 1, 2, 2, 2, 0, + 1, 2, 2, 2, 0, 4, 7, 3, 3, 0, + 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 1, 1, 1, 1, 3, 5, 2, 2, + 2, 2, 4, 1, 1, 2, 5, 6, 8, 6, + 6, 6, 1, 1, 1, 1, 1, 1, 3, 9, + 1, 4, 4, 4, 7, 9, 7, 7, 7, 9, + 7, 7, 0, 2, 0, 1, 1, 2, 4, 1, + 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, + 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 1, 1, 1, 2, 5, 0, 1, 3, + 0, 1, 0, 2, 0, 2, 0, 1, 6, 8, + 8, 6, 6, 5, 5, 5, 6, 6, 6, 6, + 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 1, 1, 1, 4, 4, 6, 8, 6, + 4, 5, 4, 4, 4, 3, 4, 6, 6, 7, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 8, 4, 2, - 3, 2, 4, 2, 2, 4, 6, 2, 2, 4, - 6, 4, 2, 4, 4, 4, 0, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 8, 4, + 2, 3, 2, 4, 2, 2, 4, 6, 2, 2, + 4, 6, 4, 2, 4, 4, 4, 0, 1, 2, + 3, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, - 3, 1, 3, 3, 3, 3, 3, 2, 1, 1, - 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, - 4, 1, 3, 4, 4, 5, 4, 5, 3, 4, - 5, 6, 1, 0, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 1, 3, 0, 1, 1, 3, 0, 1, + 1, 3, 1, 3, 3, 3, 3, 3, 2, 1, + 1, 1, 3, 4, 3, 4, 3, 4, 3, 4, + 3, 4, 1, 3, 4, 4, 5, 4, 5, 3, + 4, 5, 6, 1, 0, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 2, 3, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 2, 3, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 2, 2, 4, 4, 1, 2, 3, 5, 1, + 1, 3, 0, 1, 0, 3, 0, 3, 3, 0, + 3, 5, 0, 3, 5, 0, 1, 1, 0, 1, + 1, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 4, 4, 1, 2, 3, 5, 1, 1, - 3, 0, 1, 0, 3, 0, 3, 3, 0, 3, - 5, 0, 3, 5, 0, 1, 1, 0, 1, 1, - 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -9342,423 +9342,422 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, } var yyChk = [...]int{ - -1000, -614, -617, -2, -5, 637, -1, -4, -122, -91, + -1000, -614, -617, -2, -5, 638, -1, -4, -122, -91, -7, -14, -124, -125, -8, -120, -9, -10, -12, -98, -115, -117, -119, -118, -47, -11, -114, -85, -86, -100, -108, -111, -112, -113, -126, -121, -123, -184, -127, -128, - -129, -171, -132, -134, -135, 627, -92, -93, -94, -95, + -129, -171, -132, -134, -135, 628, -92, -93, -94, -95, -96, -97, -33, -32, -31, -30, -157, -162, -165, -167, - -130, 560, 633, 463, 14, 512, -15, -16, -560, -17, + -130, 561, 634, 464, 14, 513, -15, -16, -560, -17, 267, -366, -367, -368, -370, -618, -48, -49, -50, -60, -61, -62, -63, -64, -74, -75, -76, -51, -52, -53, -56, -54, -67, -66, -68, -69, -70, -71, -72, -73, -55, -59, -160, -161, -77, -57, -78, -58, -169, -172, -131, -79, -80, -81, -83, -82, -88, -84, -89, -159, -164, -13, -170, -90, 241, -87, 77, -101, -102, -103, - -104, -105, -106, -107, -109, -110, 387, 393, 450, 626, - 62, -185, -187, 655, 656, 659, 547, 550, 163, 164, + -104, -105, -106, -107, -109, -110, 388, 394, 451, 627, + 62, -185, -187, 656, 657, 660, 548, 551, 163, 164, 166, 167, 171, 174, -34, -35, -36, -37, -38, -39, - -41, -40, -42, -43, -44, -45, -46, 237, 16, 555, + -41, -40, -42, -43, -44, -45, -46, 237, 16, 556, -18, -21, -19, -22, -20, -28, -29, -27, -24, -26, -158, -25, -163, -23, -166, -168, -133, 262, 261, 39, - 328, 329, 330, 391, 260, 238, 240, 15, 32, 43, - 366, -186, 86, 548, 239, -188, 13, 661, -6, -3, + 328, 329, 330, 392, 260, 238, 240, 15, 32, 43, + 367, -186, 86, 549, 239, -188, 13, 662, -6, -3, -2, -144, -148, -152, -155, -156, -153, -154, -4, -122, - 121, 252, 628, -362, 383, 629, 631, 630, 89, 97, - -355, -357, 463, 267, 387, 393, 626, 656, 659, 547, - 550, 562, 563, 564, 565, 566, 567, 568, 569, 571, - 572, 573, 574, 575, 576, 577, 587, 588, 578, 579, - 580, 581, 582, 583, 584, 585, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 515, 612, 613, 614, 615, 543, 570, 606, 607, 608, - 609, 364, 365, 552, 279, 303, 418, 309, 316, 163, - 183, 177, 206, 197, 548, 172, 283, 321, 284, 96, - 166, 498, 111, 475, 447, 169, 298, 300, 302, 544, - 545, 377, 305, 542, 304, 306, 308, 546, 285, 367, - 193, 188, 297, 281, 186, 286, 41, 287, 360, 359, - 211, 288, 289, 557, 471, 363, 477, 313, 53, 445, - 187, 472, 301, 474, 215, 219, 489, 350, 490, 181, - 182, 479, 492, 210, 213, 214, 259, 356, 357, 44, - 554, 271, 493, 217, 651, 209, 204, 501, 317, 315, - 361, 208, 180, 203, 282, 66, 221, 220, 222, 441, - 442, 443, 444, 290, 291, 381, 488, 200, 189, 368, - 173, 23, 496, 266, 476, 394, 292, 310, 318, 216, - 218, 273, 278, 333, 556, 449, 362, 277, 314, 494, - 185, 270, 299, 265, 497, 652, 174, 396, 293, 167, - 307, 491, 654, 500, 65, 409, 179, 170, 644, 645, - 256, 164, 275, 280, 653, 294, 295, 296, 541, 320, - 319, 311, 171, 549, 201, 272, 207, 191, 178, 202, - 165, 274, 499, 410, 624, 366, 428, 199, 196, 276, - 249, 495, 478, 168, 432, 411, 194, 322, 619, 620, - 621, 382, 355, 323, 324, 192, 263, 469, 470, 327, - 438, 345, 412, 448, 419, 413, 228, 229, 331, 481, - 483, 212, 622, 334, 335, 336, 473, 337, 338, 339, - 340, 386, 57, 59, 98, 101, 100, 657, 658, 64, - 30, 372, 375, 407, 414, 347, 625, 553, 344, 348, - 349, 376, 26, 430, 398, 434, 433, 49, 50, 51, - 54, 55, 56, 58, 60, 61, 52, 540, 391, 404, - 502, 46, 48, 401, 28, 378, 429, 451, 343, 431, - 462, 47, 460, 461, 482, 27, 380, 379, 63, 45, - 437, 439, 440, 325, 341, 389, 634, 503, 384, 400, - 403, 385, 346, 374, 405, 68, 67, 397, 635, 392, - 390, 342, 558, 559, 351, 586, 369, 446, 537, 536, - 535, 534, 533, 532, 531, 530, 328, 329, 330, 415, - 416, 417, 427, 420, 421, 422, 423, 424, 425, 426, - 465, 466, 636, 484, 486, 487, 485, 244, 660, 370, - 371, 247, 638, 639, 99, 640, 642, 641, 29, 643, - 650, 647, 648, 649, 561, 232, -443, -441, -362, 548, - 626, 393, 547, 550, 387, 366, 656, 659, 391, 267, - 328, 329, 330, 463, 364, -235, -362, 660, -197, 251, - 40, -249, -362, -197, -87, -16, -15, -186, -187, -249, - 246, -371, 24, 445, -99, 446, 241, 242, 86, 78, - -362, -9, -113, -8, -120, -85, -184, 450, -369, -362, - 328, 328, -369, 246, -364, 277, 426, -362, -498, 252, - -447, -420, 278, -446, -422, -449, -423, 33, 237, 239, - 238, 560, 274, 16, 391, 248, 14, 13, 392, 260, - 26, 27, 29, 15, 393, 395, 30, 396, 399, 400, - 401, 43, 404, 405, 267, 89, 97, 92, 285, -234, - -362, -397, -389, 118, -392, -384, -385, -387, -340, -534, - -382, 86, 145, 146, 153, 119, 662, -386, -479, 37, - 121, 566, 570, 606, 513, -332, -333, -334, -335, -336, - -337, 551, -362, -535, -533, 92, 102, 104, 108, 109, - 107, 105, 157, 190, 106, 93, 158, -187, 89, -555, - 576, -356, 599, 612, 613, 614, 615, 598, 62, -505, - -513, 245, -511, 156, 195, 263, 191, 14, 151, 438, - 192, 607, 608, 609, 573, 595, 515, 577, 587, 602, - 568, 569, 571, 563, 564, 565, 567, 578, 580, 594, - -514, 590, 600, 601, 586, 610, 611, 647, 603, 604, - 605, 642, 91, 90, 593, 592, 579, 574, 575, 581, - 562, 572, 582, 583, 591, 596, 597, 375, 111, 376, - 377, 505, 367, 81, 378, 252, 445, 71, 379, 380, - 381, 382, 383, 512, 384, 72, 385, 374, 267, 428, - 386, 194, 212, 517, 516, 518, 509, 506, 504, 507, - 508, 510, 511, 584, 585, 589, -136, -138, 617, -608, - -323, -609, 6, 7, 8, 9, -610, 158, -599, 447, - 556, 92, 321, 364, 17, 505, 646, 546, 646, 546, - 168, 165, -434, 168, 117, 174, 173, 250, 168, -434, - -362, 171, 646, 170, 644, 331, 273, -411, -175, 364, - 428, 337, 98, 277, -414, -412, 544, -499, 325, 321, - 297, 247, 114, -176, 257, 256, 112, 505, 245, 402, - 316, 57, 59, -570, -571, 234, 235, 236, -562, 538, - -561, -362, 646, 651, 377, 100, 101, 644, 645, 28, - 246, 388, 273, 483, 481, 482, 484, 485, 486, 487, - -65, -515, -497, 478, 477, -375, 470, 476, 468, 480, - 471, 365, 339, 560, 338, 237, 638, 545, 539, -350, - 412, 448, 502, 503, 389, 449, 489, 491, 472, 111, - 198, 195, 247, 249, 246, 644, 364, 505, 428, 98, - 337, 246, -570, 651, 165, 489, 491, 447, 277, 426, - 42, -440, 438, -439, -441, 490, 501, 90, 91, 488, - -350, 111, 469, 469, -608, -323, -185, -187, -123, -560, - 546, 646, 247, 364, 428, 277, 248, 246, 541, 544, - 249, 505, 245, 328, 388, 273, 337, 98, 170, 644, - -191, -192, -193, 230, 231, 232, 70, 235, 233, 67, - 33, 34, 35, -1, 125, 661, -389, -389, -6, 664, - -6, -389, -362, -362, 160, -256, -260, -257, -259, -258, - -262, -261, 195, 196, 156, 199, 205, 201, 202, 203, - 204, 206, 207, 208, 209, 210, 213, 214, 211, 32, - 212, 263, 191, 192, 193, 194, 215, 177, 197, 553, - 223, 178, 224, 179, 225, 180, 226, 181, 182, 227, - 183, 186, 187, 188, 189, 185, 159, -224, 92, 33, - 86, 159, 92, -216, 269, -197, -249, -241, 159, 662, - -216, -608, -207, -208, 11, -249, -338, -362, 447, 128, - -99, 78, -99, 446, 78, -99, 446, 241, -563, -564, - -565, -567, 241, 446, 445, 242, -118, 159, 285, 17, - -369, -369, 84, -249, -422, 277, -447, -420, 37, 83, - 160, 250, 160, 83, 86, 389, 364, 428, 390, 505, - 246, 402, 249, 277, 403, 364, 428, 246, 249, 505, - 277, 364, 246, 249, 428, 277, 403, 364, 468, 469, - 249, 28, 394, 397, 398, 469, -519, 501, 160, 117, - 114, 115, 116, -389, 135, -404, 128, 129, 130, 131, - 132, 133, 134, 142, 141, 152, 145, 146, 147, 148, - 149, 150, 151, 143, 144, 138, 118, 136, 140, 137, - 120, 155, -187, -389, -397, 62, -387, -387, -387, -387, - -362, -479, -394, -389, 86, 86, 86, 86, 86, 159, - 105, 92, -389, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, -512, 86, 86, -401, -402, - 86, 86, -382, -338, 86, 92, 92, 86, 86, 86, - 92, 86, 86, 86, -402, -402, 86, 86, 86, 86, + 121, 252, 629, -362, 384, 630, 632, 631, 89, 97, + -355, -357, 464, 267, 388, 394, 627, 657, 660, 548, + 551, 563, 564, 565, 566, 567, 568, 569, 570, 572, + 573, 574, 575, 576, 577, 578, 588, 589, 579, 580, + 581, 582, 583, 584, 585, 586, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 516, 613, 614, 615, 616, 544, 571, 607, 608, 609, + 610, 365, 366, 553, 279, 303, 419, 309, 316, 363, + 163, 183, 177, 206, 197, 549, 172, 283, 321, 284, + 96, 166, 499, 111, 476, 448, 169, 298, 300, 302, + 545, 546, 378, 305, 543, 304, 306, 308, 547, 285, + 368, 193, 188, 297, 281, 186, 286, 41, 287, 360, + 359, 211, 288, 289, 558, 472, 364, 478, 313, 53, + 446, 187, 473, 301, 475, 215, 219, 490, 350, 491, + 181, 182, 480, 493, 210, 213, 214, 259, 356, 357, + 44, 555, 271, 494, 217, 652, 209, 204, 502, 317, + 315, 361, 208, 180, 203, 282, 66, 221, 220, 222, + 442, 443, 444, 445, 290, 291, 382, 489, 200, 189, + 369, 173, 23, 497, 266, 477, 395, 292, 310, 318, + 216, 218, 273, 278, 333, 557, 450, 362, 277, 314, + 495, 185, 270, 299, 265, 498, 653, 174, 397, 293, + 167, 307, 492, 655, 501, 65, 410, 179, 170, 645, + 646, 256, 164, 275, 280, 654, 294, 295, 296, 542, + 320, 319, 311, 171, 550, 201, 272, 207, 191, 178, + 202, 165, 274, 500, 411, 625, 367, 429, 199, 196, + 276, 249, 496, 479, 168, 433, 412, 194, 322, 620, + 621, 622, 383, 355, 323, 324, 192, 263, 470, 471, + 327, 439, 345, 413, 449, 420, 414, 228, 229, 331, + 482, 484, 212, 623, 334, 335, 336, 474, 337, 338, + 339, 340, 387, 57, 59, 98, 101, 100, 658, 659, + 64, 30, 373, 376, 408, 415, 347, 626, 554, 344, + 348, 349, 377, 26, 431, 399, 435, 434, 49, 50, + 51, 54, 55, 56, 58, 60, 61, 52, 541, 392, + 405, 503, 46, 48, 402, 28, 379, 430, 452, 343, + 432, 463, 47, 461, 462, 483, 27, 381, 380, 63, + 45, 438, 440, 441, 325, 341, 390, 635, 504, 385, + 401, 404, 386, 346, 375, 406, 68, 67, 398, 636, + 393, 391, 342, 559, 560, 351, 587, 370, 447, 538, + 537, 536, 535, 534, 533, 532, 531, 328, 329, 330, + 416, 417, 418, 428, 421, 422, 423, 424, 425, 426, + 427, 466, 467, 637, 485, 487, 488, 486, 244, 661, + 371, 372, 247, 639, 640, 99, 641, 643, 642, 29, + 644, 651, 648, 649, 650, 562, 232, -443, -441, -362, + 549, 627, 394, 548, 551, 388, 367, 657, 660, 392, + 267, 328, 329, 330, 464, 365, -235, -362, 661, -197, + 251, 40, -249, -362, -197, -87, -16, -15, -186, -187, + -249, 246, -371, 24, 446, -99, 447, 241, 242, 86, + 78, -362, -9, -113, -8, -120, -85, -184, 451, -369, + -362, 328, 328, -369, 246, -364, 277, 427, -362, -498, + 252, -447, -420, 278, -446, -422, -449, -423, 33, 237, + 239, 238, 561, 274, 16, 392, 248, 14, 13, 393, + 260, 26, 27, 29, 15, 394, 396, 30, 397, 400, + 401, 402, 43, 405, 406, 267, 89, 97, 92, 285, + -234, -362, -397, -389, 118, -392, -384, -385, -387, -340, + -534, -382, 86, 145, 146, 153, 119, 663, -386, -479, + 37, 121, 567, 571, 607, 514, -332, -333, -334, -335, + -336, -337, 552, -362, -535, -533, 92, 102, 104, 108, + 109, 107, 105, 157, 190, 106, 93, 158, -187, 89, + -555, 577, -356, 600, 613, 614, 615, 616, 599, 62, + -505, -513, 245, -511, 156, 195, 263, 191, 14, 151, + 439, 192, 608, 609, 610, 574, 596, 516, 578, 588, + 603, 569, 570, 572, 564, 565, 566, 568, 579, 581, + 595, -514, 591, 601, 602, 587, 611, 612, 648, 604, + 605, 606, 643, 91, 90, 594, 593, 580, 575, 576, + 582, 563, 573, 583, 584, 592, 597, 598, 376, 111, + 377, 378, 506, 368, 81, 379, 252, 446, 71, 380, + 381, 382, 383, 384, 513, 385, 72, 386, 375, 267, + 429, 387, 194, 212, 518, 517, 519, 510, 507, 505, + 508, 509, 511, 512, 585, 586, 590, -136, -138, 618, + -608, -323, -609, 6, 7, 8, 9, -610, 158, -599, + 448, 557, 92, 321, 365, 17, 506, 647, 547, 647, + 547, 168, 165, -434, 168, 117, 174, 173, 250, 168, + -434, -362, 171, 647, 170, 645, 331, 273, -411, -175, + 365, 429, 337, 98, 277, -414, -412, 545, -499, 325, + 321, 297, 247, 114, -176, 257, 256, 112, 506, 245, + 403, 316, 57, 59, -570, -571, 234, 235, 236, -562, + 539, -561, -362, 647, 652, 378, 100, 101, 645, 646, + 28, 246, 389, 273, 484, 482, 483, 485, 486, 487, + 488, -65, -515, -497, 479, 478, -375, 471, 477, 469, + 481, 472, 366, 339, 561, 338, 237, 639, 546, 540, + -350, 413, 449, 503, 504, 390, 450, 490, 492, 473, + 111, 198, 195, 247, 249, 246, 645, 365, 506, 429, + 98, 337, 246, -570, 652, 165, 490, 492, 448, 277, + 427, 42, -440, 439, -439, -441, 491, 502, 90, 91, + 489, -350, 111, 470, 470, -608, -323, -185, -187, -123, + -560, 547, 647, 247, 365, 429, 277, 248, 246, 542, + 545, 249, 506, 245, 328, 389, 273, 337, 98, 170, + 645, -191, -192, -193, 230, 231, 232, 70, 235, 233, + 67, 33, 34, 35, -1, 125, 662, -389, -389, -6, + 665, -6, -389, -362, -362, 160, -256, -260, -257, -259, + -258, -262, -261, 195, 196, 156, 199, 205, 201, 202, + 203, 204, 206, 207, 208, 209, 210, 213, 214, 211, + 32, 212, 263, 191, 192, 193, 194, 215, 177, 197, + 554, 223, 178, 224, 179, 225, 180, 226, 181, 182, + 227, 183, 186, 187, 188, 189, 185, 159, -224, 92, + 33, 86, 159, 92, -216, 269, -197, -249, -241, 159, + 663, -216, -608, -207, -208, 11, -249, -338, -362, 448, + 128, -99, 78, -99, 447, 78, -99, 447, 241, -563, + -564, -565, -567, 241, 447, 446, 242, -118, 159, 285, + 17, -369, -369, 84, -249, -422, 277, -447, -420, 37, + 83, 160, 250, 160, 83, 86, 390, 365, 429, 391, + 506, 246, 403, 249, 277, 404, 365, 429, 246, 249, + 506, 277, 365, 246, 249, 429, 277, 404, 365, 469, + 470, 249, 28, 395, 398, 399, 470, -519, 502, 160, + 117, 114, 115, 116, -389, 135, -404, 128, 129, 130, + 131, 132, 133, 134, 142, 141, 152, 145, 146, 147, + 148, 149, 150, 151, 143, 144, 138, 118, 136, 140, + 137, 120, 155, -187, -389, -397, 62, -387, -387, -387, + -387, -362, -479, -394, -389, 86, 86, 86, 86, 86, + 159, 105, 92, -389, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, -512, 86, 86, -401, + -402, 86, 86, -382, -338, 86, 92, 92, 86, 86, + 86, 92, 86, 86, 86, -402, -402, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, -208, 160, -207, 86, -207, -208, -188, -187, - 33, 34, 33, 34, 33, 34, 33, 34, -611, 635, - 86, 102, 657, 228, 17, -362, 644, -362, -593, 33, - 549, 549, 549, 549, 494, 555, 172, 173, 174, -362, - 171, 250, -362, -409, 252, -409, -409, -233, -362, -235, - 388, 249, 541, 249, -176, -409, -409, -409, -409, -409, - 248, -409, 24, 246, 246, 246, 246, -409, 512, 128, - 128, 60, -572, 176, 160, -562, -215, 86, -593, 652, - 653, 654, -374, 136, 140, -374, -319, 18, -319, 24, - 24, 275, 275, 275, -374, 315, -619, -620, 17, 138, - -372, -620, -372, -372, -374, -621, 248, 479, 44, 276, - 275, -209, -210, 22, -209, 473, 469, -464, 474, 475, - -376, -620, -375, -374, -374, -375, -374, -374, -374, 33, - 246, 249, 505, 337, 639, -619, -619, 32, 32, -498, - -498, -249, -498, -498, 539, -351, -362, -498, -498, -498, - -303, -304, -249, -573, 251, 654, -605, -604, 492, -607, - 494, 165, -441, 165, -441, 89, -422, 277, 277, 160, - 128, 24, -442, 128, 139, -441, -441, -442, -442, -273, - 42, -361, 156, -362, 92, -273, 42, -602, -601, -249, - -208, -188, -187, 87, 87, 87, 549, -593, -498, -498, - -498, -498, -498, -499, -498, -498, -498, -498, -498, -369, - -225, -362, -235, 252, -498, -498, -498, -498, -189, -190, - 147, -389, -362, -193, -3, -146, -145, 122, 123, 125, - 629, 383, 628, 632, 626, -441, 42, -492, 410, 409, - -486, -488, 86, -487, 86, -487, -487, -487, -487, -487, - 86, 86, -489, 86, -489, -489, -486, -490, 86, -490, - -491, 86, -491, -490, -362, -468, 555, -395, -397, -362, - 40, -508, 62, -184, 86, 32, 86, -216, -362, 192, - 170, 643, 36, -509, 62, -184, 86, 32, -208, -139, - 40, -210, 21, 159, 102, 92, -118, -99, 78, -118, - -99, -99, 87, 160, -566, 108, 109, -568, 210, 201, - -362, -116, 92, -7, -11, -8, -9, -10, -47, -85, - -184, 547, 550, -536, -534, 86, 33, 437, 83, 17, - -448, 246, 505, 388, 273, 249, 364, -446, -429, -426, - -424, -361, -422, -425, -424, -451, -338, 469, -140, 452, - 451, 327, -389, -389, -389, -389, -389, 107, 118, 355, - 108, 109, -384, -405, 33, 323, 324, -385, -385, -385, - -385, -385, -385, -385, -385, -385, -385, -385, -385, -393, - -403, -479, 86, 138, 136, 140, 137, 120, -387, -387, - -385, -385, -275, -361, 156, 87, 160, -389, -559, -558, - 122, -389, -389, -389, -389, -415, -417, -338, 86, -362, - -556, -557, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 379, 374, 380, 378, 367, 386, 381, - 382, 194, 536, 537, 530, 531, 532, 533, 534, 535, - -395, -395, -389, -556, -395, -331, 34, 33, -397, -397, - -397, 87, -389, -569, 353, 352, 354, -211, -362, -395, - 87, 87, 87, 102, -397, -397, -395, -385, -395, -395, - -395, -395, -557, -331, -331, -331, -331, 147, -397, -397, - -331, -331, -331, -331, 147, -331, -331, -331, -331, -331, - -331, -331, -331, -331, -331, -331, 87, 87, 87, 147, - -397, -209, -138, -517, -516, -389, 42, -139, -210, -612, - 636, 86, -338, -600, 92, 92, 662, 170, 644, 17, - 505, -362, 17, 246, -362, 102, -362, 102, 495, 496, - 169, 173, 172, -362, 171, -362, -362, 118, -362, -362, - 36, 86, -225, -409, -409, -409, -577, -362, 93, -430, - -427, -424, -362, -362, -420, -362, -351, -249, -409, -409, - -409, -409, -249, -284, 54, 55, 56, -424, -177, 57, - 58, -573, -561, 36, -214, -362, -319, -387, -387, -389, - 364, 505, 246, -424, 277, -619, -374, -374, -352, -351, - -376, -371, -376, -376, -319, -372, -374, -374, -389, -376, - -372, -319, -362, 469, -319, -319, -464, -374, -373, -362, - -373, -409, -351, -352, -352, -249, -249, -298, -305, -299, - -306, 269, 243, 372, 373, 240, 238, 11, 239, -313, - 316, -410, 513, -279, -280, 78, 43, -282, 267, 414, - 407, 279, 283, 96, 284, 447, 285, 248, 287, 288, - 289, 304, 306, 259, 290, 291, 292, 438, 293, 164, - 305, 294, 295, 296, 390, -274, 6, 340, 555, 42, - 52, 53, 461, 460, 558, 280, -362, -577, -575, 32, - -362, 32, -430, -424, -362, -362, 160, 250, -200, -202, - -199, -195, -196, -201, -322, -324, -198, 86, -249, -187, - -362, -441, 160, 493, 495, 496, -605, -442, -605, -442, - 250, 33, 437, -445, 437, 33, -420, -439, 489, 491, - -435, 92, 438, -425, -444, 83, 156, -516, -442, -442, - -444, -444, 155, 160, -603, 494, 495, 234, -209, 102, - -251, -249, -577, -429, -420, -362, -498, -251, -251, -251, - -364, -364, 86, 159, 37, -362, -362, -362, -362, -318, - 160, -317, 17, -363, -362, 36, 92, 159, -147, -145, - 124, -389, -6, 628, -389, -6, -6, -389, -6, -389, - -496, 411, 102, 102, -341, 92, -341, 102, 102, 102, - 561, 87, 92, -433, 83, -510, -398, -554, 617, -218, - 87, -211, -552, -553, -211, -217, -362, -508, -241, 128, - 128, 128, 25, -510, -218, 87, -552, -209, 618, -139, - -206, -205, -389, -362, 24, -118, -99, -564, 159, 160, - -214, -448, -428, -425, -450, 147, -362, -436, 160, 555, - 665, 90, 250, -590, -589, 429, 87, 160, -520, 251, - 512, 92, 662, 445, 228, 229, 107, 355, 108, 109, - -479, -397, -393, -387, -387, -385, -385, -391, 264, -391, - 117, -389, 663, -388, -558, 124, -389, 36, 160, 36, - 160, 84, 160, 87, -486, -389, 159, 87, 87, 17, - 17, 87, -389, 87, 87, 87, 87, 17, 17, -389, - 87, 159, 87, 87, 87, 87, 84, 87, 160, 87, - 87, 87, 87, 160, -397, -397, -389, -397, 87, 87, - 87, -389, -389, -389, -397, 87, -389, -389, -389, -389, - -389, -389, -389, -389, -389, -389, -214, -458, 464, -458, - -458, 160, 160, 160, 87, -139, 86, 102, 160, 658, - -345, -344, 92, -362, -362, 170, 644, -362, 92, 644, - -362, 92, 170, 174, 174, 173, -362, 92, 37, 24, - 24, 314, -234, -236, -237, -238, -239, -240, 138, 161, - 162, 86, -249, -249, -249, -579, 415, -591, 160, 42, - -589, 505, -173, 327, -413, 84, -180, 17, 555, -249, - -249, -249, -249, -263, 36, 17, -194, -250, -362, 86, - 87, 160, -362, -362, -362, -421, 84, -362, -352, -319, - -319, -376, -319, -319, 160, 23, -374, -376, -376, -241, - -372, -241, 159, -241, -351, -485, 36, -215, 160, 21, - 269, -248, -359, -245, -247, 254, -379, -246, 257, -548, - 255, 253, 112, 258, 312, 113, 248, -359, -359, 254, - -283, 250, 36, -359, -301, 248, 358, 312, 255, 21, - 269, -300, 248, 113, -362, 254, 258, 255, 253, -358, - 128, -350, 155, 250, 44, 390, -358, 559, 269, -358, - -358, -358, -358, -358, -358, -358, 286, 286, -358, -358, - -358, -358, -358, -358, -358, -358, -358, -358, -358, 165, - -358, -358, -358, -358, -358, -358, 86, 332, 281, 282, - 314, -580, 415, 32, 370, 370, 371, -591, 366, 43, - 32, -181, 364, -304, -302, -373, 32, -325, -326, -327, - -328, -330, -329, 69, 73, 75, 79, 70, 71, 72, - 76, 81, 74, 32, 160, -360, -365, 36, -362, 92, - -360, -187, -202, -200, -360, 86, -442, -604, -606, 497, - 494, 500, -444, -444, 102, 250, 86, 128, -444, -444, - 42, -361, -601, 501, 495, -139, 160, 83, -251, -226, - -227, -228, -229, -256, -338, 196, 199, 201, 202, 203, - 204, 206, 207, 208, 209, 210, 213, 214, 211, 212, - 263, 191, 192, 193, 194, 215, 177, 197, 553, 178, - 179, 180, 181, 182, 183, 186, 187, 188, 189, 185, - -362, -235, -319, -190, -202, -362, 92, -362, 147, 125, - -6, 123, -151, -150, -149, 126, 626, 632, 125, 125, - 125, 87, 87, 87, 160, 87, 87, 87, 160, 87, - 160, 102, -523, 474, 41, 160, 86, 87, 160, 62, - 160, 128, 87, 160, -389, -362, 92, -389, 192, 87, - 62, -139, 92, 160, -203, 38, 39, 159, 447, -362, - -534, 87, -450, 160, 250, 159, 159, -426, 393, -361, - -428, 21, 555, -338, 40, -345, 128, 662, -362, 87, - -391, -391, 117, -387, -384, 87, 125, -389, 123, -254, - -256, 409, 410, -389, -254, -255, -261, 156, 195, 263, - 194, 193, 191, 409, 410, -273, -417, 552, -203, 87, - -362, -389, -389, 87, -389, -389, 17, -362, -273, -385, - -389, -208, -208, 87, 87, -457, -458, -457, -457, 87, - 87, 87, 87, -457, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 86, 102, 104, 102, 104, - -516, -613, 64, 634, 63, 437, 107, 317, 160, 102, - 92, 663, 160, 128, 92, -362, -362, 17, 246, -362, - 17, 174, 92, -592, 321, 364, 505, 246, 364, 321, - 505, 246, -469, 102, 401, 87, 160, -338, -226, -215, - 86, -215, -582, 476, 417, 427, -358, -381, -380, 366, - 43, -503, 438, 423, 424, -427, 277, -351, -588, 99, - 128, 83, 344, 348, 350, 349, 345, 346, 347, -407, - -408, -406, -410, -575, 86, 86, -184, 36, 136, -180, - 86, 86, 36, -480, 334, -256, -249, -194, -362, 17, - 160, -574, 159, -1, -362, -362, -420, -374, -319, -389, - -389, -319, -374, -374, -376, -362, -241, -480, -256, 36, - -299, 243, 239, -454, 314, 315, -455, -470, 317, -472, - 86, -253, -338, -246, -547, -548, -409, -362, 113, -547, - 113, 86, -253, -338, -338, -302, -338, -362, -362, -362, - -362, -309, -308, -338, -311, 33, -312, -362, -362, -362, - -362, 113, -362, 113, -278, 42, 49, 50, 51, -358, - -358, 198, -281, 42, 437, 439, 440, -311, 102, 102, - 102, 102, 92, 92, 92, -358, -358, 102, 92, -365, - 92, -549, 173, 46, 47, 102, 102, 102, 102, 42, - 92, -286, 42, 297, 301, 298, 299, 300, 92, 102, - 42, 102, 42, 102, 42, -362, 86, -550, -551, 92, - 333, -469, -582, -358, 370, -441, 128, 128, -381, -584, - 96, 418, -584, -587, 327, -183, 505, 33, -219, 243, - 239, -575, -432, -431, -338, -199, -199, -199, -199, -199, - -199, 69, 80, 69, -212, 86, 69, 74, 69, 74, - 69, -327, 69, 80, -432, -201, -215, -365, 87, -598, - -597, -596, -594, 77, 251, 78, -395, -444, 494, 498, - 499, -428, -377, 92, -435, -223, 24, -249, -249, -501, - 307, 308, 87, 160, -256, -321, 19, 159, 121, -6, - -147, -149, -389, -6, -389, 628, 383, 629, 92, 102, - 102, -531, 458, 453, 455, 113, -398, -518, -517, 62, - -184, -211, -510, -553, -516, -362, 663, 663, 663, 663, - 92, 62, -184, -510, -223, -523, -205, -204, 45, -362, - 102, 17, -425, -420, 147, 147, -362, 394, -436, 92, - 416, 92, 246, 663, 92, -345, -384, -389, 87, -264, - 182, 181, -264, 36, 87, 87, -487, -487, -486, -489, - -486, -264, -264, 87, 86, -203, 87, 24, 87, 87, - 87, -389, 87, 87, 160, -506, 514, -507, 588, -457, + 86, 86, 86, -208, 160, -207, 86, -207, -208, -188, + -187, 33, 34, 33, 34, 33, 34, 33, 34, -611, + 636, 86, 102, 658, 228, 17, -362, 645, -362, -593, + 33, 550, 550, 550, 550, 495, 556, 172, 173, 174, + -362, 171, 250, -362, -409, 252, -409, -409, -233, -362, + -235, 389, 249, 542, 249, -176, -409, -409, -409, -409, + -409, 248, -409, 24, 246, 246, 246, 246, -409, 513, + 128, 128, 60, -572, 176, 160, -562, -215, 86, -593, + 653, 654, 655, -374, 136, 140, -374, -319, 18, -319, + 24, 24, 275, 275, 275, -374, 315, -619, -620, 17, + 138, -372, -620, -372, -372, -374, -621, 248, 480, 44, + 276, 275, -209, -210, 22, -209, 474, 470, -464, 475, + 476, -376, -620, -375, -374, -374, -375, -374, -374, -374, + 33, 246, 249, 506, 337, 640, -619, -619, 32, 32, + -498, -498, -249, -498, -498, 540, -351, -362, -498, -498, + -498, -303, -304, -249, -573, 251, 655, -605, -604, 493, + -607, 495, 165, -441, 165, -441, 89, -422, 277, 277, + 160, 128, 24, -442, 128, 139, -441, -441, -442, -442, + -273, 42, -361, 156, -362, 92, -273, 42, -602, -601, + -249, -208, -188, -187, 87, 87, 87, 550, -593, -498, + -498, -498, -498, -498, -499, -498, -498, -498, -498, -498, + -369, -225, -362, -235, 252, -498, -498, -498, -498, -189, + -190, 147, -389, -362, -193, -3, -146, -145, 122, 123, + 125, 630, 384, 629, 633, 627, -441, 42, -492, 411, + 410, -486, -488, 86, -487, 86, -487, -487, -487, -487, + -487, 86, 86, -489, 86, -489, -489, -486, -490, 86, + -490, -491, 86, -491, -490, -362, -468, 556, -395, -397, + -362, 40, -508, 62, -184, 86, 32, 86, -216, -362, + 192, 170, 644, 36, -509, 62, -184, 86, 32, -208, + -139, 40, -210, 21, 159, 102, 92, -118, -99, 78, + -118, -99, -99, 87, 160, -566, 108, 109, -568, 210, + 201, -362, -116, 92, -7, -11, -8, -9, -10, -47, + -85, -184, 548, 551, -536, -534, 86, 33, 438, 83, + 17, -448, 246, 506, 389, 273, 249, 365, -446, -429, + -426, -424, -361, -422, -425, -424, -451, -338, 470, -140, + 453, 452, 327, -389, -389, -389, -389, -389, 107, 118, + 355, 108, 109, -384, -405, 33, 323, 324, -385, -385, + -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, + -393, -403, -479, 86, 138, 136, 140, 137, 120, -387, + -387, -385, -385, -275, -361, 156, 87, 160, -389, -559, + -558, 122, -389, -389, -389, -389, -415, -417, -338, 86, + -362, -556, -557, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 380, 375, 381, 379, 368, 387, + 382, 383, 194, 537, 538, 531, 532, 533, 534, 535, + 536, -395, -395, -389, -556, -395, -331, 34, 33, -397, + -397, -397, 87, -389, -569, 353, 352, 354, -211, -362, + -395, 87, 87, 87, 102, -397, -397, -395, -385, -395, + -395, -395, -395, -557, -331, -331, -331, -331, 147, -397, + -397, -331, -331, -331, -331, 147, -331, -331, -331, -331, + -331, -331, -331, -331, -331, -331, -331, 87, 87, 87, + 147, -397, -209, -138, -517, -516, -389, 42, -139, -210, + -612, 637, 86, -338, -600, 92, 92, 663, 170, 645, + 17, 506, -362, 17, 246, -362, 102, -362, 102, 496, + 497, 169, 173, 172, -362, 171, -362, -362, 118, -362, + -362, 36, 86, -225, -409, -409, -409, -577, -362, 93, + -430, -427, -424, -362, -362, -420, -362, -351, -249, -409, + -409, -409, -409, -249, -284, 54, 55, 56, -424, -177, + 57, 58, -573, -561, 36, -214, -362, -319, -387, -387, + -389, 365, 506, 246, -424, 277, -619, -374, -374, -352, + -351, -376, -371, -376, -376, -319, -372, -374, -374, -389, + -376, -372, -319, -362, 470, -319, -319, -464, -374, -373, + -362, -373, -409, -351, -352, -352, -249, -249, -298, -305, + -299, -306, 269, 243, 373, 374, 240, 238, 11, 239, + -313, 316, -410, 514, -279, -280, 78, 43, -282, 267, + 415, 408, 279, 283, 96, 284, 448, 285, 248, 287, + 288, 289, 304, 306, 259, 290, 291, 292, 439, 293, + 164, 305, 294, 295, 296, 391, -274, 6, 340, 556, + 42, 52, 53, 462, 461, 559, 280, -362, -577, -575, + 32, -362, 32, -430, -424, -362, -362, 160, 250, -200, + -202, -199, -195, -196, -201, -322, -324, -198, 86, -249, + -187, -362, -441, 160, 494, 496, 497, -605, -442, -605, + -442, 250, 33, 438, -445, 438, 33, -420, -439, 490, + 492, -435, 92, 439, -425, -444, 83, 156, -516, -442, + -442, -444, -444, 155, 160, -603, 495, 496, 234, -209, + 102, -251, -249, -577, -429, -420, -362, -498, -251, -251, + -251, -364, -364, 86, 159, 37, -362, -362, -362, -362, + -318, 160, -317, 17, -363, -362, 36, 92, 159, -147, + -145, 124, -389, -6, 629, -389, -6, -6, -389, -6, + -389, -496, 412, 102, 102, -341, 92, -341, 102, 102, + 102, 562, 87, 92, -433, 83, -510, -398, -554, 618, + -218, 87, -211, -552, -553, -211, -217, -362, -508, -241, + 128, 128, 128, 25, -510, -218, 87, -552, -209, 619, + -139, -206, -205, -389, -362, 24, -118, -99, -564, 159, + 160, -214, -448, -428, -425, -450, 147, -362, -436, 160, + 556, 666, 90, 250, -590, -589, 430, 87, 160, -520, + 251, 513, 92, 663, 446, 228, 229, 107, 355, 108, + 109, -479, -397, -393, -387, -387, -385, -385, -391, 264, + -391, 117, -389, 664, -388, -558, 124, -389, 36, 160, + 36, 160, 84, 160, 87, -486, -389, 159, 87, 87, + 17, 17, 87, -389, 87, 87, 87, 87, 17, 17, + -389, 87, 159, 87, 87, 87, 87, 84, 87, 160, + 87, 87, 87, 87, 160, -397, -397, -389, -397, 87, + 87, 87, -389, -389, -389, -397, 87, -389, -389, -389, + -389, -389, -389, -389, -389, -389, -389, -214, -458, 465, + -458, -458, 160, 160, 160, 87, -139, 86, 102, 160, + 659, -345, -344, 92, -362, -362, 170, 645, -362, 92, + 645, -362, 92, 170, 174, 174, 173, -362, 92, 37, + 24, 24, 314, -234, -236, -237, -238, -239, -240, 138, + 161, 162, 86, -249, -249, -249, -579, 416, -591, 160, + 42, -589, 506, -173, 327, -413, 84, -180, 17, 556, + -249, -249, -249, -249, -263, 36, 17, -194, -250, -362, + 86, 87, 160, -362, -362, -362, -421, 84, -362, -352, + -319, -319, -376, -319, -319, 160, 23, -374, -376, -376, + -241, -372, -241, 159, -241, -351, -485, 36, -215, 160, + 21, 269, -248, -359, -245, -247, 254, -379, -246, 257, + -548, 255, 253, 112, 258, 312, 113, 248, -359, -359, + 254, -283, 250, 36, -359, -301, 248, 358, 312, 255, + 21, 269, -300, 248, 113, -362, 254, 258, 255, 253, + -358, 128, -350, 155, 250, 44, 391, -358, 560, 269, + -358, -358, -358, -358, -358, -358, -358, 286, 286, -358, + -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, + 165, -358, -358, -358, -358, -358, -358, 86, 332, 281, + 282, 314, -580, 416, 32, 371, 371, 372, -591, 367, + 43, 32, -181, 365, -304, -302, -373, 32, -325, -326, + -327, -328, -330, -329, 69, 73, 75, 79, 70, 71, + 72, 76, 81, 74, 32, 160, -360, -365, 36, -362, + 92, -360, -187, -202, -200, -360, 86, -442, -604, -606, + 498, 495, 501, -444, -444, 102, 250, 86, 128, -444, + -444, 42, -361, -601, 502, 496, -139, 160, 83, -251, + -226, -227, -228, -229, -256, -338, 196, 199, 201, 202, + 203, 204, 206, 207, 208, 209, 210, 213, 214, 211, + 212, 263, 191, 192, 193, 194, 215, 177, 197, 554, + 178, 179, 180, 181, 182, 183, 186, 187, 188, 189, + 185, -362, -235, -319, -190, -202, -362, 92, -362, 147, + 125, -6, 123, -151, -150, -149, 126, 627, 633, 125, + 125, 125, 87, 87, 87, 160, 87, 87, 87, 160, + 87, 160, 102, -523, 475, 41, 160, 86, 87, 160, + 62, 160, 128, 87, 160, -389, -362, 92, -389, 192, + 87, 62, -139, 92, 160, -203, 38, 39, 159, 448, + -362, -534, 87, -450, 160, 250, 159, 159, -426, 394, + -361, -428, 21, 556, -338, 40, -345, 128, 663, -362, + 87, -391, -391, 117, -387, -384, 87, 125, -389, 123, + -254, -256, 410, 411, -389, -254, -255, -261, 156, 195, + 263, 194, 193, 191, 410, 411, -273, -417, 553, -203, + 87, -362, -389, -389, 87, -389, -389, 17, -362, -273, + -385, -389, -208, -208, 87, 87, -457, -458, -457, -457, + 87, 87, 87, 87, -457, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 86, 102, 104, 102, + 104, -516, -613, 64, 635, 63, 438, 107, 317, 160, + 102, 92, 664, 160, 128, 92, -362, -362, 17, 246, + -362, 17, 174, 92, -592, 321, 365, 506, 246, 365, + 321, 506, 246, -469, 102, 402, 87, 160, -338, -226, + -215, 86, -215, -582, 477, 418, 428, -358, -381, -380, + 367, 43, -503, 439, 424, 425, -427, 277, -351, -588, + 99, 128, 83, 344, 348, 350, 349, 345, 346, 347, + -407, -408, -406, -410, -575, 86, 86, -184, 36, 136, + -180, 86, 86, 36, -480, 334, -256, -249, -194, -362, + 17, 160, -574, 159, -1, -362, -362, -420, -374, -319, + -389, -389, -319, -374, -374, -376, -362, -241, -480, -256, + 36, -299, 243, 239, -454, 314, 315, -455, -470, 317, + -472, 86, -253, -338, -246, -547, -548, -409, -362, 113, + -547, 113, 86, -253, -338, -338, -302, -338, -362, -362, + -362, -362, -309, -308, -338, -311, 33, -312, -362, -362, + -362, -362, 113, -362, 113, -278, 42, 49, 50, 51, + -358, -358, 198, -281, 42, 438, 440, 441, -311, 102, + 102, 102, 102, 92, 92, 92, -358, -358, 102, 92, + -365, 92, -549, 173, 46, 47, 102, 102, 102, 102, + 42, 92, -286, 42, 297, 301, 298, 299, 300, 92, + 102, 42, 102, 42, 102, 42, -362, 86, -550, -551, + 92, 333, -469, -582, -358, 371, -441, 128, 128, -381, + -584, 96, 419, -584, -587, 327, -183, 506, 33, -219, + 243, 239, -575, -432, -431, -338, -199, -199, -199, -199, + -199, -199, 69, 80, 69, -212, 86, 69, 74, 69, + 74, 69, -327, 69, 80, -432, -201, -215, -365, 87, + -598, -597, -596, -594, 77, 251, 78, -395, -444, 495, + 499, 500, -428, -377, 92, -435, -223, 24, -249, -249, + -501, 307, 308, 87, 160, -256, -321, 19, 159, 121, + -6, -147, -149, -389, -6, -389, 629, 384, 630, 92, + 102, 102, -531, 459, 454, 456, 113, -398, -518, -517, + 62, -184, -211, -510, -553, -516, -362, 664, 664, 664, + 664, 92, 62, -184, -510, -223, -523, -205, -204, 45, + -362, 102, 17, -425, -420, 147, 147, -362, 395, -436, + 92, 417, 92, 246, 664, 92, -345, -384, -389, 87, + -264, 182, 181, -264, 36, 87, 87, -487, -487, -486, + -489, -486, -264, -264, 87, 86, -203, 87, 24, 87, + 87, 87, -389, 87, 87, 160, -506, 515, -507, 589, -457, -457, -457, -457, -457, -457, -457, -457, -457, -457, - -457, -457, -457, -457, -457, -457, -400, -399, 269, 459, - 641, 641, 459, 641, 641, 87, 160, -556, 160, -353, - 322, -353, -344, 92, 250, 92, 170, -362, 92, 644, - 92, -362, -362, -362, 314, -362, 314, -362, -362, 92, - 92, 92, -238, -256, 87, 36, -242, -243, -244, -253, - -245, -247, 36, -583, 96, -578, 92, -362, 93, -584, - 158, 368, 42, 419, 420, 435, 363, 102, 102, 425, - -576, -362, -182, 246, 364, -586, 53, 128, 92, -249, - -406, -350, 155, 288, 337, -316, -315, -362, 92, -242, - -184, -249, -242, -242, -184, -481, 336, 21, 102, 146, - -216, 84, 159, -202, -250, -362, 147, 87, -319, -241, - -319, -319, -374, -481, -184, -466, 318, 86, -464, 86, - -464, 113, 345, -473, -471, 269, -307, 46, 48, -256, - -545, -362, -543, -545, -362, -543, -543, -409, -389, -307, - -253, 250, 32, 239, -310, 342, 343, 348, 350, -437, - 313, 118, -437, 160, -203, 160, -362, -273, -273, 32, - 92, 92, -251, 87, 160, 128, 102, 92, -583, -578, - 128, -442, 92, 92, -584, 92, 92, -588, 128, -252, - 246, -351, 160, -219, -219, -319, 160, 128, -221, -220, - 83, 84, -222, 83, -220, -220, 69, -213, 92, 69, - 69, -319, -596, -595, 24, -548, -548, -548, 87, 87, - 15, -228, 42, -320, 20, 21, 147, 125, 123, 125, - 125, -362, 87, 87, -493, 619, -527, -529, 453, 21, - 21, 15, 251, 87, -510, 663, -510, -531, 46, 47, - -420, -436, 438, -249, 160, 663, -254, -292, 92, -389, - 87, -389, 87, 92, 87, 92, -208, 21, 87, 160, - 87, 87, 87, 160, 87, 87, -389, 87, -556, -354, - 192, 92, -354, 364, -363, -362, 17, -362, 92, -362, - -469, 314, -469, 314, 246, -362, 244, -184, 87, 160, - -184, 92, -581, 429, 102, 42, 102, 158, 421, -504, - -174, 96, -251, 33, -219, -585, 96, 128, 662, 86, - -358, -358, -358, -362, 87, 160, -358, -358, 87, 87, - 87, -271, 555, -482, 268, 102, 146, 102, 146, 102, - -360, -202, -362, -319, -574, 159, -319, -482, -456, 319, - 102, -385, 86, -385, 86, -465, 316, 86, 87, 160, - -362, -338, -268, -267, -265, 107, 118, 42, 407, -266, - 96, 155, 302, 305, 304, 280, 303, -297, -378, 83, - 413, 342, 343, -410, 619, 543, 253, 112, 113, 395, - -379, 86, 86, 84, 322, 86, 86, -545, 87, -307, - -338, 42, -310, 42, 356, 313, -308, -362, 155, -273, - 87, -551, 92, -556, -581, 92, -444, -586, 92, -174, - -251, -575, -208, -431, -516, -389, 86, -389, 87, 86, - 69, 11, 19, -382, -389, -397, 647, 649, 650, 252, - -6, 629, 383, -288, 620, 92, 21, 92, -525, 92, - -432, -493, -142, -285, -350, 285, 87, -291, 138, 555, - 87, 87, -457, -457, -460, -459, -463, 459, 314, 467, - -397, 92, 92, 87, 87, 92, -362, 170, 92, 662, - 92, -469, 92, -469, -362, 314, -230, -256, -178, 555, - -271, -244, -178, 21, 555, 367, 42, 102, 42, 422, - 92, -182, 128, 108, 109, -346, -347, 92, -415, -273, - -275, 92, -315, -382, -382, -269, -184, 36, -270, -313, - -410, 555, -141, -140, -269, 555, 86, -483, 164, 102, - 146, 102, 102, -319, -319, -483, -472, 21, 87, -451, - 87, -451, 86, 128, -385, -471, -474, 62, -265, 107, - -385, 92, -275, -276, 42, 301, 297, 128, 128, -277, - 42, 281, 282, -287, 86, 312, 15, 198, 86, 113, - 113, -249, -415, -415, -546, 344, 345, 346, 351, 348, - 349, 347, 350, -546, -415, -415, 86, -438, -437, -385, - -358, -358, 155, -585, -209, -214, -544, -362, 253, 21, - 21, -502, 555, 648, 86, 86, -362, -362, -342, 621, - 102, 92, 455, -288, -494, 622, -521, -464, -273, 128, - 87, 76, 553, 556, 87, -462, 120, 421, 425, -383, - -386, 102, 104, 190, 158, 87, 87, -362, -349, -348, - 92, 92, 92, 314, -469, 554, -179, 61, 501, 92, - 93, 416, 92, 93, 367, -174, 92, 663, 160, 128, - 87, -452, 269, -184, 160, -313, -350, -142, -452, -272, - -314, -362, 92, -500, 173, 335, 555, 102, 146, 102, - -208, -484, 173, 335, -455, 87, 87, 87, -451, 102, - 87, -478, -475, 86, -313, 271, 138, 92, 92, 102, - 86, -511, 32, 92, -416, 86, 87, 87, 87, 87, - -415, 102, -273, -358, 87, 87, 160, 650, 86, -397, - -397, 86, 21, -342, -495, 623, 92, -530, 458, -524, - -522, 453, 454, 455, 456, 92, 554, 66, 557, -461, - -462, 425, -383, -386, 617, 465, 465, 465, 663, 160, - 128, -469, 92, -232, -362, 312, 438, -347, 92, -418, - -453, 321, 21, -313, -358, -453, 87, 160, -358, -358, - 335, 102, 146, 102, -209, 335, -467, 320, 87, -478, - -313, -477, -476, 319, 272, 86, 87, -389, -401, -358, - 87, -290, -289, 551, -415, -418, 84, -418, 84, -418, - 84, -418, 84, 87, -273, -362, 253, -137, 86, 87, - 87, -343, -362, -525, 92, -532, 251, -528, -529, 457, - -522, 21, 455, 21, 21, -143, 160, 66, 117, 466, - 466, 466, -348, 92, 92, -231, 36, 460, 394, -419, - 259, 356, 357, 96, 555, 342, 343, 361, 360, 359, - 362, 21, -454, -273, -314, -382, -382, 102, 102, 87, - 160, -362, 268, 86, -396, -390, -389, 268, 87, -362, - -296, -294, -295, 83, 472, 310, 311, 87, -546, -546, - -546, -546, -297, 87, 160, -395, 87, 160, -539, 86, - 102, -527, -526, -528, 21, -525, 21, -525, -525, 462, - 555, -461, 92, -358, -358, 92, 92, 341, -358, -358, - -358, -358, -338, 86, -466, -476, -475, -396, 87, 160, - -437, -295, 83, -294, 83, 16, 15, -418, -418, -418, - -418, 86, 87, -362, -542, 32, 87, -538, -537, -339, - -533, -362, 458, 459, 92, -525, 128, 556, -616, -615, - 640, 102, 102, -362, 102, 102, 102, 92, -451, -456, - 87, -390, -293, 307, 308, 32, 173, -293, -395, -541, - -540, -340, 87, 160, 159, 92, 557, 92, 87, -472, - 107, 42, 309, 87, 160, 128, -537, -362, -540, 42, - -389, 159, -362, + -457, -457, -457, -457, -457, -457, -457, -400, -399, 269, + 460, 642, 642, 460, 642, 642, 87, 160, -556, 160, + -353, 322, -353, -344, 92, 250, 92, 170, -362, 92, + 645, 92, -362, -362, -362, 314, -362, 314, -362, -362, + 92, 92, 92, -238, -256, 87, 36, -242, -243, -244, + -253, -245, -247, 36, -583, 96, -578, 92, -362, 93, + -584, 158, 369, 42, 420, 421, 436, 364, 102, 102, + 426, -576, -362, -182, 246, 365, -586, 53, 128, 92, + -249, -406, -350, 155, 288, 337, -316, -315, -362, 92, + -242, -184, -249, -242, -242, -184, -481, 336, 21, 102, + 146, -216, 84, 159, -202, -250, -362, 147, 87, -319, + -241, -319, -319, -374, -481, -184, -466, 318, 86, -464, + 86, -464, 113, 345, -473, -471, 269, -307, 46, 48, + -256, -545, -362, -543, -545, -362, -543, -543, -409, -389, + -307, -253, 250, 32, 239, -310, 342, 343, 348, 350, + -437, 313, 118, -437, 160, -203, 160, -362, -273, -273, + 32, 92, 92, -251, 87, 160, 128, 102, 92, -583, + -578, 128, -442, 92, 92, -584, 92, 92, -588, 128, + -252, 246, -351, 160, -219, -219, -319, 160, 128, -221, + -220, 83, 84, -222, 83, -220, -220, 69, -213, 92, + 69, 69, -319, -596, -595, 24, -548, -548, -548, 87, + 87, 15, -228, 42, -320, 20, 21, 147, 125, 123, + 125, 125, -362, 87, 87, -493, 620, -527, -529, 454, + 21, 21, 15, 251, 87, -510, 664, -510, -531, 46, + 47, -420, -436, 439, -249, 160, 664, -254, -292, 92, + -389, 87, -389, 87, 92, 87, 92, -208, 21, 87, + 160, 87, 87, 87, 160, 87, 87, -389, 87, -556, + -354, 192, 92, -354, 365, -363, -362, 17, -362, 92, + -362, -469, 314, -469, 314, 246, -362, 244, -184, 87, + 160, -184, 92, -581, 430, 102, 42, 102, 158, 422, + -504, -174, 96, -251, 33, -219, -585, 96, 128, 663, + 86, -358, -358, -358, -362, 87, 160, -358, -358, 87, + 87, 87, -271, 556, -482, 268, 102, 146, 102, 146, + 102, -360, -202, -362, -319, -574, 159, -319, -482, -456, + 319, 102, -385, 86, -385, 86, -465, 316, 86, 87, + 160, -362, -338, -268, -267, -265, 107, 118, 42, 408, + -266, 96, 155, 302, 305, 304, 280, 303, -297, -378, + 83, 414, 342, 343, -410, 620, 544, 253, 112, 113, + 396, -379, 86, 86, 84, 322, 86, 86, -545, 87, + -307, -338, 42, -310, 42, 356, 313, -308, -362, 155, + -273, 87, -551, 92, -556, -581, 92, -444, -586, 92, + -174, -251, -575, -208, -431, -516, -389, 86, -389, 87, + 86, 69, 11, 19, -382, -389, -397, 648, 650, 651, + 252, -6, 630, 384, -288, 621, 92, 21, 92, -525, + 92, -432, -493, -142, -285, -350, 285, 87, -291, 138, + 556, 87, 87, -457, -457, -460, -459, -463, 460, 314, + 468, -397, 92, 92, 87, 87, 92, -362, 170, 92, + 663, 92, -469, 92, -469, -362, 314, -230, -256, -178, + 556, -271, -244, -178, 21, 556, 368, 42, 102, 42, + 423, 92, -182, 128, 108, 109, -346, -347, 92, -415, + -273, -275, 92, -315, -382, -382, -269, -184, 36, -270, + -313, -410, 556, -141, -140, -269, 556, 86, -483, 164, + 102, 146, 102, 102, -319, -319, -483, -472, 21, 87, + -451, 87, -451, 86, 128, -385, -471, -474, 62, -265, + 107, -385, 92, -275, -276, 42, 301, 297, 128, 128, + -277, 42, 281, 282, -287, 86, 312, 15, 198, 86, + 113, 113, -249, -415, -415, -546, 344, 345, 346, 351, + 348, 349, 347, 350, -546, -415, -415, 86, -438, -437, + -385, -358, -358, 155, -585, -209, -214, -544, -362, 253, + 21, 21, -502, 556, 649, 86, 86, -362, -362, -342, + 622, 102, 92, 456, -288, -494, 623, -521, -464, -273, + 128, 87, 76, 554, 557, 87, -462, 120, 422, 426, + -383, -386, 102, 104, 190, 158, 87, 87, -362, -349, + -348, 92, 92, 92, 314, -469, 555, -179, 61, 502, + 92, 93, 417, 92, 93, 368, -174, 92, 664, 160, + 128, 87, -452, 269, -184, 160, -313, -350, -142, -452, + -272, -314, -362, 92, -500, 173, 335, 556, 102, 146, + 102, -208, -484, 173, 335, -455, 87, 87, 87, -451, + 102, 87, -478, -475, 86, -313, 271, 138, 92, 92, + 102, 86, -511, 32, 92, -416, 86, 87, 87, 87, + 87, -415, 102, -273, -358, 87, 87, 160, 651, 86, + -397, -397, 86, 21, -342, -495, 624, 92, -530, 459, + -524, -522, 454, 455, 456, 457, 92, 555, 66, 558, + -461, -462, 426, -383, -386, 618, 466, 466, 466, 664, + 160, 128, -469, 92, -232, -362, 312, 439, -347, 92, + -418, -453, 321, 21, -313, -358, -453, 87, 160, -358, + -358, 335, 102, 146, 102, -209, 335, -467, 320, 87, + -478, -313, -477, -476, 319, 272, 86, 87, -389, -401, + -358, 87, -290, -289, 552, -415, -418, 84, -418, 84, + -418, 84, -418, 84, 87, -273, -362, 253, -137, 86, + 87, 87, -343, -362, -525, 92, -532, 251, -528, -529, + 458, -522, 21, 456, 21, 21, -143, 160, 66, 117, + 467, 467, 467, -348, 92, 92, -231, 36, 461, 395, + -419, 259, 356, 357, 96, 556, 342, 343, 361, 360, + 359, 362, 363, 21, -454, -273, -314, -382, -382, 102, + 102, 87, 160, -362, 268, 86, -396, -390, -389, 268, + 87, -362, -296, -294, -295, 83, 473, 310, 311, 87, + -546, -546, -546, -546, -297, 87, 160, -395, 87, 160, + -539, 86, 102, -527, -526, -528, 21, -525, 21, -525, + -525, 463, 556, -461, 92, -358, -358, 92, 92, 341, + -358, -358, -358, -358, -338, 86, -466, -476, -475, -396, + 87, 160, -437, -295, 83, -294, 83, 16, 15, -418, + -418, -418, -418, 86, 87, -362, -542, 32, 87, -538, + -537, -339, -533, -362, 459, 460, 92, -525, 128, 557, + -616, -615, 641, 102, 102, -362, 102, 102, 102, 92, + -451, -456, 87, -390, -293, 307, 308, 32, 173, -293, + -395, -541, -540, -340, 87, 160, 159, 92, 558, 92, + 87, -472, 107, 42, 309, 87, 160, 128, -537, -362, + -540, 42, -389, 159, -362, } var yyDef = [...]int{ @@ -9784,397 +9783,397 @@ var yyDef = [...]int{ 410, 411, 413, 412, -2, 0, 0, 734, 0, 0, 0, 812, 0, 0, 0, 855, 873, 23, 0, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 0, 19, 0, 0, 0, 1415, 1416, - 1417, 1418, 2221, 2191, -2, 1953, 1927, 2115, 2116, 2010, - 2023, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, - 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, - 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, - 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, - 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, - 2307, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, - 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, - 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, - 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, - 1923, 1924, 1925, 1926, 1928, 1929, 1930, 1931, 1932, 1933, - 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, - 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1954, - 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, - 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, - 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, - 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, - 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2011, 2012, 2013, 2014, 2015, - 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2025, 2026, 2027, - 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, - 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, - 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, - 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, - 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, - 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, - 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, - 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, - 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2117, 2118, 2119, - 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, - 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, - 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, -2, 2149, - 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, - 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, - 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, - 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, - 2190, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, - 2201, 2202, 2203, 2204, 2205, 2206, -2, -2, -2, 2210, - 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, - 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, - 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, - 2242, 2243, 2244, 2245, 2246, 2247, 0, 314, 312, 1897, - 1927, 1953, 2010, 2023, 2024, 2063, 2115, 2116, 2148, 2191, - 2207, 2208, 2209, 2221, 0, 0, 1010, 0, 782, 0, - 0, 787, 1362, 782, 351, 723, 724, 812, 838, 683, - 0, 388, 0, 1943, 392, 2198, 0, 0, 0, 0, - 680, 382, 383, 384, 385, 386, 387, 0, 0, 983, - 0, 0, 378, 0, 345, 2013, 2220, 1419, 0, 0, - 0, 0, 0, 201, 1134, 203, 1136, 207, 215, 0, - 0, 0, 220, 221, 224, 225, 226, 227, 228, 0, - 232, 0, 234, 237, 0, 239, 240, 0, 243, 244, - 245, 0, 255, 256, 257, 1137, 1138, 1139, -2, 130, - 1008, 1855, 1741, 0, 1748, 1761, 1772, 1501, 1502, 1503, - 1504, 0, 0, 0, 0, 0, 0, 1512, 1513, 0, - 1543, 2262, 2303, 2304, 0, 1521, 1522, 1523, 1524, 1525, - 1526, 0, 141, 153, 154, 1794, 1795, 1796, 1797, 1798, - 1799, 1800, 0, 1802, 1803, 1804, 1712, 1488, 1415, 0, - 2271, 0, 2293, 2298, 2299, 2300, 2301, 2292, 0, 0, - 1696, 0, 1686, 0, 0, -2, -2, 0, 0, 2088, - -2, 2305, 2306, 2307, 2268, 2289, 2297, 2272, 2273, 2296, - 2264, 2265, 2266, 2259, 2260, 2261, 2263, 2275, 2277, 2288, - 0, 2284, 2294, 2295, 2196, 0, 0, 2243, 0, 0, - 0, 2238, 155, 156, -2, -2, -2, -2, -2, -2, + 0, 0, 19, 0, 19, 0, 0, 0, 1416, 1417, + 1418, 1419, 2223, 2193, -2, 1955, 1929, 2117, 2118, 2012, + 2025, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, + 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, + 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, + 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, + 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, + 2309, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, + 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, + 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, + 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, + 1924, 1925, 1926, 1927, 1928, 1930, 1931, 1932, 1933, 1934, + 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, + 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, + 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, + 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, + 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, + 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, + 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, + 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2027, 2028, + 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, + 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, + 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, + 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, + 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, + 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, + 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2119, 2120, + 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, + 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, + 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, -2, + 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, + 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, + 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, + 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, + 2191, 2192, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, + 2202, 2203, 2204, 2205, 2206, 2207, 2208, -2, -2, -2, + 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, + 2222, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, + 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, + 2243, 2244, 2245, 2246, 2247, 2248, 2249, 0, 314, 312, + 1899, 1929, 1955, 2012, 2025, 2026, 2065, 2117, 2118, 2150, + 2193, 2209, 2210, 2211, 2223, 0, 0, 1010, 0, 782, + 0, 0, 787, 1363, 782, 351, 723, 724, 812, 838, + 683, 0, 388, 0, 1945, 392, 2200, 0, 0, 0, + 0, 680, 382, 383, 384, 385, 386, 387, 0, 0, + 983, 0, 0, 378, 0, 345, 2015, 2222, 1420, 0, + 0, 0, 0, 0, 201, 1134, 203, 1136, 207, 215, + 0, 0, 0, 220, 221, 224, 225, 226, 227, 228, + 0, 232, 0, 234, 237, 0, 239, 240, 0, 243, + 244, 245, 0, 255, 256, 257, 1137, 1138, 1139, -2, + 130, 1008, 1856, 1742, 0, 1749, 1762, 1773, 1502, 1503, + 1504, 1505, 0, 0, 0, 0, 0, 0, 1513, 1514, + 0, 1544, 2264, 2305, 2306, 0, 1522, 1523, 1524, 1525, + 1526, 1527, 0, 141, 153, 154, 1795, 1796, 1797, 1798, + 1799, 1800, 1801, 0, 1803, 1804, 1805, 1713, 1489, 1416, + 0, 2273, 0, 2295, 2300, 2301, 2302, 2303, 2294, 0, + 0, 1697, 0, 1687, 0, 0, -2, -2, 0, 0, + 2090, -2, 2307, 2308, 2309, 2270, 2291, 2299, 2274, 2275, + 2298, 2266, 2267, 2268, 2261, 2262, 2263, 2265, 2277, 2279, + 2290, 0, 2286, 2296, 2297, 2198, 0, 0, 2245, 0, + 0, 0, 2240, 155, 156, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, 1707, -2, 1709, -2, 1711, -2, 1714, -2, -2, - -2, -2, 1719, 1720, -2, 1722, -2, -2, -2, -2, - -2, -2, -2, 1698, 1699, 1700, 1701, 1690, 1691, 1692, - 1693, 1694, 1695, -2, -2, -2, 838, 931, 0, 838, - 0, 813, 860, 863, 866, 869, 816, 0, 0, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 340, 341, 329, 331, 0, 335, 0, 0, 331, 328, - 322, 0, 1175, 1175, 1175, 0, 0, 0, 0, 1175, - 1175, 1175, 1175, 1175, 0, 1175, 0, 0, 0, 0, - 0, 1175, 0, 1043, 1141, 1142, 1143, 1173, 1174, 1247, - 0, 0, 0, 739, 735, 736, 737, 738, 826, 0, - 828, 831, 0, 0, 660, 660, 898, 898, 0, 606, - 0, 0, 0, 660, 0, 620, 612, 0, 0, 0, - 660, 0, 0, 833, 833, 0, 663, 670, 660, 660, - -2, 660, 660, 657, 660, 0, 0, 1187, 626, 627, - 628, 612, 612, 631, 632, 633, 643, 644, 671, 1879, - 0, 0, 534, 534, 0, 534, 534, 0, 534, 534, - 534, 0, 741, 1969, 2058, 1950, 2029, 1907, 2013, 2220, - 0, 287, 2088, 292, 0, 1952, 1972, 0, 0, 1991, - 0, -2, 0, 367, 838, 0, 0, 812, 0, 0, - 0, 0, 534, 534, 534, 534, 534, 1246, 534, 534, - 534, 534, 534, 0, 0, 0, 534, 534, 534, 534, - 0, 874, 875, 877, 878, 879, 880, 881, 882, 883, - 884, 885, 886, 5, 6, 19, 0, 0, 0, 0, - 0, 0, 109, 108, 0, 1856, 1874, 1807, 1808, 1809, - 1861, 1811, 1865, 1865, 1865, 1865, 1840, 1841, 1842, 1843, - 1844, 1845, 1846, 1847, 1848, 1849, 1865, 1865, 0, 0, - 1854, 1831, 1863, 1863, 1863, 1861, 1858, 1812, 1813, 1814, + -2, -2, 1708, -2, 1710, -2, 1712, -2, 1715, -2, + -2, -2, -2, 1720, 1721, -2, 1723, -2, -2, -2, + -2, -2, -2, -2, 1699, 1700, 1701, 1702, 1691, 1692, + 1693, 1694, 1695, 1696, -2, -2, -2, 838, 931, 0, + 838, 0, 813, 860, 863, 866, 869, 816, 0, 0, + 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 340, 341, 329, 331, 0, 335, 0, 0, 331, + 328, 322, 0, 1176, 1176, 1176, 0, 0, 0, 0, + 1176, 1176, 1176, 1176, 1176, 0, 1176, 0, 0, 0, + 0, 0, 1176, 0, 1043, 1141, 1142, 1143, 1174, 1175, + 1248, 0, 0, 0, 739, 735, 736, 737, 738, 826, + 0, 828, 831, 0, 0, 660, 660, 898, 898, 0, + 606, 0, 0, 0, 660, 0, 620, 612, 0, 0, + 0, 660, 0, 0, 833, 833, 0, 663, 670, 660, + 660, -2, 660, 660, 657, 660, 0, 0, 1188, 626, + 627, 628, 612, 612, 631, 632, 633, 643, 644, 671, + 1880, 0, 0, 534, 534, 0, 534, 534, 0, 534, + 534, 534, 0, 741, 1971, 2060, 1952, 2031, 1909, 2015, + 2222, 0, 287, 2090, 292, 0, 1954, 1974, 0, 0, + 1993, 0, -2, 0, 367, 838, 0, 0, 812, 0, + 0, 0, 0, 534, 534, 534, 534, 534, 1247, 534, + 534, 534, 534, 534, 0, 0, 0, 534, 534, 534, + 534, 0, 874, 875, 877, 878, 879, 880, 881, 882, + 883, 884, 885, 886, 5, 6, 19, 0, 0, 0, + 0, 0, 0, 109, 108, 0, 1857, 1875, 1808, 1809, + 1810, 1862, 1812, 1866, 1866, 1866, 1866, 1841, 1842, 1843, + 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1866, 1866, 0, + 0, 1855, 1832, 1864, 1864, 1864, 1862, 1859, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, - 1825, 1868, 1868, 1871, 1871, 1868, 0, 428, 426, 427, - 1737, 0, 0, 0, 0, 782, 786, 1360, 0, 0, - 0, 838, -2, 0, 0, 684, 389, 1420, 0, 0, - 393, 0, 394, 0, 0, 396, 0, 0, 0, 417, - 0, 420, 404, 405, 406, 407, 400, 0, 181, 0, - 380, 381, 0, 0, 347, 0, 0, 0, 535, 0, - 0, 0, 0, 0, 0, 212, 208, 216, 219, 229, - 236, 0, 248, 250, 253, 209, 217, 222, 223, 230, - 251, 210, 213, 214, 218, 252, 254, 211, 231, 235, - 249, 233, 238, 241, 242, 247, 0, 182, 0, 0, - 0, 0, 0, 1747, 0, 0, 1780, 1781, 1782, 1783, - 1784, 1785, 1786, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -2, 1741, 0, 0, 1507, 1508, 1509, 1510, - 0, 1514, 0, 1544, 0, 0, 0, 0, 0, 0, - 1801, 1805, 0, 1737, 1737, 0, 1737, 1733, 0, 0, - 0, 0, 0, 0, 1737, 1669, 0, 0, 1671, 1687, - 0, 0, 1673, 1674, 0, 1677, 1678, 1737, 0, 1737, - 1682, 1737, 1737, 1737, 1665, 1666, 0, 1733, 1733, 1733, - 1733, 0, 0, 1733, 1733, 1733, 1733, 1733, 1733, 1733, - 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 0, 0, - 0, 0, 833, 0, 839, 0, -2, 0, 857, 859, - 861, 862, 864, 865, 867, 868, 870, 871, 818, 0, - 0, 105, 0, 0, 0, 0, 0, 0, 71, 73, - 0, 0, 0, 0, 0, 0, 333, 0, 338, 324, - 2050, 0, 323, 0, 0, 0, 0, 0, 1007, 0, - 0, 1175, 1175, 1175, 1044, 0, 0, 0, 0, 0, - 0, 0, 0, 1175, 1175, 1175, 1175, 0, 1193, 0, - 0, 0, 741, 740, 0, 827, 0, 0, 70, 595, - 596, 597, 898, 0, 0, 599, 600, 0, 601, 0, - 0, 612, 660, 660, 618, 619, 614, 613, 666, 667, - 663, 0, 663, 663, 898, 0, 637, 638, 639, 660, - 660, 645, 834, 0, 646, 647, 663, 0, 668, 669, - 898, 0, 0, 898, 898, 0, 655, 656, 658, 660, - 0, 0, 1175, 0, 676, 614, 614, 1880, 1881, 0, - 0, 1184, 0, 0, 0, 0, 679, 0, 0, 0, - 444, 445, 0, 0, 742, 0, 266, 270, 0, 273, - 0, 2058, 0, 2058, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 310, 311, 0, 0, 0, 0, 301, - 304, 1354, 1355, 1131, 1132, 305, 306, 359, 360, 0, - 833, 856, 858, 852, 853, 854, 0, 72, 0, 0, - 0, 0, 0, 534, 0, 0, 0, 0, 0, 717, - 0, 1023, 719, 0, 0, 0, 0, 0, 906, 900, - 902, 978, 141, 876, 8, 126, 123, 0, 19, 0, - 0, 19, 19, 0, 19, 315, 0, 1877, 1875, 1876, - 1810, 1862, 0, 1836, 0, 1837, 1838, 1839, 1850, 1851, - 0, 0, 1832, 0, 1833, 1834, 1835, 1826, 0, 1827, - 1828, 0, 1829, 1830, 313, 425, 0, 0, 1738, 1011, - 0, 760, 774, 755, 0, 763, 0, 0, 1362, 0, - 0, 0, 0, 743, 774, 745, 0, 763, 833, 810, - 0, 788, 0, 0, 390, 0, 401, 395, 0, 402, - 397, 398, 0, 0, 419, 421, 422, 423, 408, 409, - 681, 376, 377, 368, 369, 370, 371, 372, 373, 374, - 375, 0, 0, 379, 151, 0, 348, 349, 0, 0, - 0, 195, 196, 197, 198, 199, 200, 202, 186, 706, - 708, 1123, 1135, 0, 1126, 0, 205, 246, 178, 0, - 0, 0, 1742, 1743, 1744, 1745, 1746, 1751, 0, 1753, - 1755, 1757, 1759, 0, 1777, -2, -2, 1489, 1490, 1491, - 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1762, - 1775, 1776, 0, 0, 0, 0, 0, 0, 1773, 1773, - 1768, 0, 1527, 1356, 1357, 1505, 0, 0, 1541, 1545, - 0, 0, 0, 0, 0, 0, 1158, 1861, 0, 142, - 1732, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, + 1825, 1826, 1869, 1869, 1872, 1872, 1869, 0, 428, 426, + 427, 1738, 0, 0, 0, 0, 782, 786, 1361, 0, + 0, 0, 838, -2, 0, 0, 684, 389, 1421, 0, + 0, 393, 0, 394, 0, 0, 396, 0, 0, 0, + 417, 0, 420, 404, 405, 406, 407, 400, 0, 181, + 0, 380, 381, 0, 0, 347, 0, 0, 0, 535, + 0, 0, 0, 0, 0, 0, 212, 208, 216, 219, + 229, 236, 0, 248, 250, 253, 209, 217, 222, 223, + 230, 251, 210, 213, 214, 218, 252, 254, 211, 231, + 235, 249, 233, 238, 241, 242, 247, 0, 182, 0, + 0, 0, 0, 0, 1748, 0, 0, 1781, 1782, 1783, + 1784, 1785, 1786, 1787, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -2, 1742, 0, 0, 1508, 1509, 1510, + 1511, 0, 1515, 0, 1545, 0, 0, 0, 0, 0, + 0, 1802, 1806, 0, 1738, 1738, 0, 1738, 1734, 0, + 0, 0, 0, 0, 0, 1738, 1670, 0, 0, 1672, + 1688, 0, 0, 1674, 1675, 0, 1678, 1679, 1738, 0, + 1738, 1683, 1738, 1738, 1738, 1666, 1667, 0, 1734, 1734, + 1734, 1734, 0, 0, 1734, 1734, 1734, 1734, 1734, 1734, + 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 0, + 0, 0, 0, 833, 0, 839, 0, -2, 0, 857, + 859, 861, 862, 864, 865, 867, 868, 870, 871, 818, + 0, 0, 105, 0, 0, 0, 0, 0, 0, 71, + 73, 0, 0, 0, 0, 0, 0, 333, 0, 338, + 324, 2052, 0, 323, 0, 0, 0, 0, 0, 1007, + 0, 0, 1176, 1176, 1176, 1044, 0, 0, 0, 0, + 0, 0, 0, 0, 1176, 1176, 1176, 1176, 0, 1194, + 0, 0, 0, 741, 740, 0, 827, 0, 0, 70, + 595, 596, 597, 898, 0, 0, 599, 600, 0, 601, + 0, 0, 612, 660, 660, 618, 619, 614, 613, 666, + 667, 663, 0, 663, 663, 898, 0, 637, 638, 639, + 660, 660, 645, 834, 0, 646, 647, 663, 0, 668, + 669, 898, 0, 0, 898, 898, 0, 655, 656, 658, + 660, 0, 0, 1176, 0, 676, 614, 614, 1881, 1882, + 0, 0, 1185, 0, 0, 0, 0, 679, 0, 0, + 0, 444, 445, 0, 0, 742, 0, 266, 270, 0, + 273, 0, 2060, 0, 2060, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 310, 311, 0, 0, 0, 0, + 301, 304, 1355, 1356, 1131, 1132, 305, 306, 359, 360, + 0, 833, 856, 858, 852, 853, 854, 0, 72, 0, + 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, + 717, 0, 1023, 719, 0, 0, 0, 0, 0, 906, + 900, 902, 978, 141, 876, 8, 126, 123, 0, 19, + 0, 0, 19, 19, 0, 19, 315, 0, 1878, 1876, + 1877, 1811, 1863, 0, 1837, 0, 1838, 1839, 1840, 1851, + 1852, 0, 0, 1833, 0, 1834, 1835, 1836, 1827, 0, + 1828, 1829, 0, 1830, 1831, 313, 425, 0, 0, 1739, + 1011, 0, 760, 774, 755, 0, 763, 0, 0, 1363, + 0, 0, 0, 0, 743, 774, 745, 0, 763, 833, + 810, 0, 788, 0, 0, 390, 0, 401, 395, 0, + 402, 397, 398, 0, 0, 419, 421, 422, 423, 408, + 409, 681, 376, 377, 368, 369, 370, 371, 372, 373, + 374, 375, 0, 0, 379, 151, 0, 348, 349, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 202, 186, + 706, 708, 1123, 1135, 0, 1126, 0, 205, 246, 178, + 0, 0, 0, 1743, 1744, 1745, 1746, 1747, 1752, 0, + 1754, 1756, 1758, 1760, 0, 1778, -2, -2, 1490, 1491, + 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, + 1763, 1776, 1777, 0, 0, 0, 0, 0, 0, 1774, + 1774, 1769, 0, 1528, 1357, 1358, 1506, 0, 0, 1542, + 1546, 0, 0, 0, 0, 0, 0, 1159, 1862, 0, + 142, 1733, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, - 0, 0, 1741, 0, 0, 0, 1734, 1735, 0, 0, - 0, 1624, 0, 0, 1630, 1631, 1632, 0, 769, 0, - 1697, 1670, 1688, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 930, 932, 0, 778, 780, 781, 807, 788, 814, - 0, 0, 0, 101, 106, 0, 1214, 0, 0, 0, - 0, 0, 0, 0, 74, 1188, 75, 1190, 342, 343, - 0, 0, 337, 325, 2050, 327, 0, 0, 0, 0, - 0, -2, 0, 0, 0, 0, 0, 1059, 1060, 532, - 1117, 0, 0, 0, 1133, 1162, 1171, 0, 0, 0, - 0, 0, 1220, 1045, 1050, 1051, 1052, 1046, 1047, 1053, - 1054, 0, 829, 0, 0, 947, 598, 661, 662, 899, - 602, 0, 0, 609, 2013, 614, 898, 898, 621, 615, - 622, 665, 623, 624, 625, 663, 898, 898, 835, 660, - 663, 648, 664, 663, 1362, 652, 0, 659, 1362, 677, - 1362, 0, 675, 629, 630, 1222, 831, 442, 443, 448, - 450, 0, 499, 499, 499, 482, 499, 0, 0, 470, - 1882, 0, 0, 0, 0, 479, 1882, 0, 0, 1882, - 1882, 1882, 1882, 1882, 1882, 1882, 0, 0, 1882, 1882, - 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 0, - 1882, 1882, 1882, 1882, 1882, 1339, 1882, 0, 498, 1185, - 489, 490, 491, 492, 497, 0, 0, 527, 0, 0, - 1058, 0, 532, 0, 0, 1100, 0, 0, 911, 0, - 912, 913, 914, 909, 949, 973, 973, 0, 973, 953, - 1362, 0, 0, 0, 278, 279, 267, 0, 268, 0, - 0, 281, 282, 0, 284, 285, 286, 293, 1950, 2029, - 288, 290, 0, 0, 294, 307, 308, 309, 0, 0, - 299, 300, 0, 0, 362, 363, 365, 0, 788, 1189, - 703, 1358, 704, 705, 709, 0, 0, 712, 713, 714, - 715, 716, 1025, 0, 0, 1109, 1110, 1111, 1112, 898, - 0, 907, 0, 903, 979, 0, 981, 0, 0, 124, - 19, 0, 117, 114, 0, 0, 0, 0, 0, 1857, - 1806, 1878, 0, 0, 0, 1859, 0, 0, 0, 0, - 0, 107, 790, 750, 0, 754, 771, 0, 775, 0, - 0, 767, 759, 764, 0, 0, 784, 751, 1361, 0, - 0, 0, 0, 744, 0, 0, 749, 788, 0, 811, - 840, 841, 844, 1421, 0, 403, 399, 418, 0, 0, - 0, 0, 189, 1120, 0, 190, 194, 184, 0, 0, - 0, 1125, 0, 1122, 1127, 0, 204, 0, 0, 179, - 180, 1205, 1214, 0, 0, 0, 1752, 1754, 1756, 1758, - 1760, 0, 1763, 1773, 1773, 1769, 0, 1764, 0, 1766, - 0, 1742, 1511, 0, 1546, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 844, 0, 0, 1614, 1615, 0, - 0, 1619, 0, 1621, 1622, 1623, 1625, 0, 0, 0, - 1629, 0, 1668, 1689, 1672, 1675, 0, 1679, 0, 1681, - 1683, 1684, 1685, 0, 838, 838, 0, 0, 1585, 1585, - 1585, 0, 0, 0, 0, 1585, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1530, 0, 1531, - 1532, 0, 0, 0, 933, 808, 0, 0, 0, 0, - 0, 1212, 0, 91, 0, 0, 0, 0, 96, 0, - 0, 76, 344, 332, 334, 0, 326, 0, 1176, 0, - 0, 0, 0, 0, 1013, 1014, 1016, 0, 1019, 1020, - 1021, 1025, 831, 0, 831, 1070, 1882, 536, 0, 0, - 1119, 0, 1089, 0, 0, 0, -2, 0, 0, 1171, - 0, 0, 0, 1224, 0, 0, 0, 728, 732, 23, - 832, 0, 605, 603, 0, 607, 0, 608, 660, 616, - 617, 898, 640, 641, 0, 0, 898, 660, 660, 651, - 663, 672, 0, 673, 1362, 1224, 0, 0, 1184, 1290, - 1258, 460, 0, 1375, 1376, 500, 0, 1382, 1391, 1175, - 1453, 0, 1391, 0, 0, 1393, 1394, 0, 0, 0, - 0, 483, 484, 0, 469, 0, 0, 0, 0, 0, - 0, 468, 0, 0, 510, 0, 0, 0, 0, 0, - 1883, 1882, 1882, 0, 477, 478, 0, 481, 0, 0, - 0, 0, 0, 0, 0, 0, 1882, 1882, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1330, - 0, 0, 0, 0, 0, 0, 0, 0, 1346, 1347, - 0, 1070, 1882, 0, 0, 0, 0, 536, 1114, 1114, - 1087, 1105, 0, 446, 447, 507, 0, 0, 0, 0, - 0, 0, 0, 939, 0, 0, 0, 938, 0, 0, - 0, 0, 0, 0, 0, 831, 974, 0, 976, 977, - 951, -2, 0, 911, 956, 1737, 0, 271, 272, 0, - 0, 277, 295, 297, 269, 0, 0, 0, 296, 298, - 302, 303, 361, 364, 366, 850, 0, 0, 1248, 0, - 1026, 1027, 1029, 1030, 0, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, -2, 1934, -2, + 1665, 0, 0, 1742, 0, 0, 0, 1735, 1736, 0, + 0, 0, 1625, 0, 0, 1631, 1632, 1633, 0, 769, + 0, 1698, 1671, 1689, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 930, 932, 0, 778, 780, 781, 807, 788, + 814, 0, 0, 0, 101, 106, 0, 1215, 0, 0, + 0, 0, 0, 0, 0, 74, 1189, 75, 1191, 342, + 343, 0, 0, 337, 325, 2052, 327, 0, 0, 0, + 0, 0, -2, 0, 0, 0, 0, 0, 1059, 1060, + 532, 1117, 0, 0, 0, 1133, 1163, 1172, 0, 0, + 0, 0, 0, 1221, 1045, 1050, 1051, 1052, 1046, 1047, + 1053, 1054, 0, 829, 0, 0, 947, 598, 661, 662, + 899, 602, 0, 0, 609, 2015, 614, 898, 898, 621, + 615, 622, 665, 623, 624, 625, 663, 898, 898, 835, + 660, 663, 648, 664, 663, 1363, 652, 0, 659, 1363, + 677, 1363, 0, 675, 629, 630, 1223, 831, 442, 443, + 448, 450, 0, 499, 499, 499, 482, 499, 0, 0, + 470, 1883, 0, 0, 0, 0, 479, 1883, 0, 0, + 1883, 1883, 1883, 1883, 1883, 1883, 1883, 0, 0, 1883, + 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, + 0, 1883, 1883, 1883, 1883, 1883, 1340, 1883, 0, 498, + 1186, 489, 490, 491, 492, 497, 0, 0, 527, 0, + 0, 1058, 0, 532, 0, 0, 1100, 0, 0, 911, + 0, 912, 913, 914, 909, 949, 973, 973, 0, 973, + 953, 1363, 0, 0, 0, 278, 279, 267, 0, 268, + 0, 0, 281, 282, 0, 284, 285, 286, 293, 1952, + 2031, 288, 290, 0, 0, 294, 307, 308, 309, 0, + 0, 299, 300, 0, 0, 362, 363, 365, 0, 788, + 1190, 703, 1359, 704, 705, 709, 0, 0, 712, 713, + 714, 715, 716, 1025, 0, 0, 1109, 1110, 1111, 1112, + 898, 0, 907, 0, 903, 979, 0, 981, 0, 0, + 124, 19, 0, 117, 114, 0, 0, 0, 0, 0, + 1858, 1807, 1879, 0, 0, 0, 1860, 0, 0, 0, + 0, 0, 107, 790, 750, 0, 754, 771, 0, 775, + 0, 0, 767, 759, 764, 0, 0, 784, 751, 1362, + 0, 0, 0, 0, 744, 0, 0, 749, 788, 0, + 811, 840, 841, 844, 1422, 0, 403, 399, 418, 0, + 0, 0, 0, 189, 1120, 0, 190, 194, 184, 0, + 0, 0, 1125, 0, 1122, 1127, 0, 204, 0, 0, + 179, 180, 1206, 1215, 0, 0, 0, 1753, 1755, 1757, + 1759, 1761, 0, 1764, 1774, 1774, 1770, 0, 1765, 0, + 1767, 0, 1743, 1512, 0, 1547, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 844, 0, 0, 1615, 1616, + 0, 0, 1620, 0, 1622, 1623, 1624, 1626, 0, 0, + 0, 1630, 0, 1669, 1690, 1673, 1676, 0, 1680, 0, + 1682, 1684, 1685, 1686, 0, 838, 838, 0, 0, 1586, + 1586, 1586, 0, 0, 0, 0, 1586, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1531, 0, + 1532, 1533, 0, 0, 0, 933, 808, 0, 0, 0, + 0, 0, 1213, 0, 91, 0, 0, 0, 0, 96, + 0, 0, 76, 344, 332, 334, 0, 326, 0, 1177, + 0, 0, 0, 0, 0, 1013, 1014, 1016, 0, 1019, + 1020, 1021, 1025, 831, 0, 831, 1070, 1883, 536, 0, + 0, 1119, 0, 1089, 0, 0, 0, -2, 0, 0, + 1172, 0, 0, 0, 1225, 0, 0, 0, 728, 732, + 23, 832, 0, 605, 603, 0, 607, 0, 608, 660, + 616, 617, 898, 640, 641, 0, 0, 898, 660, 660, + 651, 663, 672, 0, 673, 1363, 1225, 0, 0, 1185, + 1291, 1259, 460, 0, 1376, 1377, 500, 0, 1383, 1392, + 1176, 1454, 0, 1392, 0, 0, 1394, 1395, 0, 0, + 0, 0, 483, 484, 0, 469, 0, 0, 0, 0, + 0, 0, 468, 0, 0, 510, 0, 0, 0, 0, + 0, 1884, 1883, 1883, 0, 477, 478, 0, 481, 0, + 0, 0, 0, 0, 0, 0, 0, 1883, 1883, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1331, 0, 0, 0, 0, 0, 0, 0, 0, 1347, + 1348, 0, 1070, 1883, 0, 0, 0, 0, 536, 1114, + 1114, 1087, 1105, 0, 446, 447, 507, 0, 0, 0, + 0, 0, 0, 0, 939, 0, 0, 0, 938, 0, + 0, 0, 0, 0, 0, 0, 831, 974, 0, 976, + 977, 951, -2, 0, 911, 956, 1738, 0, 271, 272, + 0, 0, 277, 295, 297, 269, 0, 0, 0, 296, + 298, 302, 303, 361, 364, 366, 850, 0, 0, 1249, + 0, 1026, 1027, 1029, 1030, 0, -2, -2, -2, -2, + -2, -2, -2, -2, -2, -2, -2, -2, -2, 1936, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - 1024, 720, 889, 901, 908, 980, 982, 142, 904, 0, - 127, 19, 126, 118, 119, 0, 19, 0, 0, 0, - 0, 1867, 1866, 1852, 0, 1853, 1864, 1869, 0, 1872, - 0, 429, 794, 0, 0, 774, 776, 0, 0, 774, - 0, 0, 783, 0, 0, 0, 0, 0, 0, 0, - 774, 850, 790, 0, 847, 845, 846, 0, 0, 682, - 152, 424, 0, 0, 0, 0, 0, 707, 0, 1124, - 186, 0, 0, 206, 0, 0, 0, 1214, 1209, 1736, - 1765, 1767, 0, 1774, 1770, 1506, 1515, 1542, 0, 0, - 1548, 1560, 1560, 0, 0, 0, 1551, 1865, 1865, 1554, - 1861, 1863, 1861, 1560, 1560, 0, 1159, 0, 1160, 844, - 143, 0, 0, 1620, 0, 0, 0, 770, 0, 0, - 0, 1581, 1583, 1585, 1585, 1592, 1586, 1593, 1594, 1585, - 1585, 1585, 1585, 1599, 1585, 1585, 1585, 1585, 1585, 1585, - 1585, 1585, 1585, 1585, 1585, 1579, 0, 0, 1795, 1796, - 779, 0, 0, 821, 822, 823, 824, 825, 0, 0, - 61, 61, 1214, 0, 100, 92, 0, 0, 0, 0, - 0, 336, 0, 77, 78, 80, 0, 0, 0, 0, - 0, 0, 0, 90, 0, 0, 1018, 0, 0, 0, - 1368, 0, 1074, 1071, 1072, 1073, 0, 1114, 537, 538, - 539, 540, 0, 0, 0, 1118, 0, 0, 1082, 0, - 0, 0, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - -2, 1179, 0, 0, 0, 1368, 1198, 0, 0, 1203, - 1368, 1368, 0, 1232, 0, 1221, 782, 0, -2, 0, - 0, 730, 0, 0, 948, 604, 610, 898, 634, 836, - 837, 1362, 898, 898, 660, 678, 674, 1232, 1223, 0, - 449, 499, 0, 1278, 0, 0, 1284, 0, 1291, 453, - 0, 501, 0, 1381, 1409, 1392, 1409, 1454, 1409, 1409, - 1175, 0, 501, 0, 0, 471, 0, 0, 0, 0, - 0, 467, 504, 844, 454, 456, 457, 458, 508, 509, - 511, 0, 513, 514, 473, 485, 486, 487, 488, 0, - 0, 0, 480, 493, 494, 495, 496, 455, 1307, 1308, - 1309, 1312, 1313, 1314, 1315, 0, 0, 1318, 1319, 1320, - 1321, 1322, 1406, 1407, 1408, 1323, 1324, 1325, 1326, 1327, - 1328, 1329, 1348, 1349, 1350, 1351, 1352, 1353, 1331, 1332, - 1333, 1334, 1335, 1336, 1337, 1338, 0, 0, 1343, 0, - 0, 0, 1074, 0, 0, 0, 0, 0, 1114, 530, - 0, 0, 531, 1089, 0, 1107, 0, 1101, 1102, 0, - 0, 752, 898, 354, 0, 943, 934, 0, 918, 0, - 920, 940, 921, 941, 0, 0, 925, 0, 927, 0, - 923, 924, 929, 922, 898, 910, 950, 975, 952, 955, - 957, 958, 964, 0, 0, 0, 0, 265, 274, 275, - 276, 283, 0, 556, 289, 806, 0, 1359, 710, 711, - 1249, 1250, 718, 0, 1031, 887, 0, 0, 122, 125, - 0, 120, 0, 0, 0, 0, 112, 110, 1860, 0, - 0, 796, 166, 0, 0, 0, 772, 0, 777, 774, - 758, 768, 757, 765, 766, 785, 1363, 1364, 1365, 1366, - 0, 774, 748, 747, 809, 794, 842, 843, 0, 1422, - 391, 0, 1121, 186, 191, 192, 193, 187, 185, 1128, - 0, 1130, 0, 1207, 0, 0, 1771, 1547, 1516, 1549, - 1561, 1562, 1550, 0, 1518, 1519, 1552, 1553, 1555, 1556, - 1557, 1558, 1559, 1520, 0, 1161, 1616, 0, 1618, 1626, - 1627, 0, 1676, 1680, 0, 0, 0, 0, 0, 1590, - 1591, 1595, 1596, 1597, 1598, 1600, 1601, 1602, 1603, 1604, - 1605, 1606, 1607, 1608, 1609, 1610, 838, 1580, 0, 0, - 0, 0, 0, 0, 0, 819, 0, 0, 0, 63, - 0, 63, 1213, 1215, 0, 978, 0, 0, 97, 0, - 0, 79, 81, 0, 2014, 0, 0, 0, 0, 88, - 1006, 1009, 1015, 1017, 0, 0, 0, 1369, 1370, 1372, - 1373, 1374, 0, 1042, 0, 0, 1062, 1063, 1064, 1076, - 0, 542, 543, 0, 0, 0, 555, 551, 552, 553, - 533, 1113, 1096, 0, 0, 1085, 0, 0, 1095, 0, - 1180, 1882, 1882, 1882, 0, 0, 1292, 1882, 1882, 0, - 1200, 1202, 0, 0, 1296, 1235, 0, 0, 1226, 0, - 973, 0, 0, 898, 729, 732, 733, 830, 611, 649, - 653, 650, 898, 1235, 441, 1256, 0, 0, 0, 0, - 0, 1288, 0, 0, 1260, 0, 472, 502, 0, -2, - 0, 1410, 0, 1395, 1410, 0, 0, 1409, 0, 461, - 501, 0, 0, 0, 515, 520, 521, 0, 517, 518, - 1449, 0, 519, 0, 506, 0, 512, 1310, 1311, 0, - 1316, 1317, 0, 1341, 0, 0, 0, 452, 522, 0, - 0, 0, 523, 524, 529, 1115, 1116, 1082, 0, 1096, - 0, 1106, 0, 1103, 1104, 838, 0, 0, 915, 944, - 0, 0, 916, 0, 917, 919, 942, 0, 936, 926, - 928, 353, 959, 0, 0, 961, 962, 963, 954, 291, - 851, 1028, 0, 872, 0, 0, 905, 0, 19, 0, - 0, 115, 1870, 1873, 798, 0, 795, 167, 0, 0, - 0, 0, 762, 773, 756, 1367, 746, 796, 848, 849, - 188, 183, 1129, 1217, 0, 1208, 0, 1473, 1529, 0, - 1628, 0, 1585, 1582, 1585, 1584, 1576, 0, 1533, 0, - 1535, 1536, 1537, 0, 1539, 1540, 0, 817, 0, 59, - 0, 62, 60, 0, 99, 93, 0, 0, 0, 82, - 0, 0, 0, 0, 0, 0, 0, 1048, 1296, 0, - 1048, 1075, 1061, 0, 0, 544, 545, 0, 548, 554, - 1077, 0, 0, 1079, 1080, 1081, 0, 0, 1093, 0, - 0, 0, 0, 1172, 1186, 0, 0, 0, -2, 0, - -2, 1197, 0, 1241, 0, 1233, 0, 1225, 0, 1228, - 898, 898, -2, 726, 731, 0, 654, 1241, 1258, 0, - 1279, 0, 0, 0, 0, 0, 0, 0, 1259, 0, - 1272, 503, 1411, -2, 1425, 1427, 0, 1185, 1430, 1431, - 0, 0, 0, 0, 0, 0, 1480, 1439, 0, 0, - 1443, 1444, 1445, 0, 0, 1448, 0, 1789, 1790, 0, - 1452, 0, 0, 0, 0, 0, 0, 0, 1389, 462, - 463, 0, 465, 466, 1882, 1450, 505, 459, 1882, 475, - 1340, 1344, 1345, 1342, 528, 525, 526, 1085, 1088, 1099, - 1108, 753, 833, 355, 356, 945, 0, 935, 937, 968, - 965, 0, 0, 1032, 888, 896, 2243, 2245, 2242, 116, - 121, 0, 0, 800, 0, 797, 0, 791, 793, 177, - 761, 798, 137, 169, 0, 0, 1517, 0, 0, 0, - 1617, 1667, 1588, 1589, 0, 1577, 0, 1571, 1572, 1573, - 1578, 0, 0, 820, 815, 64, 95, 0, 98, 68, - 83, 0, 84, 0, 0, 0, 0, 1034, 1041, 1055, - 1191, 1371, 1040, 0, 0, 541, 546, 0, 549, 550, - 1097, 1096, 0, 1083, 1084, 0, 1091, 0, 0, 1181, - 1182, 1183, 1293, 1294, 1295, 1251, 1199, 0, -2, 1304, - 0, 0, 1195, 1217, 1251, 0, 0, 1229, 0, 1236, - 0, 1234, 1227, 838, 727, 1238, 451, 1290, 1280, 0, - 1282, 0, 0, 0, 0, 1261, -2, 0, 1426, 1428, - 1429, 1432, 1433, 1434, 1485, 1486, 1487, 0, 0, 1437, - 1482, 1483, 1484, 1438, 0, 0, 0, 0, 0, 1787, - 1788, 1478, 0, 0, 1396, 1398, 1399, 1400, 1401, 1402, - 1403, 1404, 1405, 1397, 0, 0, 0, 1388, 1390, 464, - 0, 0, 1882, 1098, 352, 0, 0, 969, 971, 966, - 967, 890, 0, 0, 0, 0, 111, 113, 128, 0, - 799, 168, 0, 800, 139, 0, 160, 0, 1218, 0, - 1528, 0, 0, 0, 1587, 1574, 0, 0, 0, 0, - 0, 1791, 1792, 1793, 0, 1534, 1538, 94, 0, 66, - 0, 85, 86, 0, 0, 0, 0, 1056, 1057, 1065, - 1066, 0, 1068, 1069, 547, 1078, 1086, 1090, 1093, 0, - 1145, 1253, 0, 1201, 1184, 1306, 1882, 1204, 1253, 0, - 1298, 1882, 1882, 1219, 0, 1231, 0, 1243, 0, 1237, - 833, 440, 0, 1240, 1276, 1281, 1283, 1285, 0, 1289, - 1287, 1262, -2, 0, 1270, 0, 0, 1435, 1436, 0, - 0, 1686, 1882, 0, 1468, 0, 1145, 1145, 1145, 1145, - 0, 516, 474, 0, 946, 960, 0, 897, 0, 0, - 0, 0, 0, 789, 129, 0, 138, 157, 0, 170, - 171, 0, 0, 0, 0, 1210, 0, 1476, 1477, 0, - 1563, 0, 0, 0, 1567, 1568, 1569, 1570, 65, 68, - 0, 0, 87, 0, 1033, 0, 1067, 1092, 1094, 1144, - 1194, 0, 1290, 1305, 0, 1196, 1297, 0, 0, 0, - 1230, 1242, 0, 1245, 725, 1239, 1257, 0, 1286, 1263, - 1271, 0, 1266, 0, 0, 0, 1481, 0, 1442, 0, - 1447, 1456, 1469, 0, 0, 1377, 0, 1379, 0, 1383, - 0, 1385, 0, 0, 476, 970, 972, 0, 1737, 892, - 893, 0, 802, 792, 140, 144, 0, 166, 163, 0, - 172, 0, 0, 0, 0, 1206, 0, 1474, 0, 1564, - 1565, 1566, 67, 69, 89, 0, 1035, 1036, 1049, 1146, - 1882, 1882, 0, 0, 0, 1152, 1153, 1882, 1882, 1882, - 1882, 0, 1278, 1310, 1299, 1300, 1301, 1244, 1277, 1265, - 0, -2, 1273, 0, 0, 1739, 1749, 1750, 1440, 1446, - 1455, 1457, 1458, 0, 1470, 1471, 1472, 1479, 1145, 1145, - 1145, 1145, 1387, 891, 0, 0, 801, 0, 131, 0, - 0, 161, 162, 164, 0, 173, 0, 175, 176, 0, - 0, 1575, 1037, 0, 0, 1149, 1150, 0, 0, 0, - 0, 0, 1254, 0, 1256, 1267, -2, 0, 1275, 0, - 1441, 1459, 0, 1460, 0, 0, 0, 1378, 1380, 1384, - 1386, 1737, 894, 803, 1216, 0, 145, 0, 147, 149, - 150, 1412, 158, 159, 165, 174, 0, 0, 1022, 1038, - 0, 1147, 1148, 1151, 1154, 1155, 1156, 1157, 0, 1258, - 1274, 1740, 1461, 1463, 1464, 0, 0, 1462, 0, 132, - 133, 0, 146, 0, 0, 1211, 1475, 1039, 1255, 1252, - 1465, 1467, 1466, 895, 0, 0, 148, 1413, 134, 135, - 136, 0, 1414, + -2, 1024, 720, 889, 901, 908, 980, 982, 142, 904, + 0, 127, 19, 126, 118, 119, 0, 19, 0, 0, + 0, 0, 1868, 1867, 1853, 0, 1854, 1865, 1870, 0, + 1873, 0, 429, 794, 0, 0, 774, 776, 0, 0, + 774, 0, 0, 783, 0, 0, 0, 0, 0, 0, + 0, 774, 850, 790, 0, 847, 845, 846, 0, 0, + 682, 152, 424, 0, 0, 0, 0, 0, 707, 0, + 1124, 186, 0, 0, 206, 0, 0, 0, 1215, 1210, + 1737, 1766, 1768, 0, 1775, 1771, 1507, 1516, 1543, 0, + 0, 1549, 1561, 1561, 0, 0, 0, 1552, 1866, 1866, + 1555, 1862, 1864, 1862, 1561, 1561, 0, 1160, 0, 1161, + 844, 143, 0, 0, 1621, 0, 0, 0, 770, 0, + 0, 0, 1582, 1584, 1586, 1586, 1593, 1587, 1594, 1595, + 1586, 1586, 1586, 1586, 1600, 1586, 1586, 1586, 1586, 1586, + 1586, 1586, 1586, 1586, 1586, 1586, 1580, 0, 0, 1796, + 1797, 779, 0, 0, 821, 822, 823, 824, 825, 0, + 0, 61, 61, 1215, 0, 100, 92, 0, 0, 0, + 0, 0, 336, 0, 77, 78, 80, 0, 0, 0, + 0, 0, 0, 0, 90, 0, 0, 1018, 0, 0, + 0, 1369, 0, 1074, 1071, 1072, 1073, 0, 1114, 537, + 538, 539, 540, 0, 0, 0, 1118, 0, 0, 1082, + 0, 0, 0, 1164, 1165, 1166, 1167, 1168, 1169, 1170, + 1171, -2, 1180, 0, 0, 0, 1369, 1199, 0, 0, + 1204, 1369, 1369, 0, 1233, 0, 1222, 782, 0, -2, + 0, 0, 730, 0, 0, 948, 604, 610, 898, 634, + 836, 837, 1363, 898, 898, 660, 678, 674, 1233, 1224, + 0, 449, 499, 0, 1279, 0, 0, 1285, 0, 1292, + 453, 0, 501, 0, 1382, 1410, 1393, 1410, 1455, 1410, + 1410, 1176, 0, 501, 0, 0, 471, 0, 0, 0, + 0, 0, 467, 504, 844, 454, 456, 457, 458, 508, + 509, 511, 0, 513, 514, 473, 485, 486, 487, 488, + 0, 0, 0, 480, 493, 494, 495, 496, 455, 1308, + 1309, 1310, 1313, 1314, 1315, 1316, 0, 0, 1319, 1320, + 1321, 1322, 1323, 1407, 1408, 1409, 1324, 1325, 1326, 1327, + 1328, 1329, 1330, 1349, 1350, 1351, 1352, 1353, 1354, 1332, + 1333, 1334, 1335, 1336, 1337, 1338, 1339, 0, 0, 1344, + 0, 0, 0, 1074, 0, 0, 0, 0, 0, 1114, + 530, 0, 0, 531, 1089, 0, 1107, 0, 1101, 1102, + 0, 0, 752, 898, 354, 0, 943, 934, 0, 918, + 0, 920, 940, 921, 941, 0, 0, 925, 0, 927, + 0, 923, 924, 929, 922, 898, 910, 950, 975, 952, + 955, 957, 958, 964, 0, 0, 0, 0, 265, 274, + 275, 276, 283, 0, 556, 289, 806, 0, 1360, 710, + 711, 1250, 1251, 718, 0, 1031, 887, 0, 0, 122, + 125, 0, 120, 0, 0, 0, 0, 112, 110, 1861, + 0, 0, 796, 166, 0, 0, 0, 772, 0, 777, + 774, 758, 768, 757, 765, 766, 785, 1364, 1365, 1366, + 1367, 0, 774, 748, 747, 809, 794, 842, 843, 0, + 1423, 391, 0, 1121, 186, 191, 192, 193, 187, 185, + 1128, 0, 1130, 0, 1208, 0, 0, 1772, 1548, 1517, + 1550, 1562, 1563, 1551, 0, 1519, 1520, 1553, 1554, 1556, + 1557, 1558, 1559, 1560, 1521, 0, 1162, 1617, 0, 1619, + 1627, 1628, 0, 1677, 1681, 0, 0, 0, 0, 0, + 1591, 1592, 1596, 1597, 1598, 1599, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 838, 1581, 0, + 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, + 63, 0, 63, 1214, 1216, 0, 978, 0, 0, 97, + 0, 0, 79, 81, 0, 2016, 0, 0, 0, 0, + 88, 1006, 1009, 1015, 1017, 0, 0, 0, 1370, 1371, + 1373, 1374, 1375, 0, 1042, 0, 0, 1062, 1063, 1064, + 1076, 0, 542, 543, 0, 0, 0, 555, 551, 552, + 553, 533, 1113, 1096, 0, 0, 1085, 0, 0, 1095, + 0, 1181, 1883, 1883, 1883, 0, 0, 1293, 1883, 1883, + 0, 1201, 1203, 0, 0, 1297, 1236, 0, 0, 1227, + 0, 973, 0, 0, 898, 729, 732, 733, 830, 611, + 649, 653, 650, 898, 1236, 441, 1257, 0, 0, 0, + 0, 0, 1289, 0, 0, 1261, 0, 472, 502, 0, + -2, 0, 1411, 0, 1396, 1411, 0, 0, 1410, 0, + 461, 501, 0, 0, 0, 515, 520, 521, 0, 517, + 518, 1450, 0, 519, 0, 506, 0, 512, 1311, 1312, + 0, 1317, 1318, 0, 1342, 0, 0, 0, 452, 522, + 0, 0, 0, 523, 524, 529, 1115, 1116, 1082, 0, + 1096, 0, 1106, 0, 1103, 1104, 838, 0, 0, 915, + 944, 0, 0, 916, 0, 917, 919, 942, 0, 936, + 926, 928, 353, 959, 0, 0, 961, 962, 963, 954, + 291, 851, 1028, 0, 872, 0, 0, 905, 0, 19, + 0, 0, 115, 1871, 1874, 798, 0, 795, 167, 0, + 0, 0, 0, 762, 773, 756, 1368, 746, 796, 848, + 849, 188, 183, 1129, 1218, 0, 1209, 0, 1474, 1530, + 0, 1629, 0, 1586, 1583, 1586, 1585, 1577, 0, 1534, + 0, 1536, 1537, 1538, 0, 1540, 1541, 0, 817, 0, + 59, 0, 62, 60, 0, 99, 93, 0, 0, 0, + 82, 0, 0, 0, 0, 0, 0, 0, 1048, 1297, + 0, 1048, 1075, 1061, 0, 0, 544, 545, 0, 548, + 554, 1077, 0, 0, 1079, 1080, 1081, 0, 0, 1093, + 0, 0, 0, 0, 1173, 1187, 0, 0, 0, -2, + 0, -2, 1198, 0, 1242, 0, 1234, 0, 1226, 0, + 1229, 898, 898, -2, 726, 731, 0, 654, 1242, 1259, + 0, 1280, 0, 0, 0, 0, 0, 0, 0, 1260, + 0, 1273, 503, 1412, -2, 1426, 1428, 0, 1186, 1431, + 1432, 0, 0, 0, 0, 0, 0, 1481, 1440, 0, + 0, 1444, 1445, 1446, 0, 0, 1449, 0, 1790, 1791, + 0, 1453, 0, 0, 0, 0, 0, 0, 0, 1390, + 462, 463, 0, 465, 466, 1883, 1451, 505, 459, 1883, + 475, 1341, 1345, 1346, 1343, 528, 525, 526, 1085, 1088, + 1099, 1108, 753, 833, 355, 356, 945, 0, 935, 937, + 968, 965, 0, 0, 1032, 888, 896, 2245, 2247, 2244, + 116, 121, 0, 0, 800, 0, 797, 0, 791, 793, + 177, 761, 798, 137, 169, 0, 0, 1518, 0, 0, + 0, 1618, 1668, 1589, 1590, 0, 1578, 0, 1572, 1573, + 1574, 1579, 0, 0, 820, 815, 64, 95, 0, 98, + 68, 83, 0, 84, 0, 0, 0, 0, 1034, 1041, + 1055, 1192, 1372, 1040, 0, 0, 541, 546, 0, 549, + 550, 1097, 1096, 0, 1083, 1084, 0, 1091, 0, 0, + 1182, 1183, 1184, 1294, 1295, 1296, 1252, 1200, 0, -2, + 1305, 0, 0, 1196, 1218, 1252, 0, 0, 1230, 0, + 1237, 0, 1235, 1228, 838, 727, 1239, 451, 1291, 1281, + 0, 1283, 0, 0, 0, 0, 1262, -2, 0, 1427, + 1429, 1430, 1433, 1434, 1435, 1486, 1487, 1488, 0, 0, + 1438, 1483, 1484, 1485, 1439, 0, 0, 0, 0, 0, + 1788, 1789, 1479, 0, 0, 1397, 1399, 1400, 1401, 1402, + 1403, 1404, 1405, 1406, 1398, 0, 0, 0, 1389, 1391, + 464, 0, 0, 1883, 1098, 352, 0, 0, 969, 971, + 966, 967, 890, 0, 0, 0, 0, 111, 113, 128, + 0, 799, 168, 0, 800, 139, 0, 160, 0, 1219, + 0, 1529, 0, 0, 0, 1588, 1575, 0, 0, 0, + 0, 0, 1792, 1793, 1794, 0, 1535, 1539, 94, 0, + 66, 0, 85, 86, 0, 0, 0, 0, 1056, 1057, + 1065, 1066, 0, 1068, 1069, 547, 1078, 1086, 1090, 1093, + 0, 1145, 1254, 0, 1202, 1185, 1307, 1883, 1205, 1254, + 0, 1299, 1883, 1883, 1220, 0, 1232, 0, 1244, 0, + 1238, 833, 440, 0, 1241, 1277, 1282, 1284, 1286, 0, + 1290, 1288, 1263, -2, 0, 1271, 0, 0, 1436, 1437, + 0, 0, 1687, 1883, 0, 1469, 0, 1145, 1145, 1145, + 1145, 0, 516, 474, 0, 946, 960, 0, 897, 0, + 0, 0, 0, 0, 789, 129, 0, 138, 157, 0, + 170, 171, 0, 0, 0, 0, 1211, 0, 1477, 1478, + 0, 1564, 0, 0, 0, 1568, 1569, 1570, 1571, 65, + 68, 0, 0, 87, 0, 1033, 0, 1067, 1092, 1094, + 1144, 1195, 0, 1291, 1306, 0, 1197, 1298, 0, 0, + 0, 1231, 1243, 0, 1246, 725, 1240, 1258, 0, 1287, + 1264, 1272, 0, 1267, 0, 0, 0, 1482, 0, 1443, + 0, 1448, 1457, 1470, 0, 0, 1378, 0, 1380, 0, + 1384, 0, 1386, 0, 0, 476, 970, 972, 0, 1738, + 892, 893, 0, 802, 792, 140, 144, 0, 166, 163, + 0, 172, 0, 0, 0, 0, 1207, 0, 1475, 0, + 1565, 1566, 1567, 67, 69, 89, 0, 1035, 1036, 1049, + 1146, 1883, 1883, 0, 0, 0, 1152, 1153, 1883, 1883, + 1883, 1883, 1158, 0, 1279, 1311, 1300, 1301, 1302, 1245, + 1278, 1266, 0, -2, 1274, 0, 0, 1740, 1750, 1751, + 1441, 1447, 1456, 1458, 1459, 0, 1471, 1472, 1473, 1480, + 1145, 1145, 1145, 1145, 1388, 891, 0, 0, 801, 0, + 131, 0, 0, 161, 162, 164, 0, 173, 0, 175, + 176, 0, 0, 1576, 1037, 0, 0, 1149, 1150, 0, + 0, 0, 0, 0, 1255, 0, 1257, 1268, -2, 0, + 1276, 0, 1442, 1460, 0, 1461, 0, 0, 0, 1379, + 1381, 1385, 1387, 1738, 894, 803, 1217, 0, 145, 0, + 147, 149, 150, 1413, 158, 159, 165, 174, 0, 0, + 1022, 1038, 0, 1147, 1148, 1151, 1154, 1155, 1156, 1157, + 0, 1259, 1275, 1741, 1462, 1464, 1465, 0, 0, 1463, + 0, 132, 133, 0, 146, 0, 0, 1212, 1476, 1039, + 1256, 1253, 1466, 1468, 1467, 895, 0, 0, 148, 1414, + 134, 135, 136, 0, 1415, } var yyTok1 = [...]int{ @@ -10183,14 +10182,14 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 119, 3, 3, 3, 150, 142, 3, 86, 87, 147, 145, 160, 146, 159, 148, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 664, 661, - 129, 128, 130, 3, 665, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 665, 662, + 129, 128, 130, 3, 666, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 152, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 662, 141, 663, 153, + 3, 3, 3, 663, 141, 664, 153, } var yyTok2 = [...]int{ @@ -10300,7 +10299,7 @@ var yyTok3 = [...]int{ 57970, 645, 57971, 646, 57972, 647, 57973, 648, 57974, 649, 57975, 650, 57976, 651, 57977, 652, 57978, 653, 57979, 654, 57980, 655, 57981, 656, 57982, 657, 57983, 658, 57984, 659, - 57985, 660, 0, + 57985, 660, 57986, 661, 0, } var yyErrorMessages = [...]struct { @@ -19663,6 +19662,8 @@ yydefault: opt1.HnswQuantization = opt2.HnswQuantization } else if opt2.HnswEfSearch > 0 { opt1.HnswEfSearch = opt2.HnswEfSearch + } else if opt2.Async { + opt1.Async = opt2.Async } yyLOCAL = opt1 } @@ -19671,7 +19672,7 @@ yydefault: case 1147: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7549 +//line mysql_sql.y:7551 { io := tree.NewIndexOption() io.KeyBlockSize = uint64(yyDollar[3].item.(int64)) @@ -19681,7 +19682,7 @@ yydefault: case 1148: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7555 +//line mysql_sql.y:7557 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19697,7 +19698,7 @@ yydefault: case 1149: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7567 +//line mysql_sql.y:7569 { io := tree.NewIndexOption() io.AlgoParamVectorOpType = yyDollar[2].str @@ -19707,7 +19708,7 @@ yydefault: case 1150: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7573 +//line mysql_sql.y:7575 { io := tree.NewIndexOption() io.Comment = yyDollar[2].str @@ -19717,7 +19718,7 @@ yydefault: case 1151: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7579 +//line mysql_sql.y:7581 { io := tree.NewIndexOption() io.ParserName = yyDollar[3].cstrUnion().Compare() @@ -19727,7 +19728,7 @@ yydefault: case 1152: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7585 +//line mysql_sql.y:7587 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_VISIBLE @@ -19737,7 +19738,7 @@ yydefault: case 1153: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7591 +//line mysql_sql.y:7593 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_INVISIBLE @@ -19747,7 +19748,7 @@ yydefault: case 1154: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7597 +//line mysql_sql.y:7599 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19762,7 +19763,7 @@ yydefault: case 1155: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7608 +//line mysql_sql.y:7610 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19777,7 +19778,7 @@ yydefault: case 1156: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7619 +//line mysql_sql.y:7621 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19792,7 +19793,7 @@ yydefault: case 1157: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7630 +//line mysql_sql.y:7632 { io := tree.NewIndexOption() io.HnswQuantization = yyDollar[3].str @@ -19800,25 +19801,35 @@ yydefault: } yyVAL.union = yyLOCAL case 1158: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *tree.IndexOption +//line mysql_sql.y:7638 + { + io := tree.NewIndexOption() + io.Async = true + yyLOCAL = io + } + yyVAL.union = yyLOCAL + case 1159: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7639 +//line mysql_sql.y:7647 { yyLOCAL = []*tree.KeyPart{yyDollar[1].keyPartUnion()} } yyVAL.union = yyLOCAL - case 1159: + case 1160: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7643 +//line mysql_sql.y:7651 { yyLOCAL = append(yyDollar[1].keyPartsUnion(), yyDollar[3].keyPartUnion()) } yyVAL.union = yyLOCAL - case 1160: + case 1161: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7649 +//line mysql_sql.y:7657 { // Order is parsed but just ignored as MySQL dtree. var ColName = yyDollar[1].unresolvedNameUnion() @@ -19833,10 +19844,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1161: + case 1162: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7663 +//line mysql_sql.y:7671 { var ColName *tree.UnresolvedName var Length int @@ -19850,74 +19861,74 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1162: + case 1163: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7677 +//line mysql_sql.y:7685 { yyLOCAL = tree.INDEX_TYPE_INVALID } yyVAL.union = yyLOCAL - case 1163: + case 1164: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7681 +//line mysql_sql.y:7689 { yyLOCAL = tree.INDEX_TYPE_BTREE } yyVAL.union = yyLOCAL - case 1164: + case 1165: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7685 +//line mysql_sql.y:7693 { yyLOCAL = tree.INDEX_TYPE_IVFFLAT } yyVAL.union = yyLOCAL - case 1165: + case 1166: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7689 +//line mysql_sql.y:7697 { yyLOCAL = tree.INDEX_TYPE_HNSW } yyVAL.union = yyLOCAL - case 1166: + case 1167: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7693 +//line mysql_sql.y:7701 { yyLOCAL = tree.INDEX_TYPE_MASTER } yyVAL.union = yyLOCAL - case 1167: + case 1168: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7697 +//line mysql_sql.y:7705 { yyLOCAL = tree.INDEX_TYPE_HASH } yyVAL.union = yyLOCAL - case 1168: + case 1169: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7701 +//line mysql_sql.y:7709 { yyLOCAL = tree.INDEX_TYPE_RTREE } yyVAL.union = yyLOCAL - case 1169: + case 1170: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7705 +//line mysql_sql.y:7713 { yyLOCAL = tree.INDEX_TYPE_BSI } yyVAL.union = yyLOCAL - case 1170: + case 1171: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7711 +//line mysql_sql.y:7719 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].str) @@ -19931,76 +19942,76 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1171: + case 1172: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7726 +//line mysql_sql.y:7734 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1172: + case 1173: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7730 +//line mysql_sql.y:7738 { var From = tree.Identifier(yyDollar[2].str) var Publication = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewSubscriptionOption(From, Publication) } yyVAL.union = yyLOCAL - case 1175: + case 1176: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7741 +//line mysql_sql.y:7749 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1176: + case 1177: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7745 +//line mysql_sql.y:7753 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1177: + case 1178: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7750 +//line mysql_sql.y:7758 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1178: + case 1179: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7754 +//line mysql_sql.y:7762 { yyLOCAL = yyDollar[1].createOptionsUnion() } yyVAL.union = yyLOCAL - case 1179: + case 1180: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7760 +//line mysql_sql.y:7768 { yyLOCAL = []tree.CreateOption{yyDollar[1].createOptionUnion()} } yyVAL.union = yyLOCAL - case 1180: + case 1181: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7764 +//line mysql_sql.y:7772 { yyLOCAL = append(yyDollar[1].createOptionsUnion(), yyDollar[2].createOptionUnion()) } yyVAL.union = yyLOCAL - case 1181: + case 1182: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7770 +//line mysql_sql.y:7778 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Charset = yyDollar[4].str @@ -20010,10 +20021,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1182: + case 1183: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7779 +//line mysql_sql.y:7787 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Collate = yyDollar[4].str @@ -20023,35 +20034,35 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1183: + case 1184: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7788 +//line mysql_sql.y:7796 { var Encrypt = yyDollar[4].str yyLOCAL = tree.NewCreateOptionEncryption(Encrypt) } yyVAL.union = yyLOCAL - case 1184: + case 1185: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7794 +//line mysql_sql.y:7802 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1185: + case 1186: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7798 +//line mysql_sql.y:7806 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1186: + case 1187: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7804 +//line mysql_sql.y:7812 { var TableName = yyDollar[4].tableNameUnion() var Options = yyDollar[7].connectorOptionsUnion() @@ -20061,18 +20072,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1187: + case 1188: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7815 +//line mysql_sql.y:7823 { yyLOCAL = &tree.ShowConnectors{} } yyVAL.union = yyLOCAL - case 1188: + case 1189: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7821 +//line mysql_sql.y:7829 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20089,10 +20100,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1189: + case 1190: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7839 +//line mysql_sql.y:7847 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20109,10 +20120,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1190: + case 1191: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7857 +//line mysql_sql.y:7865 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20129,10 +20140,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1191: + case 1192: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7875 +//line mysql_sql.y:7883 { var Replace = yyDollar[2].sourceOptionalUnion() var IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20148,26 +20159,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1192: + case 1193: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7891 +//line mysql_sql.y:7899 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1193: + case 1194: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7895 +//line mysql_sql.y:7903 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1194: + case 1195: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7904 +//line mysql_sql.y:7912 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20180,10 +20191,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1195: + case 1196: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7916 +//line mysql_sql.y:7924 { t := tree.NewCreateTable() t.IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20193,10 +20204,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1196: + case 1197: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7925 +//line mysql_sql.y:7933 { t := tree.NewCreateTable() t.IsClusterTable = true @@ -20209,10 +20220,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1197: + case 1198: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7937 +//line mysql_sql.y:7945 { t := tree.NewCreateTable() t.IsDynamicTable = true @@ -20223,10 +20234,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1198: + case 1199: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7947 +//line mysql_sql.y:7955 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20237,10 +20248,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1199: + case 1200: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7957 +//line mysql_sql.y:7965 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20252,10 +20263,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1200: + case 1201: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7968 +//line mysql_sql.y:7976 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20266,10 +20277,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1201: + case 1202: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7978 +//line mysql_sql.y:7986 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20281,10 +20292,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1202: + case 1203: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7989 +//line mysql_sql.y:7997 { t := tree.NewCreateTable() t.IsAsLike = true @@ -20293,10 +20304,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1203: + case 1204: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7997 +//line mysql_sql.y:8005 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20306,19 +20317,19 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1204: + case 1205: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8008 +//line mysql_sql.y:8016 { yyLOCAL = yyDollar[1].loadParamUnion() yyLOCAL.Tail = yyDollar[2].tailParamUnion() } yyVAL.union = yyLOCAL - case 1205: + case 1206: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8015 +//line mysql_sql.y:8023 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20329,10 +20340,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1206: + case 1207: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8025 +//line mysql_sql.y:8033 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20346,10 +20357,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1207: + case 1208: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8038 +//line mysql_sql.y:8046 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20358,10 +20369,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1208: + case 1209: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8046 +//line mysql_sql.y:8054 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20371,10 +20382,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1209: + case 1210: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8055 +//line mysql_sql.y:8063 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20383,55 +20394,55 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1210: + case 1211: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8064 +//line mysql_sql.y:8072 { yyVAL.str = "" } - case 1211: + case 1212: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:8068 +//line mysql_sql.y:8076 { yyVAL.str = yyDollar[4].str } - case 1212: + case 1213: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8074 +//line mysql_sql.y:8082 { yyLOCAL = yyDollar[1].strsUnion() } yyVAL.union = yyLOCAL - case 1213: + case 1214: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8078 +//line mysql_sql.y:8086 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].strsUnion()...) } yyVAL.union = yyLOCAL - case 1214: + case 1215: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8083 +//line mysql_sql.y:8091 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 1215: + case 1216: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8087 +//line mysql_sql.y:8095 { yyLOCAL = append(yyLOCAL, yyDollar[1].str) yyLOCAL = append(yyLOCAL, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1216: + case 1217: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.TailParameter -//line mysql_sql.y:8094 +//line mysql_sql.y:8102 { yyLOCAL = &tree.TailParameter{ Charset: yyDollar[1].str, @@ -20443,22 +20454,22 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1217: + case 1218: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8106 +//line mysql_sql.y:8114 { yyVAL.str = "" } - case 1218: + case 1219: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8110 +//line mysql_sql.y:8118 { yyVAL.str = yyDollar[2].str } - case 1219: + case 1220: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8116 +//line mysql_sql.y:8124 { var Name = yyDollar[4].tableNameUnion() var Type = yyDollar[5].columnTypeUnion() @@ -20480,10 +20491,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1220: + case 1221: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8137 +//line mysql_sql.y:8145 { locale := "" fstr := "bigint" @@ -20498,44 +20509,44 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1221: + case 1222: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8151 +//line mysql_sql.y:8159 { yyLOCAL = yyDollar[2].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1222: + case 1223: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8155 +//line mysql_sql.y:8163 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1223: + case 1224: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8159 +//line mysql_sql.y:8167 { yyLOCAL = &tree.TypeOption{ Type: yyDollar[2].columnTypeUnion(), } } yyVAL.union = yyLOCAL - case 1224: + case 1225: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8165 +//line mysql_sql.y:8173 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1225: + case 1226: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8169 +//line mysql_sql.y:8177 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20543,10 +20554,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1226: + case 1227: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8176 +//line mysql_sql.y:8184 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20554,10 +20565,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1227: + case 1228: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8183 +//line mysql_sql.y:8191 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20565,10 +20576,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1228: + case 1229: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8190 +//line mysql_sql.y:8198 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20576,42 +20587,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1229: + case 1230: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8197 +//line mysql_sql.y:8205 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1230: + case 1231: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8201 +//line mysql_sql.y:8209 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1231: + case 1232: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8205 +//line mysql_sql.y:8213 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1232: + case 1233: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8209 +//line mysql_sql.y:8217 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1233: + case 1234: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8213 +//line mysql_sql.y:8221 { yyLOCAL = &tree.MinValueOption{ Minus: false, @@ -20619,10 +20630,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1234: + case 1235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8220 +//line mysql_sql.y:8228 { yyLOCAL = &tree.MinValueOption{ Minus: true, @@ -20630,18 +20641,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1235: + case 1236: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8227 +//line mysql_sql.y:8235 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1236: + case 1237: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8231 +//line mysql_sql.y:8239 { yyLOCAL = &tree.MaxValueOption{ Minus: false, @@ -20649,10 +20660,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1237: + case 1238: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8238 +//line mysql_sql.y:8246 { yyLOCAL = &tree.MaxValueOption{ Minus: true, @@ -20660,46 +20671,46 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1238: + case 1239: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8245 +//line mysql_sql.y:8253 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1239: + case 1240: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8249 +//line mysql_sql.y:8257 { yyLOCAL = &tree.CycleOption{ Cycle: false, } } yyVAL.union = yyLOCAL - case 1240: + case 1241: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8255 +//line mysql_sql.y:8263 { yyLOCAL = &tree.CycleOption{ Cycle: true, } } yyVAL.union = yyLOCAL - case 1241: + case 1242: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8261 +//line mysql_sql.y:8269 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1242: + case 1243: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8265 +//line mysql_sql.y:8273 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20707,10 +20718,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1243: + case 1244: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8272 +//line mysql_sql.y:8280 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20718,10 +20729,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1244: + case 1245: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8279 +//line mysql_sql.y:8287 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20729,10 +20740,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1245: + case 1246: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8286 +//line mysql_sql.y:8294 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20740,58 +20751,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1246: + case 1247: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8293 +//line mysql_sql.y:8301 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1247: + case 1248: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8297 +//line mysql_sql.y:8305 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1248: + case 1249: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8302 +//line mysql_sql.y:8310 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1249: + case 1250: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8306 +//line mysql_sql.y:8314 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1250: + case 1251: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8310 +//line mysql_sql.y:8318 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1251: + case 1252: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8315 +//line mysql_sql.y:8323 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1252: + case 1253: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8319 +//line mysql_sql.y:8327 { yyDollar[3].partitionByUnion().Num = uint64(yyDollar[4].int64ValUnion()) var PartBy = yyDollar[3].partitionByUnion() @@ -20804,18 +20815,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1253: + case 1254: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8332 +//line mysql_sql.y:8340 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1254: + case 1255: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8336 +//line mysql_sql.y:8344 { var ColumnList = []*tree.UnresolvedName{yyDollar[3].unresolvedNameUnion()} yyLOCAL = tree.NewClusterByOption( @@ -20824,10 +20835,10 @@ yydefault: } yyVAL.union = yyLOCAL - case 1255: + case 1256: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8344 +//line mysql_sql.y:8352 { var ColumnList = yyDollar[4].unresolveNamesUnion() yyLOCAL = tree.NewClusterByOption( @@ -20835,18 +20846,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1256: + case 1257: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8352 +//line mysql_sql.y:8360 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1257: + case 1258: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8356 +//line mysql_sql.y:8364 { var IsSubPartition = true var PType = yyDollar[3].partitionByUnion() @@ -20858,42 +20869,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1258: + case 1259: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8368 +//line mysql_sql.y:8376 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1259: + case 1260: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8372 +//line mysql_sql.y:8380 { yyLOCAL = yyDollar[2].partitionsUnion() } yyVAL.union = yyLOCAL - case 1260: + case 1261: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8378 +//line mysql_sql.y:8386 { yyLOCAL = []*tree.Partition{yyDollar[1].partitionUnion()} } yyVAL.union = yyLOCAL - case 1261: + case 1262: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8382 +//line mysql_sql.y:8390 { yyLOCAL = append(yyDollar[1].partitionsUnion(), yyDollar[3].partitionUnion()) } yyVAL.union = yyLOCAL - case 1262: + case 1263: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8388 +//line mysql_sql.y:8396 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -20907,10 +20918,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1263: + case 1264: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8401 +//line mysql_sql.y:8409 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -20924,42 +20935,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1264: + case 1265: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8415 +//line mysql_sql.y:8423 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1265: + case 1266: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8419 +//line mysql_sql.y:8427 { yyLOCAL = yyDollar[2].subPartitionsUnion() } yyVAL.union = yyLOCAL - case 1266: + case 1267: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8425 +//line mysql_sql.y:8433 { yyLOCAL = []*tree.SubPartition{yyDollar[1].subPartitionUnion()} } yyVAL.union = yyLOCAL - case 1267: + case 1268: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8429 +//line mysql_sql.y:8437 { yyLOCAL = append(yyDollar[1].subPartitionsUnion(), yyDollar[3].subPartitionUnion()) } yyVAL.union = yyLOCAL - case 1268: + case 1269: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8435 +//line mysql_sql.y:8443 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options []tree.TableOption @@ -20969,10 +20980,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1269: + case 1270: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8444 +//line mysql_sql.y:8452 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options = yyDollar[3].tableOptionsUnion() @@ -20982,53 +20993,53 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1270: + case 1271: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8455 +//line mysql_sql.y:8463 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1271: + case 1272: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8459 +//line mysql_sql.y:8467 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1272: + case 1273: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8464 +//line mysql_sql.y:8472 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1273: + case 1274: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8468 +//line mysql_sql.y:8476 { expr := tree.NewMaxValue() var valueList = tree.Exprs{expr} yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1274: + case 1275: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8474 +//line mysql_sql.y:8482 { var valueList = yyDollar[5].exprsUnion() yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1275: + case 1276: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8479 +//line mysql_sql.y:8487 { var valueList = yyDollar[4].exprsUnion() yyLOCAL = tree.NewValuesIn( @@ -21036,18 +21047,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1276: + case 1277: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8487 +//line mysql_sql.y:8495 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1277: + case 1278: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8491 +//line mysql_sql.y:8499 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21057,18 +21068,18 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1278: + case 1279: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8501 +//line mysql_sql.y:8509 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1279: + case 1280: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8505 +//line mysql_sql.y:8513 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21078,10 +21089,10 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1280: + case 1281: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8516 +//line mysql_sql.y:8524 { rangeTyp := tree.NewRangeType() rangeTyp.Expr = yyDollar[3].exprUnion() @@ -21090,10 +21101,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1281: + case 1282: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8524 +//line mysql_sql.y:8532 { rangeTyp := tree.NewRangeType() rangeTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21102,10 +21113,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1282: + case 1283: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8532 +//line mysql_sql.y:8540 { listTyp := tree.NewListType() listTyp.Expr = yyDollar[3].exprUnion() @@ -21114,10 +21125,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1283: + case 1284: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8540 +//line mysql_sql.y:8548 { listTyp := tree.NewListType() listTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21126,10 +21137,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1285: + case 1286: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8551 +//line mysql_sql.y:8559 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21139,10 +21150,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1286: + case 1287: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8560 +//line mysql_sql.y:8568 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21153,10 +21164,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1287: + case 1288: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8570 +//line mysql_sql.y:8578 { Linear := yyDollar[1].boolValUnion() Expr := yyDollar[4].exprUnion() @@ -21166,58 +21177,58 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1288: + case 1289: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8580 +//line mysql_sql.y:8588 { yyLOCAL = 2 } yyVAL.union = yyLOCAL - case 1289: + case 1290: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8584 +//line mysql_sql.y:8592 { yyLOCAL = yyDollar[3].item.(int64) } yyVAL.union = yyLOCAL - case 1290: + case 1291: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8589 +//line mysql_sql.y:8597 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1291: + case 1292: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8593 +//line mysql_sql.y:8601 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1292: + case 1293: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8599 +//line mysql_sql.y:8607 { yyLOCAL = []*tree.ConnectorOption{yyDollar[1].connectorOptionUnion()} } yyVAL.union = yyLOCAL - case 1293: + case 1294: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8603 +//line mysql_sql.y:8611 { yyLOCAL = append(yyDollar[1].connectorOptionsUnion(), yyDollar[3].connectorOptionUnion()) } yyVAL.union = yyLOCAL - case 1294: + case 1295: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8609 +//line mysql_sql.y:8617 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21227,10 +21238,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1295: + case 1296: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8618 +//line mysql_sql.y:8626 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21240,42 +21251,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1296: + case 1297: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8628 +//line mysql_sql.y:8636 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1297: + case 1298: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8632 +//line mysql_sql.y:8640 { yyLOCAL = yyDollar[3].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1298: + case 1299: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8638 +//line mysql_sql.y:8646 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1299: + case 1300: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8642 +//line mysql_sql.y:8650 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1300: + case 1301: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8648 +//line mysql_sql.y:8656 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21285,10 +21296,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1301: + case 1302: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8657 +//line mysql_sql.y:8665 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21298,348 +21309,348 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1302: + case 1303: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8667 +//line mysql_sql.y:8675 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1303: + case 1304: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8671 +//line mysql_sql.y:8679 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1304: + case 1305: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8677 +//line mysql_sql.y:8685 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1305: + case 1306: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8681 +//line mysql_sql.y:8689 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1306: + case 1307: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8685 +//line mysql_sql.y:8693 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1307: + case 1308: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8691 +//line mysql_sql.y:8699 { yyLOCAL = tree.NewTableOptionAUTOEXTEND_SIZE(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1308: + case 1309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8695 +//line mysql_sql.y:8703 { yyLOCAL = tree.NewTableOptionAutoIncrement(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1309: + case 1310: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8699 +//line mysql_sql.y:8707 { yyLOCAL = tree.NewTableOptionAvgRowLength(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1310: + case 1311: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8703 +//line mysql_sql.y:8711 { yyLOCAL = tree.NewTableOptionCharset(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1311: + case 1312: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8707 +//line mysql_sql.y:8715 { yyLOCAL = tree.NewTableOptionCollate(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1312: + case 1313: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8711 +//line mysql_sql.y:8719 { yyLOCAL = tree.NewTableOptionChecksum(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1313: + case 1314: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8715 +//line mysql_sql.y:8723 { str := util.DealCommentString(yyDollar[3].str) yyLOCAL = tree.NewTableOptionComment(str) } yyVAL.union = yyLOCAL - case 1314: + case 1315: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8720 +//line mysql_sql.y:8728 { yyLOCAL = tree.NewTableOptionCompression(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1315: + case 1316: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8724 +//line mysql_sql.y:8732 { yyLOCAL = tree.NewTableOptionConnection(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1316: + case 1317: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8728 +//line mysql_sql.y:8736 { yyLOCAL = tree.NewTableOptionDataDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1317: + case 1318: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8732 +//line mysql_sql.y:8740 { yyLOCAL = tree.NewTableOptionIndexDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1318: + case 1319: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8736 +//line mysql_sql.y:8744 { yyLOCAL = tree.NewTableOptionDelayKeyWrite(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1319: + case 1320: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8740 +//line mysql_sql.y:8748 { yyLOCAL = tree.NewTableOptionEncryption(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1320: + case 1321: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8744 +//line mysql_sql.y:8752 { yyLOCAL = tree.NewTableOptionEngine(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1321: + case 1322: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8748 +//line mysql_sql.y:8756 { yyLOCAL = tree.NewTableOptionEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1322: + case 1323: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8752 +//line mysql_sql.y:8760 { yyLOCAL = tree.NewTableOptionInsertMethod(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1323: + case 1324: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8756 +//line mysql_sql.y:8764 { yyLOCAL = tree.NewTableOptionKeyBlockSize(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1324: + case 1325: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8760 +//line mysql_sql.y:8768 { yyLOCAL = tree.NewTableOptionMaxRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1325: + case 1326: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8764 +//line mysql_sql.y:8772 { yyLOCAL = tree.NewTableOptionMinRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1326: + case 1327: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8768 +//line mysql_sql.y:8776 { t := tree.NewTableOptionPackKeys() t.Value = yyDollar[3].item.(int64) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1327: + case 1328: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8774 +//line mysql_sql.y:8782 { t := tree.NewTableOptionPackKeys() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1328: + case 1329: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8780 +//line mysql_sql.y:8788 { yyLOCAL = tree.NewTableOptionPassword(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1329: + case 1330: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8784 +//line mysql_sql.y:8792 { yyLOCAL = tree.NewTableOptionRowFormat(yyDollar[3].rowFormatTypeUnion()) } yyVAL.union = yyLOCAL - case 1330: + case 1331: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8788 +//line mysql_sql.y:8796 { yyLOCAL = tree.NewTTableOptionStartTrans(true) } yyVAL.union = yyLOCAL - case 1331: + case 1332: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8792 +//line mysql_sql.y:8800 { yyLOCAL = tree.NewTTableOptionSecondaryEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1332: + case 1333: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8796 +//line mysql_sql.y:8804 { t := tree.NewTableOptionStatsAutoRecalc() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1333: + case 1334: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8802 +//line mysql_sql.y:8810 { t := tree.NewTableOptionStatsAutoRecalc() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1334: + case 1335: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8808 +//line mysql_sql.y:8816 { t := tree.NewTableOptionStatsPersistent() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1335: + case 1336: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8814 +//line mysql_sql.y:8822 { t := tree.NewTableOptionStatsPersistent() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1336: + case 1337: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8820 +//line mysql_sql.y:8828 { t := tree.NewTableOptionStatsSamplePages() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1337: + case 1338: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8826 +//line mysql_sql.y:8834 { t := tree.NewTableOptionStatsSamplePages() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1338: + case 1339: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8832 +//line mysql_sql.y:8840 { yyLOCAL = tree.NewTableOptionTablespace(yyDollar[3].cstrUnion().Compare(), "") } yyVAL.union = yyLOCAL - case 1339: + case 1340: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8836 +//line mysql_sql.y:8844 { yyLOCAL = tree.NewTableOptionTablespace("", yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1340: + case 1341: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8840 +//line mysql_sql.y:8848 { yyLOCAL = tree.NewTableOptionUnion(yyDollar[4].tableNamesUnion()) } yyVAL.union = yyLOCAL - case 1341: + case 1342: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8844 +//line mysql_sql.y:8852 { var Preperties = yyDollar[3].propertiesUnion() yyLOCAL = tree.NewTableOptionProperties(Preperties) } yyVAL.union = yyLOCAL - case 1342: + case 1343: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8849 +//line mysql_sql.y:8857 { var retentionPeriod = uint64(yyDollar[4].item.(int64)) var retentionUnit = strings.ToLower(yyDollar[5].str) @@ -21649,26 +21660,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1343: + case 1344: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8860 +//line mysql_sql.y:8868 { yyLOCAL = []tree.Property{yyDollar[1].propertyUnion()} } yyVAL.union = yyLOCAL - case 1344: + case 1345: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8864 +//line mysql_sql.y:8872 { yyLOCAL = append(yyDollar[1].propertiesUnion(), yyDollar[3].propertyUnion()) } yyVAL.union = yyLOCAL - case 1345: + case 1346: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Property -//line mysql_sql.y:8870 +//line mysql_sql.y:8878 { var Key = yyDollar[1].str var Value = yyDollar[3].str @@ -21678,96 +21689,96 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1346: + case 1347: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8881 +//line mysql_sql.y:8889 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1347: + case 1348: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8885 +//line mysql_sql.y:8893 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1348: + case 1349: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8891 +//line mysql_sql.y:8899 { yyLOCAL = tree.ROW_FORMAT_DEFAULT } yyVAL.union = yyLOCAL - case 1349: + case 1350: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8895 +//line mysql_sql.y:8903 { yyLOCAL = tree.ROW_FORMAT_DYNAMIC } yyVAL.union = yyLOCAL - case 1350: + case 1351: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8899 +//line mysql_sql.y:8907 { yyLOCAL = tree.ROW_FORMAT_FIXED } yyVAL.union = yyLOCAL - case 1351: + case 1352: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8903 +//line mysql_sql.y:8911 { yyLOCAL = tree.ROW_FORMAT_COMPRESSED } yyVAL.union = yyLOCAL - case 1352: + case 1353: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8907 +//line mysql_sql.y:8915 { yyLOCAL = tree.ROW_FORMAT_REDUNDANT } yyVAL.union = yyLOCAL - case 1353: + case 1354: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8911 +//line mysql_sql.y:8919 { yyLOCAL = tree.ROW_FORMAT_COMPACT } yyVAL.union = yyLOCAL - case 1358: + case 1359: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8925 +//line mysql_sql.y:8933 { yyLOCAL = tree.TableNames{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 1359: + case 1360: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8929 +//line mysql_sql.y:8937 { yyLOCAL = append(yyDollar[1].tableNamesUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 1360: + case 1361: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:8938 +//line mysql_sql.y:8946 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[2].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1361: + case 1362: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:8944 +//line mysql_sql.y:8952 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) @@ -21775,18 +21786,18 @@ yydefault: yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[4].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1362: + case 1363: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8952 +//line mysql_sql.y:8960 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1363: + case 1364: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8956 +//line mysql_sql.y:8964 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPTIME, @@ -21794,10 +21805,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1364: + case 1365: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8963 +//line mysql_sql.y:8971 { var str = yyDollar[4].cstrUnion().Compare() yyLOCAL = &tree.AtTimeStamp{ @@ -21807,10 +21818,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1365: + case 1366: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8972 +//line mysql_sql.y:8980 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPSNAPSHOT, @@ -21819,10 +21830,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1366: + case 1367: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8980 +//line mysql_sql.y:8988 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATMOTIMESTAMP, @@ -21830,10 +21841,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1367: + case 1368: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:8987 +//line mysql_sql.y:8995 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ASOFTIMESTAMP, @@ -21841,74 +21852,74 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1368: + case 1369: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:8995 +//line mysql_sql.y:9003 { yyLOCAL = tree.TableDefs(nil) } yyVAL.union = yyLOCAL - case 1370: + case 1371: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9002 +//line mysql_sql.y:9010 { yyLOCAL = tree.TableDefs{yyDollar[1].tableDefUnion()} } yyVAL.union = yyLOCAL - case 1371: + case 1372: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9006 +//line mysql_sql.y:9014 { yyLOCAL = append(yyDollar[1].tableDefsUnion(), yyDollar[3].tableDefUnion()) } yyVAL.union = yyLOCAL - case 1372: + case 1373: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9012 +//line mysql_sql.y:9020 { yyLOCAL = tree.TableDef(yyDollar[1].columnTableDefUnion()) } yyVAL.union = yyLOCAL - case 1373: + case 1374: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9016 +//line mysql_sql.y:9024 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1374: + case 1375: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9020 +//line mysql_sql.y:9028 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1375: + case 1376: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9026 +//line mysql_sql.y:9034 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1376: + case 1377: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9030 +//line mysql_sql.y:9038 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1377: + case 1378: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9036 +//line mysql_sql.y:9044 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -21922,10 +21933,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1378: + case 1379: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9049 +//line mysql_sql.y:9057 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -21939,10 +21950,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1379: + case 1380: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9062 +//line mysql_sql.y:9070 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -21984,10 +21995,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1380: + case 1381: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9103 +//line mysql_sql.y:9111 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -22028,10 +22039,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1381: + case 1382: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9145 +//line mysql_sql.y:9153 { if yyDollar[1].str != "" { switch v := yyDollar[2].tableDefUnion().(type) { @@ -22046,18 +22057,18 @@ yydefault: yyLOCAL = yyDollar[2].tableDefUnion() } yyVAL.union = yyLOCAL - case 1382: + case 1383: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9159 +//line mysql_sql.y:9167 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1383: + case 1384: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9165 +//line mysql_sql.y:9173 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22071,10 +22082,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1384: + case 1385: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9178 +//line mysql_sql.y:9186 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22088,10 +22099,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1385: + case 1386: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9191 +//line mysql_sql.y:9199 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22105,10 +22116,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1386: + case 1387: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9204 +//line mysql_sql.y:9212 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22122,10 +22133,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1387: + case 1388: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9217 +//line mysql_sql.y:9225 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var KeyParts = yyDollar[6].keyPartsUnion() @@ -22141,10 +22152,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1388: + case 1389: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9232 +//line mysql_sql.y:9240 { var Expr = yyDollar[3].exprUnion() var Enforced = yyDollar[5].boolValUnion() @@ -22154,327 +22165,327 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1389: + case 1390: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9242 +//line mysql_sql.y:9250 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1391: + case 1392: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9248 +//line mysql_sql.y:9256 { yyVAL.str = "" } - case 1392: + case 1393: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9252 +//line mysql_sql.y:9260 { yyVAL.str = yyDollar[1].str } - case 1395: + case 1396: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9262 +//line mysql_sql.y:9270 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = "" } yyVAL.union = yyLOCAL - case 1396: + case 1397: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9268 +//line mysql_sql.y:9276 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1397: + case 1398: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9274 +//line mysql_sql.y:9282 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].cstrUnion().Compare() yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1409: + case 1410: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9296 +//line mysql_sql.y:9304 { yyVAL.str = "" } - case 1410: + case 1411: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9300 +//line mysql_sql.y:9308 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1411: + case 1412: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ColumnTableDef -//line mysql_sql.y:9306 +//line mysql_sql.y:9314 { yyLOCAL = tree.NewColumnTableDef(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[3].columnAttributesUnion()) } yyVAL.union = yyLOCAL - case 1412: + case 1413: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9312 +//line mysql_sql.y:9320 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1413: + case 1414: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9316 +//line mysql_sql.y:9324 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1414: + case 1415: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9321 +//line mysql_sql.y:9329 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1415: + case 1416: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9329 +//line mysql_sql.y:9337 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1416: + case 1417: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9333 +//line mysql_sql.y:9341 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1417: + case 1418: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9337 +//line mysql_sql.y:9345 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1418: + case 1419: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9341 +//line mysql_sql.y:9349 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1419: + case 1420: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9347 +//line mysql_sql.y:9355 { yyLOCAL = yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) } yyVAL.union = yyLOCAL - case 1420: + case 1421: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9353 +//line mysql_sql.y:9361 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1421: + case 1422: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9357 +//line mysql_sql.y:9365 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1422: + case 1423: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9362 +//line mysql_sql.y:9370 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1423: + case 1424: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9369 +//line mysql_sql.y:9377 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1424: + case 1425: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9373 +//line mysql_sql.y:9381 { yyLOCAL = yyDollar[1].columnAttributesUnion() } yyVAL.union = yyLOCAL - case 1425: + case 1426: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9379 +//line mysql_sql.y:9387 { yyLOCAL = []tree.ColumnAttribute{yyDollar[1].columnAttributeUnion()} } yyVAL.union = yyLOCAL - case 1426: + case 1427: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9383 +//line mysql_sql.y:9391 { yyLOCAL = append(yyDollar[1].columnAttributesUnion(), yyDollar[2].columnAttributeUnion()) } yyVAL.union = yyLOCAL - case 1427: + case 1428: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9389 +//line mysql_sql.y:9397 { yyLOCAL = tree.NewAttributeNull(true) } yyVAL.union = yyLOCAL - case 1428: + case 1429: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9393 +//line mysql_sql.y:9401 { yyLOCAL = tree.NewAttributeNull(false) } yyVAL.union = yyLOCAL - case 1429: + case 1430: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9397 +//line mysql_sql.y:9405 { yyLOCAL = tree.NewAttributeDefault(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1430: + case 1431: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9401 +//line mysql_sql.y:9409 { yyLOCAL = tree.NewAttributeAutoIncrement() } yyVAL.union = yyLOCAL - case 1431: + case 1432: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9405 +//line mysql_sql.y:9413 { yyLOCAL = yyDollar[1].columnAttributeUnion() } yyVAL.union = yyLOCAL - case 1432: + case 1433: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9409 +//line mysql_sql.y:9417 { str := util.DealCommentString(yyDollar[2].str) yyLOCAL = tree.NewAttributeComment(tree.NewNumVal(str, str, false, tree.P_char)) } yyVAL.union = yyLOCAL - case 1433: + case 1434: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9414 +//line mysql_sql.y:9422 { yyLOCAL = tree.NewAttributeCollate(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1434: + case 1435: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9418 +//line mysql_sql.y:9426 { yyLOCAL = tree.NewAttributeColumnFormat(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1435: + case 1436: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9422 +//line mysql_sql.y:9430 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1436: + case 1437: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9426 +//line mysql_sql.y:9434 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1437: + case 1438: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9430 +//line mysql_sql.y:9438 { yyLOCAL = tree.NewAttributeStorage(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1438: + case 1439: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9434 +//line mysql_sql.y:9442 { yyLOCAL = tree.NewAttributeAutoRandom(int(yyDollar[2].int64ValUnion())) } yyVAL.union = yyLOCAL - case 1439: + case 1440: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9438 +//line mysql_sql.y:9446 { yyLOCAL = yyDollar[1].attributeReferenceUnion() } yyVAL.union = yyLOCAL - case 1440: + case 1441: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9442 +//line mysql_sql.y:9450 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), false, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1441: + case 1442: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9446 +//line mysql_sql.y:9454 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), yyDollar[6].boolValUnion(), yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1442: + case 1443: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9450 +//line mysql_sql.y:9458 { name := tree.NewUnresolvedColName(yyDollar[3].str) var es tree.Exprs = nil @@ -22489,98 +22500,98 @@ yydefault: yyLOCAL = tree.NewAttributeOnUpdate(expr) } yyVAL.union = yyLOCAL - case 1443: + case 1444: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9464 +//line mysql_sql.y:9472 { yyLOCAL = tree.NewAttributeLowCardinality() } yyVAL.union = yyLOCAL - case 1444: + case 1445: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9468 +//line mysql_sql.y:9476 { yyLOCAL = tree.NewAttributeVisable(true) } yyVAL.union = yyLOCAL - case 1445: + case 1446: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9472 +//line mysql_sql.y:9480 { yyLOCAL = tree.NewAttributeVisable(false) } yyVAL.union = yyLOCAL - case 1446: + case 1447: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9476 +//line mysql_sql.y:9484 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1447: + case 1448: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9480 +//line mysql_sql.y:9488 { yyLOCAL = tree.NewAttributeHeader(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1448: + case 1449: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9484 +//line mysql_sql.y:9492 { yyLOCAL = tree.NewAttributeHeaders() } yyVAL.union = yyLOCAL - case 1449: + case 1450: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9490 +//line mysql_sql.y:9498 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1450: + case 1451: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9494 +//line mysql_sql.y:9502 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1451: + case 1452: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9499 +//line mysql_sql.y:9507 { yyVAL.str = "" } - case 1452: + case 1453: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9503 +//line mysql_sql.y:9511 { yyVAL.str = yyDollar[1].str } - case 1453: + case 1454: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9509 +//line mysql_sql.y:9517 { yyVAL.str = "" } - case 1454: + case 1455: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:9513 +//line mysql_sql.y:9521 { yyVAL.str = yyDollar[2].cstrUnion().Compare() } - case 1455: + case 1456: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AttributeReference -//line mysql_sql.y:9519 +//line mysql_sql.y:9527 { var TableName = yyDollar[2].tableNameUnion() var KeyParts = yyDollar[3].keyPartsUnion() @@ -22596,10 +22607,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1456: + case 1457: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9536 +//line mysql_sql.y:9544 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22607,10 +22618,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1457: + case 1458: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9543 +//line mysql_sql.y:9551 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22618,10 +22629,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1458: + case 1459: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9550 +//line mysql_sql.y:9558 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22629,10 +22640,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1459: + case 1460: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9557 +//line mysql_sql.y:9565 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22640,10 +22651,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1460: + case 1461: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9564 +//line mysql_sql.y:9572 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[2].referenceOptionTypeUnion(), @@ -22651,354 +22662,354 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1461: + case 1462: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9573 +//line mysql_sql.y:9581 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1462: + case 1463: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9579 +//line mysql_sql.y:9587 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1463: + case 1464: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9585 +//line mysql_sql.y:9593 { yyLOCAL = tree.REFERENCE_OPTION_RESTRICT } yyVAL.union = yyLOCAL - case 1464: + case 1465: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9589 +//line mysql_sql.y:9597 { yyLOCAL = tree.REFERENCE_OPTION_CASCADE } yyVAL.union = yyLOCAL - case 1465: + case 1466: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9593 +//line mysql_sql.y:9601 { yyLOCAL = tree.REFERENCE_OPTION_SET_NULL } yyVAL.union = yyLOCAL - case 1466: + case 1467: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9597 +//line mysql_sql.y:9605 { yyLOCAL = tree.REFERENCE_OPTION_NO_ACTION } yyVAL.union = yyLOCAL - case 1467: + case 1468: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9601 +//line mysql_sql.y:9609 { yyLOCAL = tree.REFERENCE_OPTION_SET_DEFAULT } yyVAL.union = yyLOCAL - case 1468: + case 1469: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9606 +//line mysql_sql.y:9614 { yyLOCAL = tree.MATCH_INVALID } yyVAL.union = yyLOCAL - case 1470: + case 1471: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9613 +//line mysql_sql.y:9621 { yyLOCAL = tree.MATCH_FULL } yyVAL.union = yyLOCAL - case 1471: + case 1472: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9617 +//line mysql_sql.y:9625 { yyLOCAL = tree.MATCH_PARTIAL } yyVAL.union = yyLOCAL - case 1472: + case 1473: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9621 +//line mysql_sql.y:9629 { yyLOCAL = tree.MATCH_SIMPLE } yyVAL.union = yyLOCAL - case 1473: + case 1474: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9626 +//line mysql_sql.y:9634 { yyLOCAL = tree.FULLTEXT_DEFAULT } yyVAL.union = yyLOCAL - case 1474: + case 1475: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9630 +//line mysql_sql.y:9638 { yyLOCAL = tree.FULLTEXT_NL } yyVAL.union = yyLOCAL - case 1475: + case 1476: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9634 +//line mysql_sql.y:9642 { yyLOCAL = tree.FULLTEXT_NL_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1476: + case 1477: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9638 +//line mysql_sql.y:9646 { yyLOCAL = tree.FULLTEXT_BOOLEAN } yyVAL.union = yyLOCAL - case 1477: + case 1478: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9642 +//line mysql_sql.y:9650 { yyLOCAL = tree.FULLTEXT_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1478: + case 1479: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9647 +//line mysql_sql.y:9655 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1479: + case 1480: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9651 +//line mysql_sql.y:9659 { yyLOCAL = yyDollar[2].keyPartsUnion() } yyVAL.union = yyLOCAL - case 1480: + case 1481: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9656 +//line mysql_sql.y:9664 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 1481: + case 1482: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9660 +//line mysql_sql.y:9668 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 1488: + case 1489: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Subquery -//line mysql_sql.y:9676 +//line mysql_sql.y:9684 { yyLOCAL = &tree.Subquery{Select: yyDollar[1].selectStatementUnion(), Exists: false} } yyVAL.union = yyLOCAL - case 1489: + case 1490: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9682 +//line mysql_sql.y:9690 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_AND, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1490: + case 1491: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9686 +//line mysql_sql.y:9694 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_OR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1491: + case 1492: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9690 +//line mysql_sql.y:9698 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_XOR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1492: + case 1493: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9694 +//line mysql_sql.y:9702 { yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1493: + case 1494: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9698 +//line mysql_sql.y:9706 { yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1494: + case 1495: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9702 +//line mysql_sql.y:9710 { yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1495: + case 1496: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9706 +//line mysql_sql.y:9714 { yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1496: + case 1497: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9710 +//line mysql_sql.y:9718 { yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1497: + case 1498: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9714 +//line mysql_sql.y:9722 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1498: + case 1499: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9718 +//line mysql_sql.y:9726 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1499: + case 1500: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9722 +//line mysql_sql.y:9730 { yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1500: + case 1501: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9726 +//line mysql_sql.y:9734 { yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1501: + case 1502: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9730 +//line mysql_sql.y:9738 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1502: + case 1503: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9736 +//line mysql_sql.y:9744 { yyLOCAL = yyDollar[1].unresolvedNameUnion() } yyVAL.union = yyLOCAL - case 1503: + case 1504: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9740 +//line mysql_sql.y:9748 { yyLOCAL = yyDollar[1].varExprUnion() } yyVAL.union = yyLOCAL - case 1504: + case 1505: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9744 +//line mysql_sql.y:9752 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1505: + case 1506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9748 +//line mysql_sql.y:9756 { yyLOCAL = tree.NewParentExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1506: + case 1507: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9752 +//line mysql_sql.y:9760 { yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) } yyVAL.union = yyLOCAL - case 1507: + case 1508: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9756 +//line mysql_sql.y:9764 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1508: + case 1509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9760 +//line mysql_sql.y:9768 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1509: + case 1510: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9764 +//line mysql_sql.y:9772 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1510: + case 1511: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9768 +//line mysql_sql.y:9776 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1511: + case 1512: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9772 +//line mysql_sql.y:9780 { hint := strings.ToLower(yyDollar[2].cstrUnion().Compare()) switch hint { @@ -23041,35 +23052,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1512: + case 1513: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9814 +//line mysql_sql.y:9822 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1513: + case 1514: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9818 +//line mysql_sql.y:9826 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1514: + case 1515: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9822 +//line mysql_sql.y:9830 { yyDollar[2].subqueryUnion().Exists = true yyLOCAL = yyDollar[2].subqueryUnion() } yyVAL.union = yyLOCAL - case 1515: + case 1516: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9827 +//line mysql_sql.y:9835 { yyLOCAL = &tree.CaseExpr{ Expr: yyDollar[2].exprUnion(), @@ -23078,42 +23089,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1516: + case 1517: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9835 +//line mysql_sql.y:9843 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1517: + case 1518: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9839 +//line mysql_sql.y:9847 { yyLOCAL = tree.NewSerialExtractExpr(yyDollar[3].exprUnion(), yyDollar[5].exprUnion(), yyDollar[7].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1518: + case 1519: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9843 +//line mysql_sql.y:9851 { yyLOCAL = tree.NewBitCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1519: + case 1520: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9847 +//line mysql_sql.y:9855 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1520: + case 1521: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9851 +//line mysql_sql.y:9859 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) @@ -23124,66 +23135,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1521: + case 1522: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9861 +//line mysql_sql.y:9869 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1522: + case 1523: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9865 +//line mysql_sql.y:9873 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1523: + case 1524: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9869 +//line mysql_sql.y:9877 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1524: + case 1525: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9873 +//line mysql_sql.y:9881 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1525: + case 1526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9877 +//line mysql_sql.y:9885 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1526: + case 1527: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9881 +//line mysql_sql.y:9889 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1527: + case 1528: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9885 +//line mysql_sql.y:9893 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1528: + case 1529: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9889 +//line mysql_sql.y:9897 { val, err := tree.NewFullTextMatchFuncExpression(yyDollar[3].keyPartsUnion(), yyDollar[7].str, yyDollar[8].fullTextSearchTypeUnion()) if err != nil { @@ -23193,16 +23204,16 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1529: + case 1530: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9902 +//line mysql_sql.y:9910 { yyVAL.str = yyDollar[1].str } - case 1530: + case 1531: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9908 +//line mysql_sql.y:9916 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23212,10 +23223,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1531: + case 1532: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9917 +//line mysql_sql.y:9925 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23225,10 +23236,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1532: + case 1533: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9926 +//line mysql_sql.y:9934 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23238,10 +23249,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1533: + case 1534: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9937 +//line mysql_sql.y:9945 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, "block") @@ -23252,10 +23263,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1534: + case 1535: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9947 +//line mysql_sql.y:9955 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, yyDollar[8].str) @@ -23266,10 +23277,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1535: + case 1536: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9957 +//line mysql_sql.y:9965 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), true, nil) if err != nil { @@ -23279,10 +23290,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1536: + case 1537: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9966 +//line mysql_sql.y:9974 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), true, nil) if err != nil { @@ -23292,10 +23303,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1537: + case 1538: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9976 +//line mysql_sql.y:9984 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), "block") @@ -23306,10 +23317,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1538: + case 1539: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9986 +//line mysql_sql.y:9994 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), yyDollar[8].str) @@ -23320,10 +23331,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1539: + case 1540: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9996 +//line mysql_sql.y:10004 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23333,10 +23344,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1540: + case 1541: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10005 +//line mysql_sql.y:10013 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23346,58 +23357,58 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1541: + case 1542: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10015 +//line mysql_sql.y:10023 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1542: + case 1543: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10019 +//line mysql_sql.y:10027 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1543: + case 1544: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10024 +//line mysql_sql.y:10032 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1544: + case 1545: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10028 +//line mysql_sql.y:10036 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1545: + case 1546: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10034 +//line mysql_sql.y:10042 { yyLOCAL = []*tree.When{yyDollar[1].whenClauseUnion()} } yyVAL.union = yyLOCAL - case 1546: + case 1547: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10038 +//line mysql_sql.y:10046 { yyLOCAL = append(yyDollar[1].whenClauseListUnion(), yyDollar[2].whenClauseUnion()) } yyVAL.union = yyLOCAL - case 1547: + case 1548: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.When -//line mysql_sql.y:10044 +//line mysql_sql.y:10052 { yyLOCAL = &tree.When{ Cond: yyDollar[2].exprUnion(), @@ -23405,9 +23416,9 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1548: + case 1549: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10053 +//line mysql_sql.y:10061 { t := yyVAL.columnTypeUnion() str := strings.ToLower(t.InternalType.FamilyString) @@ -23420,10 +23431,10 @@ yydefault: } } } - case 1549: + case 1550: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10065 +//line mysql_sql.y:10073 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23441,10 +23452,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1550: + case 1551: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10082 +//line mysql_sql.y:10090 { locale := "" yyLOCAL = &tree.T{ @@ -23459,10 +23470,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1552: + case 1553: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10099 +//line mysql_sql.y:10107 { locale := "" yyLOCAL = &tree.T{ @@ -23476,10 +23487,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1553: + case 1554: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10112 +//line mysql_sql.y:10120 { locale := "" yyLOCAL = &tree.T{ @@ -23493,10 +23504,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1554: + case 1555: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10125 +//line mysql_sql.y:10133 { locale := "" yyLOCAL = &tree.T{ @@ -23509,10 +23520,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1555: + case 1556: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10137 +//line mysql_sql.y:10145 { locale := "" yyLOCAL = &tree.T{ @@ -23527,10 +23538,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1556: + case 1557: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10151 +//line mysql_sql.y:10159 { locale := "" yyLOCAL = &tree.T{ @@ -23546,10 +23557,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1557: + case 1558: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10166 +//line mysql_sql.y:10174 { locale := "" yyLOCAL = &tree.T{ @@ -23565,10 +23576,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1558: + case 1559: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10181 +//line mysql_sql.y:10189 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23586,10 +23597,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1559: + case 1560: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10198 +//line mysql_sql.y:10206 { locale := "" yyLOCAL = &tree.T{ @@ -23604,95 +23615,95 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1560: + case 1561: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10213 +//line mysql_sql.y:10221 { } - case 1564: + case 1565: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10220 +//line mysql_sql.y:10228 { yyLOCAL = &tree.FrameBound{Type: tree.Following, UnBounded: true} } yyVAL.union = yyLOCAL - case 1565: + case 1566: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10224 +//line mysql_sql.y:10232 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1566: + case 1567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10228 +//line mysql_sql.y:10236 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1567: + case 1568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10234 +//line mysql_sql.y:10242 { yyLOCAL = &tree.FrameBound{Type: tree.CurrentRow} } yyVAL.union = yyLOCAL - case 1568: + case 1569: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10238 +//line mysql_sql.y:10246 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, UnBounded: true} } yyVAL.union = yyLOCAL - case 1569: + case 1570: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10242 +//line mysql_sql.y:10250 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1570: + case 1571: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10246 +//line mysql_sql.y:10254 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1571: + case 1572: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10252 +//line mysql_sql.y:10260 { yyLOCAL = tree.Rows } yyVAL.union = yyLOCAL - case 1572: + case 1573: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10256 +//line mysql_sql.y:10264 { yyLOCAL = tree.Range } yyVAL.union = yyLOCAL - case 1573: + case 1574: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10260 +//line mysql_sql.y:10268 { yyLOCAL = tree.Groups } yyVAL.union = yyLOCAL - case 1574: + case 1575: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10266 +//line mysql_sql.y:10274 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23701,10 +23712,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1575: + case 1576: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10274 +//line mysql_sql.y:10282 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23714,82 +23725,82 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1576: + case 1577: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10284 +//line mysql_sql.y:10292 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1577: + case 1578: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10288 +//line mysql_sql.y:10296 { yyLOCAL = yyDollar[1].frameClauseUnion() } yyVAL.union = yyLOCAL - case 1578: + case 1579: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10295 +//line mysql_sql.y:10303 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1579: + case 1580: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10300 +//line mysql_sql.y:10308 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1580: + case 1581: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10304 +//line mysql_sql.y:10312 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1581: + case 1582: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10309 +//line mysql_sql.y:10317 { yyVAL.str = "," } - case 1582: + case 1583: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10313 +//line mysql_sql.y:10321 { yyVAL.str = yyDollar[2].str } - case 1583: + case 1584: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10318 +//line mysql_sql.y:10326 { yyVAL.str = "1,vector_l2_ops,random,false" } - case 1584: + case 1585: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10322 +//line mysql_sql.y:10330 { yyVAL.str = yyDollar[2].str } - case 1585: + case 1586: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10327 +//line mysql_sql.y:10335 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1587: + case 1588: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10334 +//line mysql_sql.y:10342 { hasFrame := true var f *tree.FrameClause @@ -23814,10 +23825,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1588: + case 1589: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10360 +//line mysql_sql.y:10368 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23830,10 +23841,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1589: + case 1590: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10372 +//line mysql_sql.y:10380 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23846,10 +23857,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1590: + case 1591: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10384 +//line mysql_sql.y:10392 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23861,10 +23872,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1591: + case 1592: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10395 +//line mysql_sql.y:10403 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23876,10 +23887,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1592: + case 1593: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10406 +//line mysql_sql.y:10414 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -23891,10 +23902,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1593: + case 1594: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10417 +//line mysql_sql.y:10425 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23905,10 +23916,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1594: + case 1595: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10427 +//line mysql_sql.y:10435 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23919,10 +23930,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1595: + case 1596: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10437 +//line mysql_sql.y:10445 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23934,10 +23945,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1596: + case 1597: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10448 +//line mysql_sql.y:10456 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23949,10 +23960,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1597: + case 1598: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10459 +//line mysql_sql.y:10467 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23964,10 +23975,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1598: + case 1599: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10470 +//line mysql_sql.y:10478 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23979,10 +23990,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1599: + case 1600: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10481 +//line mysql_sql.y:10489 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -23994,10 +24005,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1600: + case 1601: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10492 +//line mysql_sql.y:10500 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24009,10 +24020,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1601: + case 1602: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10503 +//line mysql_sql.y:10511 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24024,10 +24035,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1602: + case 1603: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10514 +//line mysql_sql.y:10522 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24039,10 +24050,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1603: + case 1604: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10525 +//line mysql_sql.y:10533 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24054,10 +24065,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1604: + case 1605: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10536 +//line mysql_sql.y:10544 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24069,10 +24080,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1605: + case 1606: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10547 +//line mysql_sql.y:10555 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24084,10 +24095,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1606: + case 1607: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10558 +//line mysql_sql.y:10566 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24099,10 +24110,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1607: + case 1608: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10569 +//line mysql_sql.y:10577 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24114,10 +24125,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1608: + case 1609: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10580 +//line mysql_sql.y:10588 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24129,10 +24140,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1609: + case 1610: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10591 +//line mysql_sql.y:10599 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24144,10 +24155,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1610: + case 1611: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10602 +//line mysql_sql.y:10610 { name := tree.NewUnresolvedColName(yyDollar[1].str) var columnList tree.Exprs @@ -24165,10 +24176,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1614: + case 1615: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10626 +//line mysql_sql.y:10634 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24178,10 +24189,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1615: + case 1616: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10635 +//line mysql_sql.y:10643 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24191,10 +24202,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1616: + case 1617: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10644 +//line mysql_sql.y:10652 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24204,10 +24215,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1617: + case 1618: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10653 +//line mysql_sql.y:10661 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24217,10 +24228,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1618: + case 1619: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10662 +//line mysql_sql.y:10670 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24232,10 +24243,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1619: + case 1620: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10673 +//line mysql_sql.y:10681 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24245,10 +24256,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1620: + case 1621: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10682 +//line mysql_sql.y:10690 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24259,10 +24270,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1621: + case 1622: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10692 +//line mysql_sql.y:10700 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24272,10 +24283,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1622: + case 1623: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10701 +//line mysql_sql.y:10709 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24285,10 +24296,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1623: + case 1624: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10710 +//line mysql_sql.y:10718 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24298,10 +24309,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1624: + case 1625: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10719 +//line mysql_sql.y:10727 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24311,10 +24322,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1625: + case 1626: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10728 +//line mysql_sql.y:10736 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(0), "0", false, tree.P_int64) @@ -24327,10 +24338,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1626: + case 1627: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10740 +//line mysql_sql.y:10748 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(1), "1", false, tree.P_int64) @@ -24342,10 +24353,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1627: + case 1628: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10751 +//line mysql_sql.y:10759 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(2), "2", false, tree.P_int64) @@ -24359,10 +24370,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1628: + case 1629: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10764 +//line mysql_sql.y:10772 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(3), "3", false, tree.P_int64) @@ -24375,10 +24386,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1629: + case 1630: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10776 +//line mysql_sql.y:10784 { column := tree.NewUnresolvedColName(yyDollar[3].str) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24389,16 +24400,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1636: + case 1637: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10799 +//line mysql_sql.y:10807 { yyVAL.str = yyDollar[1].str } - case 1665: + case 1666: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10835 +//line mysql_sql.y:10843 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24412,10 +24423,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1666: + case 1667: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10848 +//line mysql_sql.y:10856 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24429,10 +24440,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1667: + case 1668: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10861 +//line mysql_sql.y:10869 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24444,10 +24455,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1668: + case 1669: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10873 +//line mysql_sql.y:10881 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24457,10 +24468,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1669: + case 1670: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10882 +//line mysql_sql.y:10890 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24469,10 +24480,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1670: + case 1671: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10890 +//line mysql_sql.y:10898 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24481,10 +24492,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1671: + case 1672: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10898 +//line mysql_sql.y:10906 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24498,10 +24509,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1672: + case 1673: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10911 +//line mysql_sql.y:10919 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24511,10 +24522,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1673: + case 1674: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10920 +//line mysql_sql.y:10928 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24526,10 +24537,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1674: + case 1675: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10931 +//line mysql_sql.y:10939 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24541,10 +24552,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1675: + case 1676: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10942 +//line mysql_sql.y:10950 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24554,10 +24565,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1676: + case 1677: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10951 +//line mysql_sql.y:10959 { cn := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) es := yyDollar[3].exprsUnion() @@ -24570,10 +24581,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1677: + case 1678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10963 +//line mysql_sql.y:10971 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24584,10 +24595,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1678: + case 1679: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10973 +//line mysql_sql.y:10981 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24598,10 +24609,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1679: + case 1680: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10983 +//line mysql_sql.y:10991 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24611,10 +24622,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1680: + case 1681: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10992 +//line mysql_sql.y:11000 { es := tree.Exprs{yyDollar[3].exprUnion()} es = append(es, yyDollar[5].exprUnion()) @@ -24626,10 +24637,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1681: + case 1682: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11003 +//line mysql_sql.y:11011 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24639,10 +24650,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1682: + case 1683: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11012 +//line mysql_sql.y:11020 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24653,10 +24664,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1683: + case 1684: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11022 +//line mysql_sql.y:11030 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24666,10 +24677,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1684: + case 1685: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11031 +//line mysql_sql.y:11039 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24679,10 +24690,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1685: + case 1686: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11040 +//line mysql_sql.y:11048 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24692,34 +24703,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1686: + case 1687: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11050 +//line mysql_sql.y:11058 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1687: + case 1688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11054 +//line mysql_sql.y:11062 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1688: + case 1689: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11060 +//line mysql_sql.y:11068 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1689: + case 1690: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11064 +//line mysql_sql.y:11072 { ival, errStr := util.GetInt64(yyDollar[2].item) if errStr != "" { @@ -24730,20 +24741,20 @@ yydefault: yyLOCAL = tree.NewNumVal(ival, str, false, tree.P_int64) } yyVAL.union = yyLOCAL - case 1696: + case 1697: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:11083 +//line mysql_sql.y:11091 { } - case 1697: + case 1698: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:11085 +//line mysql_sql.y:11093 { } - case 1732: + case 1733: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11127 +//line mysql_sql.y:11135 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24755,106 +24766,106 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1733: + case 1734: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11139 +//line mysql_sql.y:11147 { yyLOCAL = tree.FUNC_TYPE_DEFAULT } yyVAL.union = yyLOCAL - case 1734: + case 1735: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11143 +//line mysql_sql.y:11151 { yyLOCAL = tree.FUNC_TYPE_DISTINCT } yyVAL.union = yyLOCAL - case 1735: + case 1736: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11147 +//line mysql_sql.y:11155 { yyLOCAL = tree.FUNC_TYPE_ALL } yyVAL.union = yyLOCAL - case 1736: + case 1737: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Tuple -//line mysql_sql.y:11153 +//line mysql_sql.y:11161 { yyLOCAL = tree.NewTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1737: + case 1738: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11158 +//line mysql_sql.y:11166 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1738: + case 1739: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11162 +//line mysql_sql.y:11170 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1739: + case 1740: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11168 +//line mysql_sql.y:11176 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1740: + case 1741: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11172 +//line mysql_sql.y:11180 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1741: + case 1742: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11178 +//line mysql_sql.y:11186 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1742: + case 1743: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11182 +//line mysql_sql.y:11190 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1743: + case 1744: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11189 +//line mysql_sql.y:11197 { yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1744: + case 1745: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11193 +//line mysql_sql.y:11201 { yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1745: + case 1746: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11197 +//line mysql_sql.y:11205 { name := tree.NewUnresolvedColName("concat") yyLOCAL = &tree.FuncExpr{ @@ -24864,355 +24875,355 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1746: + case 1747: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11206 +//line mysql_sql.y:11214 { yyLOCAL = tree.NewXorExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1747: + case 1748: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11210 +//line mysql_sql.y:11218 { yyLOCAL = tree.NewNotExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1748: + case 1749: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11214 +//line mysql_sql.y:11222 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1749: + case 1750: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11219 +//line mysql_sql.y:11227 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1750: + case 1751: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11223 +//line mysql_sql.y:11231 { yyLOCAL = tree.NewMaxValue() } yyVAL.union = yyLOCAL - case 1751: + case 1752: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11229 +//line mysql_sql.y:11237 { yyLOCAL = tree.NewIsNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1752: + case 1753: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11233 +//line mysql_sql.y:11241 { yyLOCAL = tree.NewIsNotNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1753: + case 1754: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11237 +//line mysql_sql.y:11245 { yyLOCAL = tree.NewIsUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1754: + case 1755: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11241 +//line mysql_sql.y:11249 { yyLOCAL = tree.NewIsNotUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1755: + case 1756: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11245 +//line mysql_sql.y:11253 { yyLOCAL = tree.NewIsTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1756: + case 1757: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11249 +//line mysql_sql.y:11257 { yyLOCAL = tree.NewIsNotTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1757: + case 1758: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11253 +//line mysql_sql.y:11261 { yyLOCAL = tree.NewIsFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1758: + case 1759: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11257 +//line mysql_sql.y:11265 { yyLOCAL = tree.NewIsNotFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1759: + case 1760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11261 +//line mysql_sql.y:11269 { yyLOCAL = tree.NewComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1760: + case 1761: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11265 +//line mysql_sql.y:11273 { yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) } yyVAL.union = yyLOCAL - case 1762: + case 1763: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11273 +//line mysql_sql.y:11281 { yyLOCAL = tree.NewComparisonExpr(tree.IN, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1763: + case 1764: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11277 +//line mysql_sql.y:11285 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_IN, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1764: + case 1765: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11281 +//line mysql_sql.y:11289 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.LIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1765: + case 1766: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11285 +//line mysql_sql.y:11293 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_LIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1766: + case 1767: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11289 +//line mysql_sql.y:11297 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.ILIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1767: + case 1768: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11293 +//line mysql_sql.y:11301 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_ILIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1768: + case 1769: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11297 +//line mysql_sql.y:11305 { yyLOCAL = tree.NewComparisonExpr(tree.REG_MATCH, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1769: + case 1770: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11301 +//line mysql_sql.y:11309 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_REG_MATCH, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1770: + case 1771: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11305 +//line mysql_sql.y:11313 { yyLOCAL = tree.NewRangeCond(false, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1771: + case 1772: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11309 +//line mysql_sql.y:11317 { yyLOCAL = tree.NewRangeCond(true, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[6].exprUnion()) } yyVAL.union = yyLOCAL - case 1773: + case 1774: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11315 +//line mysql_sql.y:11323 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1774: + case 1775: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11319 +//line mysql_sql.y:11327 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1775: + case 1776: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11325 +//line mysql_sql.y:11333 { yyLOCAL = yyDollar[1].tupleUnion() } yyVAL.union = yyLOCAL - case 1776: + case 1777: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11329 +//line mysql_sql.y:11337 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1777: + case 1778: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11336 +//line mysql_sql.y:11344 { yyLOCAL = tree.ALL } yyVAL.union = yyLOCAL - case 1778: + case 1779: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11340 +//line mysql_sql.y:11348 { yyLOCAL = tree.ANY } yyVAL.union = yyLOCAL - case 1779: + case 1780: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11344 +//line mysql_sql.y:11352 { yyLOCAL = tree.SOME } yyVAL.union = yyLOCAL - case 1780: + case 1781: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11350 +//line mysql_sql.y:11358 { yyLOCAL = tree.EQUAL } yyVAL.union = yyLOCAL - case 1781: + case 1782: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11354 +//line mysql_sql.y:11362 { yyLOCAL = tree.LESS_THAN } yyVAL.union = yyLOCAL - case 1782: + case 1783: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11358 +//line mysql_sql.y:11366 { yyLOCAL = tree.GREAT_THAN } yyVAL.union = yyLOCAL - case 1783: + case 1784: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11362 +//line mysql_sql.y:11370 { yyLOCAL = tree.LESS_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1784: + case 1785: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11366 +//line mysql_sql.y:11374 { yyLOCAL = tree.GREAT_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1785: + case 1786: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11370 +//line mysql_sql.y:11378 { yyLOCAL = tree.NOT_EQUAL } yyVAL.union = yyLOCAL - case 1786: + case 1787: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11374 +//line mysql_sql.y:11382 { yyLOCAL = tree.NULL_SAFE_EQUAL } yyVAL.union = yyLOCAL - case 1787: + case 1788: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11380 +//line mysql_sql.y:11388 { yyLOCAL = tree.NewAttributePrimaryKey() } yyVAL.union = yyLOCAL - case 1788: + case 1789: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11384 +//line mysql_sql.y:11392 { yyLOCAL = tree.NewAttributeUniqueKey() } yyVAL.union = yyLOCAL - case 1789: + case 1790: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11388 +//line mysql_sql.y:11396 { yyLOCAL = tree.NewAttributeUnique() } yyVAL.union = yyLOCAL - case 1790: + case 1791: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11392 +//line mysql_sql.y:11400 { yyLOCAL = tree.NewAttributeKey() } yyVAL.union = yyLOCAL - case 1791: + case 1792: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11398 +//line mysql_sql.y:11406 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25226,35 +25237,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1792: + case 1793: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11411 +//line mysql_sql.y:11419 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1793: + case 1794: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11416 +//line mysql_sql.y:11424 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1794: + case 1795: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11422 +//line mysql_sql.y:11430 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1795: + case 1796: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11426 +//line mysql_sql.y:11434 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25268,51 +25279,51 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1796: + case 1797: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11439 +//line mysql_sql.y:11447 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1797: + case 1798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11444 +//line mysql_sql.y:11452 { yyLOCAL = tree.NewNumVal(true, "true", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1798: + case 1799: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11448 +//line mysql_sql.y:11456 { yyLOCAL = tree.NewNumVal(false, "false", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1799: + case 1800: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11452 +//line mysql_sql.y:11460 { yyLOCAL = tree.NewNumVal("null", "null", false, tree.P_null) } yyVAL.union = yyLOCAL - case 1800: + case 1801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11456 +//line mysql_sql.y:11464 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_hexnum) } yyVAL.union = yyLOCAL - case 1801: + case 1802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11460 +//line mysql_sql.y:11468 { if strings.HasPrefix(yyDollar[2].str, "0x") { yyDollar[2].str = yyDollar[2].str[2:] @@ -25320,69 +25331,69 @@ yydefault: yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1802: + case 1803: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11467 +//line mysql_sql.y:11475 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1803: + case 1804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11471 +//line mysql_sql.y:11479 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1804: + case 1805: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11475 +//line mysql_sql.y:11483 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1805: + case 1806: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11479 +//line mysql_sql.y:11487 { yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_ScoreBinary) } yyVAL.union = yyLOCAL - case 1806: + case 1807: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11486 +//line mysql_sql.y:11494 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.Unsigned = yyDollar[2].unsignedOptUnion() yyLOCAL.InternalType.Zerofill = yyDollar[3].zeroFillOptUnion() } yyVAL.union = yyLOCAL - case 1810: + case 1811: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11497 +//line mysql_sql.y:11505 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.DisplayWith = yyDollar[2].lengthOptUnion() } yyVAL.union = yyLOCAL - case 1811: + case 1812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11502 +//line mysql_sql.y:11510 { yyLOCAL = yyDollar[1].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1812: + case 1813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11508 +//line mysql_sql.y:11516 { locale := "" yyLOCAL = &tree.T{ @@ -25395,10 +25406,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1813: + case 1814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11520 +//line mysql_sql.y:11528 { locale := "" yyLOCAL = &tree.T{ @@ -25411,10 +25422,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1814: + case 1815: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11532 +//line mysql_sql.y:11540 { locale := "" yyLOCAL = &tree.T{ @@ -25427,10 +25438,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1815: + case 1816: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11544 +//line mysql_sql.y:11552 { locale := "" yyLOCAL = &tree.T{ @@ -25444,10 +25455,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1816: + case 1817: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11557 +//line mysql_sql.y:11565 { locale := "" yyLOCAL = &tree.T{ @@ -25461,10 +25472,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1817: + case 1818: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11570 +//line mysql_sql.y:11578 { locale := "" yyLOCAL = &tree.T{ @@ -25478,10 +25489,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1818: + case 1819: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11583 +//line mysql_sql.y:11591 { locale := "" yyLOCAL = &tree.T{ @@ -25495,10 +25506,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1819: + case 1820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11596 +//line mysql_sql.y:11604 { locale := "" yyLOCAL = &tree.T{ @@ -25512,10 +25523,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1820: + case 1821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11609 +//line mysql_sql.y:11617 { locale := "" yyLOCAL = &tree.T{ @@ -25529,10 +25540,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1821: + case 1822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11622 +//line mysql_sql.y:11630 { locale := "" yyLOCAL = &tree.T{ @@ -25546,10 +25557,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1822: + case 1823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11635 +//line mysql_sql.y:11643 { locale := "" yyLOCAL = &tree.T{ @@ -25563,10 +25574,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1823: + case 1824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11648 +//line mysql_sql.y:11656 { locale := "" yyLOCAL = &tree.T{ @@ -25580,10 +25591,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1824: + case 1825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11661 +//line mysql_sql.y:11669 { locale := "" yyLOCAL = &tree.T{ @@ -25597,10 +25608,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1825: + case 1826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11674 +//line mysql_sql.y:11682 { locale := "" yyLOCAL = &tree.T{ @@ -25614,10 +25625,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1826: + case 1827: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11689 +//line mysql_sql.y:11697 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25645,10 +25656,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1827: + case 1828: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11716 +//line mysql_sql.y:11724 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25690,10 +25701,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1828: + case 1829: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11758 +//line mysql_sql.y:11766 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25730,10 +25741,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1829: + case 1830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11794 +//line mysql_sql.y:11802 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25770,10 +25781,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1830: + case 1831: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11830 +//line mysql_sql.y:11838 { locale := "" yyLOCAL = &tree.T{ @@ -25789,10 +25800,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1831: + case 1832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11847 +//line mysql_sql.y:11855 { locale := "" yyLOCAL = &tree.T{ @@ -25805,10 +25816,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1832: + case 1833: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11859 +//line mysql_sql.y:11867 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25829,10 +25840,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1833: + case 1834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11879 +//line mysql_sql.y:11887 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25853,10 +25864,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1834: + case 1835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11899 +//line mysql_sql.y:11907 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25877,10 +25888,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1835: + case 1836: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11919 +//line mysql_sql.y:11927 { locale := "" yyLOCAL = &tree.T{ @@ -25895,10 +25906,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1836: + case 1837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11935 +//line mysql_sql.y:11943 { locale := "" yyLOCAL = &tree.T{ @@ -25912,10 +25923,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1837: + case 1838: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11948 +//line mysql_sql.y:11956 { locale := "" yyLOCAL = &tree.T{ @@ -25929,10 +25940,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1838: + case 1839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11961 +//line mysql_sql.y:11969 { locale := "" yyLOCAL = &tree.T{ @@ -25946,10 +25957,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1839: + case 1840: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11974 +//line mysql_sql.y:11982 { locale := "" yyLOCAL = &tree.T{ @@ -25963,10 +25974,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1840: + case 1841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11987 +//line mysql_sql.y:11995 { locale := "" yyLOCAL = &tree.T{ @@ -25979,10 +25990,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1841: + case 1842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11999 +//line mysql_sql.y:12007 { locale := "" yyLOCAL = &tree.T{ @@ -25995,10 +26006,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1842: + case 1843: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12011 +//line mysql_sql.y:12019 { locale := "" yyLOCAL = &tree.T{ @@ -26011,10 +26022,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1843: + case 1844: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12023 +//line mysql_sql.y:12031 { locale := "" yyLOCAL = &tree.T{ @@ -26027,10 +26038,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1844: + case 1845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12035 +//line mysql_sql.y:12043 { locale := "" yyLOCAL = &tree.T{ @@ -26043,10 +26054,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1845: + case 1846: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12047 +//line mysql_sql.y:12055 { locale := "" yyLOCAL = &tree.T{ @@ -26059,10 +26070,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1846: + case 1847: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12059 +//line mysql_sql.y:12067 { locale := "" yyLOCAL = &tree.T{ @@ -26075,10 +26086,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1847: + case 1848: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12071 +//line mysql_sql.y:12079 { locale := "" yyLOCAL = &tree.T{ @@ -26091,10 +26102,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1848: + case 1849: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12083 +//line mysql_sql.y:12091 { locale := "" yyLOCAL = &tree.T{ @@ -26107,10 +26118,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1849: + case 1850: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12095 +//line mysql_sql.y:12103 { locale := "" yyLOCAL = &tree.T{ @@ -26123,10 +26134,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1850: + case 1851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12107 +//line mysql_sql.y:12115 { locale := "" yyLOCAL = &tree.T{ @@ -26140,10 +26151,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1851: + case 1852: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12120 +//line mysql_sql.y:12128 { locale := "" yyLOCAL = &tree.T{ @@ -26157,10 +26168,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1852: + case 1853: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12133 +//line mysql_sql.y:12141 { locale := "" yyLOCAL = &tree.T{ @@ -26174,10 +26185,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1853: + case 1854: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12146 +//line mysql_sql.y:12154 { locale := "" yyLOCAL = &tree.T{ @@ -26191,10 +26202,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1854: + case 1855: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12159 +//line mysql_sql.y:12167 { locale := "" yyLOCAL = &tree.T{ @@ -26208,20 +26219,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1855: + case 1856: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12174 +//line mysql_sql.y:12182 { yyLOCAL = &tree.Do{ Exprs: yyDollar[2].exprsUnion(), } } yyVAL.union = yyLOCAL - case 1856: + case 1857: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12182 +//line mysql_sql.y:12190 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26230,10 +26241,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1857: + case 1858: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12191 +//line mysql_sql.y:12199 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26242,10 +26253,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1858: + case 1859: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12201 +//line mysql_sql.y:12209 { locale := "" yyLOCAL = &tree.T{ @@ -26258,75 +26269,75 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1859: + case 1860: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12224 +//line mysql_sql.y:12232 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1860: + case 1861: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12229 +//line mysql_sql.y:12237 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1861: + case 1862: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12235 +//line mysql_sql.y:12243 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1863: + case 1864: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12242 +//line mysql_sql.y:12250 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1864: + case 1865: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12246 +//line mysql_sql.y:12254 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1865: + case 1866: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12251 +//line mysql_sql.y:12259 { yyLOCAL = int32(-1) } yyVAL.union = yyLOCAL - case 1866: + case 1867: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12255 +//line mysql_sql.y:12263 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1867: + case 1868: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12261 +//line mysql_sql.y:12269 { yyLOCAL = tree.GetDisplayWith(int32(yyDollar[2].item.(int64))) } yyVAL.union = yyLOCAL - case 1868: + case 1869: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12267 +//line mysql_sql.y:12275 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.NotDefineDisplayWidth, @@ -26334,10 +26345,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1869: + case 1870: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12274 +//line mysql_sql.y:12282 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26345,10 +26356,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1870: + case 1871: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12281 +//line mysql_sql.y:12289 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26356,10 +26367,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1871: + case 1872: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12290 +//line mysql_sql.y:12298 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: 38, // this is the default precision for decimal @@ -26367,10 +26378,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1872: + case 1873: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12297 +//line mysql_sql.y:12305 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26378,10 +26389,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1873: + case 1874: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12304 +//line mysql_sql.y:12312 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26389,52 +26400,52 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1874: + case 1875: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12313 +//line mysql_sql.y:12321 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1875: + case 1876: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12317 +//line mysql_sql.y:12325 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1876: + case 1877: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12321 +//line mysql_sql.y:12329 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1877: + case 1878: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12327 +//line mysql_sql.y:12335 { } - case 1878: + case 1879: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12329 +//line mysql_sql.y:12337 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1882: + case 1883: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12339 +//line mysql_sql.y:12347 { yyVAL.str = "" } - case 1883: + case 1884: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:12343 +//line mysql_sql.y:12351 { yyVAL.str = string(yyDollar[1].str) } diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.y b/pkg/sql/parsers/dialect/mysql/mysql_sql.y index 79ed5d3610dd9..a647fd0c230ef 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.y +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.y @@ -363,7 +363,7 @@ import ( // Secondary Index %token PARSER VISIBLE INVISIBLE BTREE HASH RTREE BSI IVFFLAT MASTER HNSW -%token ZONEMAP LEADING BOTH TRAILING UNKNOWN LISTS OP_TYPE REINDEX EF_SEARCH EF_CONSTRUCTION M QUANTIZATION +%token ZONEMAP LEADING BOTH TRAILING UNKNOWN LISTS OP_TYPE REINDEX EF_SEARCH EF_CONSTRUCTION M QUANTIZATION ASYNC // Alter @@ -7539,6 +7539,8 @@ index_option_list: opt1.HnswQuantization = opt2.HnswQuantization } else if opt2.HnswEfSearch > 0 { opt1.HnswEfSearch = opt2.HnswEfSearch + } else if opt2.Async { + opt1.Async = opt2.Async } $$ = opt1 } @@ -7632,6 +7634,12 @@ index_option: io.HnswQuantization = $3 $$ = io } +| ASYNC + { + io := tree.NewIndexOption() + io.Async = true + $$ = io + } index_column_list: @@ -12546,6 +12554,7 @@ non_reserved_keyword: | ATTRIBUTE | ACTION | ALGORITHM +| ASYNC | BEGIN | BIGINT | BIT diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go index 3ef99b4364390..a3a0fc7cad77e 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go @@ -811,7 +811,8 @@ var ( }, { input: "create table t (a int, b char, index if not exists idx (a, b))", }, { - input: "create table t (a int, b char, fulltext idx (a, b))", + input: "create table t (a int, b char, fulltext idx (a, b) async)", + output: "create table t (a int, b char, fulltext idx (a, b) ASYNC )", }, { input: "create table t (a int, b char, constraint p1 primary key idx using hash (a, b))", output: "create table t (a int, b char, constraint p1 primary key idx using none (a, b))", @@ -1511,6 +1512,9 @@ var ( }, { input: "create index idx using ivfflat on A (a) LISTS 10 op_type 'vector_l2_ops'", output: "create index idx using ivfflat on a (a) LISTS 10 OP_TYPE vector_l2_ops ", + }, { + input: "create index idx using ivfflat on A (a) LISTS 10 op_type 'vector_l2_ops' async", + output: "create index idx using ivfflat on a (a) LISTS 10 OP_TYPE vector_l2_ops ASYNC ", }, { input: "create index idx1 on a (a)", }, { @@ -3209,6 +3213,10 @@ var ( input: "create index idx using hnsw on A (a) M 4 ef_construction 100 ef_search 32 QUANTIZATION 'BF16' OP_TYPE 'VECTOR_L2_OPS'", output: "create index idx using hnsw on a (a) M 4 EF_CONSTRUCTION 100 EF_SEARCH 32 QUANTIZATION BF16 OP_TYPE VECTOR_L2_OPS ", }, + { + input: "create index idx using hnsw on A (a) M 4 ef_construction 100 ef_search 32 QUANTIZATION 'BF16' OP_TYPE 'VECTOR_L2_OPS' ASYNC", + output: "create index idx using hnsw on a (a) M 4 EF_CONSTRUCTION 100 EF_SEARCH 32 QUANTIZATION BF16 OP_TYPE VECTOR_L2_OPS ASYNC ", + }, { input: "CREATE TABLE `vector_index_01` ( `a` bigint NOT NULL, `b` vecf32(128) DEFAULT NULL, PRIMARY KEY (`a`), KEY `idx01` USING hnsw (`b`) m = 4 ef_search = 64 ef_construction = 100 quantization 'bf16' op_type 'vector_l2_ops' )", output: "create table vector_index_01 (a bigint not null, b vecf32(128) default null, primary key (a), index idx01 using hnsw (b) M 4 EF_CONSTRUCTION 100 EF_SEARCH 64 QUANTIZATION bf16 OP_TYPE vector_l2_ops )", diff --git a/pkg/sql/parsers/tree/create.go b/pkg/sql/parsers/tree/create.go index eb0dc13fb3364..8d1672cc11421 100644 --- a/pkg/sql/parsers/tree/create.go +++ b/pkg/sql/parsers/tree/create.go @@ -2078,6 +2078,7 @@ type IndexOption struct { HnswEfConstruction int64 HnswEfSearch int64 HnswQuantization string + Async bool } // Must follow the following sequence when test @@ -2137,6 +2138,9 @@ func (node *IndexOption) Format(ctx *FmtCtx) { if node.Visible != VISIBLE_TYPE_INVALID { ctx.WriteString(node.Visible.ToString()) } + if node.Async { + ctx.WriteString("ASYNC ") + } } func (node IndexOption) TypeName() string { return "tree.IndexOption" } diff --git a/pkg/sql/plan/build_ddl.go b/pkg/sql/plan/build_ddl.go index 620ca9e13a0a5..b7e73ddf682fc 100644 --- a/pkg/sql/plan/build_ddl.go +++ b/pkg/sql/plan/build_ddl.go @@ -1662,10 +1662,10 @@ func buildFullTextIndexTable(createTable *plan.CreateTable, indexInfos []*tree.F if indexInfo.IndexOption != nil { if indexInfo.IndexOption.ParserName != "" { indexDef.Option = &plan.IndexOption{ParserName: indexInfo.IndexOption.ParserName, NgramTokenSize: int32(3)} - indexDef.IndexAlgoParams, err = catalog.IndexParamsToJsonString(indexInfo) - if err != nil { - return err - } + } + indexDef.IndexAlgoParams, err = catalog.IndexParamsToJsonString(indexInfo) + if err != nil { + return err } if indexInfo.IndexOption.Comment != "" { indexDef.Comment = indexInfo.IndexOption.Comment diff --git a/pkg/sql/plan/build_show_util.go b/pkg/sql/plan/build_show_util.go index ff38481dabaa7..7eabd9c3b54fd 100644 --- a/pkg/sql/plan/build_show_util.go +++ b/pkg/sql/plan/build_show_util.go @@ -203,6 +203,11 @@ func ConstructCreateTableSQL(ctx CompilerContext, tableDef *plan.TableDef, snaps if ok { indexStr += " WITH PARSER " + parser } + + async, ok := paramMap[catalog.Async] + if ok && async == "true" { + indexStr += " ASYNC" + } } } else { diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index b72320725c422..0d21decf4044b 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -69,12 +69,14 @@ type HnswParam struct { Quantization string `json:"quantization"` OpType string `json:"op_type"` EfSearch string `json:"ef_search"` + Async string `json:"async"` } // IVF specified parameters type IvfParam struct { Lists string `json:"lists"` OpType string `json:"op_type"` + Async string `json:"async"` } type IvfflatIndexConfig struct { From ef894ea7796ec45decd6a472a0a1f7e420c59c5f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 25 Jun 2025 15:47:42 +0100 Subject: [PATCH 158/335] skip async with DML --- pkg/sql/plan/build_dml_util.go | 84 +++++++++++++++++++++++++++------- pkg/sql/plan/types.go | 5 +- 2 files changed, 70 insertions(+), 19 deletions(-) diff --git a/pkg/sql/plan/build_dml_util.go b/pkg/sql/plan/build_dml_util.go index 973685acd96ba..f891327c5e3f1 100644 --- a/pkg/sql/plan/build_dml_util.go +++ b/pkg/sql/plan/build_dml_util.go @@ -861,8 +861,9 @@ func buildInsertPlansWithRelatedHiddenTable( // IVF indexDefs are aggregated and handled later if _, ok := multiTableIndexes[indexdef.IndexName]; !ok { multiTableIndexes[indexdef.IndexName] = &MultiTableIndex{ - IndexAlgo: catalog.ToLower(indexdef.IndexAlgo), - IndexDefs: make(map[string]*IndexDef), + IndexAlgo: catalog.ToLower(indexdef.IndexAlgo), + IndexAlgoParams: indexdef.IndexAlgoParams, + IndexDefs: make(map[string]*IndexDef), } } multiTableIndexes[indexdef.IndexName].IndexDefs[catalog.ToLower(indexdef.IndexAlgoTableType)] = indexdef @@ -873,34 +874,26 @@ func buildInsertPlansWithRelatedHiddenTable( return err } - } - /* disable fulltext - - else if postdml_flag && indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { + } else if postdml_flag && indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { // TODO: choose either PostInsertFullTextIndex or PreInsertFullTextIndex err = buildPostInsertFullTextIndex(stmt, ctx, builder, bindCtx, objRef, tableDef, updateColLength, sourceStep, ifInsertFromUniqueColMap, indexdef, idx) if err != nil { return err } } - */ } // TODO: choose either PostInsertFullTextIndex or PreInsertFullTextIndex - /* disable fulltext if !postdml_flag && indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { err = buildPreInsertFullTextIndex(stmt, ctx, builder, bindCtx, objRef, tableDef, updateColLength, sourceStep, ifInsertFromUniqueColMap, indexdef, idx) if err != nil { return err } } - */ } - /* disable IVFFLAT buildPreInsertMultiTableIndexes(ctx, builder, bindCtx, objRef, tableDef, sourceStep, multiTableIndexes) - */ ifInsertFromUnique := false if tableDef.Pkey != nil && ifInsertFromUniqueColMap != nil { @@ -3455,6 +3448,20 @@ func IsForeignKeyChecksEnabled(ctx CompilerContext) (bool, error) { } } +func isAsync(indexAlgoParams string) (bool, error) { + if len(indexAlgoParams) > 0 { + param, err := catalog.IndexParamsStringToMap(indexAlgoParams) + if err != nil { + return false, err + } + v, ok := param[catalog.Async] + if ok { + return v == "true", nil + } + } + return false, nil +} + func buildPreInsertMultiTableIndexes(ctx CompilerContext, builder *QueryBuilder, bindCtx *BindContext, objRef *ObjectRef, tableDef *TableDef, sourceStep int32, multiTableIndexes map[string]*MultiTableIndex) error { var lastNodeId int32 @@ -3464,6 +3471,16 @@ func buildPreInsertMultiTableIndexes(ctx CompilerContext, builder *QueryBuilder, switch multiTableIndex.IndexAlgo { case catalog.MoIndexIvfFlatAlgo.ToString(): + // skip async + var async bool + async, err = isAsync(multiTableIndex.IndexAlgoParams) + if err != nil { + return err + } + if async { + continue + } + lastNodeId = appendSinkScanNode(builder, bindCtx, sourceStep) var idxRefs = make([]*ObjectRef, 3) var idxTableDefs = make([]*TableDef, 3) @@ -3537,6 +3554,15 @@ func buildDeleteMultiTableIndexes(ctx CompilerContext, builder *QueryBuilder, bi for _, multiTableIndex := range multiTableIndexes { switch multiTableIndex.IndexAlgo { case catalog.MoIndexIvfFlatAlgo.ToString(): + // skip async + var async bool + async, err = isAsync(multiTableIndex.IndexAlgoParams) + if err != nil { + return err + } + if async { + continue + } // Used by pre-insert vector index. var idxRefs = make([]*ObjectRef, 3) @@ -4197,8 +4223,9 @@ func buildDeleteIndexPlans(ctx CompilerContext, builder *QueryBuilder, bindCtx * // IVF indexDefs are aggregated and handled later if _, ok := multiTableIndexes[indexdef.IndexName]; !ok { multiTableIndexes[indexdef.IndexName] = &MultiTableIndex{ - IndexAlgo: catalog.ToLower(indexdef.IndexAlgo), - IndexDefs: make(map[string]*IndexDef), + IndexAlgo: catalog.ToLower(indexdef.IndexAlgo), + IndexAlgoParams: indexdef.IndexAlgoParams, + IndexDefs: make(map[string]*IndexDef), } } multiTableIndexes[indexdef.IndexName].IndexDefs[catalog.ToLower(indexdef.IndexAlgoTableType)] = indexdef @@ -4209,7 +4236,6 @@ func buildDeleteIndexPlans(ctx CompilerContext, builder *QueryBuilder, bindCtx * } } else if indexdef.TableExist && catalog.IsFullTextIndexAlgo(indexdef.IndexAlgo) { // TODO: choose either PostDeleteFullTextIndex or PreDeleteFullTextIndex - /* distable fulltext if postdml_flag { err = buildPostDeleteFullTextIndex(ctx, builder, bindCtx, delCtx, indexdef, idx, typMap, posMap) } else { @@ -4218,13 +4244,10 @@ func buildDeleteIndexPlans(ctx CompilerContext, builder *QueryBuilder, bindCtx * if err != nil { return err } - */ } } - /* disable ivfflat buildDeleteMultiTableIndexes(ctx, builder, bindCtx, delCtx, multiTableIndexes) - */ } return nil @@ -4258,6 +4281,15 @@ func buildDeleteIndexPlans(ctx CompilerContext, builder *QueryBuilder, bindCtx * func buildPreInsertFullTextIndex(stmt *tree.Insert, ctx CompilerContext, builder *QueryBuilder, bindCtx *BindContext, objRef *ObjectRef, tableDef *TableDef, updateColLength int, sourceStep int32, ifInsertFromUniqueColMap map[string]bool, indexdef *plan.IndexDef, idx int) error { + // skip async + async, err := isAsync(indexdef.IndexAlgoParams) + if err != nil { + return err + } + if async { + return nil + } + isUpdate := (updateColLength > 0) lastNodeId := appendSinkScanNode(builder, bindCtx, sourceStep) @@ -4656,6 +4688,15 @@ func buildDeleteRowsFullTextIndex(ctx CompilerContext, builder *QueryBuilder, bi func buildPreDeleteFullTextIndex(ctx CompilerContext, builder *QueryBuilder, bindCtx *BindContext, delCtx *dmlPlanCtx, indexdef *plan.IndexDef, idx int, typMap map[string]plan.Type, posMap map[string]int) error { + // skip async + async, err := isAsync(indexdef.IndexAlgoParams) + if err != nil { + return err + } + if async { + return nil + } + //isUpdate := delCtx.updateColLength > 0 indexObjRef, indexTableDef, err := ctx.ResolveIndexTableByRef(delCtx.objRef, indexdef.IndexTableName, nil) if err != nil { @@ -4687,6 +4728,15 @@ func buildPreDeleteFullTextIndex(ctx CompilerContext, builder *QueryBuilder, bin func buildPostDmlFullTextIndex(ctx CompilerContext, builder *QueryBuilder, bindCtx *BindContext, indexObjRef *ObjectRef, indexTableDef *TableDef, tableDef *TableDef, sourceStep int32, indexdef *plan.IndexDef, idx int, isDelete, isInsert, isDeleteWithoutFilters bool) error { + // skip async + async, err := isAsync(indexdef.IndexAlgoParams) + if err != nil { + return err + } + if async { + return nil + } + lastNodeId := appendSinkScanNode(builder, bindCtx, sourceStep) orgPkColPos, _ := getPkPos(tableDef, false) diff --git a/pkg/sql/plan/types.go b/pkg/sql/plan/types.go index 150c45d483faa..6adecde0306c3 100644 --- a/pkg/sql/plan/types.go +++ b/pkg/sql/plan/types.go @@ -475,8 +475,9 @@ type OriginTableMessageForFuzzy struct { } type MultiTableIndex struct { - IndexAlgo string - IndexDefs map[string]*plan.IndexDef + IndexAlgo string + IndexAlgoParams string + IndexDefs map[string]*plan.IndexDef } type RemapInfo struct { From 1de75a69acf8490ac08f888f096b2dc61c6f4725 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 25 Jun 2025 16:00:20 +0100 Subject: [PATCH 159/335] catalog.IsIndexAsync --- pkg/catalog/secondary_index_utils.go | 14 ++++++++++++++ pkg/sql/plan/build_dml_util.go | 24 +++++------------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/pkg/catalog/secondary_index_utils.go b/pkg/catalog/secondary_index_utils.go index 63f79e89c6bd7..7189bcc791320 100644 --- a/pkg/catalog/secondary_index_utils.go +++ b/pkg/catalog/secondary_index_utils.go @@ -304,6 +304,20 @@ func DefaultIvfIndexAlgoOptions() map[string]string { return res } +func IsIndexAsync(indexAlgoParams string) (bool, error) { + if len(indexAlgoParams) > 0 { + param, err := IndexParamsStringToMap(indexAlgoParams) + if err != nil { + return false, err + } + v, ok := param[Async] + if ok { + return v == "true", nil + } + } + return false, nil +} + //------------------------[END] IndexAlgoParams------------------------ // ------------------------[START] Aliaser------------------------ diff --git a/pkg/sql/plan/build_dml_util.go b/pkg/sql/plan/build_dml_util.go index f891327c5e3f1..24403ca286776 100644 --- a/pkg/sql/plan/build_dml_util.go +++ b/pkg/sql/plan/build_dml_util.go @@ -3448,20 +3448,6 @@ func IsForeignKeyChecksEnabled(ctx CompilerContext) (bool, error) { } } -func isAsync(indexAlgoParams string) (bool, error) { - if len(indexAlgoParams) > 0 { - param, err := catalog.IndexParamsStringToMap(indexAlgoParams) - if err != nil { - return false, err - } - v, ok := param[catalog.Async] - if ok { - return v == "true", nil - } - } - return false, nil -} - func buildPreInsertMultiTableIndexes(ctx CompilerContext, builder *QueryBuilder, bindCtx *BindContext, objRef *ObjectRef, tableDef *TableDef, sourceStep int32, multiTableIndexes map[string]*MultiTableIndex) error { var lastNodeId int32 @@ -3473,7 +3459,7 @@ func buildPreInsertMultiTableIndexes(ctx CompilerContext, builder *QueryBuilder, case catalog.MoIndexIvfFlatAlgo.ToString(): // skip async var async bool - async, err = isAsync(multiTableIndex.IndexAlgoParams) + async, err = catalog.IsIndexAsync(multiTableIndex.IndexAlgoParams) if err != nil { return err } @@ -3556,7 +3542,7 @@ func buildDeleteMultiTableIndexes(ctx CompilerContext, builder *QueryBuilder, bi case catalog.MoIndexIvfFlatAlgo.ToString(): // skip async var async bool - async, err = isAsync(multiTableIndex.IndexAlgoParams) + async, err = catalog.IsIndexAsync(multiTableIndex.IndexAlgoParams) if err != nil { return err } @@ -4282,7 +4268,7 @@ func buildPreInsertFullTextIndex(stmt *tree.Insert, ctx CompilerContext, builder updateColLength int, sourceStep int32, ifInsertFromUniqueColMap map[string]bool, indexdef *plan.IndexDef, idx int) error { // skip async - async, err := isAsync(indexdef.IndexAlgoParams) + async, err := catalog.IsIndexAsync(indexdef.IndexAlgoParams) if err != nil { return err } @@ -4689,7 +4675,7 @@ func buildPreDeleteFullTextIndex(ctx CompilerContext, builder *QueryBuilder, bin indexdef *plan.IndexDef, idx int, typMap map[string]plan.Type, posMap map[string]int) error { // skip async - async, err := isAsync(indexdef.IndexAlgoParams) + async, err := catalog.IsIndexAsync(indexdef.IndexAlgoParams) if err != nil { return err } @@ -4729,7 +4715,7 @@ func buildPostDmlFullTextIndex(ctx CompilerContext, builder *QueryBuilder, bindC sourceStep int32, indexdef *plan.IndexDef, idx int, isDelete, isInsert, isDeleteWithoutFilters bool) error { // skip async - async, err := isAsync(indexdef.IndexAlgoParams) + async, err := catalog.IsIndexAsync(indexdef.IndexAlgoParams) if err != nil { return err } From 9f83f62fd100919a0d92511743979494179687a5 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 25 Jun 2025 16:09:11 +0100 Subject: [PATCH 160/335] async --- pkg/sql/compile/ddl.go | 9 +++++++++ pkg/sql/compile/ddl_index_algo.go | 6 +++++- pkg/sql/compile/util.go | 13 +++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 20a8b515a6106..713403e94353f 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2048,6 +2048,15 @@ func (s *Scope) handleVectorIvfFlatIndex( return err } + async, err := catalog.IsIndexAsync(indexDefs[catalog.SystemSI_IVFFLAT_TblType_Metadata].IndexAlgoParams) + if err != nil { + return err + } + + // TODO: ERIC CREATE PITR AND CDC TASK HERE + if async { + + } return nil } diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index 9e2774e26facf..ccea1eff1c191 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -147,7 +147,11 @@ func (s *Scope) handleFullTextIndexTable( return err } - insertSQLs := genInsertIndexTableSqlForFullTextIndex(originalTableDef, indexDef, qryDatabase) + insertSQLs, err := genInsertIndexTableSqlForFullTextIndex(originalTableDef, indexDef, qryDatabase) + if err != nil { + return err + } + for _, insertSQL := range insertSQLs { err = c.runSql(insertSQL) if err != nil { diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index 6f9c073c60b0f..82fd4820adee8 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -464,7 +464,7 @@ func GetConstraintDefFromTableDefs(defs []engine.TableDef) *engine.ConstraintDef return cstrDef } -func genInsertIndexTableSqlForFullTextIndex(originalTableDef *plan.TableDef, indexDef *plan.IndexDef, qryDatabase string) []string { +func genInsertIndexTableSqlForFullTextIndex(originalTableDef *plan.TableDef, indexDef *plan.IndexDef, qryDatabase string) ([]string, error) { src_alias := "src" pkColName := src_alias + "." + originalTableDef.Pkey.PkeyColName params := indexDef.IndexAlgoParams @@ -485,7 +485,16 @@ func genInsertIndexTableSqlForFullTextIndex(originalTableDef *plan.TableDef, ind pkColName, concat) - return []string{sql} + async, err := catalog.IsIndexAsync(params) + if err != nil { + return nil, err + } + // TODO: ERIC create PITR and CDC TASK here + if async { + + } + + return []string{sql}, nil } func genDeleteHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDef, qryDatabase string, originalTableDef *plan.TableDef) ([]string, error) { From 4e527c4fc0a1760e14c17befa183dc496ed19e04 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 25 Jun 2025 17:10:33 +0100 Subject: [PATCH 161/335] update --- pkg/catalog/secondary_index_utils.go | 4 +--- pkg/cdc/index_sinker.go | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/catalog/secondary_index_utils.go b/pkg/catalog/secondary_index_utils.go index 7189bcc791320..a92e67be2a069 100644 --- a/pkg/catalog/secondary_index_utils.go +++ b/pkg/catalog/secondary_index_utils.go @@ -186,9 +186,7 @@ func fullTextIndexParamsToMap(def *tree.FullTextIndex) (map[string]string, error // fulltext index here if def.IndexOption != nil { parsername := strings.ToLower(def.IndexOption.ParserName) - if len(parsername) == 0 { - res["parser"] = "ngram" - } else { + if len(parsername) > 0 { if parsername != "ngram" && parsername != "default" && parsername != "json" && parsername != "json_value" { return nil, moerr.NewInternalErrorNoCtx(fmt.Sprintf("invalid parser %s", parsername)) } diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go index 90cbbaf56c31e..521018ad0757a 100644 --- a/pkg/cdc/index_sinker.go +++ b/pkg/cdc/index_sinker.go @@ -97,7 +97,6 @@ var NewIndexSyncSinker = func( for _, idx := range tableDef.Indexes { if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - //if idx.TableExist && catalog.IsHnswIndexAlgo(idx.IndexAlgo) { key := idx.IndexName sidx, ok := indexmap[key] if ok { @@ -117,6 +116,7 @@ var NewIndexSyncSinker = func( return nil, err } sqlwriters = append(sqlwriters, sqlwriter) + os.Stderr.WriteString(fmt.Sprintf("sql writer %T\n", sqlwriter)) } s := &indexSyncSinker{ From 99ce5a6496910e8753b615a8d7e44eb3591aebeb Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 25 Jun 2025 17:12:54 +0100 Subject: [PATCH 162/335] fix sca --- pkg/sql/compile/ddl.go | 3 ++- pkg/sql/compile/util.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 713403e94353f..3dffb8c4ff3e3 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -27,6 +27,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/defines" "github.com/matrixorigin/matrixone/pkg/incrservice" + "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/partitionservice" "github.com/matrixorigin/matrixone/pkg/pb/api" "github.com/matrixorigin/matrixone/pkg/pb/lock" @@ -2055,7 +2056,7 @@ func (s *Scope) handleVectorIvfFlatIndex( // TODO: ERIC CREATE PITR AND CDC TASK HERE if async { - + logutil.Infof("Ivfflat index Async is true") } return nil diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index 82fd4820adee8..33546aa97c145 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -24,6 +24,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vm/engine" @@ -491,7 +492,7 @@ func genInsertIndexTableSqlForFullTextIndex(originalTableDef *plan.TableDef, ind } // TODO: ERIC create PITR and CDC TASK here if async { - + logutil.Infof("fulltext index Async is true") } return []string{sql}, nil From 72231a7fd3648ef338ed1989ec3e282a01c1677b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 10:53:42 +0100 Subject: [PATCH 163/335] add cdc util --- pkg/sql/compile/cdc_util.go | 117 ++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 pkg/sql/compile/cdc_util.go diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go new file mode 100644 index 0000000000000..63a0693b4d206 --- /dev/null +++ b/pkg/sql/compile/cdc_util.go @@ -0,0 +1,117 @@ +// Copyright 2023 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package compile + +import ( + "fmt" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/pb/plan" +) + +/* CDC APIs */ +type SinkerInfo struct { + SinkerType int8 + DBName string + TableName string + IndexName string +} + +func CreateTask(c *Compile, pitr_id int, sinkerinfo SinkerInfo) (bool, error) { + logutil.Infof("Create Index Task %v", sinkerinfo) + return true, nil +} + +func DeleteTask(c *Compile, sinkerinfo SinkerInfo) (bool, error) { + logutil.Infof("Delete Index Task %v", sinkerinfo) + return true, nil +} + +func getIndexPitrName(dbname string, tablename string) string { + return fmt.Sprintf("__mo_idxpitr_%s_%s", dbname, tablename) +} + +func CreateIndexPitr(c *Compile, dbname string, tablename string) (int, error) { + pitr_name := getIndexPitrName(dbname, tablename) + pitr_id := 0 + logutil.Infof("Create Index Pitr %s", pitr_name) + return pitr_id, nil +} + +func DeleteIndexPitr(c *Compile, dbname string, tablename string) error { + pitr_name := getIndexPitrName(dbname, tablename) + // remove pitr + logutil.Infof("Delete Index Pitr %s", pitr_name) + + return nil +} + +func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string) error { + var err error + // create table pitr if not exists and return pitr_id + pitr_id, err := CreateIndexPitr(c, dbname, tablename) + if err != nil { + return err + } + + // create index cdc task + ok, err := CreateTask(c, pitr_id, SinkerInfo{SinkerType: 0, DBName: dbname, TableName: tablename, IndexName: indexname}) + if err != nil { + return err + } + + if !ok { + // cdc task already exist + return moerr.NewInternalError(c.proc.Ctx, fmt.Sprintf("index cdc task (%s, %s, %s) already exists", dbname, tablename, indexname)) + } + return nil +} + +func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string) error { + var err error + + // delete index cdc task + _, err = DeleteTask(c, SinkerInfo{SinkerType: 0, DBName: dbname, TableName: tablename, IndexName: indexname}) + if err != nil { + return err + } + + // remove pitr if no index uses the pitr + nindex := 0 + for _, idx := range tableDef.Indexes { + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + + if idx.IndexName != indexname { + nindex++ + } + } + + } + + if nindex == 0 { + // remove pitr + err = DeleteIndexPitr(c, dbname, tablename) + if err != nil { + return err + } + } + + return nil +} From 7f7e096cad28b98a3669ba66c999c8f174a6dc69 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 11:36:55 +0100 Subject: [PATCH 164/335] create/delete cdc task --- pkg/sql/compile/cdc_util.go | 15 ++++++----- pkg/sql/compile/ddl.go | 38 ++++++++++++++++++++++----- pkg/sql/compile/ddl_index_algo.go | 26 +++++++++++++------ pkg/sql/compile/util.go | 43 +++++++------------------------ 4 files changed, 67 insertions(+), 55 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 63a0693b4d206..731bf381b5390 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -33,6 +33,8 @@ type SinkerInfo struct { func CreateTask(c *Compile, pitr_id int, sinkerinfo SinkerInfo) (bool, error) { logutil.Infof("Create Index Task %v", sinkerinfo) + //dummyurl := "mysql://root:111@127.0.0.1:6001" + // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) return true, nil } @@ -48,19 +50,20 @@ func getIndexPitrName(dbname string, tablename string) string { func CreateIndexPitr(c *Compile, dbname string, tablename string) (int, error) { pitr_name := getIndexPitrName(dbname, tablename) pitr_id := 0 - logutil.Infof("Create Index Pitr %s", pitr_name) + sql := fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitr_name, dbname, tablename) + logutil.Infof("Create Index Pitr %s:", pitr_name, sql) return pitr_id, nil } func DeleteIndexPitr(c *Compile, dbname string, tablename string) error { pitr_name := getIndexPitrName(dbname, tablename) // remove pitr - logutil.Infof("Delete Index Pitr %s", pitr_name) - + sql := fmt.Sprintf("DROP PITR IF EXISTS `%s`;", pitr_name) + logutil.Infof("Delete Index Pitr %s: %s", pitr_name, sql) return nil } -func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string) error { +func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string, sinker_type int8) error { var err error // create table pitr if not exists and return pitr_id pitr_id, err := CreateIndexPitr(c, dbname, tablename) @@ -69,7 +72,7 @@ func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tabl } // create index cdc task - ok, err := CreateTask(c, pitr_id, SinkerInfo{SinkerType: 0, DBName: dbname, TableName: tablename, IndexName: indexname}) + ok, err := CreateTask(c, pitr_id, SinkerInfo{SinkerType: sinker_type, DBName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } @@ -85,7 +88,7 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen var err error // delete index cdc task - _, err = DeleteTask(c, SinkerInfo{SinkerType: 0, DBName: dbname, TableName: tablename, IndexName: indexname}) + _, err = DeleteTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index bbf5ef468f217..7bae3420e7b30 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2060,9 +2060,15 @@ func (s *Scope) handleVectorIvfFlatIndex( return err } - // TODO: ERIC CREATE PITR AND CDC TASK HERE + // TODO: HNSWCDC CREATE PITR AND CDC TASK HERE if async { logutil.Infof("Ivfflat index Async is true") + sinker_type := int8(0) + err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, + indexDefs[catalog.SystemSI_IVFFLAT_TblType_Metadata].IndexTableName, sinker_type) + if err != nil { + return err + } } return nil @@ -2126,10 +2132,11 @@ func (s *Scope) DropIndex(c *Compile) error { } // TODO: HNSWCDC delete cdc table task for vector, fulltext index - // cdc task name = __mo_cdc_{qry.Database}_{qry.Table} - // pitr name = __mo_table_pitr_{qry.Database}_{qry.Table} - // DROP PITR IF EXISTS `__mo_table_pitr_${qry.Database}_${srctable}` - // DROP CDC TASK __mo_cdc_${qry.Database}_${srctable} + tableDef := r.GetTableDef(c.proc.Ctx) + err = DropIndexCdcTask(c, tableDef, qry.Database, qry.Table, qry.IndexName) + if err != nil { + return err + } return nil } @@ -2680,6 +2687,25 @@ func (s *Scope) DropTable(c *Compile) error { } } + // TODO: HSNWCDC delete cdc task of the vector and fulltext index here + idxmap := make(map[string]bool) + for _, idx := range qry.GetTableDef().Indexes { + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + + _, ok := idxmap[idx.IndexName] + if !ok { + idxmap[idx.IndexName] = true + err = DropIndexCdcTask(c, qry.GetTableDef(), qry.Database, qry.Table, idx.IndexName) + if err != nil { + return err + } + } + } + } + // delete all index objects record of the table in mo_catalog.mo_indexes if !qry.IsView && qry.Database != catalog.MO_CATALOG && qry.Table != catalog.MO_INDEXES { if qry.GetTableDef().Pkey != nil || len(qry.GetTableDef().Indexes) > 0 { @@ -2691,8 +2717,6 @@ func (s *Scope) DropTable(c *Compile) error { } } - // TODO: HSNWCDC delete cdc task of the vector and fulltext index here - if isTemp { if err := dbSource.Delete(c.proc.Ctx, engine.GetTempTableName(dbName, tblName)); err != nil { return err diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index ccea1eff1c191..4ce5d25452a87 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -22,6 +22,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/api" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/util/executor" @@ -158,6 +159,22 @@ func (s *Scope) handleFullTextIndexTable( return err } } + + async, err := catalog.IsIndexAsync(indexDef.IndexAlgoParams) + if err != nil { + return err + } + // TODO: HNSWCDC create PITR and CDC TASK here + if async { + logutil.Infof("fulltext index Async is true") + sinker_type := int8(0) + err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, + indexDef.IndexTableName, sinker_type) + if err != nil { + return err + } + } + return nil } @@ -561,17 +578,10 @@ func (s *Scope) handleVectorHnswIndex( } // TODO: HNSWCDC 4. register CDC update - sqls, err = genCdcHnswIndex(c.proc, indexDefs, qryDatabase, originalTableDef) + err = createCdcHnswIndex(c, indexDefs, qryDatabase, originalTableDef) if err != nil { return err } - for _, sql := range sqls { - err = c.runSql(sql) - if err != nil { - return err - } - } - return nil } diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index b719aa206be5c..808548b078ea8 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -24,7 +24,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" - "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vm/engine" @@ -486,15 +485,6 @@ func genInsertIndexTableSqlForFullTextIndex(originalTableDef *plan.TableDef, ind pkColName, concat) - async, err := catalog.IsIndexAsync(params) - if err != nil { - return nil, err - } - // TODO: ERIC create PITR and CDC TASK here - if async { - logutil.Infof("fulltext index Async is true") - } - return []string{sql}, nil } @@ -580,35 +570,20 @@ func genBuildHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDe // DROP CDC IF EXISTS TASK __mo_cdc_${db}_${srctable} NOTE: IF EXISTS is not valid SQL for DROP CDC // CREATE PITR IF NOT EXISTS __mo_table_pitr_${db}_${srctable} for table ${db} ${srctable) range 2 'h'; // CREATE CDC IF NOT EXISTS __mo_cdc_${db}_${srctable} 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' '${db}.${srctable}' {'Level'='table'}' -func genCdcHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDef, qryDatabase string, originalTableDef *plan.TableDef) ([]string, error) { +func createCdcHnswIndex(c *Compile, indexDefs map[string]*plan.IndexDef, qryDatabase string, originalTableDef *plan.TableDef) error { idxdef_meta, ok := indexDefs[catalog.Hnsw_TblType_Metadata] if !ok { - return nil, moerr.NewInternalErrorNoCtx("hnsw_meta index definition not found") + return moerr.NewInternalErrorNoCtx("hnsw_meta index definition not found") } srctbl := originalTableDef.Name - pitrname := fmt.Sprintf("__mo_index_pitr_%s_%s", qryDatabase, srctbl) - cdcname := fmt.Sprintf("__mo_index_cdc_%s_%s_%s", qryDatabase, srctbl, idxdef_meta.IndexName) - - var sql string + indexname := idxdef_meta.IndexName + sinker_type := int8(0) - sqls := make([]string, 0, 3) - - // CREATE PITR - sql = fmt.Sprintf("DROP PITR IF EXISTS `%s`;", pitrname) - sqls = append(sqls, sql) - - sql = fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitrname, qryDatabase, srctbl) - sqls = append(sqls, sql) - - // CREATE CDC TASK - dummyurl := "mysql://root:111@127.0.0.1:6001" - sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'hnswsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) - sqls = append(sqls, sql) - - //os.Stderr.WriteString(fmt.Sprintf("%v\n", sqls)) - // TODO: HNSWCDC remove the line below to run the above SQLs - sqls = sqls[:0] + err := CreateIndexCdcTask(c, originalTableDef, qryDatabase, srctbl, indexname, sinker_type) + if err != nil { + return err + } - return sqls, nil + return nil } From 884102ebcbe4d9887cb06b7c493967aef40b765e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 11:54:36 +0100 Subject: [PATCH 165/335] update --- pkg/sql/compile/cdc_util.go | 24 ++++++++++++++++++++++++ pkg/sql/compile/ddl.go | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 731bf381b5390..dc3bcadc99657 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -63,8 +63,27 @@ func DeleteIndexPitr(c *Compile, dbname string, tablename string) error { return nil } +func checkValidIndexCdc(tableDef *plan.TableDef, indexname string) bool { + for _, idx := range tableDef.Indexes { + if idx.IndexName == indexname { + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + return true + } + } + } + return false +} func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string, sinker_type int8) error { var err error + + if !checkValidIndexCdc(tableDef, indexname) { + // index name is not valid cdc task. ignore it + return moerr.NewInternalError(c.proc.Ctx, "CreateIndexCdcTask: index type is not valid for CDC update") + } + // create table pitr if not exists and return pitr_id pitr_id, err := CreateIndexPitr(c, dbname, tablename) if err != nil { @@ -87,6 +106,11 @@ func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tabl func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string) error { var err error + if !checkValidIndexCdc(tableDef, indexname) { + // index name is not valid cdc task. ignore it + return nil + } + // delete index cdc task _, err = DeleteTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 7bae3420e7b30..355982a48eb7f 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2687,7 +2687,7 @@ func (s *Scope) DropTable(c *Compile) error { } } - // TODO: HSNWCDC delete cdc task of the vector and fulltext index here + // TODO: HNSWCDC delete cdc task of the vector and fulltext index here idxmap := make(map[string]bool) for _, idx := range qry.GetTableDef().Indexes { if idx.TableExist && From 82b76f8bc04d8389259ef2d625e419596e54e643 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 11:57:45 +0100 Subject: [PATCH 166/335] update --- pkg/sql/compile/ddl.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 355982a48eb7f..2a069723a7f3b 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2060,7 +2060,7 @@ func (s *Scope) handleVectorIvfFlatIndex( return err } - // TODO: HNSWCDC CREATE PITR AND CDC TASK HERE + // HNSWCDC CREATE PITR AND CDC TASK HERE if async { logutil.Infof("Ivfflat index Async is true") sinker_type := int8(0) @@ -2124,16 +2124,16 @@ func (s *Scope) DropIndex(c *Compile) error { } - //3. delete index object from mo_catalog.mo_indexes - deleteSql := fmt.Sprintf(deleteMoIndexesWithTableIdAndIndexNameFormat, r.GetTableID(c.proc.Ctx), qry.IndexName) - err = c.runSql(deleteSql) + //3. HNSWCDC delete cdc table task for vector, fulltext index + tableDef := r.GetTableDef(c.proc.Ctx) + err = DropIndexCdcTask(c, tableDef, qry.Database, qry.Table, qry.IndexName) if err != nil { return err } - // TODO: HNSWCDC delete cdc table task for vector, fulltext index - tableDef := r.GetTableDef(c.proc.Ctx) - err = DropIndexCdcTask(c, tableDef, qry.Database, qry.Table, qry.IndexName) + //4. delete index object from mo_catalog.mo_indexes + deleteSql := fmt.Sprintf(deleteMoIndexesWithTableIdAndIndexNameFormat, r.GetTableID(c.proc.Ctx), qry.IndexName) + err = c.runSql(deleteSql) if err != nil { return err } @@ -2687,7 +2687,7 @@ func (s *Scope) DropTable(c *Compile) error { } } - // TODO: HNSWCDC delete cdc task of the vector and fulltext index here + // HNSWCDC delete cdc task of the vector and fulltext index here idxmap := make(map[string]bool) for _, idx := range qry.GetTableDef().Indexes { if idx.TableExist && From 959b5270c84031ff03c49153723d7a5099d507e0 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 12:05:30 +0100 Subject: [PATCH 167/335] update --- pkg/sql/compile/ddl_index_algo.go | 3 ++- pkg/sql/compile/util.go | 26 -------------------------- 2 files changed, 2 insertions(+), 27 deletions(-) diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index 4ce5d25452a87..6a5b506b6125c 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -578,7 +578,8 @@ func (s *Scope) handleVectorHnswIndex( } // TODO: HNSWCDC 4. register CDC update - err = createCdcHnswIndex(c, indexDefs, qryDatabase, originalTableDef) + sinker_type := int8(0) + err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, indexDefs[catalog.Hnsw_TblType_Metadata].IndexName, sinker_type) if err != nil { return err } diff --git a/pkg/sql/compile/util.go b/pkg/sql/compile/util.go index 808548b078ea8..7189b5760898f 100644 --- a/pkg/sql/compile/util.go +++ b/pkg/sql/compile/util.go @@ -561,29 +561,3 @@ func genBuildHnswIndex(proc *process.Process, indexDefs map[string]*plan.IndexDe return []string{sql}, nil } - -// TODO: HNSWCDC 4. register CDC update -// CDC Task is 'Table' level. Existing CDC task may be serving other indexes and we shall drop and create CDC task so that TableDef.Indexes is up-to-date. -// If not, new index may not be updated because the old IndexSinker has to old TableDef.Indexes in memory. -// -// DROP PITR IF EXISTS `__mo_table_pitr_${db}_${srctable}` -// DROP CDC IF EXISTS TASK __mo_cdc_${db}_${srctable} NOTE: IF EXISTS is not valid SQL for DROP CDC -// CREATE PITR IF NOT EXISTS __mo_table_pitr_${db}_${srctable} for table ${db} ${srctable) range 2 'h'; -// CREATE CDC IF NOT EXISTS __mo_cdc_${db}_${srctable} 'mysql://root:111@127.0.0.1:6001' 'hnswsync' 'mysql://root:111@127.0.0.1:6001' '${db}.${srctable}' {'Level'='table'}' -func createCdcHnswIndex(c *Compile, indexDefs map[string]*plan.IndexDef, qryDatabase string, originalTableDef *plan.TableDef) error { - - idxdef_meta, ok := indexDefs[catalog.Hnsw_TblType_Metadata] - if !ok { - return moerr.NewInternalErrorNoCtx("hnsw_meta index definition not found") - } - srctbl := originalTableDef.Name - indexname := idxdef_meta.IndexName - sinker_type := int8(0) - - err := CreateIndexCdcTask(c, originalTableDef, qryDatabase, srctbl, indexname, sinker_type) - if err != nil { - return err - } - - return nil -} From c16cf90b999989ab9eda13f9504248458a382d7c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 13:02:34 +0100 Subject: [PATCH 168/335] truncate table --- pkg/sql/compile/ddl.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 2a069723a7f3b..7e3015d7de401 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2408,6 +2408,8 @@ func (s *Scope) TruncateTable(c *Compile) error { return err } + // TODO: HNSWCDC drop CDC task with old table Id before truncate index table + // Truncate Index Tables if needed for _, name := range tqry.IndexTableNames { var err error @@ -2519,6 +2521,8 @@ func (s *Scope) TruncateTable(c *Compile) error { return err } + // TODO: HNSWCDC create CDC task with new table Id + c.addAffectedRows(uint64(affectedRows)) return nil } From b423bcc630e71d3980286d62692bba01bf5fe926 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 13:52:13 +0100 Subject: [PATCH 169/335] truncate table --- pkg/sql/compile/ddl.go | 43 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 7e3015d7de401..cbed67c3879d9 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2396,6 +2396,27 @@ func (s *Scope) TruncateTable(c *Compile) error { } } + // TODO: HNSWCDC drop CDC task with old table Id before truncate index table + if !isTemp { + tabledef := rel.GetTableDef(c.proc.Ctx) + idxmap := make(map[string]bool) + for _, idx := range tabledef.Indexes { + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + _, ok := idxmap[idx.IndexName] + if !ok { + idxmap[idx.IndexName] = true + e := DropIndexCdcTask(c, tabledef, dbName, tblName, idx.IndexName) + if e != nil { + return e + } + } + } + } + } + if isTemp { // memoryengine truncate always return 0, so for temporary table, just use origin tableId as newId _, err = dbSource.Truncate(c.proc.Ctx, engine.GetTempTableName(dbName, tblName)) @@ -2408,8 +2429,6 @@ func (s *Scope) TruncateTable(c *Compile) error { return err } - // TODO: HNSWCDC drop CDC task with old table Id before truncate index table - // Truncate Index Tables if needed for _, name := range tqry.IndexTableNames { var err error @@ -2522,6 +2541,26 @@ func (s *Scope) TruncateTable(c *Compile) error { } // TODO: HNSWCDC create CDC task with new table Id + if !isTemp { + tabledef := rel.GetTableDef(c.proc.Ctx) + idxmap := make(map[string]bool) + for _, idx := range tabledef.Indexes { + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + _, ok := idxmap[idx.IndexName] + if !ok { + idxmap[idx.IndexName] = true + sinker_type := int8(0) + e := CreateIndexCdcTask(c, tabledef, dbName, tblName, idx.IndexName, sinker_type) + if e != nil { + return e + } + } + } + } + } c.addAffectedRows(uint64(affectedRows)) return nil From 20fb6e5341e98dae134398da2f24aa687c962c48 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 14:02:51 +0100 Subject: [PATCH 170/335] update --- pkg/sql/compile/cdc_util.go | 30 ++++++++++++++++++++++++++---- pkg/sql/compile/ddl.go | 18 +++--------------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index dc3bcadc99657..05ba4e81a67cf 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -31,14 +31,14 @@ type SinkerInfo struct { IndexName string } -func CreateTask(c *Compile, pitr_id int, sinkerinfo SinkerInfo) (bool, error) { +func CreateCdcTask(c *Compile, pitr_id int, sinkerinfo SinkerInfo) (bool, error) { logutil.Infof("Create Index Task %v", sinkerinfo) //dummyurl := "mysql://root:111@127.0.0.1:6001" // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) return true, nil } -func DeleteTask(c *Compile, sinkerinfo SinkerInfo) (bool, error) { +func DeleteCdcTask(c *Compile, sinkerinfo SinkerInfo) (bool, error) { logutil.Infof("Delete Index Task %v", sinkerinfo) return true, nil } @@ -91,7 +91,7 @@ func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tabl } // create index cdc task - ok, err := CreateTask(c, pitr_id, SinkerInfo{SinkerType: sinker_type, DBName: dbname, TableName: tablename, IndexName: indexname}) + ok, err := CreateCdcTask(c, pitr_id, SinkerInfo{SinkerType: sinker_type, DBName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } @@ -112,7 +112,7 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen } // delete index cdc task - _, err = DeleteTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: indexname}) + _, err = DeleteCdcTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } @@ -142,3 +142,25 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen return nil } + +func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { + idxmap := make(map[string]bool) + for _, idx := range tabledef.Indexes { + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + _, ok := idxmap[idx.IndexName] + if !ok { + idxmap[idx.IndexName] = true + _, e := DeleteCdcTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: idx.IndexName}) + if e != nil { + return e + } + } + } + } + + // remove pitr + return DeleteIndexPitr(c, dbname, tablename) +} diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index cbed67c3879d9..4d64462280ddc 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2399,21 +2399,9 @@ func (s *Scope) TruncateTable(c *Compile) error { // TODO: HNSWCDC drop CDC task with old table Id before truncate index table if !isTemp { tabledef := rel.GetTableDef(c.proc.Ctx) - idxmap := make(map[string]bool) - for _, idx := range tabledef.Indexes { - if idx.TableExist && - (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || - catalog.IsIvfIndexAlgo(idx.IndexAlgo) || - catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - _, ok := idxmap[idx.IndexName] - if !ok { - idxmap[idx.IndexName] = true - e := DropIndexCdcTask(c, tabledef, dbName, tblName, idx.IndexName) - if e != nil { - return e - } - } - } + e := DropAllIndexCdcTasks(c, tabledef, dbName, tblName) + if e != nil { + return e } } From 5caab5336def7671cc3abb36499784c8b6223968 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 14:10:15 +0100 Subject: [PATCH 171/335] cleanup --- pkg/sql/compile/cdc_util.go | 31 +++++++++++++++++++++++++++++++ pkg/sql/compile/ddl.go | 19 +++---------------- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 05ba4e81a67cf..6e5781d3c7e35 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -164,3 +164,34 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta // remove pitr return DeleteIndexPitr(c, dbname, tablename) } + +func getSinkerTypeFromAlgo(algo string) int8 { + if catalog.IsHnswIndexAlgo(algo) { + return int8(0) + } else if catalog.IsIvfIndexAlgo(algo) { + return int8(0) + } else if catalog.IsFullTextIndexAlgo(algo) { + return int8(0) + } + return int8(0) +} +func CreateAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { + idxmap := make(map[string]bool) + for _, idx := range tabledef.Indexes { + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + _, ok := idxmap[idx.IndexName] + if !ok { + idxmap[idx.IndexName] = true + sinker_type := getSinkerTypeFromAlgo(idx.IndexAlgo) + e := CreateIndexCdcTask(c, tabledef, dbname, tablename, idx.IndexName, sinker_type) + if e != nil { + return e + } + } + } + } + return nil +} diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 4d64462280ddc..91fa41733b171 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2531,22 +2531,9 @@ func (s *Scope) TruncateTable(c *Compile) error { // TODO: HNSWCDC create CDC task with new table Id if !isTemp { tabledef := rel.GetTableDef(c.proc.Ctx) - idxmap := make(map[string]bool) - for _, idx := range tabledef.Indexes { - if idx.TableExist && - (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || - catalog.IsIvfIndexAlgo(idx.IndexAlgo) || - catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - _, ok := idxmap[idx.IndexName] - if !ok { - idxmap[idx.IndexName] = true - sinker_type := int8(0) - e := CreateIndexCdcTask(c, tabledef, dbName, tblName, idx.IndexName, sinker_type) - if e != nil { - return e - } - } - } + e := CreateAllIndexCdcTasks(c, tabledef, dbName, tblName) + if e != nil { + return e } } From 43e91166a6e7bb713fd0632b5111368e437f8426 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 14:18:02 +0100 Subject: [PATCH 172/335] update --- pkg/sql/compile/ddl.go | 2 +- pkg/sql/compile/ddl_index_algo.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 91fa41733b171..e8af6c9e02ffb 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2063,7 +2063,7 @@ func (s *Scope) handleVectorIvfFlatIndex( // HNSWCDC CREATE PITR AND CDC TASK HERE if async { logutil.Infof("Ivfflat index Async is true") - sinker_type := int8(0) + sinker_type := getSinkerTypeFromAlgo(catalog.MoIndexIvfFlatAlgo.ToString()) err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, indexDefs[catalog.SystemSI_IVFFLAT_TblType_Metadata].IndexTableName, sinker_type) if err != nil { diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index 6a5b506b6125c..bea5264a7abc4 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -167,7 +167,7 @@ func (s *Scope) handleFullTextIndexTable( // TODO: HNSWCDC create PITR and CDC TASK here if async { logutil.Infof("fulltext index Async is true") - sinker_type := int8(0) + sinker_type := getSinkerTypeFromAlgo(catalog.MOIndexFullTextAlgo.ToString()) err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, indexDef.IndexTableName, sinker_type) if err != nil { @@ -578,7 +578,7 @@ func (s *Scope) handleVectorHnswIndex( } // TODO: HNSWCDC 4. register CDC update - sinker_type := int8(0) + sinker_type := getSinkerTypeFromAlgo(catalog.MoIndexHnswAlgo.ToString()) err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, indexDefs[catalog.Hnsw_TblType_Metadata].IndexName, sinker_type) if err != nil { return err From a4a753d191ec13899a6587a105934df450af5438 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 14:24:09 +0100 Subject: [PATCH 173/335] update --- pkg/sql/compile/ddl.go | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index e8af6c9e02ffb..6a0e4312f80e9 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2706,22 +2706,9 @@ func (s *Scope) DropTable(c *Compile) error { } // HNSWCDC delete cdc task of the vector and fulltext index here - idxmap := make(map[string]bool) - for _, idx := range qry.GetTableDef().Indexes { - if idx.TableExist && - (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || - catalog.IsIvfIndexAlgo(idx.IndexAlgo) || - catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - - _, ok := idxmap[idx.IndexName] - if !ok { - idxmap[idx.IndexName] = true - err = DropIndexCdcTask(c, qry.GetTableDef(), qry.Database, qry.Table, idx.IndexName) - if err != nil { - return err - } - } - } + err = DropAllIndexCdcTasks(c, qry.GetTableDef(), qry.Database, qry.Table) + if err != nil { + return err } // delete all index objects record of the table in mo_catalog.mo_indexes From 42a9adc8dd399b83fc90227cd930d9cbb5cf9ab8 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 14:48:45 +0100 Subject: [PATCH 174/335] hnsw disable alter reindex --- pkg/sql/compile/ddl.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 6a0e4312f80e9..38390e2a5527e 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -754,8 +754,6 @@ func (s *Scope) AlterTableInplace(c *Compile) error { return err } - case catalog.MoIndexHnswAlgo.ToString(): - // PASS: keep option unchange for incremental update default: return moerr.NewInternalError(c.proc.Ctx, "invalid index algo type for alter reindex") } From 2ed6051b34619ec6b8440e9bc3b9143af57b54cb Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 14:57:42 +0100 Subject: [PATCH 175/335] alter reindex --- pkg/sql/compile/cdc_util.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 6e5781d3c7e35..5e10a868860b7 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -97,8 +97,9 @@ func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tabl } if !ok { - // cdc task already exist - return moerr.NewInternalError(c.proc.Ctx, fmt.Sprintf("index cdc task (%s, %s, %s) already exists", dbname, tablename, indexname)) + // cdc task already exist. ignore it. IVFFLAT alter reindex will call CreateIndexCdcTask multiple times. + logutil.Infof("index cdc task (%s, %s, %s) already exists", dbname, tablename, indexname) + return nil } return nil } From 164693ea76b11acae5c06b0a04d58677a8859ae4 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 15:58:44 +0100 Subject: [PATCH 176/335] sca --- pkg/sql/compile/cdc_util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 5e10a868860b7..694a3d497900d 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -51,7 +51,7 @@ func CreateIndexPitr(c *Compile, dbname string, tablename string) (int, error) { pitr_name := getIndexPitrName(dbname, tablename) pitr_id := 0 sql := fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitr_name, dbname, tablename) - logutil.Infof("Create Index Pitr %s:", pitr_name, sql) + logutil.Infof("Create Index Pitr %s. sql: %s:", pitr_name, sql) return pitr_id, nil } From 7757192c0425f8d5fa78d69adf4edf15d7a63f3b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 17:01:14 +0100 Subject: [PATCH 177/335] bug fix --- pkg/sql/compile/cdc_util.go | 10 ++++------ pkg/sql/compile/ddl.go | 3 ++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 694a3d497900d..c12ec94b173df 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -18,7 +18,6 @@ import ( "fmt" "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" ) @@ -76,14 +75,11 @@ func checkValidIndexCdc(tableDef *plan.TableDef, indexname string) bool { } return false } + +// NOTE: CreateIndexCdcTask will create CDC task without any checking. Original TableDef may be empty func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string, sinker_type int8) error { var err error - if !checkValidIndexCdc(tableDef, indexname) { - // index name is not valid cdc task. ignore it - return moerr.NewInternalError(c.proc.Ctx, "CreateIndexCdcTask: index type is not valid for CDC update") - } - // create table pitr if not exists and return pitr_id pitr_id, err := CreateIndexPitr(c, dbname, tablename) if err != nil { @@ -176,6 +172,8 @@ func getSinkerTypeFromAlgo(algo string) int8 { } return int8(0) } + +// NOTE: CreateAllIndexCdcTasks will create CDC task based on existing tableDef func CreateAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { idxmap := make(map[string]bool) for _, idx := range tabledef.Indexes { diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 38390e2a5527e..57495cecce12b 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -753,7 +753,8 @@ func (s *Scope) AlterTableInplace(c *Compile) error { if err != nil { return err } - + case catalog.MoIndexHnswAlgo.ToString(): + // PASS default: return moerr.NewInternalError(c.proc.Ctx, "invalid index algo type for alter reindex") } From 38775df56f6b090d6115c9ba3e21104fd2e091cb Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 27 Jun 2025 17:19:39 +0100 Subject: [PATCH 178/335] bug fix --- pkg/sql/compile/ddl.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 57495cecce12b..9151ab203e5bb 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2705,7 +2705,7 @@ func (s *Scope) DropTable(c *Compile) error { } // HNSWCDC delete cdc task of the vector and fulltext index here - err = DropAllIndexCdcTasks(c, qry.GetTableDef(), qry.Database, qry.Table) + err = DropAllIndexCdcTasks(c, rel.GetTableDef(c.proc.Ctx), qry.Database, qry.Table) if err != nil { return err } From 852b8c283bd9a77e3ba1734da671a2213a255afc Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 11:23:33 +0100 Subject: [PATCH 179/335] update --- pkg/sql/compile/cdc_util.go | 43 ++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index c12ec94b173df..c4467a0b3d636 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -140,8 +140,10 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen return nil } +// drop all cdc tasks according to tableDef func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { idxmap := make(map[string]bool) + var err error for _, idx := range tabledef.Indexes { if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || @@ -150,9 +152,21 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta _, ok := idxmap[idx.IndexName] if !ok { idxmap[idx.IndexName] = true - _, e := DeleteCdcTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: idx.IndexName}) - if e != nil { - return e + async := false + if catalog.IsHnswIndexAlgo(idx.IndexAlgo) { + // HNSW always async + async = true + } else { + async, err = catalog.IsIndexAsync(idx.IndexAlgoParams) + if err != nil { + return err + } + } + if async { + _, e := DeleteCdcTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: idx.IndexName}) + if e != nil { + return e + } } } } @@ -173,9 +187,10 @@ func getSinkerTypeFromAlgo(algo string) int8 { return int8(0) } -// NOTE: CreateAllIndexCdcTasks will create CDC task based on existing tableDef +// NOTE: CreateAllIndexCdcTasks will create CDC task according to existing tableDef func CreateAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { idxmap := make(map[string]bool) + var err error for _, idx := range tabledef.Indexes { if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || @@ -184,10 +199,22 @@ func CreateAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, _, ok := idxmap[idx.IndexName] if !ok { idxmap[idx.IndexName] = true - sinker_type := getSinkerTypeFromAlgo(idx.IndexAlgo) - e := CreateIndexCdcTask(c, tabledef, dbname, tablename, idx.IndexName, sinker_type) - if e != nil { - return e + async := false + if catalog.IsHnswIndexAlgo(idx.IndexAlgo) { + // HNSW always async + async = true + } else { + async, err = catalog.IsIndexAsync(idx.IndexAlgoParams) + if err != nil { + return err + } + } + if async { + sinker_type := getSinkerTypeFromAlgo(idx.IndexAlgo) + e := CreateIndexCdcTask(c, tabledef, dbname, tablename, idx.IndexName, sinker_type) + if e != nil { + return e + } } } } From d7241aeb01b8fe76c153a48c7c6ef75134d86fbc Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 12:48:37 +0100 Subject: [PATCH 180/335] use pitr_name --- pkg/sql/compile/cdc_util.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index c4467a0b3d636..feb45c0af3f9c 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -30,7 +30,7 @@ type SinkerInfo struct { IndexName string } -func CreateCdcTask(c *Compile, pitr_id int, sinkerinfo SinkerInfo) (bool, error) { +func CreateCdcTask(c *Compile, pitr_name string, sinkerinfo SinkerInfo) (bool, error) { logutil.Infof("Create Index Task %v", sinkerinfo) //dummyurl := "mysql://root:111@127.0.0.1:6001" // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) @@ -46,12 +46,11 @@ func getIndexPitrName(dbname string, tablename string) string { return fmt.Sprintf("__mo_idxpitr_%s_%s", dbname, tablename) } -func CreateIndexPitr(c *Compile, dbname string, tablename string) (int, error) { +func CreateIndexPitr(c *Compile, dbname string, tablename string) (string, error) { pitr_name := getIndexPitrName(dbname, tablename) - pitr_id := 0 sql := fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitr_name, dbname, tablename) logutil.Infof("Create Index Pitr %s. sql: %s:", pitr_name, sql) - return pitr_id, nil + return pitr_name, nil } func DeleteIndexPitr(c *Compile, dbname string, tablename string) error { @@ -80,14 +79,14 @@ func checkValidIndexCdc(tableDef *plan.TableDef, indexname string) bool { func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string, sinker_type int8) error { var err error - // create table pitr if not exists and return pitr_id - pitr_id, err := CreateIndexPitr(c, dbname, tablename) + // create table pitr if not exists and return pitr_name + pitr_name, err := CreateIndexPitr(c, dbname, tablename) if err != nil { return err } // create index cdc task - ok, err := CreateCdcTask(c, pitr_id, SinkerInfo{SinkerType: sinker_type, DBName: dbname, TableName: tablename, IndexName: indexname}) + ok, err := CreateCdcTask(c, pitr_name, SinkerInfo{SinkerType: sinker_type, DBName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } From b6639d2f37353ad466f28210ef16bfeaf118d1a7 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 14:59:22 +0100 Subject: [PATCH 181/335] add check pitr before create --- pkg/sql/compile/cdc_util.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index feb45c0af3f9c..9ec4ece0a824e 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -47,8 +47,25 @@ func getIndexPitrName(dbname string, tablename string) string { } func CreateIndexPitr(c *Compile, dbname string, tablename string) (string, error) { + var sql string pitr_name := getIndexPitrName(dbname, tablename) - sql := fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitr_name, dbname, tablename) + + // check pitr exists before create + /* + sql = fmt.Sprintf("SHOW PITR WHERE pitr_name = '%s'", pitr_name) + res, err := c.runSqlWithResult(sql, NoAccountId) + if err != nil { + return pitr_name, err + } + defer res.Close() + + if len(res.Batches) > 0 && res.Batches[0].RowCount() > 0 { + // pitr already exists + return pitr_name, nil + } + */ + + sql = fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitr_name, dbname, tablename) logutil.Infof("Create Index Pitr %s. sql: %s:", pitr_name, sql) return pitr_name, nil } From 49a4cefadfaf4b91643a530e86d0a1ced9871220 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 15:35:39 +0100 Subject: [PATCH 182/335] update --- pkg/sql/compile/cdc_util.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 9ec4ece0a824e..16499c524a9af 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -51,8 +51,8 @@ func CreateIndexPitr(c *Compile, dbname string, tablename string) (string, error pitr_name := getIndexPitrName(dbname, tablename) // check pitr exists before create + sql = fmt.Sprintf("SHOW PITR WHERE pitr_name = '%s'", pitr_name) /* - sql = fmt.Sprintf("SHOW PITR WHERE pitr_name = '%s'", pitr_name) res, err := c.runSqlWithResult(sql, NoAccountId) if err != nil { return pitr_name, err @@ -67,6 +67,13 @@ func CreateIndexPitr(c *Compile, dbname string, tablename string) (string, error sql = fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitr_name, dbname, tablename) logutil.Infof("Create Index Pitr %s. sql: %s:", pitr_name, sql) + /* + err := c.runSql(sql) + if err != nil { + return pitr_name, err + } + */ + return pitr_name, nil } @@ -75,6 +82,13 @@ func DeleteIndexPitr(c *Compile, dbname string, tablename string) error { // remove pitr sql := fmt.Sprintf("DROP PITR IF EXISTS `%s`;", pitr_name) logutil.Infof("Delete Index Pitr %s: %s", pitr_name, sql) + /* + err := c.runSql(sql) + if err != nil { + return err + } + */ + return nil } From f09eb13062d2b24cd077fa9d472fb0a89df32f5e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 15:48:51 +0100 Subject: [PATCH 183/335] update --- pkg/sql/compile/cdc_util.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 16499c524a9af..87b7ac2a27571 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -15,11 +15,13 @@ package compile import ( + "context" "fmt" "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/txn/client" ) /* CDC APIs */ @@ -30,16 +32,27 @@ type SinkerInfo struct { IndexName string } -func CreateCdcTask(c *Compile, pitr_name string, sinkerinfo SinkerInfo) (bool, error) { - logutil.Infof("Create Index Task %v", sinkerinfo) +func RegisterJob(ctx context.Context, txn client.TxnOperator, pitr_name string, info *SinkerInfo) (bool, error) { //dummyurl := "mysql://root:111@127.0.0.1:6001" // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) return true, nil } +func DeregisterJob(ctx context.Context, txn client.TxnOperator, info *SinkerInfo) (bool, error) { + + return true, nil +} + +/* start here */ +func CreateCdcTask(c *Compile, pitr_name string, sinkerinfo SinkerInfo) (bool, error) { + logutil.Infof("Create Index Task %v", sinkerinfo) + + return RegisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), pitr_name, &sinkerinfo) +} + func DeleteCdcTask(c *Compile, sinkerinfo SinkerInfo) (bool, error) { logutil.Infof("Delete Index Task %v", sinkerinfo) - return true, nil + return DeregisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), &sinkerinfo) } func getIndexPitrName(dbname string, tablename string) string { From 22e91b3d08f5c43e3118bbe5dbcd16f21e826a93 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 15:50:59 +0100 Subject: [PATCH 184/335] update --- pkg/sql/compile/cdc_util.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 87b7ac2a27571..f081c5d282637 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -38,7 +38,7 @@ func RegisterJob(ctx context.Context, txn client.TxnOperator, pitr_name string, return true, nil } -func DeregisterJob(ctx context.Context, txn client.TxnOperator, info *SinkerInfo) (bool, error) { +func UnregisterJob(ctx context.Context, txn client.TxnOperator, info *SinkerInfo) (bool, error) { return true, nil } @@ -52,7 +52,7 @@ func CreateCdcTask(c *Compile, pitr_name string, sinkerinfo SinkerInfo) (bool, e func DeleteCdcTask(c *Compile, sinkerinfo SinkerInfo) (bool, error) { logutil.Infof("Delete Index Task %v", sinkerinfo) - return DeregisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), &sinkerinfo) + return UnregisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), &sinkerinfo) } func getIndexPitrName(dbname string, tablename string) string { From 04393a1041e7b6d308246da18635a3ea7ec13e39 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 16:21:08 +0100 Subject: [PATCH 185/335] consumer --- pkg/cdc/consumer.go | 79 ++++++++++++++++++++++++++++++++++++++++ pkg/cdc/consumer_test.go | 18 +++++++++ 2 files changed, 97 insertions(+) create mode 100644 pkg/cdc/consumer.go create mode 100644 pkg/cdc/consumer_test.go diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go new file mode 100644 index 0000000000000..7cba41424a77c --- /dev/null +++ b/pkg/cdc/consumer.go @@ -0,0 +1,79 @@ +package cdc + +import ( + "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/txn/client" +) + +type DataRetriever interface { + Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) + UpdateWatermark() error +} + +type TxnRetriever struct { + Txn *client.TxnOperator +} + +func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { + logutil.Infof("TxRetriever Next()") + return nil, nil, true, nil +} + +func (r *TxnRetriever) UpdateWatermark() error { + logutil.Infof("TxnRetriever.UpdateWatermark()") + return nil +} + +var _ DataRetriever = new(TxnRetriever) + +func NewTxnRetriever(txn *client.TxnOperator) DataRetriever { + return &TxnRetriever{Txn: txn} +} + +type Consumer interface { + Consume(DataRetriever) error + Reset() + Close() +} + +type IndexConsumer struct { +} + +var _ Consumer = new(IndexConsumer) + +func NewIndexConsumer() (Consumer, error) { + + return &IndexConsumer{}, nil +} + +func (c *IndexConsumer) Consume(r DataRetriever) error { + noMoreData := false + var insertBatch, deleteBatch *AtomicBatch + var err error + + for !noMoreData { + + insertBatch, deleteBatch, noMoreData, err = r.Next() + if err != nil { + return err + } + + if noMoreData { + return nil + } + + // update index + var _ = insertBatch + var _ = deleteBatch + + } + return nil +} + +func (c *IndexConsumer) Reset() { + logutil.Infof("IndexConsumer.Reset") +} + +func (c *IndexConsumer) Close() { + logutil.Infof("IndexConsumer.Close") +} diff --git a/pkg/cdc/consumer_test.go b/pkg/cdc/consumer_test.go new file mode 100644 index 0000000000000..b1e47d94123c4 --- /dev/null +++ b/pkg/cdc/consumer_test.go @@ -0,0 +1,18 @@ +package cdc + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestConsumer(t *testing.T) { + r := NewTxnRetriever(nil) + + consumer, err := NewIndexConsumer() + require.NoError(t, err) + err = consumer.Consume(r) + require.NoError(t, err) + consumer.Reset() + consumer.Close() +} From 340093511dd8afdc3b75a5d2d5782d96b11af127 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 16:24:22 +0100 Subject: [PATCH 186/335] license --- pkg/cdc/consumer.go | 14 ++++++++++++++ pkg/cdc/consumer_test.go | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 7cba41424a77c..79e277237bfab 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -1,3 +1,17 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package cdc import ( diff --git a/pkg/cdc/consumer_test.go b/pkg/cdc/consumer_test.go index b1e47d94123c4..be8ceec9ed88b 100644 --- a/pkg/cdc/consumer_test.go +++ b/pkg/cdc/consumer_test.go @@ -1,3 +1,17 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package cdc import ( From 11c74ff6a57a1f8f4ab877161d3b1b1bc7c21151 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 16:58:30 +0100 Subject: [PATCH 187/335] update --- pkg/cdc/consumer.go | 58 ++++++++++++++++++++++++++++++++++++++-- pkg/cdc/consumer_test.go | 11 +++++++- 2 files changed, 66 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 79e277237bfab..f2b9546393f5a 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -15,8 +15,11 @@ package cdc import ( + "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/txn/client" + "github.com/matrixorigin/matrixone/pkg/util/executor" ) type DataRetriever interface { @@ -44,6 +47,13 @@ func NewTxnRetriever(txn *client.TxnOperator) DataRetriever { return &TxnRetriever{Txn: txn} } +type ConsumerInfo struct { + ConsumerType int8 + TableName string + DbName string + IndexName string +} + type Consumer interface { Consume(DataRetriever) error Reset() @@ -51,13 +61,57 @@ type Consumer interface { } type IndexConsumer struct { + cnUUID string + info *ConsumerInfo + dbTblInfo *DbTableInfo + tableDef *plan.TableDef + sqlWriter IndexSqlWriter + exec executor.SQLExecutor + rowdata []any + rowdelete []any } var _ Consumer = new(IndexConsumer) -func NewIndexConsumer() (Consumer, error) { +func NewIndexConsumer(cnUUID string, + tableDef *plan.TableDef, + info *ConsumerInfo) (Consumer, error) { + + exec, err := sqlExecutorFactory(cnUUID) + if err != nil { + return nil, err + } + + dbTblInfo := &DbTableInfo{SinkDbName: info.DbName, SinkTblName: info.TableName} + + ie := &IndexEntry{indexes: make([]*plan.IndexDef, 0, 3)} + + for _, idx := range tableDef.Indexes { + if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + key := idx.IndexName + if key == info.IndexName { + if len(ie.algo) == 0 { + ie.algo = idx.IndexAlgo + } + ie.indexes = append(ie.indexes, idx) + } + } + + } + + sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) + + c := &IndexConsumer{cnUUID: cnUUID, + info: info, + dbTblInfo: dbTblInfo, + tableDef: tableDef, + sqlWriter: sqlwriter, + exec: exec, + rowdata: make([]any, len(tableDef.Cols)), + rowdelete: make([]any, 1), + } - return &IndexConsumer{}, nil + return c, nil } func (c *IndexConsumer) Consume(r DataRetriever) error { diff --git a/pkg/cdc/consumer_test.go b/pkg/cdc/consumer_test.go index be8ceec9ed88b..57b048db33685 100644 --- a/pkg/cdc/consumer_test.go +++ b/pkg/cdc/consumer_test.go @@ -17,13 +17,22 @@ package cdc import ( "testing" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/prashantv/gostub" "github.com/stretchr/testify/require" ) func TestConsumer(t *testing.T) { + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + r := NewTxnRetriever(nil) - consumer, err := NewIndexConsumer() + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) + cnUUID := "a-b-c-d" + info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} + + consumer, err := NewIndexConsumer(cnUUID, tblDef, info) require.NoError(t, err) err = consumer.Consume(r) require.NoError(t, err) From 7d106fbe87a80cb727f8ff2a4c11877ee94fa96e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 30 Jun 2025 17:42:48 +0100 Subject: [PATCH 188/335] update --- pkg/cdc/consumer.go | 243 ++++++++++++++++++++++++++++++++++++--- pkg/cdc/consumer_test.go | 6 +- 2 files changed, 229 insertions(+), 20 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index f2b9546393f5a..d7e353aa2291e 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -15,11 +15,17 @@ package cdc import ( + "context" + "os" + "sync" + "time" + "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/txn/client" "github.com/matrixorigin/matrixone/pkg/util/executor" + "github.com/matrixorigin/matrixone/pkg/vectorindex" ) type DataRetriever interface { @@ -55,20 +61,22 @@ type ConsumerInfo struct { } type Consumer interface { - Consume(DataRetriever) error + Consume(context.Context, DataRetriever) error Reset() Close() } type IndexConsumer struct { - cnUUID string - info *ConsumerInfo - dbTblInfo *DbTableInfo - tableDef *plan.TableDef - sqlWriter IndexSqlWriter - exec executor.SQLExecutor - rowdata []any - rowdelete []any + cnUUID string + info *ConsumerInfo + dbTblInfo *DbTableInfo + tableDef *plan.TableDef + sqlWriter IndexSqlWriter + exec executor.SQLExecutor + rowdata []any + rowdelete []any + sqlBufSendCh chan []byte + done chan bool } var _ Consumer = new(IndexConsumer) @@ -102,39 +110,98 @@ func NewIndexConsumer(cnUUID string, sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) c := &IndexConsumer{cnUUID: cnUUID, - info: info, - dbTblInfo: dbTblInfo, - tableDef: tableDef, - sqlWriter: sqlwriter, - exec: exec, - rowdata: make([]any, len(tableDef.Cols)), - rowdelete: make([]any, 1), + info: info, + dbTblInfo: dbTblInfo, + tableDef: tableDef, + sqlWriter: sqlwriter, + exec: exec, + rowdata: make([]any, len(tableDef.Cols)), + rowdelete: make([]any, 1), + sqlBufSendCh: make(chan []byte), + done: make(chan bool), } return c, nil } -func (c *IndexConsumer) Consume(r DataRetriever) error { +func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { noMoreData := false var insertBatch, deleteBatch *AtomicBatch + errch := make(chan error, 2) var err error + // create thread to poll sql + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + opts := executor.Options{} + err := c.exec.ExecTxn(newctx, + func(exec executor.TxnExecutor) error { + for { + select { + case <-ctx.Done(): + return nil + case e2 := <-errch: + return e2 + case sql, ok := <-c.sqlBufSendCh: + if !ok { + // channel closed + return nil + } + + // update SQL + res, err := exec.Exec(string(sql), opts.StatementOption()) + if err != nil { + return err + } + res.Close() + } + } + }, opts) + if err != nil { + errch <- err + return + } + + }() + + // read data for !noMoreData { insertBatch, deleteBatch, noMoreData, err = r.Next() if err != nil { + errch <- err + noMoreData = true return err } if noMoreData { + close(c.sqlBufSendCh) return nil } // update index - var _ = insertBatch - var _ = deleteBatch + + // sinkTail will save sql to the slice + err := c.sinkTail(ctx, insertBatch, deleteBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } } + + wg.Wait() + + if len(errch) > 0 { + return <-errch + } + return nil } @@ -145,3 +212,141 @@ func (c *IndexConsumer) Reset() { func (c *IndexConsumer) Close() { logutil.Infof("IndexConsumer.Close") } + +// upsertBatch and deleteBatch is sorted by ts +// for the same ts, delete first, then upsert +func (c *IndexConsumer) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) error { + var err error + + upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) + deleteIter := deleteBatch.GetRowIterator().(*atomicBatchRowIter) + defer func() { + upsertIter.Close() + deleteIter.Close() + }() + + // output sql until one iterator reach the end + upsertIterHasNext, deleteIterHasNext := upsertIter.Next(), deleteIter.Next() + for upsertIterHasNext && deleteIterHasNext { + upsertItem, deleteItem := upsertIter.Item(), deleteIter.Item() + // compare ts, ignore pk + if upsertItem.Ts.LT(&deleteItem.Ts) { + if err = c.sinkUpsert(ctx, upsertIter); err != nil { + return err + } + // get next item + upsertIterHasNext = upsertIter.Next() + } else { + if err = c.sinkDelete(ctx, deleteIter); err != nil { + return err + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + } + + // output the rest of upsert iterator + for upsertIterHasNext { + if err = c.sinkUpsert(ctx, upsertIter); err != nil { + return err + } + // get next item + upsertIterHasNext = upsertIter.Next() + } + + // output the rest of delete iterator + for deleteIterHasNext { + if err = c.sinkDelete(ctx, deleteIter); err != nil { + return err + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + c.flushCdc() + return nil +} + +func (c *IndexConsumer) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { + + // get row from the batch + if err = upsertIter.Row(ctx, c.rowdata); err != nil { + return err + } + + if !c.sqlWriter.CheckLastOp(vectorindex.CDC_UPSERT) { + // last op is not UPSERT, sendSql first + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + + } + + c.sqlWriter.Upsert(ctx, c.rowdata) + + if c.sqlWriter.Full() { + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + + return nil +} + +func (c *IndexConsumer) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { + + // get row from the batch + if err = deleteIter.Row(ctx, c.rowdelete); err != nil { + return err + } + + if !c.sqlWriter.CheckLastOp(vectorindex.CDC_DELETE) { + // last op is not DELETE, sendSql first + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + + } + + c.sqlWriter.Delete(ctx, c.rowdelete) + + if c.sqlWriter.Full() { + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + + return nil +} + +func (c *IndexConsumer) sendSql(writer IndexSqlWriter) error { + if writer.Empty() { + return nil + } + + // generate sql from cdc + sql, err := writer.ToSql() + if err != nil { + return err + } + + c.sqlBufSendCh <- sql + os.Stderr.WriteString(string(sql)) + os.Stderr.WriteString("\n") + + // reset + writer.Reset() + + return nil +} + +func (c *IndexConsumer) flushCdc() error { + return c.sendSql(c.sqlWriter) +} diff --git a/pkg/cdc/consumer_test.go b/pkg/cdc/consumer_test.go index 57b048db33685..167025ed661a3 100644 --- a/pkg/cdc/consumer_test.go +++ b/pkg/cdc/consumer_test.go @@ -15,6 +15,7 @@ package cdc import ( + "context" "testing" "github.com/matrixorigin/matrixone/pkg/container/types" @@ -23,6 +24,9 @@ import ( ) func TestConsumer(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() @@ -34,7 +38,7 @@ func TestConsumer(t *testing.T) { consumer, err := NewIndexConsumer(cnUUID, tblDef, info) require.NoError(t, err) - err = consumer.Consume(r) + err = consumer.Consume(ctx, r) require.NoError(t, err) consumer.Reset() consumer.Close() From d4e19e645e204b1504be27ed3dbfa38e55233b66 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 08:24:47 +0100 Subject: [PATCH 189/335] use transaction from DataRetriever --- pkg/cdc/consumer.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index d7e353aa2291e..5c24fe32f81ba 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -31,10 +31,11 @@ import ( type DataRetriever interface { Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) UpdateWatermark() error + GetTxn() client.TxnOperator } type TxnRetriever struct { - Txn *client.TxnOperator + Txn client.TxnOperator } func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { @@ -47,9 +48,13 @@ func (r *TxnRetriever) UpdateWatermark() error { return nil } +func (r *TxnRetriever) GetTxn() client.TxnOperator { + return r.Txn +} + var _ DataRetriever = new(TxnRetriever) -func NewTxnRetriever(txn *client.TxnOperator) DataRetriever { +func NewTxnRetriever(txn client.TxnOperator) DataRetriever { return &TxnRetriever{Txn: txn} } @@ -139,6 +144,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { newctx, cancel := context.WithTimeout(context.Background(), time.Hour) defer cancel() opts := executor.Options{} + opts.WithTxn(r.GetTxn()) err := c.exec.ExecTxn(newctx, func(exec executor.TxnExecutor) error { for { From 1704875ea99da1a84f726f4ff7513ac361e6090e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 09:29:29 +0100 Subject: [PATCH 190/335] update watermark --- pkg/cdc/consumer.go | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 5c24fe32f81ba..972987e2c0b53 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -29,33 +29,27 @@ import ( ) type DataRetriever interface { - Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) - UpdateWatermark() error - GetTxn() client.TxnOperator + Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, datatype int8, err error) + UpdateWatermark(executor.TxnExecutor) error } type TxnRetriever struct { - Txn client.TxnOperator } -func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { +func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, datatype int8, err error) { logutil.Infof("TxRetriever Next()") - return nil, nil, true, nil + return nil, nil, true, 0, nil } -func (r *TxnRetriever) UpdateWatermark() error { +func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor) error { logutil.Infof("TxnRetriever.UpdateWatermark()") return nil } -func (r *TxnRetriever) GetTxn() client.TxnOperator { - return r.Txn -} - var _ DataRetriever = new(TxnRetriever) func NewTxnRetriever(txn client.TxnOperator) DataRetriever { - return &TxnRetriever{Txn: txn} + return &TxnRetriever{} } type ConsumerInfo struct { @@ -134,6 +128,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { var insertBatch, deleteBatch *AtomicBatch errch := make(chan error, 2) var err error + datatype := int8(0) // create thread to poll sql var wg sync.WaitGroup @@ -144,7 +139,6 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { newctx, cancel := context.WithTimeout(context.Background(), time.Hour) defer cancel() opts := executor.Options{} - opts.WithTxn(r.GetTxn()) err := c.exec.ExecTxn(newctx, func(exec executor.TxnExecutor) error { for { @@ -156,6 +150,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { case sql, ok := <-c.sqlBufSendCh: if !ok { // channel closed + r.UpdateWatermark(exec) return nil } @@ -178,7 +173,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { // read data for !noMoreData { - insertBatch, deleteBatch, noMoreData, err = r.Next() + insertBatch, deleteBatch, noMoreData, datatype, err = r.Next() if err != nil { errch <- err noMoreData = true @@ -192,12 +187,16 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { // update index - // sinkTail will save sql to the slice - err := c.sinkTail(ctx, insertBatch, deleteBatch) - if err != nil { - // error out - errch <- err - noMoreData = true + if datatype == 0 { + + } else { + // sinkTail will save sql to the slice + err := c.sinkTail(ctx, insertBatch, deleteBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } } } From 4c4c3a86482e9aee70935a44f08c216033cd85f0 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 09:34:54 +0100 Subject: [PATCH 191/335] update --- pkg/cdc/consumer.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 972987e2c0b53..8e4da88b6397a 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -150,8 +150,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { case sql, ok := <-c.sqlBufSendCh: if !ok { // channel closed - r.UpdateWatermark(exec) - return nil + return r.UpdateWatermark(exec) } // update SQL From 7b02d814c3cc26f33c8bb5d3976a61293a9f9e07 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 10:14:19 +0100 Subject: [PATCH 192/335] update --- pkg/cdc/consumer.go | 104 ++++++++++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 32 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 8e4da88b6397a..1f83c0055e053 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -16,6 +16,7 @@ package cdc import ( "context" + "fmt" "os" "sync" "time" @@ -29,16 +30,17 @@ import ( ) type DataRetriever interface { - Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, datatype int8, err error) + Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) UpdateWatermark(executor.TxnExecutor) error + GetDataType() int8 } type TxnRetriever struct { } -func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, datatype int8, err error) { +func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { logutil.Infof("TxRetriever Next()") - return nil, nil, true, 0, nil + return nil, nil, true, nil } func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor) error { @@ -46,6 +48,10 @@ func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor) error { return nil } +func (r *TxnRetriever) GetDataType() int8 { + return 0 +} + var _ DataRetriever = new(TxnRetriever) func NewTxnRetriever(txn client.TxnOperator) DataRetriever { @@ -128,7 +134,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { var insertBatch, deleteBatch *AtomicBatch errch := make(chan error, 2) var err error - datatype := int8(0) + datatype := r.GetDataType() // create thread to poll sql var wg sync.WaitGroup @@ -136,35 +142,68 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { go func() { defer wg.Done() - newctx, cancel := context.WithTimeout(context.Background(), time.Hour) - defer cancel() - opts := executor.Options{} - err := c.exec.ExecTxn(newctx, - func(exec executor.TxnExecutor) error { - for { - select { - case <-ctx.Done(): - return nil - case e2 := <-errch: - return e2 - case sql, ok := <-c.sqlBufSendCh: - if !ok { - // channel closed - return r.UpdateWatermark(exec) - } - - // update SQL - res, err := exec.Exec(string(sql), opts.StatementOption()) + if datatype == 0 { + // SNAPSHOT + for { + select { + case <-ctx.Done(): + return + case e2 := <-errch: + errch <- e2 + return + case sql, ok := <-c.sqlBufSendCh: + if !ok { + return + } + func() { + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") + opts := executor.Options{} + res, err := c.exec.Exec(newctx, string(sql), opts) if err != nil { - return err + logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.dbTblInfo, err, string(sql)) + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sql))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) + errch <- err } res.Close() - } + }() } - }, opts) - if err != nil { - errch <- err - return + } + + } else { + // TAIL + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + opts := executor.Options{} + err := c.exec.ExecTxn(newctx, + func(exec executor.TxnExecutor) error { + for { + select { + case <-ctx.Done(): + return nil + case e2 := <-errch: + return e2 + case sql, ok := <-c.sqlBufSendCh: + if !ok { + // channel closed + return r.UpdateWatermark(exec) + } + + // update SQL + res, err := exec.Exec(string(sql), opts.StatementOption()) + if err != nil { + return err + } + res.Close() + } + } + }, opts) + if err != nil { + errch <- err + return + } } }() @@ -172,21 +211,22 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { // read data for !noMoreData { - insertBatch, deleteBatch, noMoreData, datatype, err = r.Next() + insertBatch, deleteBatch, noMoreData, err = r.Next() if err != nil { errch <- err noMoreData = true - return err + continue } if noMoreData { close(c.sqlBufSendCh) - return nil + continue } // update index if datatype == 0 { + // SNAPSHOT } else { // sinkTail will save sql to the slice From 16600d3786ca0d725723a9ec71a94504e12b80ad Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 10:18:17 +0100 Subject: [PATCH 193/335] statement option --- pkg/cdc/consumer.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 1f83c0055e053..27d62d809f1bd 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -31,7 +31,7 @@ import ( type DataRetriever interface { Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) - UpdateWatermark(executor.TxnExecutor) error + UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error GetDataType() int8 } @@ -43,7 +43,7 @@ func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatc return nil, nil, true, nil } -func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor) error { +func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { logutil.Infof("TxnRetriever.UpdateWatermark()") return nil } @@ -188,7 +188,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { case sql, ok := <-c.sqlBufSendCh: if !ok { // channel closed - return r.UpdateWatermark(exec) + return r.UpdateWatermark(exec, opts.StatementOption()) } // update SQL From ab06863850e0a7a0d052b952feb22b5c31ac4391 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 10:31:25 +0100 Subject: [PATCH 194/335] statement option --- pkg/cdc/consumer.go | 33 ++++++++++++++++++++++++++------- pkg/cdc/consumer_test.go | 2 -- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 27d62d809f1bd..9e92aa2d8f764 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -22,6 +22,7 @@ import ( "time" "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/txn/client" @@ -67,8 +68,6 @@ type ConsumerInfo struct { type Consumer interface { Consume(context.Context, DataRetriever) error - Reset() - Close() } type IndexConsumer struct { @@ -227,6 +226,12 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { if datatype == 0 { // SNAPSHOT + err := c.sinkSnapshot(ctx, insertBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } } else { // sinkTail will save sql to the slice @@ -249,12 +254,26 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { return nil } -func (c *IndexConsumer) Reset() { - logutil.Infof("IndexConsumer.Reset") -} +func (c *IndexConsumer) sinkSnapshot(ctx context.Context, bat *batch.Batch) error { + var err error + + for i := 0; i < batchRowCount(bat); i++ { + if err = extractRowFromEveryVector(ctx, bat, i, c.rowdata); err != nil { + return err + } -func (c *IndexConsumer) Close() { - logutil.Infof("IndexConsumer.Close") + err = c.sqlWriter.Upsert(ctx, c.rowdata) + if err != nil { + return err + } + + if c.sqlWriter.Full() { + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + } } // upsertBatch and deleteBatch is sorted by ts diff --git a/pkg/cdc/consumer_test.go b/pkg/cdc/consumer_test.go index 167025ed661a3..f76422c9308f2 100644 --- a/pkg/cdc/consumer_test.go +++ b/pkg/cdc/consumer_test.go @@ -40,6 +40,4 @@ func TestConsumer(t *testing.T) { require.NoError(t, err) err = consumer.Consume(ctx, r) require.NoError(t, err) - consumer.Reset() - consumer.Close() } From e83058f129cd6c9ef1d2279a2f21b16406aa9914 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 10:35:54 +0100 Subject: [PATCH 195/335] snapshot --- pkg/cdc/consumer.go | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 9e92aa2d8f764..1ae9b1cb4cdb2 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -22,7 +22,6 @@ import ( "time" "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/txn/client" @@ -254,26 +253,30 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { return nil } -func (c *IndexConsumer) sinkSnapshot(ctx context.Context, bat *batch.Batch) error { +func (c *IndexConsumer) sinkSnapshot(ctx context.Context, upsertBatch *AtomicBatch) error { var err error - for i := 0; i < batchRowCount(bat); i++ { - if err = extractRowFromEveryVector(ctx, bat, i, c.rowdata); err != nil { - return err - } - - err = c.sqlWriter.Upsert(ctx, c.rowdata) - if err != nil { - return err - } + for _, bat := range upsertBatch.Batches { + for i := 0; i < batchRowCount(bat); i++ { + if err = extractRowFromEveryVector(ctx, bat, i, c.rowdata); err != nil { + return err + } - if c.sqlWriter.Full() { - err = c.sendSql(c.sqlWriter) + err = c.sqlWriter.Upsert(ctx, c.rowdata) if err != nil { return err } + + if c.sqlWriter.Full() { + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } } } + + return nil } // upsertBatch and deleteBatch is sorted by ts From 952b57ab163f6e7745dfb3b28abf5d69def81c8c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 10:51:11 +0100 Subject: [PATCH 196/335] run --- pkg/cdc/consumer.go | 136 +++++++++++++++++++++++--------------------- 1 file changed, 71 insertions(+), 65 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 1ae9b1cb4cdb2..5009f7262e074 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -127,6 +127,76 @@ func NewIndexConsumer(cnUUID string, return c, nil } +func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriever) { + + datatype := r.GetDataType() + + if datatype == 0 { + // SNAPSHOT + for { + select { + case <-ctx.Done(): + return + case e2 := <-errch: + errch <- e2 + return + case sql, ok := <-c.sqlBufSendCh: + if !ok { + return + } + func() { + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") + opts := executor.Options{} + res, err := c.exec.Exec(newctx, string(sql), opts) + if err != nil { + logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.dbTblInfo, err, string(sql)) + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sql))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) + errch <- err + } + res.Close() + }() + } + } + + } else { + // TAIL + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + opts := executor.Options{} + err := c.exec.ExecTxn(newctx, + func(exec executor.TxnExecutor) error { + for { + select { + case <-ctx.Done(): + return nil + case e2 := <-errch: + return e2 + case sql, ok := <-c.sqlBufSendCh: + if !ok { + // channel closed + return r.UpdateWatermark(exec, opts.StatementOption()) + } + + // update SQL + res, err := exec.Exec(string(sql), opts.StatementOption()) + if err != nil { + return err + } + res.Close() + } + } + }, opts) + if err != nil { + errch <- err + return + } + } + +} + func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { noMoreData := false var insertBatch, deleteBatch *AtomicBatch @@ -139,71 +209,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { wg.Add(1) go func() { defer wg.Done() - - if datatype == 0 { - // SNAPSHOT - for { - select { - case <-ctx.Done(): - return - case e2 := <-errch: - errch <- e2 - return - case sql, ok := <-c.sqlBufSendCh: - if !ok { - return - } - func() { - newctx, cancel := context.WithTimeout(context.Background(), time.Hour) - defer cancel() - //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") - opts := executor.Options{} - res, err := c.exec.Exec(newctx, string(sql), opts) - if err != nil { - logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.dbTblInfo, err, string(sql)) - os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sql))) - os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) - errch <- err - } - res.Close() - }() - } - } - - } else { - // TAIL - newctx, cancel := context.WithTimeout(context.Background(), time.Hour) - defer cancel() - opts := executor.Options{} - err := c.exec.ExecTxn(newctx, - func(exec executor.TxnExecutor) error { - for { - select { - case <-ctx.Done(): - return nil - case e2 := <-errch: - return e2 - case sql, ok := <-c.sqlBufSendCh: - if !ok { - // channel closed - return r.UpdateWatermark(exec, opts.StatementOption()) - } - - // update SQL - res, err := exec.Exec(string(sql), opts.StatementOption()) - if err != nil { - return err - } - res.Close() - } - } - }, opts) - if err != nil { - errch <- err - return - } - } - + c.run(ctx, errch, r) }() // read data From 06af88a96a8e710dc9d25a1f1227168420578db3 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:01:59 +0100 Subject: [PATCH 197/335] update --- pkg/cdc/consumer.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go index 5009f7262e074..a2a72b0cb84f3 100644 --- a/pkg/cdc/consumer.go +++ b/pkg/cdc/consumer.go @@ -79,7 +79,6 @@ type IndexConsumer struct { rowdata []any rowdelete []any sqlBufSendCh chan []byte - done chan bool } var _ Consumer = new(IndexConsumer) @@ -113,15 +112,14 @@ func NewIndexConsumer(cnUUID string, sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) c := &IndexConsumer{cnUUID: cnUUID, - info: info, - dbTblInfo: dbTblInfo, - tableDef: tableDef, - sqlWriter: sqlwriter, - exec: exec, - rowdata: make([]any, len(tableDef.Cols)), - rowdelete: make([]any, 1), - sqlBufSendCh: make(chan []byte), - done: make(chan bool), + info: info, + dbTblInfo: dbTblInfo, + tableDef: tableDef, + sqlWriter: sqlwriter, + exec: exec, + rowdata: make([]any, len(tableDef.Cols)), + rowdelete: make([]any, 1), + //sqlBufSendCh: make(chan []byte), } return c, nil @@ -202,6 +200,13 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { var insertBatch, deleteBatch *AtomicBatch errch := make(chan error, 2) var err error + + c.sqlBufSendCh = make(chan []byte) + defer func() { + c.sqlBufSendCh = nil + c.sqlWriter.Reset() + }() + datatype := r.GetDataType() // create thread to poll sql From c72197d89f3a5f7c0ec49893140db19f86ef3698 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:15:39 +0100 Subject: [PATCH 198/335] move to idxcdc --- pkg/idxcdc/consumer.go | 448 ++++++++++++++++++ pkg/idxcdc/consumer_test.go | 109 +++++ pkg/idxcdc/index_sqlwriter.go | 647 +++++++++++++++++++++++++ pkg/idxcdc/types.go | 527 +++++++++++++++++++++ pkg/idxcdc/util.go | 861 ++++++++++++++++++++++++++++++++++ 5 files changed, 2592 insertions(+) create mode 100644 pkg/idxcdc/consumer.go create mode 100644 pkg/idxcdc/consumer_test.go create mode 100644 pkg/idxcdc/index_sqlwriter.go create mode 100644 pkg/idxcdc/types.go create mode 100644 pkg/idxcdc/util.go diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go new file mode 100644 index 0000000000000..d0d1b3bbb6c50 --- /dev/null +++ b/pkg/idxcdc/consumer.go @@ -0,0 +1,448 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "context" + "fmt" + "os" + "sync" + "time" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/common/runtime" + "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/util/executor" + "github.com/matrixorigin/matrixone/pkg/vectorindex" +) + +type IndexEntry struct { + algo string + indexes []*plan.IndexDef +} + +var sqlExecutorFactory = _sqlExecutorFactory + +func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { + // sql executor + v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) + if !ok { + //os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) + return nil, moerr.NewNotSupportedNoCtx("no implement sqlExecutor") + } + exec := v.(executor.SQLExecutor) + return exec, nil +} + +type DataRetriever interface { + Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) + UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error + GetDataType() int8 +} + +type TxnRetriever struct { +} + +func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { + logutil.Infof("TxRetriever Next()") + return nil, nil, true, nil +} + +func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { + logutil.Infof("TxnRetriever.UpdateWatermark()") + return nil +} + +func (r *TxnRetriever) GetDataType() int8 { + return 0 +} + +var _ DataRetriever = new(TxnRetriever) + +func NewTxnRetriever() DataRetriever { + return &TxnRetriever{} +} + +type ConsumerInfo struct { + ConsumerType int8 + TableName string + DbName string + IndexName string +} + +type Consumer interface { + Consume(context.Context, DataRetriever) error +} + +type IndexConsumer struct { + cnUUID string + info *ConsumerInfo + dbTblInfo *DbTableInfo + tableDef *plan.TableDef + sqlWriter IndexSqlWriter + exec executor.SQLExecutor + rowdata []any + rowdelete []any + sqlBufSendCh chan []byte +} + +var _ Consumer = new(IndexConsumer) + +func NewIndexConsumer(cnUUID string, + tableDef *plan.TableDef, + info *ConsumerInfo) (Consumer, error) { + + exec, err := sqlExecutorFactory(cnUUID) + if err != nil { + return nil, err + } + + dbTblInfo := &DbTableInfo{SinkDbName: info.DbName, SinkTblName: info.TableName} + + ie := &IndexEntry{indexes: make([]*plan.IndexDef, 0, 3)} + + for _, idx := range tableDef.Indexes { + if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + key := idx.IndexName + if key == info.IndexName { + if len(ie.algo) == 0 { + ie.algo = idx.IndexAlgo + } + ie.indexes = append(ie.indexes, idx) + } + } + + } + + sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) + + c := &IndexConsumer{cnUUID: cnUUID, + info: info, + dbTblInfo: dbTblInfo, + tableDef: tableDef, + sqlWriter: sqlwriter, + exec: exec, + rowdata: make([]any, len(tableDef.Cols)), + rowdelete: make([]any, 1), + //sqlBufSendCh: make(chan []byte), + } + + return c, nil +} + +func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriever) { + + datatype := r.GetDataType() + + if datatype == 0 { + // SNAPSHOT + for { + select { + case <-ctx.Done(): + return + case e2 := <-errch: + errch <- e2 + return + case sql, ok := <-c.sqlBufSendCh: + if !ok { + return + } + func() { + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") + opts := executor.Options{} + res, err := c.exec.Exec(newctx, string(sql), opts) + if err != nil { + logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.dbTblInfo, err, string(sql)) + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sql))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) + errch <- err + } + res.Close() + }() + } + } + + } else { + // TAIL + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + opts := executor.Options{} + err := c.exec.ExecTxn(newctx, + func(exec executor.TxnExecutor) error { + for { + select { + case <-ctx.Done(): + return nil + case e2 := <-errch: + return e2 + case sql, ok := <-c.sqlBufSendCh: + if !ok { + // channel closed + return r.UpdateWatermark(exec, opts.StatementOption()) + } + + // update SQL + res, err := exec.Exec(string(sql), opts.StatementOption()) + if err != nil { + return err + } + res.Close() + } + } + }, opts) + if err != nil { + errch <- err + return + } + } + +} + +func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { + noMoreData := false + var insertBatch, deleteBatch *AtomicBatch + errch := make(chan error, 2) + var err error + + c.sqlBufSendCh = make(chan []byte) + defer func() { + c.sqlBufSendCh = nil + c.sqlWriter.Reset() + }() + + datatype := r.GetDataType() + + // create thread to poll sql + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + c.run(ctx, errch, r) + }() + + // read data + for !noMoreData { + + insertBatch, deleteBatch, noMoreData, err = r.Next() + if err != nil { + errch <- err + noMoreData = true + continue + } + + if noMoreData { + close(c.sqlBufSendCh) + continue + } + + // update index + + if datatype == 0 { + // SNAPSHOT + err := c.sinkSnapshot(ctx, insertBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } + + } else { + // sinkTail will save sql to the slice + err := c.sinkTail(ctx, insertBatch, deleteBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } + } + + } + + wg.Wait() + + if len(errch) > 0 { + return <-errch + } + + return nil +} + +func (c *IndexConsumer) sinkSnapshot(ctx context.Context, upsertBatch *AtomicBatch) error { + var err error + + for _, bat := range upsertBatch.Batches { + for i := 0; i < batchRowCount(bat); i++ { + if err = extractRowFromEveryVector(ctx, bat, i, c.rowdata); err != nil { + return err + } + + err = c.sqlWriter.Upsert(ctx, c.rowdata) + if err != nil { + return err + } + + if c.sqlWriter.Full() { + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + } + } + + return nil +} + +// upsertBatch and deleteBatch is sorted by ts +// for the same ts, delete first, then upsert +func (c *IndexConsumer) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) error { + var err error + + upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) + deleteIter := deleteBatch.GetRowIterator().(*atomicBatchRowIter) + defer func() { + upsertIter.Close() + deleteIter.Close() + }() + + // output sql until one iterator reach the end + upsertIterHasNext, deleteIterHasNext := upsertIter.Next(), deleteIter.Next() + for upsertIterHasNext && deleteIterHasNext { + upsertItem, deleteItem := upsertIter.Item(), deleteIter.Item() + // compare ts, ignore pk + if upsertItem.Ts.LT(&deleteItem.Ts) { + if err = c.sinkUpsert(ctx, upsertIter); err != nil { + return err + } + // get next item + upsertIterHasNext = upsertIter.Next() + } else { + if err = c.sinkDelete(ctx, deleteIter); err != nil { + return err + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + } + + // output the rest of upsert iterator + for upsertIterHasNext { + if err = c.sinkUpsert(ctx, upsertIter); err != nil { + return err + } + // get next item + upsertIterHasNext = upsertIter.Next() + } + + // output the rest of delete iterator + for deleteIterHasNext { + if err = c.sinkDelete(ctx, deleteIter); err != nil { + return err + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + c.flushCdc() + return nil +} + +func (c *IndexConsumer) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { + + // get row from the batch + if err = upsertIter.Row(ctx, c.rowdata); err != nil { + return err + } + + if !c.sqlWriter.CheckLastOp(vectorindex.CDC_UPSERT) { + // last op is not UPSERT, sendSql first + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + + } + + c.sqlWriter.Upsert(ctx, c.rowdata) + + if c.sqlWriter.Full() { + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + + return nil +} + +func (c *IndexConsumer) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { + + // get row from the batch + if err = deleteIter.Row(ctx, c.rowdelete); err != nil { + return err + } + + if !c.sqlWriter.CheckLastOp(vectorindex.CDC_DELETE) { + // last op is not DELETE, sendSql first + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + + } + + c.sqlWriter.Delete(ctx, c.rowdelete) + + if c.sqlWriter.Full() { + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + + return nil +} + +func (c *IndexConsumer) sendSql(writer IndexSqlWriter) error { + if writer.Empty() { + return nil + } + + // generate sql from cdc + sql, err := writer.ToSql() + if err != nil { + return err + } + + c.sqlBufSendCh <- sql + os.Stderr.WriteString(string(sql)) + os.Stderr.WriteString("\n") + + // reset + writer.Reset() + + return nil +} + +func (c *IndexConsumer) flushCdc() error { + return c.sendSql(c.sqlWriter) +} diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go new file mode 100644 index 0000000000000..fb236f965a5bc --- /dev/null +++ b/pkg/idxcdc/consumer_test.go @@ -0,0 +1,109 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "context" + "testing" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/util/executor" + "github.com/prashantv/gostub" + "github.com/stretchr/testify/require" +) + +func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + "dummy": 2, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "hnsw_idx", + TableExist: true, + IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), + IndexAlgoTableType: catalog.Hnsw_TblType_Metadata, + IndexTableName: "meta_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"m":"16","ef_construction":"200","ef_search":"100","op_type":"vector_l2_ops"}`, + }, + { + IndexName: "hnsw_idx", + TableExist: true, + IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), + IndexAlgoTableType: catalog.Hnsw_TblType_Storage, + IndexTableName: "storage_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"m":"16","ef_construction":"200","ef_search":"100","op_type":"vector_l2_ops"}`, + }, + }, + } +} + +type MockSQLExecutor struct { +} + +// Exec exec a sql in a exists txn. +func (exec MockSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { + + return executor.Result{}, nil +} + +var _ executor.SQLExecutor = new(MockSQLExecutor) + +func mockSqlExecutorFactory(uuid string) (executor.SQLExecutor, error) { + return MockSQLExecutor{}, nil +} + +// ExecTxn executor sql in a txn. execFunc can use TxnExecutor to exec multiple sql +// in a transaction. +// NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to +// TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. +func (exec MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { + return nil +} + +func TestConsumer(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + r := NewTxnRetriever() + + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) + cnUUID := "a-b-c-d" + info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} + + consumer, err := NewIndexConsumer(cnUUID, tblDef, info) + require.NoError(t, err) + err = consumer.Consume(ctx, r) + require.NoError(t, err) +} diff --git a/pkg/idxcdc/index_sqlwriter.go b/pkg/idxcdc/index_sqlwriter.go new file mode 100644 index 0000000000000..57c1ce70dee07 --- /dev/null +++ b/pkg/idxcdc/index_sqlwriter.go @@ -0,0 +1,647 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "context" + "encoding/json" + "fmt" + "strings" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/vectorindex" +) + +const ( + MAX_CDC_DATA_SIZE = 8192 +) + +// IndexSqlWriter interface +type IndexSqlWriter interface { + CheckLastOp(op string) bool + Upsert(ctx context.Context, row []any) error + Insert(ctx context.Context, row []any) error + Delete(ctx context.Context, row []any) error + Full() bool + ToSql() ([]byte, error) + Reset() + Empty() bool +} + +// Base implementation of IVFFLAT and FULLTEXT. Their implementation are simliar. +type BaseIndexSqlWriter struct { + lastCdcOp string + vbuf []byte + ndata int + param string + tabledef *plan.TableDef + indexdef []*plan.IndexDef + dbTblInfo *DbTableInfo + algo string + pkPos int32 + pkType *types.Type + partsPos []int32 + partsType []*types.Type + srcPos []int32 + srcType []*types.Type + dbName string +} + +// Fulltext Sql Writer. Only one hidden secondary index table +type FulltextSqlWriter struct { + BaseIndexSqlWriter + indexTableName string +} + +// Ivfflat Sql writer. Three hidden secondary index tables +type IvfflatSqlWriter struct { + BaseIndexSqlWriter + centroids_tbl string + entries_tbl string + meta_tbl string + ivfparam vectorindex.IvfParam +} + +// Hnsw Sql Writer. Use the vectorindex.VectorIndeXCdc JSON format +type HnswSqlWriter[T types.RealNumbers] struct { + cdc *vectorindex.VectorIndexCdc[T] + meta vectorindex.HnswCdcParam + tabledef *plan.TableDef + indexdef []*plan.IndexDef + dbTblInfo *DbTableInfo + pkPos int32 + pkType *types.Type + partsPos []int32 + partsType []*types.Type + srcPos []int32 + srcType []*types.Type + dbName string +} + +// check FulltextSqlWriter is the interface of IndexSqlWriter +var _ IndexSqlWriter = new(FulltextSqlWriter) +var _ IndexSqlWriter = new(IvfflatSqlWriter) +var _ IndexSqlWriter = new(HnswSqlWriter[float32]) + +// check algo type to return the correct sql writer +func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + algo = catalog.ToLower(algo) + switch algo { + case catalog.MOIndexFullTextAlgo.ToString(): + return NewFulltextSqlWriter(algo, dbTblInfo, tabledef, indexdef) + case catalog.MoIndexIvfFlatAlgo.ToString(): + return NewIvfflatSqlWriter(algo, dbTblInfo, tabledef, indexdef) + case catalog.MoIndexHnswAlgo.ToString(): + return NewHnswSqlWriter(algo, dbTblInfo, tabledef, indexdef) + default: + return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") + + } +} + +// Implementation of Base Index SqlWriter +func (w *BaseIndexSqlWriter) Full() bool { + return w.ndata >= MAX_CDC_DATA_SIZE +} + +// return true when last op is empty or last op == current op +func (w *BaseIndexSqlWriter) CheckLastOp(op string) bool { + return len(w.lastCdcOp) == 0 || w.lastCdcOp == op +} + +func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { + var err error + + w.vbuf = appendString(w.vbuf, "ROW(") + + // pk + if w.tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { + cpkType := &types.Type{Oid: types.T_varbinary, Width: w.pkType.Width, Scale: w.pkType.Scale} + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], cpkType, w.vbuf) + if err != nil { + return err + } + } else { + w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) + if err != nil { + return err + } + } + + for i, t := range w.partsType { + w.vbuf = appendString(w.vbuf, ",") + pos := w.partsPos[i] + w.vbuf, err = convertColIntoSql(ctx, row[pos], t, w.vbuf) + if err != nil { + return err + } + } + + w.vbuf = appendString(w.vbuf, ")") + w.ndata += 1 + return nil +} + +func (w *BaseIndexSqlWriter) writeDeleteRow(ctx context.Context, row []any) error { + var err error + + if w.tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { + cpkType := &types.Type{Oid: types.T_varbinary, Width: w.pkType.Width, Scale: w.pkType.Scale} + w.vbuf, err = convertColIntoSql(ctx, row[0], cpkType, w.vbuf) + if err != nil { + return err + } + } else { + w.vbuf, err = convertColIntoSql(ctx, row[0], w.pkType, w.vbuf) + if err != nil { + return err + } + + } + w.ndata += 1 + return nil +} + +func (w *BaseIndexSqlWriter) Upsert(ctx context.Context, row []any) error { + + if len(w.lastCdcOp) == 0 { + // init + w.lastCdcOp = vectorindex.CDC_UPSERT + return w.writeRow(ctx, row) + + } + + if w.lastCdcOp != vectorindex.CDC_UPSERT { + // different from previous operation and generate SQL before append new UPSERT + return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Upsert: append different op") + } + + // same as previous operation and append to VALUES ROW(), ROW(),... + w.vbuf = appendString(w.vbuf, ",") + return w.writeRow(ctx, row) +} + +func (w *BaseIndexSqlWriter) Insert(ctx context.Context, row []any) error { + + if len(w.lastCdcOp) == 0 { + // init + w.lastCdcOp = vectorindex.CDC_INSERT + return w.writeRow(ctx, row) + + } + + if w.lastCdcOp != vectorindex.CDC_INSERT { + // different from previous operation and generate SQL before append new UPSERT + return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Insert: append different op") + } + + // same as previous operation and append to VALUES ROW(), ROW(),... + w.vbuf = appendString(w.vbuf, ",") + return w.writeRow(ctx, row) +} + +func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { + + if len(w.lastCdcOp) == 0 { + // init + w.lastCdcOp = vectorindex.CDC_DELETE + return w.writeDeleteRow(ctx, row) + } + + if w.lastCdcOp != vectorindex.CDC_DELETE { + // different from previous operation and generate SQL before append new UPSERT + return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Delete: append different op") + } + + // same as previous operation and append to IN () + w.vbuf = appendString(w.vbuf, ",") + return w.writeDeleteRow(ctx, row) +} + +func (w *BaseIndexSqlWriter) Reset() { + w.lastCdcOp = "" + w.vbuf = w.vbuf[:0] + w.ndata = 0 +} + +func (w *BaseIndexSqlWriter) Empty() bool { + return len(w.vbuf) == 0 +} + +// New Fulltext Sql Writer +func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} + + w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] + typ := tabledef.Cols[w.pkPos].Typ + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + + nparts := len(w.indexdef[0].Parts) + w.partsPos = make([]int32, nparts) + w.partsType = make([]*types.Type, nparts) + + for i, part := range w.indexdef[0].Parts { + w.partsPos[i] = tabledef.Name2ColIndex[part] + typ = tabledef.Cols[w.partsPos[i]].Typ + w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } + + w.srcPos = make([]int32, nparts+1) + w.srcType = make([]*types.Type, nparts+1) + + w.srcPos[0] = w.pkPos + w.srcType[0] = w.pkType + for i := range w.partsType { + w.srcPos[i+1] = w.partsPos[i] + w.srcType[i+1] = w.partsType[i] + } + + w.indexTableName = w.indexdef[0].IndexTableName + w.dbName = tabledef.DbName + + return w, nil +} + +// with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from +// (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src +// cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; +func (w *FulltextSqlWriter) ToSql() ([]byte, error) { + defer w.Reset() + + if len(w.lastCdcOp) == 0 { + return nil, nil + } + + switch w.lastCdcOp { + case vectorindex.CDC_DELETE: + return w.toFulltextDelete() + case vectorindex.CDC_UPSERT: + return w.toFulltextUpsert(true) + case vectorindex.CDC_INSERT: + return w.toFulltextUpsert(false) + default: + return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") + } +} + +func (w *FulltextSqlWriter) toFulltextDelete() ([]byte, error) { + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.indexTableName, catalog.FullTextIndex_TabCol_Id, string(w.vbuf)) + return []byte(sql), nil +} + +func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { + + var sql string + + coldefs := make([]string, 0, len(w.srcPos)) + cnames := make([]string, 0, len(w.srcPos)) + for i, pos := range w.srcPos { + typstr := w.srcType[i].DescString() + coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, w.tabledef.Cols[pos].Name)) + cnames = append(cnames, w.tabledef.Cols[pos].Name) + } + + cols := strings.Join(coldefs, ", ") + cnames_str := strings.Join(cnames, ", ") + + if !upsert { + sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbName, w.indexTableName) + } else { + sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbName, w.indexTableName) + } + + sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) + sql += fmt.Sprintf("SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", w.param, w.pkType.Oid, cnames_str) + + return []byte(sql), nil +} + +// Implementation of HNSW Sql writer +func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &HnswSqlWriter[float32]{tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, cdc: vectorindex.NewVectorIndexCdc[float32]()} + + // check the tabledef and indexdef + if len(tabledef.Pkey.Names) != 1 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one primary key") + } + + if len(indexdef) != 2 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table must have 2 secondary tables") + } + + idxdef := indexdef[0] + if len(idxdef.Parts) != 1 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") + } + + paramstr := idxdef.IndexAlgoParams + var meta, storage string + for _, idx := range indexdef { + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Metadata { + meta = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Storage { + storage = idx.IndexTableName + } + } + + if len(meta) == 0 || len(storage) == 0 { + return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or storage hidden index table not exist") + } + + var hnswparam vectorindex.HnswParam + if len(paramstr) > 0 { + err := json.Unmarshal([]byte(paramstr), &hnswparam) + if err != nil { + return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") + } + } + + w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] + typ := tabledef.Cols[w.pkPos].Typ + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + + if w.pkType.Oid != types.T_int64 { + return nil, moerr.NewInternalErrorNoCtx("NewHnswSqlWriter: primary key is not bigint") + } + + nparts := len(idxdef.Parts) + w.partsPos = make([]int32, nparts) + w.partsType = make([]*types.Type, nparts) + + for i, part := range idxdef.Parts { + w.partsPos[i] = tabledef.Name2ColIndex[part] + typ = tabledef.Cols[w.partsPos[i]].Typ + w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } + + if w.partsType[0].Oid != types.T_array_float32 { + return nil, moerr.NewInternalErrorNoCtx("NewHnswSqlWriter: part is not vecf32") + } + + w.srcPos = make([]int32, nparts+1) + w.srcType = make([]*types.Type, nparts+1) + + w.srcPos[0] = w.pkPos + w.srcType[0] = w.pkType + for i := range w.partsType { + w.srcPos[i+1] = w.partsPos[i] + w.srcType[i+1] = w.partsType[i] + } + + w.dbName = tabledef.DbName + + w.meta = vectorindex.HnswCdcParam{ + MetaTbl: meta, + IndexTbl: storage, + DbName: dbTblInfo.SinkDbName, + Table: dbTblInfo.SinkTblName, + Params: hnswparam, + Dimension: tabledef.Cols[w.partsPos[0]].Typ.Width, + } + + return w, nil +} + +func (w *HnswSqlWriter[T]) Reset() { + w.cdc.Data = w.cdc.Data[:0] +} + +func (w *HnswSqlWriter[T]) Full() bool { + return len(w.cdc.Data) >= cap(w.cdc.Data) +} + +func (w *HnswSqlWriter[T]) Empty() bool { + return len(w.cdc.Data) == 0 +} + +func (w *HnswSqlWriter[T]) CheckLastOp(op string) bool { + return true +} + +func (w *HnswSqlWriter[T]) Insert(ctx context.Context, row []any) error { + key, ok := row[w.pkPos].(int64) + if !ok { + return moerr.NewInternalError(ctx, "invalid key type. not int64") + } + v, ok := row[w.partsPos[0]].([]T) + if !ok { + return moerr.NewInternalError(ctx, "invalid vector type. not []float32") + } + + if v == nil { + // vector is nil, do Delete + w.cdc.Delete(key) + return nil + } + + w.cdc.Insert(key, v) + return nil +} + +func (w *HnswSqlWriter[T]) Upsert(ctx context.Context, row []any) error { + key, ok := row[w.pkPos].(int64) + if !ok { + return moerr.NewInternalError(ctx, "invalid key type. not int64") + } + v, ok := row[w.partsPos[0]].([]T) + if !ok { + return moerr.NewInternalError(ctx, "invalid vector type. not []float32") + } + + if v == nil { + // vector is nil, do Delete + w.cdc.Delete(key) + return nil + } + + w.cdc.Upsert(key, v) + return nil +} + +func (w *HnswSqlWriter[T]) Delete(ctx context.Context, row []any) error { + // first column is the primary key + key, ok := row[0].(int64) + if !ok { + return moerr.NewInternalError(ctx, "invalid key type. not int64") + } + w.cdc.Delete(key) + return nil +} + +func (w *HnswSqlWriter[T]) ToSql() ([]byte, error) { + + // generate sql from cdc + js, err := w.cdc.ToJson() + if err != nil { + return nil, err + } + // pad extra space at the front and send SQL + sql := fmt.Sprintf("SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", w.meta.DbName, w.meta.Table, w.meta.Dimension, js) + + return []byte(sql), nil +} + +// Implementation of Ivfflat Sql writer +func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &IvfflatSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} + + if len(indexdef) != 3 { + return nil, moerr.NewInternalErrorNoCtx("ivf index table must have 3 secondary tables") + } + + idxdef := indexdef[0] + if len(idxdef.Parts) != 1 { + return nil, moerr.NewInternalErrorNoCtx("ivf index table only have one vector part") + } + + paramstr := idxdef.IndexAlgoParams + var centroids_tbl, entries_tbl, meta_tbl string + for _, idx := range indexdef { + if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Metadata { + meta_tbl = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Centroids { + centroids_tbl = idx.IndexTableName + } + if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Entries { + entries_tbl = idx.IndexTableName + } + } + + if len(centroids_tbl) == 0 || len(entries_tbl) == 0 || len(meta_tbl) == 0 { + return nil, moerr.NewInternalErrorNoCtx("ivf index table either meta or centroids or entries hidden index table not exist") + } + + var ivfparam vectorindex.IvfParam + if len(paramstr) > 0 { + err := json.Unmarshal([]byte(paramstr), &ivfparam) + if err != nil { + return nil, moerr.NewInternalErrorNoCtx("ivf sync sinker. failed to convert ivf param json") + } + } + + w.ivfparam = ivfparam + + w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] + typ := tabledef.Cols[w.pkPos].Typ + w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + + nparts := len(w.indexdef[0].Parts) + w.partsPos = make([]int32, nparts) + w.partsType = make([]*types.Type, nparts) + + for i, part := range w.indexdef[0].Parts { + w.partsPos[i] = tabledef.Name2ColIndex[part] + typ = tabledef.Cols[w.partsPos[i]].Typ + w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} + } + + w.srcPos = make([]int32, nparts+1) + w.srcType = make([]*types.Type, nparts+1) + + w.srcPos[0] = w.pkPos + w.srcType[0] = w.pkType + for i := range w.partsType { + w.srcPos[i+1] = w.partsPos[i] + w.srcType[i+1] = w.partsType[i] + } + + w.centroids_tbl = centroids_tbl + w.entries_tbl = entries_tbl + w.meta_tbl = meta_tbl + + return w, nil +} + +// REPLACE INTO __mo_index_secondary_0197786c-285f-70cb-9337-e484a3ff92c4(__mo_index_centroid_fk_version, __mo_index_centroid_fk_id, __mo_index_pri_col, __mo_index_centroid_fk_entry) +// with centroid as (select * from __mo_index_secondary_0197786c-285f-70bb-b277-2cef56da590a where __mo_index_centroid_version = 0), +// src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) +// select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); +func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { + defer w.Reset() + + if len(w.lastCdcOp) == 0 { + return nil, nil + } + + switch w.lastCdcOp { + case vectorindex.CDC_DELETE: + return w.toIvfflatDelete() + case vectorindex.CDC_UPSERT: + return w.toIvfflatUpsert(true) + case vectorindex.CDC_INSERT: + return w.toIvfflatUpsert(false) + default: + return nil, moerr.NewInternalErrorNoCtx("IvfflatSqlWriter: invalid CDC type") + } +} + +// catalog.SystemSI_IVFFLAT_TblCol_Entries_version +// catalog.SystemSI_IVFFLAT_TblCol_Entries_pk +// catalog.CPrimaryKeyColName +func (w *IvfflatSqlWriter) toIvfflatDelete() ([]byte, error) { + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.entries_tbl, + catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, + string(w.vbuf)) + return []byte(sql), nil + +} + +func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { + + var sql string + + coldefs := make([]string, 0, len(w.srcPos)) + cnames := make([]string, 0, len(w.srcPos)) + for i := range w.srcPos { + typstr := w.srcType[i].DescString() + cnames = append(cnames, fmt.Sprintf("src%d", i)) + coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, cnames[i])) + } + + cols := strings.Join(coldefs, ", ") + cnames_str := strings.Join(cnames, ", ") + + if !upsert { + sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) + } else { + sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) + } + + sql += fmt.Sprintf("(`%s`, `%s`, `%s`, `%s`) ", + catalog.SystemSI_IVFFLAT_TblCol_Entries_version, + catalog.SystemSI_IVFFLAT_TblCol_Entries_id, + catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, + catalog.SystemSI_IVFFLAT_TblCol_Entries_entry) + + versql := fmt.Sprintf("SELECT CAST(%s as BIGINT) FROM `%s`.`%s` WHERE `%s` = 'version'", catalog.SystemSI_IVFFLAT_TblCol_Metadata_val, + w.dbTblInfo.SinkDbName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) + + sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = (%s) ), ", w.dbTblInfo.SinkDbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, versql) + sql += fmt.Sprintf("src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) + sql += fmt.Sprintf("SELECT `%s`, `%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (`%s`, `%s`)", + catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, + catalog.SystemSI_IVFFLAT_TblCol_Centroids_id, + cnames_str, + w.ivfparam.OpType, + catalog.SystemSI_IVFFLAT_TblCol_Centroids_centroid, + cnames[1]) + + return []byte(sql), nil +} diff --git a/pkg/idxcdc/types.go b/pkg/idxcdc/types.go new file mode 100644 index 0000000000000..a9d51dafc607e --- /dev/null +++ b/pkg/idxcdc/types.go @@ -0,0 +1,527 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "bytes" + "context" + "encoding/hex" + "encoding/json" + "fmt" + "strings" + "sync" + "time" + + "github.com/google/uuid" + "github.com/matrixorigin/matrixone/pkg/common/mpool" + "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/logutil" + v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" + "github.com/matrixorigin/matrixone/pkg/vm/engine/readutil" + "github.com/tidwall/btree" +) + +const ( + CDCSourceUriPrefix = "mysql://" + CDCSinkUriPrefix = "mysql://" + + CDCState_Common = "common" + CDCState_Error = "error" +) + +const ( + CDCDefaultSendSqlTimeout = "10m" + CDCDefaultRetryTimes = -1 + CDCDefaultRetryDuration = 30 * time.Minute + CDCDefaultTaskExtra_InitSnapshotSplitTxn = true + CDCDefaultTaskExtra_MaxSQLLen = 4 * 1024 * 1024 +) + +const ( + CDCSinkType_MySQL = "mysql" + CDCSinkType_MO = "matrixone" + CDCSinkType_Console = "console" + CDCSinkType_IndexSync = "indexsync" +) + +const ( + CDCPitrGranularity_Table = "table" + CDCPitrGranularity_DB = "database" + CDCPitrGranularity_Account = "account" + CDCPitrGranularity_Cluster = "cluster" + CDCPitrGranularity_All = "*" +) + +const ( + CDCRequestOptions_Level = "Level" + CDCRequestOptions_Exclude = "Exclude" + CDCRequestOptions_StartTs = "StartTs" + CDCRequestOptions_EndTs = "EndTs" + CDCRequestOptions_SendSqlTimeout = "SendSqlTimeout" + CDCRequestOptions_InitSnapshotSplitTxn = "InitSnapshotSplitTxn" + CDCRequestOptions_MaxSqlLength = "MaxSqlLength" + CDCRequestOptions_NoFull = "NoFull" + CDCRequestOptions_ConfigFile = "ConfigFile" +) + +const ( + CDCTaskExtraOptions_MaxSqlLength = CDCRequestOptions_MaxSqlLength + CDCTaskExtraOptions_SendSqlTimeout = CDCRequestOptions_SendSqlTimeout + CDCTaskExtraOptions_InitSnapshotSplitTxn = CDCRequestOptions_InitSnapshotSplitTxn +) + +var CDCRequestOptions = []string{ + CDCRequestOptions_Level, + CDCRequestOptions_Exclude, + CDCRequestOptions_StartTs, + CDCRequestOptions_EndTs, + CDCRequestOptions_MaxSqlLength, + CDCRequestOptions_SendSqlTimeout, + CDCRequestOptions_InitSnapshotSplitTxn, + CDCRequestOptions_ConfigFile, + CDCRequestOptions_NoFull, +} + +var CDCTaskExtraOptions = []string{ + CDCTaskExtraOptions_MaxSqlLength, + CDCTaskExtraOptions_SendSqlTimeout, + CDCTaskExtraOptions_InitSnapshotSplitTxn, +} + +var ( + EnableConsoleSink = false +) + +type TaskId = uuid.UUID + +func NewTaskId() TaskId { + return uuid.Must(uuid.NewV7()) +} + +// func StringToTaskId(s string) (TaskId, error) { +// return uuid.Parse(s) +// } + +type Reader interface { + Run(ctx context.Context, ar *ActiveRoutine) + Close() +} + +type TableReader interface { + Run(ctx context.Context, ar *ActiveRoutine) + Close() + Info() *DbTableInfo + GetWg() *sync.WaitGroup +} + +// Sinker manages and drains the sql parts +type Sinker interface { + Run(ctx context.Context, ar *ActiveRoutine) + Sink(ctx context.Context, data *DecoderOutput) + SendBegin() + SendCommit() + SendRollback() + // SendDummy to guarantee the last sql is sent + SendDummy() + // Error must be called after Sink + Error() error + ClearError() + Reset() + Close() +} + +// Sink represents the destination mysql or matrixone +type Sink interface { + Send(ctx context.Context, ar *ActiveRoutine, sqlBuf []byte, needRetry bool) error + SendBegin(ctx context.Context) error + SendCommit(ctx context.Context) error + SendRollback(ctx context.Context) error + Close() +} + +type IWatermarkUpdater interface { + Run(ctx context.Context, ar *ActiveRoutine) + InsertIntoDb(dbTableInfo *DbTableInfo, watermark types.TS) error + GetFromMem(dbName, tblName string) types.TS + GetFromDb(dbName, tblName string) (watermark types.TS, err error) + UpdateMem(dbName, tblName string, watermark types.TS) + DeleteFromMem(dbName, tblName string) + DeleteFromDb(dbName, tblName string) error + SaveErrMsg(dbName, tblName string, errMsg string) error +} + +type ActiveRoutine struct { + sync.Mutex + Pause chan struct{} + Cancel chan struct{} +} + +func (ar *ActiveRoutine) ClosePause() { + ar.Lock() + defer ar.Unlock() + close(ar.Pause) + // can't set to nil, because some goroutines may still be running, when it goes next round loop, + // it found the channel is nil, not closed, will hang there forever +} + +func (ar *ActiveRoutine) CloseCancel() { + ar.Lock() + defer ar.Unlock() + close(ar.Cancel) +} + +func NewCdcActiveRoutine() *ActiveRoutine { + return &ActiveRoutine{ + Pause: make(chan struct{}), + Cancel: make(chan struct{}), + } +} + +type OutputType int + +const ( + OutputTypeSnapshot OutputType = iota + OutputTypeTail +) + +func (t OutputType) String() string { + switch t { + case OutputTypeSnapshot: + return "Snapshot" + case OutputTypeTail: + return "Tail" + default: + return "usp output type" + } +} + +type DecoderOutput struct { + outputTyp OutputType + noMoreData bool + fromTs, toTs types.TS + checkpointBat *batch.Batch + insertAtmBatch *AtomicBatch + deleteAtmBatch *AtomicBatch +} + +type RowType int + +const ( + NoOp RowType = iota + InsertRow + DeleteRow +) + +type RowIterator interface { + Next() bool + Row(ctx context.Context, row []any) error + Close() +} + +type DbTableInfo struct { + SourceDbId uint64 + SourceDbName string + SourceTblId uint64 + SourceTblName string + SourceCreateSql string + + SinkDbName string + SinkTblName string + + IdChanged bool +} + +func (info DbTableInfo) String() string { + return fmt.Sprintf("%v(%v).%v(%v) -> %v.%v, %v", + info.SourceDbName, + info.SourceDbId, + info.SourceTblName, + info.SourceTblId, + info.SinkDbName, + info.SinkTblName, + info.IdChanged, + ) +} + +func (info DbTableInfo) Clone() *DbTableInfo { + return &DbTableInfo{ + SourceDbId: info.SourceDbId, + SourceDbName: info.SourceDbName, + SourceTblId: info.SourceTblId, + SourceTblName: info.SourceTblName, + SourceCreateSql: info.SourceCreateSql, + SinkDbName: info.SinkDbName, + SinkTblName: info.SinkTblName, + IdChanged: info.IdChanged, + } +} + +func (info DbTableInfo) OnlyDiffinTblId(t *DbTableInfo) bool { + if info.SourceDbId != t.SourceDbId || + info.SourceDbName != t.SourceDbName || + info.SourceTblName != t.SourceTblName || + info.SourceCreateSql != t.SourceCreateSql { + return false + } + return info.SourceTblId != t.SourceTblId +} + +// AtomicBatch holds batches from [Tail_wip,...,Tail_done] or [Tail_done]. +// These batches have atomicity +type AtomicBatch struct { + Mp *mpool.MPool + Batches []*batch.Batch + Rows *btree.BTreeG[AtomicBatchRow] +} + +func NewAtomicBatch(mp *mpool.MPool) *AtomicBatch { + opts := btree.Options{ + Degree: 64, + } + ret := &AtomicBatch{ + Mp: mp, + Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, opts), + } + return ret +} + +type AtomicBatchRow struct { + Ts types.TS + Pk []byte + Offset int + Src *batch.Batch +} + +func (row AtomicBatchRow) Less(other AtomicBatchRow) bool { + //ts asc + if row.Ts.LT(&other.Ts) { + return true + } + if row.Ts.GT(&other.Ts) { + return false + } + //pk asc + return bytes.Compare(row.Pk, other.Pk) < 0 +} + +func (bat *AtomicBatch) RowCount() int { + c := 0 + for _, b := range bat.Batches { + rows := 0 + if b != nil && len(b.Vecs) > 0 { + rows = b.Vecs[0].Length() + } + c += rows + } + + if c != bat.Rows.Len() { + logutil.Errorf("inconsistent row count, sum rows of batches: %d, rows of btree: %d\n", c, bat.Rows.Len()) + } + return c +} + +func (bat *AtomicBatch) Allocated() int { + size := 0 + for _, b := range bat.Batches { + size += b.Allocated() + } + return size +} + +func (bat *AtomicBatch) Append( + packer *types.Packer, + batch *batch.Batch, + tsColIdx, compositedPkColIdx int, +) { + start := time.Now() + defer func() { + v2.CdcAppendDurationHistogram.Observe(time.Since(start).Seconds()) + }() + + if batch != nil { + //ts columns + tsVec := vector.MustFixedColWithTypeCheck[types.TS](batch.Vecs[tsColIdx]) + //composited pk columns + compositedPkBytes := readutil.EncodePrimaryKeyVector(batch.Vecs[compositedPkColIdx], packer) + + for i, pk := range compositedPkBytes { + // if ts is constant, then tsVec[0] is the ts for all rows + ts := tsVec[0] + if i < len(tsVec) { + ts = tsVec[i] + } + + row := AtomicBatchRow{ + Ts: ts, + Pk: pk, + Offset: i, + Src: batch, + } + bat.Rows.Set(row) + } + + bat.Batches = append(bat.Batches, batch) + } +} + +func (bat *AtomicBatch) Close() { + for _, oneBat := range bat.Batches { + oneBat.Clean(bat.Mp) + } + if bat.Rows != nil { + bat.Rows.Clear() + bat.Rows = nil + } + bat.Batches = nil + bat.Mp = nil +} + +func (bat *AtomicBatch) GetRowIterator() RowIterator { + return &atomicBatchRowIter{ + iter: bat.Rows.Iter(), + } +} + +//func (bat *AtomicBatch) DebugString(tableDef *plan.TableDef, isDelete bool) string { +// ctx := context.Background() +// keys := make([]string, 0, bat.Rows.Len()) +// iter := bat.Rows.Iter() +// defer iter.Release() +// for iter.Next() { +// row := iter.Item() +// s, err := getRowPkAndTsFromBat(ctx, row.Src, tableDef, isDelete, row.Offset) +// if err != nil { +// return "" +// } +// keys = append(keys, s) +// } +// return fmt.Sprintf("count=%d, key=%v", bat.Rows.Len(), keys) +//} + +var _ RowIterator = new(atomicBatchRowIter) + +type atomicBatchRowIter struct { + iter btree.IterG[AtomicBatchRow] +} + +func (iter *atomicBatchRowIter) Item() AtomicBatchRow { + return iter.iter.Item() +} + +func (iter *atomicBatchRowIter) Next() bool { + return iter.iter.Next() +} + +func (iter *atomicBatchRowIter) Row(ctx context.Context, row []any) error { + batchRow := iter.iter.Item() + return extractRowFromEveryVector( + ctx, + batchRow.Src, + batchRow.Offset, + row, + ) +} + +func (iter *atomicBatchRowIter) Close() { + iter.iter.Release() +} + +type UriInfo struct { + SinkTyp string `json:"_"` + User string `json:"user"` + Password string `json:"-"` + Ip string `json:"ip"` + Port int `json:"port"` + PasswordStart int `json:"-"` + PasswordEnd int `json:"-"` + Reserved string `json:"reserved"` +} + +func (info *UriInfo) GetEncodedPassword() (string, error) { + return AesCFBEncode([]byte(info.Password)) +} + +func (info *UriInfo) String() string { + return fmt.Sprintf("%s%s:%s@%s:%d", CDCSourceUriPrefix, info.User, "******", info.Ip, info.Port) +} + +type PatternTable struct { + Database string `json:"database"` + Table string `json:"table"` +} + +func (table PatternTable) String() string { + return fmt.Sprintf("%s.%s", table.Database, table.Table) +} + +type PatternTuple struct { + Source PatternTable `json:"Source"` + Sink PatternTable `json:"Sink"` + OriginString string `json:"-"` + Reserved string `json:"reserved"` +} + +func (tuple *PatternTuple) String() string { + if tuple == nil { + return "" + } + return fmt.Sprintf("%s,%s", tuple.Source, tuple.Sink) +} + +type PatternTuples struct { + Pts []*PatternTuple `json:"pts"` + Reserved string `json:"reserved"` +} + +func (pts *PatternTuples) Append(pt *PatternTuple) { + pts.Pts = append(pts.Pts, pt) +} + +func (pts *PatternTuples) String() string { + if pts.Pts == nil { + return "" + } + ss := make([]string, 0) + for _, pt := range pts.Pts { + ss = append(ss, pt.String()) + } + return strings.Join(ss, ",") +} + +// JsonEncode encodes the object to json +func JsonEncode(value any) (string, error) { + jbytes, err := json.Marshal(value) + if err != nil { + return "", err + } + + return hex.EncodeToString(jbytes), nil +} + +// JsonDecode decodes the json bytes to objects +func JsonDecode(jbytes string, value any) error { + jRawBytes, err := hex.DecodeString(jbytes) + if err != nil { + return err + } + + err = json.Unmarshal(jRawBytes, value) + if err != nil { + return err + } + return nil +} diff --git a/pkg/idxcdc/util.go b/pkg/idxcdc/util.go new file mode 100644 index 0000000000000..329526fd9c2db --- /dev/null +++ b/pkg/idxcdc/util.go @@ -0,0 +1,861 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "context" + "crypto/aes" + "crypto/cipher" + cryptorand "crypto/rand" + "database/sql" + "encoding/hex" + "fmt" + "math" + "math/rand" + "slices" + "strconv" + "strings" + "time" + + "go.uber.org/zap" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/common/mpool" + "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/container/bytejson" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/pb/timestamp" + "github.com/matrixorigin/matrixone/pkg/txn/client" + v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" + "github.com/matrixorigin/matrixone/pkg/vm/engine" +) + +// extractRowFromEveryVector gets the j row from the every vector and outputs the row +// bat columns layout: +// 1. data: user defined cols | cpk (if needed) | commit-ts +// 2. tombstone: pk/cpk | commit-ts +// return user defined cols for data or only one cpk column for tombstone +func extractRowFromEveryVector( + ctx context.Context, + dataSet *batch.Batch, + rowIndex int, + row []any, +) error { + for i := 0; i < len(row); i++ { + vec := dataSet.Vecs[i] + rowIndexBackup := rowIndex + if vec.IsConstNull() { + row[i] = nil + continue + } + if vec.IsConst() { + rowIndex = 0 + } + + if err := extractRowFromVector(ctx, vec, i, row, rowIndex); err != nil { + return err + } + rowIndex = rowIndexBackup + } + return nil +} + +//func extractRowFromWantedVecs( +// ctx context.Context, +// dataSet *batch.Batch, +// rowIndex int, +// wantedVecIdxes []int, +// row []any, +//) error { +// for i := 0; i < len(row); i++ { +// vec := dataSet.Vecs[wantedVecIdxes[i]] +// rowIndexBackup := rowIndex +// if vec.IsConstNull() { +// row[i] = nil +// continue +// } +// if vec.IsConst() { +// rowIndex = 0 +// } +// +// err := extractRowFromVector(ctx, vec, i, row, rowIndex) +// if err != nil { +// return err +// } +// rowIndex = rowIndexBackup +// } +// return nil +//} + +// extractRowFromVector gets the rowIndex row from the i vector +func extractRowFromVector(ctx context.Context, vec *vector.Vector, i int, row []any, rowIndex int) error { + if vec.IsConstNull() || vec.GetNulls().Contains(uint64(rowIndex)) { + row[i] = nil + return nil + } + + switch vec.GetType().Oid { //get col + case types.T_json: + row[i] = types.DecodeJson(copyBytes(vec.GetBytesAt(rowIndex))) + case types.T_bool: + row[i] = vector.GetFixedAtWithTypeCheck[bool](vec, rowIndex) + case types.T_bit: + row[i] = vector.GetFixedAtWithTypeCheck[uint64](vec, rowIndex) + case types.T_int8: + row[i] = vector.GetFixedAtWithTypeCheck[int8](vec, rowIndex) + case types.T_uint8: + row[i] = vector.GetFixedAtWithTypeCheck[uint8](vec, rowIndex) + case types.T_int16: + row[i] = vector.GetFixedAtWithTypeCheck[int16](vec, rowIndex) + case types.T_uint16: + row[i] = vector.GetFixedAtWithTypeCheck[uint16](vec, rowIndex) + case types.T_int32: + row[i] = vector.GetFixedAtWithTypeCheck[int32](vec, rowIndex) + case types.T_uint32: + row[i] = vector.GetFixedAtWithTypeCheck[uint32](vec, rowIndex) + case types.T_int64: + row[i] = vector.GetFixedAtWithTypeCheck[int64](vec, rowIndex) + case types.T_uint64: + row[i] = vector.GetFixedAtWithTypeCheck[uint64](vec, rowIndex) + case types.T_float32: + row[i] = vector.GetFixedAtWithTypeCheck[float32](vec, rowIndex) + case types.T_float64: + row[i] = vector.GetFixedAtWithTypeCheck[float64](vec, rowIndex) + case types.T_char, types.T_varchar, types.T_blob, types.T_text, types.T_binary, types.T_varbinary, types.T_datalink: + row[i] = copyBytes(vec.GetBytesAt(rowIndex)) + case types.T_array_float32: + // NOTE: Don't merge it with T_varchar. You will get raw binary in the SQL output + //+------------------------------+ + //| abs(cast([1,2,3] as vecf32)) | + //+------------------------------+ + //| �? @ @@ | + //+------------------------------+ + row[i] = vector.GetArrayAt[float32](vec, rowIndex) + case types.T_array_float64: + row[i] = vector.GetArrayAt[float64](vec, rowIndex) + case types.T_date: + row[i] = vector.GetFixedAtWithTypeCheck[types.Date](vec, rowIndex) + case types.T_datetime: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Datetime](vec, rowIndex).String2(scale) + case types.T_time: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Time](vec, rowIndex).String2(scale) + case types.T_timestamp: + scale := vec.GetType().Scale + //TODO:get the right timezone + //timeZone := ses.GetTimeZone() + timeZone := time.UTC + row[i] = vector.GetFixedAtWithTypeCheck[types.Timestamp](vec, rowIndex).String2(timeZone, scale) + case types.T_decimal64: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Decimal64](vec, rowIndex).Format(scale) + case types.T_decimal128: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Decimal128](vec, rowIndex).Format(scale) + case types.T_uuid: + row[i] = vector.GetFixedAtWithTypeCheck[types.Uuid](vec, rowIndex).String() + case types.T_Rowid: + row[i] = vector.GetFixedAtWithTypeCheck[types.Rowid](vec, rowIndex) + case types.T_Blockid: + row[i] = vector.GetFixedAtWithTypeCheck[types.Blockid](vec, rowIndex) + case types.T_TS: + row[i] = vector.GetFixedAtWithTypeCheck[types.TS](vec, rowIndex) + case types.T_enum: + row[i] = vector.GetFixedAtWithTypeCheck[types.Enum](vec, rowIndex) + default: + logutil.Error( + "Failed to extract row from vector, unsupported type", + zap.Int("typeID", int(vec.GetType().Oid))) + return moerr.NewInternalErrorf(ctx, "extractRowFromVector : unsupported type %d", vec.GetType().Oid) + } + return nil +} + +func copyBytes(src []byte) []byte { + if len(src) > 0 { + dst := make([]byte, len(src)) + copy(dst, src) + return dst + } else { + return []byte{} + } +} + +func convertColIntoSql( + ctx context.Context, + data any, + typ *types.Type, + sqlBuff []byte) ([]byte, error) { + if data == nil { + sqlBuff = appendString(sqlBuff, "NULL") + return sqlBuff, nil + } + var temp string + switch typ.Oid { //get col + case types.T_json: + sqlBuff = appendByte(sqlBuff, '\'') + temp = data.(bytejson.ByteJson).String() + sqlBuff = appendString(sqlBuff, temp) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_bool: + b := data.(bool) + if b { + temp = "true" + } else { + temp = "false" + } + sqlBuff = appendString(sqlBuff, temp) + case types.T_bit: + value := data.(uint64) + bitLength := typ.Width + byteLength := (bitLength + 7) / 8 + b := types.EncodeUint64(&value)[:byteLength] + slices.Reverse(b) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendBytes(sqlBuff, b) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_int8: + value := data.(int8) + sqlBuff = appendInt64(sqlBuff, int64(value)) + case types.T_uint8: + value := data.(uint8) + sqlBuff = appendUint64(sqlBuff, uint64(value)) + case types.T_int16: + value := data.(int16) + sqlBuff = appendInt64(sqlBuff, int64(value)) + case types.T_uint16: + value := data.(uint16) + sqlBuff = appendUint64(sqlBuff, uint64(value)) + case types.T_int32: + value := data.(int32) + sqlBuff = appendInt64(sqlBuff, int64(value)) + case types.T_uint32: + value := data.(uint32) + sqlBuff = appendUint64(sqlBuff, uint64(value)) + case types.T_int64: + value := data.(int64) + sqlBuff = appendInt64(sqlBuff, value) + case types.T_uint64: + value := data.(uint64) + sqlBuff = appendUint64(sqlBuff, value) + case types.T_float32: + value := data.(float32) + sqlBuff = appendFloat64(sqlBuff, float64(value), 32) + case types.T_float64: + value := data.(float64) + sqlBuff = appendFloat64(sqlBuff, value, 64) + case types.T_binary, types.T_varbinary, types.T_blob: + sqlBuff = appendHex(sqlBuff, data.([]byte)) + case types.T_char, + types.T_varchar, + types.T_text, + types.T_datalink: + value := string(data.([]byte)) + value = strings.Replace(value, "\\", "\\\\", -1) + value = strings.Replace(value, "'", "\\'", -1) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendBytes(sqlBuff, []byte(value)) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_array_float32: + // NOTE: Don't merge it with T_varchar. You will get raw binary in the SQL output + //+------------------------------+ + //| abs(cast([1,2,3] as vecf32)) | + //+------------------------------+ + //| �? @ @@ | + //+------------------------------+ + value := data.([]float32) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, types.ArrayToString(value)) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_array_float64: + value := data.([]float64) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, types.ArrayToString(value)) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_date: + value := data.(types.Date) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_datetime: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_time: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_timestamp: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_decimal64: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_decimal128: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_uuid: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_Rowid: + value := data.(types.Rowid) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_Blockid: + value := data.(types.Blockid) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_TS: + value := data.(types.TS) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.ToString()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_enum: + value := data.(types.Enum) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') + default: + logutil.Error( + "Failed to extract row from vector, unsupported type", + zap.Int("typeID", int(typ.Oid))) + return nil, moerr.NewInternalErrorf(ctx, "extractRowFromVector : unsupported type %d", typ.Oid) + } + + return sqlBuff, nil +} + +func appendHex(dst []byte, src []byte) []byte { + dst = append(dst, "x'"...) + dst = hex.AppendEncode(dst, src) + dst = append(dst, '\'') + return dst +} + +func appendByte(buf []byte, d byte) []byte { + return append(buf, d) +} + +func appendBytes(buf []byte, data []byte) []byte { + return append(buf, data...) +} + +func appendString(buf []byte, s string) []byte { + return appendBytes(buf, []byte(s)) +} + +func appendInt64(buf []byte, value int64) []byte { + return strconv.AppendInt(buf, value, 10) +} + +func appendUint64(buf []byte, value uint64) []byte { + return strconv.AppendUint(buf, value, 10) +} + +func appendFloat64(buf []byte, value float64, bitSize int) []byte { + if !math.IsInf(value, 0) { + buf = strconv.AppendFloat(buf, value, 'f', -1, bitSize) + } else { + if math.IsInf(value, 1) { + buf = append(buf, []byte("+Infinity")...) + } else { + buf = append(buf, []byte("-Infinity")...) + } + } + return buf +} + +func floatArrayToString[T float32 | float64](arr []T) string { + str := "'[" + for i, v := range arr { + if i == 0 { + str += fmt.Sprintf("%f", v) + } else { + str += fmt.Sprintf(",%f", v) + } + } + str += "]'" + return str +} + +//func getPkIdxesAndTypes(ctx context.Context, tableDef *plan.TableDef) (pkIdxes []int, pkAndTsTypes []*types.Type, err error) { +// pkIdxes = make([]int, 0, len(tableDef.Pkey.Names)) +// pkAndTsTypes = make([]*types.Type, 0, len(tableDef.Pkey.Names)+1) +// for _, colName := range tableDef.Pkey.Names { +// idx, ok := tableDef.Name2ColIndex[colName] +// if !ok { +// err = moerr.NewInternalErrorf(ctx, "pk column %s not found", colName) +// return +// } +// +// pkIdxes = append(pkIdxes, int(idx)) +// +// col := tableDef.Cols[idx] +// pkAndTsTypes = append(pkAndTsTypes, &types.Type{ +// Oid: types.T(col.Typ.Id), +// Width: col.Typ.Width, +// Scale: col.Typ.Scale, +// }) +// } +// pkAndTsTypes = append(pkAndTsTypes, &types.Type{ +// Oid: types.T_TS, +// Size: types.TxnTsSize, +// }) +// return +//} +// +//// getPksFromBat gets the pk from the bat, pk is separated by ',' if it's a multi-column pk +//func getAllPkAndTsFromBat( +// ctx context.Context, +// bat *batch.Batch, +// tableDef *plan.TableDef, +// isDelete bool, +//) (pks []string, err error) { +// if bat == nil || len(bat.Vecs) == 0 { +// return +// } +// +// pkIdxes, pkAndTsTypes, err := getPkIdxesAndTypes(ctx, tableDef) +// if err != nil { +// return +// } +// +// // pk and ts +// var wantedIdxes []int +// if isDelete { +// wantedIdxes = []int{0, 1} +// } else { +// wantedIdxes = append(pkIdxes, len(bat.Vecs)-1) +// } +// readRow := make([]any, len(wantedIdxes)) +// dataRow := make([]any, len(pkAndTsTypes)) +// +// pks = make([]string, bat.Vecs[0].Length()) +// for i := 0; i < len(pks); i++ { +// if pks[i], err = getPkAndTsFromRow(ctx, bat, isDelete, i, pkAndTsTypes, wantedIdxes, readRow, dataRow); err != nil { +// return +// } +// } +// return +//} +// +//func getRowPkAndTsFromBat( +// ctx context.Context, +// bat *batch.Batch, +// tableDef *plan.TableDef, +// isDelete bool, +// offset int, +//) (s string, err error) { +// if bat == nil || len(bat.Vecs) == 0 || offset < 0 || offset >= bat.Vecs[0].Length() { +// return +// } +// +// pkIdxes, pkAndTsTypes, err := getPkIdxesAndTypes(ctx, tableDef) +// if err != nil { +// return +// } +// +// // pk and ts +// var wantedIdxes []int +// if isDelete { +// wantedIdxes = []int{0, 1} +// } else { +// wantedIdxes = append(pkIdxes, len(bat.Vecs)-1) +// } +// readRow := make([]any, len(wantedIdxes)) +// dataRow := make([]any, len(pkAndTsTypes)) +// +// return getPkAndTsFromRow(ctx, bat, isDelete, offset, pkAndTsTypes, wantedIdxes, readRow, dataRow) +//} +// +//func getPkAndTsFromRow( +// ctx context.Context, +// bat *batch.Batch, +// isDelete bool, +// offset int, +// pkAndTsTypes []*types.Type, +// wantedIdxes []int, +// readRow []any, +// dataRow []any, +//) (s string, err error) { +// if err = extractRowFromWantedVecs(ctx, bat, offset, wantedIdxes, readRow); err != nil { +// return +// } +// +// row := &readRow +// if isDelete && len(pkAndTsTypes) > 2 { +// // composite pk +// var pkTuple types.Tuple +// if pkTuple, _, err = unpackWithSchema(readRow[0].([]byte)); err != nil { +// return +// } +// +// for j := range pkTuple { +// dataRow[j] = pkTuple[j] +// } +// dataRow[len(pkTuple)] = readRow[1] +// +// row = &dataRow +// } +// +// pkBytes := make([]byte, 0, 64) +// for j := range pkAndTsTypes { +// if j != 0 { +// pkBytes = appendByte(pkBytes, ',') +// } +// if pkBytes, err = convertColIntoSql(ctx, (*row)[j], pkAndTsTypes[j], pkBytes); err != nil { +// return +// } +// } +// s = string(pkBytes) +// return +//} + +var OpenDbConn = func(user, password string, ip string, port int, timeout string) (db *sql.DB, err error) { + logutil.Infof("openDbConn timeout = %s", timeout) + dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/?readTimeout=%s&timeout=%s&writeTimeout=%s&multiStatements=true", + user, password, ip, port, timeout, timeout, timeout) + for i := 0; i < 3; i++ { + if db, err = tryConn(dsn); err == nil { + // TODO check table existence + return + } + v2.CdcMysqlConnErrorCounter.Inc() + time.Sleep(time.Second) + } + logutil.Error("cdc task OpenDbConn failed") + return +} + +var openDb = sql.Open + +var tryConn = func(dsn string) (*sql.DB, error) { + db, err := openDb("mysql-mo", dsn) + if err != nil { + return nil, err + } else { + db.SetConnMaxLifetime(time.Minute * 3) + db.SetMaxOpenConns(1) + db.SetMaxIdleConns(1) + time.Sleep(time.Millisecond * 100) + + //ping opens the connection + err = db.Ping() + if err != nil { + return nil, err + } + } + return db, err +} + +var GetTxnOp = func( + ctx context.Context, + cnEngine engine.Engine, + cnTxnClient client.TxnClient, + info string, +) (client.TxnOperator, error) { + nowTs := cnEngine.LatestLogtailAppliedTime() + createByOpt := client.WithTxnCreateBy( + 0, + "", + info, + 0) + return cnTxnClient.New(ctx, nowTs, createByOpt) +} + +var GetTxn = func( + ctx context.Context, + cnEngine engine.Engine, + txnOp client.TxnOperator, +) error { + return cnEngine.New(ctx, txnOp) +} + +var FinishTxnOp = func(ctx context.Context, inputErr error, txnOp client.TxnOperator, cnEngine engine.Engine) { + //same timeout value as it in frontend + ctx2, cancel := context.WithTimeoutCause(ctx, cnEngine.Hints().CommitOrRollbackTimeout, moerr.CauseFinishTxnOp) + defer cancel() + if inputErr != nil { + _ = txnOp.Rollback(ctx2) + } else { + _ = txnOp.Commit(ctx2) + } +} + +var GetRelationById = func(ctx context.Context, cnEngine engine.Engine, txnOp client.TxnOperator, tableId uint64) (dbName string, tblName string, rel engine.Relation, err error) { + return cnEngine.GetRelationById(ctx, txnOp, tableId) +} + +var GetSnapshotTS = func(txnOp client.TxnOperator) timestamp.Timestamp { + return txnOp.SnapshotTS() +} + +var CollectChanges = func(ctx context.Context, rel engine.Relation, fromTs, toTs types.TS, mp *mpool.MPool) (engine.ChangesHandle, error) { + return rel.CollectChanges(ctx, fromTs, toTs, mp) +} + +var EnterRunSql = func(txnOp client.TxnOperator) { + txnOp.EnterRunSql() +} + +var ExitRunSql = func(txnOp client.TxnOperator) { + txnOp.ExitRunSql() +} + +var GetTableDef = func( + ctx context.Context, + txnOp client.TxnOperator, + cnEngine engine.Engine, + tblId uint64, +) (*plan.TableDef, error) { + _, _, rel, err := cnEngine.GetRelationById(ctx, txnOp, tblId) + if err != nil { + return nil, err + } + + return rel.CopyTableDef(ctx), nil +} + +const ( + InitKeyId = "4e3da275-5003-4ca0-8667-5d3cdbecdd35" + InsertDataKeyFormat = "replace into mo_catalog.mo_data_key (account_id, key_id, encrypted_key) values (%d, '%s', '%s')" +) + +var AesKey string + +func AesCFBEncode(data []byte) (string, error) { + return aesCFBEncodeWithKey(data, []byte(AesKey)) +} + +func aesCFBEncodeWithKey(data []byte, aesKey []byte) (string, error) { + if len(aesKey) == 0 { + return "", moerr.NewInternalErrorNoCtx("AesKey is not initialized") + } + + block, err := aes.NewCipher(aesKey) + if err != nil { + return "", err + } + + encoded := make([]byte, aes.BlockSize+len(data)) + iv := encoded[:aes.BlockSize] + salt := generateSalt(aes.BlockSize) + copy(iv, salt) + stream := cipher.NewCTR(block, iv) + stream.XORKeyStream(encoded[aes.BlockSize:], data) + return hex.EncodeToString(encoded), nil +} + +func AesCFBDecode(ctx context.Context, data string) (string, error) { + return AesCFBDecodeWithKey(ctx, data, []byte(AesKey)) +} + +var AesCFBDecodeWithKey = func(ctx context.Context, data string, aesKey []byte) (string, error) { + if len(aesKey) == 0 { + return "", moerr.NewInternalErrorNoCtx("AesKey is not initialized") + } + + encodedData, err := hex.DecodeString(data) + if err != nil { + return "", err + } + block, err := aes.NewCipher(aesKey) + if err != nil { + return "", err + } + if len(encodedData) < aes.BlockSize { + return "", moerr.NewInternalError(ctx, "encoded string is too short") + } + iv := encodedData[:aes.BlockSize] + encodedData = encodedData[aes.BlockSize:] + stream := cipher.NewCTR(block, iv) + stream.XORKeyStream(encodedData, encodedData) + return string(encodedData), nil +} + +func generateSalt(n int) []byte { + buf := make([]byte, n) + r := rand.New(rand.NewSource(time.Now().UTC().UnixNano())) + r.Read(buf) + for i := 0; i < n; i++ { + buf[i] &= 0x7f + if buf[i] == 0 || buf[i] == '$' { + buf[i]++ + } + } + return buf +} + +var ( + encrypt = aesCFBEncodeWithKey + cryptoRandRead = cryptorand.Read +) + +func GetInitDataKeySql(kek string) (_ string, err error) { + aesKey := make([]byte, 32) + if _, err = cryptoRandRead(aesKey); err != nil { + return + } + + encryptedKey, err := encrypt(aesKey, []byte(kek)) + if err != nil { + return + } + + return fmt.Sprintf(InsertDataKeyFormat, catalog.System_Account, InitKeyId, encryptedKey), nil +} + +func batchRowCount(bat *batch.Batch) int { + if bat == nil || len(bat.Vecs) == 0 { + return 0 + } + return bat.Vecs[0].Length() +} + +// AddSingleQuotesJoin [a, b, c] -> 'a','b','c' +func AddSingleQuotesJoin(s []string) string { + if len(s) == 0 { + return "" + } + return "'" + strings.Join(s, "','") + "'" +} + +func GenDbTblKey(dbName, tblName string) string { + return dbName + "." + tblName +} + +func SplitDbTblKey(dbTblKey string) (dbName, tblName string) { + s := strings.Split(dbTblKey, ".") + if len(s) != 2 { + return + } + return s[0], s[1] +} + +func addStartMetrics(insertData, deleteData *batch.Batch) { + count := float64(batchRowCount(insertData) + batchRowCount(deleteData)) + allocated := float64(insertData.Allocated() + deleteData.Allocated()) + v2.CdcTotalProcessingRecordCountGauge.Add(count) + v2.CdcHoldChangesBytesGauge.Add(allocated) + v2.CdcReadRecordCounter.Add(count) +} + +func addSnapshotEndMetrics(insertData *batch.Batch) { + count := float64(batchRowCount(insertData)) + allocated := float64(insertData.Allocated()) + v2.CdcTotalProcessingRecordCountGauge.Sub(count) + v2.CdcHoldChangesBytesGauge.Sub(allocated) + v2.CdcSinkRecordCounter.Add(count) +} + +func addTailEndMetrics(bat *AtomicBatch) { + count := float64(bat.RowCount()) + allocated := float64(bat.Allocated()) + v2.CdcTotalProcessingRecordCountGauge.Sub(count) + v2.CdcHoldChangesBytesGauge.Sub(allocated) + v2.CdcSinkRecordCounter.Add(count) +} + +// uriHasPrefix +func uriHasPrefix(uri string, prefix string) bool { + if len(uri) < len(prefix) || strings.ToLower(uri[:len(prefix)]) != prefix { + return false + } + return true +} + +/* +ExtractUriInfo extracts the uriInfo +return serialized uriInfo +*/ +func ExtractUriInfo( + ctx context.Context, + uri string, + uriPrefix string, +) (string, UriInfo, error) { + ok, uriInfo := compositedUriInfo(uri, uriPrefix) + if !ok { + return "", UriInfo{}, moerr.NewInternalErrorf(ctx, "invalid uri format: %s", uri) + } + + jsonUriInfo, err := JsonEncode(&uriInfo) + if err != nil { + return "", UriInfo{}, err + } + return jsonUriInfo, uriInfo, nil +} + +// compositedUriInfo uri according to the format: mysql://root:111@127.0.0.1:6001 +// if valid, return true and extracted info +// !!!NOTE!!! +// user and password does not have the special character ( ':' '@' ) +func compositedUriInfo(uri string, uriPrefix string) (bool, UriInfo) { + if !uriHasPrefix(uri, uriPrefix) { + return false, UriInfo{} + } + //locate user password + rest := uri[len(uriPrefix):] + seps := strings.Split(rest, "@") + if len(seps) != 2 || len(seps[0]) == 0 || len(seps[1]) == 0 { + return false, UriInfo{} + } + seps2 := strings.Split(seps[0], ":") + if len(seps2) < 2 { + return false, UriInfo{} + } + userName := strings.Join(seps2[0:len(seps2)-1], ":") + password := seps2[len(seps2)-1] + passwordStart := len(uriPrefix) + len(userName) + 1 + passwordEnd := passwordStart + len(password) + if passwordEnd > len(uri) || password != uri[passwordStart:passwordEnd] { + return false, UriInfo{} + } + + sep3 := strings.Split(seps[1], ":") + if len(sep3) != 2 || len(sep3[0]) == 0 || len(sep3[1]) == 0 { + return false, UriInfo{} + } + ip := sep3[0] + port := sep3[1] + portInt32, err := strconv.ParseUint(port, 10, 32) + if err != nil || portInt32 > 65535 { + return false, UriInfo{} + } + return true, UriInfo{ + User: userName, + Password: password, + Ip: ip, + Port: int(portInt32), + PasswordStart: passwordStart, + PasswordEnd: passwordEnd, + } +} From 1d2b203dacfe2069f0e1c6ed8532a4cc8a3319c9 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:22:00 +0100 Subject: [PATCH 199/335] update --- pkg/idxcdc/consumer.go | 8 ++----- pkg/idxcdc/index_sqlwriter.go | 40 +++++++++++++++++------------------ 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index d0d1b3bbb6c50..cad4e0ae1418d 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -91,7 +91,6 @@ type Consumer interface { type IndexConsumer struct { cnUUID string info *ConsumerInfo - dbTblInfo *DbTableInfo tableDef *plan.TableDef sqlWriter IndexSqlWriter exec executor.SQLExecutor @@ -111,8 +110,6 @@ func NewIndexConsumer(cnUUID string, return nil, err } - dbTblInfo := &DbTableInfo{SinkDbName: info.DbName, SinkTblName: info.TableName} - ie := &IndexEntry{indexes: make([]*plan.IndexDef, 0, 3)} for _, idx := range tableDef.Indexes { @@ -128,11 +125,10 @@ func NewIndexConsumer(cnUUID string, } - sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) + sqlwriter, err := NewIndexSqlWriter(ie.algo, info, tableDef, ie.indexes) c := &IndexConsumer{cnUUID: cnUUID, info: info, - dbTblInfo: dbTblInfo, tableDef: tableDef, sqlWriter: sqlwriter, exec: exec, @@ -168,7 +164,7 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev opts := executor.Options{} res, err := c.exec.Exec(newctx, string(sql), opts) if err != nil { - logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.dbTblInfo, err, string(sql)) + logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.info, err, string(sql)) os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sql))) os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) errch <- err diff --git a/pkg/idxcdc/index_sqlwriter.go b/pkg/idxcdc/index_sqlwriter.go index 57c1ce70dee07..a205ae9e2b9f7 100644 --- a/pkg/idxcdc/index_sqlwriter.go +++ b/pkg/idxcdc/index_sqlwriter.go @@ -51,7 +51,7 @@ type BaseIndexSqlWriter struct { param string tabledef *plan.TableDef indexdef []*plan.IndexDef - dbTblInfo *DbTableInfo + info *ConsumerInfo algo string pkPos int32 pkType *types.Type @@ -83,7 +83,7 @@ type HnswSqlWriter[T types.RealNumbers] struct { meta vectorindex.HnswCdcParam tabledef *plan.TableDef indexdef []*plan.IndexDef - dbTblInfo *DbTableInfo + info *ConsumerInfo pkPos int32 pkType *types.Type partsPos []int32 @@ -99,15 +99,15 @@ var _ IndexSqlWriter = new(IvfflatSqlWriter) var _ IndexSqlWriter = new(HnswSqlWriter[float32]) // check algo type to return the correct sql writer -func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { +func NewIndexSqlWriter(algo string, info *ConsumerInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { algo = catalog.ToLower(algo) switch algo { case catalog.MOIndexFullTextAlgo.ToString(): - return NewFulltextSqlWriter(algo, dbTblInfo, tabledef, indexdef) + return NewFulltextSqlWriter(algo, info, tabledef, indexdef) case catalog.MoIndexIvfFlatAlgo.ToString(): - return NewIvfflatSqlWriter(algo, dbTblInfo, tabledef, indexdef) + return NewIvfflatSqlWriter(algo, info, tabledef, indexdef) case catalog.MoIndexHnswAlgo.ToString(): - return NewHnswSqlWriter(algo, dbTblInfo, tabledef, indexdef) + return NewHnswSqlWriter(algo, info, tabledef, indexdef) default: return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") @@ -244,8 +244,8 @@ func (w *BaseIndexSqlWriter) Empty() bool { } // New Fulltext Sql Writer -func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} +func NewFulltextSqlWriter(algo string, info *ConsumerInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, info: info, vbuf: make([]byte, 0, 1024)}} w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] typ := tabledef.Cols[w.pkPos].Typ @@ -300,7 +300,7 @@ func (w *FulltextSqlWriter) ToSql() ([]byte, error) { } func (w *FulltextSqlWriter) toFulltextDelete() ([]byte, error) { - sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.indexTableName, catalog.FullTextIndex_TabCol_Id, string(w.vbuf)) + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.info.DbName, w.indexTableName, catalog.FullTextIndex_TabCol_Id, string(w.vbuf)) return []byte(sql), nil } @@ -332,8 +332,8 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { } // Implementation of HNSW Sql writer -func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &HnswSqlWriter[float32]{tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, cdc: vectorindex.NewVectorIndexCdc[float32]()} +func NewHnswSqlWriter(algo string, info *ConsumerInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &HnswSqlWriter[float32]{tabledef: tabledef, indexdef: indexdef, info: info, cdc: vectorindex.NewVectorIndexCdc[float32]()} // check the tabledef and indexdef if len(tabledef.Pkey.Names) != 1 { @@ -409,8 +409,8 @@ func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableD w.meta = vectorindex.HnswCdcParam{ MetaTbl: meta, IndexTbl: storage, - DbName: dbTblInfo.SinkDbName, - Table: dbTblInfo.SinkTblName, + DbName: info.DbName, + Table: info.TableName, Params: hnswparam, Dimension: tabledef.Cols[w.partsPos[0]].Typ.Width, } @@ -498,8 +498,8 @@ func (w *HnswSqlWriter[T]) ToSql() ([]byte, error) { } // Implementation of Ivfflat Sql writer -func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &IvfflatSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} +func NewIvfflatSqlWriter(algo string, info *ConsumerInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { + w := &IvfflatSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, info: info, vbuf: make([]byte, 0, 1024)}} if len(indexdef) != 3 { return nil, moerr.NewInternalErrorNoCtx("ivf index table must have 3 secondary tables") @@ -596,7 +596,7 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { // catalog.SystemSI_IVFFLAT_TblCol_Entries_pk // catalog.CPrimaryKeyColName func (w *IvfflatSqlWriter) toIvfflatDelete() ([]byte, error) { - sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.entries_tbl, + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.info.DbName, w.entries_tbl, catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, string(w.vbuf)) return []byte(sql), nil @@ -619,9 +619,9 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { cnames_str := strings.Join(cnames, ", ") if !upsert { - sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) + sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.info.DbName, w.entries_tbl) } else { - sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) + sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.info.DbName, w.entries_tbl) } sql += fmt.Sprintf("(`%s`, `%s`, `%s`, `%s`) ", @@ -631,9 +631,9 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { catalog.SystemSI_IVFFLAT_TblCol_Entries_entry) versql := fmt.Sprintf("SELECT CAST(%s as BIGINT) FROM `%s`.`%s` WHERE `%s` = 'version'", catalog.SystemSI_IVFFLAT_TblCol_Metadata_val, - w.dbTblInfo.SinkDbName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) + w.info.DbName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) - sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = (%s) ), ", w.dbTblInfo.SinkDbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, versql) + sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = (%s) ), ", w.info.DbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, versql) sql += fmt.Sprintf("src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) sql += fmt.Sprintf("SELECT `%s`, `%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (`%s`, `%s`)", catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, From ffa5da713c7aa8b7e8f9618a73f1f66030cc1242 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:25:16 +0100 Subject: [PATCH 200/335] update --- pkg/idxcdc/consumer_test.go | 8 + pkg/idxcdc/index_sqlwriter_test.go | 238 +++++++++++++++++++++++++++++ 2 files changed, 246 insertions(+) create mode 100644 pkg/idxcdc/index_sqlwriter_test.go diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index fb236f965a5bc..51af020bd4eab 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -66,6 +66,14 @@ func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType t } } +func newTestConsumerInfo() *ConsumerInfo { + return &ConsumerInfo{ + DbName: "test_db", + TableName: "test_tbl", + IndexName: "hnsw_idx", + } +} + type MockSQLExecutor struct { } diff --git a/pkg/idxcdc/index_sqlwriter_test.go b/pkg/idxcdc/index_sqlwriter_test.go new file mode 100644 index 0000000000000..149296ff8f6c5 --- /dev/null +++ b/pkg/idxcdc/index_sqlwriter_test.go @@ -0,0 +1,238 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cdc + +import ( + "context" + "fmt" + "testing" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/stretchr/testify/require" +) + +func newTestIvfflatTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + "dummy": 2, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "ivfidx", + TableExist: true, + IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), + IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Metadata, + IndexTableName: "meta_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, + }, + { + IndexName: "ivfidx", + TableExist: true, + IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), + IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Centroids, + IndexTableName: "centroids_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, + }, + { + IndexName: "ivfidx", + TableExist: true, + IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), + IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Entries, + IndexTableName: "entries_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, + }, + }, + DbName: "mydb", + } +} + +func newTestFulltextTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + "dummy": 2, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "fulltext_idx", + TableExist: true, + IndexAlgo: catalog.MOIndexFullTextAlgo.ToString(), + IndexAlgoTableType: "", + IndexTableName: "fulltext_tbl", + Parts: []string{vecColName}, + IndexAlgoParams: `{"parser":"ngram"}`, + }, + }, + DbName: "mydb", + } +} + +func newTestFulltextTableDef2Parts(pkName string, pkType types.T, vecColName string, vecColName2 string, vecType types.T, vecWidth int32) *plan.TableDef { + return &plan.TableDef{ + Name: "test_orig_tbl", + Name2ColIndex: map[string]int32{ + pkName: 0, + vecColName: 1, + vecColName2: 2, + "dummy": 3, // Add another col to make sure pk/vec col indices are used + }, + Cols: []*plan.ColDef{ + {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, + {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: vecColName2, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, + {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, + }, + Pkey: &plan.PrimaryKeyDef{ + Names: []string{pkName}, + PkeyColName: pkName, + }, + Indexes: []*plan.IndexDef{ + { + IndexName: "fulltext_idx", + TableExist: true, + IndexAlgo: catalog.MOIndexFullTextAlgo.ToString(), + IndexAlgoTableType: "", + IndexTableName: "fulltext_tbl", + Parts: []string{vecColName, vecColName2}, + IndexAlgoParams: `{"parser":"ngram"}`, + }, + }, + DbName: "mydb", + } +} + +func TestNewFulltextSqlWriter(t *testing.T) { + var ctx context.Context + + tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) + consumerInfo := newTestConsumerInfo() + + writer, err := NewIndexSqlWriter("fulltext", consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + + row := []any{int64(1000), []uint8("hello world"), nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), []uint8("hello world"), nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) + +} + +func TestNewFulltextSqlWriterCPkey(t *testing.T) { + var ctx context.Context + + tabledef := newTestFulltextTableDef2Parts("__mo_cpkey", types.T_varbinary, "body", "title", types.T_varchar, 256) + consumerInfo := newTestConsumerInfo() + + writer, err := NewIndexSqlWriter("fulltext", consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + + row := []any{[]uint8("abcdef12"), []uint8("hello world"), []uint8("one title"), nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{[]uint8("abc"), []uint8("hello world"), []uint8("two title"), nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) + +} + +func TestNewHnswSqlWriter(t *testing.T) { + var ctx context.Context + + tabledef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 3) + consumerInfo := newTestConsumerInfo() + + writer, err := NewHnswSqlWriter("fulltext", consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + row := []any{int64(1000), []float32{1, 2, 3}, nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), []float32{5, 6, 7}, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + row = []any{int64(3000), []float32{5, 6, 7}, nil} + err = writer.Delete(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) +} + +func TestNewIvfflatSqlWriter(t *testing.T) { + var ctx context.Context + + tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float64, 3) + consumerInfo := newTestConsumerInfo() + + writer, err := NewIvfflatSqlWriter("ivfflat", consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + row := []any{int64(1000), []float64{1, 2, 3}, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), []float64{5, 6, 7}, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + row = []any{int64(3000), []float64{5, 6, 7}, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) +} From fc4b7d251ba0f12b180517b1126e2b8ef7e5545a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:33:18 +0100 Subject: [PATCH 201/335] update idxcdc --- pkg/idxcdc/consumer.go | 2 +- pkg/idxcdc/consumer_test.go | 2 +- pkg/idxcdc/index_sqlwriter.go | 2 +- pkg/idxcdc/index_sqlwriter_test.go | 2 +- pkg/idxcdc/types.go | 2 +- pkg/idxcdc/util.go | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index cad4e0ae1418d..b8f6b67f25e88 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package cdc +package idxcdc import ( "context" diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index 51af020bd4eab..84769b1ab9643 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package cdc +package idxcdc import ( "context" diff --git a/pkg/idxcdc/index_sqlwriter.go b/pkg/idxcdc/index_sqlwriter.go index a205ae9e2b9f7..8282ce72c4324 100644 --- a/pkg/idxcdc/index_sqlwriter.go +++ b/pkg/idxcdc/index_sqlwriter.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package cdc +package idxcdc import ( "context" diff --git a/pkg/idxcdc/index_sqlwriter_test.go b/pkg/idxcdc/index_sqlwriter_test.go index 149296ff8f6c5..bb12e457e2cff 100644 --- a/pkg/idxcdc/index_sqlwriter_test.go +++ b/pkg/idxcdc/index_sqlwriter_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package cdc +package idxcdc import ( "context" diff --git a/pkg/idxcdc/types.go b/pkg/idxcdc/types.go index a9d51dafc607e..c2651959fdbfc 100644 --- a/pkg/idxcdc/types.go +++ b/pkg/idxcdc/types.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package cdc +package idxcdc import ( "bytes" diff --git a/pkg/idxcdc/util.go b/pkg/idxcdc/util.go index 329526fd9c2db..ea272bf5285d4 100644 --- a/pkg/idxcdc/util.go +++ b/pkg/idxcdc/util.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package cdc +package idxcdc import ( "context" From 3b0ca173e9cfb9e2e20e7fec5dd5feadfe21a110 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:35:11 +0100 Subject: [PATCH 202/335] update --- pkg/cdc/consumer.go | 429 --------------------------------------- pkg/cdc/consumer_test.go | 43 ---- 2 files changed, 472 deletions(-) delete mode 100644 pkg/cdc/consumer.go delete mode 100644 pkg/cdc/consumer_test.go diff --git a/pkg/cdc/consumer.go b/pkg/cdc/consumer.go deleted file mode 100644 index a2a72b0cb84f3..0000000000000 --- a/pkg/cdc/consumer.go +++ /dev/null @@ -1,429 +0,0 @@ -// Copyright 2024 Matrix Origin -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cdc - -import ( - "context" - "fmt" - "os" - "sync" - "time" - - "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/logutil" - "github.com/matrixorigin/matrixone/pkg/pb/plan" - "github.com/matrixorigin/matrixone/pkg/txn/client" - "github.com/matrixorigin/matrixone/pkg/util/executor" - "github.com/matrixorigin/matrixone/pkg/vectorindex" -) - -type DataRetriever interface { - Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) - UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error - GetDataType() int8 -} - -type TxnRetriever struct { -} - -func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { - logutil.Infof("TxRetriever Next()") - return nil, nil, true, nil -} - -func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { - logutil.Infof("TxnRetriever.UpdateWatermark()") - return nil -} - -func (r *TxnRetriever) GetDataType() int8 { - return 0 -} - -var _ DataRetriever = new(TxnRetriever) - -func NewTxnRetriever(txn client.TxnOperator) DataRetriever { - return &TxnRetriever{} -} - -type ConsumerInfo struct { - ConsumerType int8 - TableName string - DbName string - IndexName string -} - -type Consumer interface { - Consume(context.Context, DataRetriever) error -} - -type IndexConsumer struct { - cnUUID string - info *ConsumerInfo - dbTblInfo *DbTableInfo - tableDef *plan.TableDef - sqlWriter IndexSqlWriter - exec executor.SQLExecutor - rowdata []any - rowdelete []any - sqlBufSendCh chan []byte -} - -var _ Consumer = new(IndexConsumer) - -func NewIndexConsumer(cnUUID string, - tableDef *plan.TableDef, - info *ConsumerInfo) (Consumer, error) { - - exec, err := sqlExecutorFactory(cnUUID) - if err != nil { - return nil, err - } - - dbTblInfo := &DbTableInfo{SinkDbName: info.DbName, SinkTblName: info.TableName} - - ie := &IndexEntry{indexes: make([]*plan.IndexDef, 0, 3)} - - for _, idx := range tableDef.Indexes { - if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - key := idx.IndexName - if key == info.IndexName { - if len(ie.algo) == 0 { - ie.algo = idx.IndexAlgo - } - ie.indexes = append(ie.indexes, idx) - } - } - - } - - sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) - - c := &IndexConsumer{cnUUID: cnUUID, - info: info, - dbTblInfo: dbTblInfo, - tableDef: tableDef, - sqlWriter: sqlwriter, - exec: exec, - rowdata: make([]any, len(tableDef.Cols)), - rowdelete: make([]any, 1), - //sqlBufSendCh: make(chan []byte), - } - - return c, nil -} - -func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriever) { - - datatype := r.GetDataType() - - if datatype == 0 { - // SNAPSHOT - for { - select { - case <-ctx.Done(): - return - case e2 := <-errch: - errch <- e2 - return - case sql, ok := <-c.sqlBufSendCh: - if !ok { - return - } - func() { - newctx, cancel := context.WithTimeout(context.Background(), time.Hour) - defer cancel() - //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") - opts := executor.Options{} - res, err := c.exec.Exec(newctx, string(sql), opts) - if err != nil { - logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.dbTblInfo, err, string(sql)) - os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sql))) - os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) - errch <- err - } - res.Close() - }() - } - } - - } else { - // TAIL - newctx, cancel := context.WithTimeout(context.Background(), time.Hour) - defer cancel() - opts := executor.Options{} - err := c.exec.ExecTxn(newctx, - func(exec executor.TxnExecutor) error { - for { - select { - case <-ctx.Done(): - return nil - case e2 := <-errch: - return e2 - case sql, ok := <-c.sqlBufSendCh: - if !ok { - // channel closed - return r.UpdateWatermark(exec, opts.StatementOption()) - } - - // update SQL - res, err := exec.Exec(string(sql), opts.StatementOption()) - if err != nil { - return err - } - res.Close() - } - } - }, opts) - if err != nil { - errch <- err - return - } - } - -} - -func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { - noMoreData := false - var insertBatch, deleteBatch *AtomicBatch - errch := make(chan error, 2) - var err error - - c.sqlBufSendCh = make(chan []byte) - defer func() { - c.sqlBufSendCh = nil - c.sqlWriter.Reset() - }() - - datatype := r.GetDataType() - - // create thread to poll sql - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - c.run(ctx, errch, r) - }() - - // read data - for !noMoreData { - - insertBatch, deleteBatch, noMoreData, err = r.Next() - if err != nil { - errch <- err - noMoreData = true - continue - } - - if noMoreData { - close(c.sqlBufSendCh) - continue - } - - // update index - - if datatype == 0 { - // SNAPSHOT - err := c.sinkSnapshot(ctx, insertBatch) - if err != nil { - // error out - errch <- err - noMoreData = true - } - - } else { - // sinkTail will save sql to the slice - err := c.sinkTail(ctx, insertBatch, deleteBatch) - if err != nil { - // error out - errch <- err - noMoreData = true - } - } - - } - - wg.Wait() - - if len(errch) > 0 { - return <-errch - } - - return nil -} - -func (c *IndexConsumer) sinkSnapshot(ctx context.Context, upsertBatch *AtomicBatch) error { - var err error - - for _, bat := range upsertBatch.Batches { - for i := 0; i < batchRowCount(bat); i++ { - if err = extractRowFromEveryVector(ctx, bat, i, c.rowdata); err != nil { - return err - } - - err = c.sqlWriter.Upsert(ctx, c.rowdata) - if err != nil { - return err - } - - if c.sqlWriter.Full() { - err = c.sendSql(c.sqlWriter) - if err != nil { - return err - } - } - } - } - - return nil -} - -// upsertBatch and deleteBatch is sorted by ts -// for the same ts, delete first, then upsert -func (c *IndexConsumer) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) error { - var err error - - upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) - deleteIter := deleteBatch.GetRowIterator().(*atomicBatchRowIter) - defer func() { - upsertIter.Close() - deleteIter.Close() - }() - - // output sql until one iterator reach the end - upsertIterHasNext, deleteIterHasNext := upsertIter.Next(), deleteIter.Next() - for upsertIterHasNext && deleteIterHasNext { - upsertItem, deleteItem := upsertIter.Item(), deleteIter.Item() - // compare ts, ignore pk - if upsertItem.Ts.LT(&deleteItem.Ts) { - if err = c.sinkUpsert(ctx, upsertIter); err != nil { - return err - } - // get next item - upsertIterHasNext = upsertIter.Next() - } else { - if err = c.sinkDelete(ctx, deleteIter); err != nil { - return err - } - // get next item - deleteIterHasNext = deleteIter.Next() - } - } - - // output the rest of upsert iterator - for upsertIterHasNext { - if err = c.sinkUpsert(ctx, upsertIter); err != nil { - return err - } - // get next item - upsertIterHasNext = upsertIter.Next() - } - - // output the rest of delete iterator - for deleteIterHasNext { - if err = c.sinkDelete(ctx, deleteIter); err != nil { - return err - } - // get next item - deleteIterHasNext = deleteIter.Next() - } - c.flushCdc() - return nil -} - -func (c *IndexConsumer) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { - - // get row from the batch - if err = upsertIter.Row(ctx, c.rowdata); err != nil { - return err - } - - if !c.sqlWriter.CheckLastOp(vectorindex.CDC_UPSERT) { - // last op is not UPSERT, sendSql first - // send SQL - err = c.sendSql(c.sqlWriter) - if err != nil { - return err - } - - } - - c.sqlWriter.Upsert(ctx, c.rowdata) - - if c.sqlWriter.Full() { - // send SQL - err = c.sendSql(c.sqlWriter) - if err != nil { - return err - } - } - - return nil -} - -func (c *IndexConsumer) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { - - // get row from the batch - if err = deleteIter.Row(ctx, c.rowdelete); err != nil { - return err - } - - if !c.sqlWriter.CheckLastOp(vectorindex.CDC_DELETE) { - // last op is not DELETE, sendSql first - // send SQL - err = c.sendSql(c.sqlWriter) - if err != nil { - return err - } - - } - - c.sqlWriter.Delete(ctx, c.rowdelete) - - if c.sqlWriter.Full() { - // send SQL - err = c.sendSql(c.sqlWriter) - if err != nil { - return err - } - } - - return nil -} - -func (c *IndexConsumer) sendSql(writer IndexSqlWriter) error { - if writer.Empty() { - return nil - } - - // generate sql from cdc - sql, err := writer.ToSql() - if err != nil { - return err - } - - c.sqlBufSendCh <- sql - os.Stderr.WriteString(string(sql)) - os.Stderr.WriteString("\n") - - // reset - writer.Reset() - - return nil -} - -func (c *IndexConsumer) flushCdc() error { - return c.sendSql(c.sqlWriter) -} diff --git a/pkg/cdc/consumer_test.go b/pkg/cdc/consumer_test.go deleted file mode 100644 index f76422c9308f2..0000000000000 --- a/pkg/cdc/consumer_test.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2024 Matrix Origin -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cdc - -import ( - "context" - "testing" - - "github.com/matrixorigin/matrixone/pkg/container/types" - "github.com/prashantv/gostub" - "github.com/stretchr/testify/require" -) - -func TestConsumer(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) - defer sqlexecstub.Reset() - - r := NewTxnRetriever(nil) - - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) - cnUUID := "a-b-c-d" - info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} - - consumer, err := NewIndexConsumer(cnUUID, tblDef, info) - require.NoError(t, err) - err = consumer.Consume(ctx, r) - require.NoError(t, err) -} From fab81f19a311354fbe6ae3fb3a9100fd86d6474d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:41:04 +0100 Subject: [PATCH 203/335] tail use insert, snapshot use upsert --- pkg/idxcdc/consumer.go | 12 ++++++------ pkg/idxcdc/index_sqlwriter.go | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index b8f6b67f25e88..4abf19aa7e0d2 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -323,7 +323,7 @@ func (c *IndexConsumer) sinkTail(ctx context.Context, upsertBatch, deleteBatch * upsertItem, deleteItem := upsertIter.Item(), deleteIter.Item() // compare ts, ignore pk if upsertItem.Ts.LT(&deleteItem.Ts) { - if err = c.sinkUpsert(ctx, upsertIter); err != nil { + if err = c.sinkInsert(ctx, upsertIter); err != nil { return err } // get next item @@ -339,7 +339,7 @@ func (c *IndexConsumer) sinkTail(ctx context.Context, upsertBatch, deleteBatch * // output the rest of upsert iterator for upsertIterHasNext { - if err = c.sinkUpsert(ctx, upsertIter); err != nil { + if err = c.sinkInsert(ctx, upsertIter); err != nil { return err } // get next item @@ -358,15 +358,15 @@ func (c *IndexConsumer) sinkTail(ctx context.Context, upsertBatch, deleteBatch * return nil } -func (c *IndexConsumer) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { +func (c *IndexConsumer) sinkInsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { // get row from the batch if err = upsertIter.Row(ctx, c.rowdata); err != nil { return err } - if !c.sqlWriter.CheckLastOp(vectorindex.CDC_UPSERT) { - // last op is not UPSERT, sendSql first + if !c.sqlWriter.CheckLastOp(vectorindex.CDC_INSERT) { + // last op is not INSERT, sendSql first // send SQL err = c.sendSql(c.sqlWriter) if err != nil { @@ -375,7 +375,7 @@ func (c *IndexConsumer) sinkUpsert(ctx context.Context, upsertIter *atomicBatchR } - c.sqlWriter.Upsert(ctx, c.rowdata) + c.sqlWriter.Insert(ctx, c.rowdata) if c.sqlWriter.Full() { // send SQL diff --git a/pkg/idxcdc/index_sqlwriter.go b/pkg/idxcdc/index_sqlwriter.go index 8282ce72c4324..16423444f4139 100644 --- a/pkg/idxcdc/index_sqlwriter.go +++ b/pkg/idxcdc/index_sqlwriter.go @@ -319,7 +319,7 @@ func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { cols := strings.Join(coldefs, ", ") cnames_str := strings.Join(cnames, ", ") - if !upsert { + if upsert { sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbName, w.indexTableName) } else { sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbName, w.indexTableName) @@ -618,7 +618,7 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { cols := strings.Join(coldefs, ", ") cnames_str := strings.Join(cnames, ", ") - if !upsert { + if upsert { sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.info.DbName, w.entries_tbl) } else { sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.info.DbName, w.entries_tbl) From 268ab6e04537b18a5de21a660b3bfd7101568659 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 12:51:03 +0100 Subject: [PATCH 204/335] update --- pkg/idxcdc/consumer.go | 60 +++++++++++++------------------------ pkg/idxcdc/consumer_test.go | 24 +++++++++++++++ 2 files changed, 44 insertions(+), 40 deletions(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index 4abf19aa7e0d2..922cd6803fd75 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -30,6 +30,25 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) +/* CDC API */ +type DataRetriever interface { + Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) + UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error + GetDataType() int8 +} + +type ConsumerInfo struct { + ConsumerType int8 + TableName string + DbName string + IndexName string +} + +type Consumer interface { + Consume(context.Context, DataRetriever) error +} + +/* IndexConsumer */ type IndexEntry struct { algo string indexes []*plan.IndexDef @@ -48,46 +67,7 @@ func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { return exec, nil } -type DataRetriever interface { - Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) - UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error - GetDataType() int8 -} - -type TxnRetriever struct { -} - -func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { - logutil.Infof("TxRetriever Next()") - return nil, nil, true, nil -} - -func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { - logutil.Infof("TxnRetriever.UpdateWatermark()") - return nil -} - -func (r *TxnRetriever) GetDataType() int8 { - return 0 -} - -var _ DataRetriever = new(TxnRetriever) - -func NewTxnRetriever() DataRetriever { - return &TxnRetriever{} -} - -type ConsumerInfo struct { - ConsumerType int8 - TableName string - DbName string - IndexName string -} - -type Consumer interface { - Consume(context.Context, DataRetriever) error -} - +/* IndexConsumer */ type IndexConsumer struct { cnUUID string info *ConsumerInfo diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index 84769b1ab9643..26fd70d871ac9 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -20,12 +20,36 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/prashantv/gostub" "github.com/stretchr/testify/require" ) +type TxnRetriever struct { +} + +func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { + logutil.Infof("TxRetriever Next()") + return nil, nil, true, nil +} + +func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { + logutil.Infof("TxnRetriever.UpdateWatermark()") + return nil +} + +func (r *TxnRetriever) GetDataType() int8 { + return 0 +} + +var _ DataRetriever = new(TxnRetriever) + +func NewTxnRetriever() DataRetriever { + return &TxnRetriever{} +} + func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { return &plan.TableDef{ Name: "test_orig_tbl", From d06cb28dc7903a5f23ec60a9f1a41f70c9468b50 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 14:10:29 +0100 Subject: [PATCH 205/335] update --- pkg/idxcdc/consumer.go | 4 ++-- pkg/idxcdc/types.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index 922cd6803fd75..97ca9f847be5c 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -124,7 +124,7 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev datatype := r.GetDataType() - if datatype == 0 { + if datatype == int8(OutputTypeSnapshot) { // SNAPSHOT for { select { @@ -229,7 +229,7 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { // update index - if datatype == 0 { + if datatype == int8(OutputTypeSnapshot) { // SNAPSHOT err := c.sinkSnapshot(ctx, insertBatch) if err != nil { diff --git a/pkg/idxcdc/types.go b/pkg/idxcdc/types.go index c2651959fdbfc..2e33d53c94141 100644 --- a/pkg/idxcdc/types.go +++ b/pkg/idxcdc/types.go @@ -191,7 +191,7 @@ func NewCdcActiveRoutine() *ActiveRoutine { } } -type OutputType int +type OutputType int8 const ( OutputTypeSnapshot OutputType = iota From 76b2c62a2edb8f7f6098272f3d8eb2b347d05d17 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 14:22:16 +0100 Subject: [PATCH 206/335] mock retriever --- pkg/idxcdc/consumer_test.go | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index 26fd70d871ac9..20938e598080e 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -27,28 +27,32 @@ import ( "github.com/stretchr/testify/require" ) -type TxnRetriever struct { +type MockRetriever struct { + insertBatch *AtomicBatch + deleteBatch *AtomicBatch + noMoreData bool + dtype int8 } -func (r *TxnRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { +func (r *MockRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { logutil.Infof("TxRetriever Next()") - return nil, nil, true, nil + if !r.noMoreData { + r.noMoreData = true + return r.insertBatch, r.deleteBatch, false, nil + } + return nil, nil, r.noMoreData, nil } -func (r *TxnRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { +func (r *MockRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { logutil.Infof("TxnRetriever.UpdateWatermark()") return nil } -func (r *TxnRetriever) GetDataType() int8 { - return 0 +func (r *MockRetriever) GetDataType() int8 { + return r.dtype } -var _ DataRetriever = new(TxnRetriever) - -func NewTxnRetriever() DataRetriever { - return &TxnRetriever{} -} +var _ DataRetriever = new(MockRetriever) func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { return &plan.TableDef{ @@ -128,7 +132,12 @@ func TestConsumer(t *testing.T) { sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() - r := NewTxnRetriever() + r := &MockRetriever{ + insertBatch: nil, + deleteBatch: nil, + noMoreData: true, + dtype: int8(OutputTypeSnapshot), + } tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) cnUUID := "a-b-c-d" From 98439c864b2326c8f5549e396af8050ec0c19ca1 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 1 Jul 2025 14:51:39 +0100 Subject: [PATCH 207/335] flush at the end --- pkg/idxcdc/consumer.go | 4 ++ pkg/idxcdc/consumer_test.go | 101 +++++++++++++++++++++++++++++++++++- 2 files changed, 104 insertions(+), 1 deletion(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index 97ca9f847be5c..100b77f923bcc 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -223,6 +223,10 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { } if noMoreData { + err := c.flushCdc() + if err != nil { + errch <- err + } close(c.sqlBufSendCh) continue } diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index 20938e598080e..0dbf4ccabb175 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -16,15 +16,23 @@ package idxcdc import ( "context" + "errors" + "strings" "testing" "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/batch" "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/testutil" + "github.com/matrixorigin/matrixone/pkg/txn/client" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/prashantv/gostub" "github.com/stretchr/testify/require" + "github.com/tidwall/btree" ) type MockRetriever struct { @@ -108,6 +116,7 @@ type MockSQLExecutor struct { // Exec exec a sql in a exists txn. func (exec MockSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { + //fmt.Println(sql) return executor.Result{}, nil } @@ -117,12 +126,53 @@ func mockSqlExecutorFactory(uuid string) (executor.SQLExecutor, error) { return MockSQLExecutor{}, nil } +type MockErrorTxnExecutor struct { + database string + ctx context.Context +} + +func (exec *MockErrorTxnExecutor) Use(db string) { + exec.database = db +} + +func (exec *MockErrorTxnExecutor) Exec( + sql string, + statementOption executor.StatementOption, +) (executor.Result, error) { + if strings.Contains(sql, "FAILSQL") { + return executor.Result{}, moerr.NewInternalErrorNoCtx("db error") + } else if strings.Contains(sql, "MULTI_ERROR_NO_ROLLBACK") { + var errs error + errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error")) + errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error 2")) + return executor.Result{}, errs + } else if strings.Contains(sql, "MULTI_ERROR_ROLLBACK") { + var errs error + errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error")) + errs = errors.Join(errs, moerr.NewQueryInterrupted(exec.ctx)) + return executor.Result{}, errs + } + + //fmt.Println(sql) + return executor.Result{}, nil +} + +func (exec *MockErrorTxnExecutor) LockTable(table string) error { + return nil +} + +func (exec *MockErrorTxnExecutor) Txn() client.TxnOperator { + return nil +} + // ExecTxn executor sql in a txn. execFunc can use TxnExecutor to exec multiple sql // in a transaction. // NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to // TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. func (exec MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { - return nil + txnexec := &MockErrorTxnExecutor{ctx: ctx} + err := execFunc(txnexec) + return err } func TestConsumer(t *testing.T) { @@ -148,3 +198,52 @@ func TestConsumer(t *testing.T) { err = consumer.Consume(ctx, r) require.NoError(t, err) } + +func TestHnswSnapshot(t *testing.T) { + + proc := testutil.NewProcess() + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) + cnUUID := "a-b-c-d" + info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} + + consumer, err := NewIndexConsumer(cnUUID, tblDef, info) + require.NoError(t, err) + + t.Run("snapshot", func(t *testing.T) { + + bat := testutil.NewBatchWithVectors( + []*vector.Vector{ + testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), + testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int32{1, 2}), + }, nil) + + defer bat.Clean(testutil.TestUtilMp) + + insertAtomicBat := &AtomicBatch{ + Mp: nil, + Batches: []*batch.Batch{bat}, + Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), + } + + output := &MockRetriever{ + dtype: int8(OutputTypeSnapshot), + insertBatch: insertAtomicBat, + deleteBatch: nil, + noMoreData: false, + } + err := consumer.Consume(ctx, output) + require.NoError(t, err) + //sql, err := c.sqlWriters[0].ToSql() + //require.NoError(t, err) + //require.Equal(t, string(sql), `SELECT hnsw_cdc_update('sink_db', 'sink_tbl', 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) + }) + +} From e0aca7435fdfc2e7b80152c3ea534685364dac81 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 2 Jul 2025 09:38:24 +0100 Subject: [PATCH 208/335] update test --- pkg/idxcdc/consumer_test.go | 63 ++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 11 deletions(-) diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index 0dbf4ccabb175..c4e983b1c7a5e 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -111,24 +111,27 @@ func newTestConsumerInfo() *ConsumerInfo { } type MockSQLExecutor struct { + txnexec executor.TxnExecutor + sqls []string } // Exec exec a sql in a exists txn. -func (exec MockSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { - - //fmt.Println(sql) +func (exec *MockSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { + exec.sqls = append(exec.sqls, sql) + //fmt.Printf("Exec %p %v\n", exec.sqls, exec.sqls) return executor.Result{}, nil } var _ executor.SQLExecutor = new(MockSQLExecutor) func mockSqlExecutorFactory(uuid string) (executor.SQLExecutor, error) { - return MockSQLExecutor{}, nil + return &MockSQLExecutor{}, nil } type MockErrorTxnExecutor struct { database string ctx context.Context + sqls []string } func (exec *MockErrorTxnExecutor) Use(db string) { @@ -153,7 +156,8 @@ func (exec *MockErrorTxnExecutor) Exec( return executor.Result{}, errs } - //fmt.Println(sql) + exec.sqls = append(exec.sqls, sql) + //fmt.Printf("APPEND %s", sql) return executor.Result{}, nil } @@ -170,8 +174,10 @@ func (exec *MockErrorTxnExecutor) Txn() client.TxnOperator { // NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to // TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. func (exec MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { - txnexec := &MockErrorTxnExecutor{ctx: ctx} - err := execFunc(txnexec) + exec.txnexec = &MockErrorTxnExecutor{ctx: ctx} + err := execFunc(exec.txnexec) + exec.sqls = exec.txnexec.(*MockErrorTxnExecutor).sqls + //fmt.Printf("ExecTxn %v\n", exec.sqls) return err } @@ -191,7 +197,8 @@ func TestConsumer(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) cnUUID := "a-b-c-d" - info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} + info := newTestConsumerInfo() // &ConsumerInfo{DbName: "sink_db", TableName: "sink_tbl", IndexName: "hnsw_idx"} + //info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} consumer, err := NewIndexConsumer(cnUUID, tblDef, info) require.NoError(t, err) @@ -209,9 +216,9 @@ func TestHnswSnapshot(t *testing.T) { sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) cnUUID := "a-b-c-d" - info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} + info := newTestConsumerInfo() // &ConsumerInfo{DbName: "sink_db", TableName: "sink_tbl", IndexName: "hnsw_idx"} consumer, err := NewIndexConsumer(cnUUID, tblDef, info) require.NoError(t, err) @@ -241,9 +248,43 @@ func TestHnswSnapshot(t *testing.T) { } err := consumer.Consume(ctx, output) require.NoError(t, err) + sqls := consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls + require.Equal(t, len(sqls), 1) + sql := sqls[0] + require.Equal(t, string(sql), `SELECT hnsw_cdc_update('test_db', 'test_tbl', 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) + + //fmt.Printf("Consume %p %v\n", consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls, consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls) + }) + + t.Run("noMoreData", func(t *testing.T) { + + /* + bat := testutil.NewBatchWithVectors( + []*vector.Vector{ + testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), + testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int32{1, 2}), + }, nil) + + defer bat.Clean(testutil.TestUtilMp) + + insertAtomicBat := &AtomicBatch{ + Mp: nil, + Batches: []*batch.Batch{bat}, + Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), + } + */ + + output := &MockRetriever{ + dtype: int8(OutputTypeSnapshot), + insertBatch: nil, + deleteBatch: nil, + noMoreData: true, + } + err := consumer.Consume(ctx, output) + require.NoError(t, err) //sql, err := c.sqlWriters[0].ToSql() //require.NoError(t, err) //require.Equal(t, string(sql), `SELECT hnsw_cdc_update('sink_db', 'sink_tbl', 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) }) - } From 352655dd66c73767347fb91a8469e4034718d2e4 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 2 Jul 2025 09:44:22 +0100 Subject: [PATCH 209/335] update --- pkg/idxcdc/consumer_test.go | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index c4e983b1c7a5e..58f9499d1f3f6 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -220,10 +220,9 @@ func TestHnswSnapshot(t *testing.T) { cnUUID := "a-b-c-d" info := newTestConsumerInfo() // &ConsumerInfo{DbName: "sink_db", TableName: "sink_tbl", IndexName: "hnsw_idx"} - consumer, err := NewIndexConsumer(cnUUID, tblDef, info) - require.NoError(t, err) - t.Run("snapshot", func(t *testing.T) { + consumer, err := NewIndexConsumer(cnUUID, tblDef, info) + require.NoError(t, err) bat := testutil.NewBatchWithVectors( []*vector.Vector{ @@ -246,7 +245,7 @@ func TestHnswSnapshot(t *testing.T) { deleteBatch: nil, noMoreData: false, } - err := consumer.Consume(ctx, output) + err = consumer.Consume(ctx, output) require.NoError(t, err) sqls := consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls require.Equal(t, len(sqls), 1) @@ -257,23 +256,8 @@ func TestHnswSnapshot(t *testing.T) { }) t.Run("noMoreData", func(t *testing.T) { - - /* - bat := testutil.NewBatchWithVectors( - []*vector.Vector{ - testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), - testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), - testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int32{1, 2}), - }, nil) - - defer bat.Clean(testutil.TestUtilMp) - - insertAtomicBat := &AtomicBatch{ - Mp: nil, - Batches: []*batch.Batch{bat}, - Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), - } - */ + consumer, err := NewIndexConsumer(cnUUID, tblDef, info) + require.NoError(t, err) output := &MockRetriever{ dtype: int8(OutputTypeSnapshot), @@ -281,10 +265,9 @@ func TestHnswSnapshot(t *testing.T) { deleteBatch: nil, noMoreData: true, } - err := consumer.Consume(ctx, output) + err = consumer.Consume(ctx, output) require.NoError(t, err) - //sql, err := c.sqlWriters[0].ToSql() - //require.NoError(t, err) - //require.Equal(t, string(sql), `SELECT hnsw_cdc_update('sink_db', 'sink_tbl', 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) + sqls := consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls + require.Equal(t, len(sqls), 0) }) } From 2567793d7c687ce7e7d97c6cd18d10702a30d57a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 2 Jul 2025 09:55:03 +0100 Subject: [PATCH 210/335] add test --- pkg/idxcdc/consumer_test.go | 92 +++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 4 deletions(-) diff --git a/pkg/idxcdc/consumer_test.go b/pkg/idxcdc/consumer_test.go index 58f9499d1f3f6..85482543f55f2 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/idxcdc/consumer_test.go @@ -17,6 +17,7 @@ package idxcdc import ( "context" "errors" + "fmt" "strings" "testing" @@ -173,7 +174,7 @@ func (exec *MockErrorTxnExecutor) Txn() client.TxnOperator { // in a transaction. // NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to // TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. -func (exec MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { +func (exec *MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { exec.txnexec = &MockErrorTxnExecutor{ctx: ctx} err := execFunc(exec.txnexec) exec.sqls = exec.txnexec.(*MockErrorTxnExecutor).sqls @@ -197,8 +198,7 @@ func TestConsumer(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) cnUUID := "a-b-c-d" - info := newTestConsumerInfo() // &ConsumerInfo{DbName: "sink_db", TableName: "sink_tbl", IndexName: "hnsw_idx"} - //info := &ConsumerInfo{DbName: "db", TableName: "tbl", IndexName: "hnsw_idx"} + info := newTestConsumerInfo() consumer, err := NewIndexConsumer(cnUUID, tblDef, info) require.NoError(t, err) @@ -218,7 +218,7 @@ func TestHnswSnapshot(t *testing.T) { tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) cnUUID := "a-b-c-d" - info := newTestConsumerInfo() // &ConsumerInfo{DbName: "sink_db", TableName: "sink_tbl", IndexName: "hnsw_idx"} + info := newTestConsumerInfo() t.Run("snapshot", func(t *testing.T) { consumer, err := NewIndexConsumer(cnUUID, tblDef, info) @@ -271,3 +271,87 @@ func TestHnswSnapshot(t *testing.T) { require.Equal(t, len(sqls), 0) }) } + +func TestHnswTail(t *testing.T) { + + proc := testutil.NewProcess() + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) + defer sqlexecstub.Reset() + + tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) + cnUUID := "a-b-c-d" + info := newTestConsumerInfo() + + consumer, err := NewIndexConsumer(cnUUID, tblDef, info) + require.NoError(t, err) + + bat := testutil.NewBatchWithVectors( + []*vector.Vector{ + testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), + testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int64{1, 2}), + }, nil) + defer bat.Clean(testutil.TestUtilMp) + + fromTs := types.BuildTS(1, 0) + insertAtomicBat := &AtomicBatch{ + Mp: nil, + Batches: []*batch.Batch{bat}, + Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), + } + insertAtomicBat.Rows.Set(AtomicBatchRow{Ts: fromTs, Pk: []byte{1}, Offset: 0, Src: bat}) + insertAtomicBat.Rows.Set(AtomicBatchRow{Ts: fromTs, Pk: []byte{2}, Offset: 1, Src: bat}) + + delbat := testutil.NewBatchWithVectors( + []*vector.Vector{ + testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), + testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), + testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int64{1, 2}), + }, nil) + + defer delbat.Clean(testutil.TestUtilMp) + + delfromTs := types.BuildTS(2, 0) + delAtomicBat := &AtomicBatch{ + Mp: nil, + Batches: []*batch.Batch{delbat}, + Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), + } + delAtomicBat.Rows.Set(AtomicBatchRow{Ts: delfromTs, Pk: []byte{1}, Offset: 0, Src: bat}) + delAtomicBat.Rows.Set(AtomicBatchRow{Ts: delfromTs, Pk: []byte{2}, Offset: 1, Src: bat}) + + output := &MockRetriever{ + dtype: int8(OutputTypeTail), + insertBatch: insertAtomicBat, + deleteBatch: delAtomicBat, + noMoreData: false, + } + + err = consumer.Consume(ctx, output) + require.NoError(t, err) + sqls := consumer.(*IndexConsumer).exec.(*MockSQLExecutor).txnexec.(*MockErrorTxnExecutor).sqls + + require.Equal(t, len(sqls), 1) + fmt.Printf("RES: %v\n", sqls) + + row1 := []any{int64(1), []float32{0.1, 0.2}} + row2 := []any{int64(2), []float32{0.3, 0.4}} + + writer, _ := NewHnswSqlWriter("hnsw", info, tblDef, tblDef.Indexes) + writer.Insert(ctx, row1) + writer.Insert(ctx, row2) + writer.Delete(ctx, row1) + writer.Delete(ctx, row2) + /* + cdcForJson.Start = "1-0" + cdcForJson.End = "2-0" + */ + expectedSqlBytes, _ := writer.ToSql() + + require.Equal(t, string(expectedSqlBytes), sqls[0]) + +} From ccf384c8fb34e0cad5ed144665f440ca8c1ccf5d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 2 Jul 2025 13:50:19 +0100 Subject: [PATCH 211/335] update --- pkg/sql/compile/cdc_util.go | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index f081c5d282637..6230a4515c8e3 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -19,40 +19,34 @@ import ( "fmt" "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/idxcdc" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/txn/client" ) /* CDC APIs */ -type SinkerInfo struct { - SinkerType int8 - DBName string - TableName string - IndexName string -} - -func RegisterJob(ctx context.Context, txn client.TxnOperator, pitr_name string, info *SinkerInfo) (bool, error) { +func RegisterJob(ctx context.Context, txn client.TxnOperator, pitr_name string, info *idxcdc.ConsumerInfo) (bool, error) { //dummyurl := "mysql://root:111@127.0.0.1:6001" // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) return true, nil } -func UnregisterJob(ctx context.Context, txn client.TxnOperator, info *SinkerInfo) (bool, error) { +func UnregisterJob(ctx context.Context, txn client.TxnOperator, info *idxcdc.ConsumerInfo) (bool, error) { return true, nil } /* start here */ -func CreateCdcTask(c *Compile, pitr_name string, sinkerinfo SinkerInfo) (bool, error) { - logutil.Infof("Create Index Task %v", sinkerinfo) +func CreateCdcTask(c *Compile, pitr_name string, consumerinfo idxcdc.ConsumerInfo) (bool, error) { + logutil.Infof("Create Index Task %v", consumerinfo) - return RegisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), pitr_name, &sinkerinfo) + return RegisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), pitr_name, &consumerinfo) } -func DeleteCdcTask(c *Compile, sinkerinfo SinkerInfo) (bool, error) { - logutil.Infof("Delete Index Task %v", sinkerinfo) - return UnregisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), &sinkerinfo) +func DeleteCdcTask(c *Compile, consumerinfo idxcdc.ConsumerInfo) (bool, error) { + logutil.Infof("Delete Index Task %v", consumerinfo) + return UnregisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), &consumerinfo) } func getIndexPitrName(dbname string, tablename string) string { @@ -130,7 +124,7 @@ func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tabl } // create index cdc task - ok, err := CreateCdcTask(c, pitr_name, SinkerInfo{SinkerType: sinker_type, DBName: dbname, TableName: tablename, IndexName: indexname}) + ok, err := CreateCdcTask(c, pitr_name, idxcdc.ConsumerInfo{ConsumerType: sinker_type, DbName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } @@ -152,7 +146,7 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen } // delete index cdc task - _, err = DeleteCdcTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: indexname}) + _, err = DeleteCdcTask(c, idxcdc.ConsumerInfo{DbName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } @@ -206,7 +200,7 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta } } if async { - _, e := DeleteCdcTask(c, SinkerInfo{DBName: dbname, TableName: tablename, IndexName: idx.IndexName}) + _, e := DeleteCdcTask(c, idxcdc.ConsumerInfo{DbName: dbname, TableName: tablename, IndexName: idx.IndexName}) if e != nil { return e } From 0b6cfd99469a8846536ded331f51ab3cb60f63fb Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 3 Jul 2025 09:19:42 +0100 Subject: [PATCH 212/335] add cnUUID --- pkg/sql/compile/cdc_util.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 6230a4515c8e3..640018e8f5ecb 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -26,13 +26,13 @@ import ( ) /* CDC APIs */ -func RegisterJob(ctx context.Context, txn client.TxnOperator, pitr_name string, info *idxcdc.ConsumerInfo) (bool, error) { +func RegisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, pitr_name string, info *idxcdc.ConsumerInfo) (bool, error) { //dummyurl := "mysql://root:111@127.0.0.1:6001" // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) return true, nil } -func UnregisterJob(ctx context.Context, txn client.TxnOperator, info *idxcdc.ConsumerInfo) (bool, error) { +func UnregisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, info *idxcdc.ConsumerInfo) (bool, error) { return true, nil } @@ -41,12 +41,12 @@ func UnregisterJob(ctx context.Context, txn client.TxnOperator, info *idxcdc.Con func CreateCdcTask(c *Compile, pitr_name string, consumerinfo idxcdc.ConsumerInfo) (bool, error) { logutil.Infof("Create Index Task %v", consumerinfo) - return RegisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), pitr_name, &consumerinfo) + return RegisterJob(c.proc.Ctx, c.proc.GetService(), c.proc.GetTxnOperator(), pitr_name, &consumerinfo) } func DeleteCdcTask(c *Compile, consumerinfo idxcdc.ConsumerInfo) (bool, error) { logutil.Infof("Delete Index Task %v", consumerinfo) - return UnregisterJob(c.proc.Ctx, c.proc.GetTxnOperator(), &consumerinfo) + return UnregisterJob(c.proc.Ctx, c.proc.GetService(), c.proc.GetTxnOperator(), &consumerinfo) } func getIndexPitrName(dbname string, tablename string) string { From 97113c4a86711c89d47702f9e1239524b57d5465 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 3 Jul 2025 10:00:54 +0100 Subject: [PATCH 213/335] remove unneccessary code --- pkg/idxcdc/consumer.go | 18 --- pkg/idxcdc/types.go | 242 +++-------------------------------------- 2 files changed, 14 insertions(+), 246 deletions(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index 100b77f923bcc..ed691d0ae2891 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -30,24 +30,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/vectorindex" ) -/* CDC API */ -type DataRetriever interface { - Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) - UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error - GetDataType() int8 -} - -type ConsumerInfo struct { - ConsumerType int8 - TableName string - DbName string - IndexName string -} - -type Consumer interface { - Consume(context.Context, DataRetriever) error -} - /* IndexConsumer */ type IndexEntry struct { algo string diff --git a/pkg/idxcdc/types.go b/pkg/idxcdc/types.go index 2e33d53c94141..f784154aeef4f 100644 --- a/pkg/idxcdc/types.go +++ b/pkg/idxcdc/types.go @@ -20,8 +20,6 @@ import ( "encoding/hex" "encoding/json" "fmt" - "strings" - "sync" "time" "github.com/google/uuid" @@ -30,6 +28,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/util/executor" v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" "github.com/matrixorigin/matrixone/pkg/vm/engine/readutil" "github.com/tidwall/btree" @@ -44,18 +43,7 @@ const ( ) const ( - CDCDefaultSendSqlTimeout = "10m" - CDCDefaultRetryTimes = -1 - CDCDefaultRetryDuration = 30 * time.Minute - CDCDefaultTaskExtra_InitSnapshotSplitTxn = true - CDCDefaultTaskExtra_MaxSQLLen = 4 * 1024 * 1024 -) - -const ( - CDCSinkType_MySQL = "mysql" - CDCSinkType_MO = "matrixone" - CDCSinkType_Console = "console" - CDCSinkType_IndexSync = "indexsync" + ConsumerType_IndexSync = 0 ) const ( @@ -66,45 +54,22 @@ const ( CDCPitrGranularity_All = "*" ) -const ( - CDCRequestOptions_Level = "Level" - CDCRequestOptions_Exclude = "Exclude" - CDCRequestOptions_StartTs = "StartTs" - CDCRequestOptions_EndTs = "EndTs" - CDCRequestOptions_SendSqlTimeout = "SendSqlTimeout" - CDCRequestOptions_InitSnapshotSplitTxn = "InitSnapshotSplitTxn" - CDCRequestOptions_MaxSqlLength = "MaxSqlLength" - CDCRequestOptions_NoFull = "NoFull" - CDCRequestOptions_ConfigFile = "ConfigFile" -) - -const ( - CDCTaskExtraOptions_MaxSqlLength = CDCRequestOptions_MaxSqlLength - CDCTaskExtraOptions_SendSqlTimeout = CDCRequestOptions_SendSqlTimeout - CDCTaskExtraOptions_InitSnapshotSplitTxn = CDCRequestOptions_InitSnapshotSplitTxn -) - -var CDCRequestOptions = []string{ - CDCRequestOptions_Level, - CDCRequestOptions_Exclude, - CDCRequestOptions_StartTs, - CDCRequestOptions_EndTs, - CDCRequestOptions_MaxSqlLength, - CDCRequestOptions_SendSqlTimeout, - CDCRequestOptions_InitSnapshotSplitTxn, - CDCRequestOptions_ConfigFile, - CDCRequestOptions_NoFull, +type DataRetriever interface { + Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) + UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error + GetDataType() int8 } -var CDCTaskExtraOptions = []string{ - CDCTaskExtraOptions_MaxSqlLength, - CDCTaskExtraOptions_SendSqlTimeout, - CDCTaskExtraOptions_InitSnapshotSplitTxn, +type ConsumerInfo struct { + ConsumerType int8 + TableName string + DbName string + IndexName string } -var ( - EnableConsoleSink = false -) +type Consumer interface { + Consume(context.Context, DataRetriever) error +} type TaskId = uuid.UUID @@ -112,85 +77,6 @@ func NewTaskId() TaskId { return uuid.Must(uuid.NewV7()) } -// func StringToTaskId(s string) (TaskId, error) { -// return uuid.Parse(s) -// } - -type Reader interface { - Run(ctx context.Context, ar *ActiveRoutine) - Close() -} - -type TableReader interface { - Run(ctx context.Context, ar *ActiveRoutine) - Close() - Info() *DbTableInfo - GetWg() *sync.WaitGroup -} - -// Sinker manages and drains the sql parts -type Sinker interface { - Run(ctx context.Context, ar *ActiveRoutine) - Sink(ctx context.Context, data *DecoderOutput) - SendBegin() - SendCommit() - SendRollback() - // SendDummy to guarantee the last sql is sent - SendDummy() - // Error must be called after Sink - Error() error - ClearError() - Reset() - Close() -} - -// Sink represents the destination mysql or matrixone -type Sink interface { - Send(ctx context.Context, ar *ActiveRoutine, sqlBuf []byte, needRetry bool) error - SendBegin(ctx context.Context) error - SendCommit(ctx context.Context) error - SendRollback(ctx context.Context) error - Close() -} - -type IWatermarkUpdater interface { - Run(ctx context.Context, ar *ActiveRoutine) - InsertIntoDb(dbTableInfo *DbTableInfo, watermark types.TS) error - GetFromMem(dbName, tblName string) types.TS - GetFromDb(dbName, tblName string) (watermark types.TS, err error) - UpdateMem(dbName, tblName string, watermark types.TS) - DeleteFromMem(dbName, tblName string) - DeleteFromDb(dbName, tblName string) error - SaveErrMsg(dbName, tblName string, errMsg string) error -} - -type ActiveRoutine struct { - sync.Mutex - Pause chan struct{} - Cancel chan struct{} -} - -func (ar *ActiveRoutine) ClosePause() { - ar.Lock() - defer ar.Unlock() - close(ar.Pause) - // can't set to nil, because some goroutines may still be running, when it goes next round loop, - // it found the channel is nil, not closed, will hang there forever -} - -func (ar *ActiveRoutine) CloseCancel() { - ar.Lock() - defer ar.Unlock() - close(ar.Cancel) -} - -func NewCdcActiveRoutine() *ActiveRoutine { - return &ActiveRoutine{ - Pause: make(chan struct{}), - Cancel: make(chan struct{}), - } -} - type OutputType int8 const ( @@ -209,15 +95,6 @@ func (t OutputType) String() string { } } -type DecoderOutput struct { - outputTyp OutputType - noMoreData bool - fromTs, toTs types.TS - checkpointBat *batch.Batch - insertAtmBatch *AtomicBatch - deleteAtmBatch *AtomicBatch -} - type RowType int const ( @@ -232,54 +109,6 @@ type RowIterator interface { Close() } -type DbTableInfo struct { - SourceDbId uint64 - SourceDbName string - SourceTblId uint64 - SourceTblName string - SourceCreateSql string - - SinkDbName string - SinkTblName string - - IdChanged bool -} - -func (info DbTableInfo) String() string { - return fmt.Sprintf("%v(%v).%v(%v) -> %v.%v, %v", - info.SourceDbName, - info.SourceDbId, - info.SourceTblName, - info.SourceTblId, - info.SinkDbName, - info.SinkTblName, - info.IdChanged, - ) -} - -func (info DbTableInfo) Clone() *DbTableInfo { - return &DbTableInfo{ - SourceDbId: info.SourceDbId, - SourceDbName: info.SourceDbName, - SourceTblId: info.SourceTblId, - SourceTblName: info.SourceTblName, - SourceCreateSql: info.SourceCreateSql, - SinkDbName: info.SinkDbName, - SinkTblName: info.SinkTblName, - IdChanged: info.IdChanged, - } -} - -func (info DbTableInfo) OnlyDiffinTblId(t *DbTableInfo) bool { - if info.SourceDbId != t.SourceDbId || - info.SourceDbName != t.SourceDbName || - info.SourceTblName != t.SourceTblName || - info.SourceCreateSql != t.SourceCreateSql { - return false - } - return info.SourceTblId != t.SourceTblId -} - // AtomicBatch holds batches from [Tail_wip,...,Tail_done] or [Tail_done]. // These batches have atomicity type AtomicBatch struct { @@ -459,49 +288,6 @@ func (info *UriInfo) String() string { return fmt.Sprintf("%s%s:%s@%s:%d", CDCSourceUriPrefix, info.User, "******", info.Ip, info.Port) } -type PatternTable struct { - Database string `json:"database"` - Table string `json:"table"` -} - -func (table PatternTable) String() string { - return fmt.Sprintf("%s.%s", table.Database, table.Table) -} - -type PatternTuple struct { - Source PatternTable `json:"Source"` - Sink PatternTable `json:"Sink"` - OriginString string `json:"-"` - Reserved string `json:"reserved"` -} - -func (tuple *PatternTuple) String() string { - if tuple == nil { - return "" - } - return fmt.Sprintf("%s,%s", tuple.Source, tuple.Sink) -} - -type PatternTuples struct { - Pts []*PatternTuple `json:"pts"` - Reserved string `json:"reserved"` -} - -func (pts *PatternTuples) Append(pt *PatternTuple) { - pts.Pts = append(pts.Pts, pt) -} - -func (pts *PatternTuples) String() string { - if pts.Pts == nil { - return "" - } - ss := make([]string, 0) - for _, pt := range pts.Pts { - ss = append(ss, pt.String()) - } - return strings.Join(ss, ",") -} - // JsonEncode encodes the object to json func JsonEncode(value any) (string, error) { jbytes, err := json.Marshal(value) From 7259ddcce5fca60eb1bde719679e50c9a007d966 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 3 Jul 2025 10:12:56 +0100 Subject: [PATCH 214/335] update --- pkg/idxcdc/types.go | 4 +++- pkg/sql/compile/cdc_util.go | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/idxcdc/types.go b/pkg/idxcdc/types.go index f784154aeef4f..c2204ff7ed9ca 100644 --- a/pkg/idxcdc/types.go +++ b/pkg/idxcdc/types.go @@ -42,8 +42,10 @@ const ( CDCState_Error = "error" ) +type ConsumerType int8 + const ( - ConsumerType_IndexSync = 0 + ConsumerType_IndexSync ConsumerType = iota ) const ( diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 640018e8f5ecb..31dff5de08de0 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -215,11 +215,11 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta func getSinkerTypeFromAlgo(algo string) int8 { if catalog.IsHnswIndexAlgo(algo) { - return int8(0) + return int8(idxcdc.ConsumerType_IndexSync) } else if catalog.IsIvfIndexAlgo(algo) { - return int8(0) + return int8(idxcdc.ConsumerType_IndexSync) } else if catalog.IsFullTextIndexAlgo(algo) { - return int8(0) + return int8(idxcdc.ConsumerType_IndexSync) } return int8(0) } From 5aa0926de138fa4832188abf15d422015a5fc5b2 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 3 Jul 2025 10:32:24 +0100 Subject: [PATCH 215/335] api --- pkg/idxcdc/api.go | 41 +++++++++++++++++++++++++++++++++++++ pkg/sql/compile/cdc_util.go | 5 ++--- 2 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 pkg/idxcdc/api.go diff --git a/pkg/idxcdc/api.go b/pkg/idxcdc/api.go new file mode 100644 index 0000000000000..932e4fd37e768 --- /dev/null +++ b/pkg/idxcdc/api.go @@ -0,0 +1,41 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package idxcdc + +import ( + "context" + + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/txn/client" +) + +func RegisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, pitr_name string, info *ConsumerInfo) (bool, error) { + return true, nil +} + +func UnregisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, info *ConsumerInfo) (bool, error) { + return true, nil +} + +func NewConsumer(cnUUID string, + tableDef *plan.TableDef, + info *ConsumerInfo) (Consumer, error) { + + if info.ConsumerType != int8(ConsumerType_IndexSync) { + return nil, moerr.NewInternalErrorNoCtx("invalid index cdc consumer type") + } + + return NewIndexConsumer(cnUUID, tableDef, info) +} diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 31dff5de08de0..4df276965938e 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -29,12 +29,11 @@ import ( func RegisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, pitr_name string, info *idxcdc.ConsumerInfo) (bool, error) { //dummyurl := "mysql://root:111@127.0.0.1:6001" // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) - return true, nil + return idxcdc.RegisterJob(ctx, cnUUID, txn, pitr_name, info) } func UnregisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, info *idxcdc.ConsumerInfo) (bool, error) { - - return true, nil + return idxcdc.UnregisterJob(ctx, cnUUID, txn, info) } /* start here */ From 7a6ba7e309a135f94b696fea45ab0309f953a5f6 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 8 Jul 2025 11:41:18 +0100 Subject: [PATCH 216/335] bug fix cdc --- pkg/idxcdc/consumer.go | 3 +++ pkg/sql/compile/cdc_util.go | 32 ++++++++++++++----------------- pkg/sql/compile/ddl.go | 25 ++++++++++++++++++++---- pkg/sql/compile/ddl_index_algo.go | 4 ++-- 4 files changed, 40 insertions(+), 24 deletions(-) diff --git a/pkg/idxcdc/consumer.go b/pkg/idxcdc/consumer.go index ed691d0ae2891..2c3f06415dfcb 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/idxcdc/consumer.go @@ -88,6 +88,9 @@ func NewIndexConsumer(cnUUID string, } sqlwriter, err := NewIndexSqlWriter(ie.algo, info, tableDef, ie.indexes) + if err != nil { + return nil, err + } c := &IndexConsumer{cnUUID: cnUUID, info: info, diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 4df276965938e..6c0a0f03b3d25 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -71,14 +71,12 @@ func CreateIndexPitr(c *Compile, dbname string, tablename string) (string, error } */ - sql = fmt.Sprintf("CREATE PITR `%s` FOR TABLE `%s` `%s` range 2 'h';", pitr_name, dbname, tablename) + sql = fmt.Sprintf("CREATE PITR IF NOT EXISTS `%s` FOR TABLE `%s` `%s` range 2 'h' INTERNAL;", pitr_name, dbname, tablename) logutil.Infof("Create Index Pitr %s. sql: %s:", pitr_name, sql) - /* - err := c.runSql(sql) - if err != nil { - return pitr_name, err - } - */ + err := c.runSql(sql) + if err != nil { + return pitr_name, err + } return pitr_name, nil } @@ -86,14 +84,12 @@ func CreateIndexPitr(c *Compile, dbname string, tablename string) (string, error func DeleteIndexPitr(c *Compile, dbname string, tablename string) error { pitr_name := getIndexPitrName(dbname, tablename) // remove pitr - sql := fmt.Sprintf("DROP PITR IF EXISTS `%s`;", pitr_name) + sql := fmt.Sprintf("DROP PITR IF EXISTS `%s` INTERNAL;", pitr_name) logutil.Infof("Delete Index Pitr %s: %s", pitr_name, sql) - /* - err := c.runSql(sql) - if err != nil { - return err - } - */ + err := c.runSql(sql) + if err != nil { + return err + } return nil } @@ -113,7 +109,7 @@ func checkValidIndexCdc(tableDef *plan.TableDef, indexname string) bool { } // NOTE: CreateIndexCdcTask will create CDC task without any checking. Original TableDef may be empty -func CreateIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string, sinker_type int8) error { +func CreateIndexCdcTask(c *Compile, dbname string, tablename string, indexname string, sinker_type int8) error { var err error // create table pitr if not exists and return pitr_name @@ -224,10 +220,10 @@ func getSinkerTypeFromAlgo(algo string) int8 { } // NOTE: CreateAllIndexCdcTasks will create CDC task according to existing tableDef -func CreateAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { +func CreateAllIndexCdcTasks(c *Compile, indexes []*plan.IndexDef, dbname string, tablename string) error { idxmap := make(map[string]bool) var err error - for _, idx := range tabledef.Indexes { + for _, idx := range indexes { if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || @@ -247,7 +243,7 @@ func CreateAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, } if async { sinker_type := getSinkerTypeFromAlgo(idx.IndexAlgo) - e := CreateIndexCdcTask(c, tabledef, dbname, tablename, idx.IndexName, sinker_type) + e := CreateIndexCdcTask(c, dbname, tablename, idx.IndexName, sinker_type) if e != nil { return e } diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index d59d585df50c0..0d8d43862ced0 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -1465,6 +1465,21 @@ func (s *Scope) CreateTable(c *Compile) error { ) return err } + + // TODO: HNSWCDC create PITR and CDC for index async update + ct, err := GetConstraintDef(c.proc.Ctx, newRelation) + if err != nil { + return err + } + for _, constraint := range ct.Cts { + if idxdef, ok := constraint.(*engine.IndexDef); ok && len(idxdef.Indexes) > 0 { + err = CreateAllIndexCdcTasks(c, idxdef.Indexes, dbName, tblName) + if err != nil { + return err + } + } + } + } err = maybeCreateAutoIncrement( @@ -2085,7 +2100,7 @@ func (s *Scope) handleVectorIvfFlatIndex( if async { logutil.Infof("Ivfflat index Async is true") sinker_type := getSinkerTypeFromAlgo(catalog.MoIndexIvfFlatAlgo.ToString()) - err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, + err = CreateIndexCdcTask(c, qryDatabase, originalTableDef.Name, indexDefs[catalog.SystemSI_IVFFLAT_TblType_Metadata].IndexTableName, sinker_type) if err != nil { return err @@ -2115,6 +2130,9 @@ func (s *Scope) DropIndex(c *Compile) error { return err } + // old tabledef + oldTableDef := r.GetTableDef(c.proc.Ctx) + //1. build and update constraint def oldCt, err := GetConstraintDef(c.proc.Ctx, r) if err != nil { @@ -2146,8 +2164,7 @@ func (s *Scope) DropIndex(c *Compile) error { } //3. HNSWCDC delete cdc table task for vector, fulltext index - tableDef := r.GetTableDef(c.proc.Ctx) - err = DropIndexCdcTask(c, tableDef, qry.Database, qry.Table, qry.IndexName) + err = DropIndexCdcTask(c, oldTableDef, qry.Database, qry.Table, qry.IndexName) if err != nil { return err } @@ -2552,7 +2569,7 @@ func (s *Scope) TruncateTable(c *Compile) error { // TODO: HNSWCDC create CDC task with new table Id if !isTemp { tabledef := rel.GetTableDef(c.proc.Ctx) - e := CreateAllIndexCdcTasks(c, tabledef, dbName, tblName) + e := CreateAllIndexCdcTasks(c, tabledef.Indexes, dbName, tblName) if e != nil { return e } diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index bea5264a7abc4..4857f18b10ffb 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -168,7 +168,7 @@ func (s *Scope) handleFullTextIndexTable( if async { logutil.Infof("fulltext index Async is true") sinker_type := getSinkerTypeFromAlgo(catalog.MOIndexFullTextAlgo.ToString()) - err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, + err = CreateIndexCdcTask(c, qryDatabase, originalTableDef.Name, indexDef.IndexTableName, sinker_type) if err != nil { return err @@ -579,7 +579,7 @@ func (s *Scope) handleVectorHnswIndex( // TODO: HNSWCDC 4. register CDC update sinker_type := getSinkerTypeFromAlgo(catalog.MoIndexHnswAlgo.ToString()) - err = CreateIndexCdcTask(c, originalTableDef, qryDatabase, originalTableDef.Name, indexDefs[catalog.Hnsw_TblType_Metadata].IndexName, sinker_type) + err = CreateIndexCdcTask(c, qryDatabase, originalTableDef.Name, indexDefs[catalog.Hnsw_TblType_Metadata].IndexName, sinker_type) if err != nil { return err } From a5ed28466cd29cb5d3f8cc82d33a197b5777e969 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 8 Jul 2025 11:59:11 +0100 Subject: [PATCH 217/335] bvt test --- test/distributed/cases/vector/vector_hnsw_sync.result | 9 --------- test/distributed/cases/vector/vector_hnsw_sync.sql | 9 --------- 2 files changed, 18 deletions(-) diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_sync.result index aa9c5e350ae2e..2dc9bbc64d908 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_sync.result @@ -4,8 +4,6 @@ create database if not exists hnsw_cdc; use hnsw_cdc; create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_t1`; -create pitr `__mo_table_pitr_t1` for table hnsw_cdc t1 range 2 'h'; create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; insert into t1 values (0, "[1,2,3]", 1); UPDATE t1 set b = '[4,5,6]' where a = 0; @@ -24,12 +22,9 @@ select * from t1 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; a b c 0 [4, 5, 6] 1 drop cdc task `__mo_cdc_t1_idx01`; -drop pitr if exists `__mo_table_pitr_t1`; drop table t1; create table t2(a bigint primary key, b vecf32(128)); create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_t2`; -create pitr `__mo_table_pitr_t2` for table hnsw_cdc t2 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; select count(*) from t2; @@ -45,7 +40,6 @@ select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, a b 0 [0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1] drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; -drop pitr if exists `__mo_table_pitr_t2`; drop table t2; create table t3(a bigint primary key, b vecf32(128)); load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; @@ -53,8 +47,6 @@ select count(*) from t3; count(*) 10000 create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; -create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; select count(*) from t3; @@ -76,6 +68,5 @@ select * from t3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0 a b 19999 [0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25] drop cdc task `__mo_cdc_hnsw_cdc_t3_idx3`; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; drop table t3; drop database hnsw_cdc; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_sync.sql index d5dd43f65648d..2a4dbeeb38d6c 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_sync.sql @@ -9,8 +9,6 @@ create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); -- empty data create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_t1`; -create pitr `__mo_table_pitr_t1` for table hnsw_cdc t1 range 2 'h'; create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; -- show cdc all; @@ -41,14 +39,11 @@ select * from t1 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; select * from t1 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; drop cdc task `__mo_cdc_t1_idx01`; -drop pitr if exists `__mo_table_pitr_t1`; drop table t1; -- t2 create table t2(a bigint primary key, b vecf32(128)); create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_t2`; -create pitr `__mo_table_pitr_t2` for table hnsw_cdc t2 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; -- select sleep(30); @@ -69,7 +64,6 @@ select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; -drop pitr if exists `__mo_table_pitr_t2`; drop table t2; -- end t2 @@ -83,8 +77,6 @@ select count(*) from t3; create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; -create pitr `__mo_table_pitr_hnsw_cdc_t3` for table hnsw_cdc t3 range 2 'h'; create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; -- select sleep(30); @@ -105,7 +97,6 @@ select * from t3 order by L2_DISTANCE(b, "[59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, select * from t3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25]") ASC LIMIT 1; drop cdc task `__mo_cdc_hnsw_cdc_t3_idx3`; -drop pitr if exists `__mo_table_pitr_hnsw_cdc_t3`; drop table t3; -- end t3 From 839a494b3d4eacf5aee605eaaac0d04b51859bef Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 8 Jul 2025 13:23:21 +0100 Subject: [PATCH 218/335] fix drop index --- pkg/idxcdc/util.go | 4 ++++ pkg/sql/compile/cdc_util.go | 7 ++++++- pkg/sql/compile/ddl.go | 11 +++++------ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/pkg/idxcdc/util.go b/pkg/idxcdc/util.go index ea272bf5285d4..3fe5d04e07431 100644 --- a/pkg/idxcdc/util.go +++ b/pkg/idxcdc/util.go @@ -394,6 +394,7 @@ func appendFloat64(buf []byte, value float64, bitSize int) []byte { return buf } +/* func floatArrayToString[T float32 | float64](arr []T) string { str := "'[" for i, v := range arr { @@ -406,6 +407,7 @@ func floatArrayToString[T float32 | float64](arr []T) string { str += "]'" return str } +*/ //func getPkIdxesAndTypes(ctx context.Context, tableDef *plan.TableDef) (pkIdxes []int, pkAndTsTypes []*types.Type, err error) { // pkIdxes = make([]int, 0, len(tableDef.Pkey.Names)) @@ -761,6 +763,7 @@ func SplitDbTblKey(dbTblKey string) (dbName, tblName string) { return s[0], s[1] } +/* func addStartMetrics(insertData, deleteData *batch.Batch) { count := float64(batchRowCount(insertData) + batchRowCount(deleteData)) allocated := float64(insertData.Allocated() + deleteData.Allocated()) @@ -784,6 +787,7 @@ func addTailEndMetrics(bat *AtomicBatch) { v2.CdcHoldChangesBytesGauge.Sub(allocated) v2.CdcSinkRecordCounter.Add(count) } +*/ // uriHasPrefix func uriHasPrefix(uri string, prefix string) bool { diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 6c0a0f03b3d25..72165215b9b13 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -176,6 +176,7 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { idxmap := make(map[string]bool) var err error + hasindex := false for _, idx := range tabledef.Indexes { if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || @@ -195,6 +196,7 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta } } if async { + hasindex = true _, e := DeleteCdcTask(c, idxcdc.ConsumerInfo{DbName: dbname, TableName: tablename, IndexName: idx.IndexName}) if e != nil { return e @@ -205,7 +207,10 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta } // remove pitr - return DeleteIndexPitr(c, dbname, tablename) + if hasindex { + return DeleteIndexPitr(c, dbname, tablename) + } + return nil } func getSinkerTypeFromAlgo(algo string) int8 { diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 0d8d43862ced0..40b9af0ae27dc 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2161,12 +2161,11 @@ func (s *Scope) DropIndex(c *Compile) error { return err } - } - - //3. HNSWCDC delete cdc table task for vector, fulltext index - err = DropIndexCdcTask(c, oldTableDef, qry.Database, qry.Table, qry.IndexName) - if err != nil { - return err + //3. HNSWCDC delete cdc table task for vector, fulltext index + err = DropIndexCdcTask(c, oldTableDef, qry.Database, qry.Table, qry.IndexName) + if err != nil { + return err + } } //4. delete index object from mo_catalog.mo_indexes From 6ed579a6cacd4542b2cf5555f2ecf632d3df17b1 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 8 Jul 2025 14:01:35 +0100 Subject: [PATCH 219/335] fix sca --- pkg/sql/compile/cdc_util.go | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 72165215b9b13..d5dc19606fd4f 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -55,22 +55,6 @@ func getIndexPitrName(dbname string, tablename string) string { func CreateIndexPitr(c *Compile, dbname string, tablename string) (string, error) { var sql string pitr_name := getIndexPitrName(dbname, tablename) - - // check pitr exists before create - sql = fmt.Sprintf("SHOW PITR WHERE pitr_name = '%s'", pitr_name) - /* - res, err := c.runSqlWithResult(sql, NoAccountId) - if err != nil { - return pitr_name, err - } - defer res.Close() - - if len(res.Batches) > 0 && res.Batches[0].RowCount() > 0 { - // pitr already exists - return pitr_name, nil - } - */ - sql = fmt.Sprintf("CREATE PITR IF NOT EXISTS `%s` FOR TABLE `%s` `%s` range 2 'h' INTERNAL;", pitr_name, dbname, tablename) logutil.Infof("Create Index Pitr %s. sql: %s:", pitr_name, sql) err := c.runSql(sql) From 9edbd11f74ce8b6201d3aa8e01259af15b563c56 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 9 Jul 2025 16:18:42 +0100 Subject: [PATCH 220/335] bug fix thread id --- pkg/vectorindex/hnsw/sync.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index a321c0811cc65..ae01e67751a1f 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -241,11 +241,11 @@ func (s *HnswSync) checkContains(proc *process.Process) (maxcap uint, midx []int nthread := int(s.tblcfg.ThreadsBuild) for k := 0; k < nthread; k++ { wg.Add(1) - go func() { + go func(tid int) { defer wg.Done() for j, row := range s.cdc.Data { - if j%nthread != k { + if j%nthread != tid { continue } @@ -271,7 +271,7 @@ func (s *HnswSync) checkContains(proc *process.Process) (maxcap uint, midx []int } } - }() + }(k) } wg.Wait() @@ -293,12 +293,12 @@ func (s *HnswSync) insertAllInParallel(proc *process.Process, maxcap uint) error nthread := int(s.tblcfg.ThreadsBuild) for i := 0; i < nthread; i++ { wg.Add(1) - go func() { + go func(tid int) { defer wg.Done() for j, row := range s.cdc.Data { - if j%nthread != i { + if j%nthread != tid { continue } @@ -319,7 +319,7 @@ func (s *HnswSync) insertAllInParallel(proc *process.Process, maxcap uint) error // Len counter already incremented. Just add to last model last.AddWithoutIncr(row.PKey, row.Vec) } - }() + }(i) } wg.Wait() From f1b19627ab03cbc0ccda7d82788f3fdea7916f65 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 22 Jul 2025 14:43:31 +0100 Subject: [PATCH 221/335] rename idxcdc to iscp --- pkg/{idxcdc => iscp}/api.go | 2 +- pkg/{idxcdc => iscp}/consumer.go | 94 +++++++++++--------- pkg/{idxcdc => iscp}/consumer_test.go | 20 +++-- pkg/{idxcdc => iscp}/index_sqlwriter.go | 2 +- pkg/{idxcdc => iscp}/index_sqlwriter_test.go | 2 +- pkg/{idxcdc => iscp}/types.go | 40 +++++++-- pkg/{idxcdc => iscp}/util.go | 2 +- pkg/sql/compile/cdc_util.go | 26 +++--- 8 files changed, 114 insertions(+), 74 deletions(-) rename pkg/{idxcdc => iscp}/api.go (98%) rename pkg/{idxcdc => iscp}/consumer.go (90%) rename pkg/{idxcdc => iscp}/consumer_test.go (95%) rename pkg/{idxcdc => iscp}/index_sqlwriter.go (99%) rename pkg/{idxcdc => iscp}/index_sqlwriter_test.go (99%) rename pkg/{idxcdc => iscp}/types.go (92%) rename pkg/{idxcdc => iscp}/util.go (99%) diff --git a/pkg/idxcdc/api.go b/pkg/iscp/api.go similarity index 98% rename from pkg/idxcdc/api.go rename to pkg/iscp/api.go index 932e4fd37e768..e5418d8a949e3 100644 --- a/pkg/idxcdc/api.go +++ b/pkg/iscp/api.go @@ -11,7 +11,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -package idxcdc +package iscp import ( "context" diff --git a/pkg/idxcdc/consumer.go b/pkg/iscp/consumer.go similarity index 90% rename from pkg/idxcdc/consumer.go rename to pkg/iscp/consumer.go index 2c3f06415dfcb..bb7d3c44cb53c 100644 --- a/pkg/idxcdc/consumer.go +++ b/pkg/iscp/consumer.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idxcdc +package iscp import ( "context" @@ -109,7 +109,7 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev datatype := r.GetDataType() - if datatype == int8(OutputTypeSnapshot) { + if datatype == ISCPDataType_Snapshot { // SNAPSHOT for { select { @@ -175,12 +175,56 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev } +func (c *IndexConsumer) processISCPData(ctx context.Context, data *ISCPData, datatype int8, errch chan error) bool { + // release the data + defer data.Done() + + insertBatch := data.insertBatch + deleteBatch := data.deleteBatch + noMoreData := data.noMoreData + err := data.err + if err != nil { + errch <- err + return true + } + + if noMoreData { + err := c.flushCdc() + if err != nil { + errch <- err + } + close(c.sqlBufSendCh) + return noMoreData + } + + // update index + + if datatype == ISCPDataType_Snapshot { + // SNAPSHOT + err := c.sinkSnapshot(ctx, insertBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } + + } else { + // sinkTail will save sql to the slice + err := c.sinkTail(ctx, insertBatch, deleteBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } + } + + return noMoreData + +} + func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { noMoreData := false - var insertBatch, deleteBatch *AtomicBatch errch := make(chan error, 2) - var err error - c.sqlBufSendCh = make(chan []byte) defer func() { c.sqlBufSendCh = nil @@ -199,44 +243,8 @@ func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { // read data for !noMoreData { - - insertBatch, deleteBatch, noMoreData, err = r.Next() - if err != nil { - errch <- err - noMoreData = true - continue - } - - if noMoreData { - err := c.flushCdc() - if err != nil { - errch <- err - } - close(c.sqlBufSendCh) - continue - } - - // update index - - if datatype == int8(OutputTypeSnapshot) { - // SNAPSHOT - err := c.sinkSnapshot(ctx, insertBatch) - if err != nil { - // error out - errch <- err - noMoreData = true - } - - } else { - // sinkTail will save sql to the slice - err := c.sinkTail(ctx, insertBatch, deleteBatch) - if err != nil { - // error out - errch <- err - noMoreData = true - } - } - + data := r.Next() + noMoreData = c.processISCPData(ctx, data, datatype, errch) } wg.Wait() diff --git a/pkg/idxcdc/consumer_test.go b/pkg/iscp/consumer_test.go similarity index 95% rename from pkg/idxcdc/consumer_test.go rename to pkg/iscp/consumer_test.go index 85482543f55f2..811322ad4faef 100644 --- a/pkg/idxcdc/consumer_test.go +++ b/pkg/iscp/consumer_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idxcdc +package iscp import ( "context" @@ -43,13 +43,17 @@ type MockRetriever struct { dtype int8 } -func (r *MockRetriever) Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) { +func (r *MockRetriever) Next() *ISCPData { logutil.Infof("TxRetriever Next()") if !r.noMoreData { r.noMoreData = true - return r.insertBatch, r.deleteBatch, false, nil + d := &ISCPData{insertBatch: r.insertBatch, deleteBatch: r.deleteBatch, noMoreData: false, err: nil} + d.Set(0) // never close + return d } - return nil, nil, r.noMoreData, nil + d := &ISCPData{insertBatch: nil, deleteBatch: nil, noMoreData: r.noMoreData, err: nil} + d.Set(0) // never close + return d } func (r *MockRetriever) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error { @@ -193,7 +197,7 @@ func TestConsumer(t *testing.T) { insertBatch: nil, deleteBatch: nil, noMoreData: true, - dtype: int8(OutputTypeSnapshot), + dtype: ISCPDataType_Snapshot, } tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) @@ -240,7 +244,7 @@ func TestHnswSnapshot(t *testing.T) { } output := &MockRetriever{ - dtype: int8(OutputTypeSnapshot), + dtype: ISCPDataType_Snapshot, insertBatch: insertAtomicBat, deleteBatch: nil, noMoreData: false, @@ -260,7 +264,7 @@ func TestHnswSnapshot(t *testing.T) { require.NoError(t, err) output := &MockRetriever{ - dtype: int8(OutputTypeSnapshot), + dtype: ISCPDataType_Snapshot, insertBatch: nil, deleteBatch: nil, noMoreData: true, @@ -325,7 +329,7 @@ func TestHnswTail(t *testing.T) { delAtomicBat.Rows.Set(AtomicBatchRow{Ts: delfromTs, Pk: []byte{2}, Offset: 1, Src: bat}) output := &MockRetriever{ - dtype: int8(OutputTypeTail), + dtype: ISCPDataType_Tail, insertBatch: insertAtomicBat, deleteBatch: delAtomicBat, noMoreData: false, diff --git a/pkg/idxcdc/index_sqlwriter.go b/pkg/iscp/index_sqlwriter.go similarity index 99% rename from pkg/idxcdc/index_sqlwriter.go rename to pkg/iscp/index_sqlwriter.go index 16423444f4139..b17fccbc6cfc2 100644 --- a/pkg/idxcdc/index_sqlwriter.go +++ b/pkg/iscp/index_sqlwriter.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idxcdc +package iscp import ( "context" diff --git a/pkg/idxcdc/index_sqlwriter_test.go b/pkg/iscp/index_sqlwriter_test.go similarity index 99% rename from pkg/idxcdc/index_sqlwriter_test.go rename to pkg/iscp/index_sqlwriter_test.go index bb12e457e2cff..587d27f67827b 100644 --- a/pkg/idxcdc/index_sqlwriter_test.go +++ b/pkg/iscp/index_sqlwriter_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idxcdc +package iscp import ( "context" diff --git a/pkg/idxcdc/types.go b/pkg/iscp/types.go similarity index 92% rename from pkg/idxcdc/types.go rename to pkg/iscp/types.go index c2204ff7ed9ca..5d3358facb569 100644 --- a/pkg/idxcdc/types.go +++ b/pkg/iscp/types.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idxcdc +package iscp import ( "bytes" @@ -20,6 +20,7 @@ import ( "encoding/hex" "encoding/json" "fmt" + "sync/atomic" "time" "github.com/google/uuid" @@ -56,8 +57,35 @@ const ( CDCPitrGranularity_All = "*" ) +type ISCPData struct { + refcnt atomic.Int32 + + insertBatch *AtomicBatch + deleteBatch *AtomicBatch + noMoreData bool + err error +} + +func (d *ISCPData) Set(cnt int) { + d.refcnt.Add(int32(cnt)) +} + +func (d *ISCPData) Done() { + newRefcnt := d.refcnt.Add(-1) + if newRefcnt == 0 { + if d.insertBatch != nil { + d.insertBatch.Close() + d.insertBatch = nil + } + if d.deleteBatch != nil { + d.deleteBatch.Close() + d.deleteBatch = nil + } + } +} + type DataRetriever interface { - Next() (insertBatch *AtomicBatch, deleteBatch *AtomicBatch, noMoreData bool, err error) + Next() *ISCPData UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error GetDataType() int8 } @@ -79,13 +107,12 @@ func NewTaskId() TaskId { return uuid.Must(uuid.NewV7()) } -type OutputType int8 - const ( - OutputTypeSnapshot OutputType = iota - OutputTypeTail + ISCPDataType_Snapshot int8 = iota + ISCPDataType_Tail ) +/* func (t OutputType) String() string { switch t { case OutputTypeSnapshot: @@ -96,6 +123,7 @@ func (t OutputType) String() string { return "usp output type" } } +*/ type RowType int diff --git a/pkg/idxcdc/util.go b/pkg/iscp/util.go similarity index 99% rename from pkg/idxcdc/util.go rename to pkg/iscp/util.go index 3fe5d04e07431..423d5a51a01e7 100644 --- a/pkg/idxcdc/util.go +++ b/pkg/iscp/util.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package idxcdc +package iscp import ( "context" diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index d5dc19606fd4f..aefcd7ffd1ef3 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -19,31 +19,31 @@ import ( "fmt" "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/idxcdc" + "github.com/matrixorigin/matrixone/pkg/iscp" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/txn/client" ) /* CDC APIs */ -func RegisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, pitr_name string, info *idxcdc.ConsumerInfo) (bool, error) { +func RegisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, pitr_name string, info *iscp.ConsumerInfo) (bool, error) { //dummyurl := "mysql://root:111@127.0.0.1:6001" // sql = fmt.Sprintf("CREATE CDC `%s` '%s' 'indexsync' '%s' '%s.%s' {'Level'='table'};", cdcname, dummyurl, dummyurl, qryDatabase, srctbl) - return idxcdc.RegisterJob(ctx, cnUUID, txn, pitr_name, info) + return iscp.RegisterJob(ctx, cnUUID, txn, pitr_name, info) } -func UnregisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, info *idxcdc.ConsumerInfo) (bool, error) { - return idxcdc.UnregisterJob(ctx, cnUUID, txn, info) +func UnregisterJob(ctx context.Context, cnUUID string, txn client.TxnOperator, info *iscp.ConsumerInfo) (bool, error) { + return iscp.UnregisterJob(ctx, cnUUID, txn, info) } /* start here */ -func CreateCdcTask(c *Compile, pitr_name string, consumerinfo idxcdc.ConsumerInfo) (bool, error) { +func CreateCdcTask(c *Compile, pitr_name string, consumerinfo iscp.ConsumerInfo) (bool, error) { logutil.Infof("Create Index Task %v", consumerinfo) return RegisterJob(c.proc.Ctx, c.proc.GetService(), c.proc.GetTxnOperator(), pitr_name, &consumerinfo) } -func DeleteCdcTask(c *Compile, consumerinfo idxcdc.ConsumerInfo) (bool, error) { +func DeleteCdcTask(c *Compile, consumerinfo iscp.ConsumerInfo) (bool, error) { logutil.Infof("Delete Index Task %v", consumerinfo) return UnregisterJob(c.proc.Ctx, c.proc.GetService(), c.proc.GetTxnOperator(), &consumerinfo) } @@ -103,7 +103,7 @@ func CreateIndexCdcTask(c *Compile, dbname string, tablename string, indexname s } // create index cdc task - ok, err := CreateCdcTask(c, pitr_name, idxcdc.ConsumerInfo{ConsumerType: sinker_type, DbName: dbname, TableName: tablename, IndexName: indexname}) + ok, err := CreateCdcTask(c, pitr_name, iscp.ConsumerInfo{ConsumerType: sinker_type, DbName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } @@ -125,7 +125,7 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen } // delete index cdc task - _, err = DeleteCdcTask(c, idxcdc.ConsumerInfo{DbName: dbname, TableName: tablename, IndexName: indexname}) + _, err = DeleteCdcTask(c, iscp.ConsumerInfo{DbName: dbname, TableName: tablename, IndexName: indexname}) if err != nil { return err } @@ -181,7 +181,7 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta } if async { hasindex = true - _, e := DeleteCdcTask(c, idxcdc.ConsumerInfo{DbName: dbname, TableName: tablename, IndexName: idx.IndexName}) + _, e := DeleteCdcTask(c, iscp.ConsumerInfo{DbName: dbname, TableName: tablename, IndexName: idx.IndexName}) if e != nil { return e } @@ -199,11 +199,11 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta func getSinkerTypeFromAlgo(algo string) int8 { if catalog.IsHnswIndexAlgo(algo) { - return int8(idxcdc.ConsumerType_IndexSync) + return int8(iscp.ConsumerType_IndexSync) } else if catalog.IsIvfIndexAlgo(algo) { - return int8(idxcdc.ConsumerType_IndexSync) + return int8(iscp.ConsumerType_IndexSync) } else if catalog.IsFullTextIndexAlgo(algo) { - return int8(idxcdc.ConsumerType_IndexSync) + return int8(iscp.ConsumerType_IndexSync) } return int8(0) } From 44c63ff8a6482daeb3cc79bc0e5f0d036b3d695f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 22 Jul 2025 16:10:14 +0100 Subject: [PATCH 222/335] fix sca --- pkg/cdc/index_sinker_test.go | 2 +- pkg/iscp/consumer_test.go | 2 +- pkg/vectorindex/hnsw/model_test.go | 2 +- pkg/vectorindex/hnsw/sync_test.go | 22 +++++++++++----------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pkg/cdc/index_sinker_test.go b/pkg/cdc/index_sinker_test.go index ed428214b529b..2ee095618cf8c 100644 --- a/pkg/cdc/index_sinker_test.go +++ b/pkg/cdc/index_sinker_test.go @@ -444,7 +444,7 @@ func TestHnswSyncSinker_RunError(t *testing.T) { func TestHnswSyncSinker_Sink(t *testing.T) { ctx := context.Background() - proc := testutil.NewProcess() + proc := testutil.NewProcess(t) sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) defer sqlexecstub.Reset() diff --git a/pkg/iscp/consumer_test.go b/pkg/iscp/consumer_test.go index 811322ad4faef..587e7e8c8ba80 100644 --- a/pkg/iscp/consumer_test.go +++ b/pkg/iscp/consumer_test.go @@ -212,7 +212,7 @@ func TestConsumer(t *testing.T) { func TestHnswSnapshot(t *testing.T) { - proc := testutil.NewProcess() + proc := testutil.NewProcess(t) ctx, cancel := context.WithCancel(context.Background()) defer cancel() diff --git a/pkg/vectorindex/hnsw/model_test.go b/pkg/vectorindex/hnsw/model_test.go index 84bcf03691da8..531fadb133ac5 100644 --- a/pkg/vectorindex/hnsw/model_test.go +++ b/pkg/vectorindex/hnsw/model_test.go @@ -59,7 +59,7 @@ func TestModel(t *testing.T) { v1000 := []float32{1000, 2000, 3000} m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) // stub runSql function runSql = mock_runSql diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index 26d614d7d7935..cea0c9ffe4775 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -56,7 +56,7 @@ func mock_runTxn(proc *process.Process, fn func(exec executor.TxnExecutor) error func TestSyncUpsertWithEmpty(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql_empty runSql_streaming = mock_runSql_streaming @@ -84,7 +84,7 @@ func TestSyncUpsertWithEmpty(t *testing.T) { func TestSyncUpsert(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql runSql_streaming = mock_runSql_streaming @@ -113,7 +113,7 @@ func TestSyncUpsert(t *testing.T) { func TestSyncDelete(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql runSql_streaming = mock_runSql_streaming @@ -138,7 +138,7 @@ func TestSyncDelete(t *testing.T) { func TestSyncDeleteAndInsert(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql runSql_streaming = mock_runSql_streaming @@ -172,7 +172,7 @@ func TestSyncDeleteAndInsert(t *testing.T) { func TestSyncUpdate(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql runSql_streaming = mock_runSql_streaming @@ -198,7 +198,7 @@ func TestSyncUpdate(t *testing.T) { func TestSyncDeleteAndUpsert(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql runSql_streaming = mock_runSql_streaming @@ -232,7 +232,7 @@ func TestSyncDeleteAndUpsert(t *testing.T) { func TestSyncAddOneModel(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql runSql_streaming = mock_runSql_streaming @@ -261,7 +261,7 @@ func TestSyncAddOneModel(t *testing.T) { func TestSyncDelete2Files(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql_2files runSql_streaming = mock_runSql_streaming_2files @@ -286,7 +286,7 @@ func TestSyncDelete2Files(t *testing.T) { func TestSyncDeleteShuffle2Files(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql_2files runSql_streaming = mock_runSql_streaming_2files @@ -314,7 +314,7 @@ func TestSyncDeleteShuffle2Files(t *testing.T) { func TestSyncUpdateShuffle2Files(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql_2files runSql_streaming = mock_runSql_streaming_2files @@ -343,7 +343,7 @@ func TestSyncUpdateShuffle2Files(t *testing.T) { func TestSyncUpdateInsertShuffle2Files(t *testing.T) { m := mpool.MustNewZero() - proc := testutil.NewProcessWithMPool("", m) + proc := testutil.NewProcessWithMPool(t, "", m) runSql = mock_runSql_2files runSql_streaming = mock_runSql_streaming_2files From 254f20e17b6fb1199334b3645e686d005df79ea7 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 23 Jul 2025 09:06:05 +0100 Subject: [PATCH 223/335] fix sca --- pkg/cdc/index_sinker_test.go | 2 +- pkg/iscp/consumer_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/cdc/index_sinker_test.go b/pkg/cdc/index_sinker_test.go index 2ee095618cf8c..6c3c298057aa9 100644 --- a/pkg/cdc/index_sinker_test.go +++ b/pkg/cdc/index_sinker_test.go @@ -636,7 +636,7 @@ func TestHnswSyncSinker_ErrorHandling(t *testing.T) { func TestHnswSyncSinker_Sink_AtomicBatch(t *testing.T) { - proc := testutil.NewProcess() + proc := testutil.NewProcess(t) dbTblInfo := newTestDbTableInfo() ctx := context.Background() diff --git a/pkg/iscp/consumer_test.go b/pkg/iscp/consumer_test.go index 587e7e8c8ba80..c4a669bb3ed6a 100644 --- a/pkg/iscp/consumer_test.go +++ b/pkg/iscp/consumer_test.go @@ -278,7 +278,7 @@ func TestHnswSnapshot(t *testing.T) { func TestHnswTail(t *testing.T) { - proc := testutil.NewProcess() + proc := testutil.NewProcess(t) ctx, cancel := context.WithCancel(context.Background()) defer cancel() From cb1f32305da1844ea7a39e52dde6e0b3e119b57b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 19 Aug 2025 16:06:51 +0100 Subject: [PATCH 224/335] new index consumer --- pkg/iscp/mock_consumer.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/iscp/mock_consumer.go b/pkg/iscp/mock_consumer.go index a807aa41dcfd1..0fc3924ab052e 100644 --- a/pkg/iscp/mock_consumer.go +++ b/pkg/iscp/mock_consumer.go @@ -50,6 +50,10 @@ func NewConsumer( if info.ConsumerType == int8(ConsumerType_CNConsumer) { return NewInteralSqlConsumer(cnUUID, tableDef, jobID, info) } + if info.ConsumerType == int8(ConsumerType_IndexSync) { + return NewIndexConsumer(cnUUID, tableDef, jobID, info) + } + panic("todo") } From 16c0cd36819d81f434ceb89e4a44be4d79e90b14 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 20 Aug 2025 09:49:43 +0100 Subject: [PATCH 225/335] uncomment used code --- pkg/iscp/util.go | 256 ++++++++++++++++++++++++----------------------- 1 file changed, 130 insertions(+), 126 deletions(-) diff --git a/pkg/iscp/util.go b/pkg/iscp/util.go index 50dd4eed40f03..7abb3be197d15 100644 --- a/pkg/iscp/util.go +++ b/pkg/iscp/util.go @@ -16,6 +16,8 @@ package iscp import ( "context" + "encoding/hex" + "slices" // "encoding/hex" "math" // "slices" @@ -28,6 +30,8 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/common/mpool" "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/container/bytejson" + // "github.com/matrixorigin/matrixone/pkg/container/bytejson" "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" @@ -74,12 +78,12 @@ func extractRowFromVector(ctx context.Context, vec *vector.Vector, i int, row [] } switch vec.GetType().Oid { //get col - // case types.T_json: - // row[i] = types.DecodeJson(copyBytes(vec.GetBytesAt(rowIndex))) + case types.T_json: + row[i] = types.DecodeJson(copyBytes(vec.GetBytesAt(rowIndex))) case types.T_bool: row[i] = vector.GetFixedAtWithTypeCheck[bool](vec, rowIndex) - // case types.T_bit: - // row[i] = vector.GetFixedAtWithTypeCheck[uint64](vec, rowIndex) + case types.T_bit: + row[i] = vector.GetFixedAtWithTypeCheck[uint64](vec, rowIndex) case types.T_int8: row[i] = vector.GetFixedAtWithTypeCheck[int8](vec, rowIndex) case types.T_uint8: @@ -102,46 +106,46 @@ func extractRowFromVector(ctx context.Context, vec *vector.Vector, i int, row [] row[i] = vector.GetFixedAtWithTypeCheck[float64](vec, rowIndex) case types.T_char, types.T_varchar, types.T_blob, types.T_text, types.T_binary, types.T_varbinary, types.T_datalink: row[i] = copyBytes(vec.GetBytesAt(rowIndex)) - // case types.T_array_float32: - // // NOTE: Don't merge it with T_varchar. You will get raw binary in the SQL output - // //+------------------------------+ - // //| abs(cast([1,2,3] as vecf32)) | - // //+------------------------------+ - // //| �? @ @@ | - // //+------------------------------+ - // row[i] = vector.GetArrayAt[float32](vec, rowIndex) - // case types.T_array_float64: - // row[i] = vector.GetArrayAt[float64](vec, rowIndex) - // case types.T_date: - // row[i] = vector.GetFixedAtWithTypeCheck[types.Date](vec, rowIndex) - // case types.T_datetime: - // scale := vec.GetType().Scale - // row[i] = vector.GetFixedAtWithTypeCheck[types.Datetime](vec, rowIndex).String2(scale) - // case types.T_time: - // scale := vec.GetType().Scale - // row[i] = vector.GetFixedAtWithTypeCheck[types.Time](vec, rowIndex).String2(scale) + case types.T_array_float32: + // NOTE: Don't merge it with T_varchar. You will get raw binary in the SQL output + //+------------------------------+ + //| abs(cast([1,2,3] as vecf32)) | + //+------------------------------+ + //| �? @ @@ | + //+------------------------------+ + row[i] = vector.GetArrayAt[float32](vec, rowIndex) + case types.T_array_float64: + row[i] = vector.GetArrayAt[float64](vec, rowIndex) + case types.T_date: + row[i] = vector.GetFixedAtWithTypeCheck[types.Date](vec, rowIndex) + case types.T_datetime: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Datetime](vec, rowIndex).String2(scale) + case types.T_time: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Time](vec, rowIndex).String2(scale) case types.T_timestamp: scale := vec.GetType().Scale //TODO:get the right timezone //timeZone := ses.GetTimeZone() timeZone := time.UTC row[i] = vector.GetFixedAtWithTypeCheck[types.Timestamp](vec, rowIndex).String2(timeZone, scale) - // case types.T_decimal64: - // scale := vec.GetType().Scale - // row[i] = vector.GetFixedAtWithTypeCheck[types.Decimal64](vec, rowIndex).Format(scale) - // case types.T_decimal128: - // scale := vec.GetType().Scale - // row[i] = vector.GetFixedAtWithTypeCheck[types.Decimal128](vec, rowIndex).Format(scale) - // case types.T_uuid: - // row[i] = vector.GetFixedAtWithTypeCheck[types.Uuid](vec, rowIndex).String() - // case types.T_Rowid: - // row[i] = vector.GetFixedAtWithTypeCheck[types.Rowid](vec, rowIndex) - // case types.T_Blockid: - // row[i] = vector.GetFixedAtWithTypeCheck[types.Blockid](vec, rowIndex) - // case types.T_TS: - // row[i] = vector.GetFixedAtWithTypeCheck[types.TS](vec, rowIndex) - // case types.T_enum: - // row[i] = vector.GetFixedAtWithTypeCheck[types.Enum](vec, rowIndex) + case types.T_decimal64: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Decimal64](vec, rowIndex).Format(scale) + case types.T_decimal128: + scale := vec.GetType().Scale + row[i] = vector.GetFixedAtWithTypeCheck[types.Decimal128](vec, rowIndex).Format(scale) + case types.T_uuid: + row[i] = vector.GetFixedAtWithTypeCheck[types.Uuid](vec, rowIndex).String() + case types.T_Rowid: + row[i] = vector.GetFixedAtWithTypeCheck[types.Rowid](vec, rowIndex) + case types.T_Blockid: + row[i] = vector.GetFixedAtWithTypeCheck[types.Blockid](vec, rowIndex) + case types.T_TS: + row[i] = vector.GetFixedAtWithTypeCheck[types.TS](vec, rowIndex) + case types.T_enum: + row[i] = vector.GetFixedAtWithTypeCheck[types.Enum](vec, rowIndex) default: logutil.Error( "Failed to extract row from vector, unsupported type", @@ -172,11 +176,11 @@ func convertColIntoSql( } var temp string switch typ.Oid { //get col - // case types.T_json: - // sqlBuff = appendByte(sqlBuff, '\'') - // temp = data.(bytejson.ByteJson).String() - // sqlBuff = appendString(sqlBuff, temp) - // sqlBuff = appendByte(sqlBuff, '\'') + case types.T_json: + sqlBuff = appendByte(sqlBuff, '\'') + temp = data.(bytejson.ByteJson).String() + sqlBuff = appendString(sqlBuff, temp) + sqlBuff = appendByte(sqlBuff, '\'') case types.T_bool: b := data.(bool) if b { @@ -185,15 +189,15 @@ func convertColIntoSql( temp = "false" } sqlBuff = appendString(sqlBuff, temp) - // case types.T_bit: - // value := data.(uint64) - // bitLength := typ.Width - // byteLength := (bitLength + 7) / 8 - // b := types.EncodeUint64(&value)[:byteLength] - // slices.Reverse(b) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendBytes(sqlBuff, b) - // sqlBuff = appendByte(sqlBuff, '\'') + case types.T_bit: + value := data.(uint64) + bitLength := typ.Width + byteLength := (bitLength + 7) / 8 + b := types.EncodeUint64(&value)[:byteLength] + slices.Reverse(b) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendBytes(sqlBuff, b) + sqlBuff = appendByte(sqlBuff, '\'') case types.T_int8: value := data.(int8) sqlBuff = appendInt64(sqlBuff, int64(value)) @@ -224,8 +228,8 @@ func convertColIntoSql( case types.T_float64: value := data.(float64) sqlBuff = appendFloat64(sqlBuff, value, 64) - // case types.T_binary, types.T_varbinary, types.T_blob: - // sqlBuff = appendHex(sqlBuff, data.([]byte)) + case types.T_binary, types.T_varbinary, types.T_blob: + sqlBuff = appendHex(sqlBuff, data.([]byte)) case types.T_char, types.T_varchar, types.T_text, @@ -236,77 +240,77 @@ func convertColIntoSql( sqlBuff = appendByte(sqlBuff, '\'') sqlBuff = appendBytes(sqlBuff, []byte(value)) sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_array_float32: - // // NOTE: Don't merge it with T_varchar. You will get raw binary in the SQL output - // //+------------------------------+ - // //| abs(cast([1,2,3] as vecf32)) | - // //+------------------------------+ - // //| �? @ @@ | - // //+------------------------------+ - // value := data.([]float32) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, types.ArrayToString(value)) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_array_float64: - // value := data.([]float64) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, types.ArrayToString(value)) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_date: - // value := data.(types.Date) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value.String()) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_datetime: - // value := data.(string) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_time: - // value := data.(string) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value) - // sqlBuff = appendByte(sqlBuff, '\'') + case types.T_array_float32: + // NOTE: Don't merge it with T_varchar. You will get raw binary in the SQL output + //+------------------------------+ + //| abs(cast([1,2,3] as vecf32)) | + //+------------------------------+ + //| �? @ @@ | + //+------------------------------+ + value := data.([]float32) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, types.ArrayToString(value)) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_array_float64: + value := data.([]float64) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, types.ArrayToString(value)) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_date: + value := data.(types.Date) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_datetime: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_time: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') case types.T_timestamp: value := data.(string) sqlBuff = appendByte(sqlBuff, '\'') sqlBuff = appendString(sqlBuff, value) sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_decimal64: - // value := data.(string) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_decimal128: - // value := data.(string) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_uuid: - // value := data.(string) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_Rowid: - // value := data.(types.Rowid) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value.String()) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_Blockid: - // value := data.(types.Blockid) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value.String()) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_TS: - // value := data.(types.TS) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value.ToString()) - // sqlBuff = appendByte(sqlBuff, '\'') - // case types.T_enum: - // value := data.(types.Enum) - // sqlBuff = appendByte(sqlBuff, '\'') - // sqlBuff = appendString(sqlBuff, value.String()) - // sqlBuff = appendByte(sqlBuff, '\'') + case types.T_decimal64: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_decimal128: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_uuid: + value := data.(string) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_Rowid: + value := data.(types.Rowid) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_Blockid: + value := data.(types.Blockid) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_TS: + value := data.(types.TS) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.ToString()) + sqlBuff = appendByte(sqlBuff, '\'') + case types.T_enum: + value := data.(types.Enum) + sqlBuff = appendByte(sqlBuff, '\'') + sqlBuff = appendString(sqlBuff, value.String()) + sqlBuff = appendByte(sqlBuff, '\'') default: logutil.Error( "Failed to extract row from vector, unsupported type", @@ -317,12 +321,12 @@ func convertColIntoSql( return sqlBuff, nil } -// func appendHex(dst []byte, src []byte) []byte { -// dst = append(dst, "x'"...) -// dst = hex.AppendEncode(dst, src) -// dst = append(dst, '\'') -// return dst -// } +func appendHex(dst []byte, src []byte) []byte { + dst = append(dst, "x'"...) + dst = hex.AppendEncode(dst, src) + dst = append(dst, '\'') + return dst +} func appendByte(buf []byte, d byte) []byte { return append(buf, d) From 6e02233fac9c127ee45a915f963375a436814f5e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 22 Aug 2025 10:31:57 +0100 Subject: [PATCH 226/335] update --- pkg/iscp/consumer_test.go | 5 ++++- pkg/iscp/index_sqlwriter.go | 16 ++++++++-------- pkg/sql/compile/cdc_util.go | 19 ++++++++++++------- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/pkg/iscp/consumer_test.go b/pkg/iscp/consumer_test.go index 8dcfea624f862..8ccc7e0f8a23a 100644 --- a/pkg/iscp/consumer_test.go +++ b/pkg/iscp/consumer_test.go @@ -110,6 +110,9 @@ func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType t func newTestConsumerInfo() *ConsumerInfo { return &ConsumerInfo{ ConsumerType: 0, + DBName: "test_db", + TableName: "test_tbl", + IndexName: "hnsw_idx", } } @@ -117,7 +120,7 @@ func newTestJobID() JobID { return JobID{ DBName: "test_db", TableName: "test_tbl", - JobName: "hnsw_idx", + JobName: "index_hnsw_idx", } } diff --git a/pkg/iscp/index_sqlwriter.go b/pkg/iscp/index_sqlwriter.go index d6699e0ef87f9..0f12db2c62205 100644 --- a/pkg/iscp/index_sqlwriter.go +++ b/pkg/iscp/index_sqlwriter.go @@ -302,7 +302,7 @@ func (w *FulltextSqlWriter) ToSql() ([]byte, error) { } func (w *FulltextSqlWriter) toFulltextDelete() ([]byte, error) { - sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.jobID.DBName, w.indexTableName, catalog.FullTextIndex_TabCol_Id, string(w.vbuf)) + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.info.DBName, w.indexTableName, catalog.FullTextIndex_TabCol_Id, string(w.vbuf)) return []byte(sql), nil } @@ -411,8 +411,8 @@ func NewHnswSqlWriter(algo string, jobID JobID, info *ConsumerInfo, tabledef *pl w.meta = vectorindex.HnswCdcParam{ MetaTbl: meta, IndexTbl: storage, - DbName: jobID.DBName, - Table: jobID.TableName, + DbName: info.DBName, + Table: info.TableName, Params: hnswparam, Dimension: tabledef.Cols[w.partsPos[0]].Typ.Width, } @@ -598,7 +598,7 @@ func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { // catalog.SystemSI_IVFFLAT_TblCol_Entries_pk // catalog.CPrimaryKeyColName func (w *IvfflatSqlWriter) toIvfflatDelete() ([]byte, error) { - sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.jobID.DBName, w.entries_tbl, + sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.info.DBName, w.entries_tbl, catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, string(w.vbuf)) return []byte(sql), nil @@ -621,9 +621,9 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { cnames_str := strings.Join(cnames, ", ") if upsert { - sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.jobID.DBName, w.entries_tbl) + sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.info.DBName, w.entries_tbl) } else { - sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.jobID.DBName, w.entries_tbl) + sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.info.DBName, w.entries_tbl) } sql += fmt.Sprintf("(`%s`, `%s`, `%s`, `%s`) ", @@ -633,9 +633,9 @@ func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { catalog.SystemSI_IVFFLAT_TblCol_Entries_entry) versql := fmt.Sprintf("SELECT CAST(%s as BIGINT) FROM `%s`.`%s` WHERE `%s` = 'version'", catalog.SystemSI_IVFFLAT_TblCol_Metadata_val, - w.jobID.DBName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) + w.info.DBName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) - sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = (%s) ), ", w.jobID.DBName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, versql) + sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = (%s) ), ", w.info.DBName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, versql) sql += fmt.Sprintf("src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) sql += fmt.Sprintf("SELECT `%s`, `%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (`%s`, `%s`)", catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index cacb8780def3d..06535dabe5c1f 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -103,11 +103,12 @@ func CreateIndexCdcTask(c *Compile, dbname string, tablename string, indexname s } spec := &iscp.JobSpec{ - Priority: 0, - ConsumerInfo: iscp.ConsumerInfo{ConsumerType: sinker_type}, - TriggerSpec: iscp.TriggerSpec{JobType: 0, Schedule: iscp.Schedule{}}, + ConsumerInfo: iscp.ConsumerInfo{ConsumerType: sinker_type, + DBName: dbname, + TableName: tablename, + IndexName: indexname}, } - job := &iscp.JobID{DBName: dbname, TableName: tablename, JobName: indexname} + job := &iscp.JobID{DBName: dbname, TableName: tablename, JobName: genCdcTaskJobID(indexname)} // create index cdc task ok, err := CreateCdcTask(c, pitr_name, spec, job) @@ -123,6 +124,10 @@ func CreateIndexCdcTask(c *Compile, dbname string, tablename string, indexname s return nil } +func genCdcTaskJobID(indexname string) string { + return "index_" + indexname +} + func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string) error { var err error @@ -132,7 +137,7 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen } // delete index cdc task - _, err = DeleteCdcTask(c, &iscp.JobID{DBName: dbname, TableName: tablename, JobName: indexname}) + _, err = DeleteCdcTask(c, &iscp.JobID{DBName: dbname, TableName: tablename, JobName: genCdcTaskJobID(indexname)}) if err != nil { return err } @@ -188,7 +193,7 @@ func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, ta } if async { hasindex = true - _, e := DeleteCdcTask(c, &iscp.JobID{DBName: dbname, TableName: tablename, JobName: idx.IndexName}) + _, e := DeleteCdcTask(c, &iscp.JobID{DBName: dbname, TableName: tablename, JobName: genCdcTaskJobID(idx.IndexName)}) if e != nil { return e } @@ -212,7 +217,7 @@ func getSinkerTypeFromAlgo(algo string) int8 { } else if catalog.IsFullTextIndexAlgo(algo) { return int8(iscp.ConsumerType_IndexSync) } - return int8(0) + panic("getSinkerTypeFromAlgo: invalid sinker type") } // NOTE: CreateAllIndexCdcTasks will create CDC task according to existing tableDef From 19a52a3a26a868014f82661856573fd6072e352f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 22 Aug 2025 10:32:21 +0100 Subject: [PATCH 227/335] rename --- pkg/iscp/{consumer_test.go => index_consumer_test.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pkg/iscp/{consumer_test.go => index_consumer_test.go} (100%) diff --git a/pkg/iscp/consumer_test.go b/pkg/iscp/index_consumer_test.go similarity index 100% rename from pkg/iscp/consumer_test.go rename to pkg/iscp/index_consumer_test.go From 5819c2d663787b330b9b98a5464c0f3e49e97398 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 22 Aug 2025 11:05:43 +0100 Subject: [PATCH 228/335] update async bvt --- ..._hnsw_sync.result => vector_hnsw_async.result} | 12 +++--------- ...vector_hnsw_sync.sql => vector_hnsw_async.sql} | 15 +++------------ 2 files changed, 6 insertions(+), 21 deletions(-) rename test/distributed/cases/vector/{vector_hnsw_sync.result => vector_hnsw_async.result} (91%) rename test/distributed/cases/vector/{vector_hnsw_sync.sql => vector_hnsw_async.sql} (88%) diff --git a/test/distributed/cases/vector/vector_hnsw_sync.result b/test/distributed/cases/vector/vector_hnsw_async.result similarity index 91% rename from test/distributed/cases/vector/vector_hnsw_sync.result rename to test/distributed/cases/vector/vector_hnsw_async.result index 2dc9bbc64d908..a849151d687f9 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.result +++ b/test/distributed/cases/vector/vector_hnsw_async.result @@ -3,8 +3,7 @@ drop database if exists hnsw_cdc; create database if not exists hnsw_cdc; use hnsw_cdc; create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); -create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; +create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64 ASYNC; insert into t1 values (0, "[1,2,3]", 1); UPDATE t1 set b = '[4,5,6]' where a = 0; insert into t1 values (1, "[2,3,4]", 1); @@ -21,11 +20,9 @@ a b c select * from t1 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; a b c 0 [4, 5, 6] 1 -drop cdc task `__mo_cdc_t1_idx01`; drop table t1; create table t2(a bigint primary key, b vecf32(128)); -create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; +create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64 ASYNC; load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; select count(*) from t2; count(*) @@ -39,15 +36,13 @@ a b select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1]") ASC LIMIT 1; a b 0 [0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1] -drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; drop table t2; create table t3(a bigint primary key, b vecf32(128)); load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; select count(*) from t3; count(*) 10000 -create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; +create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64 ASYNC; load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table t3 fields terminated by ':' parallel 'true'; select count(*) from t3; count(*) @@ -67,6 +62,5 @@ a b select * from t3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25]") ASC LIMIT 1; a b 19999 [0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25] -drop cdc task `__mo_cdc_hnsw_cdc_t3_idx3`; drop table t3; drop database hnsw_cdc; diff --git a/test/distributed/cases/vector/vector_hnsw_sync.sql b/test/distributed/cases/vector/vector_hnsw_async.sql similarity index 88% rename from test/distributed/cases/vector/vector_hnsw_sync.sql rename to test/distributed/cases/vector/vector_hnsw_async.sql index 2a4dbeeb38d6c..79f9cef553d95 100644 --- a/test/distributed/cases/vector/vector_hnsw_sync.sql +++ b/test/distributed/cases/vector/vector_hnsw_async.sql @@ -8,10 +8,8 @@ use hnsw_cdc; create table t1(a bigint primary key, b vecf32(3),c int,key c_k(c)); -- empty data -create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -create cdc `__mo_cdc_t1_idx01` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t1' {'Level'='table'}; +create index idx01 using hnsw on t1(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64 ASYNC; --- show cdc all; -- select sleep(30); insert into t1 values (0, "[1,2,3]", 1); @@ -38,13 +36,11 @@ select * from t1 order by L2_DISTANCE(b,"[4,5,6]") ASC LIMIT 10; -- a=1 deleted. result is [4,5,6] select * from t1 order by L2_DISTANCE(b,"[2,3,4]") ASC LIMIT 10; -drop cdc task `__mo_cdc_t1_idx01`; drop table t1; -- t2 create table t2(a bigint primary key, b vecf32(128)); -create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; -create cdc `__mo_cdc_hnsw_cdc_t2_idx2` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t2' {'Level'='table'}; +create index idx2 using hnsw on t2(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64 ASYNC; -- select sleep(30); load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table t2 fields terminated by ':' parallel 'true'; @@ -62,8 +58,6 @@ select * from t2 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, -- delete from t2 -- select sleep(10) - -drop cdc task `__mo_cdc_hnsw_cdc_t2_idx2`; drop table t2; -- end t2 @@ -75,9 +69,7 @@ load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compr select count(*) from t3; -create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64; - -create cdc `__mo_cdc_hnsw_cdc_t3_idx3` 'mysql://root:111@127.0.0.1:6001' 'indexsync' 'mysql://root:111@127.0.0.1:6001' 'hnsw_cdc.t3' {'Level'='table'}; +create index idx3 using hnsw on t3(b) op_type "vector_l2_ops" M 48 EF_CONSTRUCTION 64 EF_SEARCH 64 ASYNC; -- select sleep(30); @@ -96,7 +88,6 @@ select * from t3 order by L2_DISTANCE(b, "[59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, select * from t3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25]") ASC LIMIT 1; -drop cdc task `__mo_cdc_hnsw_cdc_t3_idx3`; drop table t3; -- end t3 From f1ee83b1c70fd3344543f6945a3c879c0f2c175c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 22 Aug 2025 11:50:09 +0100 Subject: [PATCH 229/335] add index consumer --- pkg/iscp/index_consumer.go | 424 +++++++++++++++++++++++++++++++++++++ 1 file changed, 424 insertions(+) create mode 100644 pkg/iscp/index_consumer.go diff --git a/pkg/iscp/index_consumer.go b/pkg/iscp/index_consumer.go new file mode 100644 index 0000000000000..91c1a972cc18f --- /dev/null +++ b/pkg/iscp/index_consumer.go @@ -0,0 +1,424 @@ +// Copyright 2024 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package iscp + +import ( + "context" + "fmt" + "os" + "sync" + "time" + + "github.com/matrixorigin/matrixone/pkg/catalog" + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/common/runtime" + "github.com/matrixorigin/matrixone/pkg/logutil" + "github.com/matrixorigin/matrixone/pkg/pb/plan" + "github.com/matrixorigin/matrixone/pkg/util/executor" + "github.com/matrixorigin/matrixone/pkg/vectorindex" +) + +/* IndexConsumer */ +type IndexEntry struct { + algo string + indexes []*plan.IndexDef +} + +var sqlExecutorFactory = _sqlExecutorFactory + +func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { + // sql executor + v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) + if !ok { + //os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) + return nil, moerr.NewNotSupportedNoCtx("no implement sqlExecutor") + } + exec := v.(executor.SQLExecutor) + return exec, nil +} + +/* IndexConsumer */ +type IndexConsumer struct { + cnUUID string + jobID JobID + info *ConsumerInfo + tableDef *plan.TableDef + sqlWriter IndexSqlWriter + exec executor.SQLExecutor + rowdata []any + rowdelete []any + sqlBufSendCh chan []byte +} + +var _ Consumer = new(IndexConsumer) + +func NewIndexConsumer(cnUUID string, + tableDef *plan.TableDef, + jobID JobID, + info *ConsumerInfo) (Consumer, error) { + + exec, err := sqlExecutorFactory(cnUUID) + if err != nil { + return nil, err + } + + ie := &IndexEntry{indexes: make([]*plan.IndexDef, 0, 3)} + + for _, idx := range tableDef.Indexes { + if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + key := idx.IndexName + if key == info.IndexName { + if len(ie.algo) == 0 { + ie.algo = idx.IndexAlgo + } + ie.indexes = append(ie.indexes, idx) + } + } + + } + + sqlwriter, err := NewIndexSqlWriter(ie.algo, jobID, info, tableDef, ie.indexes) + if err != nil { + return nil, err + } + + c := &IndexConsumer{cnUUID: cnUUID, + jobID: jobID, + info: info, + tableDef: tableDef, + sqlWriter: sqlwriter, + exec: exec, + rowdata: make([]any, len(tableDef.Cols)), + rowdelete: make([]any, 1), + //sqlBufSendCh: make(chan []byte), + } + + return c, nil +} + +func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriever) { + + datatype := r.GetDataType() + + if datatype == ISCPDataType_Snapshot { + // SNAPSHOT + for { + select { + case <-ctx.Done(): + return + case e2 := <-errch: + errch <- e2 + return + case sql, ok := <-c.sqlBufSendCh: + if !ok { + return + } + func() { + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") + opts := executor.Options{} + res, err := c.exec.Exec(newctx, string(sql), opts) + if err != nil { + logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.info, err, string(sql)) + os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sql))) + os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) + errch <- err + } + res.Close() + }() + } + } + + } else { + // TAIL + newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + defer cancel() + opts := executor.Options{} + err := c.exec.ExecTxn(newctx, + func(exec executor.TxnExecutor) error { + for { + select { + case <-ctx.Done(): + return nil + case e2 := <-errch: + return e2 + case sql, ok := <-c.sqlBufSendCh: + if !ok { + // channel closed + return r.UpdateWatermark(exec, opts.StatementOption()) + } + + // update SQL + res, err := exec.Exec(string(sql), opts.StatementOption()) + if err != nil { + return err + } + res.Close() + } + } + }, opts) + if err != nil { + errch <- err + return + } + } + +} + +func (c *IndexConsumer) processISCPData(ctx context.Context, data *ISCPData, datatype int8, errch chan error) bool { + // release the data + defer data.Done() + + insertBatch := data.insertBatch + deleteBatch := data.deleteBatch + noMoreData := data.noMoreData + err := data.err + if err != nil { + errch <- err + return true + } + + if noMoreData { + err := c.flushCdc() + if err != nil { + errch <- err + } + close(c.sqlBufSendCh) + return noMoreData + } + + // update index + + if datatype == ISCPDataType_Snapshot { + // SNAPSHOT + err := c.sinkSnapshot(ctx, insertBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } + + } else { + // sinkTail will save sql to the slice + err := c.sinkTail(ctx, insertBatch, deleteBatch) + if err != nil { + // error out + errch <- err + noMoreData = true + } + } + + return noMoreData + +} + +func (c *IndexConsumer) Consume(ctx context.Context, r DataRetriever) error { + noMoreData := false + errch := make(chan error, 2) + c.sqlBufSendCh = make(chan []byte) + defer func() { + c.sqlBufSendCh = nil + c.sqlWriter.Reset() + }() + + datatype := r.GetDataType() + + // create thread to poll sql + var wg sync.WaitGroup + wg.Add(1) + go func() { + defer wg.Done() + c.run(ctx, errch, r) + }() + + // read data + for !noMoreData { + data := r.Next() + noMoreData = c.processISCPData(ctx, data, datatype, errch) + } + + wg.Wait() + + if len(errch) > 0 { + return <-errch + } + + return nil +} + +func (c *IndexConsumer) sinkSnapshot(ctx context.Context, upsertBatch *AtomicBatch) error { + var err error + + for _, bat := range upsertBatch.Batches { + for i := 0; i < batchRowCount(bat); i++ { + if err = extractRowFromEveryVector(ctx, bat, i, c.rowdata); err != nil { + return err + } + + err = c.sqlWriter.Upsert(ctx, c.rowdata) + if err != nil { + return err + } + + if c.sqlWriter.Full() { + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + } + } + + return nil +} + +// upsertBatch and deleteBatch is sorted by ts +// for the same ts, delete first, then upsert +func (c *IndexConsumer) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) error { + var err error + + upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) + deleteIter := deleteBatch.GetRowIterator().(*atomicBatchRowIter) + defer func() { + upsertIter.Close() + deleteIter.Close() + }() + + // output sql until one iterator reach the end + upsertIterHasNext, deleteIterHasNext := upsertIter.Next(), deleteIter.Next() + for upsertIterHasNext && deleteIterHasNext { + upsertItem, deleteItem := upsertIter.Item(), deleteIter.Item() + // compare ts, ignore pk + if upsertItem.Ts.LT(&deleteItem.Ts) { + if err = c.sinkInsert(ctx, upsertIter); err != nil { + return err + } + // get next item + upsertIterHasNext = upsertIter.Next() + } else { + if err = c.sinkDelete(ctx, deleteIter); err != nil { + return err + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + } + + // output the rest of upsert iterator + for upsertIterHasNext { + if err = c.sinkInsert(ctx, upsertIter); err != nil { + return err + } + // get next item + upsertIterHasNext = upsertIter.Next() + } + + // output the rest of delete iterator + for deleteIterHasNext { + if err = c.sinkDelete(ctx, deleteIter); err != nil { + return err + } + // get next item + deleteIterHasNext = deleteIter.Next() + } + c.flushCdc() + return nil +} + +func (c *IndexConsumer) sinkInsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { + + // get row from the batch + if err = upsertIter.Row(ctx, c.rowdata); err != nil { + return err + } + + if !c.sqlWriter.CheckLastOp(vectorindex.CDC_INSERT) { + // last op is not INSERT, sendSql first + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + + } + + c.sqlWriter.Insert(ctx, c.rowdata) + + if c.sqlWriter.Full() { + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + + return nil +} + +func (c *IndexConsumer) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { + + // get row from the batch + if err = deleteIter.Row(ctx, c.rowdelete); err != nil { + return err + } + + if !c.sqlWriter.CheckLastOp(vectorindex.CDC_DELETE) { + // last op is not DELETE, sendSql first + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + + } + + c.sqlWriter.Delete(ctx, c.rowdelete) + + if c.sqlWriter.Full() { + // send SQL + err = c.sendSql(c.sqlWriter) + if err != nil { + return err + } + } + + return nil +} + +func (c *IndexConsumer) sendSql(writer IndexSqlWriter) error { + if writer.Empty() { + return nil + } + + // generate sql from cdc + sql, err := writer.ToSql() + if err != nil { + return err + } + + c.sqlBufSendCh <- sql + os.Stderr.WriteString(string(sql)) + os.Stderr.WriteString("\n") + + // reset + writer.Reset() + + return nil +} + +func (c *IndexConsumer) flushCdc() error { + return c.sendSql(c.sqlWriter) +} From 9eb0c4e6e132cb1999455111bef6016790c42480 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 22 Aug 2025 12:46:42 +0100 Subject: [PATCH 230/335] remove unused files --- pkg/cdc/index_sinker.go | 550 ------------------------ pkg/cdc/index_sinker_test.go | 727 -------------------------------- pkg/cdc/index_sqlwriter.go | 647 ---------------------------- pkg/cdc/index_sqlwriter_test.go | 238 ----------- pkg/cdc/sinker.go | 8 +- pkg/cdc/sinker_test.go | 1 - pkg/cdc/types.go | 7 +- pkg/frontend/cdc_exector.go | 1 - pkg/frontend/cdc_options.go | 2 +- pkg/frontend/cdc_test.go | 1 - 10 files changed, 5 insertions(+), 2177 deletions(-) delete mode 100644 pkg/cdc/index_sinker.go delete mode 100644 pkg/cdc/index_sinker_test.go delete mode 100644 pkg/cdc/index_sqlwriter.go delete mode 100644 pkg/cdc/index_sqlwriter_test.go diff --git a/pkg/cdc/index_sinker.go b/pkg/cdc/index_sinker.go deleted file mode 100644 index 7b283ce1ff792..0000000000000 --- a/pkg/cdc/index_sinker.go +++ /dev/null @@ -1,550 +0,0 @@ -// Copyright 2024 Matrix Origin -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cdc - -// indexSyncSinker is to update HNSW index via CDC. -// It will read CDC changes and create JSON as input to function hnsw_cdc_update(dbname, tablename, vector_dimenion, json) -// You can refer the JSON format from vectorindex.VectorIndexCdc -// Single batch will split into multiple json objects and each json has maximum 8192 records (see vectorindex.VectorIndexCdc). -// Transaction function ExecTxn() used to make sure single batch (multiple json objects) can be updated in single transaction. - -import ( - "bytes" - "context" - "fmt" - "os" - "sync/atomic" - "time" - - "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/common/moerr" - "github.com/matrixorigin/matrixone/pkg/common/runtime" - "github.com/matrixorigin/matrixone/pkg/container/batch" - "github.com/matrixorigin/matrixone/pkg/logutil" - "github.com/matrixorigin/matrixone/pkg/pb/plan" - "github.com/matrixorigin/matrixone/pkg/util/executor" - v2 "github.com/matrixorigin/matrixone/pkg/util/metric/v2" - "github.com/matrixorigin/matrixone/pkg/vectorindex" - "go.uber.org/zap" -) - -var _ Sinker = &indexSyncSinker{} - -var sqlExecutorFactory = _sqlExecutorFactory - -type indexSyncSinker struct { - cnUUID string - accountId uint64 - taskId string - dbTblInfo *DbTableInfo - watermarkUpdater *CDCWatermarkUpdater - ar *ActiveRoutine - tableDef *plan.TableDef - err atomic.Value - sqlWriters []IndexSqlWriter - sqlBufSendCh chan []byte - exec executor.SQLExecutor - rowdata []any - rowdelete []any -} - -type IndexEntry struct { - algo string - indexes []*plan.IndexDef -} - -func _sqlExecutorFactory(cnUUID string) (executor.SQLExecutor, error) { - // sql executor - v, ok := runtime.ServiceRuntime(cnUUID).GetGlobalVariables(runtime.InternalSQLExecutor) - if !ok { - //os.Stderr.WriteString(fmt.Sprintf("sql executor create failed. cnUUID = %s\n", cnUUID)) - return nil, moerr.NewNotSupportedNoCtx("no implement sqlExecutor") - } - exec := v.(executor.SQLExecutor) - return exec, nil -} - -var NewIndexSyncSinker = func( - cnUUID string, - sinkUri UriInfo, - accountId uint64, - taskId string, - dbTblInfo *DbTableInfo, - watermarkUpdater *CDCWatermarkUpdater, - tableDef *plan.TableDef, - retryTimes int, - retryDuration time.Duration, - ar *ActiveRoutine, - maxSqlLength uint64, - sendSqlTimeout string, -) (Sinker, error) { - - // sql executor - exec, err := sqlExecutorFactory(cnUUID) - if err != nil { - return nil, err - } - - sqlwriters := make([]IndexSqlWriter, 0, 5) - indexmap := make(map[string]*IndexEntry) - - for _, idx := range tableDef.Indexes { - if idx.TableExist && (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || catalog.IsIvfIndexAlgo(idx.IndexAlgo) || catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - key := idx.IndexName - sidx, ok := indexmap[key] - if ok { - sidx.indexes = append(sidx.indexes, idx) - } else { - ie := &IndexEntry{algo: idx.IndexAlgo, indexes: make([]*plan.IndexDef, 0, 3)} - ie.indexes = append(ie.indexes, idx) - indexmap[key] = ie - } - } - - } - - for _, ie := range indexmap { - sqlwriter, err := NewIndexSqlWriter(ie.algo, dbTblInfo, tableDef, ie.indexes) - if err != nil { - return nil, err - } - sqlwriters = append(sqlwriters, sqlwriter) - os.Stderr.WriteString(fmt.Sprintf("sql writer %T\n", sqlwriter)) - } - - s := &indexSyncSinker{ - cnUUID: cnUUID, - dbTblInfo: dbTblInfo, - accountId: accountId, - taskId: taskId, - watermarkUpdater: watermarkUpdater, - ar: ar, - tableDef: tableDef, - sqlBufSendCh: make(chan []byte), - err: atomic.Value{}, - exec: exec, - sqlWriters: sqlwriters, - rowdata: make([]any, len(tableDef.Cols)), - rowdelete: make([]any, 1), // delete row only have one column pk - } - return s, nil - -} - -func (s *indexSyncSinker) Run(ctx context.Context, ar *ActiveRoutine) { - logutil.Infof("cdc indexSyncSinker(%v).Run: start", s.dbTblInfo) - defer func() { - logutil.Infof("cdc indexSyncSinker(%v).Run: end", s.dbTblInfo) - }() - - closed := false - for !closed { - - txnbegin := false - // make sure there is a BEGIN before start transaction - for !txnbegin { - - select { - case <-ctx.Done(): - return - case sqlBuf, ok := <-s.sqlBufSendCh: - if !ok { - closed = true - return - } - if bytes.Equal(sqlBuf, begin) { - txnbegin = true - } else if bytes.Equal(sqlBuf, commit) { - // pass - } else if bytes.Equal(sqlBuf, rollback) { - // pass - } else if bytes.Equal(sqlBuf, dummy) { - // pass - } else { - func() { - newctx, cancel := context.WithTimeout(context.Background(), 12*time.Hour) - defer cancel() - //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") - opts := executor.Options{} - res, err := s.exec.Exec(newctx, string(sqlBuf), opts) - if err != nil { - logutil.Errorf("cdc indexSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) - os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) - os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) - s.SetError(err) - } - res.Close() - }() - } - } - } - - func() { - newctx, cancel := context.WithTimeout(context.Background(), 12*time.Hour) - defer cancel() - opts := executor.Options{} - err := s.exec.ExecTxn(newctx, - func(exec executor.TxnExecutor) error { - - for { - select { - case <-ctx.Done(): - return ctx.Err() - case sqlBuf, ok := <-s.sqlBufSendCh: - if !ok { - // channel closed - closed = true - return nil - } - - if bytes.Equal(sqlBuf, dummy) { - - } else if bytes.Equal(sqlBuf, begin) { - // BEGIN - } else if bytes.Equal(sqlBuf, commit) { - // COMMIT - end of data - return nil - } else if bytes.Equal(sqlBuf, rollback) { - // ROLLBACK - return moerr.NewQueryInterrupted(ctx) - } else { - res, err := exec.Exec(string(sqlBuf), opts.StatementOption()) - if err != nil { - logutil.Errorf("cdc indexSyncSinker(%v) send sql failed, err: %v, sql: %s", s.dbTblInfo, err, sqlBuf[sqlBufReserved:]) - os.Stderr.WriteString(fmt.Sprintf("sql executor run failed. %s\n", string(sqlBuf))) - os.Stderr.WriteString(fmt.Sprintf("err :%v\n", err)) - return err - } - res.Close() - } - } - } - - }, - opts) - if err != nil { - moe, ok := err.(*moerr.Error) - if ok { - if moe.ErrorCode() == moerr.ErrQueryInterrupted { - // skip rollback error - //os.Stderr.WriteString("error QueryInterrupted....rollback\n") - logutil.Errorf("cdc indexSyncSinker(%v) parent rollback", s.dbTblInfo) - } else { - s.SetError(err) - } - } else if uw, ok := err.(interface{ Unwrap() []error }); ok { - rollbackfound := false - for _, e := range uw.Unwrap() { - //os.Stderr.WriteString(fmt.Sprintf("errors... %v\n", e)) - moe, ok := e.(*moerr.Error) - if ok && moe.ErrorCode() == moerr.ErrQueryInterrupted { - rollbackfound = true - } - } - - //os.Stderr.WriteString(fmt.Sprintf("rollback found %v\n", rollbackfound)) - if !rollbackfound { - s.SetError(err) - } - } else { - s.SetError(err) - } - } - }() - } -} - -func (s *indexSyncSinker) Sink(ctx context.Context, data *DecoderOutput) { - // TODO: IMPORTANT: check the indexdef here so that Add/Drop index can be reflected here - - key := WatermarkKey{ - AccountId: s.accountId, - TaskId: s.taskId, - DBName: s.dbTblInfo.SourceDbName, - TableName: s.dbTblInfo.SourceTblName, - } - watermark, err := s.watermarkUpdater.GetFromCache(ctx, &key) - if err != nil { - logutil.Error( - "CDC-MySQLSinker-GetWatermarkFailed", - zap.String("info", s.dbTblInfo.String()), - zap.String("key", key.String()), - zap.Error(err), - ) - return - } - - if data.toTs.LE(&watermark) { - logutil.Errorf("cdc indexSyncSinker(%v): unexpected watermark: %s, current watermark: %s", - s.dbTblInfo, data.toTs.ToString(), watermark.ToString()) - return - } - - if data.noMoreData { - // complete sql statement - err := s.flushCdc() - if err != nil { - s.SetError(err) - } - return - } - - start := time.Now() - defer func() { - v2.CdcSinkDurationHistogram.Observe(time.Since(start).Seconds()) - }() - - if data.outputTyp == OutputTypeSnapshot { - //os.Stderr.WriteString(fmt.Sprintf("sinkSnapshot batlen %d\n", batchRowCount(data.checkpointBat))) - s.sinkSnapshot(ctx, data.checkpointBat) - } else if data.outputTyp == OutputTypeTail { - //os.Stderr.WriteString(fmt.Sprintf("sinkTail insertBat %d, deletBat = %d\n", data.insertAtmBatch.RowCount(), data.deleteAtmBatch.RowCount())) - s.sinkTail(ctx, data.insertAtmBatch, data.deleteAtmBatch) - } else { - s.SetError(moerr.NewInternalError(ctx, fmt.Sprintf("cdc indexSyncSinker unexpected output type: %v", data.outputTyp))) - } -} - -func (s *indexSyncSinker) SendBegin() { - s.sqlBufSendCh <- begin -} - -func (s *indexSyncSinker) SendCommit() { - s.sqlBufSendCh <- commit -} - -func (s *indexSyncSinker) SendRollback() { - s.sqlBufSendCh <- rollback -} - -func (s *indexSyncSinker) SendDummy() { - s.sqlBufSendCh <- dummy -} - -func (s *indexSyncSinker) Error() error { - if ptr := s.err.Load(); ptr != nil { - errPtr := ptr.(*error) - if errPtr != nil { - if moErr, ok := (*errPtr).(*moerr.Error); !ok { - return moerr.ConvertGoError(context.Background(), *errPtr) - } else { - if moErr == nil { - return nil - } - return moErr - } - } - } - return nil -} - -func (s *indexSyncSinker) SetError(err error) { - s.err.Store(&err) -} - -func (s *indexSyncSinker) ClearError() { - var err *moerr.Error - s.SetError(err) -} - -func (s *indexSyncSinker) Reset() { - for _, writer := range s.sqlWriters { - writer.Reset() - } - s.err = atomic.Value{} -} - -func (s *indexSyncSinker) Close() { - // stop Run goroutine - close(s.sqlBufSendCh) -} - -func (s *indexSyncSinker) sinkSnapshot(ctx context.Context, bat *batch.Batch) { - var err error - - for i := 0; i < batchRowCount(bat); i++ { - if err = extractRowFromEveryVector(ctx, bat, i, s.rowdata); err != nil { - s.SetError(err) - return - } - - for _, writer := range s.sqlWriters { - err = writer.Upsert(ctx, s.rowdata) - if err != nil { - s.SetError(err) - return - } - - if writer.Full() { - err = s.sendSql(writer) - if err != nil { - s.SetError(err) - return - } - } - } - } -} - -// upsertBatch and deleteBatch is sorted by ts -// for the same ts, delete first, then upsert -func (s *indexSyncSinker) sinkTail(ctx context.Context, upsertBatch, deleteBatch *AtomicBatch) { - var err error - - upsertIter := upsertBatch.GetRowIterator().(*atomicBatchRowIter) - deleteIter := deleteBatch.GetRowIterator().(*atomicBatchRowIter) - defer func() { - upsertIter.Close() - deleteIter.Close() - }() - - // output sql until one iterator reach the end - upsertIterHasNext, deleteIterHasNext := upsertIter.Next(), deleteIter.Next() - for upsertIterHasNext && deleteIterHasNext { - upsertItem, deleteItem := upsertIter.Item(), deleteIter.Item() - // compare ts, ignore pk - if upsertItem.Ts.LT(&deleteItem.Ts) { - if err = s.sinkUpsert(ctx, upsertIter); err != nil { - s.SetError(err) - return - } - // get next item - upsertIterHasNext = upsertIter.Next() - } else { - if err = s.sinkDelete(ctx, deleteIter); err != nil { - s.SetError(err) - return - } - // get next item - deleteIterHasNext = deleteIter.Next() - } - } - - // output the rest of upsert iterator - for upsertIterHasNext { - if err = s.sinkUpsert(ctx, upsertIter); err != nil { - s.SetError(err) - return - } - // get next item - upsertIterHasNext = upsertIter.Next() - } - - // output the rest of delete iterator - for deleteIterHasNext { - if err = s.sinkDelete(ctx, deleteIter); err != nil { - s.SetError(err) - return - } - // get next item - deleteIterHasNext = deleteIter.Next() - } - s.flushCdc() -} - -func (s *indexSyncSinker) sinkUpsert(ctx context.Context, upsertIter *atomicBatchRowIter) (err error) { - - // get row from the batch - if err = upsertIter.Row(ctx, s.rowdata); err != nil { - return err - } - - for _, writer := range s.sqlWriters { - if !writer.CheckLastOp(vectorindex.CDC_UPSERT) { - // last op is not UPSERT, sendSql first - // send SQL - err = s.sendSql(writer) - if err != nil { - return err - } - - } - - writer.Upsert(ctx, s.rowdata) - - if writer.Full() { - // send SQL - err = s.sendSql(writer) - if err != nil { - return err - } - } - } - - return nil -} - -func (s *indexSyncSinker) sinkDelete(ctx context.Context, deleteIter *atomicBatchRowIter) (err error) { - - // get row from the batch - if err = deleteIter.Row(ctx, s.rowdelete); err != nil { - return err - } - - for _, writer := range s.sqlWriters { - if !writer.CheckLastOp(vectorindex.CDC_DELETE) { - // last op is not DELETE, sendSql first - // send SQL - err = s.sendSql(writer) - if err != nil { - return err - } - - } - - writer.Delete(ctx, s.rowdelete) - - if writer.Full() { - // send SQL - err = s.sendSql(writer) - if err != nil { - return err - } - } - } - - return nil -} - -func (s *indexSyncSinker) flushCdc() (err error) { - for _, writer := range s.sqlWriters { - err = s.sendSql(writer) - if err != nil { - return err - } - } - return nil -} - -func (s *indexSyncSinker) sendSql(writer IndexSqlWriter) error { - if writer.Empty() { - return nil - } - - // generate sql from cdc - sql, err := writer.ToSql() - if err != nil { - return err - } - - s.sqlBufSendCh <- sql - os.Stderr.WriteString(string(sql)) - os.Stderr.WriteString("\n") - - // reset - writer.Reset() - - return nil -} diff --git a/pkg/cdc/index_sinker_test.go b/pkg/cdc/index_sinker_test.go deleted file mode 100644 index 6c3c298057aa9..0000000000000 --- a/pkg/cdc/index_sinker_test.go +++ /dev/null @@ -1,727 +0,0 @@ -// Copyright 2024 Matrix Origin -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cdc - -import ( - "context" - "errors" - "fmt" - "strings" - "sync" - "testing" - "time" - - "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/common/moerr" - "github.com/matrixorigin/matrixone/pkg/container/batch" - "github.com/matrixorigin/matrixone/pkg/container/types" - "github.com/matrixorigin/matrixone/pkg/container/vector" - "github.com/matrixorigin/matrixone/pkg/pb/plan" - "github.com/matrixorigin/matrixone/pkg/testutil" - "github.com/matrixorigin/matrixone/pkg/txn/client" - "github.com/matrixorigin/matrixone/pkg/util/executor" - "github.com/prashantv/gostub" - "github.com/stretchr/testify/require" - "github.com/tidwall/btree" -) - -func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { - return &plan.TableDef{ - Name: "test_orig_tbl", - Name2ColIndex: map[string]int32{ - pkName: 0, - vecColName: 1, - "dummy": 2, // Add another col to make sure pk/vec col indices are used - }, - Cols: []*plan.ColDef{ - {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, - {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, - {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, - }, - Pkey: &plan.PrimaryKeyDef{ - Names: []string{pkName}, - PkeyColName: pkName, - }, - Indexes: []*plan.IndexDef{ - { - IndexName: "hnsw_idx", - TableExist: true, - IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), - IndexAlgoTableType: catalog.Hnsw_TblType_Metadata, - IndexTableName: "meta_tbl", - Parts: []string{vecColName}, - IndexAlgoParams: `{"m":"16","ef_construction":"200","ef_search":"100","op_type":"vector_l2_ops"}`, - }, - { - IndexName: "hnsw_idx", - TableExist: true, - IndexAlgo: catalog.MoIndexHnswAlgo.ToString(), - IndexAlgoTableType: catalog.Hnsw_TblType_Storage, - IndexTableName: "storage_tbl", - Parts: []string{vecColName}, - IndexAlgoParams: `{"m":"16","ef_construction":"200","ef_search":"100","op_type":"vector_l2_ops"}`, - }, - }, - } -} - -func newTestDbTableInfo() *DbTableInfo { - return &DbTableInfo{ - SourceDbName: "test_db", - SourceTblName: "test_tbl", - SinkDbName: "sink_db", - SinkTblName: "sink_tbl", - } -} - -func newTestActiveRoutine() *ActiveRoutine { - ar := NewCdcActiveRoutine() - // ar.Start() // Don't start by default, let tests control - return ar -} - -type MockSQLExecutor struct { -} - -// Exec exec a sql in a exists txn. -func (exec MockSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { - - return executor.Result{}, nil -} - -// ExecTxn executor sql in a txn. execFunc can use TxnExecutor to exec multiple sql -// in a transaction. -// NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to -// TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. -func (exec MockSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { - return nil -} - -type MockErrorTxnExecutor struct { - database string - ctx context.Context -} - -func (exec *MockErrorTxnExecutor) Use(db string) { - exec.database = db -} - -func (exec *MockErrorTxnExecutor) Exec( - sql string, - statementOption executor.StatementOption, -) (executor.Result, error) { - if strings.Contains(sql, "FAILSQL") { - return executor.Result{}, moerr.NewInternalErrorNoCtx("db error") - } else if strings.Contains(sql, "MULTI_ERROR_NO_ROLLBACK") { - var errs error - errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error")) - errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error 2")) - return executor.Result{}, errs - } else if strings.Contains(sql, "MULTI_ERROR_ROLLBACK") { - var errs error - errs = errors.Join(errs, moerr.NewInternalErrorNoCtx("db error")) - errs = errors.Join(errs, moerr.NewQueryInterrupted(exec.ctx)) - return executor.Result{}, errs - } - - return executor.Result{}, nil -} - -func (exec *MockErrorTxnExecutor) LockTable(table string) error { - return nil -} - -func (exec *MockErrorTxnExecutor) Txn() client.TxnOperator { - return nil -} - -/* -func (exec *MockErrorTxnExecutor) commit() error { - return nil -} - -func (exec *MockErrorTxnExecutor) getDatabase() string { - return "" -} - -func (exec *MockErrorTxnExecutor) rollback(err error) error { - return nil -} -*/ - -var _ executor.TxnExecutor = new(MockErrorTxnExecutor) - -type MockErrorSQLExecutor struct { -} - -// Exec exec a sql in a exists txn. -func (exec MockErrorSQLExecutor) Exec(ctx context.Context, sql string, opts executor.Options) (executor.Result, error) { - if strings.Contains(sql, "FAILSQL") { - return executor.Result{}, moerr.NewInternalError(ctx, "db error") - } - return executor.Result{}, nil -} - -// ExecTxn executor sql in a txn. execFunc can use TxnExecutor to exec multiple sql -// in a transaction. -// NOTE: Pass SQL stmts one by one to TxnExecutor.Exec(). If you pass multiple SQL stmts to -// TxnExecutor.Exec() as `\n` seperated string, it will only execute the first SQL statement causing Bug. -func (exec MockErrorSQLExecutor) ExecTxn(ctx context.Context, execFunc func(txn executor.TxnExecutor) error, opts executor.Options) error { - - txnexec := &MockErrorTxnExecutor{ctx: ctx} - err := execFunc(txnexec) - if moerr.IsMoErrCode(err, moerr.ErrQueryInterrupted) { - fmt.Printf("ROLLBACK...\n") - return nil // Simulating successful handling of rollback signal - } - return err -} - -var _ executor.SQLExecutor = new(MockSQLExecutor) -var _ executor.SQLExecutor = new(MockErrorSQLExecutor) - -func mockSqlExecutorFactory(uuid string) (executor.SQLExecutor, error) { - return MockSQLExecutor{}, nil -} - -func mockErrorSqlExecutorFactory(uuid string) (executor.SQLExecutor, error) { - return MockErrorSQLExecutor{}, nil -} - -func NewMockWatermarkUpdater(ctx context.Context) *CDCWatermarkUpdater { - ie := newWmMockSQLExecutor() - u := NewCDCWatermarkUpdater("test", ie) - key1 := new(WatermarkKey) - key1.AccountId = 0 - key1.TaskId = "taskid" - key1.DBName = "test_db" - key1.TableName = "test_tbl" - wm1 := types.BuildTS(1, 1) - err := u.UpdateWatermarkOnly(ctx, key1, &wm1) - if err != nil { - fmt.Printf("ERIC %v", err) - } - - key2 := new(WatermarkKey) - key2.AccountId = 0 - key2.TaskId = "taskid" - key2.DBName = "test_db" - key2.TableName = "test_tbl" - watermark, err := u.GetFromCache(ctx, key2) - if err != nil { - fmt.Printf("ERIC2 %v", err) - } - - var _ = watermark - - return u -} - -// Constants that might be missing in the test context -//const sqlBufReserved = 0 // Assuming 0 for tests, original code might have a value - -var ( -// Define these if they are not exported or available in the test package context -// For this test, we'll assume they are defined as in the original package. -// If not, they would be: -// begin = []byte("BEGIN") -// commit = []byte("COMMIT") -// rollback = []byte("ROLLBACK") -// dummy = []byte("DUMMY") -) - -// --- Test Cases --- - -func TestNewIndexSyncSinker(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - dbTblInfo := newTestDbTableInfo() - ar := newTestActiveRoutine() - watermarkUpdater := NewMockWatermarkUpdater(ctx) - - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) - defer sqlexecstub.Reset() - - t.Run("success float32", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) - sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.NoError(t, err) - require.NotNil(t, sinker) - sinker.Close() - }) - - /* - t.Run("success float64", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float64, 128) - sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.NoError(t, err) - require.NotNil(t, sinker) - sinker.Close() - }) - */ - - t.Run("invalid pkey count", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) - tblDef.Pkey.Names = []string{"pk1", "pk2"} - _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - }) - - t.Run("invalid hnsw index count", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) - tblDef.Indexes = []*plan.IndexDef{tblDef.Indexes[0]} // Only one index - _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - }) - - t.Run("invalid index parts count", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) - tblDef.Indexes[0].Parts = []string{"vec1", "vec2"} - _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - }) - - t.Run("invalid pkey type", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int32, "vec", types.T_array_float32, 128) // PK is int32 - _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - }) - - t.Run("missing meta index", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) - tblDef.Indexes[0].IndexAlgoTableType = "invalid" // Corrupt meta index type - _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - }) - - t.Run("invalid hnsw params json", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 128) - tblDef.Indexes[0].IndexAlgoParams = `{"M":16, efConstruction":200 ...` // Invalid JSON - _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - }) - - t.Run("unsupported vector type", func(t *testing.T) { - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_int32, 128) // Vector is int32 - _, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", dbTblInfo, watermarkUpdater, tblDef, 3, time.Second, ar, 1024, "10s") - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - }) -} - -func TestHnswSyncSinker_Run(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) - defer sqlexecstub.Reset() - watermarkUpdater := NewMockWatermarkUpdater(ctx) - - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) - sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - require.NoError(t, err) - defer sinker.Close() - - s := sinker.(*indexSyncSinker) - - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - s.Run(ctx, nil) // ActiveRoutine not used by Run directly - }() - - t.Run("happy path commit", func(t *testing.T) { - s.ClearError() - //var executedSqls []string - - s.SendBegin() - s.sqlBufSendCh <- []byte("SELECT 1") - s.SendCommit() - - // Wait for processing or timeout - time.Sleep(100 * time.Millisecond) - require.NoError(t, s.Error()) - //require.Contains(t, executedSqls, "SELECT 1") - }) - - // To properly test sinker.Close() and stop the Run goroutine: - cancel() // Signal Run to stop its loop if it checks ctx.Done() - // Closing sqlBufSendCh is done by sinker.Close(), which should cause Run to exit. - wg.Wait() // Wait for Run goroutine to finish -} - -func TestHnswSyncSinker_RunError(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockErrorSqlExecutorFactory) - defer sqlexecstub.Reset() - watermarkUpdater := NewMockWatermarkUpdater(ctx) - - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 4) - sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - require.NoError(t, err) - defer sinker.Close() - - s := sinker.(*indexSyncSinker) - - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - s.Run(ctx, nil) // ActiveRoutine not used by Run directly - }() - - t.Run("exec error", func(t *testing.T) { - s.ClearError() - s.SendBegin() - s.sqlBufSendCh <- []byte("FAILSQL") - s.SendCommit() // This commit might not be reached if error handling is strict - - time.Sleep(100 * time.Millisecond) - err := s.Error() - require.Error(t, err) - }) - - t.Run("multi-error no rollback error", func(t *testing.T) { - s.ClearError() - s.SendBegin() - s.sqlBufSendCh <- []byte("MULTI_ERROR_NO_ROLLBACK") - s.SendCommit() // This commit might not be reached if error handling is strict - - time.Sleep(100 * time.Millisecond) - err := s.Error() - require.Error(t, err) - }) - - t.Run("multi-error with rollback error", func(t *testing.T) { - s.ClearError() - s.SendBegin() - s.sqlBufSendCh <- []byte("MULTI_ERROR_ROLLBACK") - s.SendCommit() // This commit might not be reached if error handling is strict - - time.Sleep(100 * time.Millisecond) - err := s.Error() - require.NoError(t, err) - }) - - t.Run("rollback", func(t *testing.T) { - s.ClearError() - s.SendBegin() - s.SendRollback() - - time.Sleep(100 * time.Millisecond) - require.NoError(t, s.Error()) - //require.True(t, rolledBack, "Rollback was not processed as expected") - }) - - fmt.Printf("finihsed......\n") - // To properly test sinker.Close() and stop the Run goroutine: - cancel() // Signal Run to stop its loop if it checks ctx.Done() - // Closing sqlBufSendCh is done by sinker.Close(), which should cause Run to exit. - // We already defer sinker.Close(), but for this test, let's be explicit. - wg.Wait() // Wait for Run goroutine to finish -} - -func TestHnswSyncSinker_Sink(t *testing.T) { - - ctx := context.Background() - proc := testutil.NewProcess(t) - - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) - defer sqlexecstub.Reset() - - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) - watermarkUpdater := NewMockWatermarkUpdater(ctx) - sinker, err := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - require.NoError(t, err) - defer sinker.Close() - - s := sinker.(*indexSyncSinker) - - t.Run("snapshot", func(t *testing.T) { - s.Reset() - - bat := testutil.NewBatchWithVectors( - []*vector.Vector{ - testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), - testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), - testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int32{1, 2}), - }, nil) - - defer bat.Clean(testutil.TestUtilMp) - - output := &DecoderOutput{ - fromTs: types.BuildTS(1, 0), - toTs: types.BuildTS(2, 0), - outputTyp: OutputTypeSnapshot, - checkpointBat: bat, - insertAtmBatch: nil, // Not used for snapshot - deleteAtmBatch: nil, // Not used for snapshot - noMoreData: false, - } - s.Sink(ctx, output) - require.NoError(t, s.Error()) - sql, err := s.sqlWriters[0].ToSql() - require.NoError(t, err) - require.Equal(t, string(sql), `SELECT hnsw_cdc_update('sink_db', 'sink_tbl', 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) - }) - - t.Run("noMoreData", func(t *testing.T) { - rowdata := []any{int64(100), []float32{1.0, 2.0}} - s.Reset() - s.sqlWriters[0].Upsert(ctx, rowdata) // Add some data - require.False(t, s.sqlWriters[0].Empty()) - - var sqlSent bool - doneCh := make(chan struct{}) - go func() { - // Need to consume from sqlBufSendCh or Sink will block - for range s.sqlBufSendCh { - sqlSent = true - close(doneCh) // Signal that SQL was processed - return // Assume only one SQL for this test - } - }() - - output := &DecoderOutput{ - fromTs: types.BuildTS(3, 0), - toTs: types.BuildTS(4, 0), - outputTyp: OutputTypeSnapshot, // Can be any type - noMoreData: true, - } - s.Sink(ctx, output) - require.NoError(t, s.Error()) - - select { - case <-doneCh: - // SQL was sent and consumed - case <-time.After(1 * time.Second): - t.Fatal("timed out waiting for SQL to be sent on noMoreData") - } - require.True(t, sqlSent) - require.True(t, s.sqlWriters[0].Empty(), "CDC should be reset after noMoreData flush") - }) - -} - -func TestHnswSyncSinker_SendSql(t *testing.T) { - - dbTblInfo := newTestDbTableInfo() - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) - defer sqlexecstub.Reset() - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - watermarkUpdater := NewMockWatermarkUpdater(ctx) - - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) - sinker, _ := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - s := sinker.(*indexSyncSinker) - defer s.Close() // Closes sqlBufSendCh - - t.Run("send sql happy path", func(t *testing.T) { - var err error - row1 := []any{int64(1), []float32{0.1, 0.2}} - row2 := []any{int64(2), []float32{0.3, 0.4}} - - s.Reset() - err = s.sqlWriters[0].Upsert(ctx, row1) - require.NoError(t, err) - err = s.sqlWriters[0].Delete(ctx, row2) - require.NoError(t, err) - /* - s.cdc.Start = "ts1" - s.cdc.End = "ts2" - */ - - var receivedSql []byte - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - receivedSql = <-s.sqlBufSendCh - }() - - err = s.sendSql(s.sqlWriters[0]) - require.NoError(t, err) - wg.Wait() // Wait for the goroutine to receive the SQL - - require.NotNil(t, receivedSql) - sqlStr := string(receivedSql) - - /* - expectedJsonPayload, _ := json.Marshal(map[string]any{ - "start_ts": s.cdc.Start, // These were reset before json was made - "end_ts": s.cdc.End, - "op_type": "hnsw_cdc_v1", - "upserts": []map[string]any{{"pk": int64(1), "vector": []float32{0.1, 0.2}}}, - "deletes": []int64{int64(2)}, - }) - */ - - // The cdc.Start and cdc.End are part of the ToJson output, but sendSql resets cdc *after* ToJson - // So we need to capture the state of cdc *before* it's reset for the expected JSON. - // Let's reconstruct the expected JSON more carefully. - writer, err := NewHnswSqlWriter("hnsw", dbTblInfo, tblDef, tblDef.Indexes) - require.NoError(t, err) - writer.Upsert(ctx, row1) - writer.Delete(ctx, row2) - /* - cdcForJson.Start = "ts1" - cdcForJson.End = "ts2" - */ - expectedSqlBytes, _ := writer.ToSql() - require.Equal(t, string(expectedSqlBytes), sqlStr) - require.True(t, s.sqlWriters[0].Empty(), "CDC should be reset after sending SQL") - }) - - t.Run("send sql empty cdc", func(t *testing.T) { - s.Reset() // Ensure CDC is empty - err := s.sendSql(s.sqlWriters[0]) - require.NoError(t, err) - select { - case <-s.sqlBufSendCh: - t.Fatal("SQL should not have been sent for empty CDC") - case <-time.After(50 * time.Millisecond): - // Expected behavior - } - }) -} - -func TestHnswSyncSinker_ErrorHandling(t *testing.T) { - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) - defer sqlexecstub.Reset() - - s := &indexSyncSinker{} // Minimal struct for error testing - s.err.Store((*error)(nil)) // Initialize with nil error pointer - - require.Nil(t, s.Error()) - - testErr := moerr.NewInternalErrorNoCtx("test error") - s.SetError(testErr) - err := s.Error() - require.Error(t, err) - require.Equal(t, "internal error: test error", err.Error()) - - // Test with moerr - moTestErr := moerr.NewInternalErrorNoCtx("mo test error") - s.SetError(moTestErr) - err = s.Error() - require.Error(t, err) - require.True(t, moerr.IsMoErrCode(err, moerr.ErrInternal)) - require.Equal(t, moTestErr.Error(), err.Error()) - - s.ClearError() - require.Nil(t, s.Error()) -} - -func TestHnswSyncSinker_Sink_AtomicBatch(t *testing.T) { - - proc := testutil.NewProcess(t) - - dbTblInfo := newTestDbTableInfo() - ctx := context.Background() - sqlexecstub := gostub.Stub(&sqlExecutorFactory, mockSqlExecutorFactory) - defer sqlexecstub.Reset() - - watermarkUpdater := NewMockWatermarkUpdater(ctx) - - tblDef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 2) - sinker, _ := NewIndexSyncSinker("test-uuid", UriInfo{}, 0, "taskid", newTestDbTableInfo(), watermarkUpdater, tblDef, 0, 0, newTestActiveRoutine(), 1024, "1s") - s := sinker.(*indexSyncSinker) - defer s.Close() // Closes sqlBufSendCh - - bat := testutil.NewBatchWithVectors( - []*vector.Vector{ - testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), - testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), - testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int64{1, 2}), - }, nil) - defer bat.Clean(testutil.TestUtilMp) - - fromTs := types.BuildTS(1, 0) - insertAtomicBat := &AtomicBatch{ - Mp: nil, - Batches: []*batch.Batch{bat}, - Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), - } - insertAtomicBat.Rows.Set(AtomicBatchRow{Ts: fromTs, Pk: []byte{1}, Offset: 0, Src: bat}) - insertAtomicBat.Rows.Set(AtomicBatchRow{Ts: fromTs, Pk: []byte{2}, Offset: 1, Src: bat}) - - delbat := testutil.NewBatchWithVectors( - []*vector.Vector{ - testutil.NewVector(2, types.T_int64.ToType(), proc.Mp(), false, []int64{1, 2}), - testutil.NewVector(2, types.T_array_float32.ToType(), proc.Mp(), false, [][]float32{{0.1, 0.2}, {0.3, 0.4}}), - testutil.NewVector(2, types.T_int32.ToType(), proc.Mp(), false, []int64{1, 2}), - }, nil) - - defer delbat.Clean(testutil.TestUtilMp) - - delfromTs := types.BuildTS(2, 0) - delAtomicBat := &AtomicBatch{ - Mp: nil, - Batches: []*batch.Batch{delbat}, - Rows: btree.NewBTreeGOptions(AtomicBatchRow.Less, btree.Options{Degree: 64}), - } - delAtomicBat.Rows.Set(AtomicBatchRow{Ts: delfromTs, Pk: []byte{1}, Offset: 0, Src: bat}) - delAtomicBat.Rows.Set(AtomicBatchRow{Ts: delfromTs, Pk: []byte{2}, Offset: 1, Src: bat}) - - dout := &DecoderOutput{ - fromTs: types.BuildTS(1, 0), - toTs: types.BuildTS(2, 0), - outputTyp: OutputTypeTail, - insertAtmBatch: insertAtomicBat, - deleteAtmBatch: delAtomicBat, - } - - var receivedSql []byte - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - receivedSql = <-s.sqlBufSendCh - require.NotNil(t, receivedSql) - }() - - s.Sink(context.Background(), dout) - - wg.Wait() // Wait for the goroutine to receive the SQL - sqlStr := string(receivedSql) - - row1 := []any{int64(1), []float32{0.1, 0.2}} - row2 := []any{int64(2), []float32{0.3, 0.4}} - - writer, _ := NewHnswSqlWriter("hnsw", dbTblInfo, tblDef, tblDef.Indexes) - writer.Upsert(ctx, row1) - writer.Upsert(ctx, row2) - writer.Delete(ctx, row1) - writer.Delete(ctx, row2) - /* - cdcForJson.Start = "1-0" - cdcForJson.End = "2-0" - */ - expectedSqlBytes, _ := writer.ToSql() - - require.Equal(t, string(expectedSqlBytes), sqlStr) - require.True(t, s.sqlWriters[0].Empty(), "CDC should be reset after sending SQL") - -} diff --git a/pkg/cdc/index_sqlwriter.go b/pkg/cdc/index_sqlwriter.go deleted file mode 100644 index 57c1ce70dee07..0000000000000 --- a/pkg/cdc/index_sqlwriter.go +++ /dev/null @@ -1,647 +0,0 @@ -// Copyright 2024 Matrix Origin -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cdc - -import ( - "context" - "encoding/json" - "fmt" - "strings" - - "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/common/moerr" - "github.com/matrixorigin/matrixone/pkg/container/types" - "github.com/matrixorigin/matrixone/pkg/pb/plan" - "github.com/matrixorigin/matrixone/pkg/vectorindex" -) - -const ( - MAX_CDC_DATA_SIZE = 8192 -) - -// IndexSqlWriter interface -type IndexSqlWriter interface { - CheckLastOp(op string) bool - Upsert(ctx context.Context, row []any) error - Insert(ctx context.Context, row []any) error - Delete(ctx context.Context, row []any) error - Full() bool - ToSql() ([]byte, error) - Reset() - Empty() bool -} - -// Base implementation of IVFFLAT and FULLTEXT. Their implementation are simliar. -type BaseIndexSqlWriter struct { - lastCdcOp string - vbuf []byte - ndata int - param string - tabledef *plan.TableDef - indexdef []*plan.IndexDef - dbTblInfo *DbTableInfo - algo string - pkPos int32 - pkType *types.Type - partsPos []int32 - partsType []*types.Type - srcPos []int32 - srcType []*types.Type - dbName string -} - -// Fulltext Sql Writer. Only one hidden secondary index table -type FulltextSqlWriter struct { - BaseIndexSqlWriter - indexTableName string -} - -// Ivfflat Sql writer. Three hidden secondary index tables -type IvfflatSqlWriter struct { - BaseIndexSqlWriter - centroids_tbl string - entries_tbl string - meta_tbl string - ivfparam vectorindex.IvfParam -} - -// Hnsw Sql Writer. Use the vectorindex.VectorIndeXCdc JSON format -type HnswSqlWriter[T types.RealNumbers] struct { - cdc *vectorindex.VectorIndexCdc[T] - meta vectorindex.HnswCdcParam - tabledef *plan.TableDef - indexdef []*plan.IndexDef - dbTblInfo *DbTableInfo - pkPos int32 - pkType *types.Type - partsPos []int32 - partsType []*types.Type - srcPos []int32 - srcType []*types.Type - dbName string -} - -// check FulltextSqlWriter is the interface of IndexSqlWriter -var _ IndexSqlWriter = new(FulltextSqlWriter) -var _ IndexSqlWriter = new(IvfflatSqlWriter) -var _ IndexSqlWriter = new(HnswSqlWriter[float32]) - -// check algo type to return the correct sql writer -func NewIndexSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - algo = catalog.ToLower(algo) - switch algo { - case catalog.MOIndexFullTextAlgo.ToString(): - return NewFulltextSqlWriter(algo, dbTblInfo, tabledef, indexdef) - case catalog.MoIndexIvfFlatAlgo.ToString(): - return NewIvfflatSqlWriter(algo, dbTblInfo, tabledef, indexdef) - case catalog.MoIndexHnswAlgo.ToString(): - return NewHnswSqlWriter(algo, dbTblInfo, tabledef, indexdef) - default: - return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") - - } -} - -// Implementation of Base Index SqlWriter -func (w *BaseIndexSqlWriter) Full() bool { - return w.ndata >= MAX_CDC_DATA_SIZE -} - -// return true when last op is empty or last op == current op -func (w *BaseIndexSqlWriter) CheckLastOp(op string) bool { - return len(w.lastCdcOp) == 0 || w.lastCdcOp == op -} - -func (w *BaseIndexSqlWriter) writeRow(ctx context.Context, row []any) error { - var err error - - w.vbuf = appendString(w.vbuf, "ROW(") - - // pk - if w.tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { - cpkType := &types.Type{Oid: types.T_varbinary, Width: w.pkType.Width, Scale: w.pkType.Scale} - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], cpkType, w.vbuf) - if err != nil { - return err - } - } else { - w.vbuf, err = convertColIntoSql(ctx, row[w.pkPos], w.pkType, w.vbuf) - if err != nil { - return err - } - } - - for i, t := range w.partsType { - w.vbuf = appendString(w.vbuf, ",") - pos := w.partsPos[i] - w.vbuf, err = convertColIntoSql(ctx, row[pos], t, w.vbuf) - if err != nil { - return err - } - } - - w.vbuf = appendString(w.vbuf, ")") - w.ndata += 1 - return nil -} - -func (w *BaseIndexSqlWriter) writeDeleteRow(ctx context.Context, row []any) error { - var err error - - if w.tabledef.Pkey.PkeyColName == catalog.CPrimaryKeyColName { - cpkType := &types.Type{Oid: types.T_varbinary, Width: w.pkType.Width, Scale: w.pkType.Scale} - w.vbuf, err = convertColIntoSql(ctx, row[0], cpkType, w.vbuf) - if err != nil { - return err - } - } else { - w.vbuf, err = convertColIntoSql(ctx, row[0], w.pkType, w.vbuf) - if err != nil { - return err - } - - } - w.ndata += 1 - return nil -} - -func (w *BaseIndexSqlWriter) Upsert(ctx context.Context, row []any) error { - - if len(w.lastCdcOp) == 0 { - // init - w.lastCdcOp = vectorindex.CDC_UPSERT - return w.writeRow(ctx, row) - - } - - if w.lastCdcOp != vectorindex.CDC_UPSERT { - // different from previous operation and generate SQL before append new UPSERT - return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Upsert: append different op") - } - - // same as previous operation and append to VALUES ROW(), ROW(),... - w.vbuf = appendString(w.vbuf, ",") - return w.writeRow(ctx, row) -} - -func (w *BaseIndexSqlWriter) Insert(ctx context.Context, row []any) error { - - if len(w.lastCdcOp) == 0 { - // init - w.lastCdcOp = vectorindex.CDC_INSERT - return w.writeRow(ctx, row) - - } - - if w.lastCdcOp != vectorindex.CDC_INSERT { - // different from previous operation and generate SQL before append new UPSERT - return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Insert: append different op") - } - - // same as previous operation and append to VALUES ROW(), ROW(),... - w.vbuf = appendString(w.vbuf, ",") - return w.writeRow(ctx, row) -} - -func (w *BaseIndexSqlWriter) Delete(ctx context.Context, row []any) error { - - if len(w.lastCdcOp) == 0 { - // init - w.lastCdcOp = vectorindex.CDC_DELETE - return w.writeDeleteRow(ctx, row) - } - - if w.lastCdcOp != vectorindex.CDC_DELETE { - // different from previous operation and generate SQL before append new UPSERT - return moerr.NewInternalErrorNoCtx("FulltextSqlWriter.Delete: append different op") - } - - // same as previous operation and append to IN () - w.vbuf = appendString(w.vbuf, ",") - return w.writeDeleteRow(ctx, row) -} - -func (w *BaseIndexSqlWriter) Reset() { - w.lastCdcOp = "" - w.vbuf = w.vbuf[:0] - w.ndata = 0 -} - -func (w *BaseIndexSqlWriter) Empty() bool { - return len(w.vbuf) == 0 -} - -// New Fulltext Sql Writer -func NewFulltextSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &FulltextSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} - - w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] - typ := tabledef.Cols[w.pkPos].Typ - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - - nparts := len(w.indexdef[0].Parts) - w.partsPos = make([]int32, nparts) - w.partsType = make([]*types.Type, nparts) - - for i, part := range w.indexdef[0].Parts { - w.partsPos[i] = tabledef.Name2ColIndex[part] - typ = tabledef.Cols[w.partsPos[i]].Typ - w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - } - - w.srcPos = make([]int32, nparts+1) - w.srcType = make([]*types.Type, nparts+1) - - w.srcPos[0] = w.pkPos - w.srcType[0] = w.pkType - for i := range w.partsType { - w.srcPos[i+1] = w.partsPos[i] - w.srcType[i+1] = w.partsType[i] - } - - w.indexTableName = w.indexdef[0].IndexTableName - w.dbName = tabledef.DbName - - return w, nil -} - -// with src as (select cast(serial(cast(column_0 as bigint), cast(column_1 as bigint)) as varchar) as id, column_2 as body, column_3 as title from -// (values row(1, 2, 'body', 'title'), row(2, 3, 'body is heavy', 'I do not know'))) select f.* from src -// cross apply fulltext_index_tokenize('{"parser":"ngram"}', 61, id, body, title) as f; -func (w *FulltextSqlWriter) ToSql() ([]byte, error) { - defer w.Reset() - - if len(w.lastCdcOp) == 0 { - return nil, nil - } - - switch w.lastCdcOp { - case vectorindex.CDC_DELETE: - return w.toFulltextDelete() - case vectorindex.CDC_UPSERT: - return w.toFulltextUpsert(true) - case vectorindex.CDC_INSERT: - return w.toFulltextUpsert(false) - default: - return nil, moerr.NewInternalErrorNoCtx("FulltextSqlWriter: invalid CDC type") - } -} - -func (w *FulltextSqlWriter) toFulltextDelete() ([]byte, error) { - sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.indexTableName, catalog.FullTextIndex_TabCol_Id, string(w.vbuf)) - return []byte(sql), nil -} - -func (w *FulltextSqlWriter) toFulltextUpsert(upsert bool) ([]byte, error) { - - var sql string - - coldefs := make([]string, 0, len(w.srcPos)) - cnames := make([]string, 0, len(w.srcPos)) - for i, pos := range w.srcPos { - typstr := w.srcType[i].DescString() - coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, w.tabledef.Cols[pos].Name)) - cnames = append(cnames, w.tabledef.Cols[pos].Name) - } - - cols := strings.Join(coldefs, ", ") - cnames_str := strings.Join(cnames, ", ") - - if !upsert { - sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbName, w.indexTableName) - } else { - sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbName, w.indexTableName) - } - - sql += fmt.Sprintf("WITH src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) - sql += fmt.Sprintf("SELECT f.* FROM src CROSS APPLY fulltext_index_tokenize('%s', %d, %s) as f", w.param, w.pkType.Oid, cnames_str) - - return []byte(sql), nil -} - -// Implementation of HNSW Sql writer -func NewHnswSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &HnswSqlWriter[float32]{tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, cdc: vectorindex.NewVectorIndexCdc[float32]()} - - // check the tabledef and indexdef - if len(tabledef.Pkey.Names) != 1 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one primary key") - } - - if len(indexdef) != 2 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table must have 2 secondary tables") - } - - idxdef := indexdef[0] - if len(idxdef.Parts) != 1 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table only have one vector part") - } - - paramstr := idxdef.IndexAlgoParams - var meta, storage string - for _, idx := range indexdef { - if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Metadata { - meta = idx.IndexTableName - } - if idx.IndexAlgoTableType == catalog.Hnsw_TblType_Storage { - storage = idx.IndexTableName - } - } - - if len(meta) == 0 || len(storage) == 0 { - return nil, moerr.NewInternalErrorNoCtx("hnsw index table either meta or storage hidden index table not exist") - } - - var hnswparam vectorindex.HnswParam - if len(paramstr) > 0 { - err := json.Unmarshal([]byte(paramstr), &hnswparam) - if err != nil { - return nil, moerr.NewInternalErrorNoCtx("hnsw sync sinker. failed to convert hnsw param json") - } - } - - w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] - typ := tabledef.Cols[w.pkPos].Typ - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - - if w.pkType.Oid != types.T_int64 { - return nil, moerr.NewInternalErrorNoCtx("NewHnswSqlWriter: primary key is not bigint") - } - - nparts := len(idxdef.Parts) - w.partsPos = make([]int32, nparts) - w.partsType = make([]*types.Type, nparts) - - for i, part := range idxdef.Parts { - w.partsPos[i] = tabledef.Name2ColIndex[part] - typ = tabledef.Cols[w.partsPos[i]].Typ - w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - } - - if w.partsType[0].Oid != types.T_array_float32 { - return nil, moerr.NewInternalErrorNoCtx("NewHnswSqlWriter: part is not vecf32") - } - - w.srcPos = make([]int32, nparts+1) - w.srcType = make([]*types.Type, nparts+1) - - w.srcPos[0] = w.pkPos - w.srcType[0] = w.pkType - for i := range w.partsType { - w.srcPos[i+1] = w.partsPos[i] - w.srcType[i+1] = w.partsType[i] - } - - w.dbName = tabledef.DbName - - w.meta = vectorindex.HnswCdcParam{ - MetaTbl: meta, - IndexTbl: storage, - DbName: dbTblInfo.SinkDbName, - Table: dbTblInfo.SinkTblName, - Params: hnswparam, - Dimension: tabledef.Cols[w.partsPos[0]].Typ.Width, - } - - return w, nil -} - -func (w *HnswSqlWriter[T]) Reset() { - w.cdc.Data = w.cdc.Data[:0] -} - -func (w *HnswSqlWriter[T]) Full() bool { - return len(w.cdc.Data) >= cap(w.cdc.Data) -} - -func (w *HnswSqlWriter[T]) Empty() bool { - return len(w.cdc.Data) == 0 -} - -func (w *HnswSqlWriter[T]) CheckLastOp(op string) bool { - return true -} - -func (w *HnswSqlWriter[T]) Insert(ctx context.Context, row []any) error { - key, ok := row[w.pkPos].(int64) - if !ok { - return moerr.NewInternalError(ctx, "invalid key type. not int64") - } - v, ok := row[w.partsPos[0]].([]T) - if !ok { - return moerr.NewInternalError(ctx, "invalid vector type. not []float32") - } - - if v == nil { - // vector is nil, do Delete - w.cdc.Delete(key) - return nil - } - - w.cdc.Insert(key, v) - return nil -} - -func (w *HnswSqlWriter[T]) Upsert(ctx context.Context, row []any) error { - key, ok := row[w.pkPos].(int64) - if !ok { - return moerr.NewInternalError(ctx, "invalid key type. not int64") - } - v, ok := row[w.partsPos[0]].([]T) - if !ok { - return moerr.NewInternalError(ctx, "invalid vector type. not []float32") - } - - if v == nil { - // vector is nil, do Delete - w.cdc.Delete(key) - return nil - } - - w.cdc.Upsert(key, v) - return nil -} - -func (w *HnswSqlWriter[T]) Delete(ctx context.Context, row []any) error { - // first column is the primary key - key, ok := row[0].(int64) - if !ok { - return moerr.NewInternalError(ctx, "invalid key type. not int64") - } - w.cdc.Delete(key) - return nil -} - -func (w *HnswSqlWriter[T]) ToSql() ([]byte, error) { - - // generate sql from cdc - js, err := w.cdc.ToJson() - if err != nil { - return nil, err - } - // pad extra space at the front and send SQL - sql := fmt.Sprintf("SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", w.meta.DbName, w.meta.Table, w.meta.Dimension, js) - - return []byte(sql), nil -} - -// Implementation of Ivfflat Sql writer -func NewIvfflatSqlWriter(algo string, dbTblInfo *DbTableInfo, tabledef *plan.TableDef, indexdef []*plan.IndexDef) (IndexSqlWriter, error) { - w := &IvfflatSqlWriter{BaseIndexSqlWriter: BaseIndexSqlWriter{algo: algo, tabledef: tabledef, indexdef: indexdef, dbTblInfo: dbTblInfo, vbuf: make([]byte, 0, 1024)}} - - if len(indexdef) != 3 { - return nil, moerr.NewInternalErrorNoCtx("ivf index table must have 3 secondary tables") - } - - idxdef := indexdef[0] - if len(idxdef.Parts) != 1 { - return nil, moerr.NewInternalErrorNoCtx("ivf index table only have one vector part") - } - - paramstr := idxdef.IndexAlgoParams - var centroids_tbl, entries_tbl, meta_tbl string - for _, idx := range indexdef { - if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Metadata { - meta_tbl = idx.IndexTableName - } - if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Centroids { - centroids_tbl = idx.IndexTableName - } - if idx.IndexAlgoTableType == catalog.SystemSI_IVFFLAT_TblType_Entries { - entries_tbl = idx.IndexTableName - } - } - - if len(centroids_tbl) == 0 || len(entries_tbl) == 0 || len(meta_tbl) == 0 { - return nil, moerr.NewInternalErrorNoCtx("ivf index table either meta or centroids or entries hidden index table not exist") - } - - var ivfparam vectorindex.IvfParam - if len(paramstr) > 0 { - err := json.Unmarshal([]byte(paramstr), &ivfparam) - if err != nil { - return nil, moerr.NewInternalErrorNoCtx("ivf sync sinker. failed to convert ivf param json") - } - } - - w.ivfparam = ivfparam - - w.pkPos = tabledef.Name2ColIndex[tabledef.Pkey.PkeyColName] - typ := tabledef.Cols[w.pkPos].Typ - w.pkType = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - - nparts := len(w.indexdef[0].Parts) - w.partsPos = make([]int32, nparts) - w.partsType = make([]*types.Type, nparts) - - for i, part := range w.indexdef[0].Parts { - w.partsPos[i] = tabledef.Name2ColIndex[part] - typ = tabledef.Cols[w.partsPos[i]].Typ - w.partsType[i] = &types.Type{Oid: types.T(typ.Id), Width: typ.Width, Scale: typ.Scale} - } - - w.srcPos = make([]int32, nparts+1) - w.srcType = make([]*types.Type, nparts+1) - - w.srcPos[0] = w.pkPos - w.srcType[0] = w.pkType - for i := range w.partsType { - w.srcPos[i+1] = w.partsPos[i] - w.srcType[i+1] = w.partsType[i] - } - - w.centroids_tbl = centroids_tbl - w.entries_tbl = entries_tbl - w.meta_tbl = meta_tbl - - return w, nil -} - -// REPLACE INTO __mo_index_secondary_0197786c-285f-70cb-9337-e484a3ff92c4(__mo_index_centroid_fk_version, __mo_index_centroid_fk_id, __mo_index_pri_col, __mo_index_centroid_fk_entry) -// with centroid as (select * from __mo_index_secondary_0197786c-285f-70bb-b277-2cef56da590a where __mo_index_centroid_version = 0), -// src as (select column_0 as id, cast(column_1 as vecf32(3)) as embed from (values row(2005,'[0.4532634, 0.7297859, 0.48885703]'), row(2009, '[0.68150306, 0.6950923, 0.16590895] '))) -// select __mo_index_centroid_version, __mo_index_centroid_id, id, embed from src centroidx('vector_l2_ops') join centroid using (__mo_index_centroid, embed); -func (w *IvfflatSqlWriter) ToSql() ([]byte, error) { - defer w.Reset() - - if len(w.lastCdcOp) == 0 { - return nil, nil - } - - switch w.lastCdcOp { - case vectorindex.CDC_DELETE: - return w.toIvfflatDelete() - case vectorindex.CDC_UPSERT: - return w.toIvfflatUpsert(true) - case vectorindex.CDC_INSERT: - return w.toIvfflatUpsert(false) - default: - return nil, moerr.NewInternalErrorNoCtx("IvfflatSqlWriter: invalid CDC type") - } -} - -// catalog.SystemSI_IVFFLAT_TblCol_Entries_version -// catalog.SystemSI_IVFFLAT_TblCol_Entries_pk -// catalog.CPrimaryKeyColName -func (w *IvfflatSqlWriter) toIvfflatDelete() ([]byte, error) { - sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE `%s` IN (%s)", w.dbTblInfo.SinkDbName, w.entries_tbl, - catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, - string(w.vbuf)) - return []byte(sql), nil - -} - -func (w *IvfflatSqlWriter) toIvfflatUpsert(upsert bool) ([]byte, error) { - - var sql string - - coldefs := make([]string, 0, len(w.srcPos)) - cnames := make([]string, 0, len(w.srcPos)) - for i := range w.srcPos { - typstr := w.srcType[i].DescString() - cnames = append(cnames, fmt.Sprintf("src%d", i)) - coldefs = append(coldefs, fmt.Sprintf("CAST(column_%d as %s) as `%s`", i, typstr, cnames[i])) - } - - cols := strings.Join(coldefs, ", ") - cnames_str := strings.Join(cnames, ", ") - - if !upsert { - sql += fmt.Sprintf("REPLACE INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) - } else { - sql += fmt.Sprintf("INSERT INTO `%s`.`%s` ", w.dbTblInfo.SinkDbName, w.entries_tbl) - } - - sql += fmt.Sprintf("(`%s`, `%s`, `%s`, `%s`) ", - catalog.SystemSI_IVFFLAT_TblCol_Entries_version, - catalog.SystemSI_IVFFLAT_TblCol_Entries_id, - catalog.SystemSI_IVFFLAT_TblCol_Entries_pk, - catalog.SystemSI_IVFFLAT_TblCol_Entries_entry) - - versql := fmt.Sprintf("SELECT CAST(%s as BIGINT) FROM `%s`.`%s` WHERE `%s` = 'version'", catalog.SystemSI_IVFFLAT_TblCol_Metadata_val, - w.dbTblInfo.SinkDbName, w.meta_tbl, catalog.SystemSI_IVFFLAT_TblCol_Metadata_key) - - sql += fmt.Sprintf("WITH centroid as (SELECT * FROM `%s`.`%s` WHERE `%s` = (%s) ), ", w.dbTblInfo.SinkDbName, w.centroids_tbl, catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, versql) - sql += fmt.Sprintf("src as (SELECT %s FROM (VALUES %s)) ", cols, string(w.vbuf)) - sql += fmt.Sprintf("SELECT `%s`, `%s`, %s FROM src CENTROIDX('%s') JOIN centroid using (`%s`, `%s`)", - catalog.SystemSI_IVFFLAT_TblCol_Centroids_version, - catalog.SystemSI_IVFFLAT_TblCol_Centroids_id, - cnames_str, - w.ivfparam.OpType, - catalog.SystemSI_IVFFLAT_TblCol_Centroids_centroid, - cnames[1]) - - return []byte(sql), nil -} diff --git a/pkg/cdc/index_sqlwriter_test.go b/pkg/cdc/index_sqlwriter_test.go deleted file mode 100644 index b43ef851fb085..0000000000000 --- a/pkg/cdc/index_sqlwriter_test.go +++ /dev/null @@ -1,238 +0,0 @@ -// Copyright 2024 Matrix Origin -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package cdc - -import ( - "context" - "fmt" - "testing" - - "github.com/matrixorigin/matrixone/pkg/catalog" - "github.com/matrixorigin/matrixone/pkg/container/types" - "github.com/matrixorigin/matrixone/pkg/pb/plan" - "github.com/stretchr/testify/require" -) - -func newTestIvfflatTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { - return &plan.TableDef{ - Name: "test_orig_tbl", - Name2ColIndex: map[string]int32{ - pkName: 0, - vecColName: 1, - "dummy": 2, // Add another col to make sure pk/vec col indices are used - }, - Cols: []*plan.ColDef{ - {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, - {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, - {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, - }, - Pkey: &plan.PrimaryKeyDef{ - Names: []string{pkName}, - PkeyColName: pkName, - }, - Indexes: []*plan.IndexDef{ - { - IndexName: "ivfidx", - TableExist: true, - IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), - IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Metadata, - IndexTableName: "meta_tbl", - Parts: []string{vecColName}, - IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, - }, - { - IndexName: "ivfidx", - TableExist: true, - IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), - IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Centroids, - IndexTableName: "centroids_tbl", - Parts: []string{vecColName}, - IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, - }, - { - IndexName: "ivfidx", - TableExist: true, - IndexAlgo: catalog.MoIndexIvfFlatAlgo.ToString(), - IndexAlgoTableType: catalog.SystemSI_IVFFLAT_TblType_Entries, - IndexTableName: "entries_tbl", - Parts: []string{vecColName}, - IndexAlgoParams: `{"lists":"16","op_type":"vector_l2_ops"}`, - }, - }, - DbName: "mydb", - } -} - -func newTestFulltextTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { - return &plan.TableDef{ - Name: "test_orig_tbl", - Name2ColIndex: map[string]int32{ - pkName: 0, - vecColName: 1, - "dummy": 2, // Add another col to make sure pk/vec col indices are used - }, - Cols: []*plan.ColDef{ - {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, - {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, - {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, - }, - Pkey: &plan.PrimaryKeyDef{ - Names: []string{pkName}, - PkeyColName: pkName, - }, - Indexes: []*plan.IndexDef{ - { - IndexName: "fulltext_idx", - TableExist: true, - IndexAlgo: catalog.MOIndexFullTextAlgo.ToString(), - IndexAlgoTableType: "", - IndexTableName: "fulltext_tbl", - Parts: []string{vecColName}, - IndexAlgoParams: `{"parser":"ngram"}`, - }, - }, - DbName: "mydb", - } -} - -func newTestFulltextTableDef2Parts(pkName string, pkType types.T, vecColName string, vecColName2 string, vecType types.T, vecWidth int32) *plan.TableDef { - return &plan.TableDef{ - Name: "test_orig_tbl", - Name2ColIndex: map[string]int32{ - pkName: 0, - vecColName: 1, - vecColName2: 2, - "dummy": 3, // Add another col to make sure pk/vec col indices are used - }, - Cols: []*plan.ColDef{ - {Name: pkName, Typ: plan.Type{Id: int32(pkType)}}, - {Name: vecColName, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, - {Name: vecColName2, Typ: plan.Type{Id: int32(vecType), Width: vecWidth}}, - {Name: "dummy", Typ: plan.Type{Id: int32(types.T_int32)}}, - }, - Pkey: &plan.PrimaryKeyDef{ - Names: []string{pkName}, - PkeyColName: pkName, - }, - Indexes: []*plan.IndexDef{ - { - IndexName: "fulltext_idx", - TableExist: true, - IndexAlgo: catalog.MOIndexFullTextAlgo.ToString(), - IndexAlgoTableType: "", - IndexTableName: "fulltext_tbl", - Parts: []string{vecColName, vecColName2}, - IndexAlgoParams: `{"parser":"ngram"}`, - }, - }, - DbName: "mydb", - } -} - -func TestNewFulltextSqlWriter(t *testing.T) { - var ctx context.Context - - tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) - dbTableInfo := newTestDbTableInfo() - - writer, err := NewIndexSqlWriter("fulltext", dbTableInfo, tabledef, tabledef.Indexes) - require.Nil(t, err) - - row := []any{int64(1000), []uint8("hello world"), nil} - err = writer.Upsert(ctx, row) - require.Nil(t, err) - - row = []any{int64(2000), []uint8("hello world"), nil} - err = writer.Upsert(ctx, row) - require.Nil(t, err) - - bytes, err := writer.ToSql() - require.Nil(t, err) - fmt.Println(string(bytes)) - -} - -func TestNewFulltextSqlWriterCPkey(t *testing.T) { - var ctx context.Context - - tabledef := newTestFulltextTableDef2Parts("__mo_cpkey", types.T_varbinary, "body", "title", types.T_varchar, 256) - dbTableInfo := newTestDbTableInfo() - - writer, err := NewIndexSqlWriter("fulltext", dbTableInfo, tabledef, tabledef.Indexes) - require.Nil(t, err) - - row := []any{[]uint8("abcdef12"), []uint8("hello world"), []uint8("one title"), nil} - err = writer.Upsert(ctx, row) - require.Nil(t, err) - - row = []any{[]uint8("abc"), []uint8("hello world"), []uint8("two title"), nil} - err = writer.Upsert(ctx, row) - require.Nil(t, err) - - bytes, err := writer.ToSql() - require.Nil(t, err) - fmt.Println(string(bytes)) - -} - -func TestNewHnswSqlWriter(t *testing.T) { - var ctx context.Context - - tabledef := newTestTableDef("pk", types.T_int64, "vec", types.T_array_float32, 3) - dbTableInfo := newTestDbTableInfo() - - writer, err := NewHnswSqlWriter("fulltext", dbTableInfo, tabledef, tabledef.Indexes) - require.Nil(t, err) - row := []any{int64(1000), []float32{1, 2, 3}, nil} - err = writer.Upsert(ctx, row) - require.Nil(t, err) - - row = []any{int64(2000), []float32{5, 6, 7}, nil} - err = writer.Insert(ctx, row) - require.Nil(t, err) - - row = []any{int64(3000), []float32{5, 6, 7}, nil} - err = writer.Delete(ctx, row) - require.Nil(t, err) - - bytes, err := writer.ToSql() - require.Nil(t, err) - fmt.Println(string(bytes)) -} - -func TestNewIvfflatSqlWriter(t *testing.T) { - var ctx context.Context - - tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float64, 3) - dbTableInfo := newTestDbTableInfo() - - writer, err := NewIvfflatSqlWriter("ivfflat", dbTableInfo, tabledef, tabledef.Indexes) - require.Nil(t, err) - row := []any{int64(1000), []float64{1, 2, 3}, nil} - err = writer.Insert(ctx, row) - require.Nil(t, err) - - row = []any{int64(2000), []float64{5, 6, 7}, nil} - err = writer.Insert(ctx, row) - require.Nil(t, err) - - row = []any{int64(3000), []float64{5, 6, 7}, nil} - err = writer.Insert(ctx, row) - require.Nil(t, err) - - bytes, err := writer.ToSql() - require.Nil(t, err) - fmt.Println(string(bytes)) -} diff --git a/pkg/cdc/sinker.go b/pkg/cdc/sinker.go index 835b307f8b3ed..b9147b9f47486 100644 --- a/pkg/cdc/sinker.go +++ b/pkg/cdc/sinker.go @@ -54,7 +54,6 @@ var ( ) var NewSinker = func( - cnUUID string, sinkUri UriInfo, accountId uint64, taskId string, @@ -72,10 +71,6 @@ var NewSinker = func( return NewConsoleSinker(dbTblInfo, watermarkUpdater), nil } - if sinkUri.SinkTyp == CDCSinkType_IndexSync { - return NewIndexSyncSinker(cnUUID, sinkUri, accountId, taskId, dbTblInfo, watermarkUpdater, tableDef, retryTimes, retryDuration, ar, maxSqlLength, sendSqlTimeout) - } - var ( err error sink Sink @@ -516,8 +511,7 @@ func (s *mysqlSinker) SendDummy() { } func (s *mysqlSinker) Error() error { - if ptr := s.err.Load(); ptr != nil { - errPtr := ptr.(*error) + if errPtr := s.err.Load().(*error); *errPtr != nil { if moErr, ok := (*errPtr).(*moerr.Error); !ok { return moerr.ConvertGoError(context.Background(), *errPtr) } else { diff --git a/pkg/cdc/sinker_test.go b/pkg/cdc/sinker_test.go index 677047bb161d3..c3a59ae655023 100644 --- a/pkg/cdc/sinker_test.go +++ b/pkg/cdc/sinker_test.go @@ -147,7 +147,6 @@ func TestNewSinker(t *testing.T) { defer sinkerStub.Reset() got, err := NewSinker( - "", tt.args.sinkUri, tt.args.accountId, tt.args.taskId, diff --git a/pkg/cdc/types.go b/pkg/cdc/types.go index 4dedf35bfcf42..ed94a337ea4ec 100644 --- a/pkg/cdc/types.go +++ b/pkg/cdc/types.go @@ -52,10 +52,9 @@ const ( ) const ( - CDCSinkType_MySQL = "mysql" - CDCSinkType_MO = "matrixone" - CDCSinkType_Console = "console" - CDCSinkType_IndexSync = "indexsync" + CDCSinkType_MySQL = "mysql" + CDCSinkType_MO = "matrixone" + CDCSinkType_Console = "console" ) const ( diff --git a/pkg/frontend/cdc_exector.go b/pkg/frontend/cdc_exector.go index a71be8620d700..b6f0bab9e4ee4 100644 --- a/pkg/frontend/cdc_exector.go +++ b/pkg/frontend/cdc_exector.go @@ -562,7 +562,6 @@ func (exec *CDCTaskExecutor) addExecPipelineForTable( // step 2. new sinker sinker, err := cdc.NewSinker( - exec.cnUUID, exec.sinkUri, uint64(exec.spec.Accounts[0].GetId()), exec.spec.TaskId, diff --git a/pkg/frontend/cdc_options.go b/pkg/frontend/cdc_options.go index e9049528f3ef2..6578754c3fdaf 100644 --- a/pkg/frontend/cdc_options.go +++ b/pkg/frontend/cdc_options.go @@ -124,7 +124,7 @@ func (opts *CDCCreateTaskOptions) ValidateAndFill( if cdc.EnableConsoleSink && opts.SinkType == cdc.CDCSinkType_Console { opts.UseConsole = true } - if !opts.UseConsole && opts.SinkType != cdc.CDCSinkType_MySQL && opts.SinkType != cdc.CDCSinkType_MO && opts.SinkType != cdc.CDCSinkType_IndexSync { + if !opts.UseConsole && opts.SinkType != cdc.CDCSinkType_MySQL && opts.SinkType != cdc.CDCSinkType_MO { err = moerr.NewInternalErrorf(ctx, "unsupported sink type: %s", req.SinkType) return } diff --git a/pkg/frontend/cdc_test.go b/pkg/frontend/cdc_test.go index 3277b1c09fe86..aba0ee7de649e 100644 --- a/pkg/frontend/cdc_test.go +++ b/pkg/frontend/cdc_test.go @@ -3081,7 +3081,6 @@ func TestCdcTask_addExecPipelineForTable(t *testing.T) { stubSinker := gostub.Stub( &cdc.NewSinker, func( - string, cdc.UriInfo, uint64, string, From 4b2cc9ca788ed1506d7ae1ae7366645fda619215 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 26 Aug 2025 13:07:17 +0100 Subject: [PATCH 231/335] fix account id --- pkg/iscp/data_retriever.go | 8 ++++++++ pkg/iscp/index_consumer.go | 8 ++++++-- pkg/iscp/types.go | 2 ++ pkg/vectorindex/hnsw/sync.go | 13 ++++++++++--- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/pkg/iscp/data_retriever.go b/pkg/iscp/data_retriever.go index aa575d463e2f8..6cc2c1ae0d52d 100644 --- a/pkg/iscp/data_retriever.go +++ b/pkg/iscp/data_retriever.go @@ -137,6 +137,14 @@ func (r *DataRetrieverImpl) GetDataType() int8 { return r.typ } +func (r *DataRetrieverImpl) GetAccountID() uint32 { + return r.accountID +} + +func (r *DataRetrieverImpl) GetTableID() uint64 { + return r.tableID +} + func (r *DataRetrieverImpl) SetNextBatch(data *ISCPData) { if r.hasError() { return diff --git a/pkg/iscp/index_consumer.go b/pkg/iscp/index_consumer.go index 91c1a972cc18f..8c49cd38a964c 100644 --- a/pkg/iscp/index_consumer.go +++ b/pkg/iscp/index_consumer.go @@ -24,6 +24,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/common/runtime" + "github.com/matrixorigin/matrixone/pkg/defines" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/util/executor" @@ -126,7 +127,9 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev return } func() { - newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + newctx := context.WithValue(ctx, defines.TenantIDKey{}, r.GetAccountID()) + newctx, cancel := context.WithTimeout(newctx, time.Hour) + defer cancel() //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") opts := executor.Options{} @@ -144,7 +147,8 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev } else { // TAIL - newctx, cancel := context.WithTimeout(context.Background(), time.Hour) + newctx := context.WithValue(ctx, defines.TenantIDKey{}, r.GetAccountID()) + newctx, cancel := context.WithTimeout(newctx, time.Hour) defer cancel() opts := executor.Options{} err := c.exec.ExecTxn(newctx, diff --git a/pkg/iscp/types.go b/pkg/iscp/types.go index 377d4d670e82e..f87950eadbbe3 100644 --- a/pkg/iscp/types.go +++ b/pkg/iscp/types.go @@ -57,6 +57,8 @@ type DataRetriever interface { Next() (iscpData *ISCPData) UpdateWatermark(executor.TxnExecutor, executor.StatementOption) error GetDataType() int8 + GetAccountID() uint32 + GetTableID() uint64 } // In an iteration, the table's data is propagated downstream. diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index ae01e67751a1f..1cd11a8c4a61c 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -26,6 +26,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/defines" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" @@ -38,7 +39,7 @@ import ( // CdcSync is the main function to update hnsw index via CDC. SQL function hnsw_cdc_update() will call this function. const ( - catalogsql = "select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s') and algo='hnsw';" + catalogsql = "select index_table_name, algo_table_type, algo_params, column_name from mo_catalog.mo_indexes where table_id = (select rel_id from mo_catalog.mo_tables where relname = '%s' and reldatabase = '%s' and account_id = %d) and algo='hnsw';" ) var runTxn = sqlexec.RunTxn @@ -46,8 +47,13 @@ var runCatalogSql = sqlexec.RunSql func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { + accountId, err := defines.GetAccountId(proc.Ctx) + if err != nil { + return err + } + // get index catalog - sql := fmt.Sprintf(catalogsql, tbl, db) + sql := fmt.Sprintf(catalogsql, tbl, db, accountId) res, err := runCatalogSql(proc, sql) if err != nil { return err @@ -57,7 +63,8 @@ func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc //os.Stderr.WriteString(sql) if len(res.Batches) == 0 { - return nil + return moerr.NewInternalError(proc.Ctx, fmt.Sprintf("hnsw cdc sync: no secondary index tables found with accountID %d, table %s and db %s", + accountId, tbl, db)) } bat := res.Batches[0] From 82fbd5cf80fe07af58f29e67d9410802e6841a48 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 26 Aug 2025 13:26:05 +0100 Subject: [PATCH 232/335] fix data retriever mock --- pkg/iscp/index_consumer_test.go | 8 ++++++++ pkg/iscp/mock_consumer.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/iscp/index_consumer_test.go b/pkg/iscp/index_consumer_test.go index 8ccc7e0f8a23a..0bde58fb03476 100644 --- a/pkg/iscp/index_consumer_test.go +++ b/pkg/iscp/index_consumer_test.go @@ -65,6 +65,14 @@ func (r *MockRetriever) GetDataType() int8 { return r.dtype } +func (r *MockRetriever) GetAccountID() uint32 { + return uint32(0) +} + +func (r *MockRetriever) GetTableID() uint64 { + return uint64(0) +} + var _ DataRetriever = new(MockRetriever) func newTestTableDef(pkName string, pkType types.T, vecColName string, vecType types.T, vecWidth int32) *plan.TableDef { diff --git a/pkg/iscp/mock_consumer.go b/pkg/iscp/mock_consumer.go index 92ea883256f83..75e8beeb044ca 100644 --- a/pkg/iscp/mock_consumer.go +++ b/pkg/iscp/mock_consumer.go @@ -222,7 +222,7 @@ func (s *interalSqlConsumer) Consume(ctx context.Context, data DataRetriever) er } } case ISCPDataType_Tail: - ctx := context.WithValue(context.Background(), defines.TenantIDKey{}, uint32(0)) + ctx := context.WithValue(context.Background(), defines.TenantIDKey{}, data.GetAccountID()) ctx, cancel := context.WithTimeout(ctx, time.Minute*5) defer cancel() err := s.internalSqlExecutor.ExecTxn(ctx, func(txn executor.TxnExecutor) error { From 9efa664d13160f6e62320dc8c4a668a7078d0a6b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 26 Aug 2025 15:08:20 +0100 Subject: [PATCH 233/335] fix sca --- pkg/sql/compile/ddl.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index c11ce8c12fbbc..2ec455e9a218d 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -41,7 +41,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/defines" "github.com/matrixorigin/matrixone/pkg/incrservice" - "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/partitionservice" "github.com/matrixorigin/matrixone/pkg/pb/api" "github.com/matrixorigin/matrixone/pkg/pb/lock" From 2e815bb65a1ca622587a2493db8717287e3363bc Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 27 Aug 2025 10:41:39 +0100 Subject: [PATCH 234/335] bug fix default with sys account and change to particular id by options.WithAccountID --- pkg/iscp/index_consumer.go | 11 ++++------- pkg/iscp/iteration.go | 6 +++++- pkg/iscp/mock_consumer.go | 1 - 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/iscp/index_consumer.go b/pkg/iscp/index_consumer.go index 8c49cd38a964c..79e3065c6b635 100644 --- a/pkg/iscp/index_consumer.go +++ b/pkg/iscp/index_consumer.go @@ -24,7 +24,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/common/runtime" - "github.com/matrixorigin/matrixone/pkg/defines" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/plan" "github.com/matrixorigin/matrixone/pkg/util/executor" @@ -127,12 +126,11 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev return } func() { - newctx := context.WithValue(ctx, defines.TenantIDKey{}, r.GetAccountID()) - newctx, cancel := context.WithTimeout(newctx, time.Hour) + newctx, cancel := context.WithTimeout(ctx, time.Hour) defer cancel() //os.Stderr.WriteString("Wait for BEGIN but sql. execute anyway\n") - opts := executor.Options{} + opts := executor.Options{}.WithAccountID(r.GetAccountID()) res, err := c.exec.Exec(newctx, string(sql), opts) if err != nil { logutil.Errorf("cdc indexConsumer(%v) send sql failed, err: %v, sql: %s", c.info, err, string(sql)) @@ -147,8 +145,7 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev } else { // TAIL - newctx := context.WithValue(ctx, defines.TenantIDKey{}, r.GetAccountID()) - newctx, cancel := context.WithTimeout(newctx, time.Hour) + newctx, cancel := context.WithTimeout(ctx, time.Hour) defer cancel() opts := executor.Options{} err := c.exec.ExecTxn(newctx, @@ -166,7 +163,7 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev } // update SQL - res, err := exec.Exec(string(sql), opts.StatementOption()) + res, err := exec.Exec(string(sql), opts.StatementOption().WithAccountID(r.GetAccountID())) if err != nil { return err } diff --git a/pkg/iscp/iteration.go b/pkg/iscp/iteration.go index b877b0964a2e6..af84f56d8152e 100644 --- a/pkg/iscp/iteration.go +++ b/pkg/iscp/iteration.go @@ -99,6 +99,9 @@ func ExecuteIteration( } changes, err := CollectChanges(ctx, rel, iterCtx.fromTS, iterCtx.toTS, mp) + if err != nil { + return + } if changes != nil { defer changes.Close() } @@ -256,7 +259,8 @@ func ExecuteIteration( waitGroups[i].Add(1) go func(i int) { defer waitGroups[i].Done() - err := consumerEntry.Consume(context.Background(), dataRetrievers[i]) + ctx := context.WithValue(context.Background(), defines.TenantIDKey{}, catalog.System_Account) + err := consumerEntry.Consume(ctx, dataRetrievers[i]) if err != nil { logutil.Error( "ISCP-Task sink consume failed", diff --git a/pkg/iscp/mock_consumer.go b/pkg/iscp/mock_consumer.go index 75e8beeb044ca..d6fd4aab06855 100644 --- a/pkg/iscp/mock_consumer.go +++ b/pkg/iscp/mock_consumer.go @@ -222,7 +222,6 @@ func (s *interalSqlConsumer) Consume(ctx context.Context, data DataRetriever) er } } case ISCPDataType_Tail: - ctx := context.WithValue(context.Background(), defines.TenantIDKey{}, data.GetAccountID()) ctx, cancel := context.WithTimeout(ctx, time.Minute*5) defer cancel() err := s.internalSqlExecutor.ExecTxn(ctx, func(txn executor.TxnExecutor) error { From 55f769d969a61b7835dbd9c851d2f74d0c3ee7c1 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 27 Aug 2025 10:45:11 +0100 Subject: [PATCH 235/335] revert --- pkg/iscp/mock_consumer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/iscp/mock_consumer.go b/pkg/iscp/mock_consumer.go index d6fd4aab06855..a5a26ceb32bca 100644 --- a/pkg/iscp/mock_consumer.go +++ b/pkg/iscp/mock_consumer.go @@ -222,7 +222,7 @@ func (s *interalSqlConsumer) Consume(ctx context.Context, data DataRetriever) er } } case ISCPDataType_Tail: - ctx, cancel := context.WithTimeout(ctx, time.Minute*5) + ctx, cancel := context.WithTimeout(context.Background(), time.Minute*5) defer cancel() err := s.internalSqlExecutor.ExecTxn(ctx, func(txn executor.TxnExecutor) error { for { From 640008e2feba35be6bc221822e68f288ae15df94 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 27 Aug 2025 10:49:14 +0100 Subject: [PATCH 236/335] system account --- pkg/iscp/mock_consumer.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/iscp/mock_consumer.go b/pkg/iscp/mock_consumer.go index a5a26ceb32bca..ddc79b288359f 100644 --- a/pkg/iscp/mock_consumer.go +++ b/pkg/iscp/mock_consumer.go @@ -222,7 +222,8 @@ func (s *interalSqlConsumer) Consume(ctx context.Context, data DataRetriever) er } } case ISCPDataType_Tail: - ctx, cancel := context.WithTimeout(context.Background(), time.Minute*5) + ctx := context.WithValue(context.Background(), defines.TenantIDKey{}, catalog.System_Account) + ctx, cancel := context.WithTimeout(ctx, time.Minute*5) defer cancel() err := s.internalSqlExecutor.ExecTxn(ctx, func(txn executor.TxnExecutor) error { for { From dfa61665ef5dca4d2a0b384b2065477b4c22f24e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 27 Aug 2025 17:35:04 +0100 Subject: [PATCH 237/335] fix ivf index name --- pkg/iscp/index_sqlwriter.go | 2 +- pkg/sql/compile/ddl.go | 2 +- pkg/sql/compile/ddl_index_algo.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/iscp/index_sqlwriter.go b/pkg/iscp/index_sqlwriter.go index 0f12db2c62205..e1c8d2e9573fe 100644 --- a/pkg/iscp/index_sqlwriter.go +++ b/pkg/iscp/index_sqlwriter.go @@ -111,7 +111,7 @@ func NewIndexSqlWriter(algo string, jobID JobID, info *ConsumerInfo, tabledef *p case catalog.MoIndexHnswAlgo.ToString(): return NewHnswSqlWriter(algo, jobID, info, tabledef, indexdef) default: - return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx("IndexSqlWriter: invalid algo type") + return IndexSqlWriter(nil), moerr.NewInternalErrorNoCtx(fmt.Sprintf("IndexSqlWriter: invalid algo type: %s", algo)) } } diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 2ec455e9a218d..3abb18cd0d5f6 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -2049,7 +2049,7 @@ func (s *Scope) handleVectorIvfFlatIndex( logutil.Infof("Ivfflat index Async is true") sinker_type := getSinkerTypeFromAlgo(catalog.MoIndexIvfFlatAlgo.ToString()) err = CreateIndexCdcTask(c, qryDatabase, originalTableDef.Name, - indexDefs[catalog.SystemSI_IVFFLAT_TblType_Metadata].IndexTableName, sinker_type) + indexDefs[catalog.SystemSI_IVFFLAT_TblType_Metadata].IndexName, sinker_type) if err != nil { return err } diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index 57409bff43cf6..8b7896811af37 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -170,7 +170,7 @@ func (s *Scope) handleFullTextIndexTable( logutil.Infof("fulltext index Async is true") sinker_type := getSinkerTypeFromAlgo(catalog.MOIndexFullTextAlgo.ToString()) err = CreateIndexCdcTask(c, qryDatabase, originalTableDef.Name, - indexDef.IndexTableName, sinker_type) + indexDef.IndexName, sinker_type) if err != nil { return err } From 3fd0782dd1a44db73d33535ae8af2269c40624b1 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 28 Aug 2025 10:18:40 +0100 Subject: [PATCH 238/335] support secondary index table --- pkg/sql/plan/bind_replace.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkg/sql/plan/bind_replace.go b/pkg/sql/plan/bind_replace.go index 4cfca12a3d050..44e3a9756e4da 100644 --- a/pkg/sql/plan/bind_replace.go +++ b/pkg/sql/plan/bind_replace.go @@ -51,11 +51,6 @@ func (builder *QueryBuilder) appendDedupAndMultiUpdateNodesForBindReplace( tableDef := dmlCtx.tableDefs[0] pkName := tableDef.Pkey.PkeyColName - if tableDef.TableType != catalog.SystemOrdinaryRel && - tableDef.TableType != catalog.SystemIndexRel { - return 0, moerr.NewUnsupportedDML(builder.GetContext(), "insert into vector/text index table") - } - if pkName == catalog.FakePrimaryKeyColName { return 0, moerr.NewUnsupportedDML(builder.GetContext(), "fake primary key") //return builder.appendDedupAndMultiUpdateNodesForBindInsert(bindCtx, dmlCtx, lastNodeID, colName2Idx, skipUniqueIdx, nil) From 4c6d1fbed1a44b35fcc67cdce651daf4640a4d7b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 28 Aug 2025 10:29:39 +0100 Subject: [PATCH 239/335] support secondary index table --- pkg/sql/plan/bind_insert.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkg/sql/plan/bind_insert.go b/pkg/sql/plan/bind_insert.go index 7a619f20eea91..5dfddf328245c 100644 --- a/pkg/sql/plan/bind_insert.go +++ b/pkg/sql/plan/bind_insert.go @@ -121,11 +121,6 @@ func (builder *QueryBuilder) appendDedupAndMultiUpdateNodesForBindInsert( tableDef := dmlCtx.tableDefs[0] pkName := tableDef.Pkey.PkeyColName - if tableDef.TableType != catalog.SystemOrdinaryRel && - tableDef.TableType != catalog.SystemIndexRel { - return 0, moerr.NewUnsupportedDML(builder.GetContext(), "insert into vector/text index table") - } - var ( err error onDupAction plan.Node_OnDuplicateAction From 8986c1fed7b95c74f86892f3a8201f504d67a3d8 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 28 Aug 2025 11:41:38 +0100 Subject: [PATCH 240/335] Revert "support secondary index table" This reverts commit 4c6d1fbed1a44b35fcc67cdce651daf4640a4d7b. --- pkg/sql/plan/bind_insert.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/sql/plan/bind_insert.go b/pkg/sql/plan/bind_insert.go index 5dfddf328245c..7a619f20eea91 100644 --- a/pkg/sql/plan/bind_insert.go +++ b/pkg/sql/plan/bind_insert.go @@ -121,6 +121,11 @@ func (builder *QueryBuilder) appendDedupAndMultiUpdateNodesForBindInsert( tableDef := dmlCtx.tableDefs[0] pkName := tableDef.Pkey.PkeyColName + if tableDef.TableType != catalog.SystemOrdinaryRel && + tableDef.TableType != catalog.SystemIndexRel { + return 0, moerr.NewUnsupportedDML(builder.GetContext(), "insert into vector/text index table") + } + var ( err error onDupAction plan.Node_OnDuplicateAction From b34aa5575842035498974773a490b14e3bcc5e2e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 28 Aug 2025 13:08:32 +0100 Subject: [PATCH 241/335] fix cast null value with type --- pkg/iscp/index_sqlwriter_test.go | 2 +- pkg/iscp/util.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/iscp/index_sqlwriter_test.go b/pkg/iscp/index_sqlwriter_test.go index bf75164a255a2..6b8b00b01ec5d 100644 --- a/pkg/iscp/index_sqlwriter_test.go +++ b/pkg/iscp/index_sqlwriter_test.go @@ -155,7 +155,7 @@ func TestNewFulltextSqlWriter(t *testing.T) { err = writer.Upsert(ctx, row) require.Nil(t, err) - row = []any{int64(2000), []uint8("hello world"), nil} + row = []any{int64(2000), nil, nil} err = writer.Upsert(ctx, row) require.Nil(t, err) diff --git a/pkg/iscp/util.go b/pkg/iscp/util.go index 7abb3be197d15..fc3af6f7e9d7c 100644 --- a/pkg/iscp/util.go +++ b/pkg/iscp/util.go @@ -17,7 +17,9 @@ package iscp import ( "context" "encoding/hex" + "fmt" "slices" + // "encoding/hex" "math" // "slices" @@ -171,7 +173,8 @@ func convertColIntoSql( typ *types.Type, sqlBuff []byte) ([]byte, error) { if data == nil { - sqlBuff = appendString(sqlBuff, "NULL") + typstr := typ.DescString() + sqlBuff = appendString(sqlBuff, fmt.Sprintf("CAST(NULL as %s)", typstr)) return sqlBuff, nil } var temp string From 45851c7a418eb6667f22402e85b4ae9f7b17b20a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 29 Aug 2025 11:26:05 +0100 Subject: [PATCH 242/335] better checking with valid cdc async index --- pkg/sql/compile/cdc_util.go | 110 ++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 42 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 06535dabe5c1f..8221f0ce2df1b 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -78,18 +78,43 @@ func DeleteIndexPitr(c *Compile, dbname string, tablename string) error { return nil } -func checkValidIndexCdc(tableDef *plan.TableDef, indexname string) bool { +func checkValidIndexCdcByIndexdef(idx *plan.IndexDef) (bool, error) { + var err error + + if idx.TableExist && + (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || + catalog.IsIvfIndexAlgo(idx.IndexAlgo) || + catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + async := false + if catalog.IsHnswIndexAlgo(idx.IndexAlgo) { + // HNSW always async + async = true + } else { + async, err = catalog.IsIndexAsync(idx.IndexAlgoParams) + if err != nil { + return false, err + } + } + + return async, nil + } + return false, nil +} + +func checkValidIndexCdc(tableDef *plan.TableDef, indexname string) (bool, error) { for _, idx := range tableDef.Indexes { + if idx.IndexName == indexname { - if idx.TableExist && - (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || - catalog.IsIvfIndexAlgo(idx.IndexAlgo) || - catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - return true + valid, err := checkValidIndexCdcByIndexdef(idx) + if err != nil { + return false, err + } + if valid { + return true, nil } } } - return false + return false, nil } // NOTE: CreateIndexCdcTask will create CDC task without any checking. Original TableDef may be empty @@ -131,7 +156,12 @@ func genCdcTaskJobID(indexname string) string { func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablename string, indexname string) error { var err error - if !checkValidIndexCdc(tableDef, indexname) { + valid, err := checkValidIndexCdc(tableDef, indexname) + if err != nil { + return err + } + + if !valid { // index name is not valid cdc task. ignore it return nil } @@ -143,21 +173,25 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen } // remove pitr if no index uses the pitr - nindex := 0 + hasCdcIndex := false for _, idx := range tableDef.Indexes { - if idx.TableExist && - (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || - catalog.IsIvfIndexAlgo(idx.IndexAlgo) || - catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { + if idx.IndexName == indexname { + // skip same index name. don't count + continue + } - if idx.IndexName != indexname { - nindex++ - } + valid, err := checkValidIndexCdcByIndexdef(idx) + if err != nil { + return err } + if valid { + hasCdcIndex = true + break + } } - if nindex == 0 { + if !hasCdcIndex { // remove pitr err = DeleteIndexPitr(c, dbname, tablename) if err != nil { @@ -171,33 +205,25 @@ func DropIndexCdcTask(c *Compile, tableDef *plan.TableDef, dbname string, tablen // drop all cdc tasks according to tableDef func DropAllIndexCdcTasks(c *Compile, tabledef *plan.TableDef, dbname string, tablename string) error { idxmap := make(map[string]bool) - var err error hasindex := false for _, idx := range tabledef.Indexes { - if idx.TableExist && - (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || - catalog.IsIvfIndexAlgo(idx.IndexAlgo) || - catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - _, ok := idxmap[idx.IndexName] - if !ok { - idxmap[idx.IndexName] = true - async := false - if catalog.IsHnswIndexAlgo(idx.IndexAlgo) { - // HNSW always async - async = true - } else { - async, err = catalog.IsIndexAsync(idx.IndexAlgoParams) - if err != nil { - return err - } - } - if async { - hasindex = true - _, e := DeleteCdcTask(c, &iscp.JobID{DBName: dbname, TableName: tablename, JobName: genCdcTaskJobID(idx.IndexName)}) - if e != nil { - return e - } - } + + _, ok := idxmap[idx.IndexName] + if ok { + continue + } + + valid, err := checkValidIndexCdcByIndexdef(idx) + if err != nil { + return err + } + + if valid { + idxmap[idx.IndexName] = true + hasindex = true + _, e := DeleteCdcTask(c, &iscp.JobID{DBName: dbname, TableName: tablename, JobName: genCdcTaskJobID(idx.IndexName)}) + if e != nil { + return e } } } From bc1218fba6e7008044aa58f07c3c1a327195f6ee Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 29 Aug 2025 11:26:18 +0100 Subject: [PATCH 243/335] bug fix alter table drop index --- pkg/sql/compile/ddl.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index 3abb18cd0d5f6..42359afa9c9ec 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -560,6 +560,13 @@ func (s *Scope) AlterTableInplace(c *Compile) error { newIndexes = append(newIndexes, extra.IndexTables[idx]) } } + + // drop index cdc task + err = DropIndexCdcTask(c, oTableDef, dbName, tblName, constraintName) + if err != nil { + return err + } + // Avoid modifying slice directly during iteration oTableDef.Indexes = notDroppedIndex extra.IndexTables = newIndexes From 6262a1e34ff3054a4d2f79824e1eb79f0c58c26f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 29 Aug 2025 11:32:12 +0100 Subject: [PATCH 244/335] update --- pkg/sql/compile/cdc_util.go | 41 +++++++++++++++---------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/pkg/sql/compile/cdc_util.go b/pkg/sql/compile/cdc_util.go index 8221f0ce2df1b..83cd2b1a3730a 100644 --- a/pkg/sql/compile/cdc_util.go +++ b/pkg/sql/compile/cdc_util.go @@ -249,32 +249,23 @@ func getSinkerTypeFromAlgo(algo string) int8 { // NOTE: CreateAllIndexCdcTasks will create CDC task according to existing tableDef func CreateAllIndexCdcTasks(c *Compile, indexes []*plan.IndexDef, dbname string, tablename string) error { idxmap := make(map[string]bool) - var err error for _, idx := range indexes { - if idx.TableExist && - (catalog.IsHnswIndexAlgo(idx.IndexAlgo) || - catalog.IsIvfIndexAlgo(idx.IndexAlgo) || - catalog.IsFullTextIndexAlgo(idx.IndexAlgo)) { - _, ok := idxmap[idx.IndexName] - if !ok { - idxmap[idx.IndexName] = true - async := false - if catalog.IsHnswIndexAlgo(idx.IndexAlgo) { - // HNSW always async - async = true - } else { - async, err = catalog.IsIndexAsync(idx.IndexAlgoParams) - if err != nil { - return err - } - } - if async { - sinker_type := getSinkerTypeFromAlgo(idx.IndexAlgo) - e := CreateIndexCdcTask(c, dbname, tablename, idx.IndexName, sinker_type) - if e != nil { - return e - } - } + _, ok := idxmap[idx.IndexName] + if ok { + continue + } + + valid, err := checkValidIndexCdcByIndexdef(idx) + if err != nil { + return err + } + + if valid { + idxmap[idx.IndexName] = true + sinker_type := getSinkerTypeFromAlgo(idx.IndexAlgo) + e := CreateIndexCdcTask(c, dbname, tablename, idx.IndexName, sinker_type) + if e != nil { + return e } } } From 89baab0072d5496a54b4b6b5555055a0d314d0c1 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 2 Sep 2025 09:04:37 +0100 Subject: [PATCH 245/335] drop database also remove iscp jobs --- pkg/sql/compile/ddl.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/sql/compile/ddl.go b/pkg/sql/compile/ddl.go index fdf2e6548ff11..2887247aa9245 100644 --- a/pkg/sql/compile/ddl.go +++ b/pkg/sql/compile/ddl.go @@ -27,6 +27,7 @@ import ( moruntime "github.com/matrixorigin/matrixone/pkg/common/runtime" "github.com/matrixorigin/matrixone/pkg/config" + "github.com/matrixorigin/matrixone/pkg/iscp" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/pb/task" @@ -231,6 +232,13 @@ func (s *Scope) DropDatabase(c *Compile) error { return err } } + + // 5.unregister iscp jobs + err = iscp.UnregisterJobsByDBName(c.proc.Ctx, c.proc.GetService(), c.proc.GetTxnOperator(), dbName) + if err != nil { + return err + } + return err } From bb06ed84e4ab23c408a8b9ed9893a0dbceaae867 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 2 Sep 2025 09:19:02 +0100 Subject: [PATCH 246/335] bug fix check tableIDs is empty --- pkg/iscp/watermark_updater.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/iscp/watermark_updater.go b/pkg/iscp/watermark_updater.go index 56b69d2ebaa45..e38125b4d7c24 100644 --- a/pkg/iscp/watermark_updater.go +++ b/pkg/iscp/watermark_updater.go @@ -169,15 +169,19 @@ func unregisterJobsByDBName( tableIDs = append(tableIDs, currentIDs...) return true }) - tableIDStr := "" - for i, tid := range tableIDs { - if i != 0 { - tableIDStr += "," + + if len(tableIDs) > 0 { + tableIDStr := "" + for i, tid := range tableIDs { + if i != 0 { + tableIDStr += "," + } + tableIDStr += fmt.Sprintf("%d", tid) } - tableIDStr += fmt.Sprintf("%d", tid) + updateDropAtSql := fmt.Sprintf("UPDATE mo_catalog.mo_iscp_log SET drop_at = now() WHERE account_id = %d AND table_id IN (%s)", tenantId, tableIDStr) + _, err = ExecWithResult(ctxWithSysAccount, updateDropAtSql, cnUUID, txn) } - updateDropAtSql := fmt.Sprintf("UPDATE mo_catalog.mo_iscp_log SET drop_at = now() WHERE account_id = %d AND table_id IN (%s)", tenantId, tableIDStr) - _, err = ExecWithResult(ctxWithSysAccount, updateDropAtSql, cnUUID, txn) + return } From 2bd1f1bdc33762ff8a41752cb2573c113b2b2898 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 3 Sep 2025 11:09:42 +0100 Subject: [PATCH 247/335] check data is nil --- pkg/iscp/index_consumer.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/iscp/index_consumer.go b/pkg/iscp/index_consumer.go index 79e3065c6b635..b2a7e9dcadae3 100644 --- a/pkg/iscp/index_consumer.go +++ b/pkg/iscp/index_consumer.go @@ -181,6 +181,16 @@ func (c *IndexConsumer) run(ctx context.Context, errch chan error, r DataRetriev func (c *IndexConsumer) processISCPData(ctx context.Context, data *ISCPData, datatype int8, errch chan error) bool { // release the data + + if data == nil { + err := c.flushCdc() + if err != nil { + errch <- err + } + close(c.sqlBufSendCh) + return true + } + defer data.Done() insertBatch := data.insertBatch From 3ba370c2cbd54fcc61f64258c6dbe15753941e69 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 4 Sep 2025 11:37:13 +0100 Subject: [PATCH 248/335] bug fix hnsw load index not free when error --- pkg/vectorindex/hnsw/search.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/vectorindex/hnsw/search.go b/pkg/vectorindex/hnsw/search.go index 4094e41430ac5..77ddebc5a574d 100644 --- a/pkg/vectorindex/hnsw/search.go +++ b/pkg/vectorindex/hnsw/search.go @@ -203,13 +203,22 @@ func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*Hnsw // load index from database func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswModel) ([]*HnswModel, error) { + var err error for _, idx := range indexes { - err := idx.LoadIndex(proc, s.Idxcfg, s.Tblcfg, s.ThreadsSearch, true) + err = idx.LoadIndex(proc, s.Idxcfg, s.Tblcfg, s.ThreadsSearch, true) if err != nil { - return nil, err + break } } + + if err != nil { + for _, idx := range indexes { + idx.Destroy() + } + return nil, err + } + return indexes, nil } From da6d569a8ba678e987bdc707f327699218511dfb Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 4 Sep 2025 11:39:38 +0100 Subject: [PATCH 249/335] limit max 2k values per insert into to avoid slow gc and OOM --- pkg/vectorindex/hnsw/model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 010a5fa9a3825..14a877fa022fb 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -230,7 +230,7 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) chunkid++ n++ - if n == 10000 { + if n == 2000 { newsql := sql + strings.Join(values, ", ") sqls = append(sqls, newsql) values = values[:0] From ed631c75d5844b0a63d10ff82cba9dab0184739e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Thu, 4 Sep 2025 13:40:34 +0100 Subject: [PATCH 250/335] add bvt tests --- .../cases/fulltext/fulltext_async.result | 19 ++++++ .../cases/fulltext/fulltext_async.sql | 21 +++++++ .../cases/vector/vector_ivf_async.result | 58 ++++++++++++++++++ .../cases/vector/vector_ivf_async.sql | 59 +++++++++++++++++++ 4 files changed, 157 insertions(+) create mode 100644 test/distributed/cases/fulltext/fulltext_async.result create mode 100644 test/distributed/cases/fulltext/fulltext_async.sql create mode 100644 test/distributed/cases/vector/vector_ivf_async.result create mode 100644 test/distributed/cases/vector/vector_ivf_async.sql diff --git a/test/distributed/cases/fulltext/fulltext_async.result b/test/distributed/cases/fulltext/fulltext_async.result new file mode 100644 index 0000000000000..e63feff24d628 --- /dev/null +++ b/test/distributed/cases/fulltext/fulltext_async.result @@ -0,0 +1,19 @@ +set experimental_fulltext_index=1; +set ft_relevancy_algorithm="TF-IDF"; +create table src (id bigint primary key, body varchar, title text, FULLTEXT ftidx (body, title) ASYNC); +insert into src values (0, 'color is red', 't1'), (1, 'car is yellow', 'crazy car'), (2, 'sky is blue', 'no limit'), (3, 'blue is not red', 'colorful'), +(4, '遠東兒童中文是針對6到9歲的小朋友精心設計的中文學習教材,共三冊,目前已出版一、二冊。', '遠東兒童中文'), +(5, '每冊均採用近百張全幅彩圖及照片,生動活潑、自然真實,加深兒童學習印象,洋溢學習樂趣。', '遠東兒童中文'), +(6, '各個單元主題內容涵蓋中華文化及生活應用的介紹。本套教材含課本、教學指引、生字卡、學生作業本與CD,中英對照,精美大字版。本系列有繁體字及簡體字兩種版本印行。', '中文短篇小說'), +(7, '59個簡單的英文和中文短篇小說', '適合初學者'), +(8, NULL, 'NOT INCLUDED'), +(9, 'NOT INCLUDED BODY', NULL), +(10, NULL, NULL); +select sleep(30); +sleep(30) +0 +select * from src where match(body, title) against('red'); +id body title +0 color is red t1 +3 blue is not red colorful +drop table src; diff --git a/test/distributed/cases/fulltext/fulltext_async.sql b/test/distributed/cases/fulltext/fulltext_async.sql new file mode 100644 index 0000000000000..b33153e5f090b --- /dev/null +++ b/test/distributed/cases/fulltext/fulltext_async.sql @@ -0,0 +1,21 @@ +-- TODO: run all tests with both experimental_fulltext_index = 0 and 1 +-- TODO: GENERATE the test case to cover all combinations of types (varchar, char and text) +set experimental_fulltext_index=1; +set ft_relevancy_algorithm="TF-IDF"; + +create table src (id bigint primary key, body varchar, title text, FULLTEXT ftidx (body, title) ASYNC); + +insert into src values (0, 'color is red', 't1'), (1, 'car is yellow', 'crazy car'), (2, 'sky is blue', 'no limit'), (3, 'blue is not red', 'colorful'), +(4, '遠東兒童中文是針對6到9歲的小朋友精心設計的中文學習教材,共三冊,目前已出版一、二冊。', '遠東兒童中文'), +(5, '每冊均採用近百張全幅彩圖及照片,生動活潑、自然真實,加深兒童學習印象,洋溢學習樂趣。', '遠東兒童中文'), +(6, '各個單元主題內容涵蓋中華文化及生活應用的介紹。本套教材含課本、教學指引、生字卡、學生作業本與CD,中英對照,精美大字版。本系列有繁體字及簡體字兩種版本印行。', '中文短篇小說'), +(7, '59個簡單的英文和中文短篇小說', '適合初學者'), +(8, NULL, 'NOT INCLUDED'), +(9, 'NOT INCLUDED BODY', NULL), +(10, NULL, NULL); + +select sleep(30); + +select * from src where match(body, title) against('red'); + +drop table src; diff --git a/test/distributed/cases/vector/vector_ivf_async.result b/test/distributed/cases/vector/vector_ivf_async.result new file mode 100644 index 0000000000000..42ec1b3ddfac0 --- /dev/null +++ b/test/distributed/cases/vector/vector_ivf_async.result @@ -0,0 +1,58 @@ +SET experimental_ivf_index = 0; +create table vector_index_00(a int primary key, b vecf32(128),c int,key c_k(c), KEY idx using ivfflat(b) lists = 256 op_type 'vector_l2_ops'); +internal error: experimental_ivf_index is not enabled +SET experimental_ivf_index = 1; +SET probe_limit=1; +create table vector_index_01(a int primary key, b vecf32(128),c int,key c_k(c)); +insert into vector_index_01 values(9774 ,"[1, 0, 1, 6, 6, 17, 47, 39, 2, 0, 1, 25, 27, 10, 56, 130, 18, 5, 2, 6, 15, 2, 19, 130, 42, 28, 1, 1, 2, 1, 0, 5, 0, 2, 4, 4, 31, 34, 44, 35, 9, 3, 8, 11, 33, 12, 61, 130, 130, 17, 0, 1, 6, 2, 9, 130, 111, 36, 0, 0, 11, 9, 1, 12, 2, 100, 130, 28, 7, 2, 6, 7, 9, 27, 130, 83, 5, 0, 1, 18, 130, 130, 84, 9, 0, 0, 2, 24, 111, 24, 0, 1, 37, 24, 2, 10, 12, 62, 33, 3, 0, 0, 0, 1, 3, 16, 106, 28, 0, 0, 0, 0, 17, 46, 85, 10, 0, 0, 1, 4, 11, 4, 2, 2, 9, 14, 8, 8]",3),(9775,"[0, 1, 1, 3, 0, 3, 46, 20, 1, 4, 17, 9, 1, 17, 108, 15, 0, 3, 37, 17, 6, 15, 116, 16, 6, 1, 4, 7, 7, 7, 9, 6, 0, 8, 10, 4, 26, 129, 27, 9, 0, 0, 5, 2, 11, 129, 129, 12, 103, 4, 0, 0, 2, 31, 129, 129, 94, 4, 0, 0, 0, 3, 13, 42, 0, 15, 38, 2, 70, 129, 1, 0, 5, 10, 40, 12, 74, 129, 6, 1, 129, 39, 6, 1, 2, 22, 9, 33, 122, 13, 0, 0, 0, 0, 5, 23, 4, 11, 9, 12, 45, 38, 1, 0, 0, 4, 36, 38, 57, 32, 0, 0, 82, 22, 9, 5, 13, 11, 3, 94, 35, 3, 0, 0, 0, 1, 16, 97]",5),(9776,"[10, 3, 8, 5, 48, 26, 5, 16, 17, 0, 0, 2, 132, 53, 1, 16, 112, 6, 0, 0, 7, 2, 1, 48, 48, 15, 18, 31, 3, 0, 0, 9, 6, 10, 19, 27, 50, 46, 17, 9, 18, 1, 4, 48, 132, 23, 3, 5, 132, 9, 4, 3, 11, 0, 2, 46, 84, 12, 10, 10, 1, 0, 12, 76, 26, 22, 16, 26, 35, 15, 3, 16, 15, 1, 51, 132, 125, 8, 1, 2, 132, 51, 67, 91, 8, 0, 0, 30, 126, 39, 32, 38, 4, 0, 1, 12, 24, 2, 2, 2, 4, 7, 2, 19, 93, 19, 70, 92, 2, 3, 1, 21, 36, 58, 132, 94, 0, 0, 0, 0, 21, 25, 57, 48, 1, 0, 0, 1]",3); +insert into vector_index_01 values(9777, " [16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]",4),(9778,"[41, 0, 0, 7, 1, 1, 20, 67, 9, 0, 0, 0, 0, 31, 120, 61, 25, 0, 0, 0, 0, 10, 120, 90, 32, 0, 0, 1, 13, 11, 22, 50, 4, 0, 2, 93, 40, 15, 37, 18, 12, 2, 2, 19, 8, 44, 120, 25, 120, 5, 0, 0, 0, 2, 48, 97, 102, 14, 3, 3, 11, 9, 34, 41, 0, 0, 4, 120, 56, 3, 4, 5, 6, 15, 37, 116, 28, 0, 0, 3, 120, 120, 24, 6, 2, 0, 1, 28, 53, 90, 51, 11, 11, 2, 12, 14, 8, 6, 4, 30, 9, 1, 4, 22, 25, 79, 120, 66, 5, 0, 0, 6, 42, 120, 91, 43, 15, 2, 4, 39, 12, 9, 9, 12, 15, 5, 24, 36]",4); +create index idx01 using ivfflat on vector_index_01(b) lists=5 op_type "vector_l2_ops" ASYNC; +show create table vector_index_01; +Table Create Table +vector_index_01 CREATE TABLE `vector_index_01` (\n `a` int NOT NULL,\n `b` vecf32(128) DEFAULT NULL,\n `c` int DEFAULT NULL,\n PRIMARY KEY (`a`),\n KEY `c_k` (`c`),\n KEY `idx01` USING ivfflat (`b`) lists = 5 op_type 'vector_l2_ops' async \n) +desc vector_index_01; +Field Type Null Key Default Extra Comment +a INT(32) NO PRI null +b VECF32(128) YES MUL null +c INT(32) YES MUL null +select * from vector_index_01 order by L2_DISTANCE(b, "[16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]") ASC LIMIT 2; +a b c +9777 [16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13] 4 +select * from vector_index_01 where a>9774 order by L2_DISTANCE(b, "[4, 6, 1, 42, 119, 4, 1, 0, 9, 96, 58, 2, 14, 0, 0, 0, 0, 57, 119, 24, 15, 2, 0, 0, 0, 0, 48, 26, 26, 7, 0, 0, 66, 21, 0, 4, 107, 92, 42, 7, 119, 119, 45, 2, 21, 18, 0, 9, 0, 39, 67, 43, 101, 66, 0, 0, 0, 3, 38, 75, 76, 17, 0, 0, 89, 0, 0, 0, 6, 26, 21, 20, 119, 1, 0, 0, 10, 43, 72, 92, 2, 8, 22, 25, 22, 46, 119, 60, 1, 13, 45, 48, 75, 69, 45, 15, 13, 0, 0, 2, 6, 0, 1, 11, 24, 0, 0, 0, 0, 24, 92, 49, 0, 0, 0, 0, 0, 18, 119, 40, 0, 0, 0, 0, 4, 47, 81, 10]") desc limit 2; +a b c +9775 [0, 1, 1, 3, 0, 3, 46, 20, 1, 4, 17, 9, 1, 17, 108, 15, 0, 3, 37, 17, 6, 15, 116, 16, 6, 1, 4, 7, 7, 7, 9, 6, 0, 8, 10, 4, 26, 129, 27, 9, 0, 0, 5, 2, 11, 129, 129, 12, 103, 4, 0, 0, 2, 31, 129, 129, 94, 4, 0, 0, 0, 3, 13, 42, 0, 15, 38, 2, 70, 129, 1, 0, 5, 10, 40, 12, 74, 129, 6, 1, 129, 39, 6, 1, 2, 22, 9, 33, 122, 13, 0, 0, 0, 0, 5, 23, 4, 11, 9, 12, 45, 38, 1, 0, 0, 4, 36, 38, 57, 32, 0, 0, 82, 22, 9, 5, 13, 11, 3, 94, 35, 3, 0, 0, 0, 1, 16, 97] 5 +insert into vector_index_01 values(9779, " [10, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]",4); +select sleep(30); +sleep(30) +0 +select * from vector_index_01 order by L2_DISTANCE(b, "[10, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]") ASC LIMIT 2; +a b c +9779 [10, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13] 4 +9777 [16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13] 4 +drop table vector_index_01; +create table ivf3(a bigint primary key, b vecf32(128)); +load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table ivf3 fields terminated by ':' parallel 'true'; +select count(*) from ivf3; +count(*) +10000 +create index idx3 using ivfflat on ivf3(b) op_type "vector_l2_ops" LISTS=100 ASYNC; +load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table ivf3 fields terminated by ':' parallel 'true'; +select count(*) from ivf3; +count(*) +20000 +select sleep(45); +sleep(45) +0 +select * from ivf3 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; +a b +9999 [14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7] +select * from ivf3 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1]") ASC LIMIT 1; +a b +0 [0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1] +select * from ivf3 order by L2_DISTANCE(b, "[59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, 4, 57, 34, 31, 115, 4, 0, 0, 12, 30, 33, 43, 85, 21, 0, 0, 14, 25, 9, 10, 60, 99, 11, 0, 0, 0, 0, 10, 55, 68, 1, 0, 3, 115, 65, 42, 115, 32, 3, 0, 4, 13, 21, 104, 115, 81, 15, 15, 23, 9, 2, 21, 75, 43, 20, 1, 0, 10, 2, 2, 20, 52, 35, 32, 61, 79, 8, 7, 41, 50, 106, 96, 20, 8, 2, 11, 39, 115, 48, 53, 11, 3, 0, 2, 43, 35, 11, 0, 1, 13, 7, 0, 1, 115, 58, 54, 29, 1, 2, 0, 3, 32, 115, 99, 34, 1, 0, 0, 0, 35, 15, 52, 44, 9, 0, 0, 18]") ASC LIMIT 1; +a b +10000 [59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, 4, 57, 34, 31, 115, 4, 0, 0, 12, 30, 33, 43, 85, 21, 0, 0, 14, 25, 9, 10, 60, 99, 11, 0, 0, 0, 0, 10, 55, 68, 1, 0, 3, 115, 65, 42, 115, 32, 3, 0, 4, 13, 21, 104, 115, 81, 15, 15, 23, 9, 2, 21, 75, 43, 20, 1, 0, 10, 2, 2, 20, 52, 35, 32, 61, 79, 8, 7, 41, 50, 106, 96, 20, 8, 2, 11, 39, 115, 48, 53, 11, 3, 0, 2, 43, 35, 11, 0, 1, 13, 7, 0, 1, 115, 58, 54, 29, 1, 2, 0, 3, 32, 115, 99, 34, 1, 0, 0, 0, 35, 15, 52, 44, 9, 0, 0, 18] +select * from ivf3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25]") ASC LIMIT 1; +a b +19999 [0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25] +drop table ivf3; diff --git a/test/distributed/cases/vector/vector_ivf_async.sql b/test/distributed/cases/vector/vector_ivf_async.sql new file mode 100644 index 0000000000000..cba0551640bff --- /dev/null +++ b/test/distributed/cases/vector/vector_ivf_async.sql @@ -0,0 +1,59 @@ +-- create table error +SET experimental_ivf_index = 0; +create table vector_index_00(a int primary key, b vecf32(128),c int,key c_k(c), KEY idx using ivfflat(b) lists = 256 op_type 'vector_l2_ops'); + + +SET experimental_ivf_index = 1; +SET probe_limit=1; + +-- create vector index: create->create index->insert +create table vector_index_01(a int primary key, b vecf32(128),c int,key c_k(c)); +insert into vector_index_01 values(9774 ,"[1, 0, 1, 6, 6, 17, 47, 39, 2, 0, 1, 25, 27, 10, 56, 130, 18, 5, 2, 6, 15, 2, 19, 130, 42, 28, 1, 1, 2, 1, 0, 5, 0, 2, 4, 4, 31, 34, 44, 35, 9, 3, 8, 11, 33, 12, 61, 130, 130, 17, 0, 1, 6, 2, 9, 130, 111, 36, 0, 0, 11, 9, 1, 12, 2, 100, 130, 28, 7, 2, 6, 7, 9, 27, 130, 83, 5, 0, 1, 18, 130, 130, 84, 9, 0, 0, 2, 24, 111, 24, 0, 1, 37, 24, 2, 10, 12, 62, 33, 3, 0, 0, 0, 1, 3, 16, 106, 28, 0, 0, 0, 0, 17, 46, 85, 10, 0, 0, 1, 4, 11, 4, 2, 2, 9, 14, 8, 8]",3),(9775,"[0, 1, 1, 3, 0, 3, 46, 20, 1, 4, 17, 9, 1, 17, 108, 15, 0, 3, 37, 17, 6, 15, 116, 16, 6, 1, 4, 7, 7, 7, 9, 6, 0, 8, 10, 4, 26, 129, 27, 9, 0, 0, 5, 2, 11, 129, 129, 12, 103, 4, 0, 0, 2, 31, 129, 129, 94, 4, 0, 0, 0, 3, 13, 42, 0, 15, 38, 2, 70, 129, 1, 0, 5, 10, 40, 12, 74, 129, 6, 1, 129, 39, 6, 1, 2, 22, 9, 33, 122, 13, 0, 0, 0, 0, 5, 23, 4, 11, 9, 12, 45, 38, 1, 0, 0, 4, 36, 38, 57, 32, 0, 0, 82, 22, 9, 5, 13, 11, 3, 94, 35, 3, 0, 0, 0, 1, 16, 97]",5),(9776,"[10, 3, 8, 5, 48, 26, 5, 16, 17, 0, 0, 2, 132, 53, 1, 16, 112, 6, 0, 0, 7, 2, 1, 48, 48, 15, 18, 31, 3, 0, 0, 9, 6, 10, 19, 27, 50, 46, 17, 9, 18, 1, 4, 48, 132, 23, 3, 5, 132, 9, 4, 3, 11, 0, 2, 46, 84, 12, 10, 10, 1, 0, 12, 76, 26, 22, 16, 26, 35, 15, 3, 16, 15, 1, 51, 132, 125, 8, 1, 2, 132, 51, 67, 91, 8, 0, 0, 30, 126, 39, 32, 38, 4, 0, 1, 12, 24, 2, 2, 2, 4, 7, 2, 19, 93, 19, 70, 92, 2, 3, 1, 21, 36, 58, 132, 94, 0, 0, 0, 0, 21, 25, 57, 48, 1, 0, 0, 1]",3); +insert into vector_index_01 values(9777, " [16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]",4),(9778,"[41, 0, 0, 7, 1, 1, 20, 67, 9, 0, 0, 0, 0, 31, 120, 61, 25, 0, 0, 0, 0, 10, 120, 90, 32, 0, 0, 1, 13, 11, 22, 50, 4, 0, 2, 93, 40, 15, 37, 18, 12, 2, 2, 19, 8, 44, 120, 25, 120, 5, 0, 0, 0, 2, 48, 97, 102, 14, 3, 3, 11, 9, 34, 41, 0, 0, 4, 120, 56, 3, 4, 5, 6, 15, 37, 116, 28, 0, 0, 3, 120, 120, 24, 6, 2, 0, 1, 28, 53, 90, 51, 11, 11, 2, 12, 14, 8, 6, 4, 30, 9, 1, 4, 22, 25, 79, 120, 66, 5, 0, 0, 6, 42, 120, 91, 43, 15, 2, 4, 39, 12, 9, 9, 12, 15, 5, 24, 36]",4); +create index idx01 using ivfflat on vector_index_01(b) lists=5 op_type "vector_l2_ops" ASYNC; +show create table vector_index_01; +desc vector_index_01; +select * from vector_index_01 order by L2_DISTANCE(b, "[16, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]") ASC LIMIT 2; +select * from vector_index_01 where a>9774 order by L2_DISTANCE(b, "[4, 6, 1, 42, 119, 4, 1, 0, 9, 96, 58, 2, 14, 0, 0, 0, 0, 57, 119, 24, 15, 2, 0, 0, 0, 0, 48, 26, 26, 7, 0, 0, 66, 21, 0, 4, 107, 92, 42, 7, 119, 119, 45, 2, 21, 18, 0, 9, 0, 39, 67, 43, 101, 66, 0, 0, 0, 3, 38, 75, 76, 17, 0, 0, 89, 0, 0, 0, 6, 26, 21, 20, 119, 1, 0, 0, 10, 43, 72, 92, 2, 8, 22, 25, 22, 46, 119, 60, 1, 13, 45, 48, 75, 69, 45, 15, 13, 0, 0, 2, 6, 0, 1, 11, 24, 0, 0, 0, 0, 24, 92, 49, 0, 0, 0, 0, 0, 18, 119, 40, 0, 0, 0, 0, 4, 47, 81, 10]") desc limit 2; + + +insert into vector_index_01 values(9779, " [10, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]",4); + +select sleep(30); + +-- 9779 +select * from vector_index_01 order by L2_DISTANCE(b, "[10, 15, 0, 0, 5, 46, 5, 5, 4, 0, 0, 0, 28, 118, 12, 5, 75, 44, 5, 0, 6, 32, 6, 49, 41, 74, 9, 1, 0, 0, 0, 9, 1, 9, 16, 41, 71, 80, 3, 0, 0, 4, 3, 5, 51, 106, 11, 3, 112, 28, 13, 1, 4, 8, 3, 104, 118, 14, 1, 1, 0, 0, 0, 88, 3, 27, 46, 118, 108, 49, 2, 0, 1, 46, 118, 118, 27, 12, 0, 0, 33, 118, 118, 8, 0, 0, 0, 4, 118, 95, 40, 0, 0, 0, 1, 11, 27, 38, 12, 12, 18, 29, 3, 2, 13, 30, 94, 78, 30, 19, 9, 3, 31, 45, 70, 42, 15, 1, 3, 12, 14, 22, 16, 2, 3, 17, 24, 13]") ASC LIMIT 2; + +drop table vector_index_01; + + +-- ivf3 + +create table ivf3(a bigint primary key, b vecf32(128)); + +load data infile {'filepath'='$resources/vector/sift128_base_10k.csv.gz', 'compression'='gzip'} into table ivf3 fields terminated by ':' parallel 'true'; + +select count(*) from ivf3; + +create index idx3 using ivfflat on ivf3(b) op_type "vector_l2_ops" LISTS=100 ASYNC; + +-- select sleep(30); + +load data infile {'filepath'='$resources/vector/sift128_base_10k_2.csv.gz', 'compression'='gzip'} into table ivf3 fields terminated by ':' parallel 'true'; + +select count(*) from ivf3; + +select sleep(45); + +select * from ivf3 order by L2_DISTANCE(b, "[14, 2, 0, 0, 0, 2, 42, 55, 9, 1, 0, 0, 18, 100, 77, 32, 89, 1, 0, 0, 19, 85, 15, 68, 52, 4, 0, 0, 0, 0, 2, 28, 34, 13, 5, 12, 49, 40, 39, 37, 24, 2, 0, 0, 34, 83, 88, 28, 119, 20, 0, 0, 41, 39, 13, 62, 119, 16, 2, 0, 0, 0, 10, 42, 9, 46, 82, 79, 64, 19, 2, 5, 10, 35, 26, 53, 84, 32, 34, 9, 119, 119, 21, 3, 3, 11, 17, 14, 119, 25, 8, 5, 0, 0, 11, 22, 23, 17, 42, 49, 17, 12, 5, 5, 12, 78, 119, 90, 27, 0, 4, 2, 48, 92, 112, 85, 15, 0, 2, 7, 50, 36, 15, 11, 1, 0, 0, 7]") ASC LIMIT 1; + +select * from ivf3 order by L2_DISTANCE(b, "[0, 16, 35, 5, 32, 31, 14, 10, 11, 78, 55, 10, 45, 83, 11, 6, 14, 57, 102, 75, 20, 8, 3, 5, 67, 17, 19, 26, 5, 0, 1, 22, 60, 26, 7, 1, 18, 22, 84, 53, 85, 119, 119, 4, 24, 18, 7, 7, 1, 81, 106, 102, 72, 30, 6, 0, 9, 1, 9, 119, 72, 1, 4, 33, 119, 29, 6, 1, 0, 1, 14, 52, 119, 30, 3, 0, 0, 55, 92, 111, 2, 5, 4, 9, 22, 89, 96, 14, 1, 0, 1, 82, 59, 16, 20, 5, 25, 14, 11, 4, 0, 0, 1, 26, 47, 23, 4, 0, 0, 4, 38, 83, 30, 14, 9, 4, 9, 17, 23, 41, 0, 0, 2, 8, 19, 25, 23, 1]") ASC LIMIT 1; + + +select * from ivf3 order by L2_DISTANCE(b, "[59, 0, 0, 1, 1, 1, 5, 100, 41, 0, 0, 4, 57, 34, 31, 115, 4, 0, 0, 12, 30, 33, 43, 85, 21, 0, 0, 14, 25, 9, 10, 60, 99, 11, 0, 0, 0, 0, 10, 55, 68, 1, 0, 3, 115, 65, 42, 115, 32, 3, 0, 4, 13, 21, 104, 115, 81, 15, 15, 23, 9, 2, 21, 75, 43, 20, 1, 0, 10, 2, 2, 20, 52, 35, 32, 61, 79, 8, 7, 41, 50, 106, 96, 20, 8, 2, 11, 39, 115, 48, 53, 11, 3, 0, 2, 43, 35, 11, 0, 1, 13, 7, 0, 1, 115, 58, 54, 29, 1, 2, 0, 3, 32, 115, 99, 34, 1, 0, 0, 0, 35, 15, 52, 44, 9, 0, 0, 18]") ASC LIMIT 1; + +select * from ivf3 order by L2_DISTANCE(b, "[0, 0, 0, 0, 0, 101, 82, 4, 2, 0, 0, 0, 3, 133, 133, 8, 46, 1, 2, 13, 15, 29, 87, 50, 22, 1, 0, 16, 25, 6, 18, 49, 5, 2, 0, 2, 3, 59, 70, 19, 18, 2, 0, 11, 42, 37, 30, 13, 133, 13, 4, 53, 28, 3, 8, 42, 77, 6, 11, 103, 36, 0, 0, 32, 7, 15, 59, 27, 2, 0, 2, 5, 14, 5, 55, 52, 51, 3, 2, 5, 133, 21, 10, 38, 26, 1, 0, 64, 71, 3, 10, 118, 53, 5, 6, 28, 33, 26, 73, 15, 0, 0, 0, 22, 13, 15, 133, 133, 4, 0, 0, 15, 107, 62, 46, 91, 9, 1, 7, 16, 28, 4, 0, 27, 33, 4, 15, 25]") ASC LIMIT 1; + +drop table ivf3; + + From 48acc188002d311b111cbc5efe88c74c8d3cff1a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 5 Sep 2025 12:10:51 +0100 Subject: [PATCH 251/335] fix alter table add column and fulltext --- pkg/sql/compile/alter.go | 43 +++++++++++++++++++++++-------- pkg/sql/compile/ddl_index_algo.go | 18 ++++++++----- 2 files changed, 43 insertions(+), 18 deletions(-) diff --git a/pkg/sql/compile/alter.go b/pkg/sql/compile/alter.go index 670c0791304a9..eb867281e83ef 100644 --- a/pkg/sql/compile/alter.go +++ b/pkg/sql/compile/alter.go @@ -17,9 +17,10 @@ package compile import ( "context" "fmt" + "slices" + "github.com/matrixorigin/matrixone/pkg/common/reuse" "github.com/matrixorigin/matrixone/pkg/sql/colexec/table_clone" - "slices" "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" @@ -47,6 +48,7 @@ func convertDBEOB(ctx context.Context, e error, name string) error { func (s *Scope) AlterTableCopy(c *Compile) error { qry := s.Plan.GetDdl().GetAlterTable() dbName := qry.Database + if dbName == "" { dbName = c.db } @@ -147,25 +149,31 @@ func (s *Scope) AlterTableCopy(c *Compile) error { if qry.Options.SkipPkDedup || len(qry.Options.SkipUniqueIdxDedup) > 0 { opt = opt.WithAlterCopyOpt(qry.Options) } - // 4. copy the original table data to the temporary replica table - err = c.runSqlWithOptions(qry.InsertTmpDataSql, opt) + + //4. obtain relation for new tables + newRel, err := dbSource.Relation(c.proc.Ctx, qry.CopyTableDef.Name, nil) if err != nil { - c.proc.Error(c.proc.Ctx, "insert data to copy table for alter table", + c.proc.Error(c.proc.Ctx, "obtain new relation for copy table for alter table", zap.String("databaseName", dbName), zap.String("origin tableName", qry.GetTableDef().Name), - zap.String("copy tableName", qry.CopyTableDef.Name), - zap.String("InsertTmpDataSql", qry.InsertTmpDataSql), + zap.String("copy table name", qry.CopyTableDef.Name), zap.Error(err)) return err } - //5. obtain relation for new tables - newRel, err := dbSource.Relation(c.proc.Ctx, qry.CopyTableDef.Name, nil) + //5. ISCP: temp table already created pitr and iscp job with temp table name + // and we don't want iscp to run with temp table so drop pitr and iscp job with the temp table here + newTmpTableDef := newRel.CopyTableDef(c.proc.Ctx) + DropAllIndexCdcTasks(c, newTmpTableDef, dbName, qry.CopyTableDef.Name) + + // 6. copy the original table data to the temporary replica table + err = c.runSqlWithOptions(qry.InsertTmpDataSql, opt) if err != nil { - c.proc.Error(c.proc.Ctx, "obtain new relation for copy table for alter table", + c.proc.Error(c.proc.Ctx, "insert data to copy table for alter table", zap.String("databaseName", dbName), zap.String("origin tableName", qry.GetTableDef().Name), - zap.String("copy table name", qry.CopyTableDef.Name), + zap.String("copy tableName", qry.CopyTableDef.Name), + zap.String("InsertTmpDataSql", qry.InsertTmpDataSql), zap.Error(err)) return err } @@ -177,7 +185,8 @@ func (s *Scope) AlterTableCopy(c *Compile) error { return err } - // 7. drop original table + // 7. drop original table. + // ISCP: That will also drop ISCP related jobs and pitr of the original table. dropSql := fmt.Sprintf("drop table `%s`.`%s`", dbName, tblName) if err := c.runSqlWithOptions( dropSql, @@ -234,6 +243,7 @@ func (s *Scope) AlterTableCopy(c *Compile) error { zap.Error(err)) return err } + //-------------------------------------------------------------------------------------------------------------- { // 9. invoke reindex for the new table, if it contains ivf index. @@ -254,6 +264,17 @@ func (s *Scope) AlterTableCopy(c *Compile) error { ty := catalog.ToLower(indexDef.IndexAlgoTableType) multiTableIndexes[indexDef.IndexName].IndexDefs[ty] = indexDef } + if catalog.IsFullTextIndexAlgo(indexDef.IndexAlgo) { + err = s.handleFullTextIndexTable(c, id, extra, dbSource, indexDef, qry.Database, newTableDef, nil) + if err != nil { + c.proc.Error(c.proc.Ctx, "invoke reindex for the new table for alter table", + zap.String("origin tableName", qry.GetTableDef().Name), + zap.String("copy table name", qry.CopyTableDef.Name), + zap.String("indexAlgo", indexDef.IndexAlgo), + zap.Error(err)) + return err + } + } } for _, multiTableIndex := range multiTableIndexes { switch multiTableIndex.IndexAlgo { diff --git a/pkg/sql/compile/ddl_index_algo.go b/pkg/sql/compile/ddl_index_algo.go index 8b7896811af37..3fc1a9be1d6fe 100644 --- a/pkg/sql/compile/ddl_index_algo.go +++ b/pkg/sql/compile/ddl_index_algo.go @@ -139,14 +139,18 @@ func (s *Scope) handleFullTextIndexTable( } else if !ok { return moerr.NewInternalErrorNoCtx("FullText index is not enabled") } - if len(indexInfo.GetIndexTables()) != 1 { - return moerr.NewInternalErrorNoCtx("index table count not equal to 1") - } - def := indexInfo.GetIndexTables()[0] - err := indexTableBuild(c, mainTableID, mainExtra, def, dbSource) - if err != nil { - return err + // create hidden tables + if indexInfo != nil { + if len(indexInfo.GetIndexTables()) != 1 { + return moerr.NewInternalErrorNoCtx("index table count not equal to 1") + } + + def := indexInfo.GetIndexTables()[0] + err := indexTableBuild(c, mainTableID, mainExtra, def, dbSource) + if err != nil { + return err + } } insertSQLs, err := genInsertIndexTableSqlForFullTextIndex(originalTableDef, indexDef, qryDatabase) From 1f58a3d762f6bd04fbb1b7a18df611ed1ed89c36 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 5 Sep 2025 12:54:47 +0100 Subject: [PATCH 252/335] bug fix check dropped --- pkg/iscp/watermark_updater.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/iscp/watermark_updater.go b/pkg/iscp/watermark_updater.go index e38125b4d7c24..a0da5d8d0a726 100644 --- a/pkg/iscp/watermark_updater.go +++ b/pkg/iscp/watermark_updater.go @@ -535,7 +535,7 @@ func queryIndexLog( dropped = true ids := vector.MustFixedColWithTypeCheck[uint64](cols[1]) for i := 0; i < rows; i++ { - if cols[0].IsNull(0) { + if cols[0].IsNull(uint64(i)) { dropped = false prevID = ids[i] return false From 3d6874bf0a7bcad2c71ad3654ac20fbd90ea3af3 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 12 Sep 2025 14:13:24 +0100 Subject: [PATCH 253/335] bug fix async option --- pkg/sql/plan/build_show_util.go | 48 +++++++++++++++------------------ 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/pkg/sql/plan/build_show_util.go b/pkg/sql/plan/build_show_util.go index c2b30755e26c4..7e765271d15f3 100644 --- a/pkg/sql/plan/build_show_util.go +++ b/pkg/sql/plan/build_show_util.go @@ -206,35 +206,31 @@ func ConstructCreateTableSQL( if indexdef.IndexAlgoParams != "" { val, err := sonic.Get([]byte(indexdef.IndexAlgoParams), "parser") - if err != nil { - // value not exists - continue - } - - parser, err := val.StrictString() - if err != nil { - // value exists but not string type - return "", nil, err - } - - if len(parser) > 0 { - indexStr += " WITH PARSER " + parser + // ignore err != nil --> value not found + if err == nil { + parser, err := val.StrictString() + if err != nil { + // value exists but not string type + return "", nil, err + } + + if len(parser) > 0 { + indexStr += " WITH PARSER " + parser + } } val, err = sonic.Get([]byte(indexdef.IndexAlgoParams), catalog.Async) - if err != nil { - // value not exists - continue - } - - async, err := val.StrictString() - if err != nil { - // value exists but not string type - return "", nil, err - } - - if async == "true" { - indexStr += " ASYNC" + // ignore err != nil --> value not found + if err == nil { + async, err := val.StrictString() + if err != nil { + // value exists but not string type + return "", nil, err + } + + if async == "true" { + indexStr += " ASYNC" + } } } From 1bed417b246032e320b95acd08fb690614215c72 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 12 Sep 2025 16:47:43 +0100 Subject: [PATCH 254/335] check error --- pkg/iscp/index_consumer.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/iscp/index_consumer.go b/pkg/iscp/index_consumer.go index b2a7e9dcadae3..ecdbead009f69 100644 --- a/pkg/iscp/index_consumer.go +++ b/pkg/iscp/index_consumer.go @@ -366,7 +366,10 @@ func (c *IndexConsumer) sinkInsert(ctx context.Context, upsertIter *atomicBatchR } - c.sqlWriter.Insert(ctx, c.rowdata) + err = c.sqlWriter.Insert(ctx, c.rowdata) + if err != nil { + return err + } if c.sqlWriter.Full() { // send SQL @@ -396,7 +399,10 @@ func (c *IndexConsumer) sinkDelete(ctx context.Context, deleteIter *atomicBatchR } - c.sqlWriter.Delete(ctx, c.rowdelete) + err = c.sqlWriter.Delete(ctx, c.rowdelete) + if err != nil { + return err + } if c.sqlWriter.Full() { // send SQL @@ -421,8 +427,8 @@ func (c *IndexConsumer) sendSql(writer IndexSqlWriter) error { } c.sqlBufSendCh <- sql - os.Stderr.WriteString(string(sql)) - os.Stderr.WriteString("\n") + //os.Stderr.WriteString(string(sql)) + //os.Stderr.WriteString("\n") // reset writer.Reset() From e8ad5e11f6dc788e2a1f7f21c265b854b4a9520b Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 12 Sep 2025 16:53:59 +0100 Subject: [PATCH 255/335] add type to error message --- pkg/iscp/index_sqlwriter.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/iscp/index_sqlwriter.go b/pkg/iscp/index_sqlwriter.go index e1c8d2e9573fe..05aaef240e3d8 100644 --- a/pkg/iscp/index_sqlwriter.go +++ b/pkg/iscp/index_sqlwriter.go @@ -443,7 +443,7 @@ func (w *HnswSqlWriter[T]) Insert(ctx context.Context, row []any) error { } v, ok := row[w.partsPos[0]].([]T) if !ok { - return moerr.NewInternalError(ctx, "invalid vector type. not []float32") + return moerr.NewInternalError(ctx, fmt.Sprintf("invalid vector type. not []float32. %T", row[w.partsPos[0]])) } if v == nil { @@ -463,7 +463,7 @@ func (w *HnswSqlWriter[T]) Upsert(ctx context.Context, row []any) error { } v, ok := row[w.partsPos[0]].([]T) if !ok { - return moerr.NewInternalError(ctx, "invalid vector type. not []float32") + return moerr.NewInternalError(ctx, fmt.Sprintf("invalid vector type. not []float32. %T", row[w.partsPos[0]])) } if v == nil { From 946c284f4d8cf68ba01bd5a72d700b53f9bda4cf Mon Sep 17 00:00:00 2001 From: cpegeric Date: Fri, 12 Sep 2025 17:16:06 +0100 Subject: [PATCH 256/335] print value --- pkg/iscp/index_sqlwriter.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/iscp/index_sqlwriter.go b/pkg/iscp/index_sqlwriter.go index 05aaef240e3d8..160fdece6b32c 100644 --- a/pkg/iscp/index_sqlwriter.go +++ b/pkg/iscp/index_sqlwriter.go @@ -443,7 +443,7 @@ func (w *HnswSqlWriter[T]) Insert(ctx context.Context, row []any) error { } v, ok := row[w.partsPos[0]].([]T) if !ok { - return moerr.NewInternalError(ctx, fmt.Sprintf("invalid vector type. not []float32. %T", row[w.partsPos[0]])) + return moerr.NewInternalError(ctx, fmt.Sprintf("invalid vector type. not []float32. %v", row[w.partsPos[0]])) } if v == nil { @@ -463,7 +463,7 @@ func (w *HnswSqlWriter[T]) Upsert(ctx context.Context, row []any) error { } v, ok := row[w.partsPos[0]].([]T) if !ok { - return moerr.NewInternalError(ctx, fmt.Sprintf("invalid vector type. not []float32. %T", row[w.partsPos[0]])) + return moerr.NewInternalError(ctx, fmt.Sprintf("invalid vector type. not []float32. %v", row[w.partsPos[0]])) } if v == nil { From adae0b2c0515a9c496707f760d64aa72b37ddc6d Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 15 Sep 2025 11:25:57 +0100 Subject: [PATCH 257/335] add ut tests --- pkg/iscp/util_test.go | 175 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 pkg/iscp/util_test.go diff --git a/pkg/iscp/util_test.go b/pkg/iscp/util_test.go new file mode 100644 index 0000000000000..0058d42feb5d5 --- /dev/null +++ b/pkg/iscp/util_test.go @@ -0,0 +1,175 @@ +package iscp + +import ( + "context" + "testing" + + "github.com/matrixorigin/matrixone/pkg/common/mpool" + "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/container/bytejson" + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/matrixorigin/matrixone/pkg/container/vector" + "github.com/matrixorigin/matrixone/pkg/testutil" + "github.com/matrixorigin/matrixone/pkg/vm/process" + "github.com/stretchr/testify/require" +) + +/* +func extractRowFromVector(ctx context.Context, vec *vector.Vector, i int, row []any, rowIndex int) error { + +} + +func convertColIntoSql( + ctx context.Context, + data any, + typ *types.Type, + sqlBuff []byte) ([]byte, error) { + +} +*/ + +func mockUtilVector(t *testing.T, proc *process.Process) (*batch.Batch, []string) { + + i := 0 + nvec := 12 + + bat := batch.NewWithSize(nvec) + res := make([]string, nvec) + + { + // json + bat.Vecs[i] = vector.NewVec(types.New(types.T_json, 65536, 0)) + bj, err := bytejson.ParseFromString("[1,2,3]") + require.Nil(t, err) + bytes, err := bj.Marshal() + require.Nil(t, err) + + vector.AppendBytes(bat.Vecs[i], bytes, false, proc.Mp()) + res[i] = "'[1, 2, 3]'" + i += 1 + } + + { + // int64 + bat.Vecs[i] = vector.NewVec(types.New(types.T_int64, 8, 0)) + vector.AppendFixed[int64](bat.Vecs[i], int64(100), false, proc.Mp()) + res[i] = "100" + i += 1 + } + + { + // []float32 + bat.Vecs[i] = vector.NewVec(types.New(types.T_array_float32, 3, 0)) // float32 array [3]float32 + v32 := []float32{0, 1, 2} + vector.AppendArray[float32](bat.Vecs[i], v32, false, proc.Mp()) + res[i] = "'[0, 1, 2]'" + i += 1 + } + + { + // []float64 + bat.Vecs[i] = vector.NewVec(types.New(types.T_array_float64, 3, 0)) // float32 array [3]float64 + v64 := []float64{0, 1, 2} + vector.AppendArray[float64](bat.Vecs[i], v64, false, proc.Mp()) + res[i] = "'[0, 1, 2]'" + i += 1 + } + + { + // date + bat.Vecs[i] = vector.NewVec(types.New(types.T_date, 4, 0)) + v := 0 + vector.AppendFixed[types.Date](bat.Vecs[i], types.Date(v), false, proc.Mp()) + res[i] = "'0001-01-01'" + i += 1 + } + + { + // datetime + bat.Vecs[i] = vector.NewVec(types.New(types.T_datetime, 8, 0)) + v := 0 + vector.AppendFixed[types.Datetime](bat.Vecs[i], types.Datetime(v), false, proc.Mp()) + res[i] = "'0001-01-01 00:00:00'" + i += 1 + } + + { + // time + bat.Vecs[i] = vector.NewVec(types.New(types.T_time, 8, 0)) + v := 0 + vector.AppendFixed[types.Time](bat.Vecs[i], types.Time(v), false, proc.Mp()) + res[i] = "'00:00:00'" + i += 1 + } + + { + // timestamp + bat.Vecs[i] = vector.NewVec(types.New(types.T_timestamp, 8, 0)) + v := 0 + vector.AppendFixed[types.Timestamp](bat.Vecs[i], types.Timestamp(v), false, proc.Mp()) + res[i] = "'0001-01-01 00:00:00'" + i += 1 + } + + { + // decimal64 + bat.Vecs[i] = vector.NewVec(types.New(types.T_decimal64, 8, 0)) + v := 1000 + vector.AppendFixed[types.Decimal64](bat.Vecs[i], types.Decimal64(v), false, proc.Mp()) + res[i] = "'1000'" + i += 1 + } + + { + // decimal128 + bat.Vecs[i] = vector.NewVec(types.New(types.T_decimal128, 16, 0)) + v := types.Decimal128{B0_63: 1000, B64_127: 0} + vector.AppendFixed[types.Decimal128](bat.Vecs[i], v, false, proc.Mp()) + res[i] = "'1000'" + i += 1 + } + + { + // uuid + bat.Vecs[i] = vector.NewVec(types.New(types.T_uuid, 16, 0)) + v := types.Uuid([16]byte{0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8}) + vector.AppendFixed[types.Uuid](bat.Vecs[i], v, false, proc.Mp()) + res[i] = "'00010002-0003-0004-0005-000600070008'" + i += 1 + } + + { + // enum + bat.Vecs[i] = vector.NewVec(types.New(types.T_enum, 2, 0)) + v := types.Enum(uint16(1)) + vector.AppendFixed[types.Enum](bat.Vecs[i], v, false, proc.Mp()) + res[i] = "'1'" + i += 1 + } + + bat.SetRowCount(1) + return bat, res +} + +func TestRowFromVector(t *testing.T) { + m := mpool.MustNewZero() + proc := testutil.NewProcessWithMPool(t, "", m) + ctx := context.Background() + + bat, results := mockUtilVector(t, proc) + + res := make([]any, 1) + sql := make([]byte, 0, 1024) + + for i, vec := range bat.Vecs { + err := extractRowFromVector(ctx, vec, 0, res, 0) + require.Nil(t, err) + + sql, err := convertColIntoSql(ctx, res[0], vec.GetType(), sql) + require.Nil(t, err) + + require.Equal(t, string(sql), results[i]) + sql = sql[:0] + } + +} From 04d1b113a5bb2a6494bb87c6699bdb0f793f76a6 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 15 Sep 2025 11:38:21 +0100 Subject: [PATCH 258/335] license --- pkg/iscp/util_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkg/iscp/util_test.go b/pkg/iscp/util_test.go index 0058d42feb5d5..bad8175442453 100644 --- a/pkg/iscp/util_test.go +++ b/pkg/iscp/util_test.go @@ -1,3 +1,17 @@ +// Copyright 2022 Matrix Origin +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package iscp import ( From e53d604baa2fc6c1c8049a9b57446ba65be7a5ce Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 15 Sep 2025 11:49:10 +0100 Subject: [PATCH 259/335] add more ut --- pkg/iscp/util_test.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/pkg/iscp/util_test.go b/pkg/iscp/util_test.go index bad8175442453..2a4e7bb50cb8f 100644 --- a/pkg/iscp/util_test.go +++ b/pkg/iscp/util_test.go @@ -45,7 +45,7 @@ func convertColIntoSql( func mockUtilVector(t *testing.T, proc *process.Process) (*batch.Batch, []string) { i := 0 - nvec := 12 + nvec := 15 bat := batch.NewWithSize(nvec) res := make([]string, nvec) @@ -161,6 +161,33 @@ func mockUtilVector(t *testing.T, proc *process.Process) (*batch.Batch, []string i += 1 } + { + // rowid + bat.Vecs[i] = vector.NewVec(types.New(types.T_Rowid, types.RowidSize, 0)) + v := types.Rowid([types.RowidSize]byte{}) + vector.AppendFixed[types.Rowid](bat.Vecs[i], v, false, proc.Mp()) + res[i] = "'00000000-0000-0000-0000-000000000000-0-0-0'" + i += 1 + } + + { + // blockid + bat.Vecs[i] = vector.NewVec(types.New(types.T_Blockid, types.BlockidSize, 0)) + v := types.Blockid([types.BlockidSize]byte{}) + vector.AppendFixed[types.Blockid](bat.Vecs[i], v, false, proc.Mp()) + res[i] = "'00000000-0000-0000-0000-000000000000-0-0'" + i += 1 + } + + { + // TS + bat.Vecs[i] = vector.NewVec(types.New(types.T_TS, types.TxnTsSize, 0)) + v := types.TS([types.TxnTsSize]byte{}) + vector.AppendFixed[types.TS](bat.Vecs[i], v, false, proc.Mp()) + res[i] = "'0-0'" + i += 1 + } + bat.SetRowCount(1) return bat, res } From 73a2ec0ac3a990b79134dbb183beeb45f9aa6a1c Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 15 Sep 2025 11:50:16 +0100 Subject: [PATCH 260/335] cleanup --- pkg/iscp/util_test.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/pkg/iscp/util_test.go b/pkg/iscp/util_test.go index 2a4e7bb50cb8f..90ce5fc951649 100644 --- a/pkg/iscp/util_test.go +++ b/pkg/iscp/util_test.go @@ -28,20 +28,6 @@ import ( "github.com/stretchr/testify/require" ) -/* -func extractRowFromVector(ctx context.Context, vec *vector.Vector, i int, row []any, rowIndex int) error { - -} - -func convertColIntoSql( - ctx context.Context, - data any, - typ *types.Type, - sqlBuff []byte) ([]byte, error) { - -} -*/ - func mockUtilVector(t *testing.T, proc *process.Process) (*batch.Batch, []string) { i := 0 From 104d8825f96cf79716fedd5da83e5acc5c07527e Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 15 Sep 2025 12:03:50 +0100 Subject: [PATCH 261/335] fix sca --- pkg/iscp/util_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/iscp/util_test.go b/pkg/iscp/util_test.go index 90ce5fc951649..eabebab37cc52 100644 --- a/pkg/iscp/util_test.go +++ b/pkg/iscp/util_test.go @@ -174,6 +174,8 @@ func mockUtilVector(t *testing.T, proc *process.Process) (*batch.Batch, []string i += 1 } + _ = i + bat.SetRowCount(1) return bat, res } From 0adf3a4e8d037c082de55b6e81b68e6b7f191e57 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 15 Sep 2025 12:04:57 +0100 Subject: [PATCH 262/335] fix sca --- pkg/iscp/util_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/iscp/util_test.go b/pkg/iscp/util_test.go index eabebab37cc52..d3a59c7378eea 100644 --- a/pkg/iscp/util_test.go +++ b/pkg/iscp/util_test.go @@ -174,7 +174,7 @@ func mockUtilVector(t *testing.T, proc *process.Process) (*batch.Batch, []string i += 1 } - _ = i + require.Equal(t, nvec, i) bat.SetRowCount(1) return bat, res From af00c96aab727c0746206f7bcb3a3a64b2194d16 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Mon, 15 Sep 2025 12:22:35 +0100 Subject: [PATCH 263/335] update tests --- pkg/iscp/index_sqlwriter_test.go | 103 ++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 2 deletions(-) diff --git a/pkg/iscp/index_sqlwriter_test.go b/pkg/iscp/index_sqlwriter_test.go index 6b8b00b01ec5d..0e428a6aa1f04 100644 --- a/pkg/iscp/index_sqlwriter_test.go +++ b/pkg/iscp/index_sqlwriter_test.go @@ -141,7 +141,7 @@ func newTestFulltextTableDef2Parts(pkName string, pkType types.T, vecColName str } } -func TestNewFulltextSqlWriter(t *testing.T) { +func TestNewFulltextSqlWriterUpsert(t *testing.T) { var ctx context.Context tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) @@ -163,6 +163,53 @@ func TestNewFulltextSqlWriter(t *testing.T) { require.Nil(t, err) fmt.Println(string(bytes)) +} +func TestNewFulltextSqlWriterInsert(t *testing.T) { + var ctx context.Context + + tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) + consumerInfo := newTestConsumerInfo() + jobID := newTestJobID() + + writer, err := NewIndexSqlWriter("fulltext", jobID, consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + + row := []any{int64(1000), []uint8("hello world"), nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), nil, nil} + err = writer.Insert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) + +} + +func TestNewFulltextSqlWriterDelete(t *testing.T) { + var ctx context.Context + + tabledef := newTestFulltextTableDef("id", types.T_int64, "body", types.T_varchar, 256) + consumerInfo := newTestConsumerInfo() + jobID := newTestJobID() + + writer, err := NewIndexSqlWriter("fulltext", jobID, consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + + row := []any{int64(1000), []uint8("hello world"), nil} + err = writer.Delete(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), nil, nil} + err = writer.Delete(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) + } func TestNewFulltextSqlWriterCPkey(t *testing.T) { @@ -215,7 +262,7 @@ func TestNewHnswSqlWriter(t *testing.T) { fmt.Println(string(bytes)) } -func TestNewIvfflatSqlWriter(t *testing.T) { +func TestNewIvfflatSqlWriterInsert(t *testing.T) { var ctx context.Context tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float64, 3) @@ -240,3 +287,55 @@ func TestNewIvfflatSqlWriter(t *testing.T) { require.Nil(t, err) fmt.Println(string(bytes)) } + +func TestNewIvfflatSqlWriterUpsert(t *testing.T) { + var ctx context.Context + + tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float64, 3) + consumerInfo := newTestConsumerInfo() + jobID := newTestJobID() + + writer, err := NewIvfflatSqlWriter("ivfflat", jobID, consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + row := []any{int64(1000), []float64{1, 2, 3}, nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), []float64{5, 6, 7}, nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + row = []any{int64(3000), []float64{5, 6, 7}, nil} + err = writer.Upsert(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) +} + +func TestNewIvfflatSqlWriterDelete(t *testing.T) { + var ctx context.Context + + tabledef := newTestIvfflatTableDef("pk", types.T_int64, "vec", types.T_array_float64, 3) + consumerInfo := newTestConsumerInfo() + jobID := newTestJobID() + + writer, err := NewIvfflatSqlWriter("ivfflat", jobID, consumerInfo, tabledef, tabledef.Indexes) + require.Nil(t, err) + row := []any{int64(1000), []float64{1, 2, 3}, nil} + err = writer.Delete(ctx, row) + require.Nil(t, err) + + row = []any{int64(2000), []float64{5, 6, 7}, nil} + err = writer.Delete(ctx, row) + require.Nil(t, err) + + row = []any{int64(3000), []float64{5, 6, 7}, nil} + err = writer.Delete(ctx, row) + require.Nil(t, err) + + bytes, err := writer.ToSql() + require.Nil(t, err) + fmt.Println(string(bytes)) +} From 3b49c873e9c2ff65f6f098ae8b02297a4659e603 Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 16 Sep 2025 12:23:08 +0100 Subject: [PATCH 264/335] add vector type as input argument to hnsw_cdc_sync function --- pkg/iscp/index_consumer_test.go | 2 +- pkg/iscp/index_sqlwriter.go | 3 ++- pkg/sql/plan/function/func_hnsw.go | 16 +++++++++++----- pkg/sql/plan/function/list_builtIn.go | 2 +- pkg/vectorindex/hnsw/sync.go | 7 ++++++- pkg/vectorindex/hnsw/sync_test.go | 23 ++++++++++++----------- pkg/vectorindex/types.go | 1 + 7 files changed, 34 insertions(+), 20 deletions(-) diff --git a/pkg/iscp/index_consumer_test.go b/pkg/iscp/index_consumer_test.go index 0bde58fb03476..27baab60cadab 100644 --- a/pkg/iscp/index_consumer_test.go +++ b/pkg/iscp/index_consumer_test.go @@ -273,7 +273,7 @@ func TestHnswSnapshot(t *testing.T) { sqls := consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls require.Equal(t, len(sqls), 1) sql := sqls[0] - require.Equal(t, string(sql), `SELECT hnsw_cdc_update('test_db', 'test_tbl', 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) + require.Equal(t, string(sql), `SELECT hnsw_cdc_update('test_db', 'test_tbl', 224, 2, '{"cdc":[{"t":"U","pk":1,"v":[0.1,0.2]},{"t":"U","pk":2,"v":[0.3,0.4]}]}');`) //fmt.Printf("Consume %p %v\n", consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls, consumer.(*IndexConsumer).exec.(*MockSQLExecutor).sqls) }) diff --git a/pkg/iscp/index_sqlwriter.go b/pkg/iscp/index_sqlwriter.go index 160fdece6b32c..d374e05615206 100644 --- a/pkg/iscp/index_sqlwriter.go +++ b/pkg/iscp/index_sqlwriter.go @@ -415,6 +415,7 @@ func NewHnswSqlWriter(algo string, jobID JobID, info *ConsumerInfo, tabledef *pl Table: info.TableName, Params: hnswparam, Dimension: tabledef.Cols[w.partsPos[0]].Typ.Width, + VecType: tabledef.Cols[w.partsPos[0]].Typ.Id, } return w, nil @@ -494,7 +495,7 @@ func (w *HnswSqlWriter[T]) ToSql() ([]byte, error) { return nil, err } // pad extra space at the front and send SQL - sql := fmt.Sprintf("SELECT hnsw_cdc_update('%s', '%s', %d, '%s');", w.meta.DbName, w.meta.Table, w.meta.Dimension, js) + sql := fmt.Sprintf("SELECT hnsw_cdc_update('%s', '%s', %d, %d, '%s');", w.meta.DbName, w.meta.Table, w.meta.VecType, w.meta.Dimension, js) return []byte(sql), nil } diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 0956936b3d29a..25328029d7ccd 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -27,14 +27,15 @@ import ( func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, proc *process.Process, length int, selectList *FunctionSelectList) error { - if len(ivecs) != 4 { - return moerr.NewInvalidInput(proc.Ctx, "number of arguments != 4") + if len(ivecs) != 5 { + return moerr.NewInvalidInput(proc.Ctx, "number of arguments != 5") } dbVec := vector.GenerateFunctionStrParameter(ivecs[0]) tblVec := vector.GenerateFunctionStrParameter(ivecs[1]) - dimVec := vector.GenerateFunctionFixedTypeParameter[int32](ivecs[2]) - cdcVec := vector.GenerateFunctionStrParameter(ivecs[3]) + typeVec := vector.GenerateFunctionFixedTypeParameter[int32](ivecs[2]) + dimVec := vector.GenerateFunctionFixedTypeParameter[int32](ivecs[3]) + cdcVec := vector.GenerateFunctionStrParameter(ivecs[4]) for i := uint64(0); i < uint64(length); i++ { dbname, isnull := dbVec.GetStrValue(i) @@ -48,6 +49,11 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, } + typ, isnull := typeVec.GetValue(i) + if isnull { + return moerr.NewInvalidInput(proc.Ctx, "type is null") + } + dim, isnull := dimVec.GetValue(i) if isnull { return moerr.NewInvalidInput(proc.Ctx, "dimension is null") @@ -66,7 +72,7 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, logutil.Infof("hnsw_cdc_update: START db=%s, table=%s\n", dbname, tblname) // hnsw sync //os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, dim=%d, json=%s\n", dbname, tblname, dim, cdcstr)) - err = hnsw.CdcSync(proc, string(dbname), string(tblname), dim, &cdc) + err = hnsw.CdcSync(proc, string(dbname), string(tblname), typ, dim, &cdc) if err != nil { return err } diff --git a/pkg/sql/plan/function/list_builtIn.go b/pkg/sql/plan/function/list_builtIn.go index b39439e71d7f7..c18865d097566 100644 --- a/pkg/sql/plan/function/list_builtIn.go +++ b/pkg/sql/plan/function/list_builtIn.go @@ -7040,7 +7040,7 @@ var supportedOthersBuiltIns = []FuncNew{ Overloads: []overload{ { overloadId: 0, - args: []types.T{types.T_varchar, types.T_varchar, types.T_int32, types.T_varchar}, + args: []types.T{types.T_varchar, types.T_varchar, types.T_int32, types.T_int32, types.T_varchar}, retType: func(parameters []types.Type) types.Type { return types.T_uint64.ToType() }, diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 1cd11a8c4a61c..3ade290c098dc 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -26,6 +26,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/defines" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/util/executor" @@ -45,7 +46,11 @@ const ( var runTxn = sqlexec.RunTxn var runCatalogSql = sqlexec.RunSql -func CdcSync(proc *process.Process, db string, tbl string, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { +func CdcSync(proc *process.Process, db string, tbl string, vectype int32, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { + + if vectype != int32(types.T_array_float32) { + return moerr.NewInternalError(proc.Ctx, "vector type is not []float32") + } accountId, err := defines.GetAccountId(proc.Ctx) if err != nil { diff --git a/pkg/vectorindex/hnsw/sync_test.go b/pkg/vectorindex/hnsw/sync_test.go index cea0c9ffe4775..10181c0c673d2 100644 --- a/pkg/vectorindex/hnsw/sync_test.go +++ b/pkg/vectorindex/hnsw/sync_test.go @@ -20,6 +20,7 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/mpool" "github.com/matrixorigin/matrixone/pkg/container/batch" + "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/testutil" "github.com/matrixorigin/matrixone/pkg/util/executor" "github.com/matrixorigin/matrixone/pkg/vectorindex" @@ -77,7 +78,7 @@ func TestSyncUpsertWithEmpty(t *testing.T) { } } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -105,7 +106,7 @@ func TestSyncUpsert(t *testing.T) { } } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -130,7 +131,7 @@ func TestSyncDelete(t *testing.T) { key += 1 } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -164,7 +165,7 @@ func TestSyncDeleteAndInsert(t *testing.T) { } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -190,7 +191,7 @@ func TestSyncUpdate(t *testing.T) { key += 1 } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -224,7 +225,7 @@ func TestSyncDeleteAndUpsert(t *testing.T) { } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -253,7 +254,7 @@ func TestSyncAddOneModel(t *testing.T) { } } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -278,7 +279,7 @@ func TestSyncDelete2Files(t *testing.T) { key += 1 } - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -306,7 +307,7 @@ func TestSyncDeleteShuffle2Files(t *testing.T) { rand.Seed(uint64(time.Now().UnixNano())) rand.Shuffle(len(cdc.Data), func(i, j int) { cdc.Data[i], cdc.Data[j] = cdc.Data[j], cdc.Data[i] }) - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -335,7 +336,7 @@ func TestSyncUpdateShuffle2Files(t *testing.T) { rand.Seed(uint64(time.Now().UnixNano())) rand.Shuffle(len(cdc.Data), func(i, j int) { cdc.Data[i], cdc.Data[j] = cdc.Data[j], cdc.Data[i] }) - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } @@ -365,6 +366,6 @@ func TestSyncUpdateInsertShuffle2Files(t *testing.T) { rand.Seed(uint64(time.Now().UnixNano())) rand.Shuffle(len(cdc.Data), func(i, j int) { cdc.Data[i], cdc.Data[j] = cdc.Data[j], cdc.Data[i] }) - err := CdcSync(proc, "db", "src", 3, &cdc) + err := CdcSync(proc, "db", "src", int32(types.T_array_float32), 3, &cdc) require.Nil(t, err) } diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index 0d21decf4044b..cee4d409aba7c 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -176,6 +176,7 @@ type HnswCdcParam struct { IndexTbl string `json:"index"` Params HnswParam `json:"params"` Dimension int32 `json:"dimension"` + VecType int32 `json:"type"` } // nthread == 0, result will return NumCPU - 1 From 83195d0e3ce1e4afeda46cfedae62d2b7adb3e5f Mon Sep 17 00:00:00 2001 From: cpegeric Date: Tue, 16 Sep 2025 16:56:34 +0100 Subject: [PATCH 265/335] hnsw with generic types --- pkg/sql/colexec/table_function/hnsw_create.go | 4 +- pkg/sql/colexec/table_function/hnsw_search.go | 2 +- pkg/sql/plan/function/func_hnsw.go | 32 ++++++---- pkg/vectorindex/hnsw/build.go | 59 ++++++++++--------- pkg/vectorindex/hnsw/build_test.go | 18 +++--- pkg/vectorindex/hnsw/model.go | 57 +++++++++++------- pkg/vectorindex/hnsw/model_test.go | 15 ++--- pkg/vectorindex/hnsw/search.go | 35 +++++------ pkg/vectorindex/hnsw/search_test.go | 2 +- pkg/vectorindex/hnsw/sync.go | 52 ++++++++-------- 10 files changed, 152 insertions(+), 124 deletions(-) diff --git a/pkg/sql/colexec/table_function/hnsw_create.go b/pkg/sql/colexec/table_function/hnsw_create.go index bc40181ad7e65..a11865c7bf21e 100644 --- a/pkg/sql/colexec/table_function/hnsw_create.go +++ b/pkg/sql/colexec/table_function/hnsw_create.go @@ -37,7 +37,7 @@ var hnsw_runSql = sqlexec.RunSql type hnswCreateState struct { inited bool - build *hnsw.HnswBuild + build *hnsw.HnswBuild[float32] param vectorindex.HnswParam tblcfg vectorindex.IndexTableConfig idxcfg vectorindex.IndexConfig @@ -196,7 +196,7 @@ func (u *hnswCreateState) start(tf *TableFunction, proc *process.Process, nthRow u.idxcfg.Type = "hnsw" uid := fmt.Sprintf("%s:%d:%d", tf.CnAddr, tf.MaxParallel, tf.ParallelID) - u.build, err = hnsw.NewHnswBuild(proc, uid, tf.MaxParallel, u.idxcfg, u.tblcfg) + u.build, err = hnsw.NewHnswBuild[float32](proc, uid, tf.MaxParallel, u.idxcfg, u.tblcfg) if err != nil { return err } diff --git a/pkg/sql/colexec/table_function/hnsw_search.go b/pkg/sql/colexec/table_function/hnsw_search.go index fe34bceafefad..9ad0d26c2fe7c 100644 --- a/pkg/sql/colexec/table_function/hnsw_search.go +++ b/pkg/sql/colexec/table_function/hnsw_search.go @@ -50,7 +50,7 @@ type hnswSearchState struct { var newHnswAlgo = newHnswAlgoFn func newHnswAlgoFn(idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig) veccache.VectorIndexSearchIf { - return hnsw.NewHnswSearch(idxcfg, tblcfg) + return hnsw.NewHnswSearch[float32](idxcfg, tblcfg) } func (u *hnswSearchState) end(tf *TableFunction, proc *process.Process) error { diff --git a/pkg/sql/plan/function/func_hnsw.go b/pkg/sql/plan/function/func_hnsw.go index 25328029d7ccd..d0beb75068808 100644 --- a/pkg/sql/plan/function/func_hnsw.go +++ b/pkg/sql/plan/function/func_hnsw.go @@ -18,6 +18,7 @@ import ( "encoding/json" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/vectorindex" @@ -64,19 +65,26 @@ func hnswCdcUpdate(ivecs []*vector.Vector, result vector.FunctionResultWrapper, return moerr.NewInvalidInput(proc.Ctx, "cdc is null") } - var cdc vectorindex.VectorIndexCdc[float32] - err := json.Unmarshal([]byte(cdcstr), &cdc) - if err != nil { - return moerr.NewInvalidInput(proc.Ctx, "cdc is not json object") - } - logutil.Infof("hnsw_cdc_update: START db=%s, table=%s\n", dbname, tblname) - // hnsw sync - //os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, dim=%d, json=%s\n", dbname, tblname, dim, cdcstr)) - err = hnsw.CdcSync(proc, string(dbname), string(tblname), typ, dim, &cdc) - if err != nil { - return err + switch typ { + case int32(types.T_array_float32): + var cdc vectorindex.VectorIndexCdc[float32] + err := json.Unmarshal([]byte(cdcstr), &cdc) + if err != nil { + return moerr.NewInvalidInput(proc.Ctx, "cdc is not json object") + } + + logutil.Infof("hnsw_cdc_update: START db=%s, table=%s\n", dbname, tblname) + // hnsw sync + //os.Stderr.WriteString(fmt.Sprintf("db=%s, table=%s, dim=%d, json=%s\n", dbname, tblname, dim, cdcstr)) + err = hnsw.CdcSync[float32](proc, string(dbname), string(tblname), typ, dim, &cdc) + if err != nil { + return err + } + logutil.Infof("hnsw_cdc_update: END db=%s, table=%s\n", dbname, tblname) + default: + return moerr.NewInvalidInput(proc.Ctx, "invalid vector type") + } - logutil.Infof("hnsw_cdc_update: END db=%s, table=%s\n", dbname, tblname) } return nil diff --git a/pkg/vectorindex/hnsw/build.go b/pkg/vectorindex/hnsw/build.go index 4749ab52c4010..aebb4cfd1d7a3 100644 --- a/pkg/vectorindex/hnsw/build.go +++ b/pkg/vectorindex/hnsw/build.go @@ -23,17 +23,18 @@ import ( "sync/atomic" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vm/process" ) -type HnswBuild struct { +type HnswBuild[T types.RealNumbers] struct { uid string cfg vectorindex.IndexConfig tblcfg vectorindex.IndexTableConfig - indexes []*HnswModel + indexes []*HnswModel[T] nthread int - add_chan chan AddItem + add_chan chan AddItem[T] err_chan chan error wg sync.WaitGroup once sync.Once @@ -41,14 +42,14 @@ type HnswBuild struct { count atomic.Int64 } -type AddItem struct { +type AddItem[T types.RealNumbers] struct { key int64 - vec []float32 + vec []T } // create HsnwBuild struct -func NewHnswBuild(proc *process.Process, uid string, nworker int32, - cfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig) (info *HnswBuild, err error) { +func NewHnswBuild[T types.RealNumbers](proc *process.Process, uid string, nworker int32, + cfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig) (info *HnswBuild[T], err error) { // estimate the number of worker threads nthread := 0 @@ -64,16 +65,16 @@ func NewHnswBuild(proc *process.Process, uid string, nworker int32, nthread = 1 } - info = &HnswBuild{ + info = &HnswBuild[T]{ uid: uid, cfg: cfg, tblcfg: tblcfg, - indexes: make([]*HnswModel, 0, 16), + indexes: make([]*HnswModel[T], 0, 16), nthread: int(nthread), } if nthread > 1 { - info.add_chan = make(chan AddItem, nthread*4) + info.add_chan = make(chan AddItem[T], nthread*4) info.err_chan = make(chan error, nthread) // create multi-threads worker for add @@ -98,8 +99,8 @@ func NewHnswBuild(proc *process.Process, uid string, nworker int32, return info, nil } -func (h *HnswBuild) addFromChannel(proc *process.Process) (stream_closed bool, err error) { - var res AddItem +func (h *HnswBuild[T]) addFromChannel(proc *process.Process) (stream_closed bool, err error) { + var res AddItem[T] var ok bool select { @@ -120,7 +121,7 @@ func (h *HnswBuild) addFromChannel(proc *process.Process) (stream_closed bool, e return false, nil } -func (h *HnswBuild) CloseAndWait() { +func (h *HnswBuild[T]) CloseAndWait() { if h.nthread > 1 { h.once.Do(func() { close(h.add_chan) @@ -130,7 +131,7 @@ func (h *HnswBuild) CloseAndWait() { } // destroy -func (h *HnswBuild) Destroy() error { +func (h *HnswBuild[T]) Destroy() error { var errs error @@ -146,7 +147,7 @@ func (h *HnswBuild) Destroy() error { return errs } -func (h *HnswBuild) Add(key int64, vec []float32) error { +func (h *HnswBuild[T]) Add(key int64, vec []T) error { if h.nthread > 1 { select { @@ -155,29 +156,29 @@ func (h *HnswBuild) Add(key int64, vec []float32) error { default: } // copy the []float32 slice. - h.add_chan <- AddItem{key, append(make([]float32, 0, len(vec)), vec...)} + h.add_chan <- AddItem[T]{key, append(make([]T, 0, len(vec)), vec...)} return nil } else { return h.addVector(key, vec) } } -func (h *HnswBuild) createIndexUniqueKey(id int64) string { +func (h *HnswBuild[T]) createIndexUniqueKey(id int64) string { return fmt.Sprintf("%s:%d", h.uid, id) } -func (h *HnswBuild) getIndexForAddSync() (idx *HnswModel, save_idx *HnswModel, err error) { +func (h *HnswBuild[T]) getIndexForAddSync() (idx *HnswModel[T], save_idx *HnswModel[T], err error) { h.mutex.Lock() defer h.mutex.Unlock() return h.getIndexForAdd() } -func (h *HnswBuild) getIndexForAdd() (idx *HnswModel, save_idx *HnswModel, err error) { +func (h *HnswBuild[T]) getIndexForAdd() (idx *HnswModel[T], save_idx *HnswModel[T], err error) { save_idx = nil nidx := int64(len(h.indexes)) if nidx == 0 { - idx, err = NewHnswModelForBuild(h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) + idx, err = NewHnswModelForBuild[T](h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) if err != nil { return nil, nil, err } @@ -192,7 +193,7 @@ func (h *HnswBuild) getIndexForAdd() (idx *HnswModel, save_idx *HnswModel, err e save_idx = idx // create new index - idx, err = NewHnswModelForBuild(h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) + idx, err = NewHnswModelForBuild[T](h.createIndexUniqueKey(nidx), h.cfg, h.nthread, uint(h.tblcfg.IndexCapacity)) if err != nil { return nil, nil, err } @@ -209,10 +210,10 @@ func (h *HnswBuild) getIndexForAdd() (idx *HnswModel, save_idx *HnswModel, err e // add vector to the build // it will check the current index is full and add the vector to available index // sync version for multi-thread -func (h *HnswBuild) addVectorSync(key int64, vec []float32) error { +func (h *HnswBuild[T]) addVectorSync(key int64, vec []T) error { var err error - var idx *HnswModel - var save_idx *HnswModel + var idx *HnswModel[T] + var save_idx *HnswModel[T] idx, save_idx, err = h.getIndexForAddSync() if err != nil { @@ -233,10 +234,10 @@ func (h *HnswBuild) addVectorSync(key int64, vec []float32) error { // add vector to the build // it will check the current index is full and add the vector to available index // single-threaded version. -func (h *HnswBuild) addVector(key int64, vec []float32) error { +func (h *HnswBuild[T]) addVector(key int64, vec []T) error { var err error - var idx *HnswModel - var save_idx *HnswModel + var idx *HnswModel[T] + var save_idx *HnswModel[T] h.mutex.Lock() defer h.mutex.Unlock() @@ -259,7 +260,7 @@ func (h *HnswBuild) addVector(key int64, vec []float32) error { // generate SQL to update the secondary index tables // 1. sync the metadata table // 2. sync the index file to index table -func (h *HnswBuild) ToInsertSql(ts int64) ([]string, error) { +func (h *HnswBuild[T]) ToInsertSql(ts int64) ([]string, error) { h.CloseAndWait() @@ -299,6 +300,6 @@ func (h *HnswBuild) ToInsertSql(ts int64) ([]string, error) { return sqls, nil } -func (h *HnswBuild) GetIndexes() []*HnswModel { +func (h *HnswBuild[T]) GetIndexes() []*HnswModel[T] { return h.indexes } diff --git a/pkg/vectorindex/hnsw/build_test.go b/pkg/vectorindex/hnsw/build_test.go index 27dbede5757b5..fd7c222a5d0c9 100644 --- a/pkg/vectorindex/hnsw/build_test.go +++ b/pkg/vectorindex/hnsw/build_test.go @@ -54,7 +54,7 @@ func TestBuildMulti(t *testing.T) { IndexCapacity: MaxIndexCapacity} uid := fmt.Sprintf("%s:%d:%d", "localhost", 1, 0) - build, err := NewHnswBuild(proc, uid, 1, idxcfg, tblcfg) + build, err := NewHnswBuild[float32](proc, uid, 1, idxcfg, tblcfg) require.Nil(t, err) defer build.Destroy() @@ -101,7 +101,7 @@ func TestBuildMulti(t *testing.T) { fmt.Printf("model search\n") // load index file and search - search := NewHnswSearch(idxcfg, tblcfg) + search := NewHnswSearch[float32](idxcfg, tblcfg) defer search.Destroy() // test Contains with no indexes @@ -111,9 +111,9 @@ func TestBuildMulti(t *testing.T) { fmt.Printf("load model from files\n") // load index - search.Indexes = make([]*HnswModel, len(indexes)) + search.Indexes = make([]*HnswModel[float32], len(indexes)) for i, idx := range indexes { - sidx := &HnswModel{} + sidx := &HnswModel[float32]{} sidx.Index, err = usearch.NewIndex(idxcfg.Usearch) require.Nil(t, err) @@ -175,7 +175,7 @@ func TestBuildIndex(t *testing.T) { idxcfg.Usearch.Metric = 100 //tblcfg := vectorindex.IndexTableConfig{DbName: "db", SrcTable: "src", MetadataTable: "__secondary_meta", IndexTable: "__secondary_index"} - idx, err := NewHnswModelForBuild("abc-0", idxcfg, 1, MaxIndexCapacity) + idx, err := NewHnswModelForBuild[float32]("abc-0", idxcfg, 1, MaxIndexCapacity) require.Nil(t, err) empty, err := idx.Empty() @@ -211,7 +211,7 @@ func TestBuildSingleThread(t *testing.T) { IndexCapacity: MaxIndexCapacity} uid := fmt.Sprintf("%s:%d:%d", "localhost", 1, 0) - build, err := NewHnswBuild(proc, uid, 1, idxcfg, tblcfg) + build, err := NewHnswBuild[float32](proc, uid, 1, idxcfg, tblcfg) require.Nil(t, err) defer build.Destroy() @@ -264,7 +264,7 @@ func TestBuildSingleThread(t *testing.T) { fmt.Printf("model search\n") // load index file and search - search := NewHnswSearch(idxcfg, tblcfg) + search := NewHnswSearch[float32](idxcfg, tblcfg) defer search.Destroy() fmt.Printf("threads search %d\n", search.ThreadsSearch) @@ -275,9 +275,9 @@ func TestBuildSingleThread(t *testing.T) { fmt.Printf("load model from files\n") // load index - search.Indexes = make([]*HnswModel, len(indexes)) + search.Indexes = make([]*HnswModel[float32], len(indexes)) for i, idx := range indexes { - sidx := &HnswModel{} + sidx := &HnswModel[float32]{} sidx.Index, err = usearch.NewIndex(idxcfg.Usearch) require.Nil(t, err) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index cb5e3a2b02683..923beffa745df 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -26,6 +26,7 @@ import ( "github.com/detailyang/go-fallocate" "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" "github.com/matrixorigin/matrixone/pkg/util/executor" @@ -35,7 +36,7 @@ import ( ) // HnswModel struct - This structure shares with Search, Build and Sync -type HnswModel struct { +type HnswModel[T types.RealNumbers] struct { Id string Index *usearch.Index Path string @@ -55,9 +56,9 @@ type HnswModel struct { } // New HnswModel struct -func NewHnswModelForBuild(id string, cfg vectorindex.IndexConfig, nthread int, max_capacity uint) (*HnswModel, error) { +func NewHnswModelForBuild[T types.RealNumbers](id string, cfg vectorindex.IndexConfig, nthread int, max_capacity uint) (*HnswModel[T], error) { var err error - idx := &HnswModel{} + idx := &HnswModel[T]{} idx.Id = id @@ -86,7 +87,7 @@ func NewHnswModelForBuild(id string, cfg vectorindex.IndexConfig, nthread int, m } // Destroy the struct -func (idx *HnswModel) Destroy() error { +func (idx *HnswModel[T]) Destroy() error { if idx.Index != nil { err := idx.Index.Destroy() if err != nil { @@ -108,7 +109,7 @@ func (idx *HnswModel) Destroy() error { } // Save the index to file -func (idx *HnswModel) SaveToFile() error { +func (idx *HnswModel[T]) SaveToFile() error { if idx.Index == nil { // index is nil. ignore @@ -179,7 +180,7 @@ func (idx *HnswModel) SaveToFile() error { // Generate the SQL to update the secondary index tables. // 1. store the index file into the index table -func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) { +func (idx *HnswModel[T]) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) { err := idx.SaveToFile() if err != nil { @@ -249,7 +250,7 @@ func (idx *HnswModel) ToSql(cfg vectorindex.IndexTableConfig) ([]string, error) return sqls, nil } -func (idx *HnswModel) ToDeleteSql(cfg vectorindex.IndexTableConfig) ([]string, error) { +func (idx *HnswModel[T]) ToDeleteSql(cfg vectorindex.IndexTableConfig) ([]string, error) { sqls := make([]string, 0, 2) sql := fmt.Sprintf("DELETE FROM `%s`.`%s` WHERE %s = '%s'", cfg.DbName, cfg.IndexTable, catalog.Hnsw_TblCol_Storage_Index_Id, idx.Id) @@ -261,7 +262,7 @@ func (idx *HnswModel) ToDeleteSql(cfg vectorindex.IndexTableConfig) ([]string, e } // is the index empty -func (idx *HnswModel) Empty() (bool, error) { +func (idx *HnswModel[T]) Empty() (bool, error) { if idx.Index == nil { return false, moerr.NewInternalErrorNoCtx("usearch index is nil") } @@ -274,7 +275,7 @@ func (idx *HnswModel) Empty() (bool, error) { } // check the index is full, i.e. 10K vectors -func (idx *HnswModel) Full() (bool, error) { +func (idx *HnswModel[T]) Full() (bool, error) { if idx.Index == nil { return false, moerr.NewInternalErrorNoCtx("usearch index is nil") } @@ -286,27 +287,38 @@ func (idx *HnswModel) Full() (bool, error) { } // add vector to the index -func (idx *HnswModel) Add(key int64, vec []float32) error { +func (idx *HnswModel[T]) Add(key int64, vec []T) error { if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } idx.Dirty.Store(true) idx.Len.Add(1) - return idx.Index.Add(uint64(key), vec) + + switch v := any(vec).(type) { + case []float32: + return idx.Index.Add(uint64(key), v) + default: + return moerr.NewInternalErrorNoCtx("invalid vector type") + } } // add vector without increment the counter. concurrency add will increment the counter before Add -func (idx *HnswModel) AddWithoutIncr(key int64, vec []float32) error { +func (idx *HnswModel[T]) AddWithoutIncr(key int64, vec []T) error { if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } idx.Dirty.Store(true) //idx.Len.Add(1) - return idx.Index.Add(uint64(key), vec) + switch v := any(vec).(type) { + case []float32: + return idx.Index.Add(uint64(key), v) + default: + return moerr.NewInternalErrorNoCtx("invalid vector type") + } } // remove key -func (idx *HnswModel) Remove(key int64) error { +func (idx *HnswModel[T]) Remove(key int64) error { if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } @@ -316,7 +328,7 @@ func (idx *HnswModel) Remove(key int64) error { } // contains key -func (idx *HnswModel) Contains(key int64) (found bool, err error) { +func (idx *HnswModel[T]) Contains(key int64) (found bool, err error) { if idx.Index == nil { return false, moerr.NewInternalErrorNoCtx("usearch index is nil") } @@ -324,7 +336,7 @@ func (idx *HnswModel) Contains(key int64) (found bool, err error) { } // load chunk from database -func (idx *HnswModel) loadChunk(ctx context.Context, +func (idx *HnswModel[T]) loadChunk(ctx context.Context, proc *process.Process, stream_chan chan executor.Result, error_chan chan error, @@ -373,7 +385,7 @@ func (idx *HnswModel) loadChunk(ctx context.Context, // 3. SELECT chunk_id, data from index_table WHERE index_id = id. Result will be out of order // 4. according to the chunk_id, seek to the offset and write the chunk // 5. check the checksum to verify the correctness of the file -func (idx *HnswModel) LoadIndex( +func (idx *HnswModel[T]) LoadIndex( proc *process.Process, idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig, @@ -535,7 +547,7 @@ func (idx *HnswModel) LoadIndex( } // unload -func (idx *HnswModel) Unload() error { +func (idx *HnswModel[T]) Unload() error { if idx.Index == nil { return moerr.NewInternalErrorNoCtx("usearch index is nil") } @@ -565,9 +577,14 @@ func (idx *HnswModel) Unload() error { } // Call usearch.Search -func (idx *HnswModel) Search(query []float32, limit uint) (keys []usearch.Key, distances []float32, err error) { +func (idx *HnswModel[T]) Search(query []T, limit uint) (keys []usearch.Key, distances []float32, err error) { if idx.Index == nil { return nil, nil, moerr.NewInternalErrorNoCtx("usearch index is nil") } - return idx.Index.Search(query, limit) + switch v := any(query).(type) { + case []float32: + return idx.Index.Search(v, limit) + default: + return nil, nil, moerr.NewInternalErrorNoCtx("invalid vector type") + } } diff --git a/pkg/vectorindex/hnsw/model_test.go b/pkg/vectorindex/hnsw/model_test.go index 531fadb133ac5..d5af955c55809 100644 --- a/pkg/vectorindex/hnsw/model_test.go +++ b/pkg/vectorindex/hnsw/model_test.go @@ -19,6 +19,7 @@ import ( "testing" "github.com/matrixorigin/matrixone/pkg/common/mpool" + "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/testutil" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/stretchr/testify/require" @@ -43,12 +44,12 @@ func mock_runSql_streaming(proc *process.Process, sql string, ch chan executor.R } */ -func doModelSearchTest(t *testing.T, idx *HnswModel, key uint64, v []float32) { +func doModelSearchTest[T types.RealNumbers](t *testing.T, idx *HnswModel[T], key uint64, v []T) { keys, distances, err := idx.Search(v, 4) require.Nil(t, err) require.Equal(t, len(keys), 4) require.Equal(t, keys[0], key) - require.Equal(t, distances[0], float32(0)) + require.Equal(t, distances[0], T(0)) fmt.Printf("%v %v\n", keys, distances) } @@ -65,7 +66,7 @@ func TestModel(t *testing.T) { runSql = mock_runSql runSql_streaming = mock_runSql_streaming - models, err := LoadMetadata(proc, "db", "meta") + models, err := LoadMetadata[float32](proc, "db", "meta") require.Nil(t, err) idxcfg := vectorindex.IndexConfig{Type: "hnsw", Usearch: usearch.DefaultConfig(3)} @@ -79,7 +80,7 @@ func TestModel(t *testing.T) { err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) require.Nil(t, err) - doModelSearchTest(t, idx, 0, fp32a) + doModelSearchTest[float32](t, idx, 0, fp32a) require.Equal(t, idx.Dirty.Load(), false) @@ -89,7 +90,7 @@ func TestModel(t *testing.T) { err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) require.Nil(t, err) - doModelSearchTest(t, idx, 0, fp32a) + doModelSearchTest[float32](t, idx, 0, fp32a) var found bool found, err = idx.Contains(0) @@ -125,7 +126,7 @@ func TestModel(t *testing.T) { err = idx.LoadIndex(proc, idxcfg, tblcfg, 0, false) require.Nil(t, err) - doModelSearchTest(t, idx, uint64(key), v) + doModelSearchTest[float32](t, idx, uint64(key), v) key += 1 v[0] += 1 @@ -174,7 +175,7 @@ func TestModelNil(t *testing.T) { var err error var tblcfg vectorindex.IndexTableConfig - idx := HnswModel{} + idx := HnswModel[float32]{} err = idx.SaveToFile() require.Nil(t, err) diff --git a/pkg/vectorindex/hnsw/search.go b/pkg/vectorindex/hnsw/search.go index 77ddebc5a574d..415d83ba1400d 100644 --- a/pkg/vectorindex/hnsw/search.go +++ b/pkg/vectorindex/hnsw/search.go @@ -21,6 +21,7 @@ import ( "sync/atomic" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vectorindex/cache" @@ -32,25 +33,25 @@ var runSql = sqlexec.RunSql var runSql_streaming = sqlexec.RunStreamingSql // This is the HNSW search implementation that implement VectorIndexSearchIf interface -type HnswSearch struct { +type HnswSearch[T types.RealNumbers] struct { Idxcfg vectorindex.IndexConfig Tblcfg vectorindex.IndexTableConfig - Indexes []*HnswModel + Indexes []*HnswModel[T] Concurrency atomic.Int64 Mutex sync.Mutex Cond *sync.Cond ThreadsSearch int64 } -func NewHnswSearch(idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig) *HnswSearch { +func NewHnswSearch[T types.RealNumbers](idxcfg vectorindex.IndexConfig, tblcfg vectorindex.IndexTableConfig) *HnswSearch[T] { nthread := vectorindex.GetConcurrency(tblcfg.ThreadsSearch) - s := &HnswSearch{Idxcfg: idxcfg, Tblcfg: tblcfg, ThreadsSearch: nthread} + s := &HnswSearch[T]{Idxcfg: idxcfg, Tblcfg: tblcfg, ThreadsSearch: nthread} s.Cond = sync.NewCond(&s.Mutex) return s } // acquire lock from a usearch threads -func (s *HnswSearch) lock() { +func (s *HnswSearch[T]) lock() { // check max threads s.Cond.L.Lock() defer s.Cond.L.Unlock() @@ -61,15 +62,15 @@ func (s *HnswSearch) lock() { } // release a lock from a usearch threads -func (s *HnswSearch) unlock() { +func (s *HnswSearch[T]) unlock() { s.Concurrency.Add(-1) s.Cond.Signal() } // Search the hnsw index (implement VectorIndexSearch.Search) -func (s *HnswSearch) Search(proc *process.Process, anyquery any, rt vectorindex.RuntimeConfig) (keys any, distances []float64, err error) { +func (s *HnswSearch[T]) Search(proc *process.Process, anyquery any, rt vectorindex.RuntimeConfig) (keys any, distances []float64, err error) { - query, ok := anyquery.([]float32) + query, ok := anyquery.([]T) if !ok { return nil, nil, moerr.NewInternalErrorNoCtx("query is not []float32") } @@ -138,7 +139,7 @@ func (s *HnswSearch) Search(proc *process.Process, anyquery any, rt vectorindex. return reskeys, resdistances, nil } -func (s *HnswSearch) Contains(key int64) (bool, error) { +func (s *HnswSearch[T]) Contains(key int64) (bool, error) { if len(s.Indexes) == 0 { return false, nil } @@ -158,7 +159,7 @@ func (s *HnswSearch) Contains(key int64) (bool, error) { } // Destroy HnswSearch (implement VectorIndexSearch.Destroy) -func (s *HnswSearch) Destroy() { +func (s *HnswSearch[T]) Destroy() { // destroy index for _, idx := range s.Indexes { idx.Index.Destroy() @@ -167,7 +168,7 @@ func (s *HnswSearch) Destroy() { } // load metadata from database -func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*HnswModel, error) { +func LoadMetadata[T types.RealNumbers](proc *process.Process, dbname string, metatbl string) ([]*HnswModel[T], error) { sql := fmt.Sprintf("SELECT * FROM `%s`.`%s` ORDER BY timestamp ASC", dbname, metatbl) res, err := runSql(proc, sql) @@ -181,7 +182,7 @@ func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*Hnsw total += bat.RowCount() } - indexes := make([]*HnswModel, 0, total) + indexes := make([]*HnswModel[T], 0, total) for _, bat := range res.Batches { idVec := bat.Vecs[0] chksumVec := bat.Vecs[1] @@ -193,7 +194,7 @@ func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*Hnsw ts := vector.GetFixedAtWithTypeCheck[int64](tsVec, i) fs := vector.GetFixedAtWithTypeCheck[int64](fsVec, i) - idx := &HnswModel{Id: id, Checksum: chksum, Timestamp: ts, FileSize: fs} + idx := &HnswModel[T]{Id: id, Checksum: chksum, Timestamp: ts, FileSize: fs} indexes = append(indexes, idx) } } @@ -202,7 +203,7 @@ func LoadMetadata(proc *process.Process, dbname string, metatbl string) ([]*Hnsw } // load index from database -func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswModel) ([]*HnswModel, error) { +func (s *HnswSearch[T]) LoadIndex(proc *process.Process, indexes []*HnswModel[T]) ([]*HnswModel[T], error) { var err error for _, idx := range indexes { @@ -223,9 +224,9 @@ func (s *HnswSearch) LoadIndex(proc *process.Process, indexes []*HnswModel) ([]* } // load index from database (implement VectorIndexSearch.LoadFromDatabase) -func (s *HnswSearch) Load(proc *process.Process) error { +func (s *HnswSearch[T]) Load(proc *process.Process) error { // load metadata - indexes, err := LoadMetadata(proc, s.Tblcfg.DbName, s.Tblcfg.MetadataTable) + indexes, err := LoadMetadata[T](proc, s.Tblcfg.DbName, s.Tblcfg.MetadataTable) if err != nil { return err } @@ -244,7 +245,7 @@ func (s *HnswSearch) Load(proc *process.Process) error { } // check config and update some parameters such as ef_search -func (s *HnswSearch) UpdateConfig(newalgo cache.VectorIndexSearchIf) error { +func (s *HnswSearch[T]) UpdateConfig(newalgo cache.VectorIndexSearchIf) error { return nil } diff --git a/pkg/vectorindex/hnsw/search_test.go b/pkg/vectorindex/hnsw/search_test.go index 20f7b255039d8..7117623a52de0 100644 --- a/pkg/vectorindex/hnsw/search_test.go +++ b/pkg/vectorindex/hnsw/search_test.go @@ -124,7 +124,7 @@ func TestHnsw(t *testing.T) { for j := 0; j < 20000; j++ { cache.Cache.Once() - algo := NewHnswSearch(idxcfg, tblcfg) + algo := NewHnswSearch[float32](idxcfg, tblcfg) anykeys, distances, err := cache.Cache.Search(proc, tblcfg.IndexTable, algo, fp32a, vectorindex.RuntimeConfig{Limit: 4}) require.Nil(t, err) keys, ok := anykeys.([]int64) diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index 3ade290c098dc..aec23777edc88 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -46,7 +46,7 @@ const ( var runTxn = sqlexec.RunTxn var runCatalogSql = sqlexec.RunSql -func CdcSync(proc *process.Process, db string, tbl string, vectype int32, dimension int32, cdc *vectorindex.VectorIndexCdc[float32]) error { +func CdcSync[T types.RealNumbers](proc *process.Process, db string, tbl string, vectype int32, dimension int32, cdc *vectorindex.VectorIndexCdc[T]) error { if vectype != int32(types.T_array_float32) { return moerr.NewInternalError(proc.Ctx, "vector type is not []float32") @@ -180,7 +180,7 @@ func CdcSync(proc *process.Process, db string, tbl string, vectype int32, dimens //os.Stderr.WriteString(fmt.Sprintf("idxcfg: %v\n", idxcfg)) // load metadata - indexes, err := LoadMetadata(proc, idxtblcfg.DbName, idxtblcfg.MetadataTable) + indexes, err := LoadMetadata[T](proc, idxtblcfg.DbName, idxtblcfg.MetadataTable) if err != nil { return err } @@ -189,7 +189,7 @@ func CdcSync(proc *process.Process, db string, tbl string, vectype int32, dimens // model id for CDC is cdc:1:0:timestamp uid := fmt.Sprintf("%s:%d:%d", "cdc", 1, 0) ts := time.Now().Unix() - sync := &HnswSync{indexes: indexes, idxcfg: idxcfg, tblcfg: idxtblcfg, cdc: cdc, uid: uid, ts: ts} + sync := &HnswSync[T]{indexes: indexes, idxcfg: idxcfg, tblcfg: idxtblcfg, cdc: cdc, uid: uid, ts: ts} defer sync.destroy() err = sync.run(proc) if err != nil { @@ -202,28 +202,28 @@ func CdcSync(proc *process.Process, db string, tbl string, vectype int32, dimens return nil } -type HnswSync struct { - indexes []*HnswModel +type HnswSync[T types.RealNumbers] struct { + indexes []*HnswModel[T] idxcfg vectorindex.IndexConfig tblcfg vectorindex.IndexTableConfig - cdc *vectorindex.VectorIndexCdc[float32] + cdc *vectorindex.VectorIndexCdc[T] uid string ts int64 ninsert atomic.Int32 ndelete atomic.Int32 nupdate atomic.Int32 - current *HnswModel - last *HnswModel + current *HnswModel[T] + last *HnswModel[T] } -func (s *HnswSync) destroy() { +func (s *HnswSync[T]) destroy() { for _, m := range s.indexes { m.Destroy() } s.indexes = nil } -func (s *HnswSync) checkContains(proc *process.Process) (maxcap uint, midx []int, err error) { +func (s *HnswSync[T]) checkContains(proc *process.Process) (maxcap uint, midx []int, err error) { err_chan := make(chan error, s.tblcfg.ThreadsBuild) maxcap = uint(s.tblcfg.IndexCapacity) @@ -297,7 +297,7 @@ func (s *HnswSync) checkContains(proc *process.Process) (maxcap uint, midx []int return maxcap, midx, nil } -func (s *HnswSync) insertAllInParallel(proc *process.Process, maxcap uint) error { +func (s *HnswSync[T]) insertAllInParallel(proc *process.Process, maxcap uint) error { var mu sync.Mutex var wg sync.WaitGroup err_chan := make(chan error, s.tblcfg.ThreadsBuild) @@ -343,14 +343,14 @@ func (s *HnswSync) insertAllInParallel(proc *process.Process, maxcap uint) error return nil } -func (s *HnswSync) setupModel(proc *process.Process, maxcap uint) error { +func (s *HnswSync[T]) setupModel(proc *process.Process, maxcap uint) error { - s.current = (*HnswModel)(nil) - s.last = (*HnswModel)(nil) + s.current = (*HnswModel[T])(nil) + s.last = (*HnswModel[T])(nil) if len(s.indexes) == 0 { // create a new model and do insert id := s.getModelId() - newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) + newmodel, err := NewHnswModelForBuild[T](id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) if err != nil { return err } @@ -364,7 +364,7 @@ func (s *HnswSync) setupModel(proc *process.Process, maxcap uint) error { //os.Stderr.WriteString(fmt.Sprintf("full len %d, cap %d\n", idxlen, last.MaxCapacity)) id := s.getModelId() // model is already full, create a new model for insert - newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) + newmodel, err := NewHnswModelForBuild[T](id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) if err != nil { return err } @@ -382,7 +382,7 @@ func (s *HnswSync) setupModel(proc *process.Process, maxcap uint) error { return nil } -func (s *HnswSync) sequentialUpdate(proc *process.Process, maxcap uint, midx []int) error { +func (s *HnswSync[T]) sequentialUpdate(proc *process.Process, maxcap uint, midx []int) error { for i, row := range s.cdc.Data { @@ -454,7 +454,7 @@ func (s *HnswSync) sequentialUpdate(proc *process.Process, maxcap uint, midx []i return nil } -func (s *HnswSync) run(proc *process.Process) error { +func (s *HnswSync[T]) run(proc *process.Process) error { var err error start := time.Now() @@ -522,7 +522,7 @@ func (s *HnswSync) run(proc *process.Process) error { return nil } -func (s *HnswSync) runSqls(proc *process.Process, sqls []string) error { +func (s *HnswSync[T]) runSqls(proc *process.Process, sqls []string) error { /* for _, s := range sqls { os.Stderr.WriteString(fmt.Sprintf("sql : %s\n", s)) @@ -546,13 +546,13 @@ func (s *HnswSync) runSqls(proc *process.Process, sqls []string) error { return nil } -func (s *HnswSync) getModelId() string { +func (s *HnswSync[T]) getModelId() string { id := fmt.Sprintf("%s:%d", s.uid, s.ts) s.ts++ return id } -func (s *HnswSync) getCurrentModel(proc *process.Process, idx int) (*HnswModel, error) { +func (s *HnswSync[T]) getCurrentModel(proc *process.Process, idx int) (*HnswModel[T], error) { m := s.indexes[idx] if s.current != m { // check current == last, if not, safe to unload @@ -565,7 +565,7 @@ func (s *HnswSync) getCurrentModel(proc *process.Process, idx int) (*HnswModel, return s.current, nil } -func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint) (*HnswModel, error) { +func (s *HnswSync[T]) getLastModel(proc *process.Process, maxcap uint) (*HnswModel[T], error) { full, err := s.last.Full() if err != nil { @@ -580,7 +580,7 @@ func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint) (*HnswModel, id := s.getModelId() // model is already full, create a new model for insert - newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) + newmodel, err := NewHnswModelForBuild[T](id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) if err != nil { return nil, err } @@ -592,7 +592,7 @@ func (s *HnswSync) getLastModel(proc *process.Process, maxcap uint) (*HnswModel, return s.last, nil } -func (s *HnswSync) getLastModelAndIncrForSync(proc *process.Process, maxcap uint, mu *sync.Mutex) (*HnswModel, bool, error) { +func (s *HnswSync[T]) getLastModelAndIncrForSync(proc *process.Process, maxcap uint, mu *sync.Mutex) (*HnswModel[T], bool, error) { mu.Lock() defer mu.Unlock() @@ -601,7 +601,7 @@ func (s *HnswSync) getLastModelAndIncrForSync(proc *process.Process, maxcap uint if full { id := s.getModelId() // model is already full, create a new model for insert - newmodel, err := NewHnswModelForBuild(id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) + newmodel, err := NewHnswModelForBuild[T](id, s.idxcfg, int(s.tblcfg.ThreadsBuild), maxcap) if err != nil { return nil, false, err } @@ -621,7 +621,7 @@ func (s *HnswSync) getLastModelAndIncrForSync(proc *process.Process, maxcap uint // generate SQL to update the secondary index tables // 1. sync the metadata table // 2. sync the index file to index table -func (s *HnswSync) ToSql(ts int64) ([]string, error) { +func (s *HnswSync[T]) ToSql(ts int64) ([]string, error) { if len(s.indexes) == 0 { return []string{}, nil From 1463552992ae4c3cc493e331ae4ac8825c37915a Mon Sep 17 00:00:00 2001 From: cpegeric Date: Wed, 17 Sep 2025 10:12:45 +0100 Subject: [PATCH 266/335] update usearch --- go.mod | 2 +- go.sum | 4 +- pkg/catalog/secondary_index_utils.go | 20 - pkg/common/util/unsafe.go | 4 + pkg/sql/colexec/table_function/hnsw_create.go | 16 +- .../table_function/hnsw_create_test.go | 1 - pkg/sql/colexec/table_function/hnsw_search.go | 16 +- .../table_function/hnsw_search_test.go | 1 - pkg/sql/parsers/dialect/mysql/keywords.go | 1 - pkg/sql/parsers/dialect/mysql/mysql_sql.go | 16973 ++++++++-------- pkg/sql/parsers/dialect/mysql/mysql_sql.y | 11 +- .../parsers/dialect/mysql/mysql_sql_test.go | 12 +- pkg/sql/parsers/tree/create.go | 8 +- pkg/vectorindex/hnsw/model.go | 57 +- pkg/vectorindex/hnsw/sync.go | 10 +- pkg/vectorindex/hnsw/types.go | 20 + pkg/vectorindex/hnsw/types_test.go | 20 + pkg/vectorindex/index.go | 17 - pkg/vectorindex/index_test.go | 8 - pkg/vectorindex/types.go | 1 - thirdparties/Makefile | 2 +- thirdparties/usearch-2.18.0.tar.gz | Bin 437995 -> 0 bytes thirdparties/usearch-2.21.0.tar.gz | Bin 0 -> 469019 bytes thirdparties/usearch-main.tar.gz | Bin 431082 -> 0 bytes 24 files changed, 8603 insertions(+), 8601 deletions(-) create mode 100644 pkg/vectorindex/hnsw/types.go create mode 100644 pkg/vectorindex/hnsw/types_test.go delete mode 100644 thirdparties/usearch-2.18.0.tar.gz create mode 100644 thirdparties/usearch-2.21.0.tar.gz delete mode 100644 thirdparties/usearch-main.tar.gz diff --git a/go.mod b/go.mod index 39b40d66bf789..e3998176df58a 100644 --- a/go.mod +++ b/go.mod @@ -90,7 +90,7 @@ require ( github.com/tidwall/btree v1.7.0 github.com/tidwall/pretty v1.2.1 github.com/tmc/langchaingo v0.1.13 - github.com/unum-cloud/usearch/golang v0.0.0-20250207215718-306d6646b8f5 + github.com/unum-cloud/usearch/golang v0.0.0-20250904130807-fd6279af6bc2 go.starlark.net v0.0.0-20250701195324-d457b4515e0e go.uber.org/automaxprocs v1.5.3 go.uber.org/ratelimit v0.2.0 diff --git a/go.sum b/go.sum index 476a8ce6f425b..e62c9f1394df6 100644 --- a/go.sum +++ b/go.sum @@ -852,8 +852,8 @@ github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGr github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/unum-cloud/usearch/golang v0.0.0-20250207215718-306d6646b8f5 h1:lOzc2l+rWM6eLATMDqOd4TebwgFuw+m1hxCzFvGi+D4= -github.com/unum-cloud/usearch/golang v0.0.0-20250207215718-306d6646b8f5/go.mod h1:NxBpQibuBBeA/V8RGbrNzVAv4OyWWL5yNao7mVz656k= +github.com/unum-cloud/usearch/golang v0.0.0-20250904130807-fd6279af6bc2 h1:t5tCxajZ8pvUpAh0O3C4mUNOfIH5IsmjSj1HgeDyvFM= +github.com/unum-cloud/usearch/golang v0.0.0-20250904130807-fd6279af6bc2/go.mod h1:NxBpQibuBBeA/V8RGbrNzVAv4OyWWL5yNao7mVz656k= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= diff --git a/pkg/catalog/secondary_index_utils.go b/pkg/catalog/secondary_index_utils.go index a92e67be2a069..bb73bf9305931 100644 --- a/pkg/catalog/secondary_index_utils.go +++ b/pkg/catalog/secondary_index_utils.go @@ -22,7 +22,6 @@ import ( "github.com/matrixorigin/matrixone/pkg/common/moerr" "github.com/matrixorigin/matrixone/pkg/sql/parsers/tree" - "github.com/matrixorigin/matrixone/pkg/vectorindex" "github.com/matrixorigin/matrixone/pkg/vectorindex/metric" ) @@ -116,15 +115,6 @@ func IndexParamsToStringList(indexParams string) (string, error) { res += fmt.Sprintf(" %s = %s ", HnswEfSearch, val) } - if val, ok := result[HnswQuantization]; ok { - val = ToLower(val) - _, ok := vectorindex.QuantizationValid(val) - if !ok { - return "", moerr.NewInternalErrorNoCtxf("invalid quantization '%s'", val) - } - res += fmt.Sprintf(" %s '%s' ", HnswQuantization, val) - } - if opType, ok := result[IndexAlgoParamOpType]; ok { opType = ToLower(opType) if _, ok := metric.OpTypeToIvfMetric[opType]; !ok { @@ -251,12 +241,6 @@ func indexParamsToMap(def interface{}) (map[string]string, error) { if idx.IndexOption.HnswEfSearch < 0 { return nil, moerr.NewInternalErrorNoCtx("invalid ef_search. hnsw.ef_search must be > 0") } - if len(idx.IndexOption.HnswQuantization) > 0 { - _, ok := vectorindex.QuantizationValid(idx.IndexOption.HnswQuantization) - if !ok { - return nil, moerr.NewInternalErrorNoCtx("invalid hnsw quantization.") - } - } // hnswM or HnswEfConstruction == 0, use usearch default value if idx.IndexOption.HnswM > 0 { @@ -269,10 +253,6 @@ func indexParamsToMap(def interface{}) (map[string]string, error) { res[HnswEfSearch] = strconv.FormatInt(idx.IndexOption.HnswEfSearch, 10) } - if len(idx.IndexOption.HnswQuantization) > 0 { - res[HnswQuantization] = idx.IndexOption.HnswQuantization - } - if len(idx.IndexOption.AlgoParamVectorOpType) > 0 { opType := ToLower(idx.IndexOption.AlgoParamVectorOpType) if _, ok := metric.OpTypeToUsearchMetric[opType]; !ok { diff --git a/pkg/common/util/unsafe.go b/pkg/common/util/unsafe.go index b05ee3bdaa3ce..0b195efc7da8f 100644 --- a/pkg/common/util/unsafe.go +++ b/pkg/common/util/unsafe.go @@ -46,3 +46,7 @@ func UnsafeSliceCast[B any, From []A, A any, To []B](from From) To { func UnsafeUintptr[P *T, T any](p P) uintptr { return uintptr(unsafe.Pointer(p)) } + +func UnsafePointer[P *T, T any](p P) unsafe.Pointer { + return unsafe.Pointer(p) +} diff --git a/pkg/sql/colexec/table_function/hnsw_create.go b/pkg/sql/colexec/table_function/hnsw_create.go index a11865c7bf21e..3f9f2212719dc 100644 --- a/pkg/sql/colexec/table_function/hnsw_create.go +++ b/pkg/sql/colexec/table_function/hnsw_create.go @@ -120,14 +120,6 @@ func (u *hnswCreateState) start(tf *TableFunction, proc *process.Process, nthRow } } - if len(u.param.Quantization) > 0 { - var ok bool - u.idxcfg.Usearch.Quantization, ok = vectorindex.QuantizationValid(u.param.Quantization) - if !ok { - return moerr.NewInternalError(proc.Ctx, "Invalid quantization value") - } - } - if len(u.param.M) > 0 { val, err := strconv.Atoi(u.param.M) if err != nil { @@ -189,9 +181,15 @@ func (u *hnswCreateState) start(tf *TableFunction, proc *process.Process, nthRow if f32aVec.GetType().Oid != types.T_array_float32 { return moerr.NewInvalidInput(proc.Ctx, "Third argument (vector must be a vecfs32 type") } - dimension := f32aVec.GetType().Width + // quantization + u.idxcfg.Usearch.Quantization, err = hnsw.QuantizationToUsearch(int32(f32aVec.GetType().Oid)) + if err != nil { + return err + } // dimension + dimension := f32aVec.GetType().Width + u.idxcfg.Usearch.Dimensions = uint(dimension) u.idxcfg.Type = "hnsw" diff --git a/pkg/sql/colexec/table_function/hnsw_create_test.go b/pkg/sql/colexec/table_function/hnsw_create_test.go index 5902c592a5a4b..529e5b079df3a 100644 --- a/pkg/sql/colexec/table_function/hnsw_create_test.go +++ b/pkg/sql/colexec/table_function/hnsw_create_test.go @@ -130,7 +130,6 @@ func TestHnswCreate(t *testing.T) { var failedparam []string = []string{"{", "{\"op_type\": \"vector_cos_ops\"}", - "{\"op_type\": \"vector_l2_ops\", \"quantization\":\"invalid\"}", "{\"op_type\": \"vector_l2_ops\", \"m\":\"notnumber\"}", "{\"op_type\": \"vector_l2_ops\", \"ef_construction\":\"notnumber\"}", "{\"op_type\": \"vector_l2_ops\"}, \"ef_search\":\"notnumber\"", diff --git a/pkg/sql/colexec/table_function/hnsw_search.go b/pkg/sql/colexec/table_function/hnsw_search.go index 9ad0d26c2fe7c..57ecbfa545539 100644 --- a/pkg/sql/colexec/table_function/hnsw_search.go +++ b/pkg/sql/colexec/table_function/hnsw_search.go @@ -128,14 +128,6 @@ func (u *hnswSearchState) start(tf *TableFunction, proc *process.Process, nthRow } } - if len(u.param.Quantization) > 0 { - var ok bool - u.idxcfg.Usearch.Quantization, ok = vectorindex.QuantizationValid(u.param.Quantization) - if !ok { - return moerr.NewInternalError(proc.Ctx, "Invalid quantization value") - } - } - if len(u.param.M) > 0 { val, err := strconv.Atoi(u.param.M) if err != nil { @@ -189,9 +181,15 @@ func (u *hnswSearchState) start(tf *TableFunction, proc *process.Process, nthRow if f32aVec.GetType().Oid != types.T_array_float32 { return moerr.NewInvalidInput(proc.Ctx, "Third argument (vector must be a vecfs32 type") } - dimension := f32aVec.GetType().Width + + // quantization + u.idxcfg.Usearch.Quantization, err = hnsw.QuantizationToUsearch(int32(f32aVec.GetType().Oid)) + if err != nil { + return err + } // dimension + dimension := f32aVec.GetType().Width u.idxcfg.Usearch.Dimensions = uint(dimension) u.idxcfg.Type = "hnsw" diff --git a/pkg/sql/colexec/table_function/hnsw_search_test.go b/pkg/sql/colexec/table_function/hnsw_search_test.go index 2c5875f09f188..1b1cfa56bfd93 100644 --- a/pkg/sql/colexec/table_function/hnsw_search_test.go +++ b/pkg/sql/colexec/table_function/hnsw_search_test.go @@ -161,7 +161,6 @@ func TestHnswSearch(t *testing.T) { var failedsearchparam []string = []string{"{", "{\"op_type\": \"vector_cos_ops\"}", - "{\"op_type\": \"vector_l2_ops\", \"quantization\":\"invalid\"}", "{\"op_type\": \"vector_l2_ops\", \"m\":\"notnumber\"}", "{\"op_type\": \"vector_l2_ops\", \"ef_construction\":\"notnumber\"}", "{\"op_type\": \"vector_l2_ops\"}, \"ef_search\":\"notnumber\"", diff --git a/pkg/sql/parsers/dialect/mysql/keywords.go b/pkg/sql/parsers/dialect/mysql/keywords.go index 5f6d1081749d1..cdfd798e39d3c 100644 --- a/pkg/sql/parsers/dialect/mysql/keywords.go +++ b/pkg/sql/parsers/dialect/mysql/keywords.go @@ -374,7 +374,6 @@ func init() { "prev": PREV, "plugins": PLUGINS, "persist": PERSIST, - "quantization": QUANTIZATION, "query": QUERY, "quarter": QUARTER, "quick": QUICK, diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.go b/pkg/sql/parsers/dialect/mysql/mysql_sql.go index e7475632c51ca..55d47d1303ec0 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.go @@ -361,307 +361,306 @@ const REINDEX = 57684 const EF_SEARCH = 57685 const EF_CONSTRUCTION = 57686 const M = 57687 -const QUANTIZATION = 57688 -const ASYNC = 57689 -const EXPIRE = 57690 -const ACCOUNT = 57691 -const ACCOUNTS = 57692 -const UNLOCK = 57693 -const DAY = 57694 -const NEVER = 57695 -const PUMP = 57696 -const MYSQL_COMPATIBILITY_MODE = 57697 -const UNIQUE_CHECK_ON_AUTOINCR = 57698 -const MODIFY = 57699 -const CHANGE = 57700 -const SECOND = 57701 -const ASCII = 57702 -const COALESCE = 57703 -const COLLATION = 57704 -const HOUR = 57705 -const MICROSECOND = 57706 -const MINUTE = 57707 -const MONTH = 57708 -const QUARTER = 57709 -const REPEAT = 57710 -const REVERSE = 57711 -const ROW_COUNT = 57712 -const WEEK = 57713 -const REVOKE = 57714 -const FUNCTION = 57715 -const PRIVILEGES = 57716 -const TABLESPACE = 57717 -const EXECUTE = 57718 -const SUPER = 57719 -const GRANT = 57720 -const OPTION = 57721 -const REFERENCES = 57722 -const REPLICATION = 57723 -const SLAVE = 57724 -const CLIENT = 57725 -const USAGE = 57726 -const RELOAD = 57727 -const FILE = 57728 -const TEMPORARY = 57729 -const ROUTINE = 57730 -const EVENT = 57731 -const SHUTDOWN = 57732 -const NULLX = 57733 -const AUTO_INCREMENT = 57734 -const APPROXNUM = 57735 -const SIGNED = 57736 -const UNSIGNED = 57737 -const ZEROFILL = 57738 -const ENGINES = 57739 -const LOW_CARDINALITY = 57740 -const AUTOEXTEND_SIZE = 57741 -const ADMIN_NAME = 57742 -const RANDOM = 57743 -const SUSPEND = 57744 -const ATTRIBUTE = 57745 -const HISTORY = 57746 -const REUSE = 57747 -const CURRENT = 57748 -const OPTIONAL = 57749 -const FAILED_LOGIN_ATTEMPTS = 57750 -const PASSWORD_LOCK_TIME = 57751 -const UNBOUNDED = 57752 -const SECONDARY = 57753 -const RESTRICTED = 57754 -const USER = 57755 -const IDENTIFIED = 57756 -const CIPHER = 57757 -const ISSUER = 57758 -const X509 = 57759 -const SUBJECT = 57760 -const SAN = 57761 -const REQUIRE = 57762 -const SSL = 57763 -const NONE = 57764 -const PASSWORD = 57765 -const SHARED = 57766 -const EXCLUSIVE = 57767 -const MAX_QUERIES_PER_HOUR = 57768 -const MAX_UPDATES_PER_HOUR = 57769 -const MAX_CONNECTIONS_PER_HOUR = 57770 -const MAX_USER_CONNECTIONS = 57771 -const FORMAT = 57772 -const VERBOSE = 57773 -const CONNECTION = 57774 -const TRIGGERS = 57775 -const PROFILES = 57776 -const LOAD = 57777 -const INLINE = 57778 -const INFILE = 57779 -const TERMINATED = 57780 -const OPTIONALLY = 57781 -const ENCLOSED = 57782 -const ESCAPED = 57783 -const STARTING = 57784 -const LINES = 57785 -const ROWS = 57786 -const IMPORT = 57787 -const DISCARD = 57788 -const JSONTYPE = 57789 -const MODUMP = 57790 -const OVER = 57791 -const PRECEDING = 57792 -const FOLLOWING = 57793 -const GROUPS = 57794 -const DATABASES = 57795 -const TABLES = 57796 -const SEQUENCES = 57797 -const EXTENDED = 57798 -const FULL = 57799 -const PROCESSLIST = 57800 -const FIELDS = 57801 -const COLUMNS = 57802 -const OPEN = 57803 -const ERRORS = 57804 -const WARNINGS = 57805 -const INDEXES = 57806 -const SCHEMAS = 57807 -const NODE = 57808 -const LOCKS = 57809 -const ROLES = 57810 -const TABLE_NUMBER = 57811 -const COLUMN_NUMBER = 57812 -const TABLE_VALUES = 57813 -const TABLE_SIZE = 57814 -const NAMES = 57815 -const GLOBAL = 57816 -const PERSIST = 57817 -const SESSION = 57818 -const ISOLATION = 57819 -const LEVEL = 57820 -const READ = 57821 -const WRITE = 57822 -const ONLY = 57823 -const REPEATABLE = 57824 -const COMMITTED = 57825 -const UNCOMMITTED = 57826 -const SERIALIZABLE = 57827 -const LOCAL = 57828 -const EVENTS = 57829 -const PLUGINS = 57830 -const CURRENT_TIMESTAMP = 57831 -const DATABASE = 57832 -const CURRENT_TIME = 57833 -const LOCALTIME = 57834 -const LOCALTIMESTAMP = 57835 -const UTC_DATE = 57836 -const UTC_TIME = 57837 -const UTC_TIMESTAMP = 57838 -const REPLACE = 57839 -const CONVERT = 57840 -const SEPARATOR = 57841 -const TIMESTAMPDIFF = 57842 -const CURRENT_DATE = 57843 -const CURRENT_USER = 57844 -const CURRENT_ROLE = 57845 -const SECOND_MICROSECOND = 57846 -const MINUTE_MICROSECOND = 57847 -const MINUTE_SECOND = 57848 -const HOUR_MICROSECOND = 57849 -const HOUR_SECOND = 57850 -const HOUR_MINUTE = 57851 -const DAY_MICROSECOND = 57852 -const DAY_SECOND = 57853 -const DAY_MINUTE = 57854 -const DAY_HOUR = 57855 -const YEAR_MONTH = 57856 -const SQL_TSI_HOUR = 57857 -const SQL_TSI_DAY = 57858 -const SQL_TSI_WEEK = 57859 -const SQL_TSI_MONTH = 57860 -const SQL_TSI_QUARTER = 57861 -const SQL_TSI_YEAR = 57862 -const SQL_TSI_SECOND = 57863 -const SQL_TSI_MINUTE = 57864 -const RECURSIVE = 57865 -const CONFIG = 57866 -const DRAINER = 57867 -const SOURCE = 57868 -const STREAM = 57869 -const HEADERS = 57870 -const CONNECTOR = 57871 -const CONNECTORS = 57872 -const DAEMON = 57873 -const PAUSE = 57874 -const CANCEL = 57875 -const TASK = 57876 -const RESUME = 57877 -const MATCH = 57878 -const AGAINST = 57879 -const BOOLEAN = 57880 -const LANGUAGE = 57881 -const WITH = 57882 -const QUERY = 57883 -const EXPANSION = 57884 -const WITHOUT = 57885 -const VALIDATION = 57886 -const UPGRADE = 57887 -const RETRY = 57888 -const ADDDATE = 57889 -const BIT_AND = 57890 -const BIT_OR = 57891 -const BIT_XOR = 57892 -const CAST = 57893 -const COUNT = 57894 -const APPROX_COUNT = 57895 -const APPROX_COUNT_DISTINCT = 57896 -const SERIAL_EXTRACT = 57897 -const APPROX_PERCENTILE = 57898 -const CURDATE = 57899 -const CURTIME = 57900 -const DATE_ADD = 57901 -const DATE_SUB = 57902 -const EXTRACT = 57903 -const GROUP_CONCAT = 57904 -const MAX = 57905 -const MID = 57906 -const MIN = 57907 -const NOW = 57908 -const POSITION = 57909 -const SESSION_USER = 57910 -const STD = 57911 -const STDDEV = 57912 -const MEDIAN = 57913 -const CLUSTER_CENTERS = 57914 -const KMEANS = 57915 -const STDDEV_POP = 57916 -const STDDEV_SAMP = 57917 -const SUBDATE = 57918 -const SUBSTR = 57919 -const SUBSTRING = 57920 -const SUM = 57921 -const SYSDATE = 57922 -const SYSTEM_USER = 57923 -const TRANSLATE = 57924 -const TRIM = 57925 -const VARIANCE = 57926 -const VAR_POP = 57927 -const VAR_SAMP = 57928 -const AVG = 57929 -const RANK = 57930 -const ROW_NUMBER = 57931 -const DENSE_RANK = 57932 -const BIT_CAST = 57933 -const BITMAP_BIT_POSITION = 57934 -const BITMAP_BUCKET_NUMBER = 57935 -const BITMAP_COUNT = 57936 -const BITMAP_CONSTRUCT_AGG = 57937 -const BITMAP_OR_AGG = 57938 -const NEXTVAL = 57939 -const SETVAL = 57940 -const CURRVAL = 57941 -const LASTVAL = 57942 -const ARROW = 57943 -const ROW = 57944 -const OUTFILE = 57945 -const HEADER = 57946 -const MAX_FILE_SIZE = 57947 -const FORCE_QUOTE = 57948 -const PARALLEL = 57949 -const STRICT = 57950 -const UNUSED = 57951 -const BINDINGS = 57952 -const DO = 57953 -const DECLARE = 57954 -const LOOP = 57955 -const WHILE = 57956 -const LEAVE = 57957 -const ITERATE = 57958 -const UNTIL = 57959 -const CALL = 57960 -const PREV = 57961 -const SLIDING = 57962 -const FILL = 57963 -const SPBEGIN = 57964 -const BACKEND = 57965 -const SERVERS = 57966 -const HANDLER = 57967 -const PERCENT = 57968 -const SAMPLE = 57969 -const MO_TS = 57970 -const PITR = 57971 -const RECOVERY_WINDOW = 57972 -const INTERNAL = 57973 -const CDC = 57974 -const GROUPING = 57975 -const SETS = 57976 -const CUBE = 57977 -const ROLLUP = 57978 -const LOGSERVICE = 57979 -const REPLICAS = 57980 -const STORES = 57981 -const SETTINGS = 57982 -const KILL = 57983 -const BACKUP = 57984 -const FILESYSTEM = 57985 -const PARALLELISM = 57986 -const RESTORE = 57987 -const QUERY_RESULT = 57988 +const ASYNC = 57688 +const EXPIRE = 57689 +const ACCOUNT = 57690 +const ACCOUNTS = 57691 +const UNLOCK = 57692 +const DAY = 57693 +const NEVER = 57694 +const PUMP = 57695 +const MYSQL_COMPATIBILITY_MODE = 57696 +const UNIQUE_CHECK_ON_AUTOINCR = 57697 +const MODIFY = 57698 +const CHANGE = 57699 +const SECOND = 57700 +const ASCII = 57701 +const COALESCE = 57702 +const COLLATION = 57703 +const HOUR = 57704 +const MICROSECOND = 57705 +const MINUTE = 57706 +const MONTH = 57707 +const QUARTER = 57708 +const REPEAT = 57709 +const REVERSE = 57710 +const ROW_COUNT = 57711 +const WEEK = 57712 +const REVOKE = 57713 +const FUNCTION = 57714 +const PRIVILEGES = 57715 +const TABLESPACE = 57716 +const EXECUTE = 57717 +const SUPER = 57718 +const GRANT = 57719 +const OPTION = 57720 +const REFERENCES = 57721 +const REPLICATION = 57722 +const SLAVE = 57723 +const CLIENT = 57724 +const USAGE = 57725 +const RELOAD = 57726 +const FILE = 57727 +const TEMPORARY = 57728 +const ROUTINE = 57729 +const EVENT = 57730 +const SHUTDOWN = 57731 +const NULLX = 57732 +const AUTO_INCREMENT = 57733 +const APPROXNUM = 57734 +const SIGNED = 57735 +const UNSIGNED = 57736 +const ZEROFILL = 57737 +const ENGINES = 57738 +const LOW_CARDINALITY = 57739 +const AUTOEXTEND_SIZE = 57740 +const ADMIN_NAME = 57741 +const RANDOM = 57742 +const SUSPEND = 57743 +const ATTRIBUTE = 57744 +const HISTORY = 57745 +const REUSE = 57746 +const CURRENT = 57747 +const OPTIONAL = 57748 +const FAILED_LOGIN_ATTEMPTS = 57749 +const PASSWORD_LOCK_TIME = 57750 +const UNBOUNDED = 57751 +const SECONDARY = 57752 +const RESTRICTED = 57753 +const USER = 57754 +const IDENTIFIED = 57755 +const CIPHER = 57756 +const ISSUER = 57757 +const X509 = 57758 +const SUBJECT = 57759 +const SAN = 57760 +const REQUIRE = 57761 +const SSL = 57762 +const NONE = 57763 +const PASSWORD = 57764 +const SHARED = 57765 +const EXCLUSIVE = 57766 +const MAX_QUERIES_PER_HOUR = 57767 +const MAX_UPDATES_PER_HOUR = 57768 +const MAX_CONNECTIONS_PER_HOUR = 57769 +const MAX_USER_CONNECTIONS = 57770 +const FORMAT = 57771 +const VERBOSE = 57772 +const CONNECTION = 57773 +const TRIGGERS = 57774 +const PROFILES = 57775 +const LOAD = 57776 +const INLINE = 57777 +const INFILE = 57778 +const TERMINATED = 57779 +const OPTIONALLY = 57780 +const ENCLOSED = 57781 +const ESCAPED = 57782 +const STARTING = 57783 +const LINES = 57784 +const ROWS = 57785 +const IMPORT = 57786 +const DISCARD = 57787 +const JSONTYPE = 57788 +const MODUMP = 57789 +const OVER = 57790 +const PRECEDING = 57791 +const FOLLOWING = 57792 +const GROUPS = 57793 +const DATABASES = 57794 +const TABLES = 57795 +const SEQUENCES = 57796 +const EXTENDED = 57797 +const FULL = 57798 +const PROCESSLIST = 57799 +const FIELDS = 57800 +const COLUMNS = 57801 +const OPEN = 57802 +const ERRORS = 57803 +const WARNINGS = 57804 +const INDEXES = 57805 +const SCHEMAS = 57806 +const NODE = 57807 +const LOCKS = 57808 +const ROLES = 57809 +const TABLE_NUMBER = 57810 +const COLUMN_NUMBER = 57811 +const TABLE_VALUES = 57812 +const TABLE_SIZE = 57813 +const NAMES = 57814 +const GLOBAL = 57815 +const PERSIST = 57816 +const SESSION = 57817 +const ISOLATION = 57818 +const LEVEL = 57819 +const READ = 57820 +const WRITE = 57821 +const ONLY = 57822 +const REPEATABLE = 57823 +const COMMITTED = 57824 +const UNCOMMITTED = 57825 +const SERIALIZABLE = 57826 +const LOCAL = 57827 +const EVENTS = 57828 +const PLUGINS = 57829 +const CURRENT_TIMESTAMP = 57830 +const DATABASE = 57831 +const CURRENT_TIME = 57832 +const LOCALTIME = 57833 +const LOCALTIMESTAMP = 57834 +const UTC_DATE = 57835 +const UTC_TIME = 57836 +const UTC_TIMESTAMP = 57837 +const REPLACE = 57838 +const CONVERT = 57839 +const SEPARATOR = 57840 +const TIMESTAMPDIFF = 57841 +const CURRENT_DATE = 57842 +const CURRENT_USER = 57843 +const CURRENT_ROLE = 57844 +const SECOND_MICROSECOND = 57845 +const MINUTE_MICROSECOND = 57846 +const MINUTE_SECOND = 57847 +const HOUR_MICROSECOND = 57848 +const HOUR_SECOND = 57849 +const HOUR_MINUTE = 57850 +const DAY_MICROSECOND = 57851 +const DAY_SECOND = 57852 +const DAY_MINUTE = 57853 +const DAY_HOUR = 57854 +const YEAR_MONTH = 57855 +const SQL_TSI_HOUR = 57856 +const SQL_TSI_DAY = 57857 +const SQL_TSI_WEEK = 57858 +const SQL_TSI_MONTH = 57859 +const SQL_TSI_QUARTER = 57860 +const SQL_TSI_YEAR = 57861 +const SQL_TSI_SECOND = 57862 +const SQL_TSI_MINUTE = 57863 +const RECURSIVE = 57864 +const CONFIG = 57865 +const DRAINER = 57866 +const SOURCE = 57867 +const STREAM = 57868 +const HEADERS = 57869 +const CONNECTOR = 57870 +const CONNECTORS = 57871 +const DAEMON = 57872 +const PAUSE = 57873 +const CANCEL = 57874 +const TASK = 57875 +const RESUME = 57876 +const MATCH = 57877 +const AGAINST = 57878 +const BOOLEAN = 57879 +const LANGUAGE = 57880 +const WITH = 57881 +const QUERY = 57882 +const EXPANSION = 57883 +const WITHOUT = 57884 +const VALIDATION = 57885 +const UPGRADE = 57886 +const RETRY = 57887 +const ADDDATE = 57888 +const BIT_AND = 57889 +const BIT_OR = 57890 +const BIT_XOR = 57891 +const CAST = 57892 +const COUNT = 57893 +const APPROX_COUNT = 57894 +const APPROX_COUNT_DISTINCT = 57895 +const SERIAL_EXTRACT = 57896 +const APPROX_PERCENTILE = 57897 +const CURDATE = 57898 +const CURTIME = 57899 +const DATE_ADD = 57900 +const DATE_SUB = 57901 +const EXTRACT = 57902 +const GROUP_CONCAT = 57903 +const MAX = 57904 +const MID = 57905 +const MIN = 57906 +const NOW = 57907 +const POSITION = 57908 +const SESSION_USER = 57909 +const STD = 57910 +const STDDEV = 57911 +const MEDIAN = 57912 +const CLUSTER_CENTERS = 57913 +const KMEANS = 57914 +const STDDEV_POP = 57915 +const STDDEV_SAMP = 57916 +const SUBDATE = 57917 +const SUBSTR = 57918 +const SUBSTRING = 57919 +const SUM = 57920 +const SYSDATE = 57921 +const SYSTEM_USER = 57922 +const TRANSLATE = 57923 +const TRIM = 57924 +const VARIANCE = 57925 +const VAR_POP = 57926 +const VAR_SAMP = 57927 +const AVG = 57928 +const RANK = 57929 +const ROW_NUMBER = 57930 +const DENSE_RANK = 57931 +const BIT_CAST = 57932 +const BITMAP_BIT_POSITION = 57933 +const BITMAP_BUCKET_NUMBER = 57934 +const BITMAP_COUNT = 57935 +const BITMAP_CONSTRUCT_AGG = 57936 +const BITMAP_OR_AGG = 57937 +const NEXTVAL = 57938 +const SETVAL = 57939 +const CURRVAL = 57940 +const LASTVAL = 57941 +const ARROW = 57942 +const ROW = 57943 +const OUTFILE = 57944 +const HEADER = 57945 +const MAX_FILE_SIZE = 57946 +const FORCE_QUOTE = 57947 +const PARALLEL = 57948 +const STRICT = 57949 +const UNUSED = 57950 +const BINDINGS = 57951 +const DO = 57952 +const DECLARE = 57953 +const LOOP = 57954 +const WHILE = 57955 +const LEAVE = 57956 +const ITERATE = 57957 +const UNTIL = 57958 +const CALL = 57959 +const PREV = 57960 +const SLIDING = 57961 +const FILL = 57962 +const SPBEGIN = 57963 +const BACKEND = 57964 +const SERVERS = 57965 +const HANDLER = 57966 +const PERCENT = 57967 +const SAMPLE = 57968 +const MO_TS = 57969 +const PITR = 57970 +const RECOVERY_WINDOW = 57971 +const INTERNAL = 57972 +const CDC = 57973 +const GROUPING = 57974 +const SETS = 57975 +const CUBE = 57976 +const ROLLUP = 57977 +const LOGSERVICE = 57978 +const REPLICAS = 57979 +const STORES = 57980 +const SETTINGS = 57981 +const KILL = 57982 +const BACKUP = 57983 +const FILESYSTEM = 57984 +const PARALLELISM = 57985 +const RESTORE = 57986 +const QUERY_RESULT = 57987 var yyToknames = [...]string{ "$end", @@ -1026,7 +1025,6 @@ var yyToknames = [...]string{ "EF_SEARCH", "EF_CONSTRUCTION", "M", - "QUANTIZATION", "ASYNC", "EXPIRE", "ACCOUNT", @@ -1340,7 +1338,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line mysql_sql.y:13046 +//line mysql_sql.y:13037 //line yacctab:1 var yyExca = [...]int{ @@ -1352,5977 +1350,5995 @@ var yyExca = [...]int{ 22, 814, -2, 807, -1, 167, - 246, 1257, + 246, 1256, 248, 1144, - -2, 1201, + -2, 1200, -1, 194, 44, 637, 248, 637, 275, 644, 276, 644, - 481, 637, + 480, 637, -2, 672, -1, 234, - 667, 2035, + 666, 2033, -2, 536, - -1, 549, - 667, 2159, + -1, 548, + 666, 2157, -2, 413, - -1, 607, - 667, 2218, + -1, 606, + 666, 2216, -2, 411, - -1, 608, - 667, 2219, + -1, 607, + 666, 2217, -2, 412, - -1, 609, - 667, 2220, + -1, 608, + 666, 2218, -2, 414, - -1, 750, + -1, 749, 327, 181, + 452, 181, 453, 181, - 454, 181, - -2, 1932, + -2, 1931, + -1, 816, + 86, 1715, + -2, 2093, -1, 817, - 86, 1716, - -2, 2095, - -1, 818, + 86, 1734, + -2, 2064, + -1, 821, 86, 1735, - -2, 2066, - -1, 822, - 86, 1736, - -2, 2094, + -2, 2092, + -1, 855, + 86, 1642, + -2, 2297, -1, 856, 86, 1643, - -2, 2299, + -2, 2296, -1, 857, 86, 1644, - -2, 2298, + -2, 2286, -1, 858, - 86, 1645, - -2, 2288, + 86, 2258, + -2, 2279, -1, 859, - 86, 2260, - -2, 2281, + 86, 2259, + -2, 2280, -1, 860, - 86, 2261, - -2, 2282, + 86, 2260, + -2, 2288, -1, 861, - 86, 2262, - -2, 2290, + 86, 2261, + -2, 2268, -1, 862, - 86, 2263, - -2, 2270, + 86, 2262, + -2, 2277, -1, 863, - 86, 2264, - -2, 2279, + 86, 2263, + -2, 2289, -1, 864, - 86, 2265, - -2, 2291, + 86, 2264, + -2, 2290, -1, 865, - 86, 2266, - -2, 2292, + 86, 2265, + -2, 2295, -1, 866, - 86, 2267, - -2, 2297, + 86, 2266, + -2, 2300, -1, 867, - 86, 2268, - -2, 2302, + 86, 2267, + -2, 2301, -1, 868, - 86, 2269, - -2, 2303, + 86, 1711, + -2, 2131, -1, 869, 86, 1712, - -2, 2133, + -2, 1915, -1, 870, 86, 1713, - -2, 1916, + -2, 2140, -1, 871, 86, 1714, - -2, 2142, - -1, 872, - 86, 1715, - -2, 1925, - -1, 874, - 86, 1718, - -2, 1933, - -1, 876, - 86, 1720, - -2, 2166, - -1, 878, - 86, 1723, - -2, 1954, + -2, 1924, + -1, 873, + 86, 1717, + -2, 1932, + -1, 875, + 86, 1719, + -2, 2164, + -1, 877, + 86, 1722, + -2, 1953, + -1, 879, + 86, 1724, + -2, 2176, -1, 880, 86, 1725, - -2, 2178, + -2, 2175, -1, 881, 86, 1726, - -2, 2177, + -2, 2000, -1, 882, 86, 1727, - -2, 2001, - -1, 883, - 86, 1728, - -2, 2090, - -1, 886, - 86, 1731, - -2, 2189, + -2, 2088, + -1, 885, + 86, 1730, + -2, 2187, + -1, 887, + 86, 1732, + -2, 2190, -1, 888, 86, 1733, -2, 2192, -1, 889, - 86, 1734, - -2, 2194, + 86, 1736, + -2, 2200, -1, 890, 86, 1737, - -2, 2202, + -2, 2073, -1, 891, 86, 1738, - -2, 2075, + -2, 2118, -1, 892, 86, 1739, - -2, 2120, + -2, 2083, -1, 893, 86, 1740, - -2, 2085, - -1, 894, - 86, 1741, - -2, 2110, + -2, 2108, + -1, 904, + 86, 1620, + -2, 2291, -1, 905, 86, 1621, - -2, 2293, + -2, 2292, -1, 906, 86, 1622, - -2, 2294, - -1, 907, - 86, 1623, - -2, 2295, - -1, 1011, + -2, 2293, + -1, 1010, + 475, 672, 476, 672, - 477, 672, -2, 638, - -1, 1062, - 128, 1916, - 139, 1916, - 159, 1916, - -2, 1889, - -1, 1183, + -1, 1061, + 128, 1915, + 139, 1915, + 159, 1915, + -2, 1888, + -1, 1182, 22, 841, -2, 790, - -1, 1293, + -1, 1292, 11, 814, 22, 814, - -2, 1498, - -1, 1377, + -2, 1497, + -1, 1376, 22, 841, -2, 790, + -1, 1736, + 86, 1787, + -2, 2090, -1, 1737, 86, 1788, - -2, 2092, - -1, 1738, - 86, 1789, - -2, 2093, - -1, 2347, + -2, 2091, + -1, 2346, 87, 1014, -2, 1020, - -1, 2363, - 111, 1193, - 155, 1193, - 195, 1193, - 198, 1193, - 288, 1193, - -2, 1186, - -1, 2528, + -1, 2362, + 111, 1192, + 155, 1192, + 195, 1192, + 198, 1192, + 288, 1192, + -2, 1185, + -1, 2527, 11, 814, 22, 814, -2, 955, + -1, 2561, + 87, 1874, + 160, 1874, + -2, 2075, -1, 2562, - 87, 1875, - 160, 1875, - -2, 2077, + 87, 1874, + 160, 1874, + -2, 2074, -1, 2563, - 87, 1875, - 160, 1875, - -2, 2076, + 87, 1850, + 160, 1850, + -2, 2061, -1, 2564, 87, 1851, 160, 1851, - -2, 2063, + -2, 2066, -1, 2565, 87, 1852, 160, 1852, - -2, 2068, + -2, 1988, -1, 2566, 87, 1853, 160, 1853, - -2, 1989, + -2, 1981, -1, 2567, 87, 1854, 160, 1854, - -2, 1982, + -2, 1905, -1, 2568, 87, 1855, 160, 1855, - -2, 1906, + -2, 2063, -1, 2569, 87, 1856, 160, 1856, - -2, 2065, + -2, 1986, -1, 2570, 87, 1857, 160, 1857, - -2, 1987, + -2, 1980, -1, 2571, 87, 1858, 160, 1858, - -2, 1981, + -2, 1968, -1, 2572, - 87, 1859, - 160, 1859, + 87, 1874, + 160, 1874, -2, 1969, -1, 2573, - 87, 1875, - 160, 1875, + 87, 1874, + 160, 1874, -2, 1970, - -1, 2574, - 87, 1875, - 160, 1875, - -2, 1971, + -1, 2575, + 87, 1863, + 160, 1863, + -2, 2108, -1, 2576, - 87, 1864, - 160, 1864, - -2, 2110, + 87, 1840, + 160, 1840, + -2, 2093, -1, 2577, - 87, 1841, - 160, 1841, - -2, 2095, + 87, 1872, + 160, 1872, + -2, 2064, -1, 2578, - 87, 1873, - 160, 1873, - -2, 2066, + 87, 1872, + 160, 1872, + -2, 2092, -1, 2579, - 87, 1873, - 160, 1873, - -2, 2094, + 87, 1872, + 160, 1872, + -2, 1933, -1, 2580, - 87, 1873, - 160, 1873, - -2, 1934, + 87, 1870, + 160, 1870, + -2, 2083, -1, 2581, - 87, 1871, - 160, 1871, - -2, 2085, + 87, 1867, + 160, 1867, + -2, 1958, -1, 2582, - 87, 1868, - 160, 1868, - -2, 1959, + 86, 1821, + 87, 1821, + 160, 1821, + 410, 1821, + 411, 1821, + 412, 1821, + -2, 1904, -1, 2583, 86, 1822, 87, 1822, 160, 1822, + 410, 1822, 411, 1822, 412, 1822, - 413, 1822, - -2, 1905, + -2, 1906, -1, 2584, 86, 1823, 87, 1823, 160, 1823, + 410, 1823, 411, 1823, 412, 1823, - 413, 1823, - -2, 1907, + -2, 2136, -1, 2585, - 86, 1824, - 87, 1824, - 160, 1824, - 411, 1824, - 412, 1824, - 413, 1824, - -2, 2138, + 86, 1825, + 87, 1825, + 160, 1825, + 410, 1825, + 411, 1825, + 412, 1825, + -2, 2065, -1, 2586, - 86, 1826, - 87, 1826, - 160, 1826, - 411, 1826, - 412, 1826, - 413, 1826, - -2, 2067, + 86, 1827, + 87, 1827, + 160, 1827, + 410, 1827, + 411, 1827, + 412, 1827, + -2, 2043, -1, 2587, - 86, 1828, - 87, 1828, - 160, 1828, - 411, 1828, - 412, 1828, - 413, 1828, - -2, 2045, + 86, 1829, + 87, 1829, + 160, 1829, + 410, 1829, + 411, 1829, + 412, 1829, + -2, 1987, -1, 2588, - 86, 1830, - 87, 1830, - 160, 1830, - 411, 1830, - 412, 1830, - 413, 1830, - -2, 1988, + 86, 1831, + 87, 1831, + 160, 1831, + 410, 1831, + 411, 1831, + 412, 1831, + -2, 1964, -1, 2589, 86, 1832, 87, 1832, 160, 1832, + 410, 1832, 411, 1832, 412, 1832, - 413, 1832, -2, 1965, -1, 2590, - 86, 1833, - 87, 1833, - 160, 1833, - 411, 1833, - 412, 1833, - 413, 1833, - -2, 1966, + 86, 1834, + 87, 1834, + 160, 1834, + 410, 1834, + 411, 1834, + 412, 1834, + -2, 1903, -1, 2591, - 86, 1835, - 87, 1835, - 160, 1835, - 411, 1835, - 412, 1835, - 413, 1835, - -2, 1904, + 87, 1877, + 160, 1877, + 410, 1877, + 411, 1877, + 412, 1877, + -2, 1938, -1, 2592, - 87, 1878, - 160, 1878, - 411, 1878, - 412, 1878, - 413, 1878, - -2, 1939, + 87, 1877, + 160, 1877, + 410, 1877, + 411, 1877, + 412, 1877, + -2, 1954, -1, 2593, - 87, 1878, - 160, 1878, - 411, 1878, - 412, 1878, - 413, 1878, - -2, 1955, + 87, 1880, + 160, 1880, + 410, 1880, + 411, 1880, + 412, 1880, + -2, 1934, -1, 2594, - 87, 1881, - 160, 1881, - 411, 1881, - 412, 1881, - 413, 1881, - -2, 1935, + 87, 1880, + 160, 1880, + 410, 1880, + 411, 1880, + 412, 1880, + -2, 2003, -1, 2595, - 87, 1881, - 160, 1881, - 411, 1881, - 412, 1881, - 413, 1881, - -2, 2004, - -1, 2596, - 87, 1878, - 160, 1878, - 411, 1878, - 412, 1878, - 413, 1878, - -2, 2027, - -1, 2823, - 111, 1193, - 155, 1193, - 195, 1193, - 198, 1193, - 288, 1193, - -2, 1187, - -1, 2843, + 87, 1877, + 160, 1877, + 410, 1877, + 411, 1877, + 412, 1877, + -2, 2025, + -1, 2822, + 111, 1192, + 155, 1192, + 195, 1192, + 198, 1192, + 288, 1192, + -2, 1186, + -1, 2842, 84, 734, 160, 734, - -2, 1372, - -1, 3276, - 198, 1193, - 312, 1461, - -2, 1433, - -1, 3470, - 111, 1193, - 155, 1193, - 195, 1193, - 198, 1193, - -2, 1313, - -1, 3473, - 111, 1193, - 155, 1193, - 195, 1193, - 198, 1193, - -2, 1313, - -1, 3485, + -2, 1371, + -1, 3275, + 198, 1192, + 312, 1460, + -2, 1432, + -1, 3469, + 111, 1192, + 155, 1192, + 195, 1192, + 198, 1192, + -2, 1312, + -1, 3472, + 111, 1192, + 155, 1192, + 195, 1192, + 198, 1192, + -2, 1312, + -1, 3484, 84, 734, 160, 734, - -2, 1372, - -1, 3506, - 198, 1193, - 312, 1461, - -2, 1434, - -1, 3663, - 111, 1193, - 155, 1193, - 195, 1193, - 198, 1193, - -2, 1314, - -1, 3690, - 87, 1275, - 160, 1275, - -2, 1193, - -1, 3840, - 87, 1275, - 160, 1275, - -2, 1193, - -1, 4014, + -2, 1371, + -1, 3505, + 198, 1192, + 312, 1460, + -2, 1433, + -1, 3662, + 111, 1192, + 155, 1192, + 195, 1192, + 198, 1192, + -2, 1313, + -1, 3689, + 87, 1274, + 160, 1274, + -2, 1192, + -1, 3839, + 87, 1274, + 160, 1274, + -2, 1192, + -1, 4012, + 87, 1278, + 160, 1278, + -2, 1192, + -1, 4067, 87, 1279, 160, 1279, - -2, 1193, - -1, 4070, - 87, 1280, - 160, 1280, - -2, 1193, + -2, 1192, } const yyPrivate = 57344 -const yyLast = 55024 +const yyLast = 55192 var yyAct = [...]int{ - 784, 2874, 786, 760, 4124, 4092, 223, 4116, 1638, 4018, - 2001, 1717, 4024, 3491, 4025, 3296, 3590, 3909, 3840, 4017, - 3932, 3262, 769, 2112, 3887, 3967, 3718, 3372, 3520, 3818, - 3783, 762, 2868, 3878, 1329, 3373, 3839, 3650, 3910, 3752, - 814, 1777, 2780, 2871, 1061, 3808, 650, 3594, 3451, 1184, - 1482, 3888, 1946, 1488, 3665, 1764, 37, 3890, 3585, 3456, - 2414, 3507, 3671, 668, 2846, 674, 674, 3660, 3271, 1720, - 3232, 674, 692, 701, 2560, 3217, 701, 3632, 2987, 208, - 3193, 1713, 3474, 3370, 2988, 2986, 3220, 1550, 3443, 2096, - 2099, 2964, 2897, 3291, 2061, 68, 3476, 2522, 2137, 2114, - 3280, 3273, 2983, 3415, 2785, 2558, 2687, 3056, 1782, 3016, - 3335, 2417, 2169, 1178, 2211, 2811, 3200, 2974, 2652, 1961, - 3196, 3198, 2375, 2070, 3194, 3195, 2824, 709, 698, 1174, - 3242, 2325, 141, 1543, 3279, 3164, 757, 2324, 713, 752, - 3104, 1457, 36, 2207, 1639, 2195, 3030, 1779, 2630, 2178, - 1627, 2177, 1623, 942, 1875, 1628, 2612, 2170, 2142, 2206, - 2092, 1631, 2523, 1447, 2506, 3191, 2065, 2899, 2800, 2795, - 982, 2501, 2879, 2415, 1991, 6, 2838, 2374, 1491, 219, - 8, 218, 7, 1922, 2363, 2556, 1778, 1055, 673, 673, - 1616, 2062, 1711, 1122, 681, 761, 2208, 1660, 1590, 650, - 667, 1522, 1528, 2354, 751, 1960, 759, 1771, 1453, 1751, - 1559, 2724, 1716, 1702, 2241, 1471, 2176, 1200, 2357, 2173, - 1642, 15, 2410, 223, 2158, 223, 770, 1113, 1114, 1597, - 23, 706, 1710, 649, 674, 1054, 1527, 1918, 1921, 1020, - 2530, 981, 683, 2502, 1524, 27, 1581, 909, 1783, 715, - 209, 1483, 24, 33, 716, 1093, 700, 1399, 25, 17, - 201, 958, 686, 1330, 1006, 205, 979, 964, 10, 712, - 3897, 3804, 1467, 1375, 670, 911, 2447, 16, 1261, 1262, - 1263, 1260, 2760, 2215, 753, 2760, 2532, 2760, 912, 1110, - 3381, 3488, 2723, 696, 1261, 1262, 1263, 1260, 1070, 3073, - 3072, 3249, 1109, 972, 1111, 973, 1261, 1262, 1263, 1260, - 2225, 1179, 3621, 3459, 3365, 1180, 2675, 697, 2615, 1888, - 1604, 2618, 1106, 207, 2616, 694, 669, 2323, 1600, 679, - 1105, 14, 704, 2613, 1088, 1067, 1394, 1414, 1492, 1526, - 675, 3865, 1368, 931, 953, 1069, 1040, 929, 1106, 693, - 1106, 1450, 1451, 1452, 2113, 3174, 2329, 681, 967, 1179, - 963, 1889, 2333, 1397, 3157, 3154, 1653, 3159, 3156, 4104, - 1505, 1882, 1390, 1602, 2752, 2750, 1261, 1262, 1263, 1260, - 3583, 753, 3052, 1104, 3050, 2147, 3873, 8, 3759, 7, - 1261, 1262, 1263, 1260, 3753, 3586, 3371, 2192, 1324, 3892, - 2172, 910, 3133, 695, 2164, 206, 1089, 2455, 4130, 3886, - 921, 4101, 3767, 1259, 1223, 3600, 945, 3825, 2754, 1405, - 3637, 2661, 4053, 2212, 3633, 206, 206, 3995, 3475, 2366, - 2365, 1637, 3884, 206, 3791, 206, 64, 197, 168, 3765, - 2669, 758, 3434, 2705, 930, 3943, 1567, 1404, 928, 2831, - 1403, 1402, 206, 931, 140, 206, 64, 197, 168, 929, - 1400, 3826, 1071, 206, 64, 197, 168, 711, 206, 206, - 3131, 1646, 1439, 2223, 3076, 2981, 1501, 1065, 202, 1502, - 1406, 1083, 1078, 1073, 1077, 1081, 206, 64, 197, 168, - 1066, 969, 1891, 962, 1035, 1033, 206, 1034, 202, 2829, - 1651, 1643, 966, 965, 2358, 198, 202, 2550, 202, 1086, - 1954, 1258, 189, 1076, 1422, 1658, 199, 3064, 140, 922, - 3024, 3025, 1650, 954, 926, 1645, 2779, 2537, 202, 2775, - 2536, 2551, 855, 2538, 1683, 140, 202, 2109, 1420, 2076, - 2077, 202, 202, 961, 3023, 1655, 3158, 3155, 2075, 2832, - 126, 206, 64, 197, 168, 3793, 1900, 1901, 1529, 202, - 1531, 2631, 971, 1479, 1084, 1029, 2797, 960, 1504, 1657, - 1975, 959, 1489, 1490, 1087, 1719, 2798, 947, 206, 64, - 197, 168, 3895, 3610, 952, 900, 1041, 899, 901, 902, - 3992, 903, 904, 1251, 3266, 206, 64, 197, 168, 4028, - 4029, 2777, 1074, 4052, 2772, 1487, 1256, 1064, 1063, 1486, - 1489, 1490, 950, 3264, 1037, 3894, 1195, 3893, 1603, 1601, - 3895, 3981, 3894, 3980, 202, 2796, 1085, 2312, 2755, 3988, - 1952, 4096, 4097, 1203, 1206, 3876, 148, 149, 3057, 150, - 151, 3893, 3979, 1669, 152, 3972, 2776, 153, 1723, 2773, - 970, 202, 3374, 3969, 2919, 1421, 3969, 1817, 3756, 3058, - 1192, 3059, 2656, 1198, 3374, 1189, 1075, 2227, 202, 1203, - 1206, 3906, 674, 674, 3997, 3998, 951, 2803, 1039, 167, - 195, 204, 196, 674, 1188, 3388, 3444, 2083, 3993, 3994, - 2093, 4001, 4000, 3999, 4002, 4003, 3879, 3880, 3881, 3882, - 1698, 2496, 194, 701, 701, 2219, 674, 3449, 3211, 2975, - 167, 195, 204, 196, 124, 3642, 3775, 3213, 3776, 2489, - 3795, 3796, 2353, 1116, 3094, 2782, 2155, 970, 1238, 3532, - 3609, 1239, 3990, 194, 188, 187, 2224, 1503, 3611, 193, - 70, 1254, 1255, 1082, 698, 698, 698, 2834, 1610, 1609, - 2753, 3092, 1253, 968, 2666, 1038, 1515, 1703, 2453, 1241, - 1707, 1226, 3584, 4027, 3208, 3209, 3051, 1477, 1393, 1301, - 2969, 1953, 3778, 2491, 1722, 1721, 3896, 3803, 3800, 1079, - 3210, 3207, 1080, 3639, 1706, 3218, 1070, 2778, 3391, 2553, - 2774, 3098, 957, 2759, 3547, 673, 1177, 1180, 3666, 2107, - 2108, 190, 191, 192, 3777, 1181, 1186, 1180, 1423, 3656, - 3746, 2213, 2492, 2493, 1249, 1250, 1188, 1180, 2213, 3419, - 2213, 3292, 3293, 1067, 2499, 1248, 666, 3544, 924, 1214, - 3074, 1187, 2330, 1069, 3601, 4061, 3294, 1890, 3295, 1205, - 1204, 200, 3268, 3230, 2839, 3830, 3071, 1333, 1236, 1218, - 3243, 3925, 3920, 1106, 2230, 2232, 2233, 2087, 2246, 1070, - 1106, 2214, 136, 1106, 3822, 1180, 193, 1106, 137, 1106, - 1197, 1106, 3824, 925, 699, 1205, 1204, 1708, 703, 702, - 2979, 2360, 1090, 2226, 3537, 1072, 1231, 2365, 3996, 1233, - 2614, 2910, 946, 3165, 1036, 944, 1067, 3205, 2911, 2912, - 2913, 1705, 699, 3927, 1605, 3219, 1069, 3747, 1295, 696, - 696, 696, 1237, 747, 3492, 3911, 749, 1234, 3766, 3933, - 3263, 748, 1207, 2873, 3499, 138, 1396, 4136, 1398, 3548, - 2344, 910, 1466, 697, 697, 697, 65, 3789, 63, 3627, - 1410, 694, 694, 694, 1413, 3298, 1176, 2751, 1419, 169, - 1191, 1193, 1196, 3427, 1183, 1182, 3638, 3181, 1373, 1211, - 1212, 1378, 1215, 1334, 65, 693, 693, 693, 1066, 169, - 169, 1297, 1298, 1299, 1300, 1652, 2670, 169, 1401, 169, - 1217, 982, 1892, 2487, 1489, 1490, 1194, 65, 3905, 1240, - 699, 1693, 203, 3709, 1694, 3219, 169, 3794, 1302, 169, - 1478, 3430, 2802, 1489, 1490, 4119, 1227, 169, 3831, 2433, - 3698, 2420, 169, 169, 927, 2413, 2436, 699, 1704, 695, - 695, 695, 146, 203, 2553, 147, 2495, 3823, 2869, 2870, - 169, 2873, 1229, 2976, 699, 61, 674, 3771, 2094, 1517, - 169, 3889, 3214, 674, 1232, 1235, 3797, 650, 650, 2465, - 3095, 2920, 65, 2921, 2922, 3989, 1485, 650, 650, 2806, - 2807, 1554, 1554, 3775, 674, 3776, 1030, 2464, 1243, 3429, - 1228, 1244, 3597, 2435, 2805, 3269, 972, 1209, 973, 65, - 2809, 3770, 2485, 2486, 1539, 701, 1582, 668, 1538, 2219, - 1345, 1346, 1593, 2084, 1216, 169, 65, 3643, 1464, 1246, - 1463, 139, 45, 2231, 3704, 1462, 1699, 223, 62, 3206, - 3227, 3934, 5, 1481, 1480, 1561, 650, 3844, 3477, 3778, - 2434, 3809, 169, 1729, 1732, 1733, 4016, 3272, 3292, 3293, - 1459, 143, 144, 1292, 1730, 145, 1175, 3153, 2948, 169, - 3297, 2456, 1552, 1552, 2413, 2430, 4120, 1230, 3581, 1556, - 1032, 3777, 2419, 1031, 1415, 3377, 711, 2421, 1516, 1512, - 3966, 1525, 3471, 1223, 3464, 3288, 1523, 3169, 1635, 2662, - 2542, 3035, 3036, 1640, 2451, 2216, 3018, 3020, 1379, 2082, - 1649, 2059, 1412, 2914, 1431, 1377, 2423, 1560, 1242, 3326, - 3097, 1437, 1548, 1549, 1436, 1456, 2815, 2819, 2820, 2821, - 2816, 2818, 2817, 1465, 2364, 1435, 1434, 3437, 2765, 1681, - 1475, 2422, 1894, 1684, 3416, 1473, 1474, 1425, 1494, 1495, - 2345, 1497, 1498, 1554, 1499, 1554, 1188, 1247, 1042, 705, - 3711, 1644, 1659, 2917, 1533, 1535, 2228, 2229, 1656, 2646, - 3289, 1449, 2242, 3228, 1546, 1547, 1444, 1446, 3106, 3105, - 3843, 698, 1245, 1222, 698, 698, 936, 976, 977, 978, - 974, 2339, 2338, 2086, 2769, 3700, 2337, 1692, 1424, 3699, - 1070, 1030, 1611, 1493, 2939, 2940, 1496, 1070, 1409, 1903, - 4117, 4118, 1030, 1416, 1417, 1407, 1408, 1583, 1426, 1427, - 1428, 1429, 1430, 1554, 1432, 1506, 1507, 1625, 1626, 1904, - 1438, 943, 3619, 1606, 1537, 3171, 1648, 940, 4015, 932, - 1188, 1781, 938, 937, 1614, 2450, 1617, 1618, 2336, 1630, - 1902, 2424, 1634, 1812, 1813, 1830, 1816, 1633, 1619, 1620, - 1568, 679, 1562, 2477, 1831, 971, 1468, 1472, 1472, 1472, - 1574, 1580, 933, 3705, 3706, 3672, 2844, 1838, 1594, 1840, - 3019, 1841, 1842, 1843, 936, 1032, 4138, 1595, 1031, 2429, - 3976, 1468, 1468, 2427, 1458, 4132, 1032, 1458, 1715, 1031, - 1259, 2520, 1731, 1718, 1765, 3719, 3720, 3721, 3725, 3723, - 3724, 3726, 3722, 2788, 3771, 3332, 4126, 2553, 3772, 939, - 3328, 3378, 1188, 2949, 2951, 2952, 2953, 2950, 1893, 1676, - 1677, 2938, 1896, 1734, 1898, 935, 2789, 2790, 4114, 1696, - 938, 937, 1905, 1907, 1223, 1908, 696, 1910, 1911, 696, - 696, 668, 1582, 1667, 1873, 1815, 1670, 1919, 1554, 1924, - 1925, 4072, 1927, 1517, 674, 1712, 1662, 2766, 2221, 674, - 697, 1895, 1554, 697, 697, 4039, 982, 3290, 694, 1947, - 2633, 694, 694, 2393, 3440, 3248, 1691, 1668, 1043, 4127, - 1671, 1672, 1554, 1690, 1820, 1821, 1822, 1876, 1517, 1686, - 1689, 1709, 693, 692, 1829, 693, 693, 1836, 1714, 1685, - 1837, 4073, 1261, 1262, 1263, 1260, 4036, 2280, 1688, 2845, - 2279, 4030, 1680, 1974, 1185, 1760, 1761, 1850, 1851, 2521, - 4012, 1679, 1981, 1981, 4073, 1517, 2521, 1517, 1517, 3332, - 3390, 674, 674, 1753, 2048, 1919, 2052, 1872, 4040, 1554, - 2056, 2057, 2317, 2255, 3960, 2072, 695, 650, 3129, 695, - 695, 2845, 3959, 2356, 3953, 1261, 1262, 1263, 1260, 1884, - 2661, 650, 1687, 1554, 1261, 1262, 1263, 1260, 1185, 3302, - 1978, 3300, 1928, 1261, 1262, 1263, 1260, 1929, 3928, 4037, - 3187, 3163, 1934, 1259, 2256, 1700, 3161, 2003, 3916, 1926, - 674, 1919, 1554, 4013, 2119, 1879, 674, 674, 674, 709, - 709, 2252, 914, 915, 916, 917, 2129, 2130, 2131, 2132, - 2392, 3863, 2521, 2138, 2136, 1948, 1844, 1259, 3862, 2254, - 223, 2050, 3038, 223, 223, 1259, 223, 2256, 2756, 2651, - 2638, 3857, 2110, 2420, 2423, 2212, 2074, 1966, 3856, 2406, - 2322, 1913, 1874, 3855, 1984, 914, 915, 916, 917, 2316, - 1880, 2221, 710, 1973, 1987, 1988, 1976, 1977, 2102, 2103, - 1923, 3917, 1221, 1259, 1701, 2315, 1830, 1830, 2180, 2287, - 1962, 2355, 1964, 1965, 1939, 3854, 3834, 2203, 1830, 1830, - 2105, 1949, 1950, 1565, 3864, 2197, 1971, 2079, 1914, 2081, - 2058, 2379, 1958, 1959, 1955, 2121, 2122, 2123, 2088, 2146, - 2100, 2101, 2149, 2150, 2256, 2152, 2095, 1944, 1943, 1968, - 1969, 2256, 1967, 2115, 2420, 2423, 2256, 1374, 1947, 2115, - 2115, 2115, 1554, 2210, 1972, 1644, 1101, 1102, 1103, 1979, - 2191, 2118, 1985, 1986, 2073, 1963, 1739, 1740, 1741, 1742, - 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 2256, 2221, - 698, 2055, 1762, 1763, 919, 1957, 3833, 2134, 1445, 3806, - 1100, 1070, 1220, 1097, 1070, 1980, 1982, 754, 3553, 2424, - 2204, 3501, 2049, 1070, 2419, 2413, 2418, 2054, 2416, 2421, - 1915, 1916, 1917, 2182, 1768, 2060, 1540, 4145, 2187, 2078, - 2408, 2080, 1930, 1931, 1932, 1933, 2089, 919, 1067, 3466, - 3408, 1839, 3404, 3310, 1712, 3013, 2742, 1223, 1069, 2730, - 1067, 2722, 2677, 2659, 2647, 2175, 4128, 2640, 2635, 2627, - 1069, 1468, 3488, 2625, 2117, 2623, 2621, 2175, 2116, 2221, - 2124, 2125, 2256, 2422, 3042, 1472, 2378, 2847, 3448, 1221, - 3736, 2553, 2664, 3551, 3502, 2318, 2143, 1472, 2294, 2293, - 2424, 2663, 1292, 2655, 2400, 2419, 2413, 2418, 2278, 2416, - 2421, 1983, 2269, 2275, 2260, 2202, 2141, 2160, 2268, 2267, - 1070, 2257, 3467, 3409, 2613, 3405, 3311, 3363, 2521, 2379, - 2193, 1276, 1259, 2104, 1259, 1259, 2379, 2636, 1947, 2181, - 2641, 2636, 2628, 2220, 1673, 2190, 2626, 2188, 2622, 2622, - 2127, 1664, 1310, 1208, 1172, 1167, 3244, 1067, 1542, 2379, - 2327, 2328, 2201, 2331, 2422, 696, 2334, 1069, 2317, 2235, - 2199, 1259, 1259, 1094, 1095, 1096, 1099, 2340, 1098, 934, - 3253, 1259, 3921, 752, 2205, 1259, 674, 674, 674, 697, - 2310, 1259, 1259, 3089, 2256, 4139, 3673, 694, 1819, 1818, - 2258, 674, 674, 674, 674, 2218, 2200, 1279, 1280, 1281, - 1282, 1283, 1276, 3480, 2376, 3478, 2221, 1674, 1819, 1818, - 1544, 693, 1469, 2380, 2381, 2382, 3922, 2385, 1517, 4100, - 2448, 1545, 2234, 2237, 2238, 2236, 3898, 3245, 1107, 1108, - 3674, 1454, 1500, 1112, 3805, 1455, 2243, 3763, 2248, 3702, - 3701, 3687, 1753, 3646, 1517, 3458, 3333, 3481, 3324, 3479, - 2288, 2289, 1541, 2291, 3316, 3312, 3222, 2972, 2971, 2813, - 2298, 2442, 2761, 2674, 2639, 695, 1845, 1846, 1847, 1848, - 2544, 3246, 1852, 1853, 1854, 1855, 1857, 1858, 1859, 1860, - 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1275, 1274, 1284, - 1285, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, 2349, - 2350, 2351, 1856, 2684, 2185, 2184, 2282, 1759, 2449, 2183, - 1441, 1440, 1190, 1803, 2367, 2368, 2369, 2370, 2607, 674, - 1981, 941, 1849, 1756, 1758, 1755, 2144, 1757, 2525, 2525, - 2072, 2525, 1772, 1470, 2249, 1454, 1772, 3043, 2319, 1455, - 2311, 2313, 2314, 1909, 1261, 1262, 1263, 1260, 1263, 1260, - 2397, 650, 650, 3978, 2399, 3366, 2401, 3714, 1260, 1188, - 2387, 2388, 1598, 2402, 2144, 1554, 674, 3713, 3060, 2908, - 2390, 2391, 2906, 2885, 2883, 2412, 3693, 2346, 3122, 4110, - 2411, 674, 1261, 1262, 1263, 1260, 1312, 1188, 2597, 668, - 1333, 3647, 3648, 2617, 4135, 1593, 2812, 2072, 1834, 1311, - 2603, 2744, 2605, 2745, 4109, 223, 2389, 1261, 1262, 1263, - 1260, 2395, 2405, 1835, 2396, 1598, 2599, 4108, 1261, 1262, - 1263, 1260, 4106, 2386, 2529, 1070, 2527, 3364, 2531, 2539, - 4105, 2540, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, - 2394, 3121, 1523, 4137, 4043, 2643, 2548, 4011, 4010, 3923, - 2545, 2546, 2781, 3859, 2398, 1261, 1262, 1263, 1260, 4134, - 2239, 2240, 1067, 2657, 2686, 3847, 2210, 2533, 1261, 1262, - 1263, 1260, 1069, 1554, 3837, 1554, 3827, 1554, 2425, 2426, - 2555, 2431, 1188, 3640, 2608, 2271, 3446, 2960, 1799, 1560, - 2676, 2602, 3754, 2695, 3676, 1796, 3675, 3493, 3482, 1798, - 1795, 1797, 1801, 1802, 2115, 3445, 1334, 1800, 1267, 1268, - 1269, 1270, 1271, 1272, 1273, 1265, 1554, 1188, 2494, 3212, - 2500, 2708, 1166, 1162, 1163, 1164, 1165, 3085, 2700, 3055, - 2699, 2698, 2696, 2714, 2561, 2600, 2715, 2534, 1533, 1535, - 3054, 1554, 2943, 3641, 2942, 2454, 3447, 2959, 2457, 2458, - 2459, 2460, 2461, 2462, 2463, 2270, 2667, 2466, 2467, 2468, - 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2552, 2478, - 2479, 2480, 2481, 2482, 2941, 2483, 2549, 1472, 1261, 1262, - 1263, 1260, 1261, 1262, 1263, 1260, 2688, 2609, 2688, 2598, - 2763, 2764, 3452, 2601, 2767, 3108, 2933, 1552, 2719, 2720, - 2697, 2927, 2253, 2703, 1261, 1262, 1263, 1260, 2926, 1188, - 2958, 2925, 2956, 1599, 2924, 2757, 1554, 4021, 3457, 1517, - 2692, 2629, 1552, 2541, 2673, 1517, 2052, 2263, 2716, 2671, - 1261, 1262, 1263, 1260, 2843, 2321, 2668, 2706, 2163, 2162, - 2849, 2682, 2161, 2850, 1261, 1262, 1263, 1260, 2157, 2649, - 2945, 1806, 1807, 1808, 1809, 1810, 1811, 1804, 1805, 2658, - 2156, 2860, 2660, 2111, 1899, 2665, 1897, 1665, 2748, 1392, - 2957, 1188, 2955, 1261, 1262, 1263, 1260, 3199, 2825, 2882, - 1261, 1262, 1263, 1260, 2830, 1712, 1188, 1188, 1188, 1981, - 3798, 3799, 1188, 4131, 2892, 2893, 2894, 2895, 1188, 2902, - 1170, 2903, 2904, 2704, 2905, 3615, 2907, 2840, 2694, 2681, - 2944, 2827, 2678, 2679, 4129, 4111, 3591, 2902, 4098, 4060, - 4059, 2003, 4056, 1070, 1261, 1262, 1263, 1260, 747, 2525, - 3985, 749, 1261, 1262, 1263, 1260, 748, 3984, 2810, 2863, - 3784, 3964, 3908, 2961, 2826, 2653, 2654, 3651, 2701, 2702, - 3902, 3883, 650, 3874, 3851, 3846, 2561, 2841, 3845, 1169, - 2052, 3802, 3788, 1264, 1188, 2072, 2072, 2072, 2072, 2072, - 2072, 1294, 3786, 2792, 3755, 2794, 2861, 3695, 3655, 3644, - 1304, 1188, 2072, 2851, 3629, 2525, 3628, 3624, 2880, 3622, - 2966, 2853, 2880, 3620, 2791, 2876, 2856, 3617, 3614, 2808, - 3613, 3021, 3603, 1554, 3589, 3587, 1313, 1536, 3560, 3557, - 2887, 2842, 2833, 2848, 674, 674, 3555, 8, 2877, 7, - 2965, 1261, 1262, 1263, 1260, 2251, 3442, 3424, 1923, 1261, - 1262, 1263, 1260, 2877, 2888, 2889, 3417, 2859, 3401, 2891, - 2862, 2865, 3399, 3394, 4086, 2898, 2725, 2726, 2878, 3602, - 3344, 3322, 2731, 2884, 3940, 2852, 3321, 3319, 3541, 3009, - 2890, 3318, 3313, 3936, 2857, 2858, 1261, 1262, 1263, 1260, - 223, 3308, 3307, 3223, 2977, 223, 1261, 1262, 1263, 1260, - 3396, 3780, 3185, 3022, 2923, 1261, 1262, 1263, 1260, 3184, - 2799, 2935, 3175, 3173, 3170, 3168, 3039, 1830, 2326, 1830, - 3099, 3096, 3070, 1261, 1262, 1263, 1260, 1261, 1262, 1263, - 1260, 2989, 3075, 3053, 3028, 2954, 3084, 2946, 2967, 2936, - 2934, 2930, 1554, 2973, 2929, 3091, 1510, 1511, 2989, 1513, - 1514, 2928, 1518, 1519, 1520, 2770, 2762, 3032, 3033, 2970, - 2758, 2650, 3006, 855, 854, 4078, 3011, 3012, 3010, 3044, - 2341, 2335, 3065, 2332, 3048, 2166, 2990, 2991, 2992, 2993, - 2994, 2995, 3026, 2159, 3077, 3029, 1569, 1570, 1571, 1572, - 1573, 1887, 1575, 1576, 1577, 1578, 1579, 3125, 1886, 1666, - 1585, 1586, 1587, 1588, 2717, 1876, 2915, 2916, 1341, 1337, - 3069, 1070, 1625, 1626, 1336, 1173, 923, 3779, 3768, 3764, - 3616, 2931, 2932, 1070, 1261, 1262, 1263, 1260, 3598, 1630, - 3067, 3570, 1634, 3473, 1618, 2881, 3472, 1633, 3470, 3439, - 3413, 3078, 3411, 3410, 1619, 1620, 2968, 3172, 3046, 3045, - 3407, 3406, 3400, 3398, 3176, 3177, 3178, 3180, 3379, 3182, - 3183, 3369, 3368, 3093, 3355, 3354, 3066, 3254, 1188, 3063, - 3068, 3061, 3189, 3186, 1188, 3160, 3079, 3081, 3127, 3080, - 3202, 3088, 3118, 3110, 3109, 3087, 787, 797, 3103, 3037, - 3216, 2624, 2620, 3100, 2619, 674, 788, 3101, 789, 793, - 796, 792, 790, 791, 2299, 2292, 3120, 2286, 2285, 3233, - 1188, 3107, 2284, 674, 2283, 674, 1188, 1188, 2281, 1592, - 2277, 2276, 3116, 3117, 2274, 2072, 2376, 3124, 3252, 3113, - 2265, 3115, 3114, 1275, 1274, 1284, 1285, 1277, 1278, 1279, - 1280, 1281, 1282, 1283, 1276, 3162, 2262, 2261, 2442, 3123, - 3226, 794, 2165, 2741, 1261, 1262, 1263, 1260, 2825, 1870, - 3278, 1869, 3281, 1868, 3281, 3281, 3111, 3112, 3236, 1188, - 1833, 1832, 3167, 1823, 3241, 3166, 1261, 1262, 1263, 1260, - 1261, 1262, 1263, 1260, 795, 206, 1566, 3303, 1564, 2875, - 4085, 3299, 4042, 3958, 3952, 2740, 1554, 1554, 3204, 2739, - 1331, 3261, 3935, 3265, 3267, 1070, 3869, 1070, 3866, 3853, - 3848, 3749, 3748, 1070, 3730, 3188, 3950, 2738, 3224, 3250, - 3229, 2877, 1261, 1262, 1263, 1260, 1261, 1262, 1263, 1260, - 3225, 206, 3276, 197, 168, 3712, 3237, 3708, 3238, 3686, - 1070, 3670, 1067, 674, 1261, 1262, 1263, 1260, 3251, 3202, - 3256, 3247, 1069, 799, 142, 3571, 3568, 2877, 202, 142, - 3277, 3539, 1517, 2877, 2877, 2052, 2052, 2412, 3538, 3286, - 3535, 3534, 2411, 3260, 3255, 3235, 3500, 1552, 1552, 3257, - 3258, 3239, 3240, 3304, 3305, 3497, 3495, 1724, 1725, 1726, - 1727, 1728, 3460, 3287, 3134, 3135, 3119, 3301, 3282, 3283, - 3136, 3137, 3138, 3139, 202, 3140, 3141, 3142, 3143, 3144, - 3145, 3146, 3147, 3148, 3149, 3150, 2877, 2737, 1613, 1188, - 1624, 1615, 680, 2708, 1629, 142, 1632, 1621, 2680, 1769, - 1448, 3367, 3838, 1773, 1774, 1775, 1776, 3000, 2962, 2886, - 2836, 2835, 3309, 1814, 1261, 1262, 1263, 1260, 3259, 2828, - 2793, 1824, 1275, 1274, 1284, 1285, 1277, 1278, 1279, 1280, - 1281, 1282, 1283, 1276, 2743, 3315, 2115, 3329, 3330, 3314, - 2634, 3320, 2736, 2543, 3323, 2484, 2377, 2348, 674, 2347, - 2320, 3327, 3948, 3340, 3317, 3341, 1275, 1274, 1284, 1285, - 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, 2735, 1261, - 1262, 1263, 1260, 1754, 1877, 3348, 202, 2126, 1883, 3331, - 3351, 3352, 3353, 1697, 1287, 1647, 1291, 1622, 1391, 1376, - 1372, 1371, 1370, 1369, 3357, 1261, 1262, 1263, 1260, 1368, - 1367, 3347, 1288, 1290, 1286, 1366, 1289, 1275, 1274, 1284, - 1285, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, 1365, - 1364, 2138, 3421, 1363, 1362, 3423, 1068, 3380, 1361, 3425, - 3684, 142, 2734, 2688, 3431, 1360, 2561, 1359, 3383, 3382, - 1358, 1357, 1356, 1355, 1354, 1353, 142, 1352, 142, 2733, - 1351, 3402, 1350, 3387, 1349, 1348, 1951, 2120, 3432, 1261, - 1262, 1263, 1260, 1347, 1344, 3392, 1343, 1342, 1340, 674, - 2052, 3389, 3426, 3284, 3428, 3386, 1261, 1262, 1263, 1260, - 2732, 3465, 1970, 1339, 1275, 1274, 1284, 1285, 1277, 1278, - 1279, 1280, 1281, 1282, 1283, 1276, 1338, 3438, 2525, 2072, - 3485, 2729, 1335, 1328, 3441, 1327, 1325, 1261, 1262, 1263, - 1260, 1324, 1323, 3436, 1322, 1321, 1320, 1319, 1318, 3420, - 3418, 1317, 3414, 3503, 1316, 1315, 1188, 1314, 1261, 1262, - 1263, 1260, 2728, 1309, 1308, 3278, 1070, 1307, 1306, 1188, - 1305, 1877, 3435, 1070, 1225, 1171, 1877, 1877, 3336, 3337, - 3946, 1188, 3536, 3550, 2384, 2362, 1213, 1554, 4076, 1261, - 1262, 1263, 1260, 4026, 3339, 2814, 2554, 3487, 3453, 2168, - 1224, 3008, 3455, 2998, 3346, 3003, 3345, 674, 3573, 2052, - 3004, 3526, 2727, 1188, 2997, 3001, 3574, 3533, 3342, 2721, - 3002, 3007, 2115, 3484, 2996, 3483, 2145, 125, 3005, 2148, - 2515, 2516, 2151, 67, 3977, 2153, 3885, 3490, 66, 1261, - 1262, 1263, 1260, 3691, 2648, 223, 1261, 1262, 1263, 1260, - 2711, 2637, 1442, 3221, 3561, 1941, 1942, 3274, 1188, 3275, - 3083, 3564, 2632, 3545, 2452, 3540, 3572, 3546, 1552, 3542, - 3575, 2672, 3486, 3549, 3552, 3384, 3385, 1261, 1262, 1263, - 1260, 3489, 3358, 3554, 3556, 2040, 1607, 3558, 2653, 2654, - 3559, 2196, 1661, 1641, 3563, 2342, 676, 3565, 2128, 1219, - 3618, 3197, 677, 3504, 3566, 2707, 3562, 678, 3190, 2864, - 2683, 3626, 2837, 2404, 3596, 2372, 3543, 1936, 1937, 1938, - 1945, 1188, 1912, 4089, 3582, 3850, 1767, 3306, 2898, 2497, - 2115, 2490, 1261, 1262, 1263, 1260, 3592, 1261, 1262, 1263, - 1260, 1188, 1554, 1554, 1819, 1818, 2053, 3593, 3233, 1509, - 3623, 1508, 3625, 1261, 1262, 1263, 1260, 1387, 1388, 1252, - 2989, 3664, 1385, 1386, 3664, 2510, 2514, 2515, 2516, 2511, - 2519, 2512, 2517, 3680, 2186, 2513, 1188, 2518, 1188, 3350, - 3658, 3659, 3652, 3461, 3462, 3463, 3577, 3683, 3031, 3685, - 3468, 3469, 3631, 1383, 1384, 1554, 2245, 2343, 3654, 3636, - 2250, 3635, 3634, 2198, 1461, 2989, 1460, 3661, 2259, 3645, - 1381, 1382, 1433, 674, 1484, 1188, 1188, 4049, 3657, 1188, - 1188, 3669, 3668, 1552, 1765, 4047, 4004, 3974, 3612, 3653, - 3487, 3973, 3971, 3679, 3912, 3870, 3744, 3732, 3743, 3681, - 3588, 3526, 3403, 3376, 3727, 2266, 1070, 3533, 3692, 1947, - 3696, 3689, 3741, 2273, 3375, 3361, 3716, 3717, 2437, 2407, - 3728, 3729, 1663, 3360, 3750, 3751, 3041, 1458, 2877, 4080, - 4079, 1185, 3422, 3086, 2768, 2290, 1765, 1554, 2264, 2182, - 2295, 2296, 2297, 1395, 1210, 2300, 2301, 2302, 2303, 2304, - 2305, 2306, 2307, 2308, 2309, 3738, 4079, 4080, 3710, 3737, - 3781, 3739, 3356, 210, 3, 3677, 3678, 1476, 75, 2, - 4102, 3774, 1274, 1284, 1285, 1277, 1278, 1279, 1280, 1281, - 1282, 1283, 1276, 1718, 4103, 1718, 3785, 1, 3787, 3761, - 2749, 1881, 3757, 1389, 918, 913, 3715, 3807, 1530, 2535, - 3769, 142, 142, 142, 1068, 2106, 3773, 3814, 1558, 1885, - 3790, 3819, 920, 3014, 3812, 3015, 3349, 3017, 1552, 2771, - 2217, 2978, 2488, 2352, 3762, 3682, 3215, 1188, 1443, 975, - 1825, 3604, 1678, 3605, 3801, 1202, 1675, 1201, 3836, 1199, - 1770, 3842, 801, 2171, 2963, 3128, 3494, 2937, 3496, 3740, - 3813, 4088, 4123, 3596, 4041, 3816, 3815, 4091, 1695, 3810, - 785, 914, 915, 916, 917, 3832, 1185, 3828, 3965, 3875, - 4045, 1188, 3877, 3760, 2222, 1257, 1554, 1293, 3062, 1275, - 1274, 1284, 1285, 1277, 1278, 1279, 1280, 1281, 1282, 1283, - 1276, 3849, 2244, 1002, 842, 812, 1326, 1654, 1070, 1275, - 1274, 1284, 1285, 1277, 1278, 1279, 1280, 1281, 1282, 1283, - 1276, 3132, 3858, 3130, 811, 3450, 1275, 1274, 1284, 1285, - 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, 2804, 3745, - 3034, 3821, 3904, 3891, 1003, 2154, 3872, 3871, 1284, 1285, - 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1276, 3758, 1608, - 3899, 1612, 3900, 2403, 3829, 3931, 3690, 1552, 3270, 2872, - 1636, 3926, 3913, 3860, 3734, 3498, 3608, 1877, 3735, 1877, - 3606, 3607, 3901, 717, 1718, 2085, 648, 1052, 3731, 2167, - 718, 2383, 3907, 3991, 3852, 955, 3433, 2361, 1877, 1877, - 956, 3930, 948, 2823, 1188, 3915, 2822, 1735, 1266, 1752, - 3151, 3152, 1554, 1303, 756, 3955, 2247, 2801, 3521, 3027, - 3962, 74, 3945, 3947, 3949, 3951, 73, 3929, 72, 3924, - 71, 231, 1592, 803, 3938, 230, 1380, 3963, 3782, 3649, - 3961, 4093, 782, 3867, 3868, 3944, 1261, 1262, 1263, 1260, - 781, 780, 779, 778, 777, 2508, 2509, 2507, 2505, 2504, - 2067, 3970, 3968, 2066, 3040, 1554, 2503, 3359, 3819, 2133, - 3982, 2135, 3231, 2901, 2896, 1992, 3986, 1990, 3983, 1521, - 2432, 2642, 2439, 2645, 4014, 1989, 4023, 3393, 3599, 3941, - 4022, 3942, 3688, 1552, 3707, 4005, 2947, 4007, 3595, 3954, - 4008, 4009, 3694, 2510, 2514, 2515, 2516, 2511, 2519, 2512, - 2517, 1935, 2428, 2513, 2009, 2518, 2918, 4038, 2006, 2005, - 2909, 3703, 3697, 4031, 2037, 4032, 1803, 4033, 3817, 4034, - 3663, 3505, 4035, 3506, 3512, 2371, 3733, 1121, 4048, 1117, - 4050, 4051, 1119, 1120, 4046, 4044, 1552, 2685, 1118, 2693, - 2691, 3891, 4006, 4054, 3325, 1188, 2409, 3192, 2787, 4055, - 2786, 2709, 2710, 3861, 2784, 2783, 1418, 3903, 3987, 2712, - 2713, 3630, 2559, 2557, 1168, 3842, 3338, 4068, 3334, 2179, - 3343, 2999, 2194, 4070, 4069, 2718, 4071, 4074, 4077, 4075, - 1563, 4087, 3082, 4095, 680, 4094, 2068, 2064, 2063, 4081, - 4082, 4083, 4084, 1092, 1091, 1589, 2980, 2498, 3792, 1940, - 949, 2359, 4107, 109, 1724, 1877, 4099, 41, 1188, 122, - 108, 185, 59, 184, 58, 120, 182, 990, 57, 4112, - 142, 3930, 4113, 4115, 103, 102, 119, 180, 4121, 56, - 3914, 215, 214, 4125, 4122, 217, 3918, 3919, 216, 213, - 2610, 2611, 212, 1596, 211, 206, 64, 197, 168, 3975, - 3667, 3957, 908, 44, 43, 4133, 186, 42, 110, 60, - 40, 39, 38, 34, 198, 13, 12, 3939, 4095, 4141, - 4094, 189, 35, 4140, 22, 199, 21, 1682, 20, 26, - 2854, 2855, 4125, 4142, 32, 31, 4146, 3510, 142, 986, - 987, 1799, 4066, 135, 140, 142, 134, 30, 1796, 133, - 1030, 132, 1798, 1795, 1797, 1801, 1802, 131, 142, 126, - 1800, 142, 142, 130, 129, 128, 127, 29, 202, 19, - 51, 50, 49, 48, 142, 47, 46, 9, 3522, 123, - 118, 116, 28, 117, 114, 115, 113, 112, 111, 106, - 104, 3513, 86, 85, 84, 99, 98, 97, 96, 95, - 94, 92, 3508, 93, 1001, 1718, 83, 3530, 3531, 729, - 728, 735, 725, 3509, 82, 81, 80, 79, 101, 107, - 105, 90, 732, 733, 100, 734, 738, 91, 89, 719, - 88, 87, 78, 77, 1032, 76, 166, 1031, 165, 743, - 164, 163, 162, 160, 161, 148, 149, 159, 150, 151, - 3514, 158, 157, 152, 156, 155, 153, 154, 52, 4057, - 4058, 53, 54, 55, 176, 175, 4062, 4063, 4064, 4065, - 177, 1877, 179, 181, 178, 183, 1016, 173, 171, 174, - 172, 170, 69, 11, 121, 991, 18, 4, 0, 0, - 0, 0, 0, 1784, 1785, 1786, 1787, 1788, 1789, 1790, - 1791, 1792, 1793, 1794, 1806, 1807, 1808, 1809, 1810, 1811, - 1804, 1805, 993, 0, 0, 0, 0, 0, 0, 167, - 195, 204, 196, 124, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 194, 188, 187, 0, 0, 0, 3529, 70, - 2418, 3047, 0, 3049, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1877, 0, 0, 3518, 0, 1877, 1015, 1013, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2196, - 0, 0, 0, 0, 0, 0, 0, 3515, 3519, 3517, - 3516, 0, 0, 0, 0, 0, 1012, 0, 0, 0, - 190, 191, 192, 0, 0, 0, 0, 0, 985, 0, - 0, 0, 0, 0, 3102, 0, 0, 0, 0, 992, - 1025, 0, 0, 720, 722, 721, 0, 0, 3524, 3525, - 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, - 200, 0, 3126, 1021, 0, 0, 731, 0, 0, 0, - 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, - 724, 136, 0, 0, 0, 193, 0, 137, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2071, 1022, - 1026, 0, 3532, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3511, 0, 0, 0, 0, 1009, - 3523, 1007, 1011, 1029, 0, 2038, 0, 1008, 1005, 1004, - 1999, 1010, 995, 996, 994, 997, 998, 999, 1000, 0, - 1027, 0, 1028, 0, 138, 0, 0, 0, 0, 0, - 0, 0, 0, 1023, 1024, 0, 0, 63, 0, 0, - 0, 2040, 2008, 0, 0, 0, 0, 0, 0, 0, - 0, 2041, 2042, 142, 0, 0, 142, 142, 0, 142, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1019, 0, 0, 0, 0, 0, 1018, 2007, 0, 726, - 730, 736, 0, 737, 739, 0, 65, 740, 741, 742, - 0, 1014, 744, 745, 0, 2015, 0, 0, 0, 1068, - 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, - 0, 1068, 0, 0, 3285, 0, 0, 0, 0, 0, - 0, 146, 203, 0, 147, 0, 0, 142, 0, 169, - 3528, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 2038, 0, 0, 0, 0, 1999, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2031, 0, 0, 0, 0, 0, 1017, - 0, 0, 0, 0, 0, 988, 989, 0, 983, 2040, - 2008, 0, 0, 984, 0, 0, 0, 0, 0, 2041, - 2042, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 45, 0, 0, 0, 0, 3527, 62, 1293, 0, - 0, 0, 0, 0, 0, 2007, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 144, 0, 2015, 145, 0, 0, 1998, 2000, 1997, - 0, 0, 1994, 0, 0, 0, 0, 2019, 723, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2025, 0, - 0, 0, 0, 0, 0, 0, 2010, 0, 1993, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2013, 2047, - 0, 0, 2014, 2016, 2018, 0, 2020, 2021, 2022, 2026, - 2027, 2028, 2030, 2033, 2034, 2035, 0, 0, 0, 0, - 0, 2031, 0, 2023, 2032, 2024, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2002, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1140, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3395, 0, 0, 0, 0, 0, 0, 3397, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1995, 1996, 1998, 2867, 1997, 0, 0, - 2866, 0, 0, 0, 0, 2019, 0, 0, 0, 3412, - 0, 2036, 0, 0, 0, 0, 2025, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2012, 0, - 0, 0, 0, 0, 0, 2011, 2013, 2047, 0, 0, - 2014, 2016, 2018, 0, 2020, 2021, 2022, 2026, 2027, 2028, - 2030, 2033, 2034, 2035, 0, 0, 0, 0, 0, 2029, - 0, 2023, 2032, 2024, 0, 0, 0, 0, 2017, 0, - 1125, 0, 0, 2002, 0, 0, 1140, 0, 0, 0, - 0, 2044, 2043, 0, 0, 0, 0, 0, 0, 0, - 0, 1148, 1152, 1154, 1156, 1158, 1159, 1161, 2039, 1166, - 1162, 1163, 1164, 1165, 0, 1143, 1144, 1145, 1146, 1123, - 1124, 1149, 0, 1126, 0, 1128, 1129, 1130, 1131, 1127, - 1132, 1133, 1134, 1135, 1136, 1139, 1141, 1137, 1138, 1147, - 0, 1995, 1996, 0, 2004, 0, 0, 1151, 1153, 1155, - 1157, 1160, 0, 2528, 0, 0, 0, 0, 0, 2036, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1877, 2012, 0, 0, 0, - 0, 0, 0, 2011, 0, 0, 2046, 1142, 0, 2045, - 0, 1877, 1140, 0, 3567, 0, 0, 3569, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2029, 0, 0, - 1125, 0, 0, 1803, 1115, 0, 2017, 0, 3576, 0, - 2071, 0, 0, 0, 0, 0, 0, 0, 142, 2044, - 2043, 1148, 1152, 1154, 1156, 1158, 1159, 1161, 0, 1166, - 1162, 1163, 1164, 1165, 0, 1143, 1144, 1145, 1146, 1123, - 1124, 1149, 0, 1126, 0, 1128, 1129, 1130, 1131, 1127, - 1132, 1133, 1134, 1135, 1136, 1139, 1141, 1137, 1138, 1147, - 0, 0, 0, 0, 0, 0, 0, 1151, 1153, 1155, - 1157, 1160, 2004, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1125, 1142, 0, 0, - 0, 0, 0, 0, 2046, 0, 0, 2045, 0, 0, - 0, 0, 0, 0, 0, 2689, 2690, 1148, 1152, 1154, - 1156, 1158, 1159, 1161, 0, 1166, 1162, 1163, 1164, 1165, - 0, 1143, 1144, 1145, 1146, 1123, 1124, 1149, 0, 1126, - 0, 1128, 1129, 1130, 1131, 1127, 1132, 1133, 1134, 1135, - 1136, 1139, 1141, 1137, 1138, 1147, 729, 728, 735, 725, - 0, 0, 0, 1151, 1153, 1155, 1157, 1160, 1799, 732, - 733, 0, 734, 738, 0, 1796, 719, 0, 0, 1798, - 1795, 1797, 1801, 1802, 0, 0, 743, 1800, 0, 0, - 0, 0, 0, 0, 729, 728, 735, 725, 0, 0, - 0, 0, 0, 1142, 0, 0, 0, 732, 733, 0, - 734, 738, 0, 0, 719, 0, 0, 0, 0, 2038, - 0, 0, 0, 0, 743, 0, 206, 0, 0, 0, - 0, 142, 747, 0, 0, 749, 0, 0, 0, 0, - 748, 142, 0, 0, 0, 0, 0, 0, 0, 3662, - 0, 0, 0, 0, 0, 2040, 0, 0, 0, 1150, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 747, 0, 0, 749, 0, 0, 0, 0, 748, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2015, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, - 1794, 1806, 1807, 1808, 1809, 1810, 1811, 1804, 1805, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2071, 2071, - 2071, 2071, 2071, 2071, 0, 0, 0, 2031, 0, 0, - 720, 722, 721, 0, 0, 2071, 0, 0, 0, 1150, - 2038, 727, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 731, 0, 0, 0, 0, 0, 0, - 746, 0, 0, 0, 0, 0, 1313, 724, 720, 722, - 721, 714, 0, 0, 0, 0, 2040, 0, 0, 727, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 731, 0, 0, 0, 0, 0, 0, 746, 0, - 0, 0, 0, 0, 0, 724, 0, 0, 0, 0, - 0, 2019, 0, 0, 0, 0, 0, 0, 0, 0, - 3841, 0, 2025, 142, 0, 0, 0, 0, 142, 0, - 2015, 0, 0, 0, 0, 0, 3937, 0, 0, 0, - 0, 0, 2013, 2047, 0, 1150, 2014, 2016, 2018, 142, - 2020, 2021, 2022, 2026, 2027, 2028, 2030, 2033, 2034, 2035, - 0, 142, 0, 0, 0, 0, 0, 2023, 2032, 2024, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, - 0, 0, 0, 0, 0, 0, 726, 730, 736, 0, - 737, 739, 0, 0, 740, 741, 742, 0, 2031, 744, - 745, 0, 0, 0, 2039, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2040, 0, 0, 0, 0, - 0, 0, 0, 4019, 726, 730, 736, 0, 737, 739, - 0, 0, 740, 741, 742, 0, 0, 744, 745, 0, - 0, 0, 2038, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2015, - 0, 0, 2012, 0, 0, 0, 0, 0, 2040, 2011, - 0, 0, 2019, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2025, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2029, 4019, 0, 0, 0, 0, 0, - 0, 0, 2017, 2013, 2047, 0, 0, 2014, 2016, 2018, - 0, 2020, 2021, 2022, 2026, 2027, 2028, 2030, 2033, 2034, - 2035, 0, 2015, 3811, 0, 0, 0, 2031, 2023, 2032, - 2024, 0, 0, 1068, 0, 142, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 723, 0, 0, 2071, 0, - 0, 4019, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2039, 0, 0, 142, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 723, 0, 0, 0, 0, 0, 0, - 2031, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 169, 2019, 0, 0, 0, 0, 2036, 4144, 0, 0, - 0, 0, 2025, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2012, 0, 0, 0, 0, 0, 0, - 2011, 0, 2013, 2047, 0, 0, 2014, 2016, 2018, 0, - 2020, 2021, 2022, 2026, 2027, 2028, 2030, 2033, 2034, 2035, - 0, 0, 0, 0, 2029, 0, 0, 2023, 2032, 2024, - 0, 0, 0, 2017, 2019, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2025, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2039, 2013, 2047, 0, 0, 2014, - 2016, 2018, 0, 2020, 2021, 2022, 2026, 2027, 2028, 2030, - 2033, 2034, 2035, 0, 0, 0, 0, 0, 0, 0, - 2023, 2032, 2024, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2036, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2039, 0, 0, - 0, 0, 2012, 0, 0, 0, 0, 0, 0, 2011, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2029, 0, 0, 0, 0, 0, 0, - 0, 0, 2017, 0, 0, 0, 0, 0, 2036, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2012, 0, 0, 0, 0, - 0, 0, 2011, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2029, 0, 0, 0, - 0, 0, 0, 0, 0, 2017, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 142, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, - 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, - 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, - 0, 771, 2071, 0, 0, 337, 0, 0, 370, 570, - 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, - 543, 513, 544, 514, 545, 546, 810, 569, 520, 435, - 386, 587, 586, 0, 0, 879, 887, 0, 0, 0, - 0, 0, 0, 0, 0, 875, 0, 0, 0, 0, - 763, 0, 0, 800, 855, 854, 787, 797, 0, 0, - 310, 229, 515, 635, 517, 516, 788, 0, 789, 793, - 796, 792, 790, 791, 0, 870, 0, 0, 0, 0, - 0, 0, 755, 767, 0, 772, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 764, - 765, 0, 0, 0, 0, 820, 0, 766, 142, 0, - 815, 794, 798, 0, 0, 0, 0, 300, 442, 461, - 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, - 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, - 335, 351, 332, 399, 795, 818, 822, 331, 893, 816, - 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, - 303, 457, 382, 376, 364, 341, 894, 365, 366, 355, - 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, - 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 628, 813, - 0, 632, 0, 471, 0, 0, 877, 0, 0, 0, - 441, 0, 0, 367, 142, 0, 0, 817, 0, 424, - 404, 890, 0, 0, 422, 372, 456, 412, 462, 443, - 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, - 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, - 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, - 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, - 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, - 0, 490, 662, 663, 664, 499, 0, 414, 0, 504, - 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, - 492, 583, 526, 530, 531, 358, 595, 1827, 1826, 1828, - 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, - 291, 292, 657, 874, 400, 597, 630, 631, 522, 0, - 889, 869, 871, 872, 876, 880, 881, 882, 883, 884, - 886, 888, 892, 656, 0, 576, 591, 660, 590, 653, - 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, - 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, - 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, - 618, 619, 620, 613, 891, 557, 534, 560, 475, 537, - 536, 0, 0, 571, 821, 572, 573, 390, 391, 392, - 393, 878, 598, 315, 494, 416, 142, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 564, 561, 665, - 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, - 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, - 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, - 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, - 900, 873, 899, 901, 902, 898, 903, 904, 885, 776, - 0, 828, 896, 895, 897, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, - 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, - 320, 321, 328, 654, 651, 454, 655, 783, 293, 528, - 371, 0, 415, 344, 593, 594, 0, 645, 862, 835, - 836, 837, 773, 838, 832, 833, 774, 834, 863, 826, - 859, 860, 802, 829, 839, 858, 840, 861, 864, 865, - 905, 906, 846, 830, 257, 907, 843, 866, 857, 856, - 841, 827, 867, 868, 809, 804, 844, 845, 831, 850, - 851, 852, 775, 823, 824, 825, 847, 848, 805, 806, - 807, 808, 0, 0, 0, 479, 480, 481, 503, 0, - 465, 527, 652, 0, 0, 0, 0, 0, 0, 0, - 577, 589, 623, 0, 633, 634, 636, 638, 853, 640, - 439, 440, 647, 0, 849, 643, 644, 641, 375, 426, - 445, 433, 819, 658, 518, 519, 659, 629, 0, 768, - 0, 402, 0, 0, 533, 566, 555, 639, 521, 0, - 0, 0, 0, 0, 0, 771, 0, 0, 0, 337, - 1878, 0, 370, 570, 552, 562, 553, 538, 539, 540, - 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, - 810, 569, 520, 435, 386, 587, 586, 0, 0, 879, - 887, 0, 0, 0, 0, 0, 0, 0, 0, 875, - 0, 2097, 0, 0, 763, 0, 0, 800, 855, 854, - 787, 797, 0, 0, 310, 229, 515, 635, 517, 516, - 788, 0, 789, 793, 796, 792, 790, 791, 0, 870, - 0, 0, 0, 0, 0, 0, 755, 767, 0, 772, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 764, 765, 0, 0, 0, 0, 820, - 0, 766, 0, 0, 2098, 794, 798, 0, 0, 0, - 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, - 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, - 361, 301, 0, 421, 335, 351, 332, 399, 795, 818, - 822, 331, 893, 816, 469, 304, 0, 468, 398, 455, - 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, - 894, 365, 366, 355, 410, 374, 411, 356, 388, 387, - 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, - 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 628, 813, 0, 632, 0, 471, 0, 0, - 877, 0, 0, 0, 441, 0, 0, 367, 0, 0, - 0, 817, 0, 424, 404, 890, 0, 0, 422, 372, - 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, + 783, 759, 4120, 785, 4089, 2873, 223, 4112, 1637, 4016, + 2000, 1716, 4022, 3490, 3589, 4023, 3908, 3295, 4015, 3839, + 3261, 3966, 768, 3931, 2111, 3371, 3886, 1712, 3717, 3519, + 3817, 761, 2867, 3877, 3782, 3372, 1328, 3838, 3909, 3649, + 1549, 2779, 3751, 813, 1060, 2870, 649, 1776, 1183, 3807, + 1481, 3593, 3887, 3889, 1487, 1763, 3450, 3584, 1945, 3270, + 2413, 3455, 3670, 667, 3506, 673, 673, 3659, 3216, 1177, + 2845, 673, 691, 700, 1719, 3231, 700, 3473, 2986, 3631, + 3369, 2559, 3192, 37, 3664, 2987, 2985, 208, 3219, 3442, + 2098, 2963, 2095, 2896, 3290, 3475, 3279, 2521, 2113, 2784, + 3272, 3414, 2210, 2069, 2686, 2168, 3055, 2557, 2060, 2136, + 2416, 3015, 3334, 3193, 2651, 2982, 3278, 1960, 1781, 2374, + 141, 36, 68, 2810, 3195, 3194, 3241, 708, 712, 1173, + 2973, 3190, 2324, 2194, 3199, 3163, 756, 2323, 3197, 751, + 2823, 2206, 2629, 2176, 1638, 3029, 1615, 1778, 1874, 3103, + 2177, 2611, 1542, 941, 2141, 697, 2169, 2064, 2091, 2522, + 2505, 1626, 1446, 1627, 2061, 1630, 2799, 1622, 672, 672, + 981, 2794, 2898, 2205, 680, 2500, 2878, 2414, 2837, 1990, + 2362, 6, 1490, 219, 8, 218, 7, 2555, 2373, 1921, + 1777, 1710, 2207, 760, 1121, 1527, 1521, 1589, 2353, 649, + 666, 2409, 750, 1659, 2723, 1470, 1770, 769, 1750, 1701, + 1558, 2356, 1199, 1959, 2172, 2175, 1641, 2240, 23, 2157, + 1596, 705, 1917, 223, 1053, 223, 1709, 1112, 1113, 1526, + 2529, 1920, 1054, 2501, 673, 682, 908, 1782, 1580, 1019, + 1482, 1523, 24, 1466, 25, 27, 715, 714, 17, 980, + 209, 1092, 10, 685, 957, 1715, 978, 201, 963, 758, + 711, 3896, 15, 1398, 1374, 205, 1329, 910, 2214, 699, + 2531, 1109, 3380, 911, 669, 3803, 2446, 2759, 648, 1005, + 1260, 1261, 1262, 1259, 752, 2759, 33, 2759, 1413, 1260, + 1261, 1262, 1259, 1260, 1261, 1262, 1259, 3487, 971, 3072, + 972, 989, 3248, 3071, 2224, 3620, 3458, 1179, 2674, 1178, + 1108, 16, 1110, 3364, 2617, 2615, 2614, 696, 2612, 1887, + 1603, 1599, 1104, 1066, 1068, 1069, 678, 1105, 207, 668, + 2322, 1393, 1525, 14, 695, 1367, 3864, 680, 930, 952, + 674, 928, 2112, 1178, 3173, 703, 1105, 2328, 1452, 2332, + 1105, 1888, 757, 966, 2722, 962, 1087, 1652, 693, 1449, + 1450, 1451, 1396, 3156, 3158, 3153, 3155, 4101, 1504, 1881, + 1389, 1491, 1601, 985, 986, 1039, 3582, 1260, 1261, 1262, + 1259, 752, 3051, 692, 1029, 1260, 1261, 1262, 1259, 1103, + 3049, 8, 2146, 7, 2751, 2749, 3872, 3758, 3752, 3585, + 3370, 2191, 3891, 1323, 2171, 694, 909, 3132, 2163, 2454, + 4126, 944, 3994, 3885, 206, 4098, 920, 3824, 2364, 1456, + 3766, 206, 1258, 3636, 3599, 1222, 206, 2660, 1088, 2211, + 4051, 3632, 2668, 3474, 1404, 2365, 206, 2830, 2753, 929, + 1645, 206, 927, 206, 206, 1636, 3883, 206, 3790, 3433, + 3764, 2704, 3942, 930, 206, 64, 197, 168, 1566, 1403, + 1657, 3825, 1402, 206, 64, 197, 168, 1401, 1031, 1064, + 1642, 1030, 928, 1070, 3130, 1065, 206, 64, 197, 168, + 1438, 2222, 2980, 2357, 1399, 140, 968, 2828, 961, 2549, + 1654, 1650, 3075, 3063, 1644, 1405, 140, 965, 964, 202, + 710, 1257, 1890, 1082, 1077, 1072, 1076, 1080, 3022, 202, + 1015, 3023, 3024, 1649, 1656, 2550, 202, 202, 953, 990, + 202, 2075, 2076, 1034, 1032, 921, 1033, 202, 1899, 1900, + 1528, 1085, 1530, 2778, 2108, 1075, 202, 2831, 960, 2774, + 1421, 1194, 3792, 925, 2074, 3157, 992, 3154, 3265, 202, + 2796, 206, 64, 197, 168, 2536, 1230, 970, 2535, 1232, + 2797, 2537, 959, 2630, 1419, 1028, 958, 206, 64, 197, + 168, 3894, 946, 3609, 899, 3991, 898, 900, 901, 951, + 902, 903, 1488, 1489, 1974, 1250, 1083, 1233, 1718, 1500, + 1237, 1255, 1501, 1238, 1478, 3971, 1086, 1953, 1702, 1486, + 1063, 1706, 3893, 1485, 1488, 1489, 949, 1062, 2776, 2795, + 3894, 3980, 1014, 1012, 2771, 1040, 1668, 1602, 1600, 3263, + 3892, 1240, 2311, 1073, 202, 1705, 3893, 3979, 4026, 4027, + 3892, 3978, 1191, 4050, 3987, 4093, 4094, 3373, 3968, 1011, + 202, 3968, 1036, 2655, 969, 3875, 3056, 1084, 2754, 3755, + 1188, 984, 2775, 206, 64, 197, 168, 3373, 2772, 3996, + 3997, 2226, 991, 1024, 1202, 1205, 2918, 3057, 2092, 3058, + 950, 673, 673, 3992, 3993, 1226, 4000, 3999, 3998, 4001, + 1420, 1503, 673, 1187, 3905, 3387, 1020, 1074, 1202, 1205, + 2082, 1197, 3878, 3879, 3880, 3881, 3443, 1697, 2218, 2488, + 3448, 1228, 700, 700, 3212, 673, 1038, 2154, 3641, 1235, + 1722, 2974, 3093, 1231, 1234, 2802, 1951, 1707, 2352, 3608, + 2495, 2781, 1021, 1025, 3531, 2086, 202, 3610, 969, 1115, + 854, 2665, 1682, 3794, 3795, 2833, 1609, 1608, 193, 1227, + 3989, 1704, 1008, 2223, 1006, 1010, 1028, 967, 1253, 1254, + 1007, 1004, 1003, 3091, 1009, 994, 995, 993, 996, 997, + 998, 999, 1392, 1026, 1081, 1027, 3895, 1252, 1300, 2752, + 697, 697, 697, 1236, 672, 1176, 1022, 1023, 2452, 1225, + 3802, 746, 3390, 1037, 748, 1185, 956, 3583, 1514, 747, + 3097, 4025, 2758, 2777, 3050, 2106, 2107, 3206, 1476, 2773, + 1078, 3799, 1179, 1079, 1180, 1248, 1249, 1179, 1213, 3210, + 1066, 1068, 1069, 1018, 1179, 1187, 1229, 2968, 3745, 1017, + 2490, 2212, 2329, 2212, 3665, 2212, 1889, 2491, 2492, 3638, + 1186, 3073, 3655, 1422, 1013, 1721, 1720, 3418, 1217, 2498, + 3070, 3217, 3600, 2552, 2245, 2213, 1332, 923, 1179, 1502, + 1239, 1105, 1105, 1105, 1247, 1105, 665, 1952, 1703, 1105, + 1105, 3546, 3293, 3543, 3294, 3207, 3208, 3291, 3292, 1204, + 1203, 3823, 3995, 3774, 4059, 3775, 2225, 167, 195, 204, + 196, 3209, 3229, 1066, 1068, 1069, 945, 3267, 3242, 943, + 2613, 924, 698, 1204, 1203, 3924, 3919, 1196, 1604, 3746, + 194, 698, 2838, 1089, 2364, 3829, 1071, 1294, 702, 1206, + 1193, 701, 1016, 3204, 698, 3821, 2978, 1242, 987, 988, + 1243, 982, 1035, 2359, 3910, 1395, 983, 1397, 3765, 3777, + 3536, 3164, 696, 696, 696, 909, 3926, 1488, 1489, 1409, + 1190, 1192, 1195, 1412, 1182, 1175, 1181, 1418, 1245, 695, + 695, 695, 1065, 1214, 65, 3491, 1372, 169, 3637, 1377, + 3218, 3776, 1333, 65, 169, 1651, 2750, 2669, 3932, 169, + 1216, 1210, 1211, 693, 693, 693, 65, 3262, 1301, 169, + 981, 3297, 2872, 3793, 169, 3498, 169, 169, 1465, 698, + 169, 1891, 3788, 3774, 3626, 3775, 3426, 169, 692, 692, + 692, 1400, 2229, 2231, 2232, 698, 169, 2432, 1488, 1489, + 2343, 3769, 3429, 2412, 2435, 2093, 3180, 2486, 3547, 169, + 694, 694, 694, 1296, 1297, 1298, 1299, 2419, 3213, 3904, + 1477, 3708, 926, 4132, 2975, 673, 1241, 3094, 1516, 2801, + 2868, 2869, 673, 2872, 2494, 2909, 649, 649, 3218, 3777, + 2464, 65, 2910, 2911, 2912, 1484, 649, 649, 3796, 3988, + 1553, 1553, 2919, 673, 2920, 2921, 2463, 65, 3830, 2552, + 3596, 2434, 1728, 1731, 1732, 1246, 1208, 2808, 3822, 4115, + 3428, 3776, 1538, 1729, 700, 1581, 667, 1551, 1551, 3642, + 1537, 1592, 1344, 1345, 169, 2083, 2805, 2806, 1463, 3703, + 1244, 1555, 1698, 2484, 2485, 1215, 223, 2218, 1480, 1479, + 169, 2804, 1462, 1560, 1461, 649, 3933, 3808, 2433, 2694, + 3268, 2947, 3843, 971, 3205, 972, 3697, 3271, 1174, 3152, + 2085, 2814, 2818, 2819, 2820, 2815, 2817, 2816, 1511, 2455, + 3476, 3580, 2412, 1291, 1414, 1522, 4014, 3965, 1165, 1161, + 1162, 1163, 1164, 3376, 2699, 1515, 2698, 2697, 2695, 710, + 1430, 1524, 3017, 3019, 3291, 3292, 1559, 1634, 2418, 2429, + 1222, 3470, 1639, 2420, 3463, 1376, 3296, 1378, 3287, 1648, + 3718, 3719, 3720, 3724, 3722, 3723, 3725, 3721, 1692, 203, + 3168, 1693, 2661, 3770, 2541, 2450, 169, 3888, 2215, 2081, + 2058, 1411, 3325, 3096, 1472, 1473, 2422, 1424, 1680, 3710, + 1547, 1548, 1436, 1683, 1435, 1029, 3034, 3035, 1434, 1433, + 4116, 2363, 1553, 1041, 1553, 1187, 2696, 2421, 2764, 704, + 1658, 3436, 2916, 1415, 1416, 3415, 1445, 3288, 1425, 1426, + 1427, 1428, 1429, 2645, 1431, 1443, 1448, 2227, 2228, 1893, + 1437, 2230, 2241, 3105, 3104, 3842, 2768, 1643, 1903, 3226, + 1221, 975, 976, 977, 1655, 1505, 1506, 2338, 2337, 1613, + 2336, 1616, 1617, 1675, 1676, 1029, 1408, 697, 1532, 1534, + 697, 697, 1610, 1618, 1619, 1902, 1582, 1492, 1545, 1546, + 1495, 973, 1553, 1691, 942, 1536, 1069, 1406, 1407, 1031, + 2344, 3618, 1030, 1069, 3170, 1647, 2335, 2476, 1901, 1187, + 1780, 1624, 1625, 3770, 931, 1423, 932, 3771, 3671, 1764, + 3247, 1730, 1811, 1812, 1829, 1815, 1629, 678, 4013, 1633, + 1632, 1561, 1573, 1830, 1455, 1567, 3018, 2913, 3704, 3705, + 4134, 2423, 1464, 1593, 2938, 2939, 1837, 1605, 1839, 1474, + 1840, 1841, 1842, 1579, 4113, 4114, 1594, 1493, 1494, 1031, + 1496, 1497, 1030, 1498, 2279, 1714, 1679, 2278, 1467, 1471, + 1471, 1471, 1717, 2700, 2701, 1678, 2948, 2950, 2951, 2952, + 2949, 3699, 970, 2428, 1184, 3698, 1457, 2426, 1184, 3377, + 1457, 1187, 3227, 1467, 1467, 2787, 2844, 1892, 1699, 3975, + 1258, 1895, 1733, 1897, 3331, 2355, 1695, 1458, 2843, 4128, + 1666, 1904, 1906, 1669, 1907, 2552, 1909, 1910, 2788, 2789, + 667, 1581, 4122, 1872, 1661, 4110, 1918, 1553, 1923, 1924, + 935, 1926, 1516, 673, 1814, 1219, 3327, 1222, 673, 696, + 1258, 1553, 696, 696, 3289, 981, 2519, 1667, 1946, 2632, + 1670, 1671, 1689, 3439, 1685, 1690, 695, 2765, 1688, 695, + 695, 1553, 1684, 1819, 1820, 1821, 1875, 1516, 1708, 1713, + 3389, 2937, 691, 1029, 1828, 1220, 1835, 1711, 1894, 1836, + 693, 939, 2220, 693, 693, 2316, 937, 936, 935, 1042, + 2660, 4069, 1973, 1752, 3301, 4123, 1849, 1850, 4070, 4037, + 3299, 1980, 1980, 3186, 1516, 692, 1516, 1516, 692, 692, + 673, 673, 1220, 2047, 1918, 2051, 1871, 2449, 1553, 2055, + 2056, 1687, 2254, 2354, 2071, 3162, 649, 694, 2520, 3160, + 694, 694, 3331, 1258, 2520, 3037, 1928, 1373, 1883, 934, + 649, 1933, 1553, 1686, 937, 936, 4034, 1759, 1760, 1927, + 1977, 2844, 1260, 1261, 1262, 1259, 2755, 1031, 1925, 2650, + 1030, 2135, 2637, 938, 4070, 913, 914, 915, 916, 673, + 1918, 1553, 4038, 2118, 2520, 673, 673, 673, 708, 708, + 1878, 4028, 2211, 1700, 1843, 2128, 2129, 2130, 2131, 4010, + 3959, 2073, 2137, 3958, 2405, 2321, 2002, 3952, 2253, 223, + 2315, 2049, 223, 223, 3927, 223, 1260, 1261, 1262, 1259, + 1873, 2109, 2314, 1986, 1987, 3915, 2286, 2202, 1879, 4035, + 1912, 1983, 1260, 1261, 1262, 1259, 1738, 1739, 1740, 1741, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 2104, 2057, + 2101, 2102, 1761, 1762, 1444, 1829, 1829, 2179, 3862, 1767, + 1539, 3447, 3128, 1961, 2255, 1963, 1964, 1829, 1829, 1913, + 2419, 2422, 4011, 1258, 2196, 1816, 1258, 2087, 2251, 1970, + 2255, 4141, 2114, 2120, 2121, 2122, 3735, 2220, 2114, 2114, + 2114, 1966, 1922, 2094, 1942, 2078, 2145, 2080, 3916, 2148, + 2149, 1838, 2151, 1971, 1943, 2392, 1938, 1946, 2099, 2100, + 2117, 1553, 2209, 3861, 2133, 1956, 4124, 1962, 3856, 2190, + 1914, 1915, 1916, 1948, 1949, 3487, 1954, 918, 2181, 1984, + 1985, 3863, 1929, 1930, 1931, 1932, 1222, 3041, 2846, 786, + 796, 1643, 2663, 2662, 1979, 1981, 2048, 3855, 2654, 787, + 3854, 788, 792, 795, 791, 789, 790, 753, 3853, 2053, + 913, 914, 915, 916, 2059, 2203, 697, 3833, 2072, 2399, + 2186, 2077, 3832, 2079, 2088, 1066, 1068, 1069, 2274, 3805, + 1069, 2259, 2201, 2054, 2140, 3550, 2378, 1066, 1068, 1069, + 1291, 2255, 3552, 3500, 3465, 3407, 1260, 1261, 1262, 1259, + 3403, 1982, 2115, 3309, 793, 2174, 2423, 2116, 2126, 2123, + 2124, 2418, 2412, 2417, 3012, 2415, 2420, 2174, 1663, 2741, + 2255, 1957, 1958, 2255, 1309, 2729, 2142, 2407, 2721, 1207, + 2676, 2255, 1171, 2658, 2646, 1166, 1711, 794, 1967, 1968, + 2220, 1564, 2391, 1467, 2639, 2220, 2103, 1275, 2634, 933, + 3920, 2159, 2255, 3362, 1100, 1101, 1102, 1471, 1978, 2626, + 2624, 2622, 2419, 2422, 3252, 2552, 3501, 3466, 3408, 1471, + 2421, 2620, 3088, 3404, 2180, 2192, 3310, 1946, 2377, 1543, + 4135, 2187, 1947, 2189, 1066, 1068, 1069, 2520, 1099, 3243, + 1544, 1096, 2378, 4097, 3921, 2317, 2200, 2198, 1258, 2326, + 2327, 1258, 2330, 1258, 1965, 2333, 2378, 2635, 2234, 2293, + 1499, 2292, 918, 2447, 2277, 3897, 2339, 2640, 2268, 2204, + 1972, 2635, 751, 1975, 1976, 673, 673, 673, 696, 3804, + 3762, 3701, 2627, 2625, 2621, 2309, 2199, 2217, 2267, 2266, + 673, 673, 673, 673, 2621, 695, 2256, 2219, 1672, 2612, + 2257, 2378, 2233, 2375, 1276, 1277, 1278, 1279, 1280, 1281, + 1282, 1275, 2379, 2380, 2381, 1468, 2384, 1516, 2316, 693, + 3244, 3672, 1752, 2235, 1818, 1817, 1818, 1817, 1106, 1107, + 3479, 1453, 1258, 1111, 1258, 1454, 2247, 1258, 2242, 2143, + 3700, 1258, 3686, 1516, 692, 1541, 2683, 2606, 2423, 2287, + 2288, 940, 2290, 2418, 2412, 2417, 1771, 2415, 2420, 2297, + 2441, 1258, 1258, 1453, 3245, 3673, 694, 1454, 3042, 2255, + 2220, 1673, 3477, 3645, 3480, 2236, 2237, 3457, 2348, 2349, + 2350, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1275, 2366, 2367, 2368, 2369, 1758, 3977, 3332, + 2281, 1093, 1094, 1095, 1098, 2396, 1097, 2448, 3323, 2398, + 3315, 2400, 2421, 1755, 1757, 1754, 3478, 1756, 673, 1980, + 1278, 1279, 1280, 1281, 1282, 1275, 1908, 2524, 2524, 2071, + 2524, 3311, 2310, 2312, 2313, 3221, 1469, 709, 1855, 2971, + 1848, 2970, 2812, 2318, 1260, 1261, 1262, 1259, 2760, 1540, + 649, 649, 2673, 2638, 2543, 3365, 2184, 2183, 1187, 2182, + 2401, 1440, 1439, 1189, 1553, 673, 1260, 1261, 1262, 1259, + 2238, 2239, 1259, 1771, 2345, 2248, 3713, 2616, 2411, 2410, + 673, 1260, 1261, 1262, 1259, 3712, 1187, 2596, 667, 1332, + 3363, 2547, 3059, 1597, 1592, 2143, 2071, 1262, 1259, 2602, + 2907, 2604, 2905, 2884, 223, 1260, 1261, 1262, 1259, 2388, + 2404, 2882, 4131, 1597, 2394, 3692, 2598, 2395, 3646, 3647, + 3639, 1522, 1311, 4107, 2743, 2526, 2744, 2530, 798, 142, + 2385, 2538, 3445, 2539, 142, 1310, 4106, 2528, 1260, 1261, + 1262, 1259, 4105, 2397, 2642, 4103, 2959, 2685, 1833, 1066, + 1068, 1069, 2544, 2545, 4102, 4041, 2424, 2425, 2957, 2430, + 2652, 2653, 2656, 1834, 4009, 2209, 4008, 3922, 1559, 2780, + 2955, 2944, 1553, 3858, 1553, 3846, 1553, 4130, 2554, 3836, + 3640, 1187, 3826, 2114, 3753, 2532, 3675, 1802, 3674, 2675, + 3492, 2607, 3446, 1260, 1261, 1262, 1259, 679, 3481, 3444, + 142, 2666, 2608, 3211, 2601, 1333, 2958, 3084, 1260, 1261, + 1262, 1259, 2493, 3054, 2499, 1553, 1187, 1598, 2956, 3053, + 2707, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1264, 2533, + 2954, 2943, 2942, 2560, 2941, 2714, 1260, 1261, 1262, 1259, + 1553, 3107, 1551, 2940, 2453, 2932, 2270, 2456, 2457, 2458, + 2459, 2460, 2461, 2462, 2926, 2702, 2465, 2466, 2467, 2468, + 2469, 2470, 2471, 2472, 2473, 2474, 2475, 1551, 2477, 2478, + 2479, 2480, 2481, 2551, 2482, 2548, 2925, 2924, 2923, 2393, + 2715, 2756, 1532, 1534, 4019, 2628, 2540, 2320, 2597, 2762, + 2763, 2600, 2687, 2766, 2687, 2162, 2718, 2719, 1283, 1284, + 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1275, 1187, 1471, + 2161, 1260, 1261, 1262, 1259, 1553, 2269, 2691, 1516, 1260, + 1261, 1262, 1259, 2672, 1516, 2051, 2713, 3121, 2670, 2160, + 2156, 1067, 2705, 2842, 2155, 2110, 142, 2386, 2387, 2848, + 2681, 1898, 2849, 1260, 1261, 1262, 1259, 2389, 2390, 2667, + 1896, 142, 1664, 142, 2648, 1391, 2657, 2659, 2811, 2252, + 2859, 1798, 3451, 2664, 3456, 3198, 4127, 2747, 1795, 4125, + 1187, 3590, 1797, 1794, 1796, 1800, 1801, 4095, 2881, 4058, + 1799, 1260, 1261, 1262, 1259, 1187, 1187, 1187, 1980, 1169, + 3120, 1187, 4057, 2891, 2892, 2893, 2894, 1187, 2901, 4054, + 2902, 2903, 3984, 2904, 3983, 2906, 2703, 2824, 2693, 3783, + 2829, 2826, 3963, 2839, 2677, 2678, 2901, 1260, 1261, 1262, + 1259, 3797, 3798, 1260, 1261, 1262, 1259, 1711, 2524, 3907, + 2250, 2860, 3650, 3901, 3882, 2809, 2840, 1260, 1261, 1262, + 1259, 2825, 2960, 3873, 3850, 2862, 3845, 3614, 1168, 1069, + 2002, 649, 1535, 3844, 3801, 2560, 3787, 3785, 3754, 2051, + 3694, 2680, 1263, 1187, 2071, 2071, 2071, 2071, 2071, 2071, + 1293, 2791, 2850, 2793, 1260, 1261, 1262, 1259, 3654, 1303, + 1187, 2071, 3643, 2875, 2524, 3628, 2879, 3627, 2965, 746, + 2879, 3623, 748, 2262, 3621, 2790, 3619, 747, 2886, 3616, + 3020, 3613, 1553, 3612, 2807, 1312, 3588, 2832, 1260, 1261, + 1262, 1259, 2599, 673, 673, 3586, 3559, 2876, 2847, 3602, + 8, 2841, 7, 3556, 1805, 1806, 1807, 1808, 1809, 1810, + 1803, 1804, 2876, 2887, 2888, 3554, 2964, 3601, 2890, 3441, + 2858, 2861, 4133, 3423, 2897, 2864, 1260, 1261, 1262, 1259, + 3540, 2877, 3416, 3400, 3395, 3951, 2883, 3398, 3008, 4083, + 3393, 3343, 3321, 2889, 1260, 1261, 1262, 1259, 2874, 223, + 1922, 3320, 3318, 3317, 223, 3312, 3124, 1260, 1261, 1262, + 1259, 1260, 1261, 1262, 1259, 3021, 2976, 2934, 2922, 2798, + 1260, 1261, 1262, 1259, 2716, 4082, 1829, 3307, 1829, 3306, + 3222, 3069, 3038, 1260, 1261, 1262, 1259, 2724, 2725, 3184, + 2988, 3183, 3123, 2730, 3174, 3083, 3031, 3032, 3172, 2966, + 2972, 1553, 3169, 3167, 3090, 2325, 3098, 2988, 2989, 2990, + 2991, 2992, 2993, 2994, 3095, 3074, 3052, 3005, 3009, 1260, + 1261, 1262, 1259, 3011, 3010, 1273, 1283, 1284, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1275, 3043, 3027, 2953, 2945, + 2935, 3047, 3028, 2933, 2929, 2880, 2928, 2927, 3122, 1617, + 2769, 2761, 2757, 854, 853, 3025, 2649, 2340, 3064, 1618, + 1619, 2740, 2334, 2969, 1875, 2914, 2915, 2331, 2165, 3068, + 3076, 2158, 1886, 1885, 2851, 1260, 1261, 1262, 1259, 1665, + 2930, 2931, 3066, 2856, 2857, 1340, 1624, 1625, 1260, 1261, + 1262, 1259, 1336, 3077, 1335, 1172, 1629, 1069, 922, 1633, + 1632, 3939, 3045, 3935, 3044, 2967, 3171, 3779, 2739, 1069, + 3092, 3778, 3767, 3175, 3176, 3177, 3179, 2738, 3181, 3182, + 3763, 3067, 3062, 3615, 3080, 3597, 3065, 1187, 3569, 3060, + 3087, 3472, 3079, 1187, 3078, 1260, 1261, 1262, 1259, 3201, + 3471, 3469, 3086, 3438, 1260, 1261, 1262, 1259, 2852, 3215, + 3412, 3410, 3099, 2855, 673, 3409, 3100, 206, 3406, 197, + 168, 3119, 3405, 3399, 3397, 3378, 3368, 3367, 3232, 1187, + 3354, 3353, 673, 3253, 673, 1187, 1187, 3188, 1591, 3106, + 3185, 3110, 3111, 2737, 2071, 2375, 3159, 3251, 2736, 3126, + 3115, 3116, 3117, 3109, 3108, 142, 142, 142, 1067, 3112, + 3102, 3114, 3036, 2623, 2619, 2618, 3113, 2441, 2298, 3225, + 1260, 1261, 1262, 1259, 3161, 1260, 1261, 1262, 1259, 3277, + 2291, 3280, 2285, 3280, 3280, 2284, 2283, 2282, 1187, 2280, + 202, 4040, 3166, 2276, 3165, 3228, 2275, 2273, 2264, 2735, + 2261, 2260, 2164, 1869, 1868, 1867, 3302, 2824, 1832, 1831, + 1822, 1565, 3298, 1563, 3235, 1553, 1553, 3223, 3957, 1330, + 3240, 3934, 3868, 3264, 3266, 3255, 1260, 1261, 1262, 1259, + 3203, 1292, 206, 3865, 3187, 3236, 3852, 3237, 3847, 3748, + 2876, 3747, 1551, 1551, 2734, 3729, 3711, 3260, 3707, 1066, + 1068, 1069, 3249, 1069, 3685, 3303, 3304, 3669, 3275, 1069, + 3234, 3570, 673, 3224, 3250, 2733, 3238, 3239, 3201, 3567, + 3246, 1260, 1261, 1262, 1259, 3276, 2876, 3538, 3537, 3534, + 3533, 1516, 2876, 2876, 2051, 2051, 1069, 3285, 3259, 3499, + 2411, 2410, 1260, 1261, 1262, 1259, 3496, 3494, 3459, 3281, + 3282, 3286, 3118, 1612, 1623, 202, 1723, 1724, 1725, 1726, + 1727, 1614, 3300, 1844, 1845, 1846, 1847, 2732, 1628, 1851, + 1852, 1853, 1854, 1856, 1857, 1858, 1859, 1860, 1861, 1862, + 1863, 1864, 1865, 1866, 1631, 2876, 1620, 1447, 1187, 2731, + 2999, 2961, 2707, 2885, 1260, 1261, 1262, 1259, 1768, 2835, + 3366, 2834, 1772, 1773, 1774, 1775, 2827, 2792, 2742, 2633, + 3308, 2542, 1813, 2483, 2376, 2114, 1260, 1261, 1262, 1259, + 1823, 2347, 2346, 2319, 1753, 3133, 3134, 3837, 202, 2125, + 1379, 3135, 3136, 3137, 3138, 1882, 3139, 3140, 3141, 3142, + 3143, 3144, 3145, 3146, 3147, 3148, 3149, 673, 3326, 3328, + 3329, 3322, 3314, 3319, 3339, 3313, 3340, 1696, 1646, 1621, + 1509, 1510, 1390, 1512, 1513, 1375, 1517, 1518, 1519, 2728, + 1371, 1370, 3316, 1876, 1369, 1368, 3347, 1367, 3350, 3351, + 3352, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, + 1281, 1282, 1275, 1366, 1365, 3356, 1260, 1261, 1262, 1259, + 1568, 1569, 1570, 1571, 1572, 1364, 1574, 1575, 1576, 1577, + 1578, 1363, 1362, 1361, 1584, 1585, 1586, 1587, 1360, 3379, + 2137, 3420, 1359, 3283, 3422, 1358, 1357, 1356, 3424, 1355, + 1354, 3381, 1353, 3430, 1352, 2560, 3382, 1351, 1350, 2687, + 3386, 1349, 1348, 1347, 1346, 3949, 3683, 2727, 1343, 3401, + 3388, 1342, 1341, 1339, 1338, 1950, 1337, 3258, 3431, 1334, + 1327, 1326, 3391, 2726, 3385, 1324, 1323, 1322, 673, 2051, + 3425, 1321, 3427, 1320, 1260, 1261, 1262, 1259, 1319, 1318, + 3464, 1969, 1317, 1316, 1562, 2720, 1315, 1314, 679, 1313, + 1260, 1261, 1262, 1259, 1308, 1307, 1306, 2524, 2071, 3484, + 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, + 1282, 1275, 1260, 1261, 1262, 1259, 1305, 3417, 1304, 3435, + 1224, 3254, 3502, 3437, 142, 1187, 3256, 3257, 1170, 3419, + 3440, 3413, 3335, 3336, 3277, 3947, 3434, 3945, 1187, 3535, + 1876, 2383, 2361, 1212, 4075, 1876, 1876, 4073, 4024, 3338, + 1187, 2813, 3549, 2553, 2167, 1223, 1553, 2997, 3007, 3002, + 2710, 3345, 1069, 3344, 3003, 3000, 3452, 3572, 2996, 1069, + 3001, 2114, 3486, 125, 3341, 3573, 673, 3004, 2051, 2514, + 2515, 3006, 1187, 1551, 3454, 2995, 3532, 1260, 1261, 1262, + 1259, 2706, 142, 67, 3482, 2144, 3551, 66, 2147, 142, + 3976, 2150, 3884, 3690, 2152, 3489, 3483, 2647, 2636, 1441, + 3525, 3220, 142, 3082, 223, 142, 142, 2682, 1260, 1261, + 1262, 1259, 1940, 1941, 2631, 3571, 2451, 1187, 142, 3563, + 3539, 3560, 3545, 3544, 1935, 1936, 1937, 3541, 3273, 3574, + 3274, 3357, 675, 3548, 1260, 1261, 1262, 1259, 3383, 3384, + 2039, 1606, 3553, 2671, 3555, 1660, 3330, 2652, 2653, 3557, + 2195, 3558, 676, 1640, 3562, 1766, 677, 3564, 2341, 3617, + 2127, 1218, 3503, 3565, 3561, 3196, 3189, 2863, 3346, 2114, + 3625, 2836, 2403, 3595, 2371, 3542, 1944, 1911, 1818, 1817, + 1187, 4086, 1260, 1261, 1262, 1259, 3849, 2897, 1386, 1387, + 3305, 3581, 1384, 1385, 2496, 3591, 1382, 1383, 1380, 1381, + 1187, 1553, 1553, 3592, 2489, 2052, 1508, 3232, 3622, 1507, + 3624, 1251, 2185, 3349, 3030, 2342, 2197, 1460, 1459, 2988, + 3663, 1432, 1483, 3663, 4047, 4045, 4002, 3973, 1551, 1764, + 3972, 3970, 3911, 3869, 3743, 1187, 3679, 1187, 3742, 3657, + 3658, 3652, 3460, 3461, 3462, 3576, 3682, 3651, 3684, 3467, + 3468, 3680, 3587, 3402, 1553, 2244, 3633, 3653, 3630, 2249, + 3635, 3644, 3634, 3375, 2988, 3374, 3360, 2258, 2436, 2406, + 1662, 3359, 673, 3040, 1187, 1187, 1457, 3421, 1187, 1187, + 3668, 1764, 3656, 4077, 4076, 4076, 3667, 3611, 3085, 2767, + 2263, 1394, 3678, 3660, 2181, 3486, 1209, 4077, 3731, 3709, + 3355, 3688, 1184, 1475, 2265, 3726, 3532, 75, 1946, 3695, + 3691, 3740, 2272, 913, 914, 915, 916, 2, 1184, 210, + 3, 3715, 3716, 3749, 3750, 3727, 3728, 2876, 4099, 4100, + 3525, 1, 1069, 2748, 2289, 1880, 1553, 1388, 917, 2294, + 2295, 2296, 912, 1529, 2299, 2300, 2301, 2302, 2303, 2304, + 2305, 2306, 2307, 2308, 3737, 2534, 3493, 2105, 3495, 3780, + 3736, 1557, 1884, 1551, 919, 3013, 3738, 3014, 3348, 3016, + 3773, 2770, 2216, 2977, 2487, 3714, 3761, 2351, 3214, 1442, + 974, 1824, 1717, 1677, 1717, 1201, 3784, 1674, 3786, 3760, + 3756, 2119, 1200, 1198, 1769, 800, 3806, 2170, 2962, 2936, + 3768, 3772, 3739, 4085, 4119, 4039, 3813, 4088, 3789, 3485, + 3818, 1694, 784, 3811, 3964, 3874, 4043, 3876, 3488, 3759, + 2221, 1256, 3061, 1001, 841, 811, 1187, 1325, 1653, 3131, + 3129, 810, 2070, 3449, 2803, 3744, 3033, 3835, 3820, 2502, + 3841, 3800, 1002, 2153, 3871, 3757, 1607, 1611, 2402, 3812, + 3828, 3930, 3595, 3689, 3269, 2871, 1635, 3925, 3815, 3814, + 3497, 3607, 3605, 3606, 716, 3827, 3831, 2084, 647, 1051, + 1187, 3730, 2166, 717, 2382, 1553, 2509, 2513, 2514, 2515, + 2510, 2518, 2511, 2516, 3990, 3809, 2512, 3851, 2517, 954, + 3432, 2360, 3603, 3848, 3604, 955, 947, 2822, 2821, 1734, + 1265, 1751, 1551, 3150, 3151, 1302, 755, 142, 2246, 2800, + 142, 142, 3520, 142, 3026, 3859, 74, 3857, 73, 72, + 71, 231, 802, 230, 1069, 3781, 3648, 3960, 4090, 781, + 780, 3903, 3890, 779, 778, 777, 776, 2507, 2508, 3870, + 2506, 2504, 2503, 2066, 2065, 3039, 3358, 2132, 2134, 3230, + 3898, 2900, 3899, 1067, 2895, 1991, 142, 1989, 1520, 2431, + 2438, 3912, 1988, 3733, 4021, 1067, 1876, 3734, 1876, 3392, + 3900, 3598, 3940, 1717, 3941, 3706, 2946, 3594, 1934, 2427, + 2008, 142, 2917, 3906, 2005, 2004, 2908, 1876, 1876, 3702, + 3929, 3696, 3687, 1187, 3914, 2036, 3816, 3662, 3504, 3505, + 3511, 1553, 3693, 2370, 3954, 1120, 1116, 1118, 1119, 3961, + 3944, 3946, 3948, 3950, 1117, 2692, 3324, 3928, 3923, 2408, + 3191, 1591, 2786, 2785, 3962, 3937, 2783, 2782, 1551, 1417, + 3902, 3986, 3866, 3867, 3629, 2558, 3732, 2556, 1167, 3337, + 3943, 3953, 3676, 3677, 3333, 2178, 3342, 2998, 2193, 3081, + 3969, 3967, 2067, 2063, 1553, 2062, 1091, 3818, 1090, 1588, + 3981, 2979, 1292, 2497, 3791, 1939, 3985, 948, 2358, 109, + 2641, 3982, 2644, 4012, 41, 122, 108, 185, 59, 4020, + 184, 1551, 58, 120, 4003, 182, 57, 4005, 103, 4006, + 4007, 102, 119, 180, 4004, 2509, 2513, 2514, 2515, 2510, + 2518, 2511, 2516, 56, 215, 2512, 4036, 2517, 214, 217, + 216, 213, 2609, 2610, 4029, 212, 4030, 1595, 4031, 211, + 4032, 3974, 4033, 3666, 3956, 4046, 907, 4048, 4049, 4044, + 44, 43, 4042, 186, 42, 110, 2684, 60, 40, 2690, + 3890, 39, 38, 1187, 4052, 34, 13, 12, 35, 4053, + 2708, 2709, 3860, 22, 21, 1681, 20, 26, 2711, 2712, + 32, 31, 135, 3841, 4065, 134, 30, 133, 132, 131, + 130, 129, 4067, 4068, 2717, 4066, 4074, 4071, 4072, 4084, + 128, 4092, 127, 29, 4091, 19, 4078, 4079, 4080, 4081, + 51, 50, 49, 48, 47, 46, 9, 123, 118, 116, + 4104, 28, 4096, 1723, 1876, 1187, 117, 114, 115, 113, + 112, 111, 106, 104, 86, 85, 4108, 84, 3929, 4109, + 4111, 99, 98, 97, 96, 4117, 95, 94, 4121, 3913, + 92, 4118, 93, 1000, 83, 3917, 3918, 82, 81, 3681, + 80, 79, 101, 206, 64, 197, 168, 107, 105, 90, + 100, 91, 89, 88, 87, 4129, 78, 77, 76, 166, + 165, 164, 198, 163, 4092, 4137, 3938, 4091, 4136, 189, + 162, 160, 161, 199, 3509, 159, 4121, 4138, 158, 2853, + 2854, 157, 4142, 156, 155, 154, 52, 53, 54, 55, + 4063, 176, 140, 1274, 1273, 1283, 1284, 1276, 1277, 1278, + 1279, 1280, 1281, 1282, 1275, 175, 177, 126, 179, 181, + 178, 183, 173, 171, 174, 3521, 202, 172, 170, 69, + 11, 121, 18, 4, 0, 0, 0, 0, 3512, 0, + 0, 0, 0, 0, 0, 1286, 0, 1290, 0, 3507, + 0, 0, 0, 0, 3529, 3530, 0, 0, 0, 0, + 3508, 0, 1717, 1287, 1289, 1285, 0, 1288, 1274, 1273, + 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1275, + 3127, 0, 0, 0, 0, 0, 0, 2527, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3513, 0, 0, + 0, 0, 0, 148, 149, 0, 150, 151, 0, 0, + 0, 152, 0, 0, 153, 0, 0, 0, 4055, 4056, + 0, 0, 0, 0, 0, 4060, 4061, 4062, 0, 0, + 1876, 0, 0, 0, 1274, 1273, 1283, 1284, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1275, 0, 0, 0, 0, + 0, 0, 0, 0, 2070, 0, 0, 0, 2679, 0, + 0, 0, 142, 1274, 1273, 1283, 1284, 1276, 1277, 1278, + 1279, 1280, 1281, 1282, 1275, 0, 0, 167, 195, 204, + 196, 124, 1274, 1273, 1283, 1284, 1276, 1277, 1278, 1279, + 1280, 1281, 1282, 1275, 0, 3528, 0, 2417, 0, 0, + 194, 188, 187, 0, 0, 0, 0, 70, 0, 0, + 3046, 0, 3048, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3517, 0, 0, 2243, 0, 0, 0, 0, + 0, 1876, 0, 0, 0, 0, 1876, 0, 0, 0, + 0, 0, 0, 0, 3514, 3518, 3516, 3515, 2195, 1274, + 1273, 1283, 1284, 1276, 1277, 1278, 1279, 1280, 1281, 1282, + 1275, 0, 0, 0, 0, 0, 0, 0, 190, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3101, 0, 3523, 3524, 206, 64, 197, + 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 200, 0, 0, + 0, 3125, 0, 189, 0, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, + 0, 0, 193, 0, 137, 2037, 140, 0, 3531, 0, + 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, + 3510, 126, 0, 0, 0, 0, 3522, 0, 0, 0, + 202, 0, 0, 0, 0, 3661, 0, 0, 0, 0, + 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, + 0, 138, 0, 0, 0, 142, 0, 0, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 202, 0, 0, 2037, 0, + 0, 0, 0, 1998, 0, 2014, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 149, 0, + 150, 151, 0, 0, 0, 152, 0, 0, 153, 0, + 0, 0, 0, 65, 2039, 2007, 0, 0, 0, 0, + 0, 0, 0, 0, 2040, 2041, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3284, 0, 0, 3527, 0, 146, 203, + 2006, 147, 0, 2030, 0, 0, 169, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 0, 2014, 0, + 0, 167, 195, 204, 196, 124, 0, 0, 0, 0, + 0, 0, 2070, 2070, 2070, 2070, 2070, 2070, 0, 0, + 0, 0, 0, 0, 194, 188, 187, 0, 0, 2070, + 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3526, 0, 0, 0, 0, 139, 45, 0, + 0, 0, 0, 0, 62, 0, 2030, 2018, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2024, 0, + 0, 0, 0, 0, 0, 0, 0, 143, 144, 0, + 0, 145, 190, 191, 192, 0, 0, 0, 2012, 2046, + 0, 0, 2013, 2015, 2017, 0, 2019, 2020, 2021, 2025, + 2026, 2027, 2029, 2032, 2033, 2034, 0, 142, 0, 0, + 0, 0, 142, 2022, 2031, 2023, 0, 0, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, + 1997, 1999, 1996, 142, 0, 1993, 0, 0, 0, 0, + 2018, 0, 136, 0, 0, 142, 193, 0, 137, 0, + 2038, 2024, 0, 0, 0, 0, 0, 0, 0, 2009, + 0, 1992, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2012, 2046, 0, 0, 2013, 2015, 2017, 0, 2019, + 2020, 2021, 2025, 2026, 2027, 2029, 2032, 2033, 2034, 2037, + 0, 0, 0, 0, 1998, 0, 2022, 2031, 2023, 3394, + 2035, 0, 0, 0, 0, 138, 3396, 0, 2001, 0, + 0, 0, 0, 0, 0, 0, 0, 2011, 63, 0, + 0, 0, 0, 0, 2010, 2039, 2007, 0, 0, 0, + 0, 0, 0, 2038, 0, 2040, 2041, 0, 3411, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2028, 0, + 0, 0, 0, 0, 0, 0, 0, 2016, 0, 0, + 0, 2006, 0, 0, 0, 1994, 1995, 65, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2014, + 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2011, 0, 146, 203, 0, 147, 0, 2010, 0, 0, + 169, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1067, 0, 142, + 0, 2028, 0, 0, 0, 142, 0, 0, 0, 0, + 2016, 0, 2070, 0, 0, 0, 0, 2030, 0, 0, + 0, 0, 0, 2043, 2042, 0, 1139, 0, 0, 0, + 0, 0, 142, 0, 0, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 139, 45, 0, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 1876, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2003, 0, 0, 0, + 1876, 143, 144, 3566, 0, 145, 3568, 0, 0, 0, + 0, 1997, 2866, 1996, 0, 0, 2865, 0, 0, 0, + 0, 2018, 0, 0, 0, 0, 0, 3575, 0, 0, + 0, 0, 2024, 0, 0, 0, 0, 0, 2045, 0, + 0, 2044, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2012, 2046, 0, 0, 2013, 2015, 2017, 0, + 2019, 2020, 2021, 2025, 2026, 2027, 2029, 2032, 2033, 2034, + 1124, 0, 0, 0, 0, 0, 0, 2022, 2031, 2023, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2001, + 0, 1147, 1151, 1153, 1155, 1157, 1158, 1160, 0, 1165, + 1161, 1162, 1163, 1164, 0, 1142, 1143, 1144, 1145, 1122, + 1123, 1148, 0, 1125, 2038, 1127, 1128, 1129, 1130, 1126, + 1131, 1132, 1133, 1134, 1135, 1138, 1140, 1136, 1137, 1146, + 0, 0, 0, 0, 0, 0, 0, 1150, 1152, 1154, + 1156, 1159, 0, 0, 0, 0, 1994, 1995, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1141, 0, 0, + 0, 2011, 0, 728, 727, 734, 724, 0, 2010, 0, + 0, 0, 1139, 0, 0, 0, 731, 732, 0, 733, + 737, 0, 0, 718, 0, 0, 0, 0, 0, 0, + 0, 0, 2028, 742, 0, 0, 0, 0, 0, 0, + 0, 2016, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2043, 2042, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1802, 0, 0, 0, 0, 746, + 0, 0, 748, 0, 0, 0, 0, 747, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, + 0, 0, 0, 0, 0, 142, 0, 2003, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1139, 0, 0, 0, 0, 0, 1124, 0, 0, 0, + 1114, 0, 0, 0, 2688, 2689, 0, 0, 0, 2045, + 0, 0, 2044, 0, 0, 0, 2070, 1147, 1151, 1153, + 1155, 1157, 1158, 1160, 0, 1165, 1161, 1162, 1163, 1164, + 0, 1142, 1143, 1144, 1145, 1122, 1123, 1148, 0, 1125, + 0, 1127, 1128, 1129, 1130, 1126, 1131, 1132, 1133, 1134, + 1135, 1138, 1140, 1136, 1137, 1146, 0, 0, 0, 0, + 0, 0, 0, 1150, 1152, 1154, 1156, 1159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 719, 721, 720, + 0, 0, 0, 0, 0, 0, 0, 0, 726, 0, + 0, 0, 0, 1141, 0, 0, 0, 0, 1798, 0, + 730, 0, 0, 0, 1124, 1795, 0, 745, 0, 1797, + 1794, 1796, 1800, 1801, 723, 1312, 0, 1799, 713, 0, + 0, 0, 142, 0, 0, 1147, 1151, 1153, 1155, 1157, + 1158, 1160, 0, 1165, 1161, 1162, 1163, 1164, 1149, 1142, + 1143, 1144, 1145, 1122, 1123, 1148, 0, 1125, 0, 1127, + 1128, 1129, 1130, 1126, 1131, 1132, 1133, 1134, 1135, 1138, + 1140, 1136, 1137, 1146, 0, 0, 0, 0, 0, 0, + 0, 1150, 1152, 1154, 1156, 1159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3936, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1141, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, + 0, 0, 725, 729, 735, 0, 736, 738, 0, 0, + 739, 740, 741, 0, 0, 743, 744, 0, 0, 0, + 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 1793, 1805, 1806, 1807, 1808, 1809, 1810, 1803, 1804, 0, + 0, 0, 4017, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 818, 0, 0, 0, 0, 0, 0, 0, + 0, 402, 0, 0, 532, 565, 554, 638, 520, 0, + 0, 0, 0, 0, 0, 770, 0, 0, 0, 337, + 0, 0, 370, 569, 551, 561, 552, 537, 538, 539, + 546, 349, 540, 541, 542, 512, 543, 513, 544, 545, + 809, 568, 519, 434, 386, 586, 585, 0, 0, 878, + 886, 0, 0, 0, 0, 0, 0, 0, 0, 874, + 0, 0, 4017, 0, 762, 0, 0, 799, 854, 853, + 786, 796, 0, 0, 310, 229, 514, 634, 516, 515, + 787, 0, 788, 792, 795, 791, 789, 790, 0, 869, + 0, 0, 0, 0, 1149, 0, 754, 766, 0, 771, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 722, 0, 0, 0, 0, 0, 0, 4017, 0, + 0, 0, 0, 763, 764, 0, 0, 0, 0, 819, + 142, 765, 0, 0, 814, 793, 797, 0, 0, 0, + 0, 300, 441, 460, 311, 429, 473, 316, 437, 452, + 306, 401, 426, 0, 0, 302, 458, 436, 383, 360, + 361, 301, 0, 420, 335, 351, 332, 399, 794, 817, + 821, 331, 892, 815, 468, 304, 0, 467, 398, 454, + 459, 384, 377, 4140, 303, 456, 382, 376, 364, 341, + 893, 365, 366, 355, 410, 374, 411, 356, 388, 387, + 389, 0, 0, 0, 0, 0, 496, 497, 0, 0, + 645, 0, 1149, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 627, 812, 0, 631, 0, 470, 0, 0, + 876, 0, 0, 0, 440, 0, 0, 367, 0, 0, + 0, 816, 0, 423, 404, 889, 0, 0, 421, 372, + 455, 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, - 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, - 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, - 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, - 478, 484, 485, 574, 0, 490, 662, 663, 664, 499, - 0, 414, 0, 504, 505, 506, 508, 509, 510, 511, - 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, - 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, - 381, 417, 299, 346, 291, 292, 657, 874, 400, 597, - 630, 631, 522, 0, 889, 869, 871, 872, 876, 880, - 881, 882, 883, 884, 886, 888, 892, 656, 0, 576, - 591, 660, 590, 653, 406, 0, 428, 588, 535, 0, - 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, - 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, - 614, 615, 616, 617, 618, 619, 620, 613, 891, 557, - 534, 560, 475, 537, 536, 0, 0, 571, 821, 572, - 573, 390, 391, 392, 393, 878, 598, 315, 494, 416, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 564, 561, 665, 0, 621, 622, 0, 0, 488, - 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, - 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, - 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, - 434, 378, 551, 578, 900, 873, 899, 901, 902, 898, - 903, 904, 885, 776, 0, 828, 896, 895, 897, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, - 548, 449, 324, 285, 320, 321, 328, 654, 651, 454, - 655, 783, 293, 528, 371, 0, 415, 344, 593, 594, - 0, 645, 862, 835, 836, 837, 773, 838, 832, 833, - 774, 834, 863, 826, 859, 860, 802, 829, 839, 858, - 840, 861, 864, 865, 905, 906, 846, 830, 257, 907, - 843, 866, 857, 856, 841, 827, 867, 868, 809, 804, - 844, 845, 831, 850, 851, 852, 775, 823, 824, 825, - 847, 848, 805, 806, 807, 808, 0, 0, 0, 479, - 480, 481, 503, 0, 465, 527, 652, 0, 0, 0, - 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, - 636, 638, 853, 640, 439, 440, 647, 0, 849, 643, - 644, 641, 375, 426, 445, 433, 0, 658, 518, 519, - 659, 629, 0, 768, 206, 819, 0, 0, 0, 0, - 0, 0, 0, 0, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 771, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 1296, 569, 520, 435, 386, 587, 586, - 0, 0, 879, 887, 0, 0, 0, 0, 0, 0, - 0, 0, 875, 0, 0, 0, 0, 763, 0, 0, - 800, 855, 854, 787, 797, 0, 0, 310, 229, 515, - 635, 517, 516, 788, 0, 789, 793, 796, 792, 790, - 791, 0, 870, 0, 0, 0, 0, 0, 0, 755, - 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 764, 765, 0, 0, - 0, 0, 820, 0, 766, 0, 0, 815, 794, 798, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 795, 818, 822, 331, 893, 816, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 894, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 813, 0, 632, 0, - 471, 0, 0, 877, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 817, 0, 424, 404, 890, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 874, 400, 597, 630, 631, 522, 0, 889, 869, 871, - 872, 876, 880, 881, 882, 883, 884, 886, 888, 892, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 891, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 821, 572, 573, 390, 391, 392, 393, 878, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 900, 873, 899, - 901, 902, 898, 903, 904, 885, 776, 0, 828, 896, - 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 783, 293, 528, 371, 169, 415, - 344, 593, 594, 0, 645, 862, 835, 836, 837, 773, - 838, 832, 833, 774, 834, 863, 826, 859, 860, 802, - 829, 839, 858, 840, 861, 864, 865, 905, 906, 846, - 830, 257, 907, 843, 866, 857, 856, 841, 827, 867, - 868, 809, 804, 844, 845, 831, 850, 851, 852, 775, - 823, 824, 825, 847, 848, 805, 806, 807, 808, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 853, 640, 439, 440, 647, - 0, 849, 643, 644, 641, 375, 426, 445, 433, 819, - 658, 518, 519, 659, 629, 0, 768, 0, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 337, 4143, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 810, 569, 520, - 435, 386, 587, 586, 0, 0, 879, 887, 0, 0, - 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, - 0, 763, 0, 0, 800, 855, 854, 787, 797, 0, - 0, 310, 229, 515, 635, 517, 516, 788, 0, 789, - 793, 796, 792, 790, 791, 0, 870, 0, 0, 0, - 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 764, 765, 0, 0, 0, 0, 820, 0, 766, 0, - 0, 815, 794, 798, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 795, 818, 822, 331, 893, - 816, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 894, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 813, 0, 632, 0, 471, 0, 0, 877, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 817, 0, - 424, 404, 890, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 874, 400, 597, 630, 631, 522, - 0, 889, 869, 871, 872, 876, 880, 881, 882, 883, - 884, 886, 888, 892, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 891, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 821, 572, 573, 390, 391, - 392, 393, 878, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 900, 873, 899, 901, 902, 898, 903, 904, 885, - 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 783, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 862, - 835, 836, 837, 773, 838, 832, 833, 774, 834, 863, - 826, 859, 860, 802, 829, 839, 858, 840, 861, 864, - 865, 905, 906, 846, 830, 257, 907, 843, 866, 857, - 856, 841, 827, 867, 868, 809, 804, 844, 845, 831, - 850, 851, 852, 775, 823, 824, 825, 847, 848, 805, - 806, 807, 808, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 853, - 640, 439, 440, 647, 0, 849, 643, 644, 641, 375, - 426, 445, 433, 819, 658, 518, 519, 659, 629, 0, - 768, 0, 402, 0, 0, 533, 566, 555, 639, 521, - 0, 0, 0, 0, 0, 0, 771, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 810, 569, 520, 435, 386, 587, 586, 0, 0, - 879, 887, 0, 0, 0, 0, 0, 0, 0, 0, - 875, 0, 0, 0, 0, 763, 0, 0, 800, 855, - 854, 787, 797, 0, 0, 310, 229, 515, 635, 517, - 516, 788, 0, 789, 793, 796, 792, 790, 791, 0, - 870, 0, 0, 0, 0, 0, 0, 755, 767, 0, - 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 764, 765, 0, 0, 0, 0, - 820, 0, 766, 0, 0, 815, 794, 798, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 795, - 818, 822, 331, 893, 816, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 894, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 813, 0, 632, 0, 471, 0, - 0, 877, 0, 0, 0, 441, 0, 0, 367, 0, - 0, 0, 817, 0, 424, 404, 890, 4020, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, - 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 874, 400, - 597, 630, 631, 522, 0, 889, 869, 871, 872, 876, - 880, 881, 882, 883, 884, 886, 888, 892, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 891, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 821, - 572, 573, 390, 391, 392, 393, 878, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 900, 873, 899, 901, 902, - 898, 903, 904, 885, 776, 0, 828, 896, 895, 897, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 783, 293, 528, 371, 0, 415, 344, 593, - 594, 0, 645, 862, 835, 836, 837, 773, 838, 832, - 833, 774, 834, 863, 826, 859, 860, 802, 829, 839, - 858, 840, 861, 864, 865, 905, 906, 846, 830, 257, - 907, 843, 866, 857, 856, 841, 827, 867, 868, 809, - 804, 844, 845, 831, 850, 851, 852, 775, 823, 824, - 825, 847, 848, 805, 806, 807, 808, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 853, 640, 439, 440, 647, 0, 849, - 643, 644, 641, 375, 426, 445, 433, 819, 658, 518, - 519, 659, 629, 0, 768, 0, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 771, 0, 0, 0, 337, 1878, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 810, 569, 520, 435, 386, - 587, 586, 0, 0, 879, 887, 0, 0, 0, 0, - 0, 0, 0, 0, 875, 0, 0, 0, 0, 763, - 0, 0, 800, 855, 854, 787, 797, 0, 0, 310, - 229, 515, 635, 517, 516, 788, 0, 789, 793, 796, - 792, 790, 791, 0, 870, 0, 0, 0, 0, 0, - 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 764, 765, - 0, 0, 0, 0, 820, 0, 766, 0, 0, 815, - 794, 798, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 795, 818, 822, 331, 893, 816, 469, - 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 894, 365, 366, 355, 410, + 407, 428, 445, 446, 447, 333, 317, 422, 318, 353, + 319, 295, 325, 323, 326, 430, 327, 297, 408, 451, + 0, 348, 418, 380, 298, 379, 409, 450, 449, 308, + 477, 483, 484, 573, 0, 489, 661, 662, 663, 498, + 0, 414, 0, 503, 504, 505, 507, 508, 509, 510, + 574, 591, 558, 528, 491, 582, 525, 529, 530, 358, + 594, 1826, 1825, 1827, 482, 368, 369, 0, 340, 339, + 381, 299, 346, 291, 292, 656, 873, 400, 596, 629, + 630, 521, 0, 888, 868, 870, 871, 875, 879, 880, + 881, 882, 883, 885, 887, 891, 655, 0, 575, 590, + 659, 589, 652, 406, 0, 427, 587, 534, 0, 579, + 553, 0, 580, 549, 584, 0, 523, 0, 435, 463, + 475, 492, 495, 524, 609, 610, 611, 296, 494, 613, + 614, 615, 616, 617, 618, 619, 612, 890, 556, 533, + 559, 474, 536, 535, 0, 0, 570, 820, 571, 572, + 390, 391, 392, 393, 877, 597, 315, 493, 416, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 562, + 563, 560, 664, 0, 620, 621, 0, 0, 487, 488, + 345, 352, 506, 354, 314, 405, 347, 472, 362, 0, + 499, 564, 500, 623, 626, 624, 625, 397, 357, 359, + 431, 363, 373, 419, 471, 403, 424, 312, 462, 433, + 378, 550, 577, 899, 872, 898, 900, 901, 897, 902, + 903, 884, 775, 0, 827, 895, 894, 896, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 605, + 604, 603, 602, 601, 600, 599, 598, 0, 0, 547, + 448, 324, 285, 320, 321, 328, 653, 650, 453, 654, + 782, 293, 527, 371, 0, 415, 344, 592, 593, 0, + 644, 861, 834, 835, 836, 772, 837, 831, 832, 773, + 833, 862, 825, 858, 859, 801, 828, 838, 857, 839, + 860, 863, 864, 904, 905, 845, 829, 257, 906, 842, + 865, 856, 855, 840, 826, 866, 867, 808, 803, 843, + 844, 830, 849, 850, 851, 774, 822, 823, 824, 846, + 847, 804, 805, 806, 807, 0, 0, 0, 478, 479, + 480, 502, 0, 464, 526, 651, 0, 0, 0, 0, + 0, 0, 0, 576, 588, 622, 0, 632, 633, 635, + 637, 852, 639, 438, 439, 646, 0, 848, 642, 643, + 640, 375, 425, 444, 432, 818, 657, 517, 518, 658, + 628, 0, 767, 0, 402, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 770, 0, + 0, 0, 337, 1877, 0, 370, 569, 551, 561, 552, + 537, 538, 539, 546, 349, 540, 541, 542, 512, 543, + 513, 544, 545, 809, 568, 519, 434, 386, 586, 585, + 0, 0, 878, 886, 0, 0, 0, 0, 0, 0, + 0, 0, 874, 0, 2096, 0, 0, 762, 0, 0, + 799, 854, 853, 786, 796, 0, 0, 310, 229, 514, + 634, 516, 515, 787, 0, 788, 792, 795, 791, 789, + 790, 0, 869, 0, 0, 0, 0, 0, 0, 754, + 766, 0, 771, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 763, 764, 0, 0, + 0, 0, 819, 0, 765, 0, 0, 2097, 793, 797, + 0, 0, 0, 0, 300, 441, 460, 311, 429, 473, + 316, 437, 452, 306, 401, 426, 0, 0, 302, 458, + 436, 383, 360, 361, 301, 0, 420, 335, 351, 332, + 399, 794, 817, 821, 331, 892, 815, 468, 304, 0, + 467, 398, 454, 459, 384, 377, 0, 303, 456, 382, + 376, 364, 341, 893, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 812, 0, 631, 0, + 470, 0, 0, 876, 0, 0, 0, 440, 0, 0, + 367, 0, 0, 0, 816, 0, 423, 404, 889, 0, + 0, 421, 372, 455, 412, 461, 442, 469, 417, 413, + 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 428, 445, 446, 447, 333, 317, + 422, 318, 353, 319, 295, 325, 323, 326, 430, 327, + 297, 408, 451, 0, 348, 418, 380, 298, 379, 409, + 450, 449, 308, 477, 483, 484, 573, 0, 489, 661, + 662, 663, 498, 0, 414, 0, 503, 504, 505, 507, + 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, + 529, 530, 358, 594, 0, 0, 0, 482, 368, 369, + 0, 340, 339, 381, 299, 346, 291, 292, 656, 873, + 400, 596, 629, 630, 521, 0, 888, 868, 870, 871, + 875, 879, 880, 881, 882, 883, 885, 887, 891, 655, + 0, 575, 590, 659, 589, 652, 406, 0, 427, 587, + 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, + 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, + 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, + 890, 556, 533, 559, 474, 536, 535, 0, 0, 570, + 820, 571, 572, 390, 391, 392, 393, 877, 597, 315, + 493, 416, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 562, 563, 560, 664, 0, 620, 621, 0, + 0, 487, 488, 345, 352, 506, 354, 314, 405, 347, + 472, 362, 0, 499, 564, 500, 623, 626, 624, 625, + 397, 357, 359, 431, 363, 373, 419, 471, 403, 424, + 312, 462, 433, 378, 550, 577, 899, 872, 898, 900, + 901, 897, 902, 903, 884, 775, 0, 827, 895, 894, + 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, + 0, 0, 547, 448, 324, 285, 320, 321, 328, 653, + 650, 453, 654, 782, 293, 527, 371, 0, 415, 344, + 592, 593, 0, 644, 861, 834, 835, 836, 772, 837, + 831, 832, 773, 833, 862, 825, 858, 859, 801, 828, + 838, 857, 839, 860, 863, 864, 904, 905, 845, 829, + 257, 906, 842, 865, 856, 855, 840, 826, 866, 867, + 808, 803, 843, 844, 830, 849, 850, 851, 774, 822, + 823, 824, 846, 847, 804, 805, 806, 807, 0, 0, + 0, 478, 479, 480, 502, 0, 464, 526, 651, 0, + 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, + 632, 633, 635, 637, 852, 639, 438, 439, 646, 0, + 848, 642, 643, 640, 375, 425, 444, 432, 0, 657, + 517, 518, 658, 628, 0, 767, 206, 818, 0, 0, + 0, 0, 0, 0, 0, 0, 402, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 770, 0, 0, 0, 337, 0, 0, 370, 569, 551, + 561, 552, 537, 538, 539, 546, 349, 540, 541, 542, + 512, 543, 513, 544, 545, 1295, 568, 519, 434, 386, + 586, 585, 0, 0, 878, 886, 0, 0, 0, 0, + 0, 0, 0, 0, 874, 0, 0, 0, 0, 762, + 0, 0, 799, 854, 853, 786, 796, 0, 0, 310, + 229, 514, 634, 516, 515, 787, 0, 788, 792, 795, + 791, 789, 790, 0, 869, 0, 0, 0, 0, 0, + 0, 754, 766, 0, 771, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 763, 764, + 0, 0, 0, 0, 819, 0, 765, 0, 0, 814, + 793, 797, 0, 0, 0, 0, 300, 441, 460, 311, + 429, 473, 316, 437, 452, 306, 401, 426, 0, 0, + 302, 458, 436, 383, 360, 361, 301, 0, 420, 335, + 351, 332, 399, 794, 817, 821, 331, 892, 815, 468, + 304, 0, 467, 398, 454, 459, 384, 377, 0, 303, + 456, 382, 376, 364, 341, 893, 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 813, 0, - 632, 0, 471, 0, 0, 877, 0, 0, 0, 441, - 0, 0, 367, 0, 0, 0, 817, 0, 424, 404, - 890, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 874, 400, 597, 630, 631, 522, 0, 889, - 869, 871, 872, 876, 880, 881, 882, 883, 884, 886, - 888, 892, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 891, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 821, 572, 573, 390, 391, 392, 393, - 878, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 378, 551, 578, 900, - 873, 899, 901, 902, 898, 903, 904, 885, 776, 0, - 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 783, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 862, 835, 836, - 837, 773, 838, 832, 833, 774, 834, 863, 826, 859, - 860, 802, 829, 839, 858, 840, 861, 864, 865, 905, - 906, 846, 830, 257, 907, 843, 866, 857, 856, 841, - 827, 867, 868, 809, 804, 844, 845, 831, 850, 851, - 852, 775, 823, 824, 825, 847, 848, 805, 806, 807, - 808, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 853, 640, 439, - 440, 647, 0, 849, 643, 644, 641, 375, 426, 445, - 433, 819, 658, 518, 519, 659, 629, 0, 768, 0, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, - 0, 0, 0, 0, 771, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 810, - 569, 520, 435, 386, 587, 586, 0, 0, 879, 887, - 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, - 0, 0, 0, 763, 0, 0, 800, 855, 854, 787, - 797, 0, 0, 310, 229, 515, 635, 517, 516, 788, - 0, 789, 793, 796, 792, 790, 791, 0, 870, 0, - 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 764, 765, 1591, 0, 0, 0, 820, 0, - 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, - 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 795, 818, 822, - 331, 893, 816, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 894, - 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 813, 0, 632, 0, 471, 0, 0, 877, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 817, 0, 424, 404, 890, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, - 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 874, 400, 597, 630, - 631, 522, 0, 889, 869, 871, 872, 876, 880, 881, - 882, 883, 884, 886, 888, 892, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 891, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 821, 572, 573, - 390, 391, 392, 393, 878, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 900, 873, 899, 901, 902, 898, 903, - 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 783, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 862, 835, 836, 837, 773, 838, 832, 833, 774, - 834, 863, 826, 859, 860, 802, 829, 839, 858, 840, - 861, 864, 865, 905, 906, 846, 830, 257, 907, 843, - 866, 857, 856, 841, 827, 867, 868, 809, 804, 844, - 845, 831, 850, 851, 852, 775, 823, 824, 825, 847, - 848, 805, 806, 807, 808, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 853, 640, 439, 440, 647, 0, 849, 643, 644, - 641, 375, 426, 445, 433, 0, 658, 518, 519, 659, - 629, 819, 768, 0, 2272, 0, 0, 0, 0, 0, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, - 0, 0, 0, 0, 771, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 810, - 569, 520, 435, 386, 587, 586, 0, 0, 879, 887, - 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, - 0, 0, 0, 763, 0, 0, 800, 855, 854, 787, - 797, 0, 0, 310, 229, 515, 635, 517, 516, 788, - 0, 789, 793, 796, 792, 790, 791, 0, 870, 0, - 0, 0, 0, 0, 0, 755, 767, 0, 772, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 764, 765, 0, 0, 0, 0, 820, 0, - 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, - 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 795, 818, 822, - 331, 893, 816, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 894, - 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 813, 0, 632, 0, 471, 0, 0, 877, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 817, 0, 424, 404, 890, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, - 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 874, 400, 597, 630, - 631, 522, 0, 889, 869, 871, 872, 876, 880, 881, - 882, 883, 884, 886, 888, 892, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 891, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 821, 572, 573, - 390, 391, 392, 393, 878, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 900, 873, 899, 901, 902, 898, 903, - 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 783, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 862, 835, 836, 837, 773, 838, 832, 833, 774, - 834, 863, 826, 859, 860, 802, 829, 839, 858, 840, - 861, 864, 865, 905, 906, 846, 830, 257, 907, 843, - 866, 857, 856, 841, 827, 867, 868, 809, 804, 844, - 845, 831, 850, 851, 852, 775, 823, 824, 825, 847, - 848, 805, 806, 807, 808, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 853, 640, 439, 440, 647, 0, 849, 643, 644, - 641, 375, 426, 445, 433, 819, 658, 518, 519, 659, - 629, 0, 768, 0, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 771, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 810, 569, 520, 435, 386, 587, 586, - 0, 0, 879, 887, 0, 0, 0, 0, 0, 0, - 0, 0, 875, 0, 0, 0, 0, 763, 0, 0, - 800, 855, 854, 787, 797, 0, 0, 310, 229, 515, - 635, 517, 516, 788, 0, 789, 793, 796, 792, 790, - 791, 0, 870, 0, 0, 0, 0, 0, 0, 755, - 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 764, 765, 1871, 0, - 0, 0, 820, 0, 766, 0, 0, 815, 794, 798, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 795, 818, 822, 331, 893, 816, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 894, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 813, 0, 632, 0, - 471, 0, 0, 877, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 817, 0, 424, 404, 890, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 874, 400, 597, 630, 631, 522, 0, 889, 869, 871, - 872, 876, 880, 881, 882, 883, 884, 886, 888, 892, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 891, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 821, 572, 573, 390, 391, 392, 393, 878, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 900, 873, 899, - 901, 902, 898, 903, 904, 885, 776, 0, 828, 896, - 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 783, 293, 528, 371, 0, 415, - 344, 593, 594, 0, 645, 862, 835, 836, 837, 773, - 838, 832, 833, 774, 834, 863, 826, 859, 860, 802, - 829, 839, 858, 840, 861, 864, 865, 905, 906, 846, - 830, 257, 907, 843, 866, 857, 856, 841, 827, 867, - 868, 809, 804, 844, 845, 831, 850, 851, 852, 775, - 823, 824, 825, 847, 848, 805, 806, 807, 808, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 853, 640, 439, 440, 647, - 0, 849, 643, 644, 641, 375, 426, 445, 433, 819, - 658, 518, 519, 659, 629, 0, 768, 0, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 337, 0, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 810, 569, 520, - 435, 386, 587, 586, 0, 0, 879, 887, 0, 0, - 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, - 0, 763, 0, 0, 800, 855, 854, 787, 797, 0, - 0, 310, 229, 515, 635, 517, 516, 788, 0, 789, - 793, 796, 792, 790, 791, 0, 870, 0, 0, 0, - 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 764, 765, 0, 0, 0, 0, 820, 0, 766, 0, - 0, 815, 794, 798, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 795, 818, 822, 331, 893, - 816, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 894, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 813, 0, 632, 0, 471, 0, 0, 877, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 817, 0, - 424, 404, 890, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 874, 400, 597, 630, 631, 522, - 0, 889, 869, 871, 872, 876, 880, 881, 882, 883, - 884, 886, 888, 892, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 891, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 821, 572, 573, 390, 391, - 392, 393, 878, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 900, 873, 899, 901, 902, 898, 903, 904, 885, - 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 783, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 862, - 835, 836, 837, 773, 838, 832, 833, 774, 834, 863, - 826, 859, 860, 802, 829, 839, 858, 840, 861, 864, - 865, 905, 906, 846, 830, 257, 907, 843, 866, 857, - 856, 841, 827, 867, 868, 809, 804, 844, 845, 831, - 850, 851, 852, 775, 823, 824, 825, 847, 848, 805, - 806, 807, 808, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 853, - 640, 439, 440, 647, 0, 849, 643, 644, 641, 375, - 426, 445, 433, 819, 658, 518, 519, 659, 629, 0, - 768, 0, 402, 0, 0, 533, 566, 555, 639, 521, - 0, 0, 0, 0, 0, 0, 771, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 810, 569, 520, 435, 386, 587, 586, 0, 0, - 879, 887, 0, 0, 0, 0, 0, 0, 0, 0, - 875, 0, 0, 0, 0, 763, 0, 0, 800, 855, - 854, 787, 797, 0, 0, 310, 229, 515, 635, 517, - 516, 788, 0, 789, 793, 796, 792, 790, 791, 0, - 870, 0, 0, 0, 0, 0, 0, 755, 767, 0, - 772, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 764, 765, 0, 0, 0, 0, - 820, 0, 766, 0, 0, 815, 794, 798, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 795, - 818, 822, 331, 893, 816, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 894, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 813, 0, 632, 0, 471, 0, - 0, 877, 0, 0, 0, 441, 0, 0, 367, 0, - 0, 0, 817, 0, 424, 404, 890, 0, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 812, 0, + 631, 0, 470, 0, 0, 876, 0, 0, 0, 440, + 0, 0, 367, 0, 0, 0, 816, 0, 423, 404, + 889, 0, 0, 421, 372, 455, 412, 461, 442, 469, + 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 428, 445, 446, 447, + 333, 317, 422, 318, 353, 319, 295, 325, 323, 326, + 430, 327, 297, 408, 451, 0, 348, 418, 380, 298, + 379, 409, 450, 449, 308, 477, 483, 484, 573, 0, + 489, 661, 662, 663, 498, 0, 414, 0, 503, 504, + 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, + 582, 525, 529, 530, 358, 594, 0, 0, 0, 482, + 368, 369, 0, 340, 339, 381, 299, 346, 291, 292, + 656, 873, 400, 596, 629, 630, 521, 0, 888, 868, + 870, 871, 875, 879, 880, 881, 882, 883, 885, 887, + 891, 655, 0, 575, 590, 659, 589, 652, 406, 0, + 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, + 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, + 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, + 619, 612, 890, 556, 533, 559, 474, 536, 535, 0, + 0, 570, 820, 571, 572, 390, 391, 392, 393, 877, + 597, 315, 493, 416, 0, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 562, 563, 560, 664, 0, 620, + 621, 0, 0, 487, 488, 345, 352, 506, 354, 314, + 405, 347, 472, 362, 0, 499, 564, 500, 623, 626, + 624, 625, 397, 357, 359, 431, 363, 373, 419, 471, + 403, 424, 312, 462, 433, 378, 550, 577, 899, 872, + 898, 900, 901, 897, 902, 903, 884, 775, 0, 827, + 895, 894, 896, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, + 599, 598, 0, 0, 547, 448, 324, 285, 320, 321, + 328, 653, 650, 453, 654, 782, 293, 527, 371, 169, + 415, 344, 592, 593, 0, 644, 861, 834, 835, 836, + 772, 837, 831, 832, 773, 833, 862, 825, 858, 859, + 801, 828, 838, 857, 839, 860, 863, 864, 904, 905, + 845, 829, 257, 906, 842, 865, 856, 855, 840, 826, + 866, 867, 808, 803, 843, 844, 830, 849, 850, 851, + 774, 822, 823, 824, 846, 847, 804, 805, 806, 807, + 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, + 651, 0, 0, 0, 0, 0, 0, 0, 576, 588, + 622, 0, 632, 633, 635, 637, 852, 639, 438, 439, + 646, 0, 848, 642, 643, 640, 375, 425, 444, 432, + 818, 657, 517, 518, 658, 628, 0, 767, 0, 402, + 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, + 0, 0, 0, 770, 0, 0, 0, 337, 4139, 0, + 370, 569, 551, 561, 552, 537, 538, 539, 546, 349, + 540, 541, 542, 512, 543, 513, 544, 545, 809, 568, + 519, 434, 386, 586, 585, 0, 0, 878, 886, 0, + 0, 0, 0, 0, 0, 0, 0, 874, 0, 0, + 0, 0, 762, 0, 0, 799, 854, 853, 786, 796, + 0, 0, 310, 229, 514, 634, 516, 515, 787, 0, + 788, 792, 795, 791, 789, 790, 0, 869, 0, 0, + 0, 0, 0, 0, 754, 766, 0, 771, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 763, 764, 0, 0, 0, 0, 819, 0, 765, + 0, 0, 814, 793, 797, 0, 0, 0, 0, 300, + 441, 460, 311, 429, 473, 316, 437, 452, 306, 401, + 426, 0, 0, 302, 458, 436, 383, 360, 361, 301, + 0, 420, 335, 351, 332, 399, 794, 817, 821, 331, + 892, 815, 468, 304, 0, 467, 398, 454, 459, 384, + 377, 0, 303, 456, 382, 376, 364, 341, 893, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 627, 812, 0, 631, 0, 470, 0, 0, 876, 0, + 0, 0, 440, 0, 0, 367, 0, 0, 0, 816, + 0, 423, 404, 889, 0, 0, 421, 372, 455, 412, + 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 428, + 445, 446, 447, 333, 317, 422, 318, 353, 319, 295, + 325, 323, 326, 430, 327, 297, 408, 451, 0, 348, + 418, 380, 298, 379, 409, 450, 449, 308, 477, 483, + 484, 573, 0, 489, 661, 662, 663, 498, 0, 414, + 0, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 358, 594, 0, + 0, 0, 482, 368, 369, 0, 340, 339, 381, 299, + 346, 291, 292, 656, 873, 400, 596, 629, 630, 521, + 0, 888, 868, 870, 871, 875, 879, 880, 881, 882, + 883, 885, 887, 891, 655, 0, 575, 590, 659, 589, + 652, 406, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 890, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 820, 571, 572, 390, 391, + 392, 393, 877, 597, 315, 493, 416, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 664, 0, 620, 621, 0, 0, 487, 488, 345, 352, + 506, 354, 314, 405, 347, 472, 362, 0, 499, 564, + 500, 623, 626, 624, 625, 397, 357, 359, 431, 363, + 373, 419, 471, 403, 424, 312, 462, 433, 378, 550, + 577, 899, 872, 898, 900, 901, 897, 902, 903, 884, + 775, 0, 827, 895, 894, 896, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 324, + 285, 320, 321, 328, 653, 650, 453, 654, 782, 293, + 527, 371, 0, 415, 344, 592, 593, 0, 644, 861, + 834, 835, 836, 772, 837, 831, 832, 773, 833, 862, + 825, 858, 859, 801, 828, 838, 857, 839, 860, 863, + 864, 904, 905, 845, 829, 257, 906, 842, 865, 856, + 855, 840, 826, 866, 867, 808, 803, 843, 844, 830, + 849, 850, 851, 774, 822, 823, 824, 846, 847, 804, + 805, 806, 807, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 651, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 852, + 639, 438, 439, 646, 0, 848, 642, 643, 640, 375, + 425, 444, 432, 818, 657, 517, 518, 658, 628, 0, + 767, 0, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 770, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 809, 568, 519, 434, 386, 586, 585, 0, 0, + 878, 886, 0, 0, 0, 0, 0, 0, 0, 0, + 874, 0, 0, 0, 0, 762, 0, 0, 799, 854, + 853, 786, 796, 0, 0, 310, 229, 514, 634, 516, + 515, 787, 0, 788, 792, 795, 791, 789, 790, 0, + 869, 0, 0, 0, 0, 0, 0, 754, 766, 0, + 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 763, 764, 0, 0, 0, 0, + 819, 0, 765, 0, 0, 814, 793, 797, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 794, + 817, 821, 331, 892, 815, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 893, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 812, 0, 631, 0, 470, 0, + 0, 876, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 816, 0, 423, 404, 889, 4018, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 874, 400, - 597, 630, 631, 522, 0, 889, 869, 871, 872, 876, - 880, 881, 882, 883, 884, 886, 888, 892, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 891, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 821, - 572, 573, 390, 391, 392, 393, 878, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 900, 873, 899, 901, 902, - 898, 903, 904, 885, 776, 0, 828, 896, 895, 897, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 783, 293, 528, 371, 0, 415, 344, 593, - 594, 0, 645, 862, 835, 836, 837, 773, 838, 832, - 833, 774, 834, 863, 826, 859, 860, 802, 829, 839, - 858, 840, 861, 864, 865, 905, 906, 846, 830, 257, - 907, 843, 866, 857, 856, 841, 827, 867, 868, 809, - 804, 844, 845, 831, 850, 851, 852, 775, 823, 824, - 825, 847, 848, 805, 806, 807, 808, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 853, 640, 439, 440, 647, 0, 3578, - 643, 3579, 3580, 375, 426, 445, 433, 819, 658, 518, - 519, 659, 629, 0, 768, 0, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 771, 0, 0, 0, 337, 0, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 810, 569, 520, 435, 386, - 587, 586, 0, 0, 879, 887, 0, 0, 0, 0, - 0, 0, 0, 0, 875, 0, 0, 0, 0, 763, - 0, 0, 800, 855, 854, 787, 797, 0, 0, 310, - 229, 515, 635, 517, 516, 2746, 0, 2747, 793, 796, - 792, 790, 791, 0, 870, 0, 0, 0, 0, 0, - 0, 755, 767, 0, 772, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 764, 765, - 0, 0, 0, 0, 820, 0, 766, 0, 0, 815, - 794, 798, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 795, 818, 822, 331, 893, 816, 469, - 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 894, 365, 366, 355, 410, - 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 813, 0, - 632, 0, 471, 0, 0, 877, 0, 0, 0, 441, - 0, 0, 367, 0, 0, 0, 817, 0, 424, 404, - 890, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 874, 400, 597, 630, 631, 522, 0, 889, - 869, 871, 872, 876, 880, 881, 882, 883, 884, 886, - 888, 892, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 891, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 821, 572, 573, 390, 391, 392, 393, - 878, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 378, 551, 578, 900, - 873, 899, 901, 902, 898, 903, 904, 885, 776, 0, - 828, 896, 895, 897, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 783, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 862, 835, 836, - 837, 773, 838, 832, 833, 774, 834, 863, 826, 859, - 860, 802, 829, 839, 858, 840, 861, 864, 865, 905, - 906, 846, 830, 257, 907, 843, 866, 857, 856, 841, - 827, 867, 868, 809, 804, 844, 845, 831, 850, 851, - 852, 775, 823, 824, 825, 847, 848, 805, 806, 807, - 808, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 853, 640, 439, - 440, 647, 0, 849, 643, 644, 641, 375, 426, 445, - 433, 819, 658, 518, 519, 659, 629, 0, 768, 0, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, - 1736, 0, 0, 0, 771, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 810, - 569, 520, 435, 386, 587, 586, 0, 0, 879, 887, - 0, 0, 0, 0, 0, 0, 0, 0, 875, 0, - 0, 0, 0, 763, 0, 0, 800, 855, 854, 787, - 797, 0, 0, 310, 229, 515, 635, 517, 516, 788, - 0, 789, 793, 796, 792, 790, 791, 0, 870, 0, - 0, 0, 0, 0, 0, 0, 767, 0, 772, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 764, 765, 0, 0, 0, 0, 820, 0, - 766, 0, 0, 815, 794, 798, 0, 0, 0, 0, - 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 795, 818, 822, - 331, 893, 816, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 894, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 873, 400, 596, + 629, 630, 521, 0, 888, 868, 870, 871, 875, 879, + 880, 881, 882, 883, 885, 887, 891, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 890, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 820, 571, + 572, 390, 391, 392, 393, 877, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 899, 872, 898, 900, 901, 897, + 902, 903, 884, 775, 0, 827, 895, 894, 896, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 782, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 861, 834, 835, 836, 772, 837, 831, 832, + 773, 833, 862, 825, 858, 859, 801, 828, 838, 857, + 839, 860, 863, 864, 904, 905, 845, 829, 257, 906, + 842, 865, 856, 855, 840, 826, 866, 867, 808, 803, + 843, 844, 830, 849, 850, 851, 774, 822, 823, 824, + 846, 847, 804, 805, 806, 807, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 852, 639, 438, 439, 646, 0, 848, 642, + 643, 640, 375, 425, 444, 432, 818, 657, 517, 518, + 658, 628, 0, 767, 0, 402, 0, 0, 532, 565, + 554, 638, 520, 0, 0, 0, 0, 0, 0, 770, + 0, 0, 0, 337, 1877, 0, 370, 569, 551, 561, + 552, 537, 538, 539, 546, 349, 540, 541, 542, 512, + 543, 513, 544, 545, 809, 568, 519, 434, 386, 586, + 585, 0, 0, 878, 886, 0, 0, 0, 0, 0, + 0, 0, 0, 874, 0, 0, 0, 0, 762, 0, + 0, 799, 854, 853, 786, 796, 0, 0, 310, 229, + 514, 634, 516, 515, 787, 0, 788, 792, 795, 791, + 789, 790, 0, 869, 0, 0, 0, 0, 0, 0, + 754, 766, 0, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 763, 764, 0, + 0, 0, 0, 819, 0, 765, 0, 0, 814, 793, + 797, 0, 0, 0, 0, 300, 441, 460, 311, 429, + 473, 316, 437, 452, 306, 401, 426, 0, 0, 302, + 458, 436, 383, 360, 361, 301, 0, 420, 335, 351, + 332, 399, 794, 817, 821, 331, 892, 815, 468, 304, + 0, 467, 398, 454, 459, 384, 377, 0, 303, 456, + 382, 376, 364, 341, 893, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 627, 812, 0, 631, + 0, 470, 0, 0, 876, 0, 0, 0, 440, 0, + 0, 367, 0, 0, 0, 816, 0, 423, 404, 889, + 0, 0, 421, 372, 455, 412, 461, 442, 469, 417, + 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 428, 445, 446, 447, 333, + 317, 422, 318, 353, 319, 295, 325, 323, 326, 430, + 327, 297, 408, 451, 0, 348, 418, 380, 298, 379, + 409, 450, 449, 308, 477, 483, 484, 573, 0, 489, + 661, 662, 663, 498, 0, 414, 0, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 358, 594, 0, 0, 0, 482, 368, + 369, 0, 340, 339, 381, 299, 346, 291, 292, 656, + 873, 400, 596, 629, 630, 521, 0, 888, 868, 870, + 871, 875, 879, 880, 881, 882, 883, 885, 887, 891, + 655, 0, 575, 590, 659, 589, 652, 406, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 890, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 820, 571, 572, 390, 391, 392, 393, 877, 597, + 315, 493, 416, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 664, 0, 620, 621, + 0, 0, 487, 488, 345, 352, 506, 354, 314, 405, + 347, 472, 362, 0, 499, 564, 500, 623, 626, 624, + 625, 397, 357, 359, 431, 363, 373, 419, 471, 403, + 424, 312, 462, 433, 378, 550, 577, 899, 872, 898, + 900, 901, 897, 902, 903, 884, 775, 0, 827, 895, + 894, 896, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 324, 285, 320, 321, 328, + 653, 650, 453, 654, 782, 293, 527, 371, 0, 415, + 344, 592, 593, 0, 644, 861, 834, 835, 836, 772, + 837, 831, 832, 773, 833, 862, 825, 858, 859, 801, + 828, 838, 857, 839, 860, 863, 864, 904, 905, 845, + 829, 257, 906, 842, 865, 856, 855, 840, 826, 866, + 867, 808, 803, 843, 844, 830, 849, 850, 851, 774, + 822, 823, 824, 846, 847, 804, 805, 806, 807, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 651, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 852, 639, 438, 439, 646, + 0, 848, 642, 643, 640, 375, 425, 444, 432, 818, + 657, 517, 518, 658, 628, 0, 767, 0, 402, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 770, 0, 0, 0, 337, 0, 0, 370, + 569, 551, 561, 552, 537, 538, 539, 546, 349, 540, + 541, 542, 512, 543, 513, 544, 545, 809, 568, 519, + 434, 386, 586, 585, 0, 0, 878, 886, 0, 0, + 0, 0, 0, 0, 0, 0, 874, 0, 0, 0, + 0, 762, 0, 0, 799, 854, 853, 786, 796, 0, + 0, 310, 229, 514, 634, 516, 515, 787, 0, 788, + 792, 795, 791, 789, 790, 0, 869, 0, 0, 0, + 0, 0, 0, 754, 766, 0, 771, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 763, 764, 1590, 0, 0, 0, 819, 0, 765, 0, + 0, 814, 793, 797, 0, 0, 0, 0, 300, 441, + 460, 311, 429, 473, 316, 437, 452, 306, 401, 426, + 0, 0, 302, 458, 436, 383, 360, 361, 301, 0, + 420, 335, 351, 332, 399, 794, 817, 821, 331, 892, + 815, 468, 304, 0, 467, 398, 454, 459, 384, 377, + 0, 303, 456, 382, 376, 364, 341, 893, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 812, 0, 631, 0, 470, 0, 0, 876, 0, 0, + 0, 440, 0, 0, 367, 0, 0, 0, 816, 0, + 423, 404, 889, 0, 0, 421, 372, 455, 412, 461, + 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 428, 445, + 446, 447, 333, 317, 422, 318, 353, 319, 295, 325, + 323, 326, 430, 327, 297, 408, 451, 0, 348, 418, + 380, 298, 379, 409, 450, 449, 308, 477, 483, 484, + 573, 0, 489, 661, 662, 663, 498, 0, 414, 0, + 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, + 528, 491, 582, 525, 529, 530, 358, 594, 0, 0, + 0, 482, 368, 369, 0, 340, 339, 381, 299, 346, + 291, 292, 656, 873, 400, 596, 629, 630, 521, 0, + 888, 868, 870, 871, 875, 879, 880, 881, 882, 883, + 885, 887, 891, 655, 0, 575, 590, 659, 589, 652, + 406, 0, 427, 587, 534, 0, 579, 553, 0, 580, + 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, + 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, + 617, 618, 619, 612, 890, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 820, 571, 572, 390, 391, 392, + 393, 877, 597, 315, 493, 416, 0, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 562, 563, 560, 664, + 0, 620, 621, 0, 0, 487, 488, 345, 352, 506, + 354, 314, 405, 347, 472, 362, 0, 499, 564, 500, + 623, 626, 624, 625, 397, 357, 359, 431, 363, 373, + 419, 471, 403, 424, 312, 462, 433, 378, 550, 577, + 899, 872, 898, 900, 901, 897, 902, 903, 884, 775, + 0, 827, 895, 894, 896, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, + 601, 600, 599, 598, 0, 0, 547, 448, 324, 285, + 320, 321, 328, 653, 650, 453, 654, 782, 293, 527, + 371, 0, 415, 344, 592, 593, 0, 644, 861, 834, + 835, 836, 772, 837, 831, 832, 773, 833, 862, 825, + 858, 859, 801, 828, 838, 857, 839, 860, 863, 864, + 904, 905, 845, 829, 257, 906, 842, 865, 856, 855, + 840, 826, 866, 867, 808, 803, 843, 844, 830, 849, + 850, 851, 774, 822, 823, 824, 846, 847, 804, 805, + 806, 807, 0, 0, 0, 478, 479, 480, 502, 0, + 464, 526, 651, 0, 0, 0, 0, 0, 0, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 852, 639, + 438, 439, 646, 0, 848, 642, 643, 640, 375, 425, + 444, 432, 0, 657, 517, 518, 658, 628, 818, 767, + 0, 2271, 0, 0, 0, 0, 0, 402, 0, 0, + 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, + 0, 770, 0, 0, 0, 337, 0, 0, 370, 569, + 551, 561, 552, 537, 538, 539, 546, 349, 540, 541, + 542, 512, 543, 513, 544, 545, 809, 568, 519, 434, + 386, 586, 585, 0, 0, 878, 886, 0, 0, 0, + 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, + 762, 0, 0, 799, 854, 853, 786, 796, 0, 0, + 310, 229, 514, 634, 516, 515, 787, 0, 788, 792, + 795, 791, 789, 790, 0, 869, 0, 0, 0, 0, + 0, 0, 754, 766, 0, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 763, + 764, 0, 0, 0, 0, 819, 0, 765, 0, 0, + 814, 793, 797, 0, 0, 0, 0, 300, 441, 460, + 311, 429, 473, 316, 437, 452, 306, 401, 426, 0, + 0, 302, 458, 436, 383, 360, 361, 301, 0, 420, + 335, 351, 332, 399, 794, 817, 821, 331, 892, 815, + 468, 304, 0, 467, 398, 454, 459, 384, 377, 0, + 303, 456, 382, 376, 364, 341, 893, 365, 366, 355, + 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, + 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 627, 812, + 0, 631, 0, 470, 0, 0, 876, 0, 0, 0, + 440, 0, 0, 367, 0, 0, 0, 816, 0, 423, + 404, 889, 0, 0, 421, 372, 455, 412, 461, 442, + 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, + 336, 338, 342, 343, 394, 395, 407, 428, 445, 446, + 447, 333, 317, 422, 318, 353, 319, 295, 325, 323, + 326, 430, 327, 297, 408, 451, 0, 348, 418, 380, + 298, 379, 409, 450, 449, 308, 477, 483, 484, 573, + 0, 489, 661, 662, 663, 498, 0, 414, 0, 503, + 504, 505, 507, 508, 509, 510, 574, 591, 558, 528, + 491, 582, 525, 529, 530, 358, 594, 0, 0, 0, + 482, 368, 369, 0, 340, 339, 381, 299, 346, 291, + 292, 656, 873, 400, 596, 629, 630, 521, 0, 888, + 868, 870, 871, 875, 879, 880, 881, 882, 883, 885, + 887, 891, 655, 0, 575, 590, 659, 589, 652, 406, + 0, 427, 587, 534, 0, 579, 553, 0, 580, 549, + 584, 0, 523, 0, 435, 463, 475, 492, 495, 524, + 609, 610, 611, 296, 494, 613, 614, 615, 616, 617, + 618, 619, 612, 890, 556, 533, 559, 474, 536, 535, + 0, 0, 570, 820, 571, 572, 390, 391, 392, 393, + 877, 597, 315, 493, 416, 0, 557, 0, 0, 0, + 0, 0, 0, 0, 0, 562, 563, 560, 664, 0, + 620, 621, 0, 0, 487, 488, 345, 352, 506, 354, + 314, 405, 347, 472, 362, 0, 499, 564, 500, 623, + 626, 624, 625, 397, 357, 359, 431, 363, 373, 419, + 471, 403, 424, 312, 462, 433, 378, 550, 577, 899, + 872, 898, 900, 901, 897, 902, 903, 884, 775, 0, + 827, 895, 894, 896, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 605, 604, 603, 602, 601, + 600, 599, 598, 0, 0, 547, 448, 324, 285, 320, + 321, 328, 653, 650, 453, 654, 782, 293, 527, 371, + 0, 415, 344, 592, 593, 0, 644, 861, 834, 835, + 836, 772, 837, 831, 832, 773, 833, 862, 825, 858, + 859, 801, 828, 838, 857, 839, 860, 863, 864, 904, + 905, 845, 829, 257, 906, 842, 865, 856, 855, 840, + 826, 866, 867, 808, 803, 843, 844, 830, 849, 850, + 851, 774, 822, 823, 824, 846, 847, 804, 805, 806, + 807, 0, 0, 0, 478, 479, 480, 502, 0, 464, + 526, 651, 0, 0, 0, 0, 0, 0, 0, 576, + 588, 622, 0, 632, 633, 635, 637, 852, 639, 438, + 439, 646, 0, 848, 642, 643, 640, 375, 425, 444, + 432, 818, 657, 517, 518, 658, 628, 0, 767, 0, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 770, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 809, + 568, 519, 434, 386, 586, 585, 0, 0, 878, 886, + 0, 0, 0, 0, 0, 0, 0, 0, 874, 0, + 0, 0, 0, 762, 0, 0, 799, 854, 853, 786, + 796, 0, 0, 310, 229, 514, 634, 516, 515, 787, + 0, 788, 792, 795, 791, 789, 790, 0, 869, 0, + 0, 0, 0, 0, 0, 754, 766, 0, 771, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 763, 764, 1870, 0, 0, 0, 819, 0, + 765, 0, 0, 814, 793, 797, 0, 0, 0, 0, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 794, 817, 821, + 331, 892, 815, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 893, 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 813, 0, 632, 0, 471, 0, 0, 877, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 817, 0, 424, 404, 890, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 0, 627, 812, 0, 631, 0, 470, 0, 0, 876, + 0, 0, 0, 440, 0, 0, 367, 0, 0, 0, + 816, 0, 423, 404, 889, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 1737, 1738, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 874, 400, 597, 630, - 631, 522, 0, 889, 869, 871, 872, 876, 880, 881, - 882, 883, 884, 886, 888, 892, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 891, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 821, 572, 573, - 390, 391, 392, 393, 878, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 900, 873, 899, 901, 902, 898, 903, - 904, 885, 776, 0, 828, 896, 895, 897, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 783, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 862, 835, 836, 837, 773, 838, 832, 833, 774, - 834, 863, 826, 859, 860, 802, 829, 839, 858, 840, - 861, 864, 865, 905, 906, 846, 830, 257, 907, 843, - 866, 857, 856, 841, 827, 867, 868, 809, 804, 844, - 845, 831, 850, 851, 852, 775, 823, 824, 825, 847, - 848, 805, 806, 807, 808, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 853, 640, 439, 440, 647, 0, 849, 643, 644, - 641, 375, 426, 445, 433, 819, 658, 518, 519, 659, - 629, 0, 768, 0, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 771, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 810, 569, 520, 435, 386, 587, 586, - 0, 0, 879, 887, 0, 0, 0, 0, 0, 0, - 0, 0, 875, 0, 0, 0, 0, 763, 0, 0, - 800, 855, 854, 787, 797, 0, 0, 310, 229, 515, - 635, 517, 516, 788, 0, 789, 793, 796, 792, 790, - 791, 0, 870, 0, 0, 0, 0, 0, 0, 0, - 767, 0, 772, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 764, 765, 0, 0, - 0, 0, 820, 0, 766, 0, 0, 815, 794, 798, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 795, 818, 822, 331, 893, 816, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 894, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 813, 0, 632, 0, - 471, 0, 0, 877, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 817, 0, 424, 404, 890, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 874, 400, 597, 630, 631, 522, 0, 889, 869, 871, - 872, 876, 880, 881, 882, 883, 884, 886, 888, 892, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 891, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 821, 572, 573, 390, 391, 392, 393, 878, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 900, 873, 899, - 901, 902, 898, 903, 904, 885, 776, 0, 828, 896, - 895, 897, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 783, 293, 528, 371, 0, 415, - 344, 593, 594, 0, 645, 862, 835, 836, 837, 773, - 838, 832, 833, 774, 834, 863, 826, 859, 860, 802, - 829, 839, 858, 840, 861, 864, 865, 905, 906, 846, - 830, 257, 907, 843, 866, 857, 856, 841, 827, 867, - 868, 809, 804, 844, 845, 831, 850, 851, 852, 775, - 823, 824, 825, 847, 848, 805, 806, 807, 808, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 853, 640, 439, 440, 647, - 0, 849, 643, 644, 641, 375, 426, 445, 433, 819, - 658, 518, 519, 659, 629, 0, 768, 0, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 771, 0, 0, 0, 337, 0, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 810, 569, 520, - 435, 386, 587, 586, 0, 0, 879, 887, 0, 0, - 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, - 0, 0, 0, 0, 800, 855, 854, 787, 797, 0, - 0, 310, 229, 515, 635, 517, 516, 788, 0, 789, - 793, 796, 792, 790, 791, 0, 870, 0, 0, 0, - 0, 0, 0, 755, 767, 0, 772, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 764, 765, 0, 0, 0, 0, 820, 0, 766, 0, - 0, 815, 794, 798, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 795, 818, 822, 331, 893, - 816, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 894, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 813, 0, 632, 0, 471, 0, 0, 877, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 817, 0, - 424, 404, 890, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 874, 400, 597, 630, 631, 522, - 0, 889, 869, 871, 872, 876, 880, 881, 882, 883, - 884, 886, 888, 892, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 891, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 821, 572, 573, 390, 391, - 392, 393, 878, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 900, 873, 899, 901, 902, 898, 903, 904, 885, - 776, 0, 828, 896, 895, 897, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 783, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 862, - 835, 836, 837, 773, 838, 832, 833, 774, 834, 863, - 826, 859, 860, 802, 829, 839, 858, 840, 861, 864, - 865, 905, 906, 846, 830, 257, 907, 843, 866, 857, - 856, 841, 827, 867, 868, 809, 804, 844, 845, 831, - 850, 851, 852, 775, 823, 824, 825, 847, 848, 805, - 806, 807, 808, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 853, - 640, 439, 440, 647, 0, 849, 643, 644, 641, 375, - 426, 445, 433, 0, 658, 518, 519, 659, 629, 0, - 768, 206, 64, 197, 168, 0, 0, 0, 0, 0, - 0, 402, 0, 0, 533, 566, 555, 639, 521, 0, - 198, 0, 0, 0, 0, 0, 0, 189, 0, 337, - 0, 199, 370, 570, 552, 562, 553, 538, 539, 540, - 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, - 140, 569, 520, 435, 386, 587, 586, 0, 0, 0, - 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, - 0, 0, 0, 0, 202, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 310, 229, 515, 635, 517, 516, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, - 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, - 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, - 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, - 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, - 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, - 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, - 646, 0, 0, 0, 0, 167, 195, 204, 196, 124, - 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, - 221, 0, 0, 0, 441, 0, 0, 367, 194, 188, - 187, 487, 0, 424, 404, 233, 0, 0, 422, 372, - 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, - 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, - 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, - 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, - 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, - 478, 484, 485, 574, 0, 490, 607, 608, 609, 499, - 0, 414, 0, 504, 505, 506, 508, 509, 510, 511, - 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, - 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, - 381, 417, 299, 346, 291, 292, 466, 330, 400, 597, - 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, - 567, 396, 482, 224, 579, 582, 512, 234, 0, 576, - 591, 549, 590, 235, 406, 0, 428, 588, 535, 0, - 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, - 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, - 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, - 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, - 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, - 138, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 564, 561, 232, 0, 621, 622, 0, 0, 488, - 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, - 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, - 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, - 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 280, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, - 548, 449, 324, 285, 320, 321, 328, 239, 305, 454, - 240, 0, 293, 528, 371, 169, 415, 344, 593, 594, - 61, 645, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, - 480, 481, 503, 0, 465, 527, 236, 45, 222, 225, - 227, 226, 0, 62, 577, 589, 623, 5, 633, 634, - 636, 638, 637, 640, 439, 440, 647, 0, 642, 643, - 644, 641, 375, 426, 445, 433, 143, 237, 518, 519, - 238, 629, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 402, 0, 0, 533, 566, 555, 639, 521, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 140, 569, 520, 435, 386, 587, 586, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 202, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, - 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 2420, 2423, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, - 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 0, 0, 632, 2424, 471, 0, - 0, 0, 2419, 0, 2418, 441, 2416, 2421, 367, 0, - 0, 0, 487, 0, 424, 404, 661, 0, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 873, 400, 596, 629, 630, + 521, 0, 888, 868, 870, 871, 875, 879, 880, 881, + 882, 883, 885, 887, 891, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 890, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 820, 571, 572, 390, + 391, 392, 393, 877, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 899, 872, 898, 900, 901, 897, 902, 903, + 884, 775, 0, 827, 895, 894, 896, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 782, + 293, 527, 371, 0, 415, 344, 592, 593, 0, 644, + 861, 834, 835, 836, 772, 837, 831, 832, 773, 833, + 862, 825, 858, 859, 801, 828, 838, 857, 839, 860, + 863, 864, 904, 905, 845, 829, 257, 906, 842, 865, + 856, 855, 840, 826, 866, 867, 808, 803, 843, 844, + 830, 849, 850, 851, 774, 822, 823, 824, 846, 847, + 804, 805, 806, 807, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 852, 639, 438, 439, 646, 0, 848, 642, 643, 640, + 375, 425, 444, 432, 818, 657, 517, 518, 658, 628, + 0, 767, 0, 402, 0, 0, 532, 565, 554, 638, + 520, 0, 0, 0, 0, 0, 0, 770, 0, 0, + 0, 337, 0, 0, 370, 569, 551, 561, 552, 537, + 538, 539, 546, 349, 540, 541, 542, 512, 543, 513, + 544, 545, 809, 568, 519, 434, 386, 586, 585, 0, + 0, 878, 886, 0, 0, 0, 0, 0, 0, 0, + 0, 874, 0, 0, 0, 0, 762, 0, 0, 799, + 854, 853, 786, 796, 0, 0, 310, 229, 514, 634, + 516, 515, 787, 0, 788, 792, 795, 791, 789, 790, + 0, 869, 0, 0, 0, 0, 0, 0, 754, 766, + 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 763, 764, 0, 0, 0, + 0, 819, 0, 765, 0, 0, 814, 793, 797, 0, + 0, 0, 0, 300, 441, 460, 311, 429, 473, 316, + 437, 452, 306, 401, 426, 0, 0, 302, 458, 436, + 383, 360, 361, 301, 0, 420, 335, 351, 332, 399, + 794, 817, 821, 331, 892, 815, 468, 304, 0, 467, + 398, 454, 459, 384, 377, 0, 303, 456, 382, 376, + 364, 341, 893, 365, 366, 355, 410, 374, 411, 356, + 388, 387, 389, 0, 0, 0, 0, 0, 496, 497, + 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 627, 812, 0, 631, 0, 470, + 0, 0, 876, 0, 0, 0, 440, 0, 0, 367, + 0, 0, 0, 816, 0, 423, 404, 889, 0, 0, + 421, 372, 455, 412, 461, 442, 469, 417, 413, 294, + 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, + 394, 395, 407, 428, 445, 446, 447, 333, 317, 422, + 318, 353, 319, 295, 325, 323, 326, 430, 327, 297, + 408, 451, 0, 348, 418, 380, 298, 379, 409, 450, + 449, 308, 477, 483, 484, 573, 0, 489, 661, 662, + 663, 498, 0, 414, 0, 503, 504, 505, 507, 508, + 509, 510, 574, 591, 558, 528, 491, 582, 525, 529, + 530, 358, 594, 0, 0, 0, 482, 368, 369, 0, + 340, 339, 381, 299, 346, 291, 292, 656, 873, 400, + 596, 629, 630, 521, 0, 888, 868, 870, 871, 875, + 879, 880, 881, 882, 883, 885, 887, 891, 655, 0, + 575, 590, 659, 589, 652, 406, 0, 427, 587, 534, + 0, 579, 553, 0, 580, 549, 584, 0, 523, 0, + 435, 463, 475, 492, 495, 524, 609, 610, 611, 296, + 494, 613, 614, 615, 616, 617, 618, 619, 612, 890, + 556, 533, 559, 474, 536, 535, 0, 0, 570, 820, + 571, 572, 390, 391, 392, 393, 877, 597, 315, 493, + 416, 0, 557, 0, 0, 0, 0, 0, 0, 0, + 0, 562, 563, 560, 664, 0, 620, 621, 0, 0, + 487, 488, 345, 352, 506, 354, 314, 405, 347, 472, + 362, 0, 499, 564, 500, 623, 626, 624, 625, 397, + 357, 359, 431, 363, 373, 419, 471, 403, 424, 312, + 462, 433, 378, 550, 577, 899, 872, 898, 900, 901, + 897, 902, 903, 884, 775, 0, 827, 895, 894, 896, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 605, 604, 603, 602, 601, 600, 599, 598, 0, + 0, 547, 448, 324, 285, 320, 321, 328, 653, 650, + 453, 654, 782, 293, 527, 371, 0, 415, 344, 592, + 593, 0, 644, 861, 834, 835, 836, 772, 837, 831, + 832, 773, 833, 862, 825, 858, 859, 801, 828, 838, + 857, 839, 860, 863, 864, 904, 905, 845, 829, 257, + 906, 842, 865, 856, 855, 840, 826, 866, 867, 808, + 803, 843, 844, 830, 849, 850, 851, 774, 822, 823, + 824, 846, 847, 804, 805, 806, 807, 0, 0, 0, + 478, 479, 480, 502, 0, 464, 526, 651, 0, 0, + 0, 0, 0, 0, 0, 576, 588, 622, 0, 632, + 633, 635, 637, 852, 639, 438, 439, 646, 0, 848, + 642, 643, 640, 375, 425, 444, 432, 818, 657, 517, + 518, 658, 628, 0, 767, 0, 402, 0, 0, 532, + 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, + 770, 0, 0, 0, 337, 0, 0, 370, 569, 551, + 561, 552, 537, 538, 539, 546, 349, 540, 541, 542, + 512, 543, 513, 544, 545, 809, 568, 519, 434, 386, + 586, 585, 0, 0, 878, 886, 0, 0, 0, 0, + 0, 0, 0, 0, 874, 0, 0, 0, 0, 762, + 0, 0, 799, 854, 853, 786, 796, 0, 0, 310, + 229, 514, 634, 516, 515, 787, 0, 788, 792, 795, + 791, 789, 790, 0, 869, 0, 0, 0, 0, 0, + 0, 754, 766, 0, 771, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 763, 764, + 0, 0, 0, 0, 819, 0, 765, 0, 0, 814, + 793, 797, 0, 0, 0, 0, 300, 441, 460, 311, + 429, 473, 316, 437, 452, 306, 401, 426, 0, 0, + 302, 458, 436, 383, 360, 361, 301, 0, 420, 335, + 351, 332, 399, 794, 817, 821, 331, 892, 815, 468, + 304, 0, 467, 398, 454, 459, 384, 377, 0, 303, + 456, 382, 376, 364, 341, 893, 365, 366, 355, 410, + 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, + 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 627, 812, 0, + 631, 0, 470, 0, 0, 876, 0, 0, 0, 440, + 0, 0, 367, 0, 0, 0, 816, 0, 423, 404, + 889, 0, 0, 421, 372, 455, 412, 461, 442, 469, + 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, + 338, 342, 343, 394, 395, 407, 428, 445, 446, 447, + 333, 317, 422, 318, 353, 319, 295, 325, 323, 326, + 430, 327, 297, 408, 451, 0, 348, 418, 380, 298, + 379, 409, 450, 449, 308, 477, 483, 484, 573, 0, + 489, 661, 662, 663, 498, 0, 414, 0, 503, 504, + 505, 507, 508, 509, 510, 574, 591, 558, 528, 491, + 582, 525, 529, 530, 358, 594, 0, 0, 0, 482, + 368, 369, 0, 340, 339, 381, 299, 346, 291, 292, + 656, 873, 400, 596, 629, 630, 521, 0, 888, 868, + 870, 871, 875, 879, 880, 881, 882, 883, 885, 887, + 891, 655, 0, 575, 590, 659, 589, 652, 406, 0, + 427, 587, 534, 0, 579, 553, 0, 580, 549, 584, + 0, 523, 0, 435, 463, 475, 492, 495, 524, 609, + 610, 611, 296, 494, 613, 614, 615, 616, 617, 618, + 619, 612, 890, 556, 533, 559, 474, 536, 535, 0, + 0, 570, 820, 571, 572, 390, 391, 392, 393, 877, + 597, 315, 493, 416, 0, 557, 0, 0, 0, 0, + 0, 0, 0, 0, 562, 563, 560, 664, 0, 620, + 621, 0, 0, 487, 488, 345, 352, 506, 354, 314, + 405, 347, 472, 362, 0, 499, 564, 500, 623, 626, + 624, 625, 397, 357, 359, 431, 363, 373, 419, 471, + 403, 424, 312, 462, 433, 378, 550, 577, 899, 872, + 898, 900, 901, 897, 902, 903, 884, 775, 0, 827, + 895, 894, 896, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 605, 604, 603, 602, 601, 600, + 599, 598, 0, 0, 547, 448, 324, 285, 320, 321, + 328, 653, 650, 453, 654, 782, 293, 527, 371, 0, + 415, 344, 592, 593, 0, 644, 861, 834, 835, 836, + 772, 837, 831, 832, 773, 833, 862, 825, 858, 859, + 801, 828, 838, 857, 839, 860, 863, 864, 904, 905, + 845, 829, 257, 906, 842, 865, 856, 855, 840, 826, + 866, 867, 808, 803, 843, 844, 830, 849, 850, 851, + 774, 822, 823, 824, 846, 847, 804, 805, 806, 807, + 0, 0, 0, 478, 479, 480, 502, 0, 464, 526, + 651, 0, 0, 0, 0, 0, 0, 0, 576, 588, + 622, 0, 632, 633, 635, 637, 852, 639, 438, 439, + 646, 0, 3577, 642, 3578, 3579, 375, 425, 444, 432, + 818, 657, 517, 518, 658, 628, 0, 767, 0, 402, + 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, + 0, 0, 0, 770, 0, 0, 0, 337, 0, 0, + 370, 569, 551, 561, 552, 537, 538, 539, 546, 349, + 540, 541, 542, 512, 543, 513, 544, 545, 809, 568, + 519, 434, 386, 586, 585, 0, 0, 878, 886, 0, + 0, 0, 0, 0, 0, 0, 0, 874, 0, 0, + 0, 0, 762, 0, 0, 799, 854, 853, 786, 796, + 0, 0, 310, 229, 514, 634, 516, 515, 2745, 0, + 2746, 792, 795, 791, 789, 790, 0, 869, 0, 0, + 0, 0, 0, 0, 754, 766, 0, 771, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 763, 764, 0, 0, 0, 0, 819, 0, 765, + 0, 0, 814, 793, 797, 0, 0, 0, 0, 300, + 441, 460, 311, 429, 473, 316, 437, 452, 306, 401, + 426, 0, 0, 302, 458, 436, 383, 360, 361, 301, + 0, 420, 335, 351, 332, 399, 794, 817, 821, 331, + 892, 815, 468, 304, 0, 467, 398, 454, 459, 384, + 377, 0, 303, 456, 382, 376, 364, 341, 893, 365, + 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, + 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 627, 812, 0, 631, 0, 470, 0, 0, 876, 0, + 0, 0, 440, 0, 0, 367, 0, 0, 0, 816, + 0, 423, 404, 889, 0, 0, 421, 372, 455, 412, + 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, + 309, 329, 336, 338, 342, 343, 394, 395, 407, 428, + 445, 446, 447, 333, 317, 422, 318, 353, 319, 295, + 325, 323, 326, 430, 327, 297, 408, 451, 0, 348, + 418, 380, 298, 379, 409, 450, 449, 308, 477, 483, + 484, 573, 0, 489, 661, 662, 663, 498, 0, 414, + 0, 503, 504, 505, 507, 508, 509, 510, 574, 591, + 558, 528, 491, 582, 525, 529, 530, 358, 594, 0, + 0, 0, 482, 368, 369, 0, 340, 339, 381, 299, + 346, 291, 292, 656, 873, 400, 596, 629, 630, 521, + 0, 888, 868, 870, 871, 875, 879, 880, 881, 882, + 883, 885, 887, 891, 655, 0, 575, 590, 659, 589, + 652, 406, 0, 427, 587, 534, 0, 579, 553, 0, + 580, 549, 584, 0, 523, 0, 435, 463, 475, 492, + 495, 524, 609, 610, 611, 296, 494, 613, 614, 615, + 616, 617, 618, 619, 612, 890, 556, 533, 559, 474, + 536, 535, 0, 0, 570, 820, 571, 572, 390, 391, + 392, 393, 877, 597, 315, 493, 416, 0, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 562, 563, 560, + 664, 0, 620, 621, 0, 0, 487, 488, 345, 352, + 506, 354, 314, 405, 347, 472, 362, 0, 499, 564, + 500, 623, 626, 624, 625, 397, 357, 359, 431, 363, + 373, 419, 471, 403, 424, 312, 462, 433, 378, 550, + 577, 899, 872, 898, 900, 901, 897, 902, 903, 884, + 775, 0, 827, 895, 894, 896, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 605, 604, 603, + 602, 601, 600, 599, 598, 0, 0, 547, 448, 324, + 285, 320, 321, 328, 653, 650, 453, 654, 782, 293, + 527, 371, 0, 415, 344, 592, 593, 0, 644, 861, + 834, 835, 836, 772, 837, 831, 832, 773, 833, 862, + 825, 858, 859, 801, 828, 838, 857, 839, 860, 863, + 864, 904, 905, 845, 829, 257, 906, 842, 865, 856, + 855, 840, 826, 866, 867, 808, 803, 843, 844, 830, + 849, 850, 851, 774, 822, 823, 824, 846, 847, 804, + 805, 806, 807, 0, 0, 0, 478, 479, 480, 502, + 0, 464, 526, 651, 0, 0, 0, 0, 0, 0, + 0, 576, 588, 622, 0, 632, 633, 635, 637, 852, + 639, 438, 439, 646, 0, 848, 642, 643, 640, 375, + 425, 444, 432, 818, 657, 517, 518, 658, 628, 0, + 767, 0, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 1735, 0, 0, 0, 770, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 809, 568, 519, 434, 386, 586, 585, 0, 0, + 878, 886, 0, 0, 0, 0, 0, 0, 0, 0, + 874, 0, 0, 0, 0, 762, 0, 0, 799, 854, + 853, 786, 796, 0, 0, 310, 229, 514, 634, 516, + 515, 787, 0, 788, 792, 795, 791, 789, 790, 0, + 869, 0, 0, 0, 0, 0, 0, 0, 766, 0, + 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 763, 764, 0, 0, 0, 0, + 819, 0, 765, 0, 0, 814, 793, 797, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 794, + 817, 821, 331, 892, 815, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 893, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 812, 0, 631, 0, 470, 0, + 0, 876, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 816, 0, 423, 404, 889, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 2422, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 330, 400, - 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, - 568, 567, 396, 482, 0, 579, 582, 512, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, - 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 0, 293, 528, 371, 169, 415, 344, 593, - 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 637, 640, 439, 440, 647, 0, 642, - 643, 644, 641, 375, 426, 445, 433, 0, 658, 518, - 519, 659, 629, 402, 0, 0, 533, 566, 555, 639, - 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, - 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, - 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1332, 0, 0, 228, - 0, 0, 787, 797, 0, 0, 310, 229, 515, 635, - 517, 516, 788, 0, 789, 793, 796, 792, 790, 791, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, - 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, - 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, - 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, - 795, 458, 486, 331, 477, 0, 469, 304, 0, 468, - 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, - 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, - 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, - 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, - 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, - 0, 0, 0, 487, 0, 424, 404, 661, 0, 0, - 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, - 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, - 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, - 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, - 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, - 450, 308, 478, 484, 485, 574, 0, 490, 662, 663, - 664, 499, 0, 414, 0, 504, 505, 506, 508, 509, - 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, - 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, - 340, 339, 381, 417, 299, 346, 291, 292, 657, 330, - 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, - 556, 568, 567, 396, 482, 0, 579, 582, 512, 656, - 0, 576, 591, 660, 590, 653, 406, 0, 428, 588, - 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, - 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, - 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, - 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, - 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, - 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 564, 561, 665, 0, 621, 622, 0, - 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, - 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, - 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, - 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, - 0, 0, 548, 449, 324, 285, 320, 321, 328, 654, - 651, 454, 655, 0, 293, 528, 371, 0, 415, 344, - 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 479, 480, 481, 503, 0, 465, 527, 652, 0, - 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, - 633, 634, 636, 638, 637, 640, 439, 440, 647, 0, - 642, 643, 644, 641, 375, 426, 445, 433, 0, 658, - 518, 519, 659, 629, 206, 64, 197, 168, 0, 0, - 0, 0, 0, 0, 402, 684, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 691, - 0, 0, 0, 0, 0, 0, 0, 690, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, - 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 1736, 1737, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 873, 400, 596, + 629, 630, 521, 0, 888, 868, 870, 871, 875, 879, + 880, 881, 882, 883, 885, 887, 891, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 890, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 820, 571, + 572, 390, 391, 392, 393, 877, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 899, 872, 898, 900, 901, 897, + 902, 903, 884, 775, 0, 827, 895, 894, 896, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 782, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 861, 834, 835, 836, 772, 837, 831, 832, + 773, 833, 862, 825, 858, 859, 801, 828, 838, 857, + 839, 860, 863, 864, 904, 905, 845, 829, 257, 906, + 842, 865, 856, 855, 840, 826, 866, 867, 808, 803, + 843, 844, 830, 849, 850, 851, 774, 822, 823, 824, + 846, 847, 804, 805, 806, 807, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 852, 639, 438, 439, 646, 0, 848, 642, + 643, 640, 375, 425, 444, 432, 818, 657, 517, 518, + 658, 628, 0, 767, 0, 402, 0, 0, 532, 565, + 554, 638, 520, 0, 0, 0, 0, 0, 0, 770, + 0, 0, 0, 337, 0, 0, 370, 569, 551, 561, + 552, 537, 538, 539, 546, 349, 540, 541, 542, 512, + 543, 513, 544, 545, 809, 568, 519, 434, 386, 586, + 585, 0, 0, 878, 886, 0, 0, 0, 0, 0, + 0, 0, 0, 874, 0, 0, 0, 0, 762, 0, + 0, 799, 854, 853, 786, 796, 0, 0, 310, 229, + 514, 634, 516, 515, 787, 0, 788, 792, 795, 791, + 789, 790, 0, 869, 0, 0, 0, 0, 0, 0, + 0, 766, 0, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 763, 764, 0, + 0, 0, 0, 819, 0, 765, 0, 0, 814, 793, + 797, 0, 0, 0, 0, 300, 441, 460, 311, 429, + 473, 316, 437, 452, 306, 401, 426, 0, 0, 302, + 458, 436, 383, 360, 361, 301, 0, 420, 335, 351, + 332, 399, 794, 817, 821, 331, 892, 815, 468, 304, + 0, 467, 398, 454, 459, 384, 377, 0, 303, 456, + 382, 376, 364, 341, 893, 365, 366, 355, 410, 374, + 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, + 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 627, 812, 0, 631, + 0, 470, 0, 0, 876, 0, 0, 0, 440, 0, + 0, 367, 0, 0, 0, 816, 0, 423, 404, 889, + 0, 0, 421, 372, 455, 412, 461, 442, 469, 417, + 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, + 342, 343, 394, 395, 407, 428, 445, 446, 447, 333, + 317, 422, 318, 353, 319, 295, 325, 323, 326, 430, + 327, 297, 408, 451, 0, 348, 418, 380, 298, 379, + 409, 450, 449, 308, 477, 483, 484, 573, 0, 489, + 661, 662, 663, 498, 0, 414, 0, 503, 504, 505, + 507, 508, 509, 510, 574, 591, 558, 528, 491, 582, + 525, 529, 530, 358, 594, 0, 0, 0, 482, 368, + 369, 0, 340, 339, 381, 299, 346, 291, 292, 656, + 873, 400, 596, 629, 630, 521, 0, 888, 868, 870, + 871, 875, 879, 880, 881, 882, 883, 885, 887, 891, + 655, 0, 575, 590, 659, 589, 652, 406, 0, 427, + 587, 534, 0, 579, 553, 0, 580, 549, 584, 0, + 523, 0, 435, 463, 475, 492, 495, 524, 609, 610, + 611, 296, 494, 613, 614, 615, 616, 617, 618, 619, + 612, 890, 556, 533, 559, 474, 536, 535, 0, 0, + 570, 820, 571, 572, 390, 391, 392, 393, 877, 597, + 315, 493, 416, 0, 557, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 560, 664, 0, 620, 621, + 0, 0, 487, 488, 345, 352, 506, 354, 314, 405, + 347, 472, 362, 0, 499, 564, 500, 623, 626, 624, + 625, 397, 357, 359, 431, 363, 373, 419, 471, 403, + 424, 312, 462, 433, 378, 550, 577, 899, 872, 898, + 900, 901, 897, 902, 903, 884, 775, 0, 827, 895, + 894, 896, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 605, 604, 603, 602, 601, 600, 599, + 598, 0, 0, 547, 448, 324, 285, 320, 321, 328, + 653, 650, 453, 654, 782, 293, 527, 371, 0, 415, + 344, 592, 593, 0, 644, 861, 834, 835, 836, 772, + 837, 831, 832, 773, 833, 862, 825, 858, 859, 801, + 828, 838, 857, 839, 860, 863, 864, 904, 905, 845, + 829, 257, 906, 842, 865, 856, 855, 840, 826, 866, + 867, 808, 803, 843, 844, 830, 849, 850, 851, 774, + 822, 823, 824, 846, 847, 804, 805, 806, 807, 0, + 0, 0, 478, 479, 480, 502, 0, 464, 526, 651, + 0, 0, 0, 0, 0, 0, 0, 576, 588, 622, + 0, 632, 633, 635, 637, 852, 639, 438, 439, 646, + 0, 848, 642, 643, 640, 375, 425, 444, 432, 818, + 657, 517, 518, 658, 628, 0, 767, 0, 402, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 770, 0, 0, 0, 337, 0, 0, 370, + 569, 551, 561, 552, 537, 538, 539, 546, 349, 540, + 541, 542, 512, 543, 513, 544, 545, 809, 568, 519, + 434, 386, 586, 585, 0, 0, 878, 886, 0, 0, + 0, 0, 0, 0, 0, 0, 874, 0, 0, 0, + 0, 0, 0, 0, 799, 854, 853, 786, 796, 0, + 0, 310, 229, 514, 634, 516, 515, 787, 0, 788, + 792, 795, 791, 789, 790, 0, 869, 0, 0, 0, + 0, 0, 0, 754, 766, 0, 771, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 763, 764, 0, 0, 0, 0, 819, 0, 765, 0, + 0, 814, 793, 797, 0, 0, 0, 0, 300, 441, + 460, 311, 429, 473, 316, 437, 452, 306, 401, 426, + 0, 0, 302, 458, 436, 383, 360, 361, 301, 0, + 420, 335, 351, 332, 399, 794, 817, 821, 331, 892, + 815, 468, 304, 0, 467, 398, 454, 459, 384, 377, + 0, 303, 456, 382, 376, 364, 341, 893, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 812, 0, 631, 0, 470, 0, 0, 876, 0, 0, + 0, 440, 0, 0, 367, 0, 0, 0, 816, 0, + 423, 404, 889, 0, 0, 421, 372, 455, 412, 461, + 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 428, 445, + 446, 447, 333, 317, 422, 318, 353, 319, 295, 325, + 323, 326, 430, 327, 297, 408, 451, 0, 348, 418, + 380, 298, 379, 409, 450, 449, 308, 477, 483, 484, + 573, 0, 489, 661, 662, 663, 498, 0, 414, 0, + 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, + 528, 491, 582, 525, 529, 530, 358, 594, 0, 0, + 0, 482, 368, 369, 0, 340, 339, 381, 299, 346, + 291, 292, 656, 873, 400, 596, 629, 630, 521, 0, + 888, 868, 870, 871, 875, 879, 880, 881, 882, 883, + 885, 887, 891, 655, 0, 575, 590, 659, 589, 652, + 406, 0, 427, 587, 534, 0, 579, 553, 0, 580, + 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, + 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, + 617, 618, 619, 612, 890, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 820, 571, 572, 390, 391, 392, + 393, 877, 597, 315, 493, 416, 0, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 562, 563, 560, 664, + 0, 620, 621, 0, 0, 487, 488, 345, 352, 506, + 354, 314, 405, 347, 472, 362, 0, 499, 564, 500, + 623, 626, 624, 625, 397, 357, 359, 431, 363, 373, + 419, 471, 403, 424, 312, 462, 433, 378, 550, 577, + 899, 872, 898, 900, 901, 897, 902, 903, 884, 775, + 0, 827, 895, 894, 896, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, + 601, 600, 599, 598, 0, 0, 547, 448, 324, 285, + 320, 321, 328, 653, 650, 453, 654, 782, 293, 527, + 371, 0, 415, 344, 592, 593, 0, 644, 861, 834, + 835, 836, 772, 837, 831, 832, 773, 833, 862, 825, + 858, 859, 801, 828, 838, 857, 839, 860, 863, 864, + 904, 905, 845, 829, 257, 906, 842, 865, 856, 855, + 840, 826, 866, 867, 808, 803, 843, 844, 830, 849, + 850, 851, 774, 822, 823, 824, 846, 847, 804, 805, + 806, 807, 0, 0, 0, 478, 479, 480, 502, 0, + 464, 526, 651, 0, 0, 0, 0, 0, 0, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 852, 639, + 438, 439, 646, 0, 848, 642, 643, 640, 375, 425, + 444, 432, 0, 657, 517, 518, 658, 628, 0, 767, + 206, 64, 197, 168, 0, 0, 0, 0, 0, 0, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 198, + 0, 0, 0, 0, 0, 0, 189, 0, 337, 0, + 199, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 140, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, + 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 688, 689, 0, 628, 0, 0, 632, 0, - 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 487, 0, 424, 404, 661, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, - 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 491, 572, 573, 390, 391, 392, 393, 685, 687, - 315, 494, 416, 699, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, - 0, 0, 0, 0, 0, 65, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 0, 293, 528, 371, 169, 415, - 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 637, 640, 439, 440, 647, - 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, - 658, 518, 519, 659, 629, 402, 0, 0, 533, 566, - 555, 639, 521, 0, 1140, 0, 0, 0, 0, 0, - 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, - 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, - 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, - 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 310, 229, - 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1125, 0, - 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, - 474, 316, 438, 453, 306, 401, 427, 0, 0, 2583, - 2586, 2587, 2588, 2589, 2590, 2591, 0, 2596, 2592, 2593, - 2594, 2595, 0, 2578, 2579, 2580, 2581, 1123, 2562, 2584, - 0, 2563, 398, 2564, 2565, 2566, 2567, 1127, 2568, 2569, - 2570, 2571, 2572, 2575, 2576, 2573, 2574, 2582, 410, 374, - 411, 356, 388, 387, 389, 1151, 1153, 1155, 1157, 1160, - 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, - 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, - 0, 367, 0, 0, 0, 2577, 0, 424, 404, 661, - 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, - 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, - 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, - 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, - 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, - 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, - 662, 663, 664, 499, 0, 414, 0, 504, 505, 506, - 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, - 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, - 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, - 657, 330, 400, 597, 630, 631, 522, 0, 584, 523, - 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, - 512, 656, 0, 576, 591, 660, 590, 653, 406, 0, - 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, - 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, - 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, - 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, - 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, - 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 564, 561, 665, 0, 621, - 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, - 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, - 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, - 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, - 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, - 328, 654, 651, 454, 655, 0, 293, 2585, 371, 0, - 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, - 652, 0, 0, 0, 0, 0, 0, 0, 577, 589, - 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, - 647, 0, 642, 643, 644, 641, 375, 426, 445, 433, - 0, 658, 518, 519, 659, 629, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, - 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, - 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 313, 2420, 2423, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, - 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, - 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, - 632, 2424, 471, 0, 0, 0, 2419, 0, 2418, 441, - 2416, 2421, 367, 0, 0, 0, 487, 0, 424, 404, - 661, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 2422, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 330, 400, 597, 630, 631, 522, 0, 584, - 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, - 582, 512, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, - 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 0, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, - 440, 647, 0, 642, 643, 644, 641, 375, 426, 445, - 433, 0, 658, 518, 519, 659, 629, 402, 0, 0, - 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, - 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, - 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, - 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 2441, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, - 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, - 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, - 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, - 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, - 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, - 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, - 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, - 0, 632, 2440, 471, 0, 0, 0, 2446, 2443, 2445, - 441, 0, 2444, 367, 0, 0, 0, 487, 0, 424, - 404, 661, 0, 2438, 422, 372, 456, 412, 462, 443, - 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, - 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, - 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, - 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, - 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, - 0, 490, 662, 663, 664, 499, 0, 414, 0, 504, - 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, - 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, - 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, - 291, 292, 657, 330, 400, 597, 630, 631, 522, 0, - 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, - 579, 582, 512, 656, 0, 576, 591, 660, 590, 653, - 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, - 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, - 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, - 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, - 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, - 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 564, 561, 665, - 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, - 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, - 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, - 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 0, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, + 0, 0, 0, 0, 167, 195, 204, 196, 124, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 221, + 0, 0, 0, 440, 0, 0, 367, 194, 188, 187, + 486, 0, 423, 404, 233, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 606, 607, 608, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 465, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 224, 578, 581, 511, 234, 0, 575, 590, 548, + 589, 235, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 138, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 232, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 239, 305, 453, 240, 0, + 293, 527, 371, 169, 415, 344, 592, 593, 61, 644, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 236, 45, 222, 225, 227, 226, + 0, 62, 576, 588, 622, 5, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 143, 237, 517, 518, 238, 628, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 140, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, - 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, - 320, 321, 328, 654, 651, 454, 655, 0, 293, 528, - 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, - 465, 527, 652, 0, 0, 0, 0, 0, 0, 0, - 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, - 439, 440, 647, 0, 642, 643, 644, 641, 375, 426, - 445, 433, 0, 658, 518, 519, 659, 629, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, - 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 2419, + 2422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 2441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 0, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, - 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 0, 0, 632, 2440, 471, 0, 0, 0, 2446, 2443, - 2445, 441, 0, 2444, 367, 0, 0, 0, 487, 0, - 424, 404, 661, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 330, 400, 597, 630, 631, 522, - 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, - 0, 579, 582, 512, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, - 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 0, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, - 640, 439, 440, 647, 0, 642, 643, 644, 641, 375, - 426, 445, 433, 0, 658, 518, 519, 659, 629, 402, - 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, - 0, 0, 2139, 0, 0, 0, 0, 337, 0, 0, - 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, - 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, - 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 2140, 0, - 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 1261, 1262, 1263, 1260, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, - 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, - 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, - 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, - 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, - 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, - 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, - 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, - 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, - 0, 424, 404, 661, 0, 0, 422, 372, 456, 412, - 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, - 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, - 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, - 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, - 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, - 485, 574, 0, 490, 662, 663, 664, 499, 0, 414, - 0, 504, 505, 506, 508, 509, 510, 511, 575, 592, - 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, - 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, - 299, 346, 291, 292, 657, 330, 400, 597, 630, 631, - 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, - 482, 0, 579, 582, 512, 656, 0, 576, 591, 660, - 590, 653, 406, 0, 428, 588, 535, 0, 580, 554, - 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, - 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, - 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, - 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, - 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, - 561, 665, 0, 621, 622, 0, 0, 488, 489, 345, - 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, - 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, - 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, - 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 2423, 470, 0, 0, 0, + 2418, 0, 2417, 440, 2415, 2420, 367, 0, 0, 0, + 486, 0, 423, 404, 660, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 2421, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, - 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, - 324, 285, 320, 321, 328, 654, 651, 454, 655, 0, - 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 527, 371, 169, 415, 344, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, - 503, 0, 465, 527, 652, 0, 0, 0, 0, 0, - 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, - 637, 640, 439, 440, 647, 0, 642, 643, 644, 641, - 375, 426, 445, 433, 206, 658, 518, 519, 659, 629, - 0, 0, 0, 0, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 140, 569, 520, 435, 386, 587, 586, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 202, 2189, 0, - 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, - 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 0, 657, 517, 518, 658, 628, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1331, 0, 0, 228, 0, 0, 786, + 796, 0, 0, 310, 229, 514, 634, 516, 515, 787, + 0, 788, 792, 795, 791, 789, 790, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, - 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 487, 0, 424, 404, 661, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, - 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 0, 293, 528, 371, 169, 415, - 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 637, 640, 439, 440, 647, - 0, 642, 643, 644, 641, 375, 426, 445, 433, 206, - 658, 518, 519, 659, 629, 0, 0, 0, 0, 402, - 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, - 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, - 541, 542, 543, 513, 544, 514, 545, 546, 140, 569, - 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 202, 2174, 0, 228, 0, 0, 0, 0, - 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, - 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, - 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, - 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, - 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, - 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, - 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, - 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, - 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, - 0, 424, 404, 661, 0, 0, 422, 372, 456, 412, - 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, - 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, - 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, - 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, - 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, - 485, 574, 0, 490, 662, 663, 664, 499, 0, 414, - 0, 504, 505, 506, 508, 509, 510, 511, 575, 592, - 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, - 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, - 299, 346, 291, 292, 657, 330, 400, 597, 630, 631, - 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, - 482, 0, 579, 582, 512, 656, 0, 576, 591, 660, - 590, 653, 406, 0, 428, 588, 535, 0, 580, 554, - 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, - 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, - 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, - 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, - 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, - 561, 665, 0, 621, 622, 0, 0, 488, 489, 345, - 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, - 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, - 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, - 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 794, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 367, 0, 0, 0, + 486, 0, 423, 404, 660, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, - 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, - 324, 285, 320, 321, 328, 654, 651, 454, 655, 0, - 293, 528, 371, 169, 415, 344, 593, 594, 0, 645, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 527, 371, 0, 415, 344, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, - 503, 0, 465, 527, 652, 0, 0, 0, 0, 0, - 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, - 637, 640, 439, 440, 647, 0, 642, 643, 644, 641, - 375, 426, 445, 433, 0, 658, 518, 519, 659, 629, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 1051, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, - 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 1058, 1059, 0, - 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1062, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 0, 657, 517, 518, 658, 628, + 206, 64, 197, 168, 0, 0, 0, 0, 0, 0, + 402, 683, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 690, 0, 0, 0, 0, + 0, 0, 0, 689, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 442, 1045, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, - 331, 477, 1032, 469, 304, 1031, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 0, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 487, 0, 424, 404, 661, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 1049, 413, 294, 444, 334, 385, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, + 0, 0, 0, 0, 0, 0, 0, 0, 687, 688, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 367, 0, 0, 0, + 486, 0, 423, 404, 660, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 330, 400, 597, 630, - 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, - 396, 482, 0, 579, 582, 512, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 1050, 613, 467, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 1053, 572, 573, - 390, 391, 392, 393, 350, 598, 1048, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 1060, 1046, 1056, - 1047, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 1057, 551, 578, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 637, 640, 439, 440, 647, 0, 642, 643, 644, - 641, 1044, 426, 445, 433, 206, 658, 518, 519, 659, - 629, 0, 0, 0, 0, 402, 0, 0, 533, 566, - 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, - 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, - 544, 514, 545, 546, 140, 569, 520, 435, 386, 587, - 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 310, 229, - 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, - 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, - 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, - 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, - 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, - 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, - 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, - 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, - 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, - 0, 367, 0, 0, 0, 487, 0, 424, 404, 661, - 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, - 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, - 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, - 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, - 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, - 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, - 662, 663, 664, 499, 0, 414, 0, 504, 505, 506, - 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, - 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, - 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, - 657, 330, 400, 597, 630, 631, 522, 0, 584, 523, - 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, - 512, 656, 0, 576, 591, 660, 590, 653, 406, 0, - 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, - 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, - 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, - 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, - 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, - 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 564, 561, 665, 0, 621, - 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, - 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, - 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, - 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, - 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, - 328, 654, 651, 454, 655, 0, 293, 528, 371, 169, - 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, - 652, 0, 0, 0, 0, 0, 0, 0, 577, 589, - 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, - 647, 0, 642, 643, 644, 641, 375, 426, 445, 433, - 0, 658, 518, 519, 659, 629, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, - 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 1058, 1059, 0, 0, 0, 0, 310, - 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1062, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 0, 458, 486, 331, 477, 1032, 469, - 304, 1031, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, - 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, - 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, - 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, - 661, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 330, 400, 597, 630, 631, 522, 0, 584, - 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, - 582, 512, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, - 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 1060, 2090, 1056, 2091, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 1057, 551, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 0, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, - 440, 647, 0, 642, 643, 644, 641, 375, 426, 445, - 433, 0, 658, 518, 519, 659, 629, 402, 0, 0, - 533, 566, 555, 639, 521, 0, 0, 2982, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, - 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, - 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, - 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, - 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, - 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, - 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, - 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, - 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, - 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, - 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, - 0, 0, 0, 2985, 0, 0, 0, 2984, 628, 0, - 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, - 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, - 404, 661, 0, 0, 422, 372, 456, 412, 462, 443, - 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, - 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, - 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, - 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, - 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, - 0, 490, 662, 663, 664, 499, 0, 414, 0, 504, - 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, - 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, - 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, - 291, 292, 657, 330, 400, 597, 630, 631, 522, 0, - 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, - 579, 582, 512, 656, 0, 576, 591, 660, 590, 653, - 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, - 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, - 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, - 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, - 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, - 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 564, 561, 665, - 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, - 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, - 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, - 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 684, 686, 315, 493, 416, 698, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 527, 371, 169, 415, 344, 592, 593, 0, 644, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 0, 657, 517, 518, 658, 628, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 1139, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, - 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, - 320, 321, 328, 654, 651, 454, 655, 0, 293, 528, - 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, - 465, 527, 652, 0, 0, 0, 0, 0, 0, 0, - 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, - 439, 440, 647, 0, 642, 643, 644, 641, 375, 426, - 445, 433, 0, 658, 518, 519, 659, 629, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 337, 1557, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, - 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 1555, 0, 0, - 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1553, 0, 0, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, - 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, - 424, 404, 661, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 330, 400, 597, 630, 631, 522, - 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, - 0, 579, 582, 512, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, - 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 0, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, - 640, 439, 440, 647, 0, 642, 643, 644, 641, 375, - 426, 445, 433, 0, 658, 518, 519, 659, 629, 402, - 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 1551, 0, - 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, - 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, - 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 1555, 0, - 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1553, 0, 0, 0, 0, 0, 0, 300, - 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, - 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, - 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, - 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, - 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, - 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, - 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, - 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, - 0, 424, 404, 661, 0, 0, 422, 372, 456, 412, - 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, - 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, - 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, - 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, - 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, - 485, 574, 0, 490, 662, 663, 664, 499, 0, 414, - 0, 504, 505, 506, 508, 509, 510, 511, 575, 592, - 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, - 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, - 299, 346, 291, 292, 657, 330, 400, 597, 630, 631, - 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, - 482, 0, 579, 582, 512, 656, 0, 576, 591, 660, - 590, 653, 406, 0, 428, 588, 535, 0, 580, 554, - 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, - 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, - 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, - 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, - 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, - 561, 665, 0, 621, 622, 0, 0, 488, 489, 345, - 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, - 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, - 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, - 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1124, 0, 0, 0, 0, 0, 0, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 2582, 2585, 2586, 2587, 2588, 2589, + 2590, 0, 2595, 2591, 2592, 2593, 2594, 0, 2577, 2578, + 2579, 2580, 1122, 2561, 2583, 0, 2562, 398, 2563, 2564, + 2565, 2566, 1126, 2567, 2568, 2569, 2570, 2571, 2574, 2575, + 2572, 2573, 2581, 410, 374, 411, 356, 388, 387, 389, + 1150, 1152, 1154, 1156, 1159, 496, 497, 0, 0, 645, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 367, 0, 0, 0, + 2576, 0, 423, 404, 660, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, - 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, - 324, 285, 320, 321, 328, 654, 651, 454, 655, 0, - 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 2584, 371, 0, 415, 344, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, - 503, 0, 465, 527, 652, 0, 0, 0, 0, 0, - 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, - 637, 640, 439, 440, 647, 0, 642, 643, 644, 641, - 375, 426, 445, 433, 0, 658, 518, 519, 659, 629, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 0, 657, 517, 518, 658, 628, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, - 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4090, 0, 228, 855, 0, 0, - 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 2419, + 2422, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, - 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 0, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 487, 0, 424, 404, 661, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 0, 627, 0, 0, 631, 2423, 470, 0, 0, 0, + 2418, 0, 2417, 440, 2415, 2420, 367, 0, 0, 0, + 486, 0, 423, 404, 660, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 330, 400, 597, 630, - 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, - 396, 482, 0, 579, 582, 512, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, - 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 637, 640, 439, 440, 647, 0, 642, 643, 644, - 641, 375, 426, 445, 433, 0, 658, 518, 519, 659, - 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, - 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, - 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, - 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 1555, 0, 0, 0, 310, 229, 515, 635, 517, 516, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1553, 0, 0, 0, 0, 0, - 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, - 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, - 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, - 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, - 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, - 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, - 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, - 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, - 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, - 0, 487, 0, 424, 404, 661, 0, 0, 422, 372, - 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, - 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, - 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, - 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, - 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, - 478, 484, 485, 574, 0, 490, 662, 663, 664, 499, - 0, 414, 0, 504, 505, 506, 508, 509, 510, 511, - 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, - 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, - 381, 417, 299, 346, 291, 292, 657, 330, 400, 597, - 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, - 567, 396, 482, 0, 579, 582, 512, 656, 0, 576, - 591, 660, 590, 653, 406, 0, 428, 588, 535, 0, - 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, - 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, - 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, - 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, - 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 564, 561, 665, 0, 621, 622, 0, 0, 488, - 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, - 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, - 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, - 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, - 548, 449, 324, 285, 320, 321, 328, 654, 651, 454, - 655, 0, 293, 528, 371, 0, 415, 344, 593, 594, - 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, - 480, 481, 503, 0, 465, 527, 652, 0, 0, 0, - 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, - 636, 638, 637, 640, 439, 440, 647, 0, 642, 643, - 644, 641, 375, 426, 445, 433, 0, 658, 518, 519, - 659, 629, 402, 0, 0, 533, 566, 555, 639, 521, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 1555, 0, 0, 0, 310, 229, 515, 635, 517, - 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 2421, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 527, 371, 0, 415, 344, 592, 593, 0, 644, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 0, 657, 517, 518, 658, 628, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1766, 0, 0, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, - 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, - 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, - 0, 0, 487, 0, 424, 404, 661, 0, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, - 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 330, 400, - 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, - 568, 567, 396, 482, 0, 579, 582, 512, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, - 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 0, 293, 528, 371, 0, 415, 344, 593, - 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 637, 640, 439, 440, 647, 0, 642, - 643, 644, 641, 375, 426, 445, 433, 0, 658, 518, - 519, 659, 629, 402, 0, 0, 533, 566, 555, 639, - 521, 0, 0, 0, 0, 0, 2524, 0, 0, 0, - 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, - 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, - 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 2526, 0, 0, 0, 310, 229, 515, 635, - 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, - 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, - 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, - 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, - 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, - 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, - 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, - 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, - 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, - 0, 0, 0, 487, 0, 424, 404, 661, 0, 0, - 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, - 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, - 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, - 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, - 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, - 450, 308, 478, 484, 485, 574, 0, 490, 662, 663, - 664, 499, 0, 414, 0, 504, 505, 506, 508, 509, - 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, - 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, - 340, 339, 381, 417, 299, 346, 291, 292, 657, 330, - 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, - 556, 568, 567, 396, 482, 0, 579, 582, 512, 656, - 0, 576, 591, 660, 590, 653, 406, 0, 428, 588, - 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, - 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, - 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, - 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, - 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, - 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 564, 561, 665, 0, 621, 622, 0, - 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, - 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, - 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, - 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 2440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, - 0, 0, 548, 449, 324, 285, 320, 321, 328, 654, - 651, 454, 655, 0, 293, 528, 371, 0, 415, 344, - 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 479, 480, 481, 503, 0, 465, 527, 652, 0, - 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, - 633, 634, 636, 638, 637, 640, 439, 440, 647, 0, - 642, 643, 644, 641, 375, 426, 445, 433, 0, 658, - 518, 519, 659, 629, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 2139, 0, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 2140, 0, 0, 0, 310, 229, 515, - 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 0, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, - 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 487, 0, 424, 404, 661, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, - 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 0, 293, 528, 371, 0, 415, - 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 637, 640, 439, 440, 647, - 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, - 658, 518, 519, 659, 629, 402, 0, 0, 533, 566, - 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, - 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, - 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, - 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 3201, 3203, 0, 0, 310, 229, - 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, - 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, - 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, - 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, - 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, - 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, - 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, - 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, - 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, - 0, 367, 0, 0, 0, 487, 0, 424, 404, 661, - 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, - 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, - 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, - 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, - 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, - 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, - 662, 663, 664, 499, 0, 414, 0, 504, 505, 506, - 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, - 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, - 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, - 657, 330, 400, 597, 630, 631, 522, 0, 584, 523, - 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, - 512, 656, 0, 576, 591, 660, 590, 653, 406, 0, - 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, - 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, - 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, - 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, - 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, - 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 564, 561, 665, 0, 621, - 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, - 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, - 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, - 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, - 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, - 328, 654, 651, 454, 655, 0, 293, 528, 371, 0, - 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, - 652, 0, 0, 0, 0, 0, 0, 0, 577, 589, - 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, - 647, 0, 642, 643, 644, 641, 375, 426, 445, 433, - 0, 658, 518, 519, 659, 629, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 2547, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, - 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 1555, 0, 0, 0, 310, - 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, - 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, - 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, - 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, - 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, - 661, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 330, 400, 597, 630, 631, 522, 0, 584, - 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, - 582, 512, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, - 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 0, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, - 440, 647, 0, 642, 643, 644, 641, 375, 426, 445, - 433, 0, 658, 518, 519, 659, 629, 402, 0, 0, - 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 672, 337, 0, 0, 370, 570, - 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, - 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, - 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, - 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, - 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, - 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, - 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, - 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, - 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, - 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, - 0, 632, 0, 471, 0, 671, 0, 0, 0, 0, - 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, - 404, 661, 0, 0, 422, 372, 456, 412, 462, 443, - 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, - 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, - 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, - 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, - 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, - 0, 490, 662, 663, 664, 499, 0, 414, 0, 504, - 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, - 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, - 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, - 291, 292, 657, 330, 400, 597, 630, 631, 522, 0, - 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, - 579, 582, 512, 656, 0, 576, 591, 660, 590, 653, - 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, - 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, - 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, - 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, - 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, - 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 564, 561, 665, - 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, - 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, - 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, - 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 627, 0, 0, 631, 2439, 470, 0, 0, 0, + 2445, 2442, 2444, 440, 0, 2443, 367, 0, 0, 0, + 486, 0, 423, 404, 660, 0, 2437, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 527, 371, 0, 415, 344, 592, 593, 0, 644, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 0, 657, 517, 518, 658, 628, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, - 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, - 320, 321, 328, 654, 651, 454, 655, 0, 293, 528, - 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, - 465, 527, 652, 0, 0, 0, 0, 0, 0, 0, - 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, - 439, 440, 647, 0, 642, 643, 644, 641, 375, 426, - 445, 433, 0, 658, 518, 519, 659, 629, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, - 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 2440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 855, 0, 0, 0, 0, - 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 0, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, + 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, - 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, - 424, 404, 661, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 330, 400, 597, 630, 631, 522, - 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, - 0, 579, 582, 512, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, - 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 0, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, - 640, 439, 440, 647, 0, 642, 643, 644, 641, 375, - 426, 445, 433, 0, 658, 518, 519, 659, 629, 402, - 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, - 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, - 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, - 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4067, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, - 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, - 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, - 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, - 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, - 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, - 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, - 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, - 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, - 0, 424, 404, 661, 0, 0, 422, 372, 456, 412, - 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, - 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, - 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, - 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, - 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, - 485, 574, 0, 490, 662, 663, 664, 499, 0, 414, - 0, 504, 505, 506, 508, 509, 510, 511, 575, 592, - 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, - 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, - 299, 346, 291, 292, 657, 330, 400, 597, 630, 631, - 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, - 482, 0, 579, 582, 512, 656, 0, 576, 591, 660, - 590, 653, 406, 0, 428, 588, 535, 0, 580, 554, - 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, - 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, - 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, - 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, - 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, - 561, 665, 0, 621, 622, 0, 0, 488, 489, 345, - 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, - 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, - 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, - 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 627, 0, 0, 631, 2439, 470, 0, 0, 0, + 2445, 2442, 2444, 440, 0, 2443, 367, 0, 0, 0, + 486, 0, 423, 404, 660, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, + 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, - 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, - 324, 285, 320, 321, 328, 654, 651, 454, 655, 0, - 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 527, 371, 0, 415, 344, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, - 503, 0, 465, 527, 652, 0, 0, 0, 0, 0, - 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, - 637, 640, 439, 440, 647, 0, 642, 643, 644, 641, - 375, 426, 445, 433, 0, 658, 518, 519, 659, 629, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, - 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 3820, - 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 0, 657, 517, 518, 658, 628, + 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, + 0, 0, 0, 2138, 0, 0, 0, 0, 337, 0, + 0, 370, 569, 551, 561, 552, 537, 538, 539, 546, + 349, 540, 541, 542, 512, 543, 513, 544, 545, 0, + 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 2139, + 0, 0, 0, 310, 229, 514, 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 1260, 1261, 1262, 1259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, - 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, + 300, 441, 460, 311, 429, 473, 316, 437, 452, 306, + 401, 426, 0, 0, 302, 458, 436, 383, 360, 361, + 301, 0, 420, 335, 351, 332, 399, 0, 457, 485, + 331, 476, 0, 468, 304, 0, 467, 398, 454, 459, + 384, 377, 0, 303, 456, 382, 376, 364, 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 487, 0, 424, 404, 661, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, + 0, 627, 0, 0, 631, 0, 470, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 367, 0, 0, 0, + 486, 0, 423, 404, 660, 0, 0, 421, 372, 455, + 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 330, 400, 597, 630, - 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, - 396, 482, 0, 579, 582, 512, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, - 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 637, 640, 439, 440, 647, 0, 642, 643, 644, - 641, 375, 426, 445, 433, 0, 658, 518, 519, 659, - 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, - 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, - 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, - 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 310, 229, 515, 635, 517, 516, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, - 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, - 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, - 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, - 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, - 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, - 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, - 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, - 0, 3956, 0, 0, 441, 0, 0, 367, 0, 0, - 0, 487, 0, 424, 404, 661, 0, 0, 422, 372, - 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, - 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, - 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, - 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, - 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, - 478, 484, 485, 574, 0, 490, 662, 663, 664, 499, - 0, 414, 0, 504, 505, 506, 508, 509, 510, 511, - 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, - 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, - 381, 417, 299, 346, 291, 292, 657, 330, 400, 597, - 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, - 567, 396, 482, 0, 579, 582, 512, 656, 0, 576, - 591, 660, 590, 653, 406, 0, 428, 588, 535, 0, - 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, - 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, - 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, - 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, - 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 564, 561, 665, 0, 621, 622, 0, 0, 488, - 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, - 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, - 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, - 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, - 548, 449, 324, 285, 320, 321, 328, 654, 651, 454, - 655, 0, 293, 528, 371, 0, 415, 344, 593, 594, - 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, - 480, 481, 503, 0, 465, 527, 652, 0, 0, 0, - 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, - 636, 638, 637, 640, 439, 440, 647, 0, 642, 643, - 644, 641, 375, 426, 445, 433, 0, 658, 518, 519, - 659, 629, 402, 0, 0, 533, 566, 555, 639, 521, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1780, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, - 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 428, 445, 446, 447, 333, 317, 422, 318, 353, 319, + 295, 325, 323, 326, 430, 327, 297, 408, 451, 0, + 348, 418, 380, 298, 379, 409, 450, 449, 308, 477, + 483, 484, 573, 0, 489, 661, 662, 663, 498, 0, + 414, 0, 503, 504, 505, 507, 508, 509, 510, 574, + 591, 558, 528, 491, 582, 525, 529, 530, 358, 594, + 0, 0, 0, 482, 368, 369, 0, 340, 339, 381, + 299, 346, 291, 292, 656, 330, 400, 596, 629, 630, + 521, 0, 583, 522, 531, 322, 555, 567, 566, 396, + 481, 0, 578, 581, 511, 655, 0, 575, 590, 659, + 589, 652, 406, 0, 427, 587, 534, 0, 579, 553, + 0, 580, 549, 584, 0, 523, 0, 435, 463, 475, + 492, 495, 524, 609, 610, 611, 296, 494, 613, 614, + 615, 616, 617, 618, 619, 612, 466, 556, 533, 559, + 474, 536, 535, 0, 0, 570, 490, 571, 572, 390, + 391, 392, 393, 350, 597, 315, 493, 416, 0, 557, + 0, 0, 0, 0, 0, 0, 0, 0, 562, 563, + 560, 664, 0, 620, 621, 0, 0, 487, 488, 345, + 352, 506, 354, 314, 405, 347, 472, 362, 0, 499, + 564, 500, 623, 626, 624, 625, 397, 357, 359, 431, + 363, 373, 419, 471, 403, 424, 312, 462, 433, 378, + 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 605, 604, + 603, 602, 601, 600, 599, 598, 0, 0, 547, 448, + 324, 285, 320, 321, 328, 653, 650, 453, 654, 0, + 293, 527, 371, 0, 415, 344, 592, 593, 0, 644, + 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, + 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, + 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, + 281, 282, 283, 284, 0, 0, 0, 478, 479, 480, + 502, 0, 464, 526, 651, 0, 0, 0, 0, 0, + 0, 0, 576, 588, 622, 0, 632, 633, 635, 637, + 636, 639, 438, 439, 646, 0, 641, 642, 643, 640, + 375, 425, 444, 432, 206, 657, 517, 518, 658, 628, + 0, 0, 0, 0, 402, 0, 0, 532, 565, 554, + 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 0, 0, 370, 569, 551, 561, 552, + 537, 538, 539, 546, 349, 540, 541, 542, 512, 543, + 513, 544, 545, 140, 568, 519, 434, 386, 586, 585, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 202, 2188, 0, + 228, 0, 0, 0, 0, 0, 0, 310, 229, 514, + 634, 516, 515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, - 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, - 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, - 0, 0, 487, 0, 424, 404, 661, 0, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, - 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 330, 400, - 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, - 568, 567, 396, 482, 0, 579, 582, 512, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, - 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 0, 293, 528, 371, 0, 415, 344, 593, - 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 637, 640, 439, 440, 647, 0, 642, - 643, 644, 641, 375, 426, 445, 433, 0, 658, 518, - 519, 659, 629, 402, 0, 0, 533, 566, 555, 639, - 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, - 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, - 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3835, 0, 228, - 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, - 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, - 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, - 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, - 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, - 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, - 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, - 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, - 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, - 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, - 0, 0, 0, 487, 0, 424, 404, 661, 0, 0, - 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, - 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, - 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, - 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, - 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, - 450, 308, 478, 484, 485, 574, 0, 490, 662, 663, - 664, 499, 0, 414, 0, 504, 505, 506, 508, 509, - 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, - 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, - 340, 339, 381, 417, 299, 346, 291, 292, 657, 330, - 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, - 556, 568, 567, 396, 482, 0, 579, 582, 512, 656, - 0, 576, 591, 660, 590, 653, 406, 0, 428, 588, - 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, - 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, - 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, - 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, - 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, - 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 564, 561, 665, 0, 621, 622, 0, - 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, - 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, - 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, - 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, + 0, 0, 0, 0, 300, 441, 460, 311, 429, 473, + 316, 437, 452, 306, 401, 426, 0, 0, 302, 458, + 436, 383, 360, 361, 301, 0, 420, 335, 351, 332, + 399, 0, 457, 485, 331, 476, 0, 468, 304, 0, + 467, 398, 454, 459, 384, 377, 0, 303, 456, 382, + 376, 364, 341, 501, 365, 366, 355, 410, 374, 411, + 356, 388, 387, 389, 0, 0, 0, 0, 0, 496, + 497, 0, 0, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 627, 0, 0, 631, 0, + 470, 0, 0, 0, 0, 0, 0, 440, 0, 0, + 367, 0, 0, 0, 486, 0, 423, 404, 660, 0, + 0, 421, 372, 455, 412, 461, 442, 469, 417, 413, + 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, + 343, 394, 395, 407, 428, 445, 446, 447, 333, 317, + 422, 318, 353, 319, 295, 325, 323, 326, 430, 327, + 297, 408, 451, 0, 348, 418, 380, 298, 379, 409, + 450, 449, 308, 477, 483, 484, 573, 0, 489, 661, + 662, 663, 498, 0, 414, 0, 503, 504, 505, 507, + 508, 509, 510, 574, 591, 558, 528, 491, 582, 525, + 529, 530, 358, 594, 0, 0, 0, 482, 368, 369, + 0, 340, 339, 381, 299, 346, 291, 292, 656, 330, + 400, 596, 629, 630, 521, 0, 583, 522, 531, 322, + 555, 567, 566, 396, 481, 0, 578, 581, 511, 655, + 0, 575, 590, 659, 589, 652, 406, 0, 427, 587, + 534, 0, 579, 553, 0, 580, 549, 584, 0, 523, + 0, 435, 463, 475, 492, 495, 524, 609, 610, 611, + 296, 494, 613, 614, 615, 616, 617, 618, 619, 612, + 466, 556, 533, 559, 474, 536, 535, 0, 0, 570, + 490, 571, 572, 390, 391, 392, 393, 350, 597, 315, + 493, 416, 0, 557, 0, 0, 0, 0, 0, 0, + 0, 0, 562, 563, 560, 664, 0, 620, 621, 0, + 0, 487, 488, 345, 352, 506, 354, 314, 405, 347, + 472, 362, 0, 499, 564, 500, 623, 626, 624, 625, + 397, 357, 359, 431, 363, 373, 419, 471, 403, 424, + 312, 462, 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, - 0, 0, 548, 449, 324, 285, 320, 321, 328, 654, - 651, 454, 655, 0, 293, 528, 371, 0, 415, 344, - 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, + 0, 0, 605, 604, 603, 602, 601, 600, 599, 598, + 0, 0, 547, 448, 324, 285, 320, 321, 328, 653, + 650, 453, 654, 0, 293, 527, 371, 169, 415, 344, + 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, + 258, 259, 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 479, 480, 481, 503, 0, 465, 527, 652, 0, - 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, - 633, 634, 636, 638, 637, 640, 439, 440, 647, 0, - 642, 643, 644, 641, 375, 426, 445, 433, 0, 658, - 518, 519, 659, 629, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, - 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 478, 479, 480, 502, 0, 464, 526, 651, 0, + 0, 0, 0, 0, 0, 0, 576, 588, 622, 0, + 632, 633, 635, 637, 636, 639, 438, 439, 646, 0, + 641, 642, 643, 640, 375, 425, 444, 432, 206, 657, + 517, 518, 658, 628, 0, 0, 0, 0, 402, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, + 569, 551, 561, 552, 537, 538, 539, 546, 349, 540, + 541, 542, 512, 543, 513, 544, 545, 140, 568, 519, + 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 202, 2173, 0, 228, 0, 0, 0, 0, 0, + 0, 310, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, - 471, 0, 0, 0, 3742, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 487, 0, 424, 404, 661, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, - 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 0, 293, 528, 371, 0, 415, - 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 637, 640, 439, 440, 647, - 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, - 658, 518, 519, 659, 629, 402, 0, 0, 533, 566, - 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, - 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, - 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, - 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 3234, 0, 0, 0, 310, 229, - 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, - 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, - 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, - 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, - 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, - 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, - 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, - 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, - 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, - 0, 367, 0, 0, 0, 487, 0, 424, 404, 661, - 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, - 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, - 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, - 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, - 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, - 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, - 662, 663, 664, 499, 0, 414, 0, 504, 505, 506, - 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, - 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, - 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, - 657, 330, 400, 597, 630, 631, 522, 0, 584, 523, - 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, - 512, 656, 0, 576, 591, 660, 590, 653, 406, 0, - 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, - 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, - 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, - 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, - 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, - 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 564, 561, 665, 0, 621, - 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, - 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, - 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, - 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, - 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, - 328, 654, 651, 454, 655, 0, 293, 528, 371, 0, - 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, - 652, 0, 0, 0, 0, 0, 0, 0, 577, 589, - 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, - 647, 0, 642, 643, 644, 641, 375, 426, 445, 433, - 0, 658, 518, 519, 659, 629, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, - 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, - 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3253, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, - 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, - 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, - 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, - 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, - 661, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 330, 400, 597, 630, 631, 522, 0, 584, - 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, - 582, 512, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, - 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 0, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, - 440, 647, 0, 642, 643, 644, 641, 375, 426, 445, - 433, 0, 658, 518, 519, 659, 629, 402, 0, 0, - 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, - 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, - 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, - 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2069, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, - 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, - 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, - 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, - 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, - 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, - 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, - 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, - 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, - 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, - 404, 661, 0, 0, 422, 372, 456, 412, 462, 443, - 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, - 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, - 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, - 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, - 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, - 0, 490, 662, 663, 664, 499, 0, 414, 0, 504, - 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, - 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, - 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, - 291, 292, 657, 330, 400, 597, 630, 631, 522, 0, - 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, - 579, 582, 512, 656, 0, 576, 591, 660, 590, 653, - 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, - 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, - 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, - 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, - 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, - 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 564, 561, 665, - 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, - 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, - 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, - 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 441, + 460, 311, 429, 473, 316, 437, 452, 306, 401, 426, + 0, 0, 302, 458, 436, 383, 360, 361, 301, 0, + 420, 335, 351, 332, 399, 0, 457, 485, 331, 476, + 0, 468, 304, 0, 467, 398, 454, 459, 384, 377, + 0, 303, 456, 382, 376, 364, 341, 501, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 367, 0, 0, 0, 486, 0, + 423, 404, 660, 0, 0, 421, 372, 455, 412, 461, + 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 428, 445, + 446, 447, 333, 317, 422, 318, 353, 319, 295, 325, + 323, 326, 430, 327, 297, 408, 451, 0, 348, 418, + 380, 298, 379, 409, 450, 449, 308, 477, 483, 484, + 573, 0, 489, 661, 662, 663, 498, 0, 414, 0, + 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, + 528, 491, 582, 525, 529, 530, 358, 594, 0, 0, + 0, 482, 368, 369, 0, 340, 339, 381, 299, 346, + 291, 292, 656, 330, 400, 596, 629, 630, 521, 0, + 583, 522, 531, 322, 555, 567, 566, 396, 481, 0, + 578, 581, 511, 655, 0, 575, 590, 659, 589, 652, + 406, 0, 427, 587, 534, 0, 579, 553, 0, 580, + 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, + 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, + 617, 618, 619, 612, 466, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 490, 571, 572, 390, 391, 392, + 393, 350, 597, 315, 493, 416, 0, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 562, 563, 560, 664, + 0, 620, 621, 0, 0, 487, 488, 345, 352, 506, + 354, 314, 405, 347, 472, 362, 0, 499, 564, 500, + 623, 626, 624, 625, 397, 357, 359, 431, 363, 373, + 419, 471, 403, 424, 312, 462, 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, - 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, - 320, 321, 328, 654, 651, 454, 655, 0, 293, 528, - 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, + 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, + 601, 600, 599, 598, 0, 0, 547, 448, 324, 285, + 320, 321, 328, 653, 650, 453, 654, 0, 293, 527, + 371, 169, 415, 344, 592, 593, 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, + 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, - 465, 527, 652, 0, 0, 0, 0, 0, 0, 0, - 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, - 439, 440, 647, 0, 642, 643, 644, 641, 375, 426, - 445, 433, 0, 658, 518, 519, 659, 629, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 3454, 0, - 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, - 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, + 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, + 464, 526, 651, 0, 0, 0, 0, 0, 0, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, + 438, 439, 646, 0, 641, 642, 643, 640, 375, 425, + 444, 432, 0, 657, 517, 518, 658, 628, 402, 0, + 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 337, 1050, 0, 370, + 569, 551, 561, 552, 537, 538, 539, 546, 349, 540, + 541, 542, 512, 543, 513, 544, 545, 0, 568, 519, + 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 1057, 1058, 0, 0, 0, + 0, 310, 229, 514, 634, 516, 515, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 300, 441, + 1044, 311, 429, 473, 316, 437, 452, 306, 401, 426, + 0, 0, 302, 458, 436, 383, 360, 361, 301, 0, + 420, 335, 351, 332, 399, 0, 457, 485, 331, 476, + 1031, 468, 304, 1030, 467, 398, 454, 459, 384, 377, + 0, 303, 456, 382, 376, 364, 341, 501, 365, 366, + 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, + 0, 0, 0, 496, 497, 0, 0, 645, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, + 0, 0, 631, 0, 470, 0, 0, 0, 0, 0, + 0, 440, 0, 0, 367, 0, 0, 0, 486, 0, + 423, 404, 660, 0, 0, 421, 372, 455, 412, 461, + 442, 469, 1048, 413, 294, 443, 334, 385, 307, 309, + 329, 336, 338, 342, 343, 394, 395, 407, 428, 445, + 446, 447, 333, 317, 422, 318, 353, 319, 295, 325, + 323, 326, 430, 327, 297, 408, 451, 0, 348, 418, + 380, 298, 379, 409, 450, 449, 308, 477, 483, 484, + 573, 0, 489, 661, 662, 663, 498, 0, 414, 0, + 503, 504, 505, 507, 508, 509, 510, 574, 591, 558, + 528, 491, 582, 525, 529, 530, 358, 594, 0, 0, + 0, 482, 368, 369, 0, 340, 339, 381, 299, 346, + 291, 292, 656, 330, 400, 596, 629, 630, 521, 0, + 583, 522, 531, 322, 555, 567, 566, 396, 481, 0, + 578, 581, 511, 655, 0, 575, 590, 659, 589, 652, + 406, 0, 427, 587, 534, 0, 579, 553, 0, 580, + 549, 584, 0, 523, 0, 435, 463, 475, 492, 495, + 524, 609, 610, 611, 296, 494, 613, 614, 615, 616, + 617, 618, 1049, 612, 466, 556, 533, 559, 474, 536, + 535, 0, 0, 570, 1052, 571, 572, 390, 391, 392, + 393, 350, 597, 1047, 493, 416, 0, 557, 0, 0, + 0, 0, 0, 0, 0, 0, 562, 563, 560, 664, + 0, 620, 621, 0, 0, 487, 488, 345, 352, 506, + 354, 314, 405, 347, 472, 362, 0, 499, 564, 500, + 623, 626, 624, 625, 1059, 1045, 1055, 1046, 363, 373, + 419, 471, 403, 424, 312, 462, 433, 1056, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 605, 604, 603, 602, + 601, 600, 599, 598, 0, 0, 547, 448, 324, 285, + 320, 321, 328, 653, 650, 453, 654, 0, 293, 527, + 371, 0, 415, 344, 592, 593, 0, 644, 241, 242, + 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, + 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, + 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, + 283, 284, 0, 0, 0, 478, 479, 480, 502, 0, + 464, 526, 651, 0, 0, 0, 0, 0, 0, 0, + 576, 588, 622, 0, 632, 633, 635, 637, 636, 639, + 438, 439, 646, 0, 641, 642, 643, 640, 1043, 425, + 444, 432, 206, 657, 517, 518, 658, 628, 0, 0, + 0, 0, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 140, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2068, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, - 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, - 424, 404, 661, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 330, 400, 597, 630, 631, 522, - 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, - 0, 579, 582, 512, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, - 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 0, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, - 640, 439, 440, 647, 0, 642, 643, 644, 641, 375, - 426, 445, 433, 0, 658, 518, 519, 659, 629, 402, - 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, - 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, - 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, - 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3362, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, - 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, - 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, - 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, - 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, - 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, - 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, - 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, - 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, - 0, 424, 404, 661, 0, 0, 422, 372, 456, 412, - 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, - 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, - 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, - 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, - 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, - 485, 574, 0, 490, 662, 663, 664, 499, 0, 414, - 0, 504, 505, 506, 508, 509, 510, 511, 575, 592, - 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, - 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, - 299, 346, 291, 292, 657, 330, 400, 597, 630, 631, - 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, - 482, 0, 579, 582, 512, 656, 0, 576, 591, 660, - 590, 653, 406, 0, 428, 588, 535, 0, 580, 554, - 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, - 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, - 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, - 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, - 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, - 561, 665, 0, 621, 622, 0, 0, 488, 489, 345, - 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, - 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, - 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, - 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, - 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, - 324, 285, 320, 321, 328, 654, 651, 454, 655, 0, - 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, - 503, 0, 465, 527, 652, 0, 0, 0, 0, 0, - 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, - 637, 640, 439, 440, 647, 0, 642, 643, 644, 641, - 375, 426, 445, 433, 0, 658, 518, 519, 659, 629, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, - 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 169, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 1057, + 1058, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 1031, 468, 304, 1030, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 1059, 2089, + 1055, 2090, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 1056, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 2981, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 2984, 0, + 0, 0, 2983, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 1556, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 1554, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1552, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 1550, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 1554, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1552, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4087, 0, 228, 854, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 1554, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1552, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 1554, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1765, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 2523, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 2525, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 2138, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 2139, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 3200, 3202, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 2546, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 1554, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 671, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 670, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 854, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4064, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 3819, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 3955, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1779, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3834, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 3741, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 3233, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3252, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2068, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 3453, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3361, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3089, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 1554, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 2525, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 2899, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, - 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, - 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 0, 0, 0, 0, 0, 0, 2208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 487, 0, 424, 404, 661, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, - 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 330, 400, 597, 630, - 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, - 396, 482, 0, 579, 582, 512, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, - 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 637, 640, 439, 440, 647, 0, 642, 643, 644, - 641, 375, 426, 445, 433, 0, 658, 518, 519, 659, - 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, - 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, - 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, - 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 1555, 0, 0, 0, 310, 229, 515, 635, 517, 516, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, - 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, - 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, - 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, - 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, - 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, - 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, - 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, - 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, - 0, 487, 0, 424, 404, 661, 0, 0, 422, 372, - 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, - 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, - 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, - 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, - 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, - 478, 484, 485, 574, 0, 490, 662, 663, 664, 499, - 0, 414, 0, 504, 505, 506, 508, 509, 510, 511, - 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, - 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, - 381, 417, 299, 346, 291, 292, 657, 330, 400, 597, - 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, - 567, 396, 482, 0, 579, 582, 512, 656, 0, 576, - 591, 660, 590, 653, 406, 0, 428, 588, 535, 0, - 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, - 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, - 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, - 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, - 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 564, 561, 665, 0, 621, 622, 0, 0, 488, - 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, - 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, - 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, - 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 2643, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2605, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, - 548, 449, 324, 285, 320, 321, 328, 654, 651, 454, - 655, 0, 293, 528, 371, 0, 415, 344, 593, 594, - 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, - 480, 481, 503, 0, 465, 527, 652, 0, 0, 0, - 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, - 636, 638, 637, 640, 439, 440, 647, 0, 642, 643, - 644, 641, 375, 426, 445, 433, 0, 658, 518, 519, - 659, 629, 402, 0, 0, 533, 566, 555, 639, 521, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 2526, 0, 0, 0, 310, 229, 515, 635, 517, - 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2603, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, - 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, - 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, - 0, 0, 487, 0, 424, 404, 661, 0, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 330, 400, - 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, - 568, 567, 396, 482, 0, 579, 582, 512, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, - 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 0, 293, 528, 371, 0, 415, 344, 593, - 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 637, 640, 439, 440, 647, 0, 642, - 643, 644, 641, 375, 426, 445, 433, 0, 658, 518, - 519, 659, 629, 402, 0, 0, 533, 566, 555, 639, - 521, 0, 0, 2900, 0, 0, 0, 0, 0, 0, - 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, - 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, - 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, - 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, - 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, - 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, - 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, - 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, - 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, - 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, - 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, - 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, - 0, 0, 0, 487, 0, 424, 404, 661, 0, 0, - 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, - 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, - 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, - 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, - 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, - 450, 308, 478, 484, 485, 574, 0, 490, 662, 663, - 664, 499, 0, 414, 0, 504, 505, 506, 508, 509, - 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, - 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, - 340, 339, 381, 417, 299, 346, 291, 292, 657, 330, - 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, - 556, 568, 567, 396, 482, 0, 579, 582, 512, 656, - 0, 576, 591, 660, 590, 653, 406, 0, 428, 588, - 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, - 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, - 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, - 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, - 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, - 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 564, 561, 665, 0, 621, 622, 0, - 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, - 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, - 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, - 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, - 0, 0, 548, 449, 324, 285, 320, 321, 328, 654, - 651, 454, 655, 0, 293, 528, 371, 0, 415, 344, - 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 479, 480, 481, 503, 0, 465, 527, 652, 0, - 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, - 633, 634, 636, 638, 637, 640, 439, 440, 647, 0, - 642, 643, 644, 641, 375, 426, 445, 433, 0, 658, - 518, 519, 659, 629, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, - 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 2372, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2209, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 0, 0, 632, 0, - 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 487, 0, 424, 404, 661, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, - 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 0, 293, 528, 371, 0, 415, - 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 637, 640, 439, 440, 647, - 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, - 658, 518, 519, 659, 629, 402, 0, 0, 533, 566, - 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, - 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, - 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, - 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 2644, 0, 0, 0, 310, 229, - 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, - 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, - 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, - 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, - 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, - 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, - 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, - 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, - 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, - 0, 367, 0, 0, 0, 487, 0, 424, 404, 661, - 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, - 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, - 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, - 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, - 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, - 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, - 662, 663, 664, 499, 0, 414, 0, 504, 505, 506, - 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, - 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, - 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, - 657, 330, 400, 597, 630, 631, 522, 0, 584, 523, - 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, - 512, 656, 0, 576, 591, 660, 590, 653, 406, 0, - 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, - 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, - 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, - 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, - 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, - 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 564, 561, 665, 0, 621, - 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, - 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, - 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, - 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, - 600, 599, 0, 0, 548, 449, 324, 285, 320, 321, - 328, 654, 651, 454, 655, 0, 293, 528, 371, 0, - 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, - 652, 0, 0, 0, 0, 0, 0, 0, 577, 589, - 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, - 647, 0, 642, 643, 644, 641, 375, 426, 445, 433, - 0, 658, 518, 519, 659, 629, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, - 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, - 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2606, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, - 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, - 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, - 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, - 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, - 661, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 330, 400, 597, 630, 631, 522, 0, 584, - 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, - 582, 512, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, - 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 0, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, - 440, 647, 0, 642, 643, 644, 641, 375, 426, 445, - 433, 0, 658, 518, 519, 659, 629, 402, 0, 0, - 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, - 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, - 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, - 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 2604, 0, 0, 0, - 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, - 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, - 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, - 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, - 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, - 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, - 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, - 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, - 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, - 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, - 404, 661, 0, 0, 422, 372, 456, 412, 462, 443, - 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, - 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, - 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, - 326, 431, 327, 297, 408, 452, 0, 348, 419, 380, - 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, - 0, 490, 662, 663, 664, 499, 0, 414, 0, 504, - 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, - 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, - 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, - 291, 292, 657, 330, 400, 597, 630, 631, 522, 0, - 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, - 579, 582, 512, 656, 0, 576, 591, 660, 590, 653, - 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, - 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, - 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, - 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, - 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, - 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 564, 561, 665, - 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, - 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, - 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, - 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, - 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, - 320, 321, 328, 654, 651, 454, 655, 0, 293, 528, - 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, - 465, 527, 652, 0, 0, 0, 0, 0, 0, 0, - 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, - 439, 440, 647, 0, 642, 643, 644, 641, 375, 426, - 445, 433, 2373, 658, 518, 519, 659, 629, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, - 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 453, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, - 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, - 424, 404, 661, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 330, 400, 597, 630, 631, 522, - 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, - 0, 579, 582, 512, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, - 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 0, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, - 640, 439, 440, 647, 0, 642, 643, 644, 641, 375, - 426, 445, 433, 0, 658, 518, 519, 659, 629, 402, - 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, - 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, - 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, - 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 1920, - 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, - 442, 461, 311, 430, 474, 316, 438, 453, 306, 401, - 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, - 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, - 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, - 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, - 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, - 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, - 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, - 0, 424, 404, 661, 0, 0, 422, 372, 456, 412, - 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, - 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, - 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, - 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, - 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, - 485, 574, 0, 490, 662, 663, 664, 499, 0, 414, - 0, 504, 505, 506, 508, 509, 510, 511, 575, 592, - 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, - 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, - 299, 346, 291, 292, 657, 330, 400, 597, 630, 631, - 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, - 482, 0, 579, 582, 512, 656, 0, 576, 591, 660, - 590, 653, 406, 0, 428, 588, 535, 0, 580, 554, - 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, - 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, - 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, - 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, - 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, - 561, 665, 0, 621, 622, 0, 0, 488, 489, 345, - 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, - 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, - 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, - 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, - 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, - 324, 285, 320, 321, 328, 654, 651, 454, 655, 0, - 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, - 503, 0, 465, 527, 652, 0, 0, 0, 0, 0, - 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, - 637, 640, 439, 440, 647, 0, 642, 643, 644, 641, - 375, 426, 445, 433, 0, 658, 518, 519, 659, 629, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 2051, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, - 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 1919, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 442, 461, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, - 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, - 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 2050, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 487, 0, 424, 404, 661, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, - 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 330, 400, 597, 630, - 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, - 396, 482, 0, 579, 582, 512, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, - 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 637, 640, 439, 440, 647, 0, 642, 643, 644, - 641, 375, 426, 445, 433, 0, 658, 518, 519, 659, - 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, - 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, - 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, - 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 1555, 0, 0, 0, 310, 229, 515, 635, 517, 516, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 300, 442, 461, 311, 430, 474, 316, 438, 453, - 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, - 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, - 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, - 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, - 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, - 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, - 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, - 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, - 0, 487, 0, 424, 404, 661, 0, 0, 422, 372, - 456, 412, 462, 443, 470, 1956, 413, 294, 444, 334, - 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, - 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, - 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, - 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, - 478, 484, 485, 574, 0, 490, 662, 663, 664, 499, - 0, 414, 0, 504, 505, 506, 508, 509, 510, 511, - 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, - 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, - 381, 417, 299, 346, 291, 292, 657, 330, 400, 597, - 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, - 567, 396, 482, 0, 579, 582, 512, 656, 0, 576, - 591, 660, 590, 653, 406, 0, 428, 588, 535, 0, - 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, - 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, - 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, - 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, - 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 564, 561, 665, 0, 621, 622, 0, 0, 488, - 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, - 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, - 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, - 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 1554, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 1955, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 1583, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 671, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 681, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 979, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 3178, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 1905, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 1533, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 1531, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 1410, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 417, 413, 294, 443, + 334, 385, 307, 309, 749, 336, 338, 342, 343, 394, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 619, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, - 548, 449, 324, 285, 320, 321, 328, 654, 651, 454, - 655, 0, 293, 528, 371, 0, 415, 344, 593, 594, - 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, - 480, 481, 503, 0, 465, 527, 652, 0, 0, 0, - 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, - 636, 638, 637, 640, 439, 440, 647, 0, 642, 643, - 644, 641, 375, 426, 445, 433, 0, 658, 518, 519, - 659, 629, 402, 0, 0, 533, 566, 555, 639, 521, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 402, 0, 0, 532, 565, 554, 638, 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, + 337, 0, 0, 370, 569, 551, 561, 552, 537, 538, + 539, 546, 349, 540, 541, 542, 512, 543, 513, 544, + 545, 0, 568, 519, 434, 386, 586, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, - 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 310, 229, 514, 634, 516, + 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, - 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, - 0, 1584, 0, 0, 0, 441, 0, 0, 367, 0, - 0, 0, 487, 0, 424, 404, 661, 0, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, + 0, 0, 300, 441, 460, 311, 429, 473, 316, 437, + 452, 306, 401, 426, 0, 0, 302, 458, 436, 383, + 360, 361, 301, 0, 420, 335, 351, 332, 399, 0, + 457, 485, 331, 476, 0, 468, 304, 0, 467, 398, + 454, 459, 384, 377, 0, 303, 456, 382, 376, 364, + 341, 501, 365, 366, 355, 410, 374, 411, 356, 388, + 387, 389, 0, 0, 0, 0, 0, 496, 497, 0, + 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 627, 0, 0, 631, 0, 470, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 367, 0, + 0, 0, 486, 0, 423, 404, 660, 0, 0, 421, + 372, 455, 412, 461, 442, 469, 706, 413, 294, 443, 334, 385, 307, 309, 329, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 330, 400, - 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, - 568, 567, 396, 482, 0, 579, 582, 512, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, - 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 0, 293, 528, 371, 0, 415, 344, 593, - 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 637, 640, 439, 440, 647, 0, 642, - 643, 644, 641, 375, 426, 445, 433, 0, 658, 518, - 519, 659, 629, 402, 0, 0, 533, 566, 555, 639, - 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 672, 337, 0, 0, 370, 570, 552, 562, 553, 538, - 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, - 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, - 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, - 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, - 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, - 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, - 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, - 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, - 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, - 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, - 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, - 0, 0, 0, 487, 0, 424, 404, 661, 0, 0, - 422, 372, 456, 412, 462, 443, 470, 418, 413, 294, - 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, - 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, - 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, - 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, - 450, 308, 478, 484, 485, 574, 0, 490, 662, 663, - 664, 499, 0, 414, 0, 504, 505, 506, 508, 509, - 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, - 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, - 340, 339, 381, 417, 299, 346, 291, 292, 657, 330, - 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, - 556, 568, 567, 396, 482, 0, 579, 582, 512, 656, - 0, 576, 591, 660, 590, 653, 406, 0, 428, 588, - 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, - 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, - 296, 495, 614, 615, 616, 617, 618, 619, 620, 613, - 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, - 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, - 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 564, 561, 665, 0, 621, 622, 0, - 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, - 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, - 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, - 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, - 0, 0, 548, 449, 324, 285, 320, 321, 328, 654, - 651, 454, 655, 0, 293, 528, 371, 0, 415, 344, - 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 479, 480, 481, 503, 0, 465, 527, 652, 0, - 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, - 633, 634, 636, 638, 637, 640, 439, 440, 647, 0, - 642, 643, 644, 641, 375, 426, 445, 433, 0, 658, - 518, 519, 659, 629, 402, 0, 0, 533, 566, 555, - 639, 521, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 337, 0, 0, 370, 570, 552, 562, 553, - 538, 539, 540, 547, 349, 541, 542, 543, 513, 544, - 514, 545, 546, 0, 569, 520, 435, 386, 587, 586, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 228, 0, 0, 0, 0, 0, 0, 310, 229, 515, - 635, 517, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 395, 407, 428, 445, 446, 447, 333, 317, 422, 318, + 353, 319, 295, 325, 323, 326, 430, 327, 297, 408, + 451, 0, 348, 418, 380, 298, 379, 409, 450, 449, + 308, 477, 483, 484, 573, 0, 489, 661, 662, 663, + 498, 0, 414, 0, 503, 504, 505, 507, 508, 509, + 510, 574, 591, 558, 528, 491, 582, 525, 529, 530, + 358, 594, 0, 0, 0, 482, 368, 369, 0, 340, + 339, 381, 299, 346, 291, 292, 656, 330, 400, 596, + 629, 630, 521, 0, 583, 522, 531, 322, 555, 567, + 566, 396, 481, 0, 578, 581, 511, 655, 0, 575, + 590, 659, 589, 652, 406, 0, 427, 587, 534, 0, + 579, 553, 0, 580, 549, 584, 0, 523, 0, 435, + 463, 475, 492, 495, 524, 609, 610, 611, 296, 494, + 613, 614, 615, 616, 617, 618, 707, 612, 466, 556, + 533, 559, 474, 536, 535, 0, 0, 570, 490, 571, + 572, 390, 391, 392, 393, 350, 597, 315, 493, 416, + 0, 557, 0, 0, 0, 0, 0, 0, 0, 0, + 562, 563, 560, 664, 0, 620, 621, 0, 0, 487, + 488, 345, 352, 506, 354, 314, 405, 347, 472, 362, + 0, 499, 564, 500, 623, 626, 624, 625, 397, 357, + 359, 431, 363, 373, 419, 471, 403, 424, 312, 462, + 433, 378, 550, 577, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 604, 603, 602, 601, 600, 599, 598, 0, 0, + 547, 448, 324, 285, 320, 321, 328, 653, 650, 453, + 654, 0, 293, 527, 371, 0, 415, 344, 592, 593, + 0, 644, 241, 242, 243, 244, 245, 246, 247, 248, + 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, + 260, 261, 262, 263, 264, 265, 595, 256, 257, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, + 0, 0, 281, 282, 283, 284, 0, 0, 0, 478, + 479, 480, 502, 0, 464, 526, 651, 0, 0, 0, + 0, 0, 0, 0, 576, 588, 622, 0, 632, 633, + 635, 637, 636, 639, 438, 439, 646, 0, 641, 642, + 643, 640, 375, 425, 444, 432, 0, 657, 517, 518, + 658, 628, 728, 727, 734, 724, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 731, 732, 0, 733, 737, + 0, 0, 718, 0, 0, 0, 728, 727, 734, 724, + 0, 0, 742, 0, 1260, 1261, 1262, 1259, 0, 731, + 732, 0, 733, 737, 0, 0, 718, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 300, 442, 461, 311, 430, 474, - 316, 438, 453, 306, 401, 427, 0, 0, 302, 459, - 437, 383, 360, 361, 301, 0, 421, 335, 351, 332, - 399, 0, 458, 486, 331, 477, 0, 469, 304, 0, - 468, 398, 455, 460, 384, 377, 0, 303, 457, 382, - 376, 364, 341, 502, 365, 366, 355, 410, 374, 411, - 356, 388, 387, 389, 0, 0, 0, 0, 0, 497, - 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 0, 682, 632, 0, - 471, 0, 0, 0, 0, 0, 0, 441, 0, 0, - 367, 0, 0, 0, 487, 0, 424, 404, 661, 0, - 0, 422, 372, 456, 412, 462, 443, 470, 418, 413, - 294, 444, 334, 385, 307, 309, 329, 336, 338, 342, - 343, 394, 395, 407, 429, 446, 447, 448, 333, 317, - 423, 318, 353, 319, 295, 325, 323, 326, 431, 327, - 297, 408, 452, 0, 348, 419, 380, 298, 379, 409, - 451, 450, 308, 478, 484, 485, 574, 0, 490, 662, - 663, 664, 499, 0, 414, 0, 504, 505, 506, 508, - 509, 510, 511, 575, 592, 559, 529, 492, 583, 526, - 530, 531, 358, 595, 0, 0, 0, 483, 368, 369, - 0, 340, 339, 381, 417, 299, 346, 291, 292, 657, - 330, 400, 597, 630, 631, 522, 0, 584, 523, 532, - 322, 556, 568, 567, 396, 482, 0, 579, 582, 512, - 656, 0, 576, 591, 660, 590, 653, 406, 0, 428, - 588, 535, 0, 580, 554, 0, 581, 550, 585, 0, - 524, 0, 436, 464, 476, 493, 496, 525, 610, 611, - 612, 296, 495, 614, 615, 616, 617, 618, 619, 620, - 613, 467, 557, 534, 560, 475, 537, 536, 0, 0, - 571, 491, 572, 573, 390, 391, 392, 393, 350, 598, - 315, 494, 416, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 564, 561, 665, 0, 621, 622, - 0, 0, 488, 489, 345, 352, 507, 354, 314, 405, - 347, 473, 362, 0, 500, 565, 501, 624, 627, 625, - 626, 397, 357, 359, 432, 363, 373, 420, 472, 403, - 425, 312, 463, 434, 378, 551, 578, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 606, 605, 604, 603, 602, 601, 600, - 599, 0, 0, 548, 449, 324, 285, 320, 321, 328, - 654, 651, 454, 655, 0, 293, 528, 371, 0, 415, - 344, 593, 594, 0, 645, 241, 242, 243, 244, 245, - 246, 247, 248, 286, 249, 250, 251, 252, 253, 254, - 255, 258, 259, 260, 261, 262, 263, 264, 265, 596, - 256, 257, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 0, 0, 0, 287, - 288, 289, 290, 0, 0, 281, 282, 283, 284, 0, - 0, 0, 479, 480, 481, 503, 0, 465, 527, 652, - 0, 0, 0, 0, 0, 0, 0, 577, 589, 623, - 0, 633, 634, 636, 638, 637, 640, 439, 440, 647, - 0, 642, 643, 644, 641, 375, 426, 445, 433, 0, - 658, 518, 519, 659, 629, 402, 0, 0, 533, 566, - 555, 639, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 337, 0, 0, 370, 570, 552, 562, - 553, 538, 539, 540, 547, 349, 541, 542, 543, 513, - 544, 514, 545, 546, 0, 569, 520, 435, 386, 587, - 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, 310, 229, - 515, 635, 517, 516, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 442, 461, 311, 430, - 474, 316, 438, 453, 306, 401, 427, 0, 0, 302, - 459, 437, 383, 360, 361, 301, 0, 421, 335, 351, - 332, 399, 0, 458, 486, 331, 477, 0, 469, 304, - 0, 468, 398, 455, 460, 384, 377, 0, 303, 457, - 382, 376, 364, 341, 502, 365, 366, 355, 410, 374, - 411, 356, 388, 387, 389, 0, 0, 0, 0, 0, - 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 628, 0, 0, 632, - 0, 471, 0, 0, 0, 0, 0, 0, 441, 0, - 0, 367, 0, 0, 0, 487, 0, 424, 404, 661, - 0, 0, 422, 372, 456, 412, 462, 443, 470, 418, - 413, 294, 444, 334, 385, 307, 309, 329, 336, 338, - 342, 343, 394, 395, 407, 429, 446, 447, 448, 333, - 317, 423, 318, 353, 319, 295, 325, 323, 326, 431, - 327, 297, 408, 452, 0, 348, 419, 380, 298, 379, - 409, 451, 450, 308, 478, 484, 485, 574, 0, 490, - 662, 663, 664, 499, 0, 414, 0, 504, 505, 506, - 508, 509, 510, 511, 575, 592, 559, 529, 492, 583, - 526, 530, 531, 358, 595, 0, 0, 0, 483, 368, - 369, 0, 340, 339, 381, 417, 299, 346, 291, 292, - 657, 330, 400, 597, 630, 631, 522, 0, 584, 523, - 532, 322, 556, 568, 567, 396, 482, 0, 579, 582, - 512, 656, 0, 576, 591, 660, 590, 653, 406, 0, - 428, 588, 535, 0, 580, 554, 0, 581, 550, 585, - 0, 524, 0, 436, 464, 476, 493, 496, 525, 610, - 611, 612, 296, 495, 614, 615, 616, 617, 618, 619, - 620, 613, 467, 557, 534, 560, 475, 537, 536, 0, - 0, 571, 491, 572, 573, 390, 391, 392, 393, 350, - 598, 315, 494, 416, 0, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 564, 561, 665, 0, 621, - 622, 0, 0, 488, 489, 345, 352, 507, 354, 314, - 405, 347, 473, 362, 0, 500, 565, 501, 624, 627, - 625, 626, 397, 357, 359, 432, 363, 373, 420, 472, - 403, 425, 312, 463, 434, 378, 551, 578, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 606, 605, 604, 603, 602, 601, - 600, 599, 980, 0, 548, 449, 324, 285, 320, 321, - 328, 654, 651, 454, 655, 0, 293, 528, 371, 0, - 415, 344, 593, 594, 0, 645, 241, 242, 243, 244, - 245, 246, 247, 248, 286, 249, 250, 251, 252, 253, - 254, 255, 258, 259, 260, 261, 262, 263, 264, 265, - 596, 256, 257, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 0, 0, - 287, 288, 289, 290, 0, 0, 281, 282, 283, 284, - 0, 0, 0, 479, 480, 481, 503, 0, 465, 527, - 652, 0, 0, 0, 0, 0, 0, 0, 577, 589, - 623, 0, 633, 634, 636, 638, 637, 640, 439, 440, - 647, 0, 642, 643, 644, 641, 375, 426, 445, 433, - 0, 658, 518, 519, 659, 629, 402, 0, 0, 533, - 566, 555, 639, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 337, 0, 0, 370, 570, 552, - 562, 553, 538, 539, 540, 547, 349, 541, 542, 543, - 513, 544, 514, 545, 546, 0, 569, 520, 435, 386, - 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 228, 0, 0, 0, 0, 0, 0, 310, - 229, 515, 635, 517, 516, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 442, 461, 311, - 430, 474, 316, 438, 453, 306, 401, 427, 0, 0, - 302, 459, 437, 383, 360, 361, 301, 0, 421, 335, - 351, 332, 399, 0, 458, 486, 331, 477, 0, 469, - 304, 0, 468, 398, 455, 460, 384, 377, 0, 303, - 457, 382, 376, 364, 341, 502, 365, 366, 355, 410, - 374, 411, 356, 388, 387, 389, 0, 0, 0, 0, - 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 628, 0, 0, - 632, 0, 471, 0, 0, 0, 0, 0, 0, 441, - 0, 0, 367, 0, 0, 0, 487, 0, 424, 404, - 661, 0, 0, 422, 372, 456, 412, 462, 443, 470, - 418, 413, 294, 444, 334, 385, 307, 309, 329, 336, - 338, 342, 343, 394, 395, 407, 429, 446, 447, 448, - 333, 317, 423, 318, 353, 319, 295, 325, 323, 326, - 431, 327, 297, 408, 452, 0, 348, 419, 380, 298, - 379, 409, 451, 450, 308, 478, 484, 485, 574, 0, - 490, 662, 663, 664, 499, 0, 414, 0, 504, 505, - 506, 508, 509, 510, 511, 575, 592, 559, 529, 492, - 583, 526, 530, 531, 358, 595, 0, 0, 0, 483, - 368, 369, 0, 340, 339, 381, 417, 299, 346, 291, - 292, 657, 330, 400, 597, 630, 631, 522, 0, 584, - 523, 532, 322, 556, 568, 567, 396, 482, 0, 579, - 582, 512, 656, 0, 576, 591, 660, 590, 653, 406, - 0, 428, 588, 535, 0, 580, 554, 0, 581, 550, - 585, 0, 524, 0, 436, 464, 476, 493, 496, 525, - 610, 611, 612, 296, 495, 614, 615, 616, 617, 618, - 619, 620, 613, 467, 557, 534, 560, 475, 537, 536, - 0, 0, 571, 491, 572, 573, 390, 391, 392, 393, - 350, 598, 315, 494, 416, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 564, 561, 665, 0, - 621, 622, 0, 0, 488, 489, 345, 352, 507, 354, - 314, 405, 347, 473, 362, 0, 500, 565, 501, 624, - 627, 625, 626, 397, 357, 359, 432, 363, 373, 420, - 472, 403, 425, 312, 463, 434, 378, 551, 578, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 605, 604, 603, 602, - 601, 600, 599, 0, 0, 548, 449, 324, 285, 320, - 321, 328, 654, 651, 454, 655, 0, 293, 528, 371, - 0, 415, 344, 593, 594, 0, 645, 241, 242, 243, - 244, 245, 246, 247, 248, 286, 249, 250, 251, 252, - 253, 254, 255, 258, 259, 260, 261, 262, 263, 264, - 265, 596, 256, 257, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 0, 0, - 0, 287, 288, 289, 290, 0, 0, 281, 282, 283, - 284, 0, 0, 0, 479, 480, 481, 503, 0, 465, - 527, 652, 0, 0, 0, 0, 0, 0, 0, 577, - 589, 623, 0, 633, 634, 636, 638, 637, 640, 439, - 440, 647, 0, 642, 643, 644, 641, 375, 426, 445, - 433, 0, 658, 518, 519, 659, 629, 402, 0, 0, - 533, 566, 555, 639, 521, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 0, 370, 570, - 552, 562, 553, 538, 539, 540, 547, 349, 541, 542, - 543, 513, 544, 514, 545, 546, 0, 569, 520, 435, - 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, - 310, 229, 515, 635, 517, 516, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 300, 442, 461, - 311, 430, 474, 316, 438, 453, 306, 401, 427, 0, - 0, 302, 459, 437, 383, 360, 361, 301, 0, 421, - 335, 351, 332, 399, 0, 458, 486, 331, 477, 0, - 469, 304, 0, 468, 398, 455, 460, 384, 377, 0, - 303, 457, 382, 376, 364, 341, 502, 365, 366, 355, - 410, 374, 411, 356, 388, 387, 389, 0, 0, 0, - 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 628, 0, - 0, 632, 0, 471, 0, 0, 0, 0, 0, 0, - 441, 0, 0, 367, 0, 0, 0, 487, 0, 424, - 404, 661, 0, 0, 422, 372, 456, 412, 462, 443, - 470, 418, 413, 294, 444, 334, 385, 307, 309, 329, - 336, 338, 342, 343, 394, 395, 407, 429, 446, 447, - 448, 333, 317, 423, 318, 353, 319, 295, 325, 323, - 326, 431, 327, 297, 408, 452, 0, 348, 3179, 380, - 298, 379, 409, 451, 450, 308, 478, 484, 485, 574, - 0, 490, 662, 663, 664, 499, 0, 414, 0, 504, - 505, 506, 508, 509, 510, 511, 575, 592, 559, 529, - 492, 583, 526, 530, 531, 358, 595, 0, 0, 0, - 483, 368, 369, 0, 340, 339, 381, 417, 299, 346, - 291, 292, 657, 330, 400, 597, 630, 631, 522, 0, - 584, 523, 532, 322, 556, 568, 567, 396, 482, 0, - 579, 582, 512, 656, 0, 576, 591, 660, 590, 653, - 406, 0, 428, 588, 535, 0, 580, 554, 0, 581, - 550, 585, 0, 524, 0, 436, 464, 476, 493, 496, - 525, 610, 611, 612, 296, 495, 614, 615, 616, 617, - 618, 619, 620, 613, 467, 557, 534, 560, 475, 537, - 536, 0, 0, 571, 491, 572, 573, 390, 391, 392, - 393, 350, 598, 315, 494, 416, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 564, 561, 665, - 0, 621, 622, 0, 0, 488, 489, 345, 352, 507, - 354, 314, 405, 347, 473, 362, 0, 500, 565, 501, - 624, 627, 625, 626, 397, 357, 359, 432, 363, 373, - 420, 472, 403, 425, 312, 463, 434, 378, 551, 578, + 0, 0, 0, 0, 0, 0, 2037, 0, 746, 0, + 0, 748, 0, 0, 0, 0, 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 605, 604, 603, - 602, 601, 600, 599, 0, 0, 548, 449, 324, 285, - 320, 321, 328, 654, 651, 454, 655, 0, 293, 528, - 371, 0, 415, 344, 593, 594, 0, 645, 241, 242, - 243, 244, 245, 246, 247, 248, 286, 249, 250, 251, - 252, 253, 254, 255, 258, 259, 260, 261, 262, 263, - 264, 265, 596, 256, 257, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 0, 0, 287, 288, 289, 290, 0, 0, 281, 282, - 283, 284, 0, 0, 0, 479, 480, 481, 503, 0, - 465, 527, 652, 0, 0, 0, 0, 0, 0, 0, - 577, 589, 623, 0, 633, 634, 636, 638, 637, 640, - 439, 440, 647, 0, 642, 643, 644, 641, 375, 426, - 445, 433, 0, 658, 518, 519, 659, 629, 402, 0, - 0, 533, 566, 555, 639, 521, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 337, 0, 0, 370, - 570, 552, 562, 553, 538, 539, 540, 547, 349, 541, - 542, 543, 513, 544, 514, 545, 546, 0, 569, 520, - 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, - 0, 310, 229, 515, 635, 517, 516, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 2039, 0, 1802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3840, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 300, 442, - 461, 311, 430, 474, 316, 438, 1906, 306, 401, 427, - 0, 0, 302, 459, 437, 383, 360, 361, 301, 0, - 421, 335, 351, 332, 399, 0, 458, 486, 331, 477, - 0, 469, 304, 0, 468, 398, 455, 460, 384, 377, - 0, 303, 457, 382, 376, 364, 341, 502, 365, 366, - 355, 410, 374, 411, 356, 388, 387, 389, 0, 0, - 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 628, - 0, 0, 632, 0, 471, 0, 0, 0, 0, 0, - 0, 441, 0, 0, 367, 0, 0, 0, 487, 0, - 424, 404, 661, 0, 0, 422, 372, 456, 412, 462, - 443, 470, 418, 413, 294, 444, 334, 385, 307, 309, - 329, 336, 338, 342, 343, 394, 395, 407, 429, 446, - 447, 448, 333, 317, 423, 318, 353, 319, 295, 325, - 323, 326, 431, 327, 297, 408, 452, 0, 348, 419, - 380, 298, 379, 409, 451, 450, 308, 478, 484, 485, - 574, 0, 490, 662, 663, 664, 499, 0, 414, 0, - 504, 505, 506, 508, 509, 510, 511, 575, 592, 559, - 529, 492, 583, 526, 530, 531, 358, 595, 0, 0, - 0, 483, 368, 369, 0, 340, 339, 381, 417, 299, - 346, 291, 292, 657, 330, 400, 597, 630, 631, 522, - 0, 584, 523, 532, 322, 556, 568, 567, 396, 482, - 0, 579, 582, 512, 656, 0, 576, 591, 660, 590, - 653, 406, 0, 428, 588, 535, 0, 580, 554, 0, - 581, 550, 585, 0, 524, 0, 436, 464, 476, 493, - 496, 525, 610, 611, 612, 296, 495, 614, 615, 616, - 617, 618, 619, 620, 613, 467, 557, 534, 560, 475, - 537, 536, 0, 0, 571, 491, 572, 573, 390, 391, - 392, 393, 350, 598, 315, 494, 416, 0, 558, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 564, 561, - 665, 0, 621, 622, 0, 0, 488, 489, 345, 352, - 507, 354, 314, 405, 347, 473, 362, 0, 500, 565, - 501, 624, 627, 625, 626, 397, 357, 359, 432, 363, - 373, 420, 472, 403, 425, 312, 463, 434, 378, 551, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 605, 604, - 603, 602, 601, 600, 599, 0, 0, 548, 449, 324, - 285, 320, 321, 328, 654, 651, 454, 655, 0, 293, - 528, 371, 0, 415, 344, 593, 594, 0, 645, 241, - 242, 243, 244, 245, 246, 247, 248, 286, 249, 250, - 251, 252, 253, 254, 255, 258, 259, 260, 261, 262, - 263, 264, 265, 596, 256, 257, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 0, 0, 287, 288, 289, 290, 0, 0, 281, - 282, 283, 284, 0, 0, 0, 479, 480, 481, 503, - 0, 465, 527, 652, 0, 0, 0, 0, 0, 0, - 0, 577, 589, 623, 0, 633, 634, 636, 638, 637, - 640, 439, 440, 647, 0, 642, 643, 644, 641, 375, - 426, 445, 433, 0, 658, 518, 519, 659, 629, 402, - 0, 0, 533, 566, 555, 639, 521, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, - 370, 570, 552, 562, 553, 538, 539, 540, 547, 349, - 541, 542, 543, 513, 544, 514, 545, 546, 0, 569, - 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, - 0, 0, 310, 229, 515, 635, 517, 516, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, - 442, 1534, 311, 430, 474, 316, 438, 453, 306, 401, - 427, 0, 0, 302, 459, 437, 383, 360, 361, 301, - 0, 421, 335, 351, 332, 399, 0, 458, 486, 331, - 477, 0, 469, 304, 0, 468, 398, 455, 460, 384, - 377, 0, 303, 457, 382, 376, 364, 341, 502, 365, - 366, 355, 410, 374, 411, 356, 388, 387, 389, 0, - 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 628, 0, 0, 632, 0, 471, 0, 0, 0, 0, - 0, 0, 441, 0, 0, 367, 0, 0, 0, 487, - 0, 424, 404, 661, 0, 0, 422, 372, 456, 412, - 462, 443, 470, 418, 413, 294, 444, 334, 385, 307, - 309, 329, 336, 338, 342, 343, 394, 395, 407, 429, - 446, 447, 448, 333, 317, 423, 318, 353, 319, 295, - 325, 323, 326, 431, 327, 297, 408, 452, 0, 348, - 419, 380, 298, 379, 409, 451, 450, 308, 478, 484, - 485, 574, 0, 490, 662, 663, 664, 499, 0, 414, - 0, 504, 505, 506, 508, 509, 510, 511, 575, 592, - 559, 529, 492, 583, 526, 530, 531, 358, 595, 0, - 0, 0, 483, 368, 369, 0, 340, 339, 381, 417, - 299, 346, 291, 292, 657, 330, 400, 597, 630, 631, - 522, 0, 584, 523, 532, 322, 556, 568, 567, 396, - 482, 0, 579, 582, 512, 656, 0, 576, 591, 660, - 590, 653, 406, 0, 428, 588, 535, 0, 580, 554, - 0, 581, 550, 585, 0, 524, 0, 436, 464, 476, - 493, 496, 525, 610, 611, 612, 296, 495, 614, 615, - 616, 617, 618, 619, 620, 613, 467, 557, 534, 560, - 475, 537, 536, 0, 0, 571, 491, 572, 573, 390, - 391, 392, 393, 350, 598, 315, 494, 416, 0, 558, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 564, - 561, 665, 0, 621, 622, 0, 0, 488, 489, 345, - 352, 507, 354, 314, 405, 347, 473, 362, 0, 500, - 565, 501, 624, 627, 625, 626, 397, 357, 359, 432, - 363, 373, 420, 472, 403, 425, 312, 463, 434, 378, - 551, 578, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 605, - 604, 603, 602, 601, 600, 599, 0, 0, 548, 449, - 324, 285, 320, 321, 328, 654, 651, 454, 655, 0, - 293, 528, 371, 0, 415, 344, 593, 594, 0, 645, - 241, 242, 243, 244, 245, 246, 247, 248, 286, 249, - 250, 251, 252, 253, 254, 255, 258, 259, 260, 261, - 262, 263, 264, 265, 596, 256, 257, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 0, 0, 287, 288, 289, 290, 0, 0, - 281, 282, 283, 284, 0, 0, 0, 479, 480, 481, - 503, 0, 465, 527, 652, 0, 0, 0, 0, 0, - 0, 0, 577, 589, 623, 0, 633, 634, 636, 638, - 637, 640, 439, 440, 647, 0, 642, 643, 644, 641, - 375, 426, 445, 433, 0, 658, 518, 519, 659, 629, - 402, 0, 0, 533, 566, 555, 639, 521, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, - 0, 370, 570, 552, 562, 553, 538, 539, 540, 547, - 349, 541, 542, 543, 513, 544, 514, 545, 546, 0, - 569, 520, 435, 386, 587, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, - 0, 0, 0, 310, 229, 515, 635, 517, 516, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 719, 721, 720, 0, + 0, 0, 0, 0, 2030, 0, 0, 726, 2037, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, + 719, 721, 720, 0, 0, 0, 745, 0, 0, 0, + 0, 726, 0, 723, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 730, 2039, 0, 0, 0, 0, 0, + 745, 0, 0, 0, 0, 0, 0, 723, 1798, 0, + 0, 0, 0, 0, 0, 1795, 0, 0, 0, 1797, + 1794, 1796, 1800, 1801, 0, 0, 0, 1799, 0, 2037, + 0, 0, 0, 0, 0, 0, 0, 0, 2018, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2014, 2024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2039, 0, 0, 0, 2012, + 2046, 0, 0, 2013, 2015, 2017, 0, 2019, 2020, 2021, + 2025, 2026, 2027, 2029, 2032, 2033, 2034, 0, 0, 0, + 0, 0, 0, 0, 2022, 2031, 2023, 0, 0, 0, + 0, 725, 729, 735, 0, 736, 738, 0, 0, 739, + 740, 741, 3810, 0, 743, 744, 2030, 0, 0, 2014, + 0, 0, 0, 0, 0, 725, 729, 735, 0, 736, + 738, 2038, 0, 739, 740, 741, 0, 0, 743, 744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 442, 1532, 311, 430, 474, 316, 438, 453, 306, - 401, 427, 0, 0, 302, 459, 437, 383, 360, 361, - 301, 0, 421, 335, 351, 332, 399, 0, 458, 486, - 331, 477, 0, 469, 304, 0, 468, 398, 455, 460, - 384, 377, 0, 303, 457, 382, 376, 364, 341, 502, - 365, 366, 355, 410, 374, 411, 356, 388, 387, 389, - 0, 0, 0, 0, 0, 497, 498, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 628, 0, 0, 632, 0, 471, 0, 0, 0, - 0, 0, 0, 441, 0, 0, 367, 0, 0, 0, - 487, 0, 424, 404, 661, 0, 0, 422, 372, 456, - 412, 462, 443, 470, 418, 413, 294, 444, 334, 385, - 307, 309, 329, 336, 338, 342, 343, 394, 395, 407, - 429, 446, 447, 448, 333, 317, 423, 318, 353, 319, - 295, 325, 323, 326, 431, 327, 297, 408, 452, 0, - 348, 419, 380, 298, 379, 409, 451, 450, 308, 478, - 484, 485, 574, 0, 490, 662, 663, 664, 499, 0, - 414, 0, 504, 505, 506, 508, 509, 510, 511, 575, - 592, 559, 529, 492, 583, 526, 530, 531, 358, 595, - 0, 0, 0, 483, 368, 369, 0, 340, 339, 381, - 417, 299, 346, 291, 292, 657, 330, 400, 597, 630, - 631, 522, 0, 584, 523, 532, 322, 556, 568, 567, - 396, 482, 0, 579, 582, 512, 656, 0, 576, 591, - 660, 590, 653, 406, 0, 428, 588, 535, 0, 580, - 554, 0, 581, 550, 585, 0, 524, 0, 436, 464, - 476, 493, 496, 525, 610, 611, 612, 296, 495, 614, - 615, 616, 617, 618, 619, 620, 613, 467, 557, 534, - 560, 475, 537, 536, 0, 0, 571, 491, 572, 573, - 390, 391, 392, 393, 350, 598, 315, 494, 416, 0, - 558, 0, 0, 0, 0, 0, 0, 0, 0, 563, - 564, 561, 665, 0, 621, 622, 0, 0, 488, 489, - 345, 352, 507, 354, 314, 405, 347, 473, 362, 0, - 500, 565, 501, 624, 627, 625, 626, 397, 357, 359, - 432, 363, 373, 420, 472, 403, 425, 312, 463, 434, - 378, 551, 578, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 605, 604, 603, 602, 601, 600, 599, 0, 0, 548, - 449, 324, 285, 320, 321, 328, 654, 651, 454, 655, - 0, 293, 528, 371, 0, 415, 344, 593, 594, 0, - 645, 241, 242, 243, 244, 245, 246, 247, 248, 286, - 249, 250, 251, 252, 253, 254, 255, 258, 259, 260, - 261, 262, 263, 264, 265, 596, 256, 257, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 0, 0, 0, 287, 288, 289, 290, 0, - 0, 281, 282, 283, 284, 0, 0, 0, 479, 480, - 481, 503, 0, 465, 527, 652, 0, 0, 0, 0, - 0, 0, 0, 577, 589, 623, 0, 633, 634, 636, - 638, 637, 640, 439, 440, 647, 0, 642, 643, 644, - 641, 375, 426, 445, 433, 0, 658, 518, 519, 659, - 629, 402, 0, 0, 533, 566, 555, 639, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, - 0, 0, 370, 570, 552, 562, 553, 538, 539, 540, - 547, 349, 541, 542, 543, 513, 544, 514, 545, 546, - 0, 569, 520, 435, 386, 587, 586, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, - 0, 0, 0, 0, 310, 229, 515, 635, 517, 516, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 300, 442, 461, 311, 430, 474, 316, 438, 1411, - 306, 401, 427, 0, 0, 302, 459, 437, 383, 360, - 361, 301, 0, 421, 335, 351, 332, 399, 0, 458, - 486, 331, 477, 0, 469, 304, 0, 468, 398, 455, - 460, 384, 377, 0, 303, 457, 382, 376, 364, 341, - 502, 365, 366, 355, 410, 374, 411, 356, 388, 387, - 389, 0, 0, 0, 0, 0, 497, 498, 0, 0, - 646, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 628, 0, 0, 632, 0, 471, 0, 0, - 0, 0, 0, 0, 441, 0, 0, 367, 0, 0, - 0, 487, 0, 424, 404, 661, 0, 0, 422, 372, - 456, 412, 462, 443, 470, 418, 413, 294, 444, 334, - 385, 307, 309, 329, 336, 338, 342, 343, 394, 395, - 407, 429, 446, 447, 448, 333, 317, 423, 318, 353, - 319, 295, 325, 323, 326, 431, 327, 297, 408, 452, - 0, 348, 419, 380, 298, 379, 409, 451, 450, 308, - 478, 484, 485, 574, 0, 490, 662, 663, 664, 499, - 0, 414, 0, 504, 505, 506, 508, 509, 510, 511, - 575, 592, 559, 529, 492, 583, 526, 530, 531, 358, - 595, 0, 0, 0, 483, 368, 369, 0, 340, 339, - 381, 417, 299, 346, 291, 292, 657, 330, 400, 597, - 630, 631, 522, 0, 584, 523, 532, 322, 556, 568, - 567, 396, 482, 0, 579, 582, 512, 656, 0, 576, - 591, 660, 590, 653, 406, 0, 428, 588, 535, 0, - 580, 554, 0, 581, 550, 585, 0, 524, 0, 436, - 464, 476, 493, 496, 525, 610, 611, 612, 296, 495, - 614, 615, 616, 617, 618, 619, 620, 613, 467, 557, - 534, 560, 475, 537, 536, 0, 0, 571, 491, 572, - 573, 390, 391, 392, 393, 350, 598, 315, 494, 416, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 563, 564, 561, 665, 0, 621, 622, 0, 0, 488, - 489, 345, 352, 507, 354, 314, 405, 347, 473, 362, - 0, 500, 565, 501, 624, 627, 625, 626, 397, 357, - 359, 432, 363, 373, 420, 472, 403, 425, 312, 463, - 434, 378, 551, 578, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, + 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, + 1793, 1805, 1806, 1807, 1808, 1809, 1810, 1803, 1804, 0, + 0, 2035, 0, 0, 0, 0, 0, 2030, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2011, 0, + 2018, 0, 0, 0, 0, 2010, 0, 0, 0, 0, + 0, 2024, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2028, + 0, 2012, 2046, 0, 0, 2013, 2015, 2017, 2016, 2019, + 2020, 2021, 2025, 2026, 2027, 2029, 2032, 2033, 2034, 0, + 0, 0, 0, 0, 0, 0, 2022, 2031, 2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 605, 604, 603, 602, 601, 600, 599, 0, 0, - 548, 449, 324, 285, 320, 321, 328, 654, 651, 454, - 655, 0, 293, 528, 371, 0, 415, 344, 593, 594, - 0, 645, 241, 242, 243, 244, 245, 246, 247, 248, - 286, 249, 250, 251, 252, 253, 254, 255, 258, 259, - 260, 261, 262, 263, 264, 265, 596, 256, 257, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 0, 0, 0, 287, 288, 289, 290, - 0, 0, 281, 282, 283, 284, 0, 0, 0, 479, - 480, 481, 503, 0, 465, 527, 652, 0, 0, 0, - 0, 0, 0, 0, 577, 589, 623, 0, 633, 634, - 636, 638, 637, 640, 439, 440, 647, 0, 642, 643, - 644, 641, 375, 426, 445, 433, 0, 658, 518, 519, - 659, 629, 402, 0, 0, 533, 566, 555, 639, 521, + 722, 2018, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2024, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2038, 722, 0, 0, 0, 0, 0, + 0, 0, 2012, 2046, 0, 0, 2013, 2015, 2017, 0, + 2019, 2020, 2021, 2025, 2026, 2027, 2029, 2032, 2033, 2034, + 0, 0, 0, 0, 0, 0, 0, 2022, 2031, 2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 337, 0, 0, 370, 570, 552, 562, 553, 538, 539, - 540, 547, 349, 541, 542, 543, 513, 544, 514, 545, - 546, 0, 569, 520, 435, 386, 587, 586, 0, 0, + 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 310, 229, 515, 635, 517, - 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2011, 0, 0, 0, 2038, 0, 0, 2010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2028, 0, 0, 0, 0, 0, 0, 0, 0, + 2016, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2011, 0, 0, 0, 0, 0, 0, 2010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 300, 442, 461, 311, 430, 474, 316, 438, - 453, 306, 401, 427, 0, 0, 302, 459, 437, 383, - 360, 361, 301, 0, 421, 335, 351, 332, 399, 0, - 458, 486, 331, 477, 0, 469, 304, 0, 468, 398, - 455, 460, 384, 377, 0, 303, 457, 382, 376, 364, - 341, 502, 365, 366, 355, 410, 374, 411, 356, 388, - 387, 389, 0, 0, 0, 0, 0, 497, 498, 0, - 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 628, 0, 0, 632, 0, 471, 0, - 0, 0, 0, 0, 0, 441, 0, 0, 367, 0, - 0, 0, 487, 0, 424, 404, 661, 0, 0, 422, - 372, 456, 412, 462, 443, 470, 418, 413, 294, 444, - 334, 385, 307, 309, 750, 336, 338, 342, 343, 394, - 395, 407, 429, 446, 447, 448, 333, 317, 423, 318, - 353, 319, 295, 325, 323, 326, 431, 327, 297, 408, - 452, 0, 348, 419, 380, 298, 379, 409, 451, 450, - 308, 478, 484, 485, 574, 0, 490, 662, 663, 664, - 499, 0, 414, 0, 504, 505, 506, 508, 509, 510, - 511, 575, 592, 559, 529, 492, 583, 526, 530, 531, - 358, 595, 0, 0, 0, 483, 368, 369, 0, 340, - 339, 381, 417, 299, 346, 291, 292, 657, 330, 400, - 597, 630, 631, 522, 0, 584, 523, 532, 322, 556, - 568, 567, 396, 482, 0, 579, 582, 512, 656, 0, - 576, 591, 660, 590, 653, 406, 0, 428, 588, 535, - 0, 580, 554, 0, 581, 550, 585, 0, 524, 0, - 436, 464, 476, 493, 496, 525, 610, 611, 612, 296, - 495, 614, 615, 616, 617, 618, 619, 620, 613, 467, - 557, 534, 560, 475, 537, 536, 0, 0, 571, 491, - 572, 573, 390, 391, 392, 393, 350, 598, 315, 494, - 416, 0, 558, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 564, 561, 665, 0, 621, 622, 0, 0, - 488, 489, 345, 352, 507, 354, 314, 405, 347, 473, - 362, 0, 500, 565, 501, 624, 627, 625, 626, 397, - 357, 359, 432, 363, 373, 420, 472, 403, 425, 312, - 463, 434, 378, 551, 578, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 605, 604, 603, 602, 601, 600, 599, 0, - 0, 548, 449, 324, 285, 320, 321, 328, 654, 651, - 454, 655, 0, 293, 528, 371, 0, 415, 344, 593, - 594, 0, 645, 241, 242, 243, 244, 245, 246, 247, - 248, 286, 249, 250, 251, 252, 253, 254, 255, 258, - 259, 260, 261, 262, 263, 264, 265, 596, 256, 257, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 0, 0, 0, 287, 288, 289, - 290, 0, 0, 281, 282, 283, 284, 0, 0, 0, - 479, 480, 481, 503, 0, 465, 527, 652, 0, 0, - 0, 0, 0, 0, 0, 577, 589, 623, 0, 633, - 634, 636, 638, 637, 640, 439, 440, 647, 0, 642, - 643, 644, 641, 375, 426, 445, 433, 0, 658, 518, - 519, 659, 629, 402, 0, 0, 533, 566, 555, 639, - 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 337, 0, 0, 370, 570, 552, 562, 553, 538, - 539, 540, 547, 349, 541, 542, 543, 513, 544, 514, - 545, 546, 0, 569, 520, 435, 386, 587, 586, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 0, 0, 0, 0, 0, 0, 310, 229, 515, 635, - 517, 516, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 300, 442, 461, 311, 430, 474, 316, - 438, 453, 306, 401, 427, 0, 0, 302, 459, 437, - 383, 360, 361, 301, 0, 421, 335, 351, 332, 399, - 0, 458, 486, 331, 477, 0, 469, 304, 0, 468, - 398, 455, 460, 384, 377, 0, 303, 457, 382, 376, - 364, 341, 502, 365, 366, 355, 410, 374, 411, 356, - 388, 387, 389, 0, 0, 0, 0, 0, 497, 498, - 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 628, 0, 0, 632, 0, 471, - 0, 0, 0, 0, 0, 0, 441, 0, 0, 367, - 0, 0, 0, 487, 0, 424, 404, 661, 0, 0, - 422, 372, 456, 412, 462, 443, 470, 707, 413, 294, - 444, 334, 385, 307, 309, 329, 336, 338, 342, 343, - 394, 395, 407, 429, 446, 447, 448, 333, 317, 423, - 318, 353, 319, 295, 325, 323, 326, 431, 327, 297, - 408, 452, 0, 348, 419, 380, 298, 379, 409, 451, - 450, 308, 478, 484, 485, 574, 0, 490, 662, 663, - 664, 499, 0, 414, 0, 504, 505, 506, 508, 509, - 510, 511, 575, 592, 559, 529, 492, 583, 526, 530, - 531, 358, 595, 0, 0, 0, 483, 368, 369, 0, - 340, 339, 381, 417, 299, 346, 291, 292, 657, 330, - 400, 597, 630, 631, 522, 0, 584, 523, 532, 322, - 556, 568, 567, 396, 482, 0, 579, 582, 512, 656, - 0, 576, 591, 660, 590, 653, 406, 0, 428, 588, - 535, 0, 580, 554, 0, 581, 550, 585, 0, 524, - 0, 436, 464, 476, 493, 496, 525, 610, 611, 612, - 296, 495, 614, 615, 616, 617, 618, 619, 708, 613, - 467, 557, 534, 560, 475, 537, 536, 0, 0, 571, - 491, 572, 573, 390, 391, 392, 393, 350, 598, 315, - 494, 416, 0, 558, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 564, 561, 665, 0, 621, 622, 0, - 0, 488, 489, 345, 352, 507, 354, 314, 405, 347, - 473, 362, 0, 500, 565, 501, 624, 627, 625, 626, - 397, 357, 359, 432, 363, 373, 420, 472, 403, 425, - 312, 463, 434, 378, 551, 578, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 606, 605, 604, 603, 602, 601, 600, 599, - 0, 0, 548, 449, 324, 285, 320, 321, 328, 654, - 651, 454, 655, 0, 293, 528, 371, 0, 415, 344, - 593, 594, 0, 645, 241, 242, 243, 244, 245, 246, - 247, 248, 286, 249, 250, 251, 252, 253, 254, 255, - 258, 259, 260, 261, 262, 263, 264, 265, 596, 256, - 257, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 0, 0, 287, 288, - 289, 290, 0, 0, 281, 282, 283, 284, 0, 0, - 0, 479, 480, 481, 503, 0, 465, 527, 652, 0, - 0, 0, 0, 0, 0, 0, 577, 589, 623, 0, - 633, 634, 636, 638, 637, 640, 439, 440, 647, 0, - 642, 643, 644, 641, 375, 426, 445, 433, 0, 658, - 518, 519, 659, 629, + 0, 0, 2028, 0, 0, 0, 0, 0, 0, 0, + 0, 2016, } var yyPact = [...]int{ - 473, -1000, -1000, -1000, -341, 15868, -1000, -1000, -1000, -1000, + 4090, -1000, -1000, -1000, -335, 15347, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 49299, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 49873, -1000, -1000, -1000, -1000, + -1000, 491, 49299, -333, 30739, 47379, -1000, -1000, 2804, -1000, + 48019, 17287, 49299, 583, 580, 49299, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 460, 49873, -337, 31284, 47950, -1000, -1000, 2938, -1000, - 48591, 17811, 49873, 551, 550, 49873, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 983, -1000, 53779, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 907, 5250, 53139, 11480, + -212, -1000, 1559, -32, 2666, 526, -206, -209, 1146, 1151, + 1371, 1313, 49299, 1123, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 241, 1027, 48659, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 983, -1000, 54360, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 904, 5253, 53719, 11995, - -218, -1000, 1619, -39, 2644, 507, -201, -205, 1141, 1177, - 1237, 1139, 49873, 1130, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 246, 1023, 49232, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 273, 277, 977, 1027, 22415, 137, + 130, 1559, 434, -74, 258, -1000, 1811, 4424, 197, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 4049, 248, 982, 1023, 22947, 137, - 136, 1619, 456, -86, 236, -1000, 1673, 4092, 205, -1000, + 11480, 11480, 15347, -395, 15347, 11480, 49299, 49299, -1000, -1000, + -1000, -1000, -333, 48019, 907, 5250, 11480, 2666, 526, -206, + -209, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 11995, 11995, 15868, -378, 15868, 11995, 49873, 49873, -1000, -1000, - -1000, -1000, -337, 48591, 904, 5253, 11995, 2644, 507, -201, - -205, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -74, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -86, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7337,8 +7353,8 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 130, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 136, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7355,427 +7371,426 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 5240, -1000, 1666, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 4944, -1000, - 1726, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 2407, 3209, 1725, 2643, - 867, 47950, 49873, -1000, 152, 867, -1000, -1000, -1000, 1619, - 3715, -1000, 49873, 49873, 216, 1924, -1000, 582, 538, 422, - 392, 346, 1724, -1000, -1000, -1000, -1000, -1000, -1000, 792, - 3587, -1000, 49873, 49873, 3222, 49873, -1000, 2379, 817, -1000, - 5291, 3382, 1659, 1003, 3237, -1000, -1000, 3208, -1000, 370, - 640, 482, 822, 459, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 344, -1000, 3451, -1000, -1000, 356, -1000, -1000, 342, - -1000, -1000, -1000, 135, -1000, -1000, -1000, -1000, -1000, -1000, - 8, -1000, -1000, 1210, 2492, 11995, 2120, -1000, 3016, 1677, - -1000, -1000, -1000, 7481, 14571, 14571, 14571, 14571, 49873, -1000, - -1000, 3040, 11995, 3204, 3202, 3201, 3198, -1000, -1000, -1000, - -1000, -1000, -1000, 3197, 1723, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2034, -1000, -1000, -1000, 15215, -1000, - 3191, 3189, 3188, 3185, 3182, 3181, 3180, 3179, 3178, 3176, - 3175, 3170, 3169, 3167, 2834, 17160, 3166, 2642, 2637, 3160, - 3147, 3132, 2636, 3131, 3130, 3128, 2834, 2834, 3127, 3119, - 3118, 3116, 3114, 3111, 3109, 3108, 3107, 3106, 3105, 3104, - 3101, 3099, 3092, 3088, 3087, 3084, 3083, 3069, 3064, 3063, - 3057, 3056, 3055, 3054, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2396, 3192, 1663, 2663, 859, + 47379, 49299, -1000, 150, 859, -1000, -1000, -1000, 1559, 3567, + -1000, 49299, 49299, 202, 1975, -1000, 554, 463, 450, 423, + 346, 1660, -1000, -1000, -1000, -1000, -1000, -1000, 791, 3539, + -1000, 49299, 49299, 3209, 49299, -1000, 2440, 828, -1000, 54429, + 3384, 1352, 1010, 3222, -1000, -1000, 3184, -1000, 389, 310, + 344, 671, 489, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 336, -1000, 3443, -1000, -1000, 372, -1000, -1000, 350, -1000, + -1000, -1000, 121, -1000, -1000, -1000, -1000, -1000, -1000, -1, + -1000, -1000, 1240, 2307, 11480, 2133, -1000, 4077, 1625, -1000, + -1000, -1000, 6973, 14052, 14052, 14052, 14052, 49299, -1000, -1000, + 2992, 11480, 3182, 3180, 3160, 3159, -1000, -1000, -1000, -1000, + -1000, -1000, 3158, 1655, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 2070, -1000, -1000, -1000, 14695, -1000, 3153, + 3151, 3150, 3147, 3146, 3143, 3142, 3137, 3135, 3131, 3130, + 3129, 3125, 3124, 2833, 16637, 3123, 2662, 2660, 3120, 3118, + 3117, 2653, 3116, 3115, 3112, 2833, 2833, 3108, 3107, 3106, + 3105, 3102, 3101, 3098, 3096, 3094, 3093, 3091, 3090, 3089, + 3086, 3082, 3077, 3076, 3075, 3069, 3058, 3057, 3041, 3039, + 3038, 3035, 3034, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1537, -1000, - 3053, 3580, 2892, -1000, 3497, 3480, 3449, 3444, -265, 3052, - 2307, -1000, -1000, 108, 3586, 49873, -283, 49873, 427, -100, - -101, -104, -1000, -77, -1000, -1000, 1113, -1000, 1104, 53078, - 932, -1000, -1000, 49873, 902, 902, 902, 49873, 265, 1019, - 902, 902, 902, 902, 902, 936, 902, 3508, 960, 959, - 948, 945, 902, -42, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1923, 1922, 3312, 1070, -1000, -1000, -1000, -1000, 1578, - 49873, -1000, 2964, 427, -304, 1835, 1835, 3569, 3569, 3502, - 3500, 830, 825, 823, 1835, 617, -1000, 1935, 1935, 1935, - 1935, 1835, 519, 838, 3512, 3512, 134, 1935, 91, 1835, - 1835, 91, 1835, 1835, -1000, 1939, 230, -271, -1000, -1000, - -1000, -1000, 1935, 1935, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 3439, 3437, 904, 904, 49873, 904, 215, 49873, 904, - 904, 904, 49873, 910, -318, 64, 52437, 51796, 2458, 2379, - 811, 807, 1606, 1864, -1000, 1822, 49873, 49873, 1822, 1822, - 26156, 25515, -1000, 49873, -1000, 3580, 2892, 2821, 1576, 2819, - 2892, -105, 427, 904, 904, 904, 904, 904, 323, 904, - 904, 904, 904, 904, 49873, 49873, 47309, 904, 904, 904, - 904, 10057, 1673, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 15868, 2033, 2230, 203, - -12, -314, 276, -1000, -1000, 49873, 3364, 337, -1000, -1000, - -1000, 2952, -1000, 2955, 2955, 2955, 2955, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2955, 2955, 2961, - 3051, -1000, -1000, 2954, 2954, 2954, 2952, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1377, -1000, 3029, + 3551, 2919, -1000, 3425, 3423, 3419, 3415, -266, 3026, 2293, + -1000, -1000, 103, 3534, 49299, -283, 49299, 451, -83, -88, + -91, -1000, -61, -1000, -1000, 1125, -1000, 1102, 52499, 951, + -1000, -1000, 49299, 892, 892, 892, 49299, 291, 1066, 892, + 892, 892, 892, 892, 912, 892, 3457, 973, 972, 968, + 966, 892, -33, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1974, 1973, 3299, 1069, -1000, -1000, -1000, -1000, 1484, 49299, + -1000, 2951, 451, -295, 1835, 1835, 3518, 3518, 3454, 3453, + 839, 837, 823, 1835, 673, -1000, 1938, 1938, 1938, 1938, + 1835, 550, 833, 3460, 3460, 129, 1938, 92, 1835, 1835, + 92, 1835, 1835, -1000, 1867, 343, -272, -1000, -1000, -1000, + -1000, 1938, 1938, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 3437, 3434, 907, 907, 49299, 907, 248, 49299, 907, 907, + 907, 49299, 910, -324, 37, 51859, 51219, 2403, 2440, 813, + 805, 1490, 1961, -1000, 1741, 49299, 49299, 1741, 1741, 25619, + 24979, -1000, 49299, -1000, 3551, 2919, 2826, 1744, 2824, 2919, + -92, 451, 907, 907, 907, 907, 907, 325, 907, 907, + 907, 907, 907, 49299, 49299, 46739, 907, 907, 907, 907, + 9545, 1811, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 15347, 2031, 2134, 196, -12, + -313, 271, -1000, -1000, 49299, 3359, 326, -1000, -1000, -1000, + 2917, -1000, 2925, 2925, 2925, 2925, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 2925, 2925, 2950, 3023, + -1000, -1000, 2918, 2918, 2918, 2917, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2958, 2958, 2960, 2960, 2958, 49873, -126, -1000, - -1000, 11995, 49873, 3373, 439, 3049, 867, -1000, -1000, 49873, - 330, 483, 3580, 3372, 3512, 3561, -1000, -1000, 1722, 2305, - 2627, -1000, 346, -1000, 565, 346, -1000, 450, 450, 1787, - -1000, 1291, -1000, -1000, -1000, -1000, -1000, -1000, 49873, 8, - 442, -1000, -1000, 2593, 3047, -1000, 667, 1482, 1627, -1000, - 511, 4206, 40258, 2379, 40258, 49873, -1000, -1000, -1000, -1000, - -1000, -1000, 104, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2932, 2932, 2948, 2948, 2932, 49299, -111, -1000, -1000, + 11480, 49299, 3373, 408, 3022, 859, -1000, -1000, 49299, 321, + 428, 3551, 3365, 3460, 3509, -1000, -1000, 1649, 2290, 2647, + -1000, 346, -1000, 538, 346, -1000, 441, 441, 1851, -1000, + 1165, -1000, -1000, -1000, -1000, -1000, -1000, 49299, -1, 640, + -1000, -1000, 2623, 3021, -1000, 664, 1315, 1566, -1000, 352, + 54453, 39699, 2440, 39699, 49299, -1000, -1000, -1000, -1000, -1000, + -1000, 118, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 321, -1000, 11995, - 11995, 11995, 11995, 11995, -1000, 1016, 13927, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 14571, 14571, 14571, 14571, 14571, 14571, - 14571, 14571, 14571, 14571, 14571, 14571, 3037, 1927, 14571, 14571, - 14571, 14571, 28079, 1576, 3359, 1604, 312, 1677, 1677, 1677, - 1677, 11995, -1000, 1954, 2492, 11995, 11995, 11995, 11995, 34489, - 49873, -1000, -1000, 3782, 11995, 11995, 4909, 11995, 3431, 11995, - 11995, 11995, 2806, 6184, 49873, 11995, -1000, 2804, 2803, -1000, - -1000, 2051, 11995, -1000, -1000, 11995, -1000, -1000, 11995, 14571, - 11995, -1000, 11995, 11995, 11995, -1000, -1000, 1859, 3431, 3431, - 3431, 1915, 11995, 11995, 3431, 3431, 3431, 1895, 3431, 3431, - 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 2796, - 2794, 2792, 11351, 3512, -218, -1000, 9413, 3372, 3512, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -267, - 3042, 49873, 2626, 2619, -346, 191, 475, 49873, 1195, -1000, - -1000, 49873, 2304, 49873, 2302, 59, 1151, 1106, 1127, -1000, - -1000, 49873, 51155, -1000, 49873, 1965, 49873, 49873, 3406, -1000, - 49873, 49873, 902, 902, 902, -1000, 45386, 40258, 49873, 49873, - 2379, 49873, 49873, 49873, 902, 902, 902, 902, 49873, -1000, - 3383, 40258, 3318, 910, -1000, 49873, 1578, 3404, 49873, -1000, - -1000, -1000, -1000, 3569, 14571, 14571, -1000, -1000, 11995, -1000, - 264, 46668, 1935, 1835, 1835, -1000, -1000, 49873, -1000, -1000, - -1000, 1935, 49873, 1935, 1935, 3569, 1935, -1000, -1000, -1000, - 1835, 1835, -1000, -1000, 11995, -1000, -1000, 1935, 1935, -1000, - -1000, 3569, 49873, 99, 3569, 3569, 96, -1000, -1000, -1000, - 1835, 49873, 49873, 902, 49873, -1000, 49873, 49873, -1000, -1000, - 49873, 49873, 4519, 49873, 45386, 46027, 3434, -1000, 40258, 49873, - 49873, 1510, -1000, 931, 37694, -1000, 49873, 1456, -1000, 53, - -1000, 42, 64, 1822, 64, 1822, 929, -1000, 654, 824, - 24233, 598, 40258, 6828, -1000, -1000, 1822, 1822, 6828, 6828, - 1708, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1500, -1000, - 303, 3512, -1000, -1000, -1000, -1000, -1000, 2301, -294, 49873, - 45386, 40258, 2379, 49873, 904, 49873, 49873, 49873, 49873, 49873, - -1000, 3041, 1721, -1000, 3381, 49873, 49873, 49873, 49873, 1577, - -1000, -1000, 21016, 1687, -1000, -1000, 1980, -1000, 11995, 15868, - -245, 11995, 15868, 15868, 11995, 15868, -1000, 11995, 313, -1000, - -1000, -1000, -1000, 2298, -1000, 2286, -1000, -1000, -1000, -1000, - -1000, 2611, 2611, -1000, 2280, -1000, -1000, -1000, -1000, 2277, - -1000, -1000, 2276, -1000, -1000, -1000, -1000, -159, 2785, 1210, - -1000, 2603, 3236, -219, -1000, 22306, 49873, 49873, 439, -350, - 1921, 1917, 1916, 3469, -1000, -219, -1000, 21661, 49873, 3512, - -1000, -223, 3372, 11995, 49873, -1000, 3499, -1000, -1000, 346, - -1000, -1000, -1000, 450, 428, -1000, -1000, -1000, -1000, -1000, - -1000, 1686, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -89, -95, 1497, -1000, 49873, -1000, -1000, - 511, 40258, 42181, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 263, -1000, -1000, 193, -1000, 925, 274, 1786, -1000, -1000, - 222, 218, 220, 1008, 2492, -1000, 1972, 1972, 1981, -1000, - 747, -1000, -1000, -1000, -1000, 3040, -1000, -1000, -1000, 3655, - 3490, -1000, 1790, 1790, 1709, 1709, 1709, 1709, 1709, 2027, - 2027, -1000, -1000, -1000, 7481, 3037, 14571, 14571, 14571, 14571, - 978, 978, 2712, 3635, -1000, -1000, -1000, -1000, 11995, 192, - 1950, -1000, 11995, 2529, 1421, 2306, 1439, 1764, -1000, 2952, - 11995, 1685, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 383, -1000, 11480, 11480, + 11480, 11480, 11480, -1000, 965, 13409, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 14052, 14052, 14052, 14052, 14052, 14052, 14052, + 14052, 14052, 14052, 14052, 14052, 2988, 1917, 14052, 14052, 14052, + 14052, 27539, 1744, 3328, 1489, 317, 1625, 1625, 1625, 1625, + 11480, -1000, 1874, 2307, 11480, 11480, 11480, 11480, 33939, 49299, + -1000, -1000, 54360, 11480, 11480, 5140, 11480, 3405, 11480, 11480, + 11480, 2823, 5678, 49299, 11480, -1000, 2822, 2821, -1000, -1000, + 2101, 11480, -1000, -1000, 11480, -1000, -1000, 11480, 14052, 11480, + -1000, 11480, 11480, 11480, -1000, -1000, 2033, 3405, 3405, 3405, + 1933, 11480, 11480, 3405, 3405, 3405, 1931, 3405, 3405, 3405, + 3405, 3405, 3405, 3405, 3405, 3405, 3405, 3405, 2818, 2817, + 2816, 10837, 3460, -212, -1000, 8902, 3365, 3460, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -268, 2999, + 49299, 2641, 2640, -345, 181, 485, 49299, 1232, -1000, -1000, + 49299, 2288, 49299, 2279, 32, 1139, 1112, 1086, -1000, -1000, + 49299, 50579, -1000, 49299, 1948, 49299, 49299, 3401, -1000, 49299, + 49299, 892, 892, 892, -1000, 44819, 39699, 49299, 49299, 2440, + 49299, 49299, 49299, 892, 892, 892, 892, 49299, -1000, 3330, + 39699, 3315, 910, -1000, 49299, 1484, 3400, 49299, -1000, -1000, + -1000, -1000, 3518, 14052, 14052, -1000, -1000, 11480, -1000, 351, + 46099, 1938, 1835, 1835, -1000, -1000, 49299, -1000, -1000, -1000, + 1938, 49299, 1938, 1938, 3518, 1938, -1000, -1000, -1000, 1835, + 1835, -1000, -1000, 11480, -1000, -1000, 1938, 1938, -1000, -1000, + 3518, 49299, 114, 3518, 3518, 107, -1000, -1000, -1000, 1835, + 49299, 49299, 892, 49299, -1000, 49299, 49299, -1000, -1000, 49299, + 49299, 4562, 49299, 44819, 45459, 3433, -1000, 39699, 49299, 49299, + 1479, -1000, 950, 37139, -1000, 49299, 1431, -1000, 50, -1000, + 25, 37, 1741, 37, 1741, 949, -1000, 657, 692, 23699, + 576, 39699, 6321, -1000, -1000, 1741, 1741, 6321, 6321, 1681, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1478, -1000, 300, + 3460, -1000, -1000, -1000, -1000, -1000, 2273, -305, 49299, 44819, + 39699, 2440, 49299, 907, 49299, 49299, 49299, 49299, 49299, -1000, + 2993, 1639, -1000, 3383, 49299, 49299, 49299, 49299, 1544, -1000, + -1000, 20487, 1615, -1000, -1000, 2011, -1000, 11480, 15347, -237, + 11480, 15347, 15347, 11480, 15347, -1000, 11480, 295, -1000, -1000, + -1000, -1000, 2272, -1000, 2268, -1000, -1000, -1000, -1000, -1000, + 2639, 2639, -1000, 2267, -1000, -1000, -1000, -1000, 2248, -1000, + -1000, 2233, -1000, -1000, -1000, -1000, -154, 2815, 1240, -1000, + 2636, 3221, -214, -1000, 21775, 49299, 49299, 408, -357, 1971, + 1969, 1968, 3447, -1000, -214, -1000, 21131, 49299, 3460, -1000, + -218, 3365, 11480, 49299, -1000, 3452, -1000, -1000, 346, -1000, + -1000, -1000, 441, 447, -1000, -1000, -1000, -1000, -1000, -1000, + 1613, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -75, -94, 1457, -1000, 49299, -1000, -1000, 352, + 39699, 41619, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 269, + -1000, -1000, 178, -1000, 948, 268, 1850, -1000, -1000, 230, + 212, 215, 1019, 2307, -1000, 2021, 2021, 1995, -1000, 895, + -1000, -1000, -1000, -1000, 2992, -1000, -1000, -1000, 2195, 2543, + -1000, 1913, 1913, 1685, 1685, 1685, 1685, 1685, 1799, 1799, + -1000, -1000, -1000, 6973, 2988, 14052, 14052, 14052, 14052, 988, + 988, 4172, 4258, -1000, -1000, -1000, -1000, 11480, 179, 1991, + -1000, 11480, 2434, 1508, 2363, 1438, 1849, -1000, 2917, 11480, + 1612, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2780, 2779, 2350, 3581, 2763, 11995, -1000, -1000, - 1762, 1761, 1755, -1000, 2208, 10707, -1000, -1000, -1000, 2757, - 1684, 2754, -1000, -1000, -1000, 2753, 1751, 1403, 2751, 1886, - 2747, 2745, 2741, 2740, 1489, 11995, 11995, 11995, 11995, 2738, - 1742, 1741, 11995, 11995, 11995, 11995, 2737, 11995, 11995, 11995, - 11995, 11995, 11995, 11995, 11995, 11995, 11995, 49873, 161, 161, - 161, 1485, 1469, -1000, -1000, 1738, -1000, 2492, -1000, -1000, - 3372, -1000, 3014, 2273, 1460, -1000, -1000, -334, 2546, 49873, - 49873, 186, 49873, 2601, -284, 49873, -1000, -1000, 2599, -1000, - -1000, -1000, 1148, 1092, 1088, -1000, 49873, -1000, 2598, 3378, - 3493, 906, 49873, 3013, 3011, 49873, 49873, 49873, 305, -1000, - -1000, 1491, -1000, 274, -3, 554, 1254, 3221, 870, -128, - 49873, 49873, 49873, 49873, 3399, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 44745, -1000, 3010, 1729, -1000, -1000, 1677, - 1677, 2492, 49873, 49873, 49873, 3220, 49873, 49873, 3569, 3569, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1935, 3569, 3569, - 1430, 1835, 1935, -1000, -1000, 1935, -350, -1000, 1935, -1000, - -350, 1675, -350, 49873, -1000, -1000, -1000, 3397, 2964, 1459, - -1000, -1000, -1000, 3558, 1501, 890, 890, 1109, 761, 3557, - 19734, -1000, 1832, 1160, 924, 3340, 366, -1000, 1832, -154, - 872, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 781, 763, - 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, - 1832, 1168, 1832, 1832, 1832, 1832, 1832, -1000, 1832, 3009, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 801, 669, 302, - 3419, 401, -1000, 440, 1491, 658, 3417, 458, 49873, 49873, - 3884, 1339, -1000, -1000, -1000, -1000, -1000, 28720, 28720, 23592, - 28720, -1000, 200, 1822, 64, 31, -1000, -1000, 1456, 6828, - 1456, 6828, 2261, -1000, -1000, 920, -1000, -1000, 1254, -1000, - 49873, 49873, -1000, -1000, 3007, 1882, -1000, -1000, 17160, -1000, - 6828, 6828, -1000, -1000, 30643, 49873, -1000, 4, -1000, 34, - 3372, -1000, -1000, -1000, 1227, -1000, -1000, 1455, 1254, 3233, - 49873, 1227, 1227, 1227, -1000, -1000, 18452, 49873, 49873, -1000, - -1000, -1000, -294, 3569, 10057, -1000, 37694, -1000, -1000, 44104, - -1000, 43463, 1933, -1000, 15868, 2204, 207, -1000, 262, -316, - 199, 2008, 196, 2492, -1000, -1000, 2727, 2725, 1719, -1000, - 1718, 2724, 1716, 1712, 2259, -1000, 85, -1000, 3341, 1290, - -1000, 3004, -1000, 1711, 3309, -1000, 1450, -1000, 1876, 1710, - -1000, -1000, -1000, 11995, 42822, 11995, 1047, 1290, 1707, 3302, - 1450, 3372, 2589, -1000, 1449, -1000, 2447, 1674, 213, -1000, - -1000, -1000, 49873, 2593, 1706, 42181, 1380, -1000, 919, 1672, - 1663, -1000, 40258, 359, 40258, -1000, 40258, -1000, -1000, 419, - -1000, 49873, 3351, -1000, -1000, -1000, 2546, 1875, -349, 49873, - -1000, -1000, -1000, -1000, -1000, 1705, -1000, 978, 978, 2712, - 2931, -1000, 14571, -1000, 14571, 3343, -1000, 1918, -1000, 11995, - 2081, 4814, 11995, 4814, 2077, 27438, 34489, -111, 3370, 3338, - 49873, -1000, -1000, 11995, 11995, -1000, 3283, -1000, -1000, -1000, - -1000, 11995, 11995, 2256, -1000, 49873, -1000, -1000, -1000, -1000, - 27438, -1000, 14571, -1000, -1000, -1000, -1000, 11995, 1483, 1483, - 3252, 1704, 161, 161, 161, 3245, 3195, 3164, 1702, 161, - 3143, 3112, 3095, 3031, 3005, 2950, 2850, 2832, 2828, 2786, - 1699, -1000, 2998, -1000, -1000, 2039, 13283, 9413, -1000, -1000, - 311, 1448, 2253, 2588, 127, -1000, 1874, -1000, 2584, 49873, - 49873, 1191, -1000, 49873, 3577, -1000, -1000, -1000, -1000, 1090, - -1000, 2583, -1000, 283, 280, 2090, 322, 1245, 18452, 2964, - 2984, 2964, 147, 1832, 634, 40258, 803, -1000, 49873, 2037, - 1871, 3232, 851, 3363, 49873, 49873, 2983, 413, 2975, 2974, - 3396, 509, 5050, 49873, 1329, -1000, 1658, 4092, -1000, 49873, - -1000, -1000, 49873, -1000, 2379, -1000, 1835, -1000, -1000, 3569, - -1000, -1000, 11995, 11995, 3569, 1835, 1835, -1000, 1935, -1000, - 49873, -1000, -350, 509, 5050, 3393, 4657, 714, 2823, -1000, - 49873, -1000, -1000, -1000, 899, -1000, 1073, 902, 49873, 2001, - 1073, 2000, 2973, -1000, -1000, 49873, 49873, 49873, 49873, -1000, - -1000, 49873, -1000, 49873, 49873, 49873, 49873, 49873, 41540, -1000, - 49873, 49873, -1000, 49873, 1999, 49873, 1996, 849, -1000, 1832, - 1832, 1035, -1000, -1000, 612, -1000, 41540, 2252, 2249, 2246, - 2239, 2579, 2572, 2569, 1832, 1832, 2234, 2568, 40899, 2567, - 1228, 2212, 2182, 2180, 2348, 2565, 1096, -1000, 2563, 2310, - 2308, 2185, 49873, 2972, 2468, -1000, -1000, 2090, 147, 1832, - 398, 49873, 1870, 1869, 634, 613, 613, 553, -32, 24874, - -1000, -1000, -1000, 49873, 37694, 37694, 37694, 37694, 37694, 37694, - -1000, 3275, 3254, 2971, -1000, 3266, 3256, 3279, 3272, 3241, - 49873, 37694, 2964, -1000, 40899, -1000, -1000, -1000, 1576, 1698, - 3416, 1099, 11995, 6828, -1000, -1000, 48, 20, -1000, -1000, - -1000, -1000, 40258, 2562, 598, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 3484, 49873, 49873, 864, 2722, 1442, -1000, -1000, - -1000, 5050, 2955, 2955, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 2955, 2955, 2961, -1000, -1000, 2954, 2954, - 2954, 2952, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 2958, 2958, 2960, 2960, 2958, -1000, -1000, -1000, - 3567, -1000, 1432, -1000, -1000, 1655, -1000, 1956, -342, 15868, - 1942, 1728, -1000, 11995, 15868, 11995, -246, 381, -249, -1000, - -1000, -1000, 2561, -1000, -1000, -1000, 2178, -1000, 2167, -1000, - 178, 204, 1995, -219, 9413, 455, 49873, -219, 49873, 9413, - -1000, 49873, 180, -366, -367, 164, 2560, 412, -219, 3484, - 85, 11995, 3335, -1000, -1000, 49873, 2165, -1000, -1000, -1000, - 3576, 40258, 2379, 1776, 39617, -1000, 355, -1000, 261, 632, - 2549, -1000, 944, 125, 2548, 2546, -1000, -1000, -1000, -1000, - 14571, 1677, -1000, -1000, -1000, 2492, 11995, 2721, -1000, 1067, - 1067, 2299, 2717, 2716, -1000, 2955, 2955, -1000, 2952, 2954, - 2952, 1067, 1067, 2715, -1000, 2930, -1000, 3370, -1000, 2094, - 2782, -1000, 2760, 2630, 11995, -1000, 2711, 3618, 1368, -46, - -188, 161, 161, -1000, -1000, -1000, -1000, 161, 161, 161, - 161, -1000, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 868, -96, -275, -97, -276, -1000, 2708, - 1406, -1000, -1000, -1000, -1000, -1000, 4909, 1401, 571, 571, - 2546, 2543, -1000, 917, 2542, 1135, 49873, 2541, -291, -1000, - 2540, -1000, -1000, 49873, 49873, 49873, 50514, 643, 49873, 49873, - 2537, -1000, 2530, 2706, 1400, -1000, -1000, 49873, -1000, -1000, - -1000, 2705, 3392, 19093, 3385, 2321, -1000, -1000, -1000, 30002, - 613, -1000, -1000, -1000, 739, 343, 2157, 615, -1000, 49873, - 539, 3320, 1868, 2521, 49873, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 3363, -1000, 955, -350, 505, 36412, 16519, - -1000, 420, 49873, -1000, 49873, 19093, 19093, 420, 513, 1865, - -1000, 867, 1371, 142, 37694, 49873, -1000, 37053, 2700, -1000, - -1000, 1254, 3569, -1000, 2492, 2492, -350, 3569, 3569, 1835, - -1000, -1000, 513, -1000, 420, -1000, 1582, 20375, 602, 527, - 508, -1000, 729, -1000, -1000, 858, 3331, 5050, -1000, 49873, - -1000, 49873, -1000, 49873, 49873, 902, 11995, 3331, 49873, 915, - -1000, 1208, 478, 487, 827, 827, 1391, -1000, 3370, -1000, - -1000, 1389, -1000, -1000, -1000, -1000, 49873, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 27438, 27438, 3415, -1000, -1000, + -1000, 2814, 2813, 2516, 3533, 2811, 11480, -1000, -1000, 1842, + 1841, 1821, -1000, 2269, 10194, -1000, -1000, -1000, 2810, 1609, + 2809, -1000, -1000, -1000, 2806, 1817, 1280, 2802, 1880, 2800, + 2799, 2798, 2795, 1456, 11480, 11480, 11480, 11480, 2793, 1814, + 1812, 11480, 11480, 11480, 11480, 2781, 11480, 11480, 11480, 11480, + 11480, 11480, 11480, 11480, 11480, 11480, 49299, 157, 157, 157, + 1452, 1440, -1000, -1000, 1798, -1000, 2307, -1000, -1000, 3365, + -1000, 2987, 2225, 1435, -1000, -1000, -330, 2573, 49299, 49299, + 177, 49299, 2635, -296, 49299, -1000, -1000, 2630, -1000, -1000, + -1000, 1136, 1096, 1094, -1000, 49299, -1000, 2625, 3381, 3451, + 986, 49299, 2986, 2985, 49299, 49299, 49299, 302, -1000, -1000, + 1363, -1000, 268, -23, 596, 1277, 3208, 887, -121, 49299, + 49299, 49299, 49299, 3398, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 44179, -1000, 2978, 1781, -1000, -1000, 1625, 1625, + 2307, 49299, 49299, 49299, 3207, 49299, 49299, 3518, 3518, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1938, 3518, 3518, 1672, + 1835, 1938, -1000, -1000, 1938, -357, -1000, 1938, -1000, -357, + 1600, -357, 49299, -1000, -1000, -1000, 3396, 2951, 1434, -1000, + -1000, -1000, 3508, 1548, 888, 888, 1133, 759, 3507, 19207, + -1000, 1775, 1362, 945, 3332, 387, -1000, 1775, -151, 870, + 1775, 1775, 1775, 1775, 1775, 1775, 1775, 780, 764, 1775, + 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, + 1142, 1775, 1775, 1775, 1775, 1775, -1000, 1775, 2977, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 822, 703, 283, 3432, + 449, -1000, 456, 1363, 677, 3422, 474, 49299, 49299, 3667, + 1414, -1000, -1000, -1000, -1000, -1000, 28179, 28179, 23059, 28179, + -1000, 184, 1741, 37, 60, -1000, -1000, 1431, 6321, 1431, + 6321, 2224, -1000, -1000, 944, -1000, -1000, 1277, -1000, 49299, + 49299, -1000, -1000, 2975, 1966, -1000, -1000, 16637, -1000, 6321, + 6321, -1000, -1000, 30099, 49299, -1000, -13, -1000, 19, 3365, + -1000, -1000, -1000, 1255, -1000, -1000, 1422, 1277, 3220, 49299, + 1255, 1255, 1255, -1000, -1000, 17927, 49299, 49299, -1000, -1000, + -1000, -305, 3518, 9545, -1000, 37139, -1000, -1000, 43539, -1000, + 42899, 1862, -1000, 15347, 2119, 192, -1000, 263, -317, 190, + 1992, 189, 2307, -1000, -1000, 2778, 2777, 1774, -1000, 1764, + 2776, 1763, 1762, 2223, -1000, 88, -1000, 3333, 1289, -1000, + 2973, -1000, 1751, 3296, -1000, 1402, -1000, 1965, 1747, -1000, + -1000, -1000, 11480, 42259, 11480, 1051, 1289, 1737, 3295, 1402, + 3365, 2624, -1000, 1399, -1000, 2162, 1579, 195, -1000, -1000, + -1000, 49299, 2623, 1736, 41619, 1330, -1000, 942, 1574, 1573, + -1000, 39699, 337, 39699, -1000, 39699, -1000, -1000, 411, -1000, + 49299, 3363, -1000, -1000, -1000, 2573, 1964, -356, 49299, -1000, + -1000, -1000, -1000, -1000, 1733, -1000, 988, 988, 4172, 4191, + -1000, 14052, -1000, 14052, 3280, -1000, 1861, -1000, 11480, 2064, + 4994, 11480, 4994, 963, 26899, 33939, -102, 3369, 3254, 49299, + -1000, -1000, 11480, 11480, -1000, 3223, -1000, -1000, -1000, -1000, + 11480, 11480, 2349, -1000, 49299, -1000, -1000, -1000, -1000, 26899, + -1000, 14052, -1000, -1000, -1000, -1000, 11480, 1373, 1373, 3148, + 1731, 157, 157, 157, 3126, 3110, 3032, 1728, 157, 2952, + 2930, 2878, 2857, 2812, 2761, 2756, 2690, 2681, 2634, 1722, + -1000, 2972, -1000, -1000, 2062, 12766, 8902, -1000, -1000, 331, + 1396, 2219, 2620, 127, -1000, 1960, -1000, 2619, 49299, 49299, + 1211, -1000, 49299, 3532, -1000, -1000, -1000, -1000, 1082, -1000, + 2618, -1000, 293, 287, 2107, 319, 1257, 17927, 2951, 2971, + 2951, 132, 1775, 672, 39699, 800, -1000, 49299, 2299, 1954, + 3218, 786, 3358, 49299, 49299, 2970, 401, 2965, 2963, 3395, + 567, 5358, 49299, 1391, -1000, 1569, 4424, -1000, 49299, -1000, + -1000, 49299, -1000, 2440, -1000, 1835, -1000, -1000, 3518, -1000, + -1000, 11480, 11480, 3518, 1835, 1835, -1000, 1938, -1000, 49299, + -1000, -357, 567, 5358, 3391, 4853, 726, 2522, -1000, 49299, + -1000, -1000, -1000, 915, -1000, 1093, 892, 49299, 2038, 1093, + 2030, 2957, -1000, -1000, 49299, 49299, 49299, 49299, -1000, -1000, + 49299, -1000, 49299, 49299, 49299, 49299, 49299, 40979, -1000, 49299, + 49299, -1000, 49299, 2029, 49299, 2027, 1003, -1000, 1775, 1775, + 1034, -1000, -1000, 624, -1000, 40979, 2216, 2215, 2214, 2192, + 2615, 2614, 2612, 1775, 1775, 2183, 2611, 40339, 2608, 1298, + 2181, 2172, 2170, 2169, 2607, 1079, -1000, 2606, 2168, 2156, + 2144, 49299, 2955, 2484, -1000, -1000, 2107, 132, 1775, 446, + 49299, 1953, 1951, 672, 615, 615, 589, -24, 24339, -1000, + -1000, -1000, 49299, 37139, 37139, 37139, 37139, 37139, 37139, -1000, + 3266, 3238, 2954, -1000, 3246, 3240, 3258, 3262, 3228, 49299, + 37139, 2951, -1000, 40339, -1000, -1000, -1000, 1744, 1717, 3886, + 1085, 11480, 6321, -1000, -1000, 13, 12, -1000, -1000, -1000, + -1000, 39699, 2605, 576, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 3450, 49299, 49299, 909, 2775, 1375, -1000, -1000, -1000, + 5358, 2925, 2925, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 2925, 2925, 2950, -1000, -1000, 2918, 2918, 2918, + 2917, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2932, 2932, 2948, 2948, 2932, -1000, -1000, -1000, 3514, + -1000, 1374, -1000, -1000, 1568, -1000, 1887, -336, 15347, 1855, + 1813, -1000, 11480, 15347, 11480, -239, 410, -248, -1000, -1000, + -1000, 2584, -1000, -1000, -1000, 2157, -1000, 2151, -1000, 187, + 213, 2019, -214, 8902, 431, 49299, -214, 49299, 8902, -1000, + 49299, 175, -362, -366, 166, 2583, 430, -214, 3450, 88, + 11480, 3318, -1000, -1000, 49299, 2145, -1000, -1000, -1000, 3531, + 39699, 2440, 1715, 39059, -1000, 358, -1000, 267, 620, 2582, + -1000, 957, 125, 2574, 2573, -1000, -1000, -1000, -1000, 14052, + 1625, -1000, -1000, -1000, 2307, 11480, 2773, -1000, 1072, 1072, + 2245, 2767, 2766, -1000, 2925, 2925, -1000, 2917, 2918, 2917, + 1072, 1072, 2765, -1000, 2916, -1000, 3369, -1000, 2343, 2621, + -1000, 2565, 2529, 11480, -1000, 2762, 4143, 1492, -41, -182, + 157, 157, -1000, -1000, -1000, -1000, 157, 157, 157, 157, + -1000, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 860, -95, -276, -97, -278, -1000, 2759, 1369, + -1000, -1000, -1000, -1000, -1000, 5140, 1365, 609, 609, 2573, + 2571, -1000, 940, 2570, 1134, 49299, 2566, -301, -1000, 2562, + -1000, -1000, 49299, 49299, 49299, 49939, 702, 49299, 49299, 2559, + -1000, 2557, 2753, 1343, -1000, -1000, 49299, -1000, -1000, -1000, + 2750, 3390, 18567, 3389, 2309, -1000, -1000, -1000, 29459, 615, + -1000, -1000, -1000, 755, 445, 2141, 602, -1000, 49299, 595, + 3308, 1947, 2548, 49299, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 3358, -1000, 1104, -357, 544, 35859, 15997, -1000, + 413, 49299, -1000, 49299, 18567, 18567, 413, 551, 1858, -1000, + 859, 1236, 143, 37139, 49299, -1000, 36499, 2746, -1000, -1000, + 1277, 3518, -1000, 2307, 2307, -357, 3518, 3518, 1835, -1000, + -1000, 551, -1000, 413, -1000, 1740, 19847, 659, 533, 462, + -1000, 774, -1000, -1000, 858, 3342, 5358, -1000, 49299, -1000, + 49299, -1000, 49299, 49299, 892, 11480, 3342, 49299, 928, -1000, + 1205, 524, 513, 863, 863, 1340, -1000, 3369, -1000, -1000, + 1334, -1000, -1000, -1000, -1000, 49299, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 26899, 26899, 3418, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 2520, 2519, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2547, 2545, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 49873, 1696, -1000, 1867, 2510, 2321, 30002, 1866, - 1822, 2509, 2505, 613, -1000, 2504, 2499, -1000, 2037, 1860, - 943, 49873, -1000, 1230, 49873, 49873, -1000, 1349, -1000, 1858, - 3215, 3231, 3215, -1000, 3215, -1000, -1000, -1000, -1000, 3269, - 2498, -1000, 3257, -1000, 3255, -1000, -1000, -1000, -1000, 1349, - -1000, -1000, -1000, -1000, -1000, 1099, -1000, 3475, 1073, 1073, - 1073, 2698, -1000, -1000, -1000, -1000, 1380, 2697, -1000, -1000, - -1000, 3607, -1000, -1000, -1000, -1000, -1000, -1000, 18452, 3360, - 3563, 3554, 38976, -1000, -342, 1732, -1000, 2044, 189, 1970, - 49873, -1000, -1000, -1000, 2695, 2694, -225, 209, 3553, 3542, - 1140, -1000, 2691, 1362, -219, -1000, -1000, 1290, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -376, -219, -1000, 1290, -1000, - 178, -1000, -1000, 3349, -1000, -1000, 2379, -1000, 254, -1000, - -1000, -1000, -1000, -1000, -1000, 245, -1000, 49873, -1000, 1350, - 122, -1000, 2492, -1000, -1000, -1000, -1000, -1000, 4814, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2491, - -1000, -1000, 11995, -1000, -1000, -1000, 2533, -1000, -1000, 11995, - 2686, 2490, 2685, 2486, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 49299, 1706, -1000, 1943, 2523, 2309, 29459, 1922, 1741, + 2521, 2520, 615, -1000, 2519, 2510, -1000, 2299, 1920, 956, + 49299, -1000, 1276, 49299, 49299, -1000, 1372, -1000, 1911, 3199, + 3216, 3199, -1000, 3199, -1000, -1000, -1000, -1000, 3255, 2509, + -1000, 3244, -1000, 3242, -1000, -1000, -1000, -1000, 1372, -1000, + -1000, -1000, -1000, -1000, 1085, -1000, 3449, 1093, 1093, 1093, + 2744, -1000, -1000, -1000, -1000, 1330, 2743, -1000, -1000, -1000, + 3545, -1000, -1000, -1000, -1000, -1000, -1000, 17927, 3349, 3511, + 3505, 38419, -1000, -336, 1718, -1000, 2007, 188, 1970, 49299, + -1000, -1000, -1000, 2740, 2739, -220, 203, 3504, 3502, 1138, + -1000, 2738, 1325, -214, -1000, -1000, 1289, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -393, -214, -1000, 1289, -1000, 187, + -1000, -1000, 3352, -1000, -1000, 2440, -1000, 265, -1000, -1000, + -1000, -1000, -1000, -1000, 246, -1000, 49299, -1000, 1310, 117, + -1000, 2307, -1000, -1000, -1000, -1000, -1000, 4994, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2508, -1000, + -1000, 11480, -1000, -1000, -1000, 2507, -1000, -1000, 11480, 2737, + 2505, 2736, 2501, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 3580, -1000, 3541, 1695, 2684, 2683, 1693, 2676, 2675, - -1000, 11995, 2673, 4909, 1022, 2484, 1022, -1000, -1000, 453, - 29361, 49873, 3575, -1000, 49873, 2475, -1000, -1000, 49873, 2090, - 639, 2090, 755, 49873, -294, -1000, -114, 1245, 5050, 963, - 420, 2672, 1294, -1000, -1000, -1000, -1000, 420, -1000, 2474, - 255, -1000, -1000, -1000, -1000, 2143, -1000, -1000, 2184, 1660, - 284, -1000, -1000, -1000, -1000, -1000, -1000, 2236, 49873, 38335, - 2262, 1857, -352, -1000, 2926, -1000, 1832, 1832, 1832, 914, - 49873, 1692, -1000, 1832, 1832, 2671, -1000, -1000, 912, 2669, - 2666, -129, 850, 1843, 1841, -1000, 2136, 28720, 37694, 37053, - 1346, -1000, 1643, -1000, -1000, -1000, -1000, -1000, -1000, 3569, - 850, -1000, 595, 2135, 14571, 2920, 14571, 2919, 608, 2910, - 1664, -1000, 49873, -1000, -1000, 49873, 4105, 2905, -1000, 2904, - 3218, 562, 2902, 2895, 49873, 2511, -1000, 3331, 49873, 785, - 3345, -1000, -1000, -1000, 437, -1000, -1000, -1000, 616, -1000, - 49873, -1000, 49873, -1000, 1668, -1000, 27438, -1000, -1000, 1661, - -1000, 2468, 2464, -1000, -1000, 255, 2457, 6828, -1000, -1000, - -1000, -1000, -1000, 3320, 2456, 2236, 49873, -1000, 49873, 1230, - 1230, 3580, 49873, 9413, -1000, -1000, 11995, 2890, -1000, 11995, - -1000, -1000, -1000, 2664, -1000, -1000, -1000, -1000, -1000, 2889, - 3317, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2714, -1000, - 11995, 12639, -1000, 896, 15868, -251, 377, -1000, -1000, -1000, - -227, 2453, -1000, -1000, 3539, 2452, 2364, 49873, -1000, -1000, - 1290, -1000, 1290, -225, -1000, -1000, 1254, -1000, -1000, 1171, - 787, -1000, 2661, 277, -1000, 2502, -1000, 2455, 161, -1000, - 161, -1000, 269, 11995, -1000, 2448, -1000, -1000, -1000, 2446, - -1000, -1000, 2358, -1000, 2653, -1000, 2445, -1000, -1000, 49873, - -1000, -1000, 1132, 2441, -353, -1000, 2437, 2090, 2435, 2090, - 49873, 625, -1000, 2434, 2432, -1000, -1000, 5050, -133, -129, - 19093, -133, -1000, -1000, 399, 414, -1000, -1000, 2181, 673, - -1000, -1000, 2427, 629, -1000, 1230, -1000, 1855, 2023, 2395, - 34489, 27438, 28079, 2426, 443, -1000, -1000, 36412, 2714, 2714, - 5323, 432, 321, 5696, -1000, 2875, 1181, 1824, -1000, 2134, - -1000, 2132, -1000, 3569, 1346, 132, -1000, -1000, 1763, -1000, - 1181, 2823, 3538, -1000, 3598, 49873, 3093, 49873, 2873, 1853, - 14571, -1000, 858, 3301, -1000, -1000, 4105, -1000, -1000, 2009, - 14571, -1000, -1000, 2425, 28079, 968, 1852, 1851, 1062, 2871, - -1000, 681, 3603, -1000, -1000, -1000, 1032, 2869, -1000, 1994, - 1984, -1000, 49873, -1000, 34489, 34489, 1030, 1030, 34489, 34489, - 2848, 827, -1000, -1000, 14571, -1000, -1000, 1832, -1000, -1000, - -1000, 1832, 1665, -1000, -1000, -1000, -1000, -1000, -1000, 2262, - -1000, -1000, 1227, -1000, 3512, -1000, -1000, 2492, 49873, 2492, - -1000, 35771, -1000, 3537, 3535, -1000, 2492, 253, 256, 2846, - 2845, -1000, -342, 49873, 49873, -229, 2130, -1000, 2422, 201, - -1000, -1000, 1225, -227, -236, 96, 27438, 1849, -1000, 2652, - 363, -146, -1000, -1000, -1000, -1000, 2651, -1000, 961, -1000, - -1000, -1000, 1210, 2650, 2534, -1000, -1000, -1000, -1000, 49873, - -1000, 2388, -294, 2420, -294, 2410, 623, 2090, -1000, -1000, - -122, -1000, -1000, 494, -1000, -1000, -1000, 628, 2338, -1000, - -1000, 409, -1000, -1000, -1000, 2236, 2409, -1000, -1000, 111, - -1000, 1846, 1652, -1000, -1000, -1000, 49873, -1000, -1000, -1000, - 852, -1000, 420, 5633, -1000, 1160, 49873, -1000, 1171, 852, - 33207, 691, 315, -1000, 2114, -1000, -1000, 3580, -1000, 672, - -1000, 606, -1000, 1649, -1000, 1569, 35130, 2112, 2965, -1000, - 5494, 979, -1000, -1000, 2712, -1000, -1000, -1000, -1000, -1000, - -1000, 2406, 2403, -1000, -1000, -1000, -1000, -1000, 2103, 2844, - 79, 3413, 2402, -1000, -1000, 2843, 1568, 1536, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1531, 1524, - 34489, -1000, -1000, 2712, 2091, 27438, 1832, -1000, -1000, 1511, - 1504, -1000, -1000, -1000, -1000, -1000, -312, 2842, 11995, 11995, - -1000, -1000, -1000, 2840, -1000, -1000, 3534, -229, -239, 2401, - 175, 241, -1000, 2399, -1000, -124, 3290, -150, -1000, -1000, - 614, -220, 150, 148, 115, -1000, -1000, -1000, 11995, -1000, - -1000, -1000, 110, -1000, 1838, -1000, -294, -1000, -294, 2090, - 2398, 49873, 676, -1000, -1000, -1000, -1000, 231, -1000, -1000, - -1000, -1000, -1000, -1000, 2395, 2390, -1000, -1000, 594, 3533, - -1000, 5696, -1000, 1832, -1000, -1000, 594, 1481, -1000, 1832, - 1832, -1000, 516, -1000, 1810, -1000, 2087, -1000, 3512, -1000, - 515, -1000, 583, -1000, -1000, -1000, 1471, -1000, -1000, -1000, - 5494, 600, -1000, 839, 2836, -1000, -1000, 2516, 11995, 2834, - 1832, 2507, -108, 34489, 3216, 3018, 2852, 2830, 1447, -1000, - -1000, 27438, -1000, -1000, 33848, -1000, 2827, 1445, 1437, 49873, - 2364, -1000, -1000, 2389, -1000, 909, 197, 241, -1000, 3531, - 188, 3530, 3526, 1200, 3288, -1000, -1000, 1976, -1000, 174, - 155, 153, -1000, -1000, -1000, -1000, -294, 2388, 2385, -1000, - -1000, 2378, -294, 593, -1000, 336, -1000, -1000, -1000, 331, - -1000, 3525, 714, -1000, 27438, -1000, -1000, 33207, 2714, 2714, - -1000, -1000, 2086, -1000, -1000, -1000, -1000, 2085, -1000, -1000, - -1000, 1413, -1000, 49873, 1040, 8769, -1000, 2270, -1000, 49873, - -1000, 3230, -1000, 289, 1404, 331, 1030, 331, 1030, 331, - 1030, 331, 1030, 332, -1000, -1000, -1000, 1399, 11995, -1000, - -1000, 1358, -1000, -1000, -1000, 2826, 2082, 209, 194, 3524, - -1000, 2364, 3516, 2364, 2364, -1000, 139, -135, 614, -1000, - -1000, -1000, -1000, -1000, -1000, -294, -1000, 2370, -1000, -1000, - -1000, -1000, 1832, 1832, 2368, 2367, 493, -1000, -1000, 1832, - 1832, 1832, 1832, -1000, 32566, 602, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 600, 5696, -1000, 8769, 1344, -1000, 2492, - -1000, 827, -1000, -1000, 3225, 2602, 3574, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2824, 2497, -1000, - 49873, 3411, 26797, 171, -1000, -1000, -1000, 2366, -1000, 2364, - -1000, -1000, 1831, -147, -1000, -1000, -273, 2068, 2060, -1000, - -1000, 49873, 2055, 2042, 2017, 2363, -1000, 49873, 595, -1000, - 5696, 1321, -1000, 8769, -1000, -1000, 3602, -1000, 3600, 973, - 973, 331, 331, 331, 331, 11995, -1000, -1000, -1000, 49873, - -1000, 1299, -1000, -1000, -1000, 1637, -1000, -1000, -1000, -1000, - 2362, -151, -1000, -1000, 2341, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1278, 2823, -1000, -1000, -1000, -1000, -1000, 2092, - 618, -1000, 2096, 1196, -1000, 1797, -1000, 31925, 49873, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 49873, 8125, - -1000, 1608, -1000, -1000, 2492, 49873, -1000, + 3551, -1000, 3492, 1703, 2735, 2731, 1698, 2728, 2724, -1000, + 11480, 2723, 5140, 1043, 2500, 1043, -1000, -1000, 472, 28819, + 49299, 3520, -1000, 49299, 2491, -1000, -1000, 49299, 2107, 682, + 2107, 766, 49299, -305, -1000, -106, 1257, 5358, 987, 413, + 2716, 1293, -1000, -1000, -1000, -1000, 413, -1000, 2487, 266, + -1000, -1000, -1000, -1000, 2137, -1000, -1000, 2130, 1493, 278, + -1000, -1000, -1000, -1000, -1000, -1000, 2306, 49299, 37779, 2308, + 1889, -358, -1000, 2912, -1000, 1775, 1775, 1775, 924, 49299, + 1697, -1000, 1775, 1775, 2714, -1000, -1000, 921, 2713, 2704, + -123, 872, 1910, 1868, -1000, 2136, 28179, 37139, 36499, 1368, + -1000, 1556, -1000, -1000, -1000, -1000, -1000, -1000, 3518, 872, + -1000, 636, 2128, 14052, 2911, 14052, 2910, 669, 2903, 1696, + -1000, 49299, -1000, -1000, 49299, 4092, 2894, -1000, 2893, 3205, + 608, 2892, 2891, 49299, 2503, -1000, 3342, 49299, 821, 3340, + -1000, -1000, -1000, 504, -1000, -1000, -1000, 705, -1000, 49299, + -1000, 49299, -1000, 1620, -1000, 26899, -1000, -1000, 1695, -1000, + 2484, 2483, -1000, -1000, 266, 2471, 6321, -1000, -1000, -1000, + -1000, -1000, 3308, 2464, 2306, 49299, -1000, 49299, 1276, 1276, + 3551, 49299, 8902, -1000, -1000, 11480, 2883, -1000, 11480, -1000, + -1000, -1000, 2701, -1000, -1000, -1000, -1000, -1000, 2875, 3306, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1637, -1000, 11480, + 12123, -1000, 889, 15347, -254, 403, -1000, -1000, -1000, -222, + 2463, -1000, -1000, 3491, 2454, 2319, 49299, -1000, -1000, 1289, + -1000, 1289, -220, -1000, -1000, 1277, -1000, -1000, 1164, 785, + -1000, 2698, 286, -1000, 2490, -1000, 2472, 157, -1000, 157, + -1000, 259, 11480, -1000, 2451, -1000, -1000, -1000, 2449, -1000, + -1000, 2400, -1000, 2696, -1000, 2447, -1000, -1000, 49299, -1000, + -1000, 1131, 2444, -359, -1000, 2442, 2107, 2439, 2107, 49299, + 680, -1000, 2435, 2433, -1000, -1000, 5358, -125, -123, 18567, + -125, -1000, -1000, 402, 461, -1000, -1000, 2118, 666, -1000, + -1000, 2430, 683, -1000, 1276, -1000, 1885, 2050, 2380, 33939, + 26899, 27539, 2426, 467, -1000, -1000, 35859, 1637, 1637, 4479, + 459, 383, 54743, -1000, 2871, 1154, 1859, -1000, 2126, -1000, + 2124, -1000, 3518, 1368, 138, -1000, -1000, 1707, -1000, 1154, + 2522, 3490, -1000, 4012, 49299, 3109, 49299, 2868, 1854, 14052, + -1000, 858, 3291, -1000, -1000, 4092, -1000, -1000, 2048, 14052, + -1000, -1000, 2408, 27539, 1084, 1852, 1793, 1057, 2862, -1000, + 719, 3544, -1000, -1000, -1000, 1011, 2860, -1000, 2012, 2003, + -1000, 49299, -1000, 33939, 33939, 835, 835, 33939, 33939, 2859, + 863, -1000, -1000, 14052, -1000, -1000, 1775, -1000, -1000, -1000, + 1775, 1521, -1000, -1000, -1000, -1000, -1000, -1000, 2308, -1000, + -1000, 1255, -1000, 3460, -1000, -1000, 2307, 49299, 2307, -1000, + 35219, -1000, 3477, 3473, -1000, 2307, 262, 249, 2855, 2853, + -1000, -336, 49299, 49299, -224, 2122, -1000, 2406, 193, -1000, + -1000, 1244, -222, -226, 107, 26899, 1792, -1000, 2693, 374, + -137, -1000, -1000, -1000, -1000, 2685, -1000, 891, -1000, -1000, + -1000, 1240, 2684, 2680, -1000, -1000, -1000, -1000, 49299, -1000, + 2357, -305, 2405, -305, 2404, 678, 2107, -1000, -1000, -107, + -1000, -1000, 481, -1000, -1000, -1000, 641, 2369, -1000, -1000, + 433, -1000, -1000, -1000, 2306, 2402, -1000, -1000, 115, -1000, + 1791, 1682, -1000, -1000, -1000, 49299, -1000, -1000, -1000, 848, + -1000, 413, 54672, -1000, 1362, 49299, -1000, 1164, 848, 32659, + 742, 315, -1000, 2120, -1000, -1000, 3551, -1000, 732, -1000, + 665, -1000, 1675, -1000, 1670, 34579, 2117, 2990, -1000, 54510, + 984, -1000, -1000, 4172, -1000, -1000, -1000, -1000, -1000, -1000, + 2401, 2394, -1000, -1000, -1000, -1000, -1000, 2113, 2852, 69, + 3414, 2392, -1000, -1000, 2850, 1661, 1653, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1650, 1621, 33939, + -1000, -1000, 4172, 2111, 26899, 1775, -1000, -1000, 1616, 1561, + -1000, -1000, -1000, -1000, -1000, -316, 2847, 11480, 11480, -1000, + -1000, -1000, 2836, -1000, -1000, 3472, -224, -228, 2391, 186, + 238, -1000, 2382, -1000, -109, 3286, -145, -1000, -1000, 771, + -216, 154, 136, 105, -1000, -1000, -1000, 11480, -1000, -1000, + -1000, 101, -1000, 1777, -1000, -305, -1000, -305, 2107, 2381, + 49299, 717, -1000, -1000, -1000, -1000, 245, -1000, -1000, -1000, + -1000, -1000, -1000, 2380, 2377, -1000, -1000, 603, 3471, -1000, + 54743, -1000, 1775, -1000, -1000, 603, 1528, -1000, 1775, 1775, + -1000, 560, -1000, 1738, -1000, 2105, -1000, 3460, -1000, 559, + -1000, 616, -1000, -1000, -1000, 1517, -1000, -1000, -1000, 54510, + 649, -1000, 844, 2835, -1000, -1000, 2676, 11480, 2833, 1775, + 2674, -100, 33939, 3203, 3201, 3111, 2511, 1510, -1000, -1000, + 26899, -1000, -1000, 33299, -1000, 2832, 1506, 1503, 49299, 2319, + -1000, -1000, 2360, -1000, 896, 183, 238, -1000, 3470, 139, + 3469, 3466, 1239, 3284, -1000, -1000, 1921, -1000, 164, 160, + 144, -1000, -1000, -1000, -1000, -305, 2357, 2352, -1000, -1000, + 2350, -305, 598, -1000, 345, -1000, -1000, -1000, 316, -1000, + 3465, 726, -1000, 26899, -1000, -1000, 32659, 1637, 1637, -1000, + -1000, 2104, -1000, -1000, -1000, -1000, 2102, -1000, -1000, -1000, + 1502, -1000, 49299, 1060, 8259, -1000, 2237, -1000, 49299, -1000, + 3215, -1000, 318, 1494, 316, 835, 316, 835, 316, 835, + 316, 835, 328, -1000, -1000, -1000, 1459, 11480, -1000, -1000, + 1412, -1000, -1000, -1000, 2805, 2093, 203, 180, 3464, -1000, + 2319, 3463, 2319, 2319, -1000, 170, -126, 771, -1000, -1000, + -1000, -1000, -1000, -1000, -305, -1000, 2347, -1000, -1000, -1000, + -1000, 1775, 1775, 2340, 2327, 532, -1000, -1000, 1775, 1775, + 1775, -1000, 32019, 659, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 649, 54743, -1000, 8259, 1404, -1000, 2307, -1000, 863, + -1000, -1000, 3214, 3211, 3528, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2549, 2512, -1000, 49299, 3409, + 26259, 176, -1000, -1000, -1000, 2325, -1000, 2319, -1000, -1000, + 1755, -142, -1000, -1000, -274, 2092, 2083, -1000, -1000, 49299, + 2080, 2074, 2061, -1000, 49299, 636, -1000, 54743, 1338, -1000, + 8259, -1000, -1000, 3542, -1000, 3529, 1047, 1047, 316, 316, + 316, 316, 11480, -1000, -1000, -1000, 49299, -1000, 1335, -1000, + -1000, -1000, 1547, -1000, -1000, -1000, -1000, 2317, -148, -1000, + -1000, 2314, -1000, -1000, -1000, -1000, -1000, -1000, 1322, 2522, + -1000, -1000, -1000, -1000, -1000, 2110, 724, -1000, 2495, 1180, + -1000, 1742, -1000, 31379, 49299, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 49299, 7616, -1000, 1512, -1000, -1000, + 2307, 49299, -1000, } var yyPgo = [...]int{ - 0, 175, 3623, 250, 181, 4297, 79, 268, 331, 277, - 259, 258, 4296, 4294, 4293, 3358, 3353, 4292, 4291, 4290, - 4289, 4288, 4287, 4285, 4284, 4283, 4282, 4280, 4275, 4274, - 4273, 4272, 4271, 4268, 4267, 4265, 4264, 4262, 4261, 4257, - 4254, 4253, 4252, 4251, 4250, 4248, 4246, 252, 4245, 4243, - 4242, 4241, 4240, 4238, 4237, 4234, 4231, 4230, 4229, 4228, - 4227, 4226, 4225, 4224, 4216, 4214, 4213, 4211, 4210, 4209, - 4208, 4207, 4206, 4205, 4204, 4203, 4202, 4200, 4199, 4198, - 4197, 4196, 4195, 4194, 4193, 245, 4192, 3347, 4191, 4190, - 4189, 4187, 4186, 4185, 4183, 4182, 4181, 4180, 4179, 262, - 4177, 4176, 4175, 4174, 4173, 4167, 4161, 4159, 4157, 4156, - 4153, 4145, 4144, 253, 4139, 4138, 4137, 4136, 230, 4134, - 221, 4132, 179, 142, 4126, 4125, 4123, 4122, 4121, 4120, - 4119, 4118, 4117, 4116, 4114, 4113, 4112, 4111, 247, 197, - 69, 4110, 47, 4109, 4104, 229, 4103, 158, 4102, 156, - 4101, 4100, 4099, 4098, 4095, 4092, 4091, 4089, 4087, 4086, - 4085, 4084, 4078, 4076, 4075, 4074, 4073, 4072, 4071, 4070, - 4069, 4067, 4063, 4061, 48, 4060, 267, 4059, 77, 4058, - 184, 4057, 75, 4056, 56, 132, 260, 2973, 265, 4055, - 198, 4054, 4053, 255, 177, 4048, 4047, 274, 4046, 191, - 240, 166, 94, 118, 4042, 145, 4032, 273, 49, 50, - 251, 149, 4031, 4030, 52, 163, 129, 4029, 219, 102, - 110, 4028, 4026, 146, 4024, 246, 185, 4023, 105, 4022, - 4021, 4018, 23, 4017, 4016, 204, 200, 4015, 4014, 104, - 4010, 4008, 113, 165, 4007, 80, 125, 173, 120, 4006, - 123, 122, 99, 4004, 124, 106, 3999, 74, 3998, 3993, - 3992, 3989, 193, 3987, 3985, 140, 61, 3984, 3983, 3981, - 67, 3980, 82, 3978, 87, 3974, 55, 3972, 3971, 3970, - 3969, 3968, 3966, 3964, 3962, 3961, 3948, 3946, 3944, 58, - 3941, 3939, 3938, 3937, 7, 12, 14, 3936, 28, 3935, - 174, 3932, 3930, 171, 3929, 201, 3927, 3925, 101, 92, - 3924, 93, 167, 3923, 10, 29, 70, 3922, 3921, 3919, - 141, 3917, 3914, 3913, 288, 3910, 3909, 3908, 164, 3907, - 3906, 3905, 657, 3904, 3903, 3902, 3901, 3900, 3892, 147, - 3891, 3, 224, 39, 3890, 131, 137, 3889, 37, 30, - 3888, 44, 119, 205, 135, 103, 3885, 3883, 3881, 276, - 222, 97, 81, 0, 98, 231, 162, 3880, 3878, 3876, - 256, 3871, 242, 215, 243, 208, 264, 178, 3869, 3868, - 60, 3867, 168, 31, 57, 136, 441, 22, 206, 3866, - 1747, 9, 214, 3864, 209, 3863, 8, 19, 144, 157, - 3861, 3860, 34, 263, 3859, 3858, 3857, 126, 3856, 3853, - 337, 54, 3852, 3850, 3847, 3846, 3845, 41, 3844, 186, - 17, 3843, 138, 3841, 254, 3840, 212, 143, 192, 183, - 159, 232, 238, 84, 78, 3839, 1909, 160, 114, 15, - 3838, 235, 3837, 187, 133, 3836, 89, 3835, 249, 269, - 213, 3833, 196, 11, 45, 38, 32, 43, 13, 292, - 211, 3831, 3830, 24, 51, 3826, 53, 3825, 21, 3821, - 3820, 42, 3819, 68, 1, 3818, 3816, 18, 20, 3815, - 36, 226, 176, 130, 96, 62, 3814, 3813, 150, 190, - 3811, 152, 155, 161, 3809, 83, 3808, 3796, 3795, 3794, - 1632, 261, 3791, 3790, 3789, 3788, 3775, 3774, 3773, 3771, - 220, 3757, 112, 40, 3756, 3755, 3754, 3753, 90, 154, - 3738, 3735, 3734, 3733, 33, 148, 3732, 16, 3730, 27, - 25, 35, 3729, 107, 3728, 2, 195, 3720, 3718, 5, - 3717, 3714, 4, 3712, 3711, 134, 3709, 100, 26, 172, - 111, 3707, 3704, 91, 216, 151, 3703, 3702, 108, 248, - 207, 3700, 95, 241, 266, 3699, 217, 3697, 3696, 3695, - 3692, 3690, 1260, 3689, 3688, 244, 64, 85, 3686, 237, - 116, 3683, 3682, 88, 169, 121, 117, 59, 86, 3681, - 115, 218, 3680, 203, 3679, 257, 3677, 3676, 109, 3675, - 3673, 3672, 3669, 210, 3668, 3665, 202, 236, 3659, 3658, - 275, 3655, 3654, 3653, 3651, 3650, 3647, 3644, 3630, 3629, - 3628, 272, 338, 3627, + 0, 181, 3579, 250, 185, 4183, 87, 252, 333, 311, + 248, 244, 4182, 4181, 4180, 3347, 3343, 4179, 4178, 4177, + 4174, 4173, 4172, 4171, 4170, 4169, 4168, 4166, 4165, 4151, + 4149, 4148, 4147, 4146, 4145, 4144, 4143, 4141, 4138, 4135, + 4132, 4131, 4130, 4123, 4121, 4120, 4119, 242, 4118, 4117, + 4116, 4114, 4113, 4112, 4111, 4110, 4109, 4108, 4107, 4102, + 4101, 4100, 4098, 4097, 4094, 4093, 4092, 4090, 4087, 4086, + 4084, 4083, 4082, 4081, 4077, 4075, 4074, 4073, 4072, 4071, + 4070, 4069, 4068, 4067, 4066, 245, 4061, 3323, 4059, 4058, + 4057, 4056, 4055, 4054, 4053, 4052, 4051, 4050, 4045, 253, + 4043, 4042, 4040, 4031, 4030, 4029, 4028, 4027, 4026, 4025, + 4022, 4021, 4020, 286, 4017, 4016, 4015, 4014, 218, 4013, + 262, 4008, 183, 121, 4007, 4006, 4005, 4002, 4001, 3998, + 3997, 3995, 3994, 3993, 3991, 3990, 3986, 3984, 236, 203, + 74, 3983, 51, 3981, 3979, 220, 3977, 154, 3975, 151, + 3973, 3972, 3971, 3970, 3969, 3968, 3964, 3963, 3953, 3952, + 3951, 3948, 3946, 3945, 3943, 3942, 3940, 3938, 3937, 3936, + 3935, 3934, 3929, 3928, 56, 3927, 258, 3925, 79, 3924, + 180, 3923, 68, 3921, 83, 120, 257, 2168, 265, 3919, + 197, 3918, 3916, 251, 188, 3915, 3913, 274, 3912, 164, + 230, 157, 108, 114, 3909, 133, 3908, 264, 48, 50, + 240, 150, 3907, 3906, 58, 162, 129, 3905, 214, 115, + 112, 3904, 3899, 145, 3898, 238, 187, 3897, 107, 3895, + 3894, 3891, 24, 3890, 3889, 202, 200, 3887, 3886, 99, + 3883, 3882, 69, 131, 3880, 82, 125, 177, 124, 3879, + 103, 119, 98, 3876, 113, 104, 3875, 81, 3874, 3868, + 3867, 3866, 194, 3865, 3863, 149, 64, 3860, 3859, 3858, + 67, 3857, 77, 3856, 40, 3855, 55, 3851, 3849, 3846, + 3845, 3844, 3842, 3840, 3839, 3838, 3837, 3836, 3835, 57, + 3834, 3832, 3831, 3829, 7, 12, 15, 3824, 29, 3822, + 179, 3820, 3819, 175, 3818, 196, 3817, 3815, 100, 93, + 3814, 94, 172, 3811, 10, 30, 75, 3809, 3808, 3807, + 419, 3806, 3805, 3804, 273, 3803, 3802, 3801, 160, 3800, + 3798, 3797, 1665, 3796, 3795, 3794, 3793, 3790, 3789, 147, + 3788, 1, 219, 42, 3787, 132, 137, 3786, 39, 34, + 3785, 44, 117, 213, 135, 101, 3783, 3782, 3781, 276, + 201, 97, 27, 0, 109, 221, 159, 3780, 3779, 3778, + 269, 3776, 235, 205, 233, 348, 279, 182, 3774, 3772, + 60, 3769, 166, 31, 53, 136, 352, 22, 259, 3768, + 1747, 9, 217, 3766, 208, 3765, 8, 18, 144, 156, + 3764, 3763, 36, 266, 3761, 3760, 3759, 140, 3758, 3757, + 288, 84, 3756, 3755, 3751, 3750, 3749, 47, 3747, 190, + 16, 3744, 128, 3734, 246, 3733, 255, 141, 191, 189, + 173, 226, 231, 85, 78, 3732, 1839, 158, 102, 17, + 3731, 224, 3729, 232, 152, 3728, 92, 3727, 247, 260, + 209, 3724, 192, 11, 49, 38, 32, 45, 13, 354, + 204, 3723, 3722, 26, 52, 3721, 54, 3720, 20, 3717, + 3716, 41, 3715, 59, 5, 3714, 3713, 19, 23, 3711, + 37, 207, 178, 126, 95, 62, 3710, 3708, 161, 146, + 3707, 167, 163, 165, 3706, 80, 3705, 3704, 3703, 3702, + 2077, 254, 3698, 3696, 3695, 3694, 3693, 3691, 3690, 3689, + 216, 3688, 105, 43, 3687, 3685, 3684, 3683, 90, 148, + 3682, 3681, 3680, 3679, 33, 142, 3677, 14, 3676, 25, + 21, 35, 3675, 106, 3674, 3, 193, 3672, 3671, 4, + 3667, 3665, 2, 3664, 3663, 116, 3662, 96, 28, 176, + 110, 3659, 3658, 91, 215, 143, 3657, 3655, 118, 237, + 206, 3654, 122, 249, 256, 3653, 212, 3652, 3647, 3645, + 3643, 3641, 1291, 3640, 3639, 241, 70, 86, 3638, 222, + 134, 3637, 3634, 89, 171, 138, 130, 61, 88, 3633, + 123, 211, 3632, 198, 3631, 263, 3629, 3628, 111, 3627, + 3625, 3624, 3622, 210, 3621, 3617, 195, 229, 3615, 3603, + 267, 3602, 3598, 3597, 3595, 3593, 3591, 3589, 3588, 3577, + 3567, 243, 371, 3563, } -//line mysql_sql.y:13046 +//line mysql_sql.y:13037 type yySymType struct { union interface{} id int @@ -8931,80 +8946,80 @@ var yyR1 = [...]int{ 592, 592, 591, 591, 591, 362, 362, 32, 422, 422, 424, 425, 425, 425, 416, 416, 416, 416, 36, 420, 420, 421, 421, 421, 421, 421, 421, 421, 421, 421, - 421, 421, 421, 417, 417, 419, 419, 414, 414, 414, - 414, 414, 414, 414, 414, 35, 35, 35, 180, 180, - 413, 413, 410, 410, 232, 232, 408, 408, 409, 409, - 407, 407, 407, 411, 411, 43, 78, 44, 45, 46, - 42, 412, 412, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 141, 140, 140, 140, 140, - 140, 143, 143, 346, 346, 345, 345, 142, 286, 286, - 41, 264, 264, 487, 487, 482, 482, 482, 482, 482, - 502, 502, 502, 483, 483, 483, 484, 484, 484, 486, - 486, 486, 485, 485, 485, 485, 485, 501, 501, 503, - 503, 503, 454, 454, 455, 455, 455, 458, 458, 474, - 474, 475, 475, 473, 473, 480, 480, 479, 479, 478, - 478, 477, 477, 476, 476, 476, 476, 469, 469, 468, - 468, 456, 456, 456, 456, 456, 457, 457, 457, 467, - 467, 472, 472, 317, 317, 316, 316, 272, 272, 273, - 273, 315, 315, 270, 270, 271, 271, 271, 314, 314, + 421, 421, 417, 417, 419, 419, 414, 414, 414, 414, + 414, 414, 414, 414, 35, 35, 35, 180, 180, 413, + 413, 410, 410, 232, 232, 408, 408, 409, 409, 407, + 407, 407, 411, 411, 43, 78, 44, 45, 46, 42, + 412, 412, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 141, 140, 140, 140, 140, 140, + 143, 143, 346, 346, 345, 345, 142, 286, 286, 41, + 264, 264, 487, 487, 482, 482, 482, 482, 482, 502, + 502, 502, 483, 483, 483, 484, 484, 484, 486, 486, + 486, 485, 485, 485, 485, 485, 501, 501, 503, 503, + 503, 454, 454, 455, 455, 455, 458, 458, 474, 474, + 475, 475, 473, 473, 480, 480, 479, 479, 478, 478, + 477, 477, 476, 476, 476, 476, 469, 469, 468, 468, + 456, 456, 456, 456, 456, 457, 457, 457, 467, 467, + 472, 472, 317, 317, 316, 316, 272, 272, 273, 273, + 315, 315, 270, 270, 271, 271, 271, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 552, 552, 553, 275, 275, 287, 287, - 287, 287, 287, 287, 274, 274, 276, 276, 252, 252, - 250, 250, 242, 242, 242, 242, 242, 242, 243, 243, - 244, 244, 245, 245, 245, 249, 249, 248, 248, 248, - 248, 246, 246, 247, 247, 247, 247, 247, 247, 440, - 440, 549, 549, 550, 550, 545, 545, 545, 548, 548, - 548, 548, 548, 548, 548, 548, 551, 551, 551, 547, - 547, 254, 340, 340, 340, 363, 363, 363, 363, 365, - 339, 339, 339, 269, 269, 268, 268, 266, 266, 266, + 314, 314, 552, 552, 553, 275, 275, 287, 287, 287, + 287, 287, 287, 274, 274, 276, 276, 252, 252, 250, + 250, 242, 242, 242, 242, 242, 242, 243, 243, 244, + 244, 245, 245, 245, 249, 249, 248, 248, 248, 248, + 246, 246, 247, 247, 247, 247, 247, 247, 440, 440, + 549, 549, 550, 550, 545, 545, 545, 548, 548, 548, + 548, 548, 548, 548, 548, 551, 551, 551, 547, 547, + 254, 340, 340, 340, 363, 363, 363, 363, 365, 339, + 339, 339, 269, 269, 268, 268, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, 266, 439, - 439, 379, 379, 380, 380, 298, 297, 297, 297, 297, - 297, 295, 296, 294, 294, 294, 294, 294, 291, 291, - 290, 290, 290, 292, 292, 292, 292, 292, 418, 418, - 288, 288, 278, 278, 278, 277, 277, 277, 481, 386, + 266, 266, 266, 266, 266, 266, 266, 266, 439, 439, + 379, 379, 380, 380, 298, 297, 297, 297, 297, 297, + 295, 296, 294, 294, 294, 294, 294, 291, 291, 290, + 290, 290, 292, 292, 292, 292, 292, 418, 418, 288, + 288, 278, 278, 278, 277, 277, 277, 481, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, - 386, 386, 388, 388, 388, 388, 388, 388, 388, 388, + 386, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, 388, 293, - 337, 337, 337, 338, 338, 338, 338, 338, 338, 338, - 338, 389, 389, 395, 395, 561, 561, 560, 255, 255, - 255, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 265, 265, 265, 463, 463, 463, 463, 464, 464, 464, - 464, 465, 465, 465, 461, 461, 462, 462, 400, 401, - 401, 508, 508, 509, 509, 459, 459, 460, 336, 336, + 388, 388, 388, 388, 388, 388, 388, 388, 293, 337, + 337, 337, 338, 338, 338, 338, 338, 338, 338, 338, + 389, 389, 395, 395, 561, 561, 560, 255, 255, 255, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 265, + 265, 265, 463, 463, 463, 463, 464, 464, 464, 464, + 465, 465, 465, 461, 461, 462, 462, 400, 401, 401, + 508, 508, 509, 509, 459, 459, 460, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 516, 516, 516, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 571, 571, 571, 557, 557, 557, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 558, 558, 558, 559, 559, + 516, 516, 516, 333, 333, 333, 333, 333, 333, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 571, + 571, 571, 557, 557, 557, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 335, 335, 335, 334, 334, + 559, 559, 559, 559, 335, 335, 335, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, - 334, 334, 334, 334, 334, 334, 402, 402, 403, 403, - 513, 513, 513, 513, 513, 513, 514, 514, 515, 515, - 515, 515, 507, 507, 507, 507, 507, 507, 507, 507, + 334, 334, 334, 334, 334, 402, 402, 403, 403, 513, + 513, 513, 513, 513, 513, 514, 514, 515, 515, 515, + 515, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, - 507, 507, 387, 332, 332, 332, 404, 396, 396, 397, - 397, 398, 398, 390, 390, 390, 390, 390, 390, 391, - 391, 393, 393, 393, 393, 393, 393, 393, 393, 393, - 393, 393, 385, 385, 385, 385, 385, 385, 385, 385, - 385, 385, 385, 392, 392, 394, 394, 406, 406, 406, - 405, 405, 405, 405, 405, 405, 405, 267, 267, 267, - 267, 384, 384, 384, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 257, 257, 257, 257, - 261, 261, 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 262, 262, 262, 262, - 262, 260, 260, 260, 260, 260, 258, 258, 258, 258, + 507, 387, 332, 332, 332, 404, 396, 396, 397, 397, + 398, 398, 390, 390, 390, 390, 390, 390, 391, 391, + 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, + 393, 385, 385, 385, 385, 385, 385, 385, 385, 385, + 385, 385, 392, 392, 394, 394, 406, 406, 406, 405, + 405, 405, 405, 405, 405, 405, 267, 267, 267, 267, + 384, 384, 384, 383, 383, 383, 383, 383, 383, 383, + 383, 383, 383, 383, 383, 257, 257, 257, 257, 261, + 261, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 262, 262, 262, 262, 262, + 260, 260, 260, 260, 260, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 121, 122, 122, 259, 342, - 342, 488, 488, 491, 491, 489, 489, 490, 492, 492, - 492, 493, 493, 493, 494, 494, 494, 498, 498, 351, - 351, 351, 359, 359, 358, 358, 358, 358, 358, 358, + 258, 258, 258, 258, 121, 122, 122, 259, 342, 342, + 488, 488, 491, 491, 489, 489, 490, 492, 492, 492, + 493, 493, 493, 494, 494, 494, 498, 498, 351, 351, + 351, 359, 359, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, @@ -9040,13 +9055,13 @@ var yyR1 = [...]int{ 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, - 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, - 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, - 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 358, 358, 358, 358, 358, 358, 358, 358, 357, 357, + 357, 357, 357, 357, 357, 357, 357, 357, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 356, 356, 356, 356, 356, } var yyR2 = [...]int{ @@ -9166,81 +9181,80 @@ var yyR2 = [...]int{ 0, 1, 3, 4, 3, 1, 1, 4, 1, 3, 1, 1, 1, 1, 0, 1, 1, 1, 11, 0, 2, 3, 3, 2, 2, 3, 1, 1, 3, 3, - 3, 3, 1, 1, 3, 3, 4, 0, 2, 2, - 2, 2, 2, 2, 2, 6, 7, 10, 0, 4, - 1, 1, 0, 3, 0, 1, 0, 1, 1, 2, - 4, 4, 4, 0, 1, 8, 2, 4, 4, 4, - 9, 0, 2, 11, 9, 11, 8, 6, 9, 7, - 10, 7, 6, 7, 10, 2, 2, 9, 4, 5, - 3, 0, 4, 1, 3, 0, 3, 6, 0, 2, - 10, 0, 2, 0, 2, 0, 3, 2, 4, 3, - 0, 2, 1, 0, 2, 3, 0, 2, 3, 0, - 2, 1, 0, 3, 2, 4, 3, 0, 1, 0, - 1, 1, 0, 6, 0, 3, 5, 0, 4, 0, - 3, 1, 3, 4, 5, 0, 3, 1, 3, 2, - 3, 1, 2, 0, 4, 6, 5, 0, 2, 0, - 2, 4, 5, 4, 5, 1, 5, 6, 5, 0, - 3, 0, 1, 1, 3, 3, 3, 0, 4, 1, - 3, 3, 3, 0, 1, 1, 3, 2, 3, 3, - 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, + 3, 1, 1, 3, 3, 4, 0, 2, 2, 2, + 2, 2, 2, 2, 6, 7, 10, 0, 4, 1, + 1, 0, 3, 0, 1, 0, 1, 1, 2, 4, + 4, 4, 0, 1, 8, 2, 4, 4, 4, 9, + 0, 2, 11, 9, 11, 8, 6, 9, 7, 10, + 7, 6, 7, 10, 2, 2, 9, 4, 5, 3, + 0, 4, 1, 3, 0, 3, 6, 0, 2, 10, + 0, 2, 0, 2, 0, 3, 2, 4, 3, 0, + 2, 1, 0, 2, 3, 0, 2, 3, 0, 2, + 1, 0, 3, 2, 4, 3, 0, 1, 0, 1, + 1, 0, 6, 0, 3, 5, 0, 4, 0, 3, + 1, 3, 4, 5, 0, 3, 1, 3, 2, 3, + 1, 2, 0, 4, 6, 5, 0, 2, 0, 2, + 4, 5, 4, 5, 1, 5, 6, 5, 0, 3, + 0, 1, 1, 3, 3, 3, 0, 4, 1, 3, + 3, 3, 0, 1, 1, 3, 2, 3, 3, 3, + 4, 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 1, 5, 4, 1, 3, 3, 2, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 2, 4, 0, 5, 5, 5, 5, 6, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 7, 9, 7, - 9, 2, 1, 7, 9, 7, 9, 8, 5, 0, - 1, 0, 1, 1, 1, 1, 3, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 3, 1, 3, 5, 1, 1, 1, 1, 1, - 1, 3, 5, 0, 1, 1, 2, 1, 2, 2, - 1, 1, 2, 2, 2, 3, 3, 2, 2, 1, - 5, 6, 4, 1, 1, 1, 5, 4, 1, 1, - 2, 0, 1, 1, 2, 5, 0, 1, 1, 2, - 2, 3, 3, 1, 1, 2, 2, 2, 0, 1, - 2, 2, 2, 0, 4, 7, 3, 3, 0, 3, - 0, 3, 1, 1, 1, 1, 1, 1, 1, 3, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 5, 4, 1, 3, 3, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 4, 0, 5, 5, 5, 5, 6, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 7, 9, 7, 9, + 2, 1, 7, 9, 7, 9, 8, 5, 0, 1, + 0, 1, 1, 1, 1, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 3, 1, 3, 5, 1, 1, 1, 1, 1, 1, + 3, 5, 0, 1, 1, 2, 1, 2, 2, 1, + 1, 2, 2, 2, 3, 3, 2, 2, 1, 5, + 6, 4, 1, 1, 1, 5, 4, 1, 1, 2, + 0, 1, 1, 2, 5, 0, 1, 1, 2, 2, + 3, 3, 1, 1, 2, 2, 2, 0, 1, 2, + 2, 2, 0, 4, 7, 3, 3, 0, 3, 0, + 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 1, 1, 1, 1, 3, 5, 2, 2, 2, - 2, 4, 1, 1, 2, 5, 6, 8, 6, 6, - 6, 1, 1, 1, 1, 1, 1, 3, 9, 1, - 4, 4, 4, 7, 9, 7, 7, 7, 9, 7, - 7, 0, 2, 0, 1, 1, 2, 4, 1, 2, - 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, - 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 2, 5, 0, 1, 3, 0, - 1, 0, 2, 0, 2, 0, 1, 6, 8, 8, - 6, 6, 5, 5, 5, 6, 6, 6, 6, 5, + 1, 1, 1, 1, 3, 5, 2, 2, 2, 2, + 4, 1, 1, 2, 5, 6, 8, 6, 6, 6, + 1, 1, 1, 1, 1, 1, 3, 9, 1, 4, + 4, 4, 7, 9, 7, 7, 7, 9, 7, 7, + 0, 2, 0, 1, 1, 2, 4, 1, 2, 2, + 1, 2, 2, 1, 2, 2, 2, 2, 2, 0, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 2, 5, 0, 1, 3, 0, 1, + 0, 2, 0, 2, 0, 1, 6, 8, 8, 6, + 6, 5, 5, 5, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 1, 1, 1, 4, 4, 6, 8, 6, 4, - 5, 4, 4, 4, 3, 4, 6, 6, 7, 4, + 1, 1, 1, 4, 4, 6, 8, 6, 4, 5, + 4, 4, 4, 3, 4, 6, 6, 7, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 8, 4, 2, - 3, 2, 4, 2, 2, 4, 6, 2, 2, 4, - 6, 4, 2, 4, 4, 4, 0, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, + 1, 1, 1, 1, 2, 2, 8, 4, 2, 3, + 2, 4, 2, 2, 4, 6, 2, 2, 4, 6, + 4, 2, 4, 4, 4, 0, 1, 2, 3, 1, + 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, - 3, 1, 3, 3, 3, 3, 3, 2, 1, 1, - 1, 3, 4, 3, 4, 3, 4, 3, 4, 3, - 4, 1, 3, 4, 4, 5, 4, 5, 3, 4, - 5, 6, 1, 0, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, + 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, + 1, 3, 3, 3, 3, 3, 2, 1, 1, 1, + 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, + 1, 3, 4, 4, 5, 4, 5, 3, 4, 5, + 6, 1, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 2, 3, 1, 1, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 4, 4, 1, 2, 3, 5, 1, 1, - 3, 0, 1, 0, 3, 0, 3, 3, 0, 3, - 5, 0, 3, 5, 0, 1, 1, 0, 1, 1, - 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 2, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 4, 4, 1, 2, 3, 5, 1, 1, 3, + 0, 1, 0, 3, 0, 3, 3, 0, 3, 5, + 0, 3, 5, 0, 1, 1, 0, 1, 1, 2, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -9282,424 +9296,425 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, } var yyChk = [...]int{ - -1000, -616, -619, -2, -5, 639, -1, -4, -122, -91, + -1000, -616, -619, -2, -5, 638, -1, -4, -122, -91, -7, -14, -124, -125, -8, -120, -9, -10, -12, -98, -115, -117, -119, -118, -47, -11, -114, -85, -86, -100, -108, -111, -112, -113, -126, -121, -123, -184, -127, -128, - -129, -171, -132, -134, -135, 629, -92, -93, -94, -95, + -129, -171, -132, -134, -135, 628, -92, -93, -94, -95, -96, -97, -33, -32, -31, -30, -157, -162, -165, -167, - -130, 562, 635, 465, 14, 514, -15, -16, -562, -17, + -130, 561, 634, 464, 14, 513, -15, -16, -562, -17, 267, -367, -368, -369, -371, -620, -48, -49, -50, -60, -61, -62, -63, -64, -74, -75, -76, -51, -52, -53, -56, -54, -67, -66, -68, -69, -70, -71, -72, -73, -55, -59, -160, -161, -77, -57, -78, -58, -169, -172, -131, -79, -80, -81, -83, -82, -88, -84, -89, -159, -164, -13, -170, -90, 241, -87, 77, -101, -102, -103, - -104, -105, -106, -107, -109, -110, 389, 395, 452, 628, - 62, -185, -187, 658, 659, 662, 549, 552, 163, 164, + -104, -105, -106, -107, -109, -110, 388, 394, 451, 627, + 62, -185, -187, 657, 658, 661, 548, 551, 163, 164, 166, 167, 171, 174, -34, -35, -36, -37, -38, -39, - -41, -40, -42, -43, -44, -45, -46, 237, 16, 557, + -41, -40, -42, -43, -44, -45, -46, 237, 16, 556, -18, -21, -19, -22, -20, -28, -29, -27, -24, -26, -158, -25, -163, -23, -166, -168, -133, 262, 261, 39, - 328, 329, 330, 393, 260, 238, 240, 15, 32, 43, - 368, -186, 86, 550, 239, -188, 13, 664, -6, -3, + 328, 329, 330, 392, 260, 238, 240, 15, 32, 43, + 367, -186, 86, 549, 239, -188, 13, 663, -6, -3, -2, -144, -148, -152, -155, -156, -153, -154, -4, -122, - 121, 252, 630, -363, 385, 631, 633, 632, 89, 97, - -356, -358, 465, 267, 389, 395, 628, 659, 662, 549, - 552, 564, 565, 566, 567, 568, 569, 570, 571, 573, - 574, 575, 576, 577, 578, 579, 589, 590, 580, 581, - 582, 583, 584, 585, 586, 587, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 517, 614, 615, 616, 617, 545, 572, 608, 609, 610, - 611, 366, 367, 554, 279, 303, 420, 309, 316, 364, - 163, 183, 177, 206, 197, 550, 172, 283, 321, 284, - 96, 166, 500, 111, 477, 449, 169, 298, 300, 302, - 546, 547, 379, 305, 544, 304, 306, 308, 548, 285, - 369, 193, 188, 297, 281, 186, 286, 41, 287, 361, - 360, 211, 288, 289, 559, 473, 365, 479, 313, 53, - 447, 187, 474, 301, 476, 215, 219, 491, 351, 492, - 181, 182, 481, 494, 210, 213, 214, 259, 357, 358, - 44, 556, 271, 495, 217, 654, 209, 204, 503, 317, + 121, 252, 629, -363, 384, 630, 632, 631, 89, 97, + -356, -358, 464, 267, 388, 394, 627, 658, 661, 548, + 551, 563, 564, 565, 566, 567, 568, 569, 570, 572, + 573, 574, 575, 576, 577, 578, 588, 589, 579, 580, + 581, 582, 583, 584, 585, 586, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 516, 613, 614, 615, 616, 544, 571, 607, 608, 609, + 610, 365, 366, 553, 279, 303, 419, 309, 316, 363, + 163, 183, 177, 206, 197, 549, 172, 283, 321, 284, + 96, 166, 499, 111, 476, 448, 169, 298, 300, 302, + 545, 546, 378, 305, 543, 304, 306, 308, 547, 285, + 368, 193, 188, 297, 281, 186, 286, 41, 287, 361, + 360, 211, 288, 289, 558, 472, 364, 478, 313, 53, + 446, 187, 473, 301, 475, 215, 219, 490, 351, 491, + 181, 182, 480, 493, 210, 213, 214, 259, 357, 358, + 44, 555, 271, 494, 217, 653, 209, 204, 502, 317, 315, 362, 208, 180, 203, 282, 66, 221, 220, 222, - 443, 444, 445, 446, 290, 291, 383, 490, 200, 189, - 370, 173, 23, 498, 266, 478, 396, 292, 310, 318, - 216, 218, 273, 278, 333, 558, 451, 363, 277, 314, - 496, 185, 270, 299, 265, 499, 655, 174, 398, 293, - 167, 307, 493, 657, 502, 65, 411, 179, 170, 646, - 647, 256, 164, 275, 280, 656, 294, 295, 296, 543, - 320, 319, 311, 171, 551, 201, 272, 207, 191, 178, - 202, 165, 274, 501, 412, 626, 368, 430, 199, 196, - 276, 249, 497, 480, 168, 434, 413, 194, 322, 621, - 622, 623, 384, 356, 323, 324, 192, 263, 471, 472, - 327, 440, 346, 414, 450, 421, 415, 228, 229, 331, - 483, 485, 212, 624, 335, 336, 337, 475, 338, 339, - 340, 341, 388, 57, 59, 98, 101, 100, 660, 661, - 64, 30, 374, 377, 409, 416, 348, 627, 555, 345, - 349, 350, 378, 26, 432, 400, 436, 435, 49, 50, - 51, 54, 55, 56, 58, 60, 61, 52, 542, 393, - 406, 504, 46, 48, 403, 28, 380, 431, 453, 344, - 433, 464, 47, 462, 463, 484, 27, 382, 381, 63, - 45, 439, 441, 442, 325, 342, 391, 636, 505, 386, - 402, 405, 387, 347, 376, 407, 68, 67, 399, 637, - 394, 392, 343, 560, 561, 352, 588, 371, 448, 539, - 538, 537, 536, 535, 534, 533, 532, 328, 329, 330, - 417, 418, 419, 429, 422, 423, 424, 425, 426, 427, - 428, 467, 468, 638, 486, 488, 489, 487, 244, 663, - 372, 373, 247, 640, 641, 99, 642, 644, 643, 29, - 645, 653, 650, 651, 652, 563, 232, 648, -445, -443, - -363, 550, 628, 395, 549, 552, 389, 368, 659, 662, - 393, 267, 328, 329, 330, 465, 366, -236, -363, 663, - -197, 251, 40, -250, -363, -197, -87, -16, -15, -186, - -187, -250, 246, -372, 24, 447, -99, 448, 241, 242, - 86, 78, -363, -9, -113, -8, -120, -85, -184, 452, - -370, -363, 328, 328, -370, 246, -365, 277, 428, -363, - -500, 252, -449, -422, 278, -448, -424, -451, -425, 33, - 237, 239, 238, 562, 274, 16, 393, 248, 14, 13, - 394, 260, 26, 27, 29, 15, 395, 397, 30, 398, - 401, 402, 403, 43, 406, 407, 267, 89, 97, 92, - 285, -235, -363, -398, -390, 118, -393, -385, -386, -388, - -341, -536, -383, 86, 145, 146, 153, 119, 665, -387, - -481, 37, 121, 568, 572, 608, 515, -333, -334, -335, - -336, -337, -338, 553, -363, -537, -535, 92, 102, 104, - 108, 109, 107, 105, 157, 190, 106, 93, 158, -187, - 89, -557, 578, -357, 601, 614, 615, 616, 617, 600, - 62, -507, -515, 245, -513, 156, 195, 263, 191, 14, - 151, 440, 192, 609, 610, 611, 575, 597, 517, 579, - 589, 604, 570, 571, 573, 565, 566, 567, 569, 580, - 582, 596, -516, 592, 602, 603, 588, 612, 613, 650, - 605, 606, 607, 644, 91, 90, 595, 594, 581, 576, - 577, 583, 564, 574, 584, 585, 593, 598, 599, 377, - 111, 378, 379, 507, 369, 81, 380, 252, 447, 71, - 381, 382, 383, 384, 385, 514, 386, 72, 387, 376, - 267, 430, 388, 194, 212, 519, 518, 520, 511, 508, - 506, 509, 510, 512, 513, 586, 587, 591, -136, -138, - 619, -610, -324, -611, 6, 7, 8, 9, -612, 158, - -601, 449, 558, 92, 321, 366, 17, 507, 649, 548, - 649, 548, 168, 165, -436, 168, 117, 174, 173, 250, - 168, -436, -363, 171, 649, 170, 646, 331, -412, -175, - 366, 430, 338, 98, 277, -416, -413, 546, -501, 325, - 321, 297, 247, 114, -176, 257, 256, 112, 507, 245, - 404, 316, 57, 59, -572, -573, 234, 235, 236, -564, - 540, -563, -363, 649, 654, 379, 100, 101, 646, 647, - 28, 246, 390, 273, 485, 483, 484, 486, 487, 488, - 489, -65, -517, -499, 480, 479, -376, 472, 478, 470, - 482, 473, 367, 340, 562, 339, 237, 640, 547, 541, - -351, 414, 450, 504, 505, 391, 451, 491, 493, 474, - 111, 198, 195, 247, 249, 246, 646, 366, 507, 430, - 98, 338, 246, -572, 654, 165, 491, 493, 449, 277, - 428, 42, -442, 440, -441, -443, 492, 503, 90, 91, - 490, -351, 111, 471, 471, -610, -324, -185, -187, -123, - -562, 548, 649, 247, 366, 430, 277, 248, 246, 543, - 546, 249, 507, 245, 328, 390, 273, 338, 98, 170, - 646, -191, -192, -193, 230, 231, 232, 70, 235, 233, - 67, 33, 34, 35, -1, 125, 664, -390, -390, -6, - 667, -6, -390, -363, -363, 160, -257, -261, -258, -260, - -259, -263, -262, 195, 196, 156, 199, 205, 201, 202, - 203, 204, 206, 207, 208, 209, 210, 213, 214, 211, - 32, 212, 263, 191, 192, 193, 194, 215, 177, 197, - 555, 223, 178, 224, 179, 225, 180, 226, 181, 182, - 227, 183, 186, 187, 188, 189, 185, 159, -224, 92, - 33, 86, 159, 92, -216, 269, -197, -250, -242, 159, - 665, -216, -610, -207, -208, 11, -250, -339, -363, 449, - 128, -99, 78, -99, 448, 78, -99, 448, 241, -565, - -566, -567, -569, 241, 448, 447, 242, -118, 159, 285, - 17, -370, -370, 84, -250, -424, 277, -449, -422, 37, - 83, 160, 250, 160, 83, 86, 391, 366, 430, 392, - 507, 246, 404, 249, 277, 405, 366, 430, 246, 249, - 507, 277, 366, 246, 249, 430, 277, 405, 366, 470, - 471, 249, 28, 396, 399, 400, 471, -521, 503, 160, - 117, 114, 115, 116, -390, 135, -405, 128, 129, 130, - 131, 132, 133, 134, 142, 141, 152, 145, 146, 147, - 148, 149, 150, 151, 143, 144, 138, 118, 136, 140, - 137, 120, 155, -187, -390, -398, 62, -388, -388, -388, - -388, -363, -481, -395, -390, 86, 86, 86, 86, 86, - 159, 105, 92, -390, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, -514, 86, 86, -402, - -403, 86, 86, -383, -339, 86, 92, 92, 86, 86, - 86, 92, 86, 86, 86, -403, -403, 86, 86, 86, + 442, 443, 444, 445, 290, 291, 382, 489, 200, 189, + 369, 173, 23, 497, 266, 477, 395, 292, 310, 318, + 216, 218, 273, 278, 333, 557, 450, 277, 314, 495, + 185, 270, 299, 265, 498, 654, 174, 397, 293, 167, + 307, 492, 656, 501, 65, 410, 179, 170, 645, 646, + 256, 164, 275, 280, 655, 294, 295, 296, 542, 320, + 319, 311, 171, 550, 201, 272, 207, 191, 178, 202, + 165, 274, 500, 411, 625, 367, 429, 199, 196, 276, + 249, 496, 479, 168, 433, 412, 194, 322, 620, 621, + 622, 383, 356, 323, 324, 192, 263, 470, 471, 327, + 439, 346, 413, 449, 420, 414, 228, 229, 331, 482, + 484, 212, 623, 335, 336, 337, 474, 338, 339, 340, + 341, 387, 57, 59, 98, 101, 100, 659, 660, 64, + 30, 373, 376, 408, 415, 348, 626, 554, 345, 349, + 350, 377, 26, 431, 399, 435, 434, 49, 50, 51, + 54, 55, 56, 58, 60, 61, 52, 541, 392, 405, + 503, 46, 48, 402, 28, 379, 430, 452, 344, 432, + 463, 47, 461, 462, 483, 27, 381, 380, 63, 45, + 438, 440, 441, 325, 342, 390, 635, 504, 385, 401, + 404, 386, 347, 375, 406, 68, 67, 398, 636, 393, + 391, 343, 559, 560, 352, 587, 370, 447, 538, 537, + 536, 535, 534, 533, 532, 531, 328, 329, 330, 416, + 417, 418, 428, 421, 422, 423, 424, 425, 426, 427, + 466, 467, 637, 485, 487, 488, 486, 244, 662, 371, + 372, 247, 639, 640, 99, 641, 643, 642, 29, 644, + 652, 649, 650, 651, 562, 232, 647, -445, -443, -363, + 549, 627, 394, 548, 551, 388, 367, 658, 661, 392, + 267, 328, 329, 330, 464, 365, -236, -363, 662, -197, + 251, 40, -250, -363, -197, -87, -16, -15, -186, -187, + -250, 246, -372, 24, 446, -99, 447, 241, 242, 86, + 78, -363, -9, -113, -8, -120, -85, -184, 451, -370, + -363, 328, 328, -370, 246, -365, 277, 427, -363, -500, + 252, -449, -422, 278, -448, -424, -451, -425, 33, 237, + 239, 238, 561, 274, 16, 392, 248, 14, 13, 393, + 260, 26, 27, 29, 15, 394, 396, 30, 397, 400, + 401, 402, 43, 405, 406, 267, 89, 97, 92, 285, + -235, -363, -398, -390, 118, -393, -385, -386, -388, -341, + -536, -383, 86, 145, 146, 153, 119, 664, -387, -481, + 37, 121, 567, 571, 607, 514, -333, -334, -335, -336, + -337, -338, 552, -363, -537, -535, 92, 102, 104, 108, + 109, 107, 105, 157, 190, 106, 93, 158, -187, 89, + -557, 577, -357, 600, 613, 614, 615, 616, 599, 62, + -507, -515, 245, -513, 156, 195, 263, 191, 14, 151, + 439, 192, 608, 609, 610, 574, 596, 516, 578, 588, + 603, 569, 570, 572, 564, 565, 566, 568, 579, 581, + 595, -516, 591, 601, 602, 587, 611, 612, 649, 604, + 605, 606, 643, 91, 90, 594, 593, 580, 575, 576, + 582, 563, 573, 583, 584, 592, 597, 598, 376, 111, + 377, 378, 506, 368, 81, 379, 252, 446, 71, 380, + 381, 382, 383, 384, 513, 385, 72, 386, 375, 267, + 429, 387, 194, 212, 518, 517, 519, 510, 507, 505, + 508, 509, 511, 512, 585, 586, 590, -136, -138, 618, + -610, -324, -611, 6, 7, 8, 9, -612, 158, -601, + 448, 557, 92, 321, 365, 17, 506, 648, 547, 648, + 547, 168, 165, -436, 168, 117, 174, 173, 250, 168, + -436, -363, 171, 648, 170, 645, 331, -412, -175, 365, + 429, 338, 98, 277, -416, -413, 545, -501, 325, 321, + 297, 247, 114, -176, 257, 256, 112, 506, 245, 403, + 316, 57, 59, -572, -573, 234, 235, 236, -564, 539, + -563, -363, 648, 653, 378, 100, 101, 645, 646, 28, + 246, 389, 273, 484, 482, 483, 485, 486, 487, 488, + -65, -517, -499, 479, 478, -376, 471, 477, 469, 481, + 472, 366, 340, 561, 339, 237, 639, 546, 540, -351, + 413, 449, 503, 504, 390, 450, 490, 492, 473, 111, + 198, 195, 247, 249, 246, 645, 365, 506, 429, 98, + 338, 246, -572, 653, 165, 490, 492, 448, 277, 427, + 42, -442, 439, -441, -443, 491, 502, 90, 91, 489, + -351, 111, 470, 470, -610, -324, -185, -187, -123, -562, + 547, 648, 247, 365, 429, 277, 248, 246, 542, 545, + 249, 506, 245, 328, 389, 273, 338, 98, 170, 645, + -191, -192, -193, 230, 231, 232, 70, 235, 233, 67, + 33, 34, 35, -1, 125, 663, -390, -390, -6, 666, + -6, -390, -363, -363, 160, -257, -261, -258, -260, -259, + -263, -262, 195, 196, 156, 199, 205, 201, 202, 203, + 204, 206, 207, 208, 209, 210, 213, 214, 211, 32, + 212, 263, 191, 192, 193, 194, 215, 177, 197, 554, + 223, 178, 224, 179, 225, 180, 226, 181, 182, 227, + 183, 186, 187, 188, 189, 185, 159, -224, 92, 33, + 86, 159, 92, -216, 269, -197, -250, -242, 159, 664, + -216, -610, -207, -208, 11, -250, -339, -363, 448, 128, + -99, 78, -99, 447, 78, -99, 447, 241, -565, -566, + -567, -569, 241, 447, 446, 242, -118, 159, 285, 17, + -370, -370, 84, -250, -424, 277, -449, -422, 37, 83, + 160, 250, 160, 83, 86, 390, 365, 429, 391, 506, + 246, 403, 249, 277, 404, 365, 429, 246, 249, 506, + 277, 365, 246, 249, 429, 277, 404, 365, 469, 470, + 249, 28, 395, 398, 399, 470, -521, 502, 160, 117, + 114, 115, 116, -390, 135, -405, 128, 129, 130, 131, + 132, 133, 134, 142, 141, 152, 145, 146, 147, 148, + 149, 150, 151, 143, 144, 138, 118, 136, 140, 137, + 120, 155, -187, -390, -398, 62, -388, -388, -388, -388, + -363, -481, -395, -390, 86, 86, 86, 86, 86, 159, + 105, 92, -390, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, -514, 86, 86, -402, -403, + 86, 86, -383, -339, 86, 92, 92, 86, 86, 86, + 92, 86, 86, 86, -403, -403, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, -208, 160, -207, 86, -207, -208, -188, - -187, 33, 34, 33, 34, 33, 34, 33, 34, -613, - 637, 86, 102, 660, 228, 17, -363, 646, -363, -595, - 33, 551, 551, 551, 551, 496, 557, 172, 173, 174, - -363, 171, 250, -363, -410, 252, -410, -410, -234, -363, - 273, 390, 249, 543, 249, -176, -410, -410, -410, -410, - -410, 248, -410, 24, 246, 246, 246, 246, -410, 514, - 128, 128, 60, -574, 176, 160, -564, -215, 86, -595, - 655, 656, 657, -375, 136, 140, -375, -320, 18, -320, - 24, 24, 275, 275, 275, -375, 315, -621, -622, 17, - 138, -373, -622, -373, -373, -375, -623, 248, 481, 44, - 276, 275, -209, -210, 22, -209, 475, 471, -466, 476, - 477, -377, -622, -376, -375, -375, -376, -375, -375, -375, - 33, 246, 249, 507, 338, 641, -621, -621, 32, 32, - -500, -500, -250, -500, -500, 541, -352, -363, -500, -500, - -500, -304, -305, -250, -575, 251, 657, -607, -606, 494, - -609, 496, 165, -443, 165, -443, 89, -424, 277, 277, - 160, 128, 24, -444, 128, 139, -443, -443, -444, -444, - -274, 42, -362, 156, -363, 92, -274, 42, -604, -603, - -250, -208, -188, -187, 87, 87, 87, 551, -595, -500, - -500, -500, -500, -500, -501, -500, -500, -500, -500, -500, - -370, -225, -363, -236, 252, -500, -500, -500, -500, -189, - -190, 147, -390, -363, -193, -3, -146, -145, 122, 123, - 125, 631, 385, 630, 634, 628, -443, 42, -494, 412, - 411, -488, -490, 86, -489, 86, -489, -489, -489, -489, - -489, 86, 86, -491, 86, -491, -491, -488, -492, 86, - -492, -493, 86, -493, -492, -363, -470, 557, -396, -398, - -363, 40, -510, 62, -184, 86, 32, 86, -216, -363, - 192, 170, 645, 36, -511, 62, -184, 86, 32, -208, - -139, 40, -210, 21, 159, 102, 92, -118, -99, 78, - -118, -99, -99, 87, 160, -568, 108, 109, -570, 210, - 201, -363, -116, 92, -535, -7, -11, -8, -9, -10, - -47, -85, -184, 549, 552, -538, -536, 86, 33, 439, - 83, 17, -450, 246, 507, 390, 273, 249, 366, -448, - -431, -428, -426, -362, -424, -427, -426, -453, -339, 471, - -140, 454, 453, 327, -390, -390, -390, -390, -390, 107, - 118, 356, 108, 109, -385, -406, 33, 323, 324, -386, + 86, 86, -208, 160, -207, 86, -207, -208, -188, -187, + 33, 34, 33, 34, 33, 34, 33, 34, -613, 636, + 86, 102, 659, 228, 17, -363, 645, -363, -595, 33, + 550, 550, 550, 550, 495, 556, 172, 173, 174, -363, + 171, 250, -363, -410, 252, -410, -410, -234, -363, 273, + 389, 249, 542, 249, -176, -410, -410, -410, -410, -410, + 248, -410, 24, 246, 246, 246, 246, -410, 513, 128, + 128, 60, -574, 176, 160, -564, -215, 86, -595, 654, + 655, 656, -375, 136, 140, -375, -320, 18, -320, 24, + 24, 275, 275, 275, -375, 315, -621, -622, 17, 138, + -373, -622, -373, -373, -375, -623, 248, 480, 44, 276, + 275, -209, -210, 22, -209, 474, 470, -466, 475, 476, + -377, -622, -376, -375, -375, -376, -375, -375, -375, 33, + 246, 249, 506, 338, 640, -621, -621, 32, 32, -500, + -500, -250, -500, -500, 540, -352, -363, -500, -500, -500, + -304, -305, -250, -575, 251, 656, -607, -606, 493, -609, + 495, 165, -443, 165, -443, 89, -424, 277, 277, 160, + 128, 24, -444, 128, 139, -443, -443, -444, -444, -274, + 42, -362, 156, -363, 92, -274, 42, -604, -603, -250, + -208, -188, -187, 87, 87, 87, 550, -595, -500, -500, + -500, -500, -500, -501, -500, -500, -500, -500, -500, -370, + -225, -363, -236, 252, -500, -500, -500, -500, -189, -190, + 147, -390, -363, -193, -3, -146, -145, 122, 123, 125, + 630, 384, 629, 633, 627, -443, 42, -494, 411, 410, + -488, -490, 86, -489, 86, -489, -489, -489, -489, -489, + 86, 86, -491, 86, -491, -491, -488, -492, 86, -492, + -493, 86, -493, -492, -363, -470, 556, -396, -398, -363, + 40, -510, 62, -184, 86, 32, 86, -216, -363, 192, + 170, 644, 36, -511, 62, -184, 86, 32, -208, -139, + 40, -210, 21, 159, 102, 92, -118, -99, 78, -118, + -99, -99, 87, 160, -568, 108, 109, -570, 210, 201, + -363, -116, 92, -535, -7, -11, -8, -9, -10, -47, + -85, -184, 548, 551, -538, -536, 86, 33, 438, 83, + 17, -450, 246, 506, 389, 273, 249, 365, -448, -431, + -428, -426, -362, -424, -427, -426, -453, -339, 470, -140, + 453, 452, 327, -390, -390, -390, -390, -390, 107, 118, + 356, 108, 109, -385, -406, 33, 323, 324, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, - -386, -394, -404, -481, 86, 138, 136, 140, 137, 120, - -388, -388, -386, -386, -276, -362, 156, 87, 160, -390, - -561, -560, 122, -390, -390, -390, -390, -417, -419, -339, - 86, -363, -558, -559, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 381, 376, 382, 380, 369, - 388, 383, 384, 194, 538, 539, 532, 533, 534, 535, - 536, 537, -396, -396, -390, -558, -396, -332, 34, 33, - -398, -398, -398, 87, -390, -571, 354, 353, 355, -211, - -363, -396, 87, 87, 87, 102, -398, -398, -396, -386, - -396, -396, -396, -396, -559, -332, -332, -332, -332, 147, - -398, -398, -332, -332, -332, -332, 147, -332, -332, -332, - -332, -332, -332, -332, -332, -332, -332, -332, 87, 87, - 87, 147, -398, -209, -138, -519, -518, -390, 42, -139, - -210, -614, 638, 86, -339, -602, 92, 92, 665, 170, - 646, 17, 507, -363, 17, 246, -363, 102, -363, 102, - 497, 498, 169, 173, 172, -363, 171, -363, -363, 118, - -363, -363, 36, -236, -225, -410, -410, -410, -579, -363, - 93, -432, -429, -426, -363, -363, -422, -363, -352, -250, - -410, -410, -410, -410, -250, -285, 54, 55, 56, -426, - -177, 57, 58, -575, -563, 36, -214, -363, -320, -388, - -388, -390, 366, 507, 246, -426, 277, -621, -375, -375, - -353, -352, -377, -372, -377, -377, -320, -373, -375, -375, - -390, -377, -373, -320, -363, 471, -320, -320, -466, -375, - -374, -363, -374, -410, -352, -353, -353, -250, -250, -299, - -306, -300, -307, 269, 243, 374, 375, 240, 238, 11, - 239, -314, 316, -411, 515, -280, -281, 78, 43, -283, - 267, 416, 409, 279, 283, 96, 284, 449, 285, 248, - 287, 288, 289, 304, 306, 259, 290, 291, 292, 440, - 293, 164, 305, 294, 295, 296, 392, -275, 6, 341, - 42, 52, 53, 463, 462, 560, 557, 280, -363, -579, - -577, 32, -363, 32, -432, -426, -363, -363, 160, 250, - -200, -202, -199, -195, -196, -201, -323, -325, -198, 86, - -250, -187, -363, -443, 160, 495, 497, 498, -607, -444, - -607, -444, 250, 33, 439, -447, 439, 33, -422, -441, - 491, 493, -437, 92, 440, -427, -446, 83, 156, -518, - -444, -444, -446, -446, 155, 160, -605, 496, 497, 234, - -209, 102, -232, 648, -252, -250, -579, -431, -422, -363, - -500, -252, -252, -252, -365, -365, 86, 159, 37, -363, - -363, -363, -363, -319, 160, -318, 17, -364, -363, 36, - 92, 159, -147, -145, 124, -390, -6, 630, -390, -6, - -6, -390, -6, -390, -498, 413, 102, 102, -342, 92, - -342, 102, 102, 102, 563, 87, 92, -435, 83, -512, - -399, -556, 619, -218, 87, -211, -554, -555, -211, -217, - -363, -510, -242, 128, 128, 128, 25, -512, -218, 87, - -554, -209, 620, -139, -206, -205, -390, -363, 24, -118, - -99, -566, 159, 160, -214, -450, -430, -427, -452, 147, - -363, -438, 160, 557, 668, 90, 250, -592, -591, 431, - 87, 160, -522, 251, 514, 92, 665, 447, 228, 229, - 107, 356, 108, 109, -481, -398, -394, -388, -388, -386, - -386, -392, 264, -392, 117, -390, 666, -389, -560, 124, - -390, 36, 160, 36, 160, 84, 160, 87, -488, -390, - 159, 87, 87, 17, 17, 87, -390, 87, 87, 87, - 87, 17, 17, -390, 87, 159, 87, 87, 87, 87, - 84, 87, 160, 87, 87, 87, 87, 160, -398, -398, - -390, -398, 87, 87, 87, -390, -390, -390, -398, 87, - -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, - -214, -460, 466, -460, -460, 160, 160, 160, 87, -139, - 86, 102, 160, 661, -346, -345, 92, -363, -363, 170, - 646, -363, 92, 646, -363, 92, 170, 174, 174, 173, - -363, 92, 37, 24, 24, 314, -235, 86, 86, -250, - -250, -250, -581, 417, -593, 160, 42, -591, 507, -173, - 327, -414, 84, -180, 334, 17, 557, -250, -250, -250, - -250, -264, 36, 17, -194, -251, -363, 86, 87, 160, - -363, -363, -363, -423, 84, -363, -353, -320, -320, -377, - -320, -320, 160, 23, -375, -377, -377, -242, -373, -242, - 159, -242, -352, -487, 36, -215, 160, 21, 269, -249, - -360, -246, -248, 254, -380, -247, 257, -550, 255, 253, - 112, 258, 312, 113, 248, -360, -360, 254, -284, 250, - 36, -360, -302, 248, 359, 312, 255, 21, 269, -301, - 248, 113, -363, 254, 258, 255, 253, -359, 128, -351, - 155, 250, 44, 392, -359, 561, 269, -359, -359, -359, - -359, -359, -359, -359, 286, 286, -359, -359, -359, -359, - -359, -359, -359, -359, -359, -359, -359, 165, -359, -359, - -359, -359, -359, -359, 86, 281, 282, 314, -582, 417, - 32, 372, 372, 373, -593, 368, 43, 32, -181, 366, - -305, -303, -374, 32, -326, -327, -328, -329, -331, -330, - 69, 73, 75, 79, 70, 71, 72, 76, 81, 74, - 32, 160, -361, -366, 36, -363, 92, -361, -187, -202, - -200, -361, 86, -444, -606, -608, 499, 496, 502, -446, - -446, 102, 250, 86, 128, -446, -446, 42, -362, -603, - 503, 497, -139, 160, 83, -252, -226, -227, -228, -229, - -257, -339, 196, 199, 201, 202, 203, 204, 206, 207, - 208, 209, 210, 213, 214, 211, 212, 263, 191, 192, - 193, 194, 215, 177, 197, 555, 178, 179, 180, 181, - 182, 183, 186, 187, 188, 189, 185, -363, -236, -232, - -320, -190, -202, -363, 92, -363, 147, 125, -6, 123, - -151, -150, -149, 126, 628, 634, 125, 125, 125, 87, - 87, 87, 160, 87, 87, 87, 160, 87, 160, 102, - -525, 476, 41, 160, 86, 87, 160, 62, 160, 128, - 87, 160, -390, -363, 92, -390, 192, 87, 62, -139, - 92, 160, -203, 38, 39, 159, 449, -363, -536, 87, - -452, 160, 250, 159, 159, -428, 395, -362, -430, 21, - 557, -339, 40, -346, 128, 665, -363, 87, -392, -392, - 117, -388, -385, 87, 125, -390, 123, -255, -257, 411, - 412, -390, -255, -256, -262, 156, 195, 263, 194, 193, - 191, 411, 412, -274, -419, 554, -203, 87, -363, -390, - -390, 87, -390, -390, 17, -363, -274, -386, -390, -208, - -208, 87, 87, -459, -460, -459, -459, 87, 87, 87, - 87, -459, 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 86, 102, 104, 102, 104, -518, -615, - 64, 636, 63, 439, 107, 317, 160, 102, 92, 666, - 160, 128, 92, -363, -363, 17, 246, -363, 17, 174, - 92, -594, 321, 366, 507, 246, 366, 321, 507, 246, - -471, 102, 403, -237, -238, -239, -240, -241, 138, 161, - 162, -226, -215, 86, -215, -584, 478, 419, 429, -359, - -382, -381, 368, 43, -505, 440, 425, 426, -429, 277, - -352, -590, 99, 128, 83, 345, 349, 351, 350, 346, - 347, 348, -408, -409, -407, -411, -352, -577, 86, 86, - -184, 36, 136, -180, 334, 86, 86, 36, -482, 335, - -257, -250, -194, -363, 17, 160, -576, 159, -1, -363, - -363, -422, -375, -320, -390, -390, -320, -375, -375, -377, - -363, -242, -482, -257, 36, -300, 243, 239, -456, 314, - 315, -457, -472, 317, -474, 86, -254, -339, -247, -549, - -550, -410, -363, 113, -549, 113, 86, -254, -339, -339, - -303, -339, -363, -363, -363, -363, -310, -309, -339, -312, - 33, -313, -363, -363, -363, -363, 113, -363, 113, -279, - 42, 49, 50, 51, 334, -359, -359, 198, -282, 42, - 439, 441, 442, -312, 102, 102, 102, 102, 92, 92, - 92, -359, -359, 102, 92, -366, 92, -551, 173, 46, - 47, 102, 102, 102, 102, 42, 92, -287, 42, 297, - 301, 298, 299, 300, 92, 102, 42, 102, 42, 102, - 42, -363, 86, -552, -553, 92, -471, -584, -359, 372, - -443, 128, 128, -382, -586, 96, 420, -586, -589, 327, - -183, 507, 33, -219, 243, 239, -577, -434, -433, -339, - -199, -199, -199, -199, -199, -199, 69, 80, 69, -212, - 86, 69, 74, 69, 74, 69, -328, 69, 80, -434, - -201, -215, -366, 87, -600, -599, -598, -596, 77, 251, - 78, -396, -446, 496, 500, 501, -430, -378, 92, -437, - -223, 24, -250, -250, -503, 307, 308, 87, 160, -257, - -322, 19, 159, 121, -6, -147, -149, -390, -6, -390, - 630, 385, 631, 92, 102, 102, -533, 460, 455, 457, - 113, -399, -520, -519, 62, -184, -211, -512, -555, -518, - -363, 666, 666, 666, 666, 92, 62, -184, -512, -223, - -525, -205, -204, 45, -363, 102, 17, -427, -422, 147, - 147, -363, 396, -438, 92, 418, 92, 246, 666, 92, - -346, -385, -390, 87, -265, 182, 181, -265, 36, 87, - 87, -489, -489, -488, -491, -488, -265, -265, 87, 86, - -203, 87, 24, 87, 87, 87, -390, 87, 87, 160, - -508, 516, -509, 590, -459, -459, -459, -459, -459, -459, + -394, -404, -481, 86, 138, 136, 140, 137, 120, -388, + -388, -386, -386, -276, -362, 156, 87, 160, -390, -561, + -560, 122, -390, -390, -390, -390, -417, -419, -339, 86, + -363, -558, -559, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 380, 375, 381, 379, 368, 387, + 382, 383, 194, 537, 538, 531, 532, 533, 534, 535, + 536, -396, -396, -390, -558, -396, -332, 34, 33, -398, + -398, -398, 87, -390, -571, 354, 353, 355, -211, -363, + -396, 87, 87, 87, 102, -398, -398, -396, -386, -396, + -396, -396, -396, -559, -332, -332, -332, -332, 147, -398, + -398, -332, -332, -332, -332, 147, -332, -332, -332, -332, + -332, -332, -332, -332, -332, -332, -332, 87, 87, 87, + 147, -398, -209, -138, -519, -518, -390, 42, -139, -210, + -614, 637, 86, -339, -602, 92, 92, 664, 170, 645, + 17, 506, -363, 17, 246, -363, 102, -363, 102, 496, + 497, 169, 173, 172, -363, 171, -363, -363, 118, -363, + -363, 36, -236, -225, -410, -410, -410, -579, -363, 93, + -432, -429, -426, -363, -363, -422, -363, -352, -250, -410, + -410, -410, -410, -250, -285, 54, 55, 56, -426, -177, + 57, 58, -575, -563, 36, -214, -363, -320, -388, -388, + -390, 365, 506, 246, -426, 277, -621, -375, -375, -353, + -352, -377, -372, -377, -377, -320, -373, -375, -375, -390, + -377, -373, -320, -363, 470, -320, -320, -466, -375, -374, + -363, -374, -410, -352, -353, -353, -250, -250, -299, -306, + -300, -307, 269, 243, 373, 374, 240, 238, 11, 239, + -314, 316, -411, 514, -280, -281, 78, 43, -283, 267, + 415, 408, 279, 283, 96, 284, 448, 285, 248, 287, + 288, 289, 304, 306, 259, 290, 291, 292, 439, 293, + 164, 305, 294, 295, 296, 391, -275, 6, 341, 42, + 52, 53, 462, 461, 559, 556, 280, -363, -579, -577, + 32, -363, 32, -432, -426, -363, -363, 160, 250, -200, + -202, -199, -195, -196, -201, -323, -325, -198, 86, -250, + -187, -363, -443, 160, 494, 496, 497, -607, -444, -607, + -444, 250, 33, 438, -447, 438, 33, -422, -441, 490, + 492, -437, 92, 439, -427, -446, 83, 156, -518, -444, + -444, -446, -446, 155, 160, -605, 495, 496, 234, -209, + 102, -232, 647, -252, -250, -579, -431, -422, -363, -500, + -252, -252, -252, -365, -365, 86, 159, 37, -363, -363, + -363, -363, -319, 160, -318, 17, -364, -363, 36, 92, + 159, -147, -145, 124, -390, -6, 629, -390, -6, -6, + -390, -6, -390, -498, 412, 102, 102, -342, 92, -342, + 102, 102, 102, 562, 87, 92, -435, 83, -512, -399, + -556, 618, -218, 87, -211, -554, -555, -211, -217, -363, + -510, -242, 128, 128, 128, 25, -512, -218, 87, -554, + -209, 619, -139, -206, -205, -390, -363, 24, -118, -99, + -566, 159, 160, -214, -450, -430, -427, -452, 147, -363, + -438, 160, 556, 667, 90, 250, -592, -591, 430, 87, + 160, -522, 251, 513, 92, 664, 446, 228, 229, 107, + 356, 108, 109, -481, -398, -394, -388, -388, -386, -386, + -392, 264, -392, 117, -390, 665, -389, -560, 124, -390, + 36, 160, 36, 160, 84, 160, 87, -488, -390, 159, + 87, 87, 17, 17, 87, -390, 87, 87, 87, 87, + 17, 17, -390, 87, 159, 87, 87, 87, 87, 84, + 87, 160, 87, 87, 87, 87, 160, -398, -398, -390, + -398, 87, 87, 87, -390, -390, -390, -398, 87, -390, + -390, -390, -390, -390, -390, -390, -390, -390, -390, -214, + -460, 465, -460, -460, 160, 160, 160, 87, -139, 86, + 102, 160, 660, -346, -345, 92, -363, -363, 170, 645, + -363, 92, 645, -363, 92, 170, 174, 174, 173, -363, + 92, 37, 24, 24, 314, -235, 86, 86, -250, -250, + -250, -581, 416, -593, 160, 42, -591, 506, -173, 327, + -414, 84, -180, 334, 17, 556, -250, -250, -250, -250, + -264, 36, 17, -194, -251, -363, 86, 87, 160, -363, + -363, -363, -423, 84, -363, -353, -320, -320, -377, -320, + -320, 160, 23, -375, -377, -377, -242, -373, -242, 159, + -242, -352, -487, 36, -215, 160, 21, 269, -249, -360, + -246, -248, 254, -380, -247, 257, -550, 255, 253, 112, + 258, 312, 113, 248, -360, -360, 254, -284, 250, 36, + -360, -302, 248, 359, 312, 255, 21, 269, -301, 248, + 113, -363, 254, 258, 255, 253, -359, 128, -351, 155, + 250, 44, 391, -359, 560, 269, -359, -359, -359, -359, + -359, -359, -359, 286, 286, -359, -359, -359, -359, -359, + -359, -359, -359, -359, -359, -359, 165, -359, -359, -359, + -359, -359, -359, 86, 281, 282, 314, -582, 416, 32, + 371, 371, 372, -593, 367, 43, 32, -181, 365, -305, + -303, -374, 32, -326, -327, -328, -329, -331, -330, 69, + 73, 75, 79, 70, 71, 72, 76, 81, 74, 32, + 160, -361, -366, 36, -363, 92, -361, -187, -202, -200, + -361, 86, -444, -606, -608, 498, 495, 501, -446, -446, + 102, 250, 86, 128, -446, -446, 42, -362, -603, 502, + 496, -139, 160, 83, -252, -226, -227, -228, -229, -257, + -339, 196, 199, 201, 202, 203, 204, 206, 207, 208, + 209, 210, 213, 214, 211, 212, 263, 191, 192, 193, + 194, 215, 177, 197, 554, 178, 179, 180, 181, 182, + 183, 186, 187, 188, 189, 185, -363, -236, -232, -320, + -190, -202, -363, 92, -363, 147, 125, -6, 123, -151, + -150, -149, 126, 627, 633, 125, 125, 125, 87, 87, + 87, 160, 87, 87, 87, 160, 87, 160, 102, -525, + 475, 41, 160, 86, 87, 160, 62, 160, 128, 87, + 160, -390, -363, 92, -390, 192, 87, 62, -139, 92, + 160, -203, 38, 39, 159, 448, -363, -536, 87, -452, + 160, 250, 159, 159, -428, 394, -362, -430, 21, 556, + -339, 40, -346, 128, 664, -363, 87, -392, -392, 117, + -388, -385, 87, 125, -390, 123, -255, -257, 410, 411, + -390, -255, -256, -262, 156, 195, 263, 194, 193, 191, + 410, 411, -274, -419, 553, -203, 87, -363, -390, -390, + 87, -390, -390, 17, -363, -274, -386, -390, -208, -208, + 87, 87, -459, -460, -459, -459, 87, 87, 87, 87, + -459, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 86, 102, 104, 102, 104, -518, -615, 64, + 635, 63, 438, 107, 317, 160, 102, 92, 665, 160, + 128, 92, -363, -363, 17, 246, -363, 17, 174, 92, + -594, 321, 365, 506, 246, 365, 321, 506, 246, -471, + 102, 402, -237, -238, -239, -240, -241, 138, 161, 162, + -226, -215, 86, -215, -584, 477, 418, 428, -359, -382, + -381, 367, 43, -505, 439, 424, 425, -429, 277, -352, + -590, 99, 128, 83, 345, 349, 351, 350, 346, 347, + 348, -408, -409, -407, -411, -352, -577, 86, 86, -184, + 36, 136, -180, 334, 86, 86, 36, -482, 335, -257, + -250, -194, -363, 17, 160, -576, 159, -1, -363, -363, + -422, -375, -320, -390, -390, -320, -375, -375, -377, -363, + -242, -482, -257, 36, -300, 243, 239, -456, 314, 315, + -457, -472, 317, -474, 86, -254, -339, -247, -549, -550, + -410, -363, 113, -549, 113, 86, -254, -339, -339, -303, + -339, -363, -363, -363, -363, -310, -309, -339, -312, 33, + -313, -363, -363, -363, -363, 113, -363, 113, -279, 42, + 49, 50, 51, 334, -359, -359, 198, -282, 42, 438, + 440, 441, -312, 102, 102, 102, 102, 92, 92, 92, + -359, -359, 102, 92, -366, 92, -551, 173, 46, 47, + 102, 102, 102, 102, 42, 92, -287, 42, 297, 301, + 298, 299, 300, 92, 102, 42, 102, 42, 102, 42, + -363, 86, -552, -553, 92, -471, -584, -359, 371, -443, + 128, 128, -382, -586, 96, 419, -586, -589, 327, -183, + 506, 33, -219, 243, 239, -577, -434, -433, -339, -199, + -199, -199, -199, -199, -199, 69, 80, 69, -212, 86, + 69, 74, 69, 74, 69, -328, 69, 80, -434, -201, + -215, -366, 87, -600, -599, -598, -596, 77, 251, 78, + -396, -446, 495, 499, 500, -430, -378, 92, -437, -223, + 24, -250, -250, -503, 307, 308, 87, 160, -257, -322, + 19, 159, 121, -6, -147, -149, -390, -6, -390, 629, + 384, 630, 92, 102, 102, -533, 459, 454, 456, 113, + -399, -520, -519, 62, -184, -211, -512, -555, -518, -363, + 665, 665, 665, 665, 92, 62, -184, -512, -223, -525, + -205, -204, 45, -363, 102, 17, -427, -422, 147, 147, + -363, 395, -438, 92, 417, 92, 246, 665, 92, -346, + -385, -390, 87, -265, 182, 181, -265, 36, 87, 87, + -489, -489, -488, -491, -488, -265, -265, 87, 86, -203, + 87, 24, 87, 87, 87, -390, 87, 87, 160, -508, + 515, -509, 589, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, -459, - -459, -401, -400, 269, 461, 643, 643, 461, 643, 643, - 87, 160, -558, 160, -354, 322, -354, -345, 92, 250, - 92, 170, -363, 92, 646, 92, -363, -363, -363, 314, - -363, 314, -363, -363, 92, 92, 87, 160, -339, 87, - 36, -243, -244, -245, -254, -246, -248, 36, -585, 96, - -580, 92, -363, 93, -586, 158, 370, 42, 421, 422, - 437, 365, 102, 102, 427, -578, -363, -182, 246, 366, - -588, 53, 128, 92, -250, -407, -351, 155, 288, -242, - 338, -317, -316, -363, 92, -243, -184, -250, -250, -243, - -243, -184, -483, 337, 21, 102, 146, -216, 84, 159, - -202, -251, -363, 147, 87, -320, -242, -320, -320, -375, - -483, -184, -468, 318, 86, -466, 86, -466, 113, 346, - -475, -473, 269, -308, 46, 48, -257, -547, -363, -545, - -547, -363, -545, -545, -410, -390, -308, -254, 250, 32, - 239, -311, 343, 344, 349, 351, -439, 313, 118, -439, - 160, -203, 160, -363, -274, -274, 32, 92, 92, -252, - 87, 160, 128, 92, -585, -580, 128, -444, 92, 92, - -586, 92, 92, -590, 128, -253, 246, -352, 160, -219, - -219, -320, 160, 128, -221, -220, 83, 84, -222, 83, - -220, -220, 69, -213, 92, 69, 69, -320, -598, -597, - 24, -550, -550, -550, 87, 87, 15, -228, 42, -321, - 20, 21, 147, 125, 123, 125, 125, -363, 87, 87, - -495, 621, -529, -531, 455, 21, 21, 15, 251, 87, - -512, 666, -512, -533, 46, 47, -422, -438, 440, -250, - 160, 666, -255, -293, 92, -390, 87, -390, 87, 92, - 87, 92, -208, 21, 87, 160, 87, 87, 87, 160, - 87, 87, -390, 87, -558, -355, 192, 92, -355, 366, - -364, -363, 17, -363, 92, -363, -471, 314, -471, 314, - 246, -363, -232, -415, 556, -239, -257, 244, -184, 87, - 160, -184, 92, -583, 431, 102, 42, 102, 158, 423, - -506, -174, 96, -252, 33, -219, -587, 96, 128, 665, - 86, -359, -359, -359, 250, -363, 87, 160, -359, -359, - 87, 250, 87, 87, -272, 557, -484, 268, 102, 146, - 102, 146, 102, -361, -202, -363, -320, -576, 159, -320, - -484, -458, 319, 102, -386, 86, -386, 86, -467, 316, - 86, 87, 160, -363, -339, -269, -268, -266, 107, 118, - 42, 409, -267, 96, 155, 302, 305, 304, 280, 303, - -298, -379, 83, 415, 343, 344, -411, 621, 545, 253, - 112, 113, 397, -380, 86, 86, 84, 322, 86, 86, - -547, 87, -308, -339, 42, -311, 42, 357, 313, -309, - -363, 155, -274, 87, -553, 92, -583, 92, -446, -588, - 92, -174, -252, -577, -208, -433, -518, -390, 86, -390, - 87, 86, 69, 11, 19, -383, -390, -398, 650, 652, - 653, 252, -6, 631, 385, -289, 622, 92, 21, 92, - -527, 92, -434, -495, -142, -286, -351, 285, 87, -292, - 138, 557, 87, 87, -459, -459, -462, -461, -465, 461, - 314, 469, -398, 92, 92, 87, 87, 92, -363, 170, - 92, 665, 92, -471, 92, -471, -363, 314, 92, 92, - -230, -257, -178, 557, -272, -245, -178, 21, 557, 369, - 42, 102, 42, 424, 92, -182, 128, 108, 109, -347, - -348, 92, -417, -274, -276, 92, 366, -316, -383, -383, - -270, -184, 36, -271, -314, -411, 366, -141, -140, -270, - 86, -485, 164, 102, 146, 102, 102, -320, -320, -485, - -474, 21, 87, -453, 87, -453, 86, 128, -386, -473, - -476, 62, -266, 107, -386, 92, -276, -277, 42, 301, - 297, 128, 128, -278, 42, 281, 282, -288, 86, 312, - 15, 198, 86, 113, 113, -250, -417, -417, -548, 345, - 346, 347, 352, 349, 350, 348, 351, -548, -417, -417, - 86, -440, -439, -386, -359, -359, 155, -587, -209, -214, - -546, -363, 253, 21, 21, -504, 557, 651, 86, 86, - -363, -363, -343, 623, 102, 92, 457, -289, -496, 624, - -523, -466, -274, 128, 87, 76, 555, 558, 87, -464, - 120, 423, 427, -384, -387, 102, 104, 190, 158, 87, - 87, -363, -350, -349, 92, -232, 92, -232, 92, 314, - -471, 556, -179, 61, 503, 92, 93, 418, 92, 93, - 369, -174, 92, 666, 160, 128, 87, -363, -454, 269, - -184, 160, -314, -351, -363, -142, -454, -273, -315, -363, - 92, -502, 173, 336, 557, 102, 146, 102, -208, -486, - 173, 336, -457, 87, 87, 87, -453, 102, 87, -480, - -477, 86, -314, 271, 138, 92, 92, 102, 86, -513, - 32, 92, -418, 86, 87, 87, 87, 87, -417, 102, - -274, -359, 87, 87, 160, 653, 86, -398, -398, 86, - 21, -343, -497, 625, 92, -532, 460, -526, -524, 455, - 456, 457, 458, 92, 556, 66, 559, -463, -464, 427, - -384, -387, 619, 467, 467, 467, 666, 160, 128, -232, - -232, -471, 92, -233, -363, 312, 440, -348, 92, -420, - -455, 321, 21, -314, -359, -455, 87, 160, -359, -359, - 336, 102, 146, 102, -209, 336, -469, 320, 87, -480, - -314, -479, -478, 319, 272, 86, 87, -390, -402, -359, - 87, -291, -290, 553, -417, -420, 84, -420, 84, -420, - 84, -420, 84, 87, -274, -363, 253, -137, 86, 87, - 87, -344, -363, -527, 92, -534, 251, -530, -531, 459, - -524, 21, 457, 21, 21, -143, 160, 66, 117, 468, - 468, 468, -232, -349, 92, 92, -232, -231, 36, 462, - 396, -421, 259, 357, 358, 96, 557, 343, 344, 362, - 361, 360, 363, 364, 21, -456, -274, -315, -383, -383, - 102, 102, 87, 160, -363, 268, 86, -397, -391, -390, - 268, 87, -363, -297, -295, -296, 83, 474, 310, 311, - 87, -548, -548, -548, -548, -298, 87, 160, -396, 87, - 160, -541, 86, 102, -529, -528, -530, 21, -527, 21, - -527, -527, 464, 557, -463, -232, 92, -359, -359, 92, - 92, 342, -359, -359, -359, -359, -339, 86, -468, -478, - -477, -397, 87, 160, -439, -296, 83, -295, 83, 16, - 15, -420, -420, -420, -420, 86, 87, -363, -544, 32, - 87, -540, -539, -340, -535, -363, 460, 461, 92, -527, - 128, 558, -618, -617, 642, 102, 102, -363, 102, 102, - 102, 92, -453, -458, 87, -391, -294, 307, 308, 32, - 173, -294, -396, -543, -542, -341, 87, 160, 159, 92, - 559, 92, 87, -474, 107, 42, 309, 87, 160, 128, - -539, -363, -542, 42, -390, 159, -363, + -401, -400, 269, 460, 642, 642, 460, 642, 642, 87, + 160, -558, 160, -354, 322, -354, -345, 92, 250, 92, + 170, -363, 92, 645, 92, -363, -363, -363, 314, -363, + 314, -363, -363, 92, 92, 87, 160, -339, 87, 36, + -243, -244, -245, -254, -246, -248, 36, -585, 96, -580, + 92, -363, 93, -586, 158, 369, 42, 420, 421, 436, + 364, 102, 102, 426, -578, -363, -182, 246, 365, -588, + 53, 128, 92, -250, -407, -351, 155, 288, -242, 338, + -317, -316, -363, 92, -243, -184, -250, -250, -243, -243, + -184, -483, 337, 21, 102, 146, -216, 84, 159, -202, + -251, -363, 147, 87, -320, -242, -320, -320, -375, -483, + -184, -468, 318, 86, -466, 86, -466, 113, 346, -475, + -473, 269, -308, 46, 48, -257, -547, -363, -545, -547, + -363, -545, -545, -410, -390, -308, -254, 250, 32, 239, + -311, 343, 344, 349, 351, -439, 313, 118, -439, 160, + -203, 160, -363, -274, -274, 32, 92, 92, -252, 87, + 160, 128, 92, -585, -580, 128, -444, 92, 92, -586, + 92, 92, -590, 128, -253, 246, -352, 160, -219, -219, + -320, 160, 128, -221, -220, 83, 84, -222, 83, -220, + -220, 69, -213, 92, 69, 69, -320, -598, -597, 24, + -550, -550, -550, 87, 87, 15, -228, 42, -321, 20, + 21, 147, 125, 123, 125, 125, -363, 87, 87, -495, + 620, -529, -531, 454, 21, 21, 15, 251, 87, -512, + 665, -512, -533, 46, 47, -422, -438, 439, -250, 160, + 665, -255, -293, 92, -390, 87, -390, 87, 92, 87, + 92, -208, 21, 87, 160, 87, 87, 87, 160, 87, + 87, -390, 87, -558, -355, 192, 92, -355, 365, -364, + -363, 17, -363, 92, -363, -471, 314, -471, 314, 246, + -363, -232, -415, 555, -239, -257, 244, -184, 87, 160, + -184, 92, -583, 430, 102, 42, 102, 158, 422, -506, + -174, 96, -252, 33, -219, -587, 96, 128, 664, 86, + -359, -359, -359, 250, -363, 87, 160, -359, -359, 87, + 250, 87, 87, -272, 556, -484, 268, 102, 146, 102, + 146, 102, -361, -202, -363, -320, -576, 159, -320, -484, + -458, 319, 102, -386, 86, -386, 86, -467, 316, 86, + 87, 160, -363, -339, -269, -268, -266, 107, 118, 42, + 408, -267, 96, 155, 302, 305, 304, 280, 303, -298, + -379, 83, 414, 343, 344, -411, 620, 544, 253, 112, + 113, 396, -380, 86, 86, 84, 322, 86, 86, -547, + 87, -308, -339, 42, -311, 42, 357, 313, -309, -363, + 155, -274, 87, -553, 92, -583, 92, -446, -588, 92, + -174, -252, -577, -208, -433, -518, -390, 86, -390, 87, + 86, 69, 11, 19, -383, -390, -398, 649, 651, 652, + 252, -6, 630, 384, -289, 621, 92, 21, 92, -527, + 92, -434, -495, -142, -286, -351, 285, 87, -292, 138, + 556, 87, 87, -459, -459, -462, -461, -465, 460, 314, + 468, -398, 92, 92, 87, 87, 92, -363, 170, 92, + 664, 92, -471, 92, -471, -363, 314, 92, 92, -230, + -257, -178, 556, -272, -245, -178, 21, 556, 368, 42, + 102, 42, 423, 92, -182, 128, 108, 109, -347, -348, + 92, -417, -274, -276, 92, 365, -316, -383, -383, -270, + -184, 36, -271, -314, -411, 365, -141, -140, -270, 86, + -485, 164, 102, 146, 102, 102, -320, -320, -485, -474, + 21, 87, -453, 87, -453, 86, 128, -386, -473, -476, + 62, -266, 107, -386, 92, -276, -277, 42, 301, 297, + 128, 128, -278, 42, 281, 282, -288, 86, 312, 15, + 198, 86, 113, 113, -250, -417, -417, -548, 345, 346, + 347, 352, 349, 350, 348, 351, -548, -417, -417, 86, + -440, -439, -386, -359, -359, 155, -587, -209, -214, -546, + -363, 253, 21, 21, -504, 556, 650, 86, 86, -363, + -363, -343, 622, 102, 92, 456, -289, -496, 623, -523, + -466, -274, 128, 87, 76, 554, 557, 87, -464, 120, + 422, 426, -384, -387, 102, 104, 190, 158, 87, 87, + -363, -350, -349, 92, -232, 92, -232, 92, 314, -471, + 555, -179, 61, 502, 92, 93, 417, 92, 93, 368, + -174, 92, 665, 160, 128, 87, -363, -454, 269, -184, + 160, -314, -351, -363, -142, -454, -273, -315, -363, 92, + -502, 173, 336, 556, 102, 146, 102, -208, -486, 173, + 336, -457, 87, 87, 87, -453, 102, 87, -480, -477, + 86, -314, 271, 138, 92, 92, 102, 86, -513, 32, + 92, -418, 86, 87, 87, 87, 87, -417, 102, -274, + -359, 87, 87, 160, 652, 86, -398, -398, 86, 21, + -343, -497, 624, 92, -532, 459, -526, -524, 454, 455, + 456, 457, 92, 555, 66, 558, -463, -464, 426, -384, + -387, 618, 466, 466, 466, 665, 160, 128, -232, -232, + -471, 92, -233, -363, 312, 439, -348, 92, -420, -455, + 321, 21, -314, -359, -455, 87, 160, -359, -359, 336, + 102, 146, 102, -209, 336, -469, 320, 87, -480, -314, + -479, -478, 319, 272, 86, 87, -390, -402, -359, 87, + -291, -290, 552, -417, -420, 84, -420, 84, -420, 84, + -420, 84, 87, -274, -363, 253, -137, 86, 87, 87, + -344, -363, -527, 92, -534, 251, -530, -531, 458, -524, + 21, 456, 21, 21, -143, 160, 66, 117, 467, 467, + 467, -232, -349, 92, 92, -232, -231, 36, 461, 395, + -421, 259, 357, 358, 96, 556, 343, 344, 362, 361, + 360, 363, 21, -456, -274, -315, -383, -383, 102, 102, + 87, 160, -363, 268, 86, -397, -391, -390, 268, 87, + -363, -297, -295, -296, 83, 473, 310, 311, 87, -548, + -548, -548, -548, -298, 87, 160, -396, 87, 160, -541, + 86, 102, -529, -528, -530, 21, -527, 21, -527, -527, + 463, 556, -463, -232, 92, -359, -359, 92, 92, 342, + -359, -359, -359, -339, 86, -468, -478, -477, -397, 87, + 160, -439, -296, 83, -295, 83, 16, 15, -420, -420, + -420, -420, 86, 87, -363, -544, 32, 87, -540, -539, + -340, -535, -363, 459, 460, 92, -527, 128, 557, -618, + -617, 641, 102, 102, -363, 102, 102, 102, -453, -458, + 87, -391, -294, 307, 308, 32, 173, -294, -396, -543, + -542, -341, 87, 160, 159, 92, 558, 92, 87, -474, + 107, 42, 309, 87, 160, 128, -539, -363, -542, 42, + -390, 159, -363, } var yyDef = [...]int{ @@ -9725,399 +9740,399 @@ var yyDef = [...]int{ 411, 412, 414, 413, -2, 0, 0, 736, 0, 0, 0, 814, 0, 0, 0, 857, 875, 23, 0, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 0, 0, 19, 0, 19, 0, 0, 0, 1425, 1426, - 1427, 1428, 2232, 2202, -2, 1964, 1938, 2126, 2127, 2021, - 2034, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, - 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, - 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, - 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, - 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, - 2319, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, - 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, - 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, - 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, - 1933, 1934, 1935, 1936, 1937, 1939, 1940, 1941, 1942, 1943, - 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, - 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, - 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, - 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, - 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, - 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, - 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023, 2024, 2025, - 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2036, 2037, - 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, - 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, - 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, - 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, - 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, - 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, - 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, - 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, - 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2128, 2129, - 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, - 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, - 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, -2, - 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, - 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, - 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, - 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, - 2200, 2201, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, - 2211, 2212, 2213, 2214, 2215, 2216, 2217, -2, -2, -2, - 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, - 2231, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, - 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, - 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 0, 314, - 312, 1908, 1938, 1964, 2021, 2034, 2035, 2074, 2126, 2127, - 2159, 2202, 2218, 2219, 2220, 2232, 0, 0, 1012, 0, - 784, 0, 0, 789, 1372, 784, 351, 725, 726, 814, - 840, 685, 0, 389, 0, 1954, 393, 2209, 0, 0, - 0, 0, 682, 383, 384, 385, 386, 387, 388, 0, - 0, 985, 0, 0, 379, 0, 345, 2024, 2231, 1429, - 0, 0, 0, 0, 0, 201, 1138, 203, 1140, 207, - 215, 0, 0, 0, 220, 221, 224, 225, 226, 227, - 228, 0, 232, 0, 234, 237, 0, 239, 240, 0, - 243, 244, 245, 0, 255, 256, 257, 1141, 1142, 1143, - -2, 130, 1010, 1865, 1751, 0, 1758, 1771, 1782, 1511, - 1512, 1513, 1514, 0, 0, 0, 0, 0, 0, 1522, - 1523, 0, 1553, 2274, 2315, 2316, 0, 1531, 1532, 1533, - 1534, 1535, 1536, 0, 141, 153, 154, 1804, 1805, 1806, - 1807, 1808, 1809, 1810, 0, 1812, 1813, 1814, 1722, 1498, - 1425, 0, 2283, 0, 2305, 2310, 2311, 2312, 2313, 2304, - 0, 0, 1706, 0, 1696, 0, 0, -2, -2, 0, - 0, 2099, -2, 2317, 2318, 2319, 2280, 2301, 2309, 2284, - 2285, 2308, 2276, 2277, 2278, 2271, 2272, 2273, 2275, 2287, - 2289, 2300, 0, 2296, 2306, 2307, 2207, 0, 0, 2254, - 0, 0, 0, 2249, 155, 156, -2, -2, -2, -2, + 0, 0, 19, 0, 19, 0, 0, 0, 1424, 1425, + 1426, 1427, 2230, 2200, -2, 1963, 1937, 2124, 2125, 2020, + 2032, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, + 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, + 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, + 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, + 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, + 2317, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, + 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, + 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, + 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, + 1932, 1933, 1934, 1935, 1936, 1938, 1939, 1940, 1941, 1942, + 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, + 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, + 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, + 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, + 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, + 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, + 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2024, + 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2034, 2035, 2036, + 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, + 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, + 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, + 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, + 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, + 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, + 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, + 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, + 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2126, 2127, 2128, + 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, + 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, + 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, -2, 2158, + 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, + 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, + 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, + 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, + 2199, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, + 2210, 2211, 2212, 2213, 2214, 2215, -2, -2, -2, 2219, + 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, + 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, + 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, + 2251, 2252, 2253, 2254, 2255, 2256, 2257, 0, 314, 312, + 1907, 1937, 1963, 2020, 2032, 2033, 2072, 2124, 2125, 2157, + 2200, 2216, 2217, 2218, 2230, 0, 0, 1012, 0, 784, + 0, 0, 789, 1371, 784, 351, 725, 726, 814, 840, + 685, 0, 389, 0, 1953, 393, 2207, 0, 0, 0, + 0, 682, 383, 384, 385, 386, 387, 388, 0, 0, + 985, 0, 0, 379, 0, 345, 2022, 2229, 1428, 0, + 0, 0, 0, 0, 201, 1138, 203, 1140, 207, 215, + 0, 0, 0, 220, 221, 224, 225, 226, 227, 228, + 0, 232, 0, 234, 237, 0, 239, 240, 0, 243, + 244, 245, 0, 255, 256, 257, 1141, 1142, 1143, -2, + 130, 1010, 1864, 1750, 0, 1757, 1770, 1781, 1510, 1511, + 1512, 1513, 0, 0, 0, 0, 0, 0, 1521, 1522, + 0, 1552, 2272, 2313, 2314, 0, 1530, 1531, 1532, 1533, + 1534, 1535, 0, 141, 153, 154, 1803, 1804, 1805, 1806, + 1807, 1808, 1809, 0, 1811, 1812, 1813, 1721, 1497, 1424, + 0, 2281, 0, 2303, 2308, 2309, 2310, 2311, 2302, 0, + 0, 1705, 0, 1695, 0, 0, -2, -2, 0, 0, + 2097, -2, 2315, 2316, 2317, 2278, 2299, 2307, 2282, 2283, + 2306, 2274, 2275, 2276, 2269, 2270, 2271, 2273, 2285, 2287, + 2298, 0, 2294, 2304, 2305, 2205, 0, 0, 2252, 0, + 0, 0, 2247, 155, 156, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, 1717, -2, 1719, -2, 1721, -2, 1724, - -2, -2, -2, -2, 1729, 1730, -2, 1732, -2, -2, - -2, -2, -2, -2, -2, 1708, 1709, 1710, 1711, 1700, - 1701, 1702, 1703, 1704, 1705, -2, -2, -2, 840, 933, - 0, 840, 0, 815, 862, 865, 868, 871, 818, 0, - 0, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 340, 341, 329, 331, 0, 335, 0, 0, - 331, 328, 322, 0, 1182, 1182, 1182, 0, 0, 0, - 1182, 1182, 1182, 1182, 1182, 0, 1182, 0, 0, 0, - 0, 0, 1182, 0, 1047, 1145, 1146, 1147, 1180, 1181, - 1258, 0, 0, 0, 741, 737, 738, 739, 740, 828, - 0, 830, 833, 0, 0, 662, 662, 900, 900, 0, - 608, 0, 0, 0, 662, 0, 622, 614, 0, 0, - 0, 662, 0, 0, 835, 835, 0, 665, 672, 662, - 662, -2, 662, 662, 659, 662, 0, 0, 1196, 628, - 629, 630, 614, 614, 633, 634, 635, 645, 646, 673, - 1889, 0, 0, 536, 536, 0, 536, 536, 0, 536, - 536, 536, 0, 743, 1980, 2069, 1961, 2040, 1918, 2024, - 2231, 0, 287, 2099, 292, 0, 1963, 1983, 0, 0, - 2002, 0, -2, 0, 367, 840, 0, 0, 814, 0, - 0, 0, 0, 536, 536, 536, 536, 536, 1257, 536, - 536, 536, 536, 536, 0, 0, 0, 536, 536, 536, - 536, 0, 876, 877, 879, 880, 881, 882, 883, 884, - 885, 886, 887, 888, 5, 6, 19, 0, 0, 0, - 0, 0, 0, 109, 108, 0, 1866, 1884, 1817, 1818, - 1819, 1871, 1821, 1875, 1875, 1875, 1875, 1850, 1851, 1852, - 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1875, 1875, 0, - 0, 1864, 1841, 1873, 1873, 1873, 1871, 1868, 1822, 1823, + -2, -2, 1716, -2, 1718, -2, 1720, -2, 1723, -2, + -2, -2, -2, 1728, 1729, -2, 1731, -2, -2, -2, + -2, -2, -2, -2, 1707, 1708, 1709, 1710, 1699, 1700, + 1701, 1702, 1703, 1704, -2, -2, -2, 840, 933, 0, + 840, 0, 815, 862, 865, 868, 871, 818, 0, 0, + 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 340, 341, 329, 331, 0, 335, 0, 0, 331, + 328, 322, 0, 1181, 1181, 1181, 0, 0, 0, 1181, + 1181, 1181, 1181, 1181, 0, 1181, 0, 0, 0, 0, + 0, 1181, 0, 1047, 1145, 1146, 1147, 1179, 1180, 1257, + 0, 0, 0, 741, 737, 738, 739, 740, 828, 0, + 830, 833, 0, 0, 662, 662, 900, 900, 0, 608, + 0, 0, 0, 662, 0, 622, 614, 0, 0, 0, + 662, 0, 0, 835, 835, 0, 665, 672, 662, 662, + -2, 662, 662, 659, 662, 0, 0, 1195, 628, 629, + 630, 614, 614, 633, 634, 635, 645, 646, 673, 1888, + 0, 0, 536, 536, 0, 536, 536, 0, 536, 536, + 536, 0, 743, 1979, 2067, 1960, 2038, 1917, 2022, 2229, + 0, 287, 2097, 292, 0, 1962, 1982, 0, 0, 2001, + 0, -2, 0, 367, 840, 0, 0, 814, 0, 0, + 0, 0, 536, 536, 536, 536, 536, 1256, 536, 536, + 536, 536, 536, 0, 0, 0, 536, 536, 536, 536, + 0, 876, 877, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 5, 6, 19, 0, 0, 0, 0, + 0, 0, 109, 108, 0, 1865, 1883, 1816, 1817, 1818, + 1870, 1820, 1874, 1874, 1874, 1874, 1849, 1850, 1851, 1852, + 1853, 1854, 1855, 1856, 1857, 1858, 1874, 1874, 0, 0, + 1863, 1840, 1872, 1872, 1872, 1870, 1867, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, - 1834, 1835, 1878, 1878, 1881, 1881, 1878, 0, 429, 427, - 428, 1747, 0, 0, 0, 0, 784, 788, 1370, 0, - 0, 0, 840, -2, 0, 0, 686, 390, 1430, 0, - 0, 394, 0, 395, 0, 0, 397, 0, 0, 0, - 418, 0, 421, 405, 406, 407, 408, 401, 0, 181, - 0, 381, 382, 0, 0, 347, 0, 0, 0, 537, - 0, 0, 0, 0, 0, 0, 212, 208, 216, 219, - 229, 236, 0, 248, 250, 253, 209, 217, 222, 223, - 230, 251, 210, 213, 214, 218, 252, 254, 211, 231, - 235, 249, 233, 238, 241, 242, 247, 0, 182, 0, - 0, 0, 0, 0, 1757, 0, 0, 1790, 1791, 1792, - 1793, 1794, 1795, 1796, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -2, 1751, 0, 0, 1517, 1518, 1519, - 1520, 0, 1524, 0, 1554, 0, 0, 0, 0, 0, - 0, 1811, 1815, 0, 1747, 1747, 0, 1747, 1743, 0, - 0, 0, 0, 0, 0, 1747, 1679, 0, 0, 1681, - 1697, 0, 0, 1683, 1684, 0, 1687, 1688, 1747, 0, - 1747, 1692, 1747, 1747, 1747, 1675, 1676, 0, 1743, 1743, - 1743, 1743, 0, 0, 1743, 1743, 1743, 1743, 1743, 1743, - 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 0, - 0, 0, 0, 835, 0, 841, 0, -2, 0, 859, - 861, 863, 864, 866, 867, 869, 870, 872, 873, 820, - 0, 0, 105, 0, 0, 0, 0, 0, 0, 71, - 73, 0, 0, 0, 0, 0, 0, 333, 0, 338, - 324, 2061, 0, 323, 0, 0, 0, 0, 0, 1009, - 0, 0, 1182, 1182, 1182, 1048, 0, 0, 0, 0, - 0, 0, 0, 0, 1182, 1182, 1182, 1182, 0, 1202, - 0, 0, 0, 743, 742, 0, 829, 0, 0, 70, - 597, 598, 599, 900, 0, 0, 601, 602, 0, 603, - 0, 0, 614, 662, 662, 620, 621, 616, 615, 668, - 669, 665, 0, 665, 665, 900, 0, 639, 640, 641, - 662, 662, 647, 836, 0, 648, 649, 665, 0, 670, - 671, 900, 0, 0, 900, 900, 0, 657, 658, 660, - 662, 0, 0, 1182, 0, 678, 616, 616, 1890, 1891, - 0, 0, 1193, 0, 0, 0, 0, 681, 0, 0, - 0, 445, 446, 0, 0, 744, 0, 266, 270, 0, - 273, 0, 2069, 0, 2069, 0, 0, 280, 0, 0, - 0, 0, 0, 0, 310, 311, 0, 0, 0, 0, - 301, 304, 1364, 1365, 1135, 1136, 305, 306, 359, 360, - 0, 835, 858, 860, 854, 855, 856, 0, 1184, 0, - 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, - 719, 0, 1027, 721, 0, 0, 0, 0, 0, 908, - 902, 904, 980, 141, 878, 8, 126, 123, 0, 19, - 0, 0, 19, 19, 0, 19, 315, 0, 1887, 1885, - 1886, 1820, 1872, 0, 1846, 0, 1847, 1848, 1849, 1860, - 1861, 0, 0, 1842, 0, 1843, 1844, 1845, 1836, 0, - 1837, 1838, 0, 1839, 1840, 313, 426, 0, 0, 1748, - 1013, 0, 762, 776, 757, 0, 765, 0, 0, 1372, - 0, 0, 0, 0, 745, 776, 747, 0, 765, 835, - 812, 0, 790, 0, 0, 391, 0, 402, 396, 0, - 403, 398, 399, 0, 0, 420, 422, 423, 424, 409, - 410, 683, 376, 377, 378, 368, 369, 370, 371, 372, - 373, 374, 375, 0, 0, 380, 151, 0, 348, 349, - 0, 0, 0, 195, 196, 197, 198, 199, 200, 202, - 186, 708, 710, 1127, 1139, 0, 1130, 0, 205, 246, - 178, 0, 0, 0, 1752, 1753, 1754, 1755, 1756, 1761, - 0, 1763, 1765, 1767, 1769, 0, 1787, -2, -2, 1499, + 1834, 1877, 1877, 1880, 1880, 1877, 0, 429, 427, 428, + 1746, 0, 0, 0, 0, 784, 788, 1369, 0, 0, + 0, 840, -2, 0, 0, 686, 390, 1429, 0, 0, + 394, 0, 395, 0, 0, 397, 0, 0, 0, 418, + 0, 421, 405, 406, 407, 408, 401, 0, 181, 0, + 381, 382, 0, 0, 347, 0, 0, 0, 537, 0, + 0, 0, 0, 0, 0, 212, 208, 216, 219, 229, + 236, 0, 248, 250, 253, 209, 217, 222, 223, 230, + 251, 210, 213, 214, 218, 252, 254, 211, 231, 235, + 249, 233, 238, 241, 242, 247, 0, 182, 0, 0, + 0, 0, 0, 1756, 0, 0, 1789, 1790, 1791, 1792, + 1793, 1794, 1795, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -2, 1750, 0, 0, 1516, 1517, 1518, 1519, + 0, 1523, 0, 1553, 0, 0, 0, 0, 0, 0, + 1810, 1814, 0, 1746, 1746, 0, 1746, 1742, 0, 0, + 0, 0, 0, 0, 1746, 1678, 0, 0, 1680, 1696, + 0, 0, 1682, 1683, 0, 1686, 1687, 1746, 0, 1746, + 1691, 1746, 1746, 1746, 1674, 1675, 0, 1742, 1742, 1742, + 1742, 0, 0, 1742, 1742, 1742, 1742, 1742, 1742, 1742, + 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 0, 0, + 0, 0, 835, 0, 841, 0, -2, 0, 859, 861, + 863, 864, 866, 867, 869, 870, 872, 873, 820, 0, + 0, 105, 0, 0, 0, 0, 0, 0, 71, 73, + 0, 0, 0, 0, 0, 0, 333, 0, 338, 324, + 2059, 0, 323, 0, 0, 0, 0, 0, 1009, 0, + 0, 1181, 1181, 1181, 1048, 0, 0, 0, 0, 0, + 0, 0, 0, 1181, 1181, 1181, 1181, 0, 1201, 0, + 0, 0, 743, 742, 0, 829, 0, 0, 70, 597, + 598, 599, 900, 0, 0, 601, 602, 0, 603, 0, + 0, 614, 662, 662, 620, 621, 616, 615, 668, 669, + 665, 0, 665, 665, 900, 0, 639, 640, 641, 662, + 662, 647, 836, 0, 648, 649, 665, 0, 670, 671, + 900, 0, 0, 900, 900, 0, 657, 658, 660, 662, + 0, 0, 1181, 0, 678, 616, 616, 1889, 1890, 0, + 0, 1192, 0, 0, 0, 0, 681, 0, 0, 0, + 445, 446, 0, 0, 744, 0, 266, 270, 0, 273, + 0, 2067, 0, 2067, 0, 0, 280, 0, 0, 0, + 0, 0, 0, 310, 311, 0, 0, 0, 0, 301, + 304, 1363, 1364, 1135, 1136, 305, 306, 359, 360, 0, + 835, 858, 860, 854, 855, 856, 0, 1183, 0, 0, + 0, 0, 0, 536, 0, 0, 0, 0, 0, 719, + 0, 1027, 721, 0, 0, 0, 0, 0, 908, 902, + 904, 980, 141, 878, 8, 126, 123, 0, 19, 0, + 0, 19, 19, 0, 19, 315, 0, 1886, 1884, 1885, + 1819, 1871, 0, 1845, 0, 1846, 1847, 1848, 1859, 1860, + 0, 0, 1841, 0, 1842, 1843, 1844, 1835, 0, 1836, + 1837, 0, 1838, 1839, 313, 426, 0, 0, 1747, 1013, + 0, 762, 776, 757, 0, 765, 0, 0, 1371, 0, + 0, 0, 0, 745, 776, 747, 0, 765, 835, 812, + 0, 790, 0, 0, 391, 0, 402, 396, 0, 403, + 398, 399, 0, 0, 420, 422, 423, 424, 409, 410, + 683, 376, 377, 378, 368, 369, 370, 371, 372, 373, + 374, 375, 0, 0, 380, 151, 0, 348, 349, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 202, 186, + 708, 710, 1127, 1139, 0, 1130, 0, 205, 246, 178, + 0, 0, 0, 1751, 1752, 1753, 1754, 1755, 1760, 0, + 1762, 1764, 1766, 1768, 0, 1786, -2, -2, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, - 1510, 1772, 1785, 1786, 0, 0, 0, 0, 0, 0, - 1783, 1783, 1778, 0, 1537, 1366, 1367, 1515, 0, 0, - 1551, 1555, 0, 0, 0, 0, 0, 0, 1163, 1871, - 0, 142, 1742, 1646, 1647, 1648, 1649, 1650, 1651, 1652, + 1771, 1784, 1785, 0, 0, 0, 0, 0, 0, 1782, + 1782, 1777, 0, 1536, 1365, 1366, 1514, 0, 0, 1550, + 1554, 0, 0, 0, 0, 0, 0, 1162, 1870, 0, + 142, 1741, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, - 1673, 1674, 0, 0, 1751, 0, 0, 0, 1744, 1745, - 0, 0, 0, 1634, 0, 0, 1640, 1641, 1642, 0, - 771, 0, 1707, 1680, 1698, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 932, 934, 0, 780, 782, 783, 809, - 790, 816, 0, 0, 0, 101, 106, 0, 1225, 0, - 0, 0, 0, 0, 0, 0, 74, 1197, 75, 1199, - 342, 343, 0, 0, 337, 325, 2061, 327, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1063, - 1064, 534, 1121, 0, 0, 0, 1137, 1167, 1178, 0, - 0, 0, 0, 0, 1231, 1049, 1054, 1055, 1056, 1050, - 1051, 1057, 1058, 0, 831, 0, 0, 949, 600, 663, - 664, 901, 604, 0, 0, 611, 2024, 616, 900, 900, - 623, 617, 624, 667, 625, 626, 627, 665, 900, 900, - 837, 662, 665, 650, 666, 665, 1372, 654, 0, 661, - 1372, 679, 1372, 0, 677, 631, 632, 1233, 833, 443, - 444, 449, 451, 0, 501, 501, 501, 483, 501, 0, - 0, 471, 1892, 0, 0, 0, 0, 480, 1892, 0, - 0, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 0, 0, - 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, - 1892, 0, 1892, 1892, 1892, 1892, 1892, 1350, 1892, 0, - 1194, 491, 492, 493, 494, 499, 500, 0, 0, 529, - 0, 0, 1062, 0, 534, 0, 0, 1104, 0, 0, - 913, 0, 914, 915, 916, 911, 951, 975, 975, 0, - 975, 955, 1372, 0, 0, 0, 278, 279, 267, 0, - 268, 0, 0, 281, 282, 0, 284, 285, 286, 293, - 1961, 2040, 288, 290, 0, 0, 294, 307, 308, 309, - 0, 0, 299, 300, 0, 0, 362, 363, 365, 0, - 790, 1198, 72, 1185, 705, 1368, 706, 707, 711, 0, - 0, 714, 715, 716, 717, 718, 1029, 0, 0, 1113, - 1114, 1115, 1184, 900, 0, 909, 0, 905, 981, 0, - 983, 0, 0, 124, 19, 0, 117, 114, 0, 0, - 0, 0, 0, 1867, 1816, 1888, 0, 0, 0, 1869, - 0, 0, 0, 0, 0, 107, 792, 752, 0, 756, - 773, 0, 777, 0, 0, 769, 761, 766, 0, 0, - 786, 753, 1371, 0, 0, 0, 0, 746, 0, 0, - 751, 790, 0, 813, 842, 843, 846, 1431, 0, 404, - 400, 419, 0, 0, 0, 0, 189, 1124, 0, 190, - 194, 184, 0, 0, 0, 1129, 0, 1126, 1131, 0, - 204, 0, 0, 179, 180, 1216, 1225, 0, 0, 0, - 1762, 1764, 1766, 1768, 1770, 0, 1773, 1783, 1783, 1779, - 0, 1774, 0, 1776, 0, 1752, 1521, 0, 1556, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 846, 0, - 0, 1624, 1625, 0, 0, 1629, 0, 1631, 1632, 1633, - 1635, 0, 0, 0, 1639, 0, 1678, 1699, 1682, 1685, - 0, 1689, 0, 1691, 1693, 1694, 1695, 0, 840, 840, - 0, 0, 1595, 1595, 1595, 0, 0, 0, 0, 1595, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1540, 0, 1541, 1542, 0, 0, 0, 935, 810, - 0, 0, 0, 0, 0, 1223, 0, 91, 0, 0, - 0, 0, 96, 0, 0, 76, 344, 332, 334, 0, - 326, 0, 1183, 0, 0, 0, 0, -2, 1029, 833, - 0, 833, 1074, 1892, 538, 0, 0, 1123, 0, 1093, - 0, 0, 0, -2, 0, 0, 0, 1178, 0, 0, - 0, 1235, 0, 0, 0, 730, 734, 23, 834, 0, - 607, 605, 0, 609, 0, 610, 662, 618, 619, 900, - 642, 643, 0, 0, 900, 662, 662, 653, 665, 674, - 0, 675, 1372, 1235, 0, 0, 1193, 1301, 1269, 461, - 0, 1385, 1386, 502, 0, 1392, 1401, 1182, 1463, 0, - 1401, 0, 0, 1403, 1404, 0, 0, 0, 0, 484, - 485, 0, 470, 0, 0, 0, 0, 0, 0, 469, - 0, 0, 512, 0, 0, 0, 0, 0, 1893, 1892, - 1892, 0, 478, 479, 0, 482, 0, 0, 0, 0, - 0, 0, 0, 0, 1892, 1892, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1341, 0, 0, - 0, 0, 0, 0, 0, 1356, 1357, 0, 1074, 1892, - 0, 0, 0, 0, 538, 1118, 1118, 1091, 1109, 0, - 447, 448, 509, 0, 0, 0, 0, 0, 0, 0, - 941, 0, 0, 0, 940, 0, 0, 0, 0, 0, - 0, 0, 833, 976, 0, 978, 979, 953, -2, 0, - 913, 958, 1747, 0, 271, 272, 0, 0, 277, 295, - 297, 269, 0, 0, 0, 296, 298, 302, 303, 361, - 364, 366, 852, 0, 0, 1259, 0, 1030, 1031, 1033, - 1034, 0, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, 1945, -2, -2, -2, -2, + 1673, 0, 0, 1750, 0, 0, 0, 1743, 1744, 0, + 0, 0, 1633, 0, 0, 1639, 1640, 1641, 0, 771, + 0, 1706, 1679, 1697, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 932, 934, 0, 780, 782, 783, 809, 790, + 816, 0, 0, 0, 101, 106, 0, 1224, 0, 0, + 0, 0, 0, 0, 0, 74, 1196, 75, 1198, 342, + 343, 0, 0, 337, 325, 2059, 327, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1063, 1064, + 534, 1121, 0, 0, 0, 1137, 1166, 1177, 0, 0, + 0, 0, 0, 1230, 1049, 1054, 1055, 1056, 1050, 1051, + 1057, 1058, 0, 831, 0, 0, 949, 600, 663, 664, + 901, 604, 0, 0, 611, 2022, 616, 900, 900, 623, + 617, 624, 667, 625, 626, 627, 665, 900, 900, 837, + 662, 665, 650, 666, 665, 1371, 654, 0, 661, 1371, + 679, 1371, 0, 677, 631, 632, 1232, 833, 443, 444, + 449, 451, 0, 501, 501, 501, 483, 501, 0, 0, + 471, 1891, 0, 0, 0, 0, 480, 1891, 0, 0, + 1891, 1891, 1891, 1891, 1891, 1891, 1891, 0, 0, 1891, + 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, + 0, 1891, 1891, 1891, 1891, 1891, 1349, 1891, 0, 1193, + 491, 492, 493, 494, 499, 500, 0, 0, 529, 0, + 0, 1062, 0, 534, 0, 0, 1104, 0, 0, 913, + 0, 914, 915, 916, 911, 951, 975, 975, 0, 975, + 955, 1371, 0, 0, 0, 278, 279, 267, 0, 268, + 0, 0, 281, 282, 0, 284, 285, 286, 293, 1960, + 2038, 288, 290, 0, 0, 294, 307, 308, 309, 0, + 0, 299, 300, 0, 0, 362, 363, 365, 0, 790, + 1197, 72, 1184, 705, 1367, 706, 707, 711, 0, 0, + 714, 715, 716, 717, 718, 1029, 0, 0, 1113, 1114, + 1115, 1183, 900, 0, 909, 0, 905, 981, 0, 983, + 0, 0, 124, 19, 0, 117, 114, 0, 0, 0, + 0, 0, 1866, 1815, 1887, 0, 0, 0, 1868, 0, + 0, 0, 0, 0, 107, 792, 752, 0, 756, 773, + 0, 777, 0, 0, 769, 761, 766, 0, 0, 786, + 753, 1370, 0, 0, 0, 0, 746, 0, 0, 751, + 790, 0, 813, 842, 843, 846, 1430, 0, 404, 400, + 419, 0, 0, 0, 0, 189, 1124, 0, 190, 194, + 184, 0, 0, 0, 1129, 0, 1126, 1131, 0, 204, + 0, 0, 179, 180, 1215, 1224, 0, 0, 0, 1761, + 1763, 1765, 1767, 1769, 0, 1772, 1782, 1782, 1778, 0, + 1773, 0, 1775, 0, 1751, 1520, 0, 1555, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 846, 0, 0, + 1623, 1624, 0, 0, 1628, 0, 1630, 1631, 1632, 1634, + 0, 0, 0, 1638, 0, 1677, 1698, 1681, 1684, 0, + 1688, 0, 1690, 1692, 1693, 1694, 0, 840, 840, 0, + 0, 1594, 1594, 1594, 0, 0, 0, 0, 1594, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1539, 0, 1540, 1541, 0, 0, 0, 935, 810, 0, + 0, 0, 0, 0, 1222, 0, 91, 0, 0, 0, + 0, 96, 0, 0, 76, 344, 332, 334, 0, 326, + 0, 1182, 0, 0, 0, 0, -2, 1029, 833, 0, + 833, 1074, 1891, 538, 0, 0, 1123, 0, 1093, 0, + 0, 0, -2, 0, 0, 0, 1177, 0, 0, 0, + 1234, 0, 0, 0, 730, 734, 23, 834, 0, 607, + 605, 0, 609, 0, 610, 662, 618, 619, 900, 642, + 643, 0, 0, 900, 662, 662, 653, 665, 674, 0, + 675, 1371, 1234, 0, 0, 1192, 1300, 1268, 461, 0, + 1384, 1385, 502, 0, 1391, 1400, 1181, 1462, 0, 1400, + 0, 0, 1402, 1403, 0, 0, 0, 0, 484, 485, + 0, 470, 0, 0, 0, 0, 0, 0, 469, 0, + 0, 512, 0, 0, 0, 0, 0, 1892, 1891, 1891, + 0, 478, 479, 0, 482, 0, 0, 0, 0, 0, + 0, 0, 0, 1891, 1891, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1340, 0, 0, 0, + 0, 0, 0, 0, 1355, 1356, 0, 1074, 1891, 0, + 0, 0, 0, 538, 1118, 1118, 1091, 1109, 0, 447, + 448, 509, 0, 0, 0, 0, 0, 0, 0, 941, + 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, + 0, 833, 976, 0, 978, 979, 953, -2, 0, 913, + 958, 1746, 0, 271, 272, 0, 0, 277, 295, 297, + 269, 0, 0, 0, 296, 298, 302, 303, 361, 364, + 366, 852, 0, 0, 1258, 0, 1030, 1031, 1033, 1034, + 0, -2, -2, -2, -2, -2, -2, -2, -2, -2, + -2, -2, -2, -2, 1944, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - -2, -2, -2, -2, -2, -2, -2, 1028, 722, 1116, - 891, 903, 910, 982, 984, 142, 906, 0, 127, 19, - 126, 118, 119, 0, 19, 0, 0, 0, 0, 1877, - 1876, 1862, 0, 1863, 1874, 1879, 0, 1882, 0, 430, - 796, 0, 0, 776, 778, 0, 0, 776, 0, 0, - 785, 0, 0, 0, 0, 0, 0, 0, 776, 852, - 792, 0, 849, 847, 848, 0, 0, 684, 152, 425, - 0, 0, 0, 0, 0, 709, 0, 1128, 186, 0, - 0, 206, 0, 0, 0, 1225, 1220, 1746, 1775, 1777, - 0, 1784, 1780, 1516, 1525, 1552, 0, 0, 1558, 1570, - 1570, 0, 0, 0, 1561, 1875, 1875, 1564, 1871, 1873, - 1871, 1570, 1570, 0, 1164, 0, 1165, 846, 143, 0, - 0, 1630, 0, 0, 0, 772, 0, 0, 0, 1591, - 1593, 1595, 1595, 1602, 1596, 1603, 1604, 1595, 1595, 1595, - 1595, 1609, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, - 1595, 1595, 1595, 1589, 0, 0, 1805, 1806, 781, 0, - 0, 823, 824, 825, 826, 827, 0, 0, 61, 61, - 1225, 0, 100, 92, 0, 0, 0, 0, 0, 336, - 0, 77, 78, 80, 0, 0, 0, 0, 0, 0, - 0, 90, 0, 0, 1015, 1016, 1018, 0, 1021, 1022, - 1023, 0, 0, 1378, 0, 1078, 1075, 1076, 1077, 0, - 1118, 539, 540, 541, 542, 0, 0, 0, 1122, 0, - 0, 1086, 0, 0, 0, 1168, 1169, 1170, 1171, 1172, - 1173, 1174, 1175, -2, 1188, 0, 1372, 0, 0, 1378, - 1207, 0, 0, 1212, 0, 1378, 1378, 0, 1243, 0, - 1232, 784, 0, -2, 0, 0, 732, 0, 0, 950, - 606, 612, 900, 636, 838, 839, 1372, 900, 900, 662, - 680, 676, 1243, 1234, 0, 450, 501, 0, 1289, 0, - 0, 1295, 0, 1302, 454, 0, 503, 0, 1391, 1419, - 1402, 1419, 1464, 1419, 1419, 1182, 0, 503, 0, 0, - 472, 0, 0, 0, 0, 0, 468, 506, 846, 455, - 457, 458, 459, 510, 511, 513, 0, 515, 516, 474, - 486, 487, 488, 489, 490, 0, 0, 0, 481, 495, - 496, 497, 498, 456, 1318, 1319, 1320, 1323, 1324, 1325, - 1326, 0, 0, 1329, 1330, 1331, 1332, 1333, 1416, 1417, - 1418, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1358, 1359, - 1360, 1361, 1362, 1363, 1342, 1343, 1344, 1345, 1346, 1347, - 1348, 1349, 0, 0, 1353, 0, 0, 1078, 0, 0, - 0, 0, 0, 1118, 532, 0, 0, 533, 1093, 0, - 1111, 0, 1105, 1106, 0, 0, 754, 900, 354, 0, - 945, 936, 0, 920, 0, 922, 942, 923, 943, 0, - 0, 927, 0, 929, 0, 925, 926, 931, 924, 900, - 912, 952, 977, 954, 957, 959, 960, 966, 0, 0, - 0, 0, 265, 274, 275, 276, 283, 0, 558, 289, - 808, 0, 1369, 712, 713, 1260, 1261, 720, 0, 1035, - 889, 0, 0, 122, 125, 0, 120, 0, 0, 0, - 0, 112, 110, 1870, 0, 0, 798, 166, 0, 0, - 0, 774, 0, 779, 776, 760, 770, 759, 767, 768, - 787, 1373, 1374, 1375, 1376, 0, 776, 750, 749, 811, - 796, 844, 845, 0, 1432, 392, 0, 1125, 186, 191, - 192, 193, 187, 185, 1132, 0, 1134, 0, 1218, 0, - 0, 1781, 1557, 1526, 1559, 1571, 1572, 1560, 0, 1528, - 1529, 1562, 1563, 1565, 1566, 1567, 1568, 1569, 1530, 0, - 1166, 1626, 0, 1628, 1636, 1637, 0, 1686, 1690, 0, - 0, 0, 0, 0, 1600, 1601, 1605, 1606, 1607, 1608, + -2, -2, -2, -2, -2, -2, 1028, 722, 1116, 891, + 903, 910, 982, 984, 142, 906, 0, 127, 19, 126, + 118, 119, 0, 19, 0, 0, 0, 0, 1876, 1875, + 1861, 0, 1862, 1873, 1878, 0, 1881, 0, 430, 796, + 0, 0, 776, 778, 0, 0, 776, 0, 0, 785, + 0, 0, 0, 0, 0, 0, 0, 776, 852, 792, + 0, 849, 847, 848, 0, 0, 684, 152, 425, 0, + 0, 0, 0, 0, 709, 0, 1128, 186, 0, 0, + 206, 0, 0, 0, 1224, 1219, 1745, 1774, 1776, 0, + 1783, 1779, 1515, 1524, 1551, 0, 0, 1557, 1569, 1569, + 0, 0, 0, 1560, 1874, 1874, 1563, 1870, 1872, 1870, + 1569, 1569, 0, 1163, 0, 1164, 846, 143, 0, 0, + 1629, 0, 0, 0, 772, 0, 0, 0, 1590, 1592, + 1594, 1594, 1601, 1595, 1602, 1603, 1594, 1594, 1594, 1594, + 1608, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, + 1594, 1594, 1588, 0, 0, 1804, 1805, 781, 0, 0, + 823, 824, 825, 826, 827, 0, 0, 61, 61, 1224, + 0, 100, 92, 0, 0, 0, 0, 0, 336, 0, + 77, 78, 80, 0, 0, 0, 0, 0, 0, 0, + 90, 0, 0, 1015, 1016, 1018, 0, 1021, 1022, 1023, + 0, 0, 1377, 0, 1078, 1075, 1076, 1077, 0, 1118, + 539, 540, 541, 542, 0, 0, 0, 1122, 0, 0, + 1086, 0, 0, 0, 1167, 1168, 1169, 1170, 1171, 1172, + 1173, 1174, -2, 1187, 0, 1371, 0, 0, 1377, 1206, + 0, 0, 1211, 0, 1377, 1377, 0, 1242, 0, 1231, + 784, 0, -2, 0, 0, 732, 0, 0, 950, 606, + 612, 900, 636, 838, 839, 1371, 900, 900, 662, 680, + 676, 1242, 1233, 0, 450, 501, 0, 1288, 0, 0, + 1294, 0, 1301, 454, 0, 503, 0, 1390, 1418, 1401, + 1418, 1463, 1418, 1418, 1181, 0, 503, 0, 0, 472, + 0, 0, 0, 0, 0, 468, 506, 846, 455, 457, + 458, 459, 510, 511, 513, 0, 515, 516, 474, 486, + 487, 488, 489, 490, 0, 0, 0, 481, 495, 496, + 497, 498, 456, 1317, 1318, 1319, 1322, 1323, 1324, 1325, + 0, 0, 1328, 1329, 1330, 1331, 1332, 1415, 1416, 1417, + 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1357, 1358, 1359, + 1360, 1361, 1362, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + 1348, 0, 0, 1352, 0, 0, 1078, 0, 0, 0, + 0, 0, 1118, 532, 0, 0, 533, 1093, 0, 1111, + 0, 1105, 1106, 0, 0, 754, 900, 354, 0, 945, + 936, 0, 920, 0, 922, 942, 923, 943, 0, 0, + 927, 0, 929, 0, 925, 926, 931, 924, 900, 912, + 952, 977, 954, 957, 959, 960, 966, 0, 0, 0, + 0, 265, 274, 275, 276, 283, 0, 558, 289, 808, + 0, 1368, 712, 713, 1259, 1260, 720, 0, 1035, 889, + 0, 0, 122, 125, 0, 120, 0, 0, 0, 0, + 112, 110, 1869, 0, 0, 798, 166, 0, 0, 0, + 774, 0, 779, 776, 760, 770, 759, 767, 768, 787, + 1372, 1373, 1374, 1375, 0, 776, 750, 749, 811, 796, + 844, 845, 0, 1431, 392, 0, 1125, 186, 191, 192, + 193, 187, 185, 1132, 0, 1134, 0, 1217, 0, 0, + 1780, 1556, 1525, 1558, 1570, 1571, 1559, 0, 1527, 1528, + 1561, 1562, 1564, 1565, 1566, 1567, 1568, 1529, 0, 1165, + 1625, 0, 1627, 1635, 1636, 0, 1685, 1689, 0, 0, + 0, 0, 0, 1599, 1600, 1604, 1605, 1606, 1607, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, - 1620, 840, 1590, 0, 0, 0, 0, 0, 0, 0, - 821, 0, 0, 0, 63, 0, 63, 1224, 1226, 0, - 980, 0, 0, 97, 0, 0, 79, 81, 0, 2025, - 0, 0, 0, 0, 1184, 1008, 1024, 1020, 0, 0, - 0, 0, 1379, 1380, 1382, 1383, 1384, 0, 1046, 0, - 0, 1066, 1067, 1068, 1080, 0, 544, 545, 0, 0, - 0, 557, 553, 554, 555, 535, 1117, 1100, 0, 0, - 1089, 0, 0, 1099, 0, 1189, 1892, 1892, 1892, 1176, - 0, 0, 1303, 1892, 1892, 0, 1209, 1211, 1213, 0, - 0, 1307, 1246, 0, 0, 1237, 0, 975, 0, 0, - 900, 731, 734, 735, 832, 613, 651, 655, 652, 900, - 1246, 442, 1267, 0, 0, 0, 0, 0, 1299, 0, - 0, 1271, 0, 473, 504, 0, -2, 0, 1420, 0, - 1405, 1420, 0, 0, 1419, 0, 462, 503, 0, 0, - 0, 517, 522, 523, 0, 519, 520, 1459, 0, 521, - 0, 508, 0, 514, 1321, 1322, 0, 1327, 1328, 0, - 1352, 0, 0, 453, 524, 0, 0, 0, 525, 526, - 531, 1119, 1120, 1086, 0, 1100, 0, 1110, 0, 1107, - 1108, 840, 0, 0, 917, 946, 0, 0, 918, 0, - 919, 921, 944, 0, 938, 928, 930, 353, 961, 0, - 0, 963, 964, 965, 956, 291, 853, 1032, 0, 874, - 0, 0, 907, 0, 19, 0, 0, 115, 1880, 1883, - 800, 0, 797, 167, 0, 0, 0, 0, 764, 775, - 758, 1377, 748, 798, 850, 851, 188, 183, 1133, 1228, - 0, 1219, 0, 1483, 1539, 0, 1638, 0, 1595, 1592, - 1595, 1594, 1586, 0, 1543, 0, 1545, 1546, 1547, 0, - 1549, 1550, 0, 819, 0, 59, 0, 62, 60, 0, - 99, 93, 0, 0, 0, 82, 0, 0, 0, 0, - 0, 0, 88, 0, 0, 1017, 1019, 0, 1052, 1307, - 0, 1052, 1079, 1065, 0, 0, 546, 547, 0, 550, - 556, 1081, 0, 0, 1083, 1084, 1085, 0, 0, 1097, - 0, 0, 0, 0, 0, 1179, 1195, 0, 0, 0, - -2, 0, 0, -2, 1206, 0, 1252, 0, 1244, 0, - 1236, 0, 1239, 900, 900, -2, 728, 733, 0, 656, - 1252, 1269, 0, 1290, 0, 0, 0, 0, 0, 0, - 0, 1270, 0, 1283, 505, 1421, -2, 1435, 1437, 0, - 1194, 1440, 1441, 0, 0, 0, 0, 0, 0, 1490, - 1449, 0, 0, 1453, 1454, 1455, 0, 0, 1458, 0, - 1799, 1800, 0, 1462, 0, 0, 0, 0, 0, 0, - 0, 1399, 463, 464, 0, 466, 467, 1892, 1460, 507, - 460, 1892, 476, 1351, 1354, 1355, 530, 527, 528, 1089, - 1092, 1103, 1112, 755, 835, 355, 356, 947, 0, 937, - 939, 970, 967, 0, 0, 1036, 890, 898, 2254, 2256, - 2253, 116, 121, 0, 0, 802, 0, 799, 0, 793, - 795, 177, 763, 800, 137, 169, 0, 0, 1527, 0, - 0, 0, 1627, 1677, 1598, 1599, 0, 1587, 0, 1581, - 1582, 1583, 1588, 0, 0, 822, 817, 64, 95, 0, - 98, 68, 1184, 0, 1184, 0, 0, 0, 1011, 1025, - 0, 1038, 1045, 1059, 1200, 1381, 1044, 0, 0, 543, - 548, 0, 551, 552, 1101, 1100, 0, 1087, 1088, 0, - 1095, 0, 0, 1190, 1191, 1192, 0, 1304, 1305, 1306, - 1262, 1208, 0, -2, 1315, 0, 0, 1204, 1228, 1262, - 0, 1240, 0, 1247, 0, 1245, 1238, 840, 729, 1249, - 452, 1301, 1291, 0, 1293, 0, 0, 0, 0, 1272, - -2, 0, 1436, 1438, 1439, 1442, 1443, 1444, 1495, 1496, - 1497, 0, 0, 1447, 1492, 1493, 1494, 1448, 0, 0, - 0, 0, 0, 1797, 1798, 1488, 0, 0, 1406, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1407, 0, 0, - 0, 1398, 1400, 465, 0, 0, 1892, 1102, 352, 0, - 0, 971, 973, 968, 969, 892, 0, 0, 0, 0, - 111, 113, 128, 0, 801, 168, 0, 802, 139, 0, - 160, 0, 1229, 0, 1538, 0, 0, 0, 1597, 1584, - 0, 0, 0, 0, 0, 1801, 1802, 1803, 0, 1544, - 1548, 94, 0, 66, 0, 83, 1184, 84, 1184, 0, - 0, 0, 0, 1060, 1061, 1069, 1070, 0, 1072, 1073, - 549, 1082, 1090, 1094, 1097, 0, 1149, 1177, 1264, 0, - 1210, 1193, 1317, 1892, 1214, 1215, 1264, 0, 1309, 1892, - 1892, 1230, 0, 1242, 0, 1254, 0, 1248, 835, 441, - 0, 1251, 1287, 1292, 1294, 1296, 0, 1300, 1298, 1273, - -2, 0, 1281, 0, 0, 1445, 1446, 0, 0, 1696, - 1892, 0, 1478, 0, 1149, 1149, 1149, 1149, 0, 518, - 475, 0, 948, 962, 0, 899, 0, 0, 0, 0, - 0, 791, 129, 0, 138, 157, 0, 170, 171, 0, - 0, 0, 0, 1221, 0, 1486, 1487, 0, 1573, 0, - 0, 0, 1577, 1578, 1579, 1580, 1184, 68, 0, 85, - 86, 0, 1184, 0, 1037, 0, 1071, 1096, 1098, 1148, - 1203, 0, 1301, 1316, 0, 1205, 1308, 0, 0, 0, - 1241, 1253, 0, 1256, 727, 1250, 1268, 0, 1297, 1274, - 1282, 0, 1277, 0, 0, 0, 1491, 0, 1452, 0, - 1457, 1466, 1479, 0, 0, 1387, 0, 1389, 0, 1393, - 0, 1395, 0, 0, 477, 972, 974, 0, 1747, 894, - 895, 0, 804, 794, 140, 144, 0, 166, 163, 0, - 172, 0, 0, 0, 0, 1217, 0, 1484, 0, 1574, - 1575, 1576, 65, 67, 69, 1184, 87, 0, 1039, 1040, - 1053, 1150, 1892, 1892, 0, 0, 0, 1156, 1157, 1892, - 1892, 1892, 1892, 1162, 0, 1289, 1321, 1310, 1311, 1312, - 1255, 1288, 1276, 0, -2, 1284, 0, 0, 1749, 1759, - 1760, 1450, 1456, 1465, 1467, 1468, 0, 1480, 1481, 1482, - 1489, 1149, 1149, 1149, 1149, 1397, 893, 0, 0, 803, - 0, 131, 0, 0, 161, 162, 164, 0, 173, 0, - 175, 176, 0, 0, 1585, 89, 1041, 0, 0, 1153, - 1154, 0, 0, 0, 0, 0, 1265, 0, 1267, 1278, - -2, 0, 1286, 0, 1451, 1469, 0, 1470, 0, 0, - 0, 1388, 1390, 1394, 1396, 1747, 896, 805, 1227, 0, - 145, 0, 147, 149, 150, 1422, 158, 159, 165, 174, - 0, 0, 1026, 1042, 0, 1151, 1152, 1155, 1158, 1159, - 1160, 1161, 0, 1269, 1285, 1750, 1471, 1473, 1474, 0, - 0, 1472, 0, 132, 133, 0, 146, 0, 0, 1222, - 1485, 1043, 1266, 1263, 1475, 1477, 1476, 897, 0, 0, - 148, 1423, 134, 135, 136, 0, 1424, + 840, 1589, 0, 0, 0, 0, 0, 0, 0, 821, + 0, 0, 0, 63, 0, 63, 1223, 1225, 0, 980, + 0, 0, 97, 0, 0, 79, 81, 0, 2023, 0, + 0, 0, 0, 1183, 1008, 1024, 1020, 0, 0, 0, + 0, 1378, 1379, 1381, 1382, 1383, 0, 1046, 0, 0, + 1066, 1067, 1068, 1080, 0, 544, 545, 0, 0, 0, + 557, 553, 554, 555, 535, 1117, 1100, 0, 0, 1089, + 0, 0, 1099, 0, 1188, 1891, 1891, 1891, 1175, 0, + 0, 1302, 1891, 1891, 0, 1208, 1210, 1212, 0, 0, + 1306, 1245, 0, 0, 1236, 0, 975, 0, 0, 900, + 731, 734, 735, 832, 613, 651, 655, 652, 900, 1245, + 442, 1266, 0, 0, 0, 0, 0, 1298, 0, 0, + 1270, 0, 473, 504, 0, -2, 0, 1419, 0, 1404, + 1419, 0, 0, 1418, 0, 462, 503, 0, 0, 0, + 517, 522, 523, 0, 519, 520, 1458, 0, 521, 0, + 508, 0, 514, 1320, 1321, 0, 1326, 1327, 0, 1351, + 0, 0, 453, 524, 0, 0, 0, 525, 526, 531, + 1119, 1120, 1086, 0, 1100, 0, 1110, 0, 1107, 1108, + 840, 0, 0, 917, 946, 0, 0, 918, 0, 919, + 921, 944, 0, 938, 928, 930, 353, 961, 0, 0, + 963, 964, 965, 956, 291, 853, 1032, 0, 874, 0, + 0, 907, 0, 19, 0, 0, 115, 1879, 1882, 800, + 0, 797, 167, 0, 0, 0, 0, 764, 775, 758, + 1376, 748, 798, 850, 851, 188, 183, 1133, 1227, 0, + 1218, 0, 1482, 1538, 0, 1637, 0, 1594, 1591, 1594, + 1593, 1585, 0, 1542, 0, 1544, 1545, 1546, 0, 1548, + 1549, 0, 819, 0, 59, 0, 62, 60, 0, 99, + 93, 0, 0, 0, 82, 0, 0, 0, 0, 0, + 0, 88, 0, 0, 1017, 1019, 0, 1052, 1306, 0, + 1052, 1079, 1065, 0, 0, 546, 547, 0, 550, 556, + 1081, 0, 0, 1083, 1084, 1085, 0, 0, 1097, 0, + 0, 0, 0, 0, 1178, 1194, 0, 0, 0, -2, + 0, 0, -2, 1205, 0, 1251, 0, 1243, 0, 1235, + 0, 1238, 900, 900, -2, 728, 733, 0, 656, 1251, + 1268, 0, 1289, 0, 0, 0, 0, 0, 0, 0, + 1269, 0, 1282, 505, 1420, -2, 1434, 1436, 0, 1193, + 1439, 1440, 0, 0, 0, 0, 0, 0, 1489, 1448, + 0, 0, 1452, 1453, 1454, 0, 0, 1457, 0, 1798, + 1799, 0, 1461, 0, 0, 0, 0, 0, 0, 0, + 1398, 463, 464, 0, 466, 467, 1891, 1459, 507, 460, + 1891, 476, 1350, 1353, 1354, 530, 527, 528, 1089, 1092, + 1103, 1112, 755, 835, 355, 356, 947, 0, 937, 939, + 970, 967, 0, 0, 1036, 890, 898, 2252, 2254, 2251, + 116, 121, 0, 0, 802, 0, 799, 0, 793, 795, + 177, 763, 800, 137, 169, 0, 0, 1526, 0, 0, + 0, 1626, 1676, 1597, 1598, 0, 1586, 0, 1580, 1581, + 1582, 1587, 0, 0, 822, 817, 64, 95, 0, 98, + 68, 1183, 0, 1183, 0, 0, 0, 1011, 1025, 0, + 1038, 1045, 1059, 1199, 1380, 1044, 0, 0, 543, 548, + 0, 551, 552, 1101, 1100, 0, 1087, 1088, 0, 1095, + 0, 0, 1189, 1190, 1191, 0, 1303, 1304, 1305, 1261, + 1207, 0, -2, 1314, 0, 0, 1203, 1227, 1261, 0, + 1239, 0, 1246, 0, 1244, 1237, 840, 729, 1248, 452, + 1300, 1290, 0, 1292, 0, 0, 0, 0, 1271, -2, + 0, 1435, 1437, 1438, 1441, 1442, 1443, 1494, 1495, 1496, + 0, 0, 1446, 1491, 1492, 1493, 1447, 0, 0, 0, + 0, 0, 1796, 1797, 1487, 0, 0, 1405, 1407, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1406, 0, 0, 0, + 1397, 1399, 465, 0, 0, 1891, 1102, 352, 0, 0, + 971, 973, 968, 969, 892, 0, 0, 0, 0, 111, + 113, 128, 0, 801, 168, 0, 802, 139, 0, 160, + 0, 1228, 0, 1537, 0, 0, 0, 1596, 1583, 0, + 0, 0, 0, 0, 1800, 1801, 1802, 0, 1543, 1547, + 94, 0, 66, 0, 83, 1183, 84, 1183, 0, 0, + 0, 0, 1060, 1061, 1069, 1070, 0, 1072, 1073, 549, + 1082, 1090, 1094, 1097, 0, 1149, 1176, 1263, 0, 1209, + 1192, 1316, 1891, 1213, 1214, 1263, 0, 1308, 1891, 1891, + 1229, 0, 1241, 0, 1253, 0, 1247, 835, 441, 0, + 1250, 1286, 1291, 1293, 1295, 0, 1299, 1297, 1272, -2, + 0, 1280, 0, 0, 1444, 1445, 0, 0, 1695, 1891, + 0, 1477, 0, 1149, 1149, 1149, 1149, 0, 518, 475, + 0, 948, 962, 0, 899, 0, 0, 0, 0, 0, + 791, 129, 0, 138, 157, 0, 170, 171, 0, 0, + 0, 0, 1220, 0, 1485, 1486, 0, 1572, 0, 0, + 0, 1576, 1577, 1578, 1579, 1183, 68, 0, 85, 86, + 0, 1183, 0, 1037, 0, 1071, 1096, 1098, 1148, 1202, + 0, 1300, 1315, 0, 1204, 1307, 0, 0, 0, 1240, + 1252, 0, 1255, 727, 1249, 1267, 0, 1296, 1273, 1281, + 0, 1276, 0, 0, 0, 1490, 0, 1451, 0, 1456, + 1465, 1478, 0, 0, 1386, 0, 1388, 0, 1392, 0, + 1394, 0, 0, 477, 972, 974, 0, 1746, 894, 895, + 0, 804, 794, 140, 144, 0, 166, 163, 0, 172, + 0, 0, 0, 0, 1216, 0, 1483, 0, 1573, 1574, + 1575, 65, 67, 69, 1183, 87, 0, 1039, 1040, 1053, + 1150, 1891, 1891, 0, 0, 0, 1156, 1157, 1891, 1891, + 1891, 1161, 0, 1288, 1320, 1309, 1310, 1311, 1254, 1287, + 1275, 0, -2, 1283, 0, 0, 1748, 1758, 1759, 1449, + 1455, 1464, 1466, 1467, 0, 1479, 1480, 1481, 1488, 1149, + 1149, 1149, 1149, 1396, 893, 0, 0, 803, 0, 131, + 0, 0, 161, 162, 164, 0, 173, 0, 175, 176, + 0, 0, 1584, 89, 1041, 0, 0, 1153, 1154, 0, + 0, 0, 0, 1264, 0, 1266, 1277, -2, 0, 1285, + 0, 1450, 1468, 0, 1469, 0, 0, 0, 1387, 1389, + 1393, 1395, 1746, 896, 805, 1226, 0, 145, 0, 147, + 149, 150, 1421, 158, 159, 165, 174, 0, 0, 1026, + 1042, 0, 1151, 1152, 1155, 1158, 1159, 1160, 0, 1268, + 1284, 1749, 1470, 1472, 1473, 0, 0, 1471, 0, 132, + 133, 0, 146, 0, 0, 1221, 1484, 1043, 1265, 1262, + 1474, 1476, 1475, 897, 0, 0, 148, 1422, 134, 135, + 136, 0, 1423, } var yyTok1 = [...]int{ @@ -10126,14 +10141,14 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 119, 3, 3, 3, 150, 142, 3, 86, 87, 147, 145, 160, 146, 159, 148, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 667, 664, - 129, 128, 130, 3, 668, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 666, 663, + 129, 128, 130, 3, 667, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 152, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 665, 141, 666, 153, + 3, 3, 3, 664, 141, 665, 153, } var yyTok2 = [...]int{ @@ -10243,7 +10258,7 @@ var yyTok3 = [...]int{ 57970, 645, 57971, 646, 57972, 647, 57973, 648, 57974, 649, 57975, 650, 57976, 651, 57977, 652, 57978, 653, 57979, 654, 57980, 655, 57981, 656, 57982, 657, 57983, 658, 57984, 659, - 57985, 660, 57986, 661, 57987, 662, 57988, 663, 0, + 57985, 660, 57986, 661, 57987, 662, 0, } var yyErrorMessages = [...]struct { @@ -19630,8 +19645,6 @@ yydefault: opt1.HnswM = opt2.HnswM } else if opt2.HnswEfConstruction > 0 { opt1.HnswEfConstruction = opt2.HnswEfConstruction - } else if len(opt2.HnswQuantization) > 0 { - opt1.HnswQuantization = opt2.HnswQuantization } else if opt2.HnswEfSearch > 0 { opt1.HnswEfSearch = opt2.HnswEfSearch } else if opt2.Async { @@ -19644,7 +19657,7 @@ yydefault: case 1151: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7575 +//line mysql_sql.y:7573 { io := tree.NewIndexOption() io.KeyBlockSize = uint64(yyDollar[3].item.(int64)) @@ -19654,7 +19667,7 @@ yydefault: case 1152: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7581 +//line mysql_sql.y:7579 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19670,7 +19683,7 @@ yydefault: case 1153: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7593 +//line mysql_sql.y:7591 { io := tree.NewIndexOption() io.AlgoParamVectorOpType = yyDollar[2].str @@ -19680,7 +19693,7 @@ yydefault: case 1154: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7599 +//line mysql_sql.y:7597 { io := tree.NewIndexOption() io.Comment = yyDollar[2].str @@ -19690,7 +19703,7 @@ yydefault: case 1155: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7605 +//line mysql_sql.y:7603 { io := tree.NewIndexOption() io.ParserName = yyDollar[3].cstrUnion().Compare() @@ -19700,7 +19713,7 @@ yydefault: case 1156: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7611 +//line mysql_sql.y:7609 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_VISIBLE @@ -19710,7 +19723,7 @@ yydefault: case 1157: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7617 +//line mysql_sql.y:7615 { io := tree.NewIndexOption() io.Visible = tree.VISIBLE_TYPE_INVISIBLE @@ -19720,7 +19733,7 @@ yydefault: case 1158: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7623 +//line mysql_sql.y:7621 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19735,7 +19748,7 @@ yydefault: case 1159: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7634 +//line mysql_sql.y:7632 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19750,7 +19763,7 @@ yydefault: case 1160: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7645 +//line mysql_sql.y:7643 { val := int64(yyDollar[3].item.(int64)) if val <= 0 { @@ -19763,45 +19776,35 @@ yydefault: } yyVAL.union = yyLOCAL case 1161: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7656 - { - io := tree.NewIndexOption() - io.HnswQuantization = yyDollar[3].str - yyLOCAL = io - } - yyVAL.union = yyLOCAL - case 1162: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.IndexOption -//line mysql_sql.y:7662 +//line mysql_sql.y:7654 { io := tree.NewIndexOption() io.Async = true yyLOCAL = io } yyVAL.union = yyLOCAL - case 1163: + case 1162: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7671 +//line mysql_sql.y:7663 { yyLOCAL = []*tree.KeyPart{yyDollar[1].keyPartUnion()} } yyVAL.union = yyLOCAL - case 1164: + case 1163: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:7675 +//line mysql_sql.y:7667 { yyLOCAL = append(yyDollar[1].keyPartsUnion(), yyDollar[3].keyPartUnion()) } yyVAL.union = yyLOCAL - case 1165: + case 1164: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7681 +//line mysql_sql.y:7673 { // Order is parsed but just ignored as MySQL dtree. var ColName = yyDollar[1].unresolvedNameUnion() @@ -19816,10 +19819,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1166: + case 1165: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.KeyPart -//line mysql_sql.y:7695 +//line mysql_sql.y:7687 { var ColName *tree.UnresolvedName var Length int @@ -19833,74 +19836,74 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1167: + case 1166: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7709 +//line mysql_sql.y:7701 { yyLOCAL = tree.INDEX_TYPE_INVALID } yyVAL.union = yyLOCAL - case 1168: + case 1167: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7713 +//line mysql_sql.y:7705 { yyLOCAL = tree.INDEX_TYPE_BTREE } yyVAL.union = yyLOCAL - case 1169: + case 1168: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7717 +//line mysql_sql.y:7709 { yyLOCAL = tree.INDEX_TYPE_IVFFLAT } yyVAL.union = yyLOCAL - case 1170: + case 1169: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7721 +//line mysql_sql.y:7713 { yyLOCAL = tree.INDEX_TYPE_HNSW } yyVAL.union = yyLOCAL - case 1171: + case 1170: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7725 +//line mysql_sql.y:7717 { yyLOCAL = tree.INDEX_TYPE_MASTER } yyVAL.union = yyLOCAL - case 1172: + case 1171: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7729 +//line mysql_sql.y:7721 { yyLOCAL = tree.INDEX_TYPE_HASH } yyVAL.union = yyLOCAL - case 1173: + case 1172: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7733 +//line mysql_sql.y:7725 { yyLOCAL = tree.INDEX_TYPE_RTREE } yyVAL.union = yyLOCAL - case 1174: + case 1173: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.IndexType -//line mysql_sql.y:7737 +//line mysql_sql.y:7729 { yyLOCAL = tree.INDEX_TYPE_BSI } yyVAL.union = yyLOCAL - case 1175: + case 1174: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7743 +//line mysql_sql.y:7735 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var Name = tree.Identifier(yyDollar[4].str) @@ -19914,10 +19917,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1176: + case 1175: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7757 +//line mysql_sql.y:7749 { var t = tree.NewCloneDatabase() t.DstDatabase = tree.Identifier(yyDollar[4].str) @@ -19926,10 +19929,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1177: + case 1176: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7765 +//line mysql_sql.y:7757 { var t = tree.NewCloneDatabase() t.DstDatabase = tree.Identifier(yyDollar[4].str) @@ -19939,92 +19942,92 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1178: + case 1177: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7775 +//line mysql_sql.y:7767 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1179: + case 1178: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.SubscriptionOption -//line mysql_sql.y:7779 +//line mysql_sql.y:7771 { var From = tree.Identifier(yyDollar[2].str) var Publication = tree.Identifier(yyDollar[4].cstrUnion().Compare()) yyLOCAL = tree.NewSubscriptionOption(From, Publication) } yyVAL.union = yyLOCAL - case 1182: + case 1181: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7790 +//line mysql_sql.y:7782 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1183: + case 1182: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7794 +//line mysql_sql.y:7786 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1184: + case 1183: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7799 +//line mysql_sql.y:7791 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1185: + case 1184: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7803 +//line mysql_sql.y:7795 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1186: + case 1185: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7808 +//line mysql_sql.y:7800 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1187: + case 1186: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7812 +//line mysql_sql.y:7804 { yyLOCAL = yyDollar[1].createOptionsUnion() } yyVAL.union = yyLOCAL - case 1188: + case 1187: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7818 +//line mysql_sql.y:7810 { yyLOCAL = []tree.CreateOption{yyDollar[1].createOptionUnion()} } yyVAL.union = yyLOCAL - case 1189: + case 1188: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.CreateOption -//line mysql_sql.y:7822 +//line mysql_sql.y:7814 { yyLOCAL = append(yyDollar[1].createOptionsUnion(), yyDollar[2].createOptionUnion()) } yyVAL.union = yyLOCAL - case 1190: + case 1189: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7828 +//line mysql_sql.y:7820 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Charset = yyDollar[4].str @@ -20034,10 +20037,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1191: + case 1190: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7837 +//line mysql_sql.y:7829 { var IsDefault = yyDollar[1].defaultOptionalUnion() var Collate = yyDollar[4].str @@ -20047,35 +20050,35 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1192: + case 1191: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.CreateOption -//line mysql_sql.y:7846 +//line mysql_sql.y:7838 { var Encrypt = yyDollar[4].str yyLOCAL = tree.NewCreateOptionEncryption(Encrypt) } yyVAL.union = yyLOCAL - case 1193: + case 1192: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7852 +//line mysql_sql.y:7844 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1194: + case 1193: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7856 +//line mysql_sql.y:7848 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1195: + case 1194: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7862 +//line mysql_sql.y:7854 { var TableName = yyDollar[4].tableNameUnion() var Options = yyDollar[7].connectorOptionsUnion() @@ -20085,18 +20088,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1196: + case 1195: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7873 +//line mysql_sql.y:7865 { yyLOCAL = &tree.ShowConnectors{} } yyVAL.union = yyLOCAL - case 1197: + case 1196: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7879 +//line mysql_sql.y:7871 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20113,10 +20116,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1198: + case 1197: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7897 +//line mysql_sql.y:7889 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20133,10 +20136,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1199: + case 1198: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7915 +//line mysql_sql.y:7907 { var taskID uint64 switch v := yyDollar[4].item.(type) { @@ -20153,10 +20156,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1200: + case 1199: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7933 +//line mysql_sql.y:7925 { var Replace = yyDollar[2].sourceOptionalUnion() var IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20172,26 +20175,26 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1201: + case 1200: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7949 +//line mysql_sql.y:7941 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1202: + case 1201: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:7953 +//line mysql_sql.y:7945 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1203: + case 1202: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7962 +//line mysql_sql.y:7954 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20204,10 +20207,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1204: + case 1203: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7974 +//line mysql_sql.y:7966 { t := tree.NewCreateTable() t.IfNotExists = yyDollar[4].ifNotExistsUnion() @@ -20217,10 +20220,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1205: + case 1204: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7983 +//line mysql_sql.y:7975 { t := tree.NewCreateTable() t.IsClusterTable = true @@ -20233,10 +20236,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1206: + case 1205: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:7995 +//line mysql_sql.y:7987 { t := tree.NewCreateTable() t.IsDynamicTable = true @@ -20247,10 +20250,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1207: + case 1206: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8005 +//line mysql_sql.y:7997 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20261,10 +20264,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1208: + case 1207: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8015 +//line mysql_sql.y:8007 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20276,10 +20279,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1209: + case 1208: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8026 +//line mysql_sql.y:8018 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20290,10 +20293,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1210: + case 1209: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8036 +//line mysql_sql.y:8028 { t := tree.NewCreateTable() t.IsAsSelect = true @@ -20305,10 +20308,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1211: + case 1210: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8047 +//line mysql_sql.y:8039 { t := tree.NewCreateTable() t.IsAsLike = true @@ -20317,10 +20320,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1212: + case 1211: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8055 +//line mysql_sql.y:8047 { t := tree.NewCreateTable() t.Temporary = yyDollar[2].boolValUnion() @@ -20330,10 +20333,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1213: + case 1212: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8064 +//line mysql_sql.y:8056 { t := tree.NewCloneTable() t.CreateTable.Table = *yyDollar[5].tableNameUnion() @@ -20343,10 +20346,10 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1214: + case 1213: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8073 +//line mysql_sql.y:8065 { t := tree.NewCloneTable() t.CreateTable.Table = *yyDollar[5].tableNameUnion() @@ -20357,19 +20360,19 @@ yydefault: yyLOCAL = t } yyVAL.union = yyLOCAL - case 1215: + case 1214: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8085 +//line mysql_sql.y:8077 { yyLOCAL = yyDollar[1].loadParamUnion() yyLOCAL.Tail = yyDollar[2].tailParamUnion() } yyVAL.union = yyLOCAL - case 1216: + case 1215: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8092 +//line mysql_sql.y:8084 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20380,10 +20383,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1217: + case 1216: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8102 +//line mysql_sql.y:8094 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20397,10 +20400,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1218: + case 1217: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8115 +//line mysql_sql.y:8107 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20409,10 +20412,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1219: + case 1218: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8123 +//line mysql_sql.y:8115 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20422,10 +20425,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1220: + case 1219: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ExternParam -//line mysql_sql.y:8132 +//line mysql_sql.y:8124 { yyLOCAL = &tree.ExternParam{ ExParamConst: tree.ExParamConst{ @@ -20434,55 +20437,55 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1221: + case 1220: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8141 +//line mysql_sql.y:8133 { yyVAL.str = "" } - case 1222: + case 1221: yyDollar = yyS[yypt-4 : yypt+1] -//line mysql_sql.y:8145 +//line mysql_sql.y:8137 { yyVAL.str = yyDollar[4].str } - case 1223: + case 1222: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8151 +//line mysql_sql.y:8143 { yyLOCAL = yyDollar[1].strsUnion() } yyVAL.union = yyLOCAL - case 1224: + case 1223: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8155 +//line mysql_sql.y:8147 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].strsUnion()...) } yyVAL.union = yyLOCAL - case 1225: + case 1224: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8160 +//line mysql_sql.y:8152 { yyLOCAL = []string{} } yyVAL.union = yyLOCAL - case 1226: + case 1225: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:8164 +//line mysql_sql.y:8156 { yyLOCAL = append(yyLOCAL, yyDollar[1].str) yyLOCAL = append(yyLOCAL, yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1227: + case 1226: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.TailParameter -//line mysql_sql.y:8171 +//line mysql_sql.y:8163 { yyLOCAL = &tree.TailParameter{ Charset: yyDollar[1].str, @@ -20494,22 +20497,22 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1228: + case 1227: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:8183 +//line mysql_sql.y:8175 { yyVAL.str = "" } - case 1229: + case 1228: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8187 +//line mysql_sql.y:8179 { yyVAL.str = yyDollar[2].str } - case 1230: + case 1229: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:8193 +//line mysql_sql.y:8185 { var Name = yyDollar[4].tableNameUnion() var Type = yyDollar[5].columnTypeUnion() @@ -20531,10 +20534,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1231: + case 1230: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8214 +//line mysql_sql.y:8206 { locale := "" fstr := "bigint" @@ -20549,44 +20552,44 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1232: + case 1231: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:8228 +//line mysql_sql.y:8220 { yyLOCAL = yyDollar[2].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1233: + case 1232: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8232 +//line mysql_sql.y:8224 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1234: + case 1233: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TypeOption -//line mysql_sql.y:8236 +//line mysql_sql.y:8228 { yyLOCAL = &tree.TypeOption{ Type: yyDollar[2].columnTypeUnion(), } } yyVAL.union = yyLOCAL - case 1235: + case 1234: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8242 +//line mysql_sql.y:8234 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1236: + case 1235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8246 +//line mysql_sql.y:8238 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20594,10 +20597,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1237: + case 1236: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8253 +//line mysql_sql.y:8245 { yyLOCAL = &tree.IncrementByOption{ Minus: false, @@ -20605,10 +20608,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1238: + case 1237: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8260 +//line mysql_sql.y:8252 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20616,10 +20619,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1239: + case 1238: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.IncrementByOption -//line mysql_sql.y:8267 +//line mysql_sql.y:8259 { yyLOCAL = &tree.IncrementByOption{ Minus: true, @@ -20627,42 +20630,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1240: + case 1239: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8274 +//line mysql_sql.y:8266 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1241: + case 1240: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8278 +//line mysql_sql.y:8270 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1242: + case 1241: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8282 +//line mysql_sql.y:8274 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1243: + case 1242: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8286 +//line mysql_sql.y:8278 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1244: + case 1243: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8290 +//line mysql_sql.y:8282 { yyLOCAL = &tree.MinValueOption{ Minus: false, @@ -20670,10 +20673,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1245: + case 1244: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MinValueOption -//line mysql_sql.y:8297 +//line mysql_sql.y:8289 { yyLOCAL = &tree.MinValueOption{ Minus: true, @@ -20681,18 +20684,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1246: + case 1245: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8304 +//line mysql_sql.y:8296 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1247: + case 1246: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8308 +//line mysql_sql.y:8300 { yyLOCAL = &tree.MaxValueOption{ Minus: false, @@ -20700,10 +20703,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1248: + case 1247: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.MaxValueOption -//line mysql_sql.y:8315 +//line mysql_sql.y:8307 { yyLOCAL = &tree.MaxValueOption{ Minus: true, @@ -20711,46 +20714,46 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1249: + case 1248: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8322 +//line mysql_sql.y:8314 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1250: + case 1249: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8326 +//line mysql_sql.y:8318 { yyLOCAL = &tree.CycleOption{ Cycle: false, } } yyVAL.union = yyLOCAL - case 1251: + case 1250: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CycleOption -//line mysql_sql.y:8332 +//line mysql_sql.y:8324 { yyLOCAL = &tree.CycleOption{ Cycle: true, } } yyVAL.union = yyLOCAL - case 1252: + case 1251: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8338 +//line mysql_sql.y:8330 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1253: + case 1252: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8342 +//line mysql_sql.y:8334 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20758,10 +20761,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1254: + case 1253: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8349 +//line mysql_sql.y:8341 { yyLOCAL = &tree.StartWithOption{ Minus: false, @@ -20769,10 +20772,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1255: + case 1254: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8356 +//line mysql_sql.y:8348 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20780,10 +20783,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1256: + case 1255: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.StartWithOption -//line mysql_sql.y:8363 +//line mysql_sql.y:8355 { yyLOCAL = &tree.StartWithOption{ Minus: true, @@ -20791,58 +20794,58 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1257: + case 1256: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8370 +//line mysql_sql.y:8362 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1258: + case 1257: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8374 +//line mysql_sql.y:8366 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1259: + case 1258: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8379 +//line mysql_sql.y:8371 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1260: + case 1259: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8383 +//line mysql_sql.y:8375 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1261: + case 1260: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8387 +//line mysql_sql.y:8379 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1262: + case 1261: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8392 +//line mysql_sql.y:8384 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1263: + case 1262: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionOption -//line mysql_sql.y:8396 +//line mysql_sql.y:8388 { yyDollar[3].partitionByUnion().Num = uint64(yyDollar[4].int64ValUnion()) var PartBy = yyDollar[3].partitionByUnion() @@ -20855,18 +20858,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1264: + case 1263: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8409 +//line mysql_sql.y:8401 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1265: + case 1264: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8413 +//line mysql_sql.y:8405 { var ColumnList = []*tree.UnresolvedName{yyDollar[3].unresolvedNameUnion()} yyLOCAL = tree.NewClusterByOption( @@ -20875,10 +20878,10 @@ yydefault: } yyVAL.union = yyLOCAL - case 1266: + case 1265: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.ClusterByOption -//line mysql_sql.y:8421 +//line mysql_sql.y:8413 { var ColumnList = yyDollar[4].unresolveNamesUnion() yyLOCAL = tree.NewClusterByOption( @@ -20886,18 +20889,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1267: + case 1266: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8429 +//line mysql_sql.y:8421 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1268: + case 1267: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8433 +//line mysql_sql.y:8425 { var IsSubPartition = true var PType = yyDollar[3].partitionByUnion() @@ -20909,42 +20912,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1269: + case 1268: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8445 +//line mysql_sql.y:8437 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1270: + case 1269: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8449 +//line mysql_sql.y:8441 { yyLOCAL = yyDollar[2].partitionsUnion() } yyVAL.union = yyLOCAL - case 1271: + case 1270: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8455 +//line mysql_sql.y:8447 { yyLOCAL = []*tree.Partition{yyDollar[1].partitionUnion()} } yyVAL.union = yyLOCAL - case 1272: + case 1271: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.Partition -//line mysql_sql.y:8459 +//line mysql_sql.y:8451 { yyLOCAL = append(yyDollar[1].partitionsUnion(), yyDollar[3].partitionUnion()) } yyVAL.union = yyLOCAL - case 1273: + case 1272: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8465 +//line mysql_sql.y:8457 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -20958,10 +20961,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1274: + case 1273: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.Partition -//line mysql_sql.y:8478 +//line mysql_sql.y:8470 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Values = yyDollar[3].valuesUnion() @@ -20975,42 +20978,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1275: + case 1274: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8492 +//line mysql_sql.y:8484 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1276: + case 1275: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8496 +//line mysql_sql.y:8488 { yyLOCAL = yyDollar[2].subPartitionsUnion() } yyVAL.union = yyLOCAL - case 1277: + case 1276: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8502 +//line mysql_sql.y:8494 { yyLOCAL = []*tree.SubPartition{yyDollar[1].subPartitionUnion()} } yyVAL.union = yyLOCAL - case 1278: + case 1277: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.SubPartition -//line mysql_sql.y:8506 +//line mysql_sql.y:8498 { yyLOCAL = append(yyDollar[1].subPartitionsUnion(), yyDollar[3].subPartitionUnion()) } yyVAL.union = yyLOCAL - case 1279: + case 1278: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8512 +//line mysql_sql.y:8504 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options []tree.TableOption @@ -21020,10 +21023,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1280: + case 1279: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.SubPartition -//line mysql_sql.y:8521 +//line mysql_sql.y:8513 { var Name = tree.Identifier(yyDollar[2].cstrUnion().Compare()) var Options = yyDollar[3].tableOptionsUnion() @@ -21033,53 +21036,53 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1281: + case 1280: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8532 +//line mysql_sql.y:8524 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1282: + case 1281: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8536 +//line mysql_sql.y:8528 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1283: + case 1282: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8541 +//line mysql_sql.y:8533 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1284: + case 1283: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8545 +//line mysql_sql.y:8537 { expr := tree.NewMaxValue() var valueList = tree.Exprs{expr} yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1285: + case 1284: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8551 +//line mysql_sql.y:8543 { var valueList = yyDollar[5].exprsUnion() yyLOCAL = tree.NewValuesLessThan(valueList) } yyVAL.union = yyLOCAL - case 1286: + case 1285: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Values -//line mysql_sql.y:8556 +//line mysql_sql.y:8548 { var valueList = yyDollar[4].exprsUnion() yyLOCAL = tree.NewValuesIn( @@ -21087,18 +21090,18 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1287: + case 1286: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8564 +//line mysql_sql.y:8556 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1288: + case 1287: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8568 +//line mysql_sql.y:8560 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21108,18 +21111,18 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1289: + case 1288: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8578 +//line mysql_sql.y:8570 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1290: + case 1289: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8582 +//line mysql_sql.y:8574 { res := yyDollar[2].item.(int64) if res == 0 { @@ -21129,10 +21132,10 @@ yydefault: yyLOCAL = res } yyVAL.union = yyLOCAL - case 1291: + case 1290: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8593 +//line mysql_sql.y:8585 { rangeTyp := tree.NewRangeType() rangeTyp.Expr = yyDollar[3].exprUnion() @@ -21141,10 +21144,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1292: + case 1291: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8601 +//line mysql_sql.y:8593 { rangeTyp := tree.NewRangeType() rangeTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21153,10 +21156,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1293: + case 1292: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8609 +//line mysql_sql.y:8601 { listTyp := tree.NewListType() listTyp.Expr = yyDollar[3].exprUnion() @@ -21165,10 +21168,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1294: + case 1293: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8617 +//line mysql_sql.y:8609 { listTyp := tree.NewListType() listTyp.ColumnList = yyDollar[4].unresolveNamesUnion() @@ -21177,10 +21180,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1296: + case 1295: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8628 +//line mysql_sql.y:8620 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21190,10 +21193,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1297: + case 1296: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8637 +//line mysql_sql.y:8629 { keyTyp := tree.NewKeyType() keyTyp.Linear = yyDollar[1].boolValUnion() @@ -21204,10 +21207,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1298: + case 1297: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.PartitionBy -//line mysql_sql.y:8647 +//line mysql_sql.y:8639 { Linear := yyDollar[1].boolValUnion() Expr := yyDollar[4].exprUnion() @@ -21217,58 +21220,58 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1299: + case 1298: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8657 +//line mysql_sql.y:8649 { yyLOCAL = 2 } yyVAL.union = yyLOCAL - case 1300: + case 1299: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:8661 +//line mysql_sql.y:8653 { yyLOCAL = yyDollar[3].item.(int64) } yyVAL.union = yyLOCAL - case 1301: + case 1300: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8666 +//line mysql_sql.y:8658 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1302: + case 1301: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:8670 +//line mysql_sql.y:8662 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1303: + case 1302: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8676 +//line mysql_sql.y:8668 { yyLOCAL = []*tree.ConnectorOption{yyDollar[1].connectorOptionUnion()} } yyVAL.union = yyLOCAL - case 1304: + case 1303: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.ConnectorOption -//line mysql_sql.y:8680 +//line mysql_sql.y:8672 { yyLOCAL = append(yyDollar[1].connectorOptionsUnion(), yyDollar[3].connectorOptionUnion()) } yyVAL.union = yyLOCAL - case 1305: + case 1304: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8686 +//line mysql_sql.y:8678 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21278,10 +21281,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1306: + case 1305: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ConnectorOption -//line mysql_sql.y:8695 +//line mysql_sql.y:8687 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21291,42 +21294,42 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1307: + case 1306: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8705 +//line mysql_sql.y:8697 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1308: + case 1307: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8709 +//line mysql_sql.y:8701 { yyLOCAL = yyDollar[3].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1309: + case 1308: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8715 +//line mysql_sql.y:8707 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1310: + case 1309: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8719 +//line mysql_sql.y:8711 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1311: + case 1310: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8725 +//line mysql_sql.y:8717 { var Key = tree.Identifier(yyDollar[1].cstrUnion().Compare()) var Val = yyDollar[3].exprUnion() @@ -21336,10 +21339,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1312: + case 1311: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8734 +//line mysql_sql.y:8726 { var Key = tree.Identifier(yyDollar[1].str) var Val = yyDollar[3].exprUnion() @@ -21349,364 +21352,364 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1313: + case 1312: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8744 +//line mysql_sql.y:8736 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1314: + case 1313: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8748 +//line mysql_sql.y:8740 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 1315: + case 1314: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8754 +//line mysql_sql.y:8746 { yyLOCAL = []tree.TableOption{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 1316: + case 1315: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8758 +//line mysql_sql.y:8750 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[3].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1317: + case 1316: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.TableOption -//line mysql_sql.y:8762 +//line mysql_sql.y:8754 { yyLOCAL = append(yyDollar[1].tableOptionsUnion(), yyDollar[2].tableOptionUnion()) } yyVAL.union = yyLOCAL - case 1318: + case 1317: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8768 +//line mysql_sql.y:8760 { yyLOCAL = tree.NewTableOptionAUTOEXTEND_SIZE(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1319: + case 1318: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8772 +//line mysql_sql.y:8764 { yyLOCAL = tree.NewTableOptionAutoIncrement(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1320: + case 1319: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8776 +//line mysql_sql.y:8768 { yyLOCAL = tree.NewTableOptionAvgRowLength(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1321: + case 1320: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8780 +//line mysql_sql.y:8772 { yyLOCAL = tree.NewTableOptionCharset(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1322: + case 1321: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8784 +//line mysql_sql.y:8776 { yyLOCAL = tree.NewTableOptionCollate(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1323: + case 1322: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8788 +//line mysql_sql.y:8780 { yyLOCAL = tree.NewTableOptionChecksum(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1324: + case 1323: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8792 +//line mysql_sql.y:8784 { str := util.DealCommentString(yyDollar[3].str) yyLOCAL = tree.NewTableOptionComment(str) } yyVAL.union = yyLOCAL - case 1325: + case 1324: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8797 +//line mysql_sql.y:8789 { yyLOCAL = tree.NewTableOptionCompression(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1326: + case 1325: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8801 +//line mysql_sql.y:8793 { yyLOCAL = tree.NewTableOptionConnection(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1327: + case 1326: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8805 +//line mysql_sql.y:8797 { yyLOCAL = tree.NewTableOptionDataDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1328: + case 1327: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8809 +//line mysql_sql.y:8801 { yyLOCAL = tree.NewTableOptionIndexDirectory(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 1329: + case 1328: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8813 +//line mysql_sql.y:8805 { yyLOCAL = tree.NewTableOptionDelayKeyWrite(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1330: + case 1329: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8817 +//line mysql_sql.y:8809 { yyLOCAL = tree.NewTableOptionEncryption(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1331: + case 1330: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8821 +//line mysql_sql.y:8813 { yyLOCAL = tree.NewTableOptionEngine(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1332: + case 1331: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8825 +//line mysql_sql.y:8817 { yyLOCAL = tree.NewTableOptionEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1333: + case 1332: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8829 +//line mysql_sql.y:8821 { yyLOCAL = tree.NewTableOptionInsertMethod(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1334: + case 1333: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8833 +//line mysql_sql.y:8825 { yyLOCAL = tree.NewTableOptionKeyBlockSize(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1335: + case 1334: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8837 +//line mysql_sql.y:8829 { yyLOCAL = tree.NewTableOptionMaxRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1336: + case 1335: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8841 +//line mysql_sql.y:8833 { yyLOCAL = tree.NewTableOptionMinRows(uint64(yyDollar[3].item.(int64))) } yyVAL.union = yyLOCAL - case 1337: + case 1336: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8845 +//line mysql_sql.y:8837 { t := tree.NewTableOptionPackKeys() t.Value = yyDollar[3].item.(int64) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1338: + case 1337: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8851 +//line mysql_sql.y:8843 { t := tree.NewTableOptionPackKeys() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1339: + case 1338: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8857 +//line mysql_sql.y:8849 { yyLOCAL = tree.NewTableOptionPassword(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1340: + case 1339: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8861 +//line mysql_sql.y:8853 { yyLOCAL = tree.NewTableOptionRowFormat(yyDollar[3].rowFormatTypeUnion()) } yyVAL.union = yyLOCAL - case 1341: + case 1340: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8865 +//line mysql_sql.y:8857 { yyLOCAL = tree.NewTTableOptionStartTrans(true) } yyVAL.union = yyLOCAL - case 1342: + case 1341: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8869 +//line mysql_sql.y:8861 { yyLOCAL = tree.NewTTableOptionSecondaryEngineAttr(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1343: + case 1342: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8873 +//line mysql_sql.y:8865 { t := tree.NewTableOptionStatsAutoRecalc() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1344: + case 1343: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8879 +//line mysql_sql.y:8871 { t := tree.NewTableOptionStatsAutoRecalc() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1345: + case 1344: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8885 +//line mysql_sql.y:8877 { t := tree.NewTableOptionStatsPersistent() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1346: + case 1345: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8891 +//line mysql_sql.y:8883 { t := tree.NewTableOptionStatsPersistent() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1347: + case 1346: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8897 +//line mysql_sql.y:8889 { t := tree.NewTableOptionStatsSamplePages() t.Value = uint64(yyDollar[3].item.(int64)) yyLOCAL = t } yyVAL.union = yyLOCAL - case 1348: + case 1347: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8903 +//line mysql_sql.y:8895 { t := tree.NewTableOptionStatsSamplePages() t.Default = true yyLOCAL = t } yyVAL.union = yyLOCAL - case 1349: + case 1348: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8909 +//line mysql_sql.y:8901 { yyLOCAL = tree.NewTableOptionTablespace(yyDollar[3].cstrUnion().Compare(), "") } yyVAL.union = yyLOCAL - case 1350: + case 1349: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8913 +//line mysql_sql.y:8905 { yyLOCAL = tree.NewTableOptionTablespace("", yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1351: + case 1350: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8917 +//line mysql_sql.y:8909 { yyLOCAL = tree.NewTableOptionUnion(yyDollar[4].tableNamesUnion()) } yyVAL.union = yyLOCAL - case 1352: + case 1351: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.TableOption -//line mysql_sql.y:8921 +//line mysql_sql.y:8913 { var Preperties = yyDollar[3].propertiesUnion() yyLOCAL = tree.NewTableOptionProperties(Preperties) } yyVAL.union = yyLOCAL - case 1353: + case 1352: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8928 +//line mysql_sql.y:8920 { yyLOCAL = []tree.Property{yyDollar[1].propertyUnion()} } yyVAL.union = yyLOCAL - case 1354: + case 1353: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []tree.Property -//line mysql_sql.y:8932 +//line mysql_sql.y:8924 { yyLOCAL = append(yyDollar[1].propertiesUnion(), yyDollar[3].propertyUnion()) } yyVAL.union = yyLOCAL - case 1355: + case 1354: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Property -//line mysql_sql.y:8938 +//line mysql_sql.y:8930 { var Key = yyDollar[1].str var Value = yyDollar[3].str @@ -21716,96 +21719,96 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1356: + case 1355: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8949 +//line mysql_sql.y:8941 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1357: + case 1356: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:8953 +//line mysql_sql.y:8945 { yyVAL.str = " " + yyDollar[1].str + " " + yyDollar[2].str } - case 1358: + case 1357: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8959 +//line mysql_sql.y:8951 { yyLOCAL = tree.ROW_FORMAT_DEFAULT } yyVAL.union = yyLOCAL - case 1359: + case 1358: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8963 +//line mysql_sql.y:8955 { yyLOCAL = tree.ROW_FORMAT_DYNAMIC } yyVAL.union = yyLOCAL - case 1360: + case 1359: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8967 +//line mysql_sql.y:8959 { yyLOCAL = tree.ROW_FORMAT_FIXED } yyVAL.union = yyLOCAL - case 1361: + case 1360: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8971 +//line mysql_sql.y:8963 { yyLOCAL = tree.ROW_FORMAT_COMPRESSED } yyVAL.union = yyLOCAL - case 1362: + case 1361: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8975 +//line mysql_sql.y:8967 { yyLOCAL = tree.ROW_FORMAT_REDUNDANT } yyVAL.union = yyLOCAL - case 1363: + case 1362: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.RowFormatType -//line mysql_sql.y:8979 +//line mysql_sql.y:8971 { yyLOCAL = tree.ROW_FORMAT_COMPACT } yyVAL.union = yyLOCAL - case 1368: + case 1367: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8993 +//line mysql_sql.y:8985 { yyLOCAL = tree.TableNames{yyDollar[1].tableNameUnion()} } yyVAL.union = yyLOCAL - case 1369: + case 1368: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableNames -//line mysql_sql.y:8997 +//line mysql_sql.y:8989 { yyLOCAL = append(yyDollar[1].tableNamesUnion(), yyDollar[3].tableNameUnion()) } yyVAL.union = yyLOCAL - case 1370: + case 1369: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:9006 +//line mysql_sql.y:8998 { tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) prefix := tree.ObjectNamePrefix{ExplicitSchema: false} yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[2].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1371: + case 1370: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.TableName -//line mysql_sql.y:9012 +//line mysql_sql.y:9004 { dbName := yylex.(*Lexer).GetDbOrTblName(yyDollar[1].cstrUnion().Origin()) tblName := yylex.(*Lexer).GetDbOrTblName(yyDollar[3].cstrUnion().Origin()) @@ -21813,18 +21816,18 @@ yydefault: yyLOCAL = tree.NewTableName(tree.Identifier(tblName), prefix, yyDollar[4].atTimeStampUnion()) } yyVAL.union = yyLOCAL - case 1372: + case 1371: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9020 +//line mysql_sql.y:9012 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1373: + case 1372: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9024 +//line mysql_sql.y:9016 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPTIME, @@ -21832,10 +21835,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1374: + case 1373: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9031 +//line mysql_sql.y:9023 { var str = yyDollar[4].cstrUnion().Compare() yyLOCAL = &tree.AtTimeStamp{ @@ -21845,10 +21848,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1375: + case 1374: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9040 +//line mysql_sql.y:9032 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATTIMESTAMPSNAPSHOT, @@ -21857,10 +21860,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1376: + case 1375: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9048 +//line mysql_sql.y:9040 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ATMOTIMESTAMP, @@ -21868,10 +21871,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1377: + case 1376: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.AtTimeStamp -//line mysql_sql.y:9055 +//line mysql_sql.y:9047 { yyLOCAL = &tree.AtTimeStamp{ Type: tree.ASOFTIMESTAMP, @@ -21879,74 +21882,74 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1378: + case 1377: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9063 +//line mysql_sql.y:9055 { yyLOCAL = tree.TableDefs(nil) } yyVAL.union = yyLOCAL - case 1380: + case 1379: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9070 +//line mysql_sql.y:9062 { yyLOCAL = tree.TableDefs{yyDollar[1].tableDefUnion()} } yyVAL.union = yyLOCAL - case 1381: + case 1380: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.TableDefs -//line mysql_sql.y:9074 +//line mysql_sql.y:9066 { yyLOCAL = append(yyDollar[1].tableDefsUnion(), yyDollar[3].tableDefUnion()) } yyVAL.union = yyLOCAL - case 1382: + case 1381: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9080 +//line mysql_sql.y:9072 { yyLOCAL = tree.TableDef(yyDollar[1].columnTableDefUnion()) } yyVAL.union = yyLOCAL - case 1383: + case 1382: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9084 +//line mysql_sql.y:9076 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1384: + case 1383: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9088 +//line mysql_sql.y:9080 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1385: + case 1384: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9094 +//line mysql_sql.y:9086 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1386: + case 1385: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9098 +//line mysql_sql.y:9090 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1387: + case 1386: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9104 +//line mysql_sql.y:9096 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -21960,10 +21963,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1388: + case 1387: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9117 +//line mysql_sql.y:9109 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].str @@ -21977,10 +21980,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1389: + case 1388: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9130 +//line mysql_sql.y:9122 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -22022,10 +22025,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1390: + case 1389: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9171 +//line mysql_sql.y:9163 { keyTyp := tree.INDEX_TYPE_INVALID if yyDollar[3].strsUnion()[1] != "" { @@ -22066,10 +22069,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1391: + case 1390: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9213 +//line mysql_sql.y:9205 { if yyDollar[1].str != "" { switch v := yyDollar[2].tableDefUnion().(type) { @@ -22084,18 +22087,18 @@ yydefault: yyLOCAL = yyDollar[2].tableDefUnion() } yyVAL.union = yyLOCAL - case 1392: + case 1391: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9227 +//line mysql_sql.y:9219 { yyLOCAL = yyDollar[1].tableDefUnion() } yyVAL.union = yyLOCAL - case 1393: + case 1392: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9233 +//line mysql_sql.y:9225 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22109,10 +22112,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1394: + case 1393: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9246 +//line mysql_sql.y:9238 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22126,10 +22129,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1395: + case 1394: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9259 +//line mysql_sql.y:9251 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22143,10 +22146,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1396: + case 1395: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9272 +//line mysql_sql.y:9264 { var KeyParts = yyDollar[5].keyPartsUnion() var Name = yyDollar[3].strsUnion()[0] @@ -22160,10 +22163,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1397: + case 1396: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9285 +//line mysql_sql.y:9277 { var IfNotExists = yyDollar[3].ifNotExistsUnion() var KeyParts = yyDollar[6].keyPartsUnion() @@ -22179,10 +22182,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1398: + case 1397: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.TableDef -//line mysql_sql.y:9300 +//line mysql_sql.y:9292 { var Expr = yyDollar[3].exprUnion() var Enforced = yyDollar[5].boolValUnion() @@ -22192,327 +22195,327 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1399: + case 1398: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9310 +//line mysql_sql.y:9302 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1401: + case 1400: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9316 +//line mysql_sql.y:9308 { yyVAL.str = "" } - case 1402: + case 1401: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9320 +//line mysql_sql.y:9312 { yyVAL.str = yyDollar[1].str } - case 1405: + case 1404: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9330 +//line mysql_sql.y:9322 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = "" } yyVAL.union = yyLOCAL - case 1406: + case 1405: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9336 +//line mysql_sql.y:9328 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].str yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1407: + case 1406: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:9342 +//line mysql_sql.y:9334 { yyLOCAL = make([]string, 2) yyLOCAL[0] = yyDollar[1].cstrUnion().Compare() yyLOCAL[1] = yyDollar[3].str } yyVAL.union = yyLOCAL - case 1419: + case 1418: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9364 +//line mysql_sql.y:9356 { yyVAL.str = "" } - case 1420: + case 1419: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9368 +//line mysql_sql.y:9360 { yyVAL.str = yyDollar[1].cstrUnion().Compare() } - case 1421: + case 1420: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.ColumnTableDef -//line mysql_sql.y:9374 +//line mysql_sql.y:9366 { yyLOCAL = tree.NewColumnTableDef(yyDollar[1].unresolvedNameUnion(), yyDollar[2].columnTypeUnion(), yyDollar[3].columnAttributesUnion()) } yyVAL.union = yyLOCAL - case 1422: + case 1421: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9380 +//line mysql_sql.y:9372 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1423: + case 1422: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9384 +//line mysql_sql.y:9376 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1424: + case 1423: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9389 +//line mysql_sql.y:9381 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1425: + case 1424: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9397 +//line mysql_sql.y:9389 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1426: + case 1425: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9401 +//line mysql_sql.y:9393 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1427: + case 1426: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9405 +//line mysql_sql.y:9397 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1428: + case 1427: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9409 +//line mysql_sql.y:9401 { yyLOCAL = tree.NewCStr(yyDollar[1].str, 1) } yyVAL.union = yyLOCAL - case 1429: + case 1428: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.CStr -//line mysql_sql.y:9415 +//line mysql_sql.y:9407 { yyLOCAL = yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) } yyVAL.union = yyLOCAL - case 1430: + case 1429: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9421 +//line mysql_sql.y:9413 { yyLOCAL = tree.NewUnresolvedName(yyDollar[1].cstrUnion()) } yyVAL.union = yyLOCAL - case 1431: + case 1430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9425 +//line mysql_sql.y:9417 { tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(tblNameCStr, yyDollar[3].cstrUnion()) } yyVAL.union = yyLOCAL - case 1432: + case 1431: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.UnresolvedName -//line mysql_sql.y:9430 +//line mysql_sql.y:9422 { dbNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[1].cstrUnion().Origin()) tblNameCStr := yylex.(*Lexer).GetDbOrTblNameCStr(yyDollar[3].cstrUnion().Origin()) yyLOCAL = tree.NewUnresolvedName(dbNameCStr, tblNameCStr, yyDollar[5].cstrUnion()) } yyVAL.union = yyLOCAL - case 1433: + case 1432: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9437 +//line mysql_sql.y:9429 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1434: + case 1433: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9441 +//line mysql_sql.y:9433 { yyLOCAL = yyDollar[1].columnAttributesUnion() } yyVAL.union = yyLOCAL - case 1435: + case 1434: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9447 +//line mysql_sql.y:9439 { yyLOCAL = []tree.ColumnAttribute{yyDollar[1].columnAttributeUnion()} } yyVAL.union = yyLOCAL - case 1436: + case 1435: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []tree.ColumnAttribute -//line mysql_sql.y:9451 +//line mysql_sql.y:9443 { yyLOCAL = append(yyDollar[1].columnAttributesUnion(), yyDollar[2].columnAttributeUnion()) } yyVAL.union = yyLOCAL - case 1437: + case 1436: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9457 +//line mysql_sql.y:9449 { yyLOCAL = tree.NewAttributeNull(true) } yyVAL.union = yyLOCAL - case 1438: + case 1437: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9461 +//line mysql_sql.y:9453 { yyLOCAL = tree.NewAttributeNull(false) } yyVAL.union = yyLOCAL - case 1439: + case 1438: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9465 +//line mysql_sql.y:9457 { yyLOCAL = tree.NewAttributeDefault(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1440: + case 1439: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9469 +//line mysql_sql.y:9461 { yyLOCAL = tree.NewAttributeAutoIncrement() } yyVAL.union = yyLOCAL - case 1441: + case 1440: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9473 +//line mysql_sql.y:9465 { yyLOCAL = yyDollar[1].columnAttributeUnion() } yyVAL.union = yyLOCAL - case 1442: + case 1441: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9477 +//line mysql_sql.y:9469 { str := util.DealCommentString(yyDollar[2].str) yyLOCAL = tree.NewAttributeComment(tree.NewNumVal(str, str, false, tree.P_char)) } yyVAL.union = yyLOCAL - case 1443: + case 1442: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9482 +//line mysql_sql.y:9474 { yyLOCAL = tree.NewAttributeCollate(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1444: + case 1443: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9486 +//line mysql_sql.y:9478 { yyLOCAL = tree.NewAttributeColumnFormat(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1445: + case 1444: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9490 +//line mysql_sql.y:9482 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1446: + case 1445: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9494 +//line mysql_sql.y:9486 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1447: + case 1446: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9498 +//line mysql_sql.y:9490 { yyLOCAL = tree.NewAttributeStorage(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1448: + case 1447: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9502 +//line mysql_sql.y:9494 { yyLOCAL = tree.NewAttributeAutoRandom(int(yyDollar[2].int64ValUnion())) } yyVAL.union = yyLOCAL - case 1449: + case 1448: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9506 +//line mysql_sql.y:9498 { yyLOCAL = yyDollar[1].attributeReferenceUnion() } yyVAL.union = yyLOCAL - case 1450: + case 1449: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9510 +//line mysql_sql.y:9502 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), false, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1451: + case 1450: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9514 +//line mysql_sql.y:9506 { yyLOCAL = tree.NewAttributeCheckConstraint(yyDollar[4].exprUnion(), yyDollar[6].boolValUnion(), yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1452: + case 1451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9518 +//line mysql_sql.y:9510 { name := tree.NewUnresolvedColName(yyDollar[3].str) var es tree.Exprs = nil @@ -22527,98 +22530,98 @@ yydefault: yyLOCAL = tree.NewAttributeOnUpdate(expr) } yyVAL.union = yyLOCAL - case 1453: + case 1452: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9532 +//line mysql_sql.y:9524 { yyLOCAL = tree.NewAttributeLowCardinality() } yyVAL.union = yyLOCAL - case 1454: + case 1453: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9536 +//line mysql_sql.y:9528 { yyLOCAL = tree.NewAttributeVisable(true) } yyVAL.union = yyLOCAL - case 1455: + case 1454: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9540 +//line mysql_sql.y:9532 { yyLOCAL = tree.NewAttributeVisable(false) } yyVAL.union = yyLOCAL - case 1456: + case 1455: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9544 +//line mysql_sql.y:9536 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1457: + case 1456: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9548 +//line mysql_sql.y:9540 { yyLOCAL = tree.NewAttributeHeader(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1458: + case 1457: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:9552 +//line mysql_sql.y:9544 { yyLOCAL = tree.NewAttributeHeaders() } yyVAL.union = yyLOCAL - case 1459: + case 1458: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9558 +//line mysql_sql.y:9550 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1460: + case 1459: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:9562 +//line mysql_sql.y:9554 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1461: + case 1460: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:9567 +//line mysql_sql.y:9559 { yyVAL.str = "" } - case 1462: + case 1461: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9571 +//line mysql_sql.y:9563 { yyVAL.str = yyDollar[1].str } - case 1463: + case 1462: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9577 +//line mysql_sql.y:9569 { yyVAL.str = "" } - case 1464: + case 1463: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:9581 +//line mysql_sql.y:9573 { yyVAL.str = yyDollar[2].cstrUnion().Compare() } - case 1465: + case 1464: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.AttributeReference -//line mysql_sql.y:9587 +//line mysql_sql.y:9579 { var TableName = yyDollar[2].tableNameUnion() var KeyParts = yyDollar[3].keyPartsUnion() @@ -22634,10 +22637,10 @@ yydefault: ) } yyVAL.union = yyLOCAL - case 1466: + case 1465: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9604 +//line mysql_sql.y:9596 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22645,10 +22648,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1467: + case 1466: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9611 +//line mysql_sql.y:9603 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22656,10 +22659,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1468: + case 1467: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9618 +//line mysql_sql.y:9610 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: tree.REFERENCE_OPTION_INVALID, @@ -22667,10 +22670,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1469: + case 1468: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9625 +//line mysql_sql.y:9617 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[1].referenceOptionTypeUnion(), @@ -22678,10 +22681,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1470: + case 1469: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.ReferenceOnRecord -//line mysql_sql.y:9632 +//line mysql_sql.y:9624 { yyLOCAL = &tree.ReferenceOnRecord{ OnDelete: yyDollar[2].referenceOptionTypeUnion(), @@ -22689,354 +22692,354 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1471: + case 1470: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9641 +//line mysql_sql.y:9633 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1472: + case 1471: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9647 +//line mysql_sql.y:9639 { yyLOCAL = yyDollar[3].referenceOptionTypeUnion() } yyVAL.union = yyLOCAL - case 1473: + case 1472: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9653 +//line mysql_sql.y:9645 { yyLOCAL = tree.REFERENCE_OPTION_RESTRICT } yyVAL.union = yyLOCAL - case 1474: + case 1473: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9657 +//line mysql_sql.y:9649 { yyLOCAL = tree.REFERENCE_OPTION_CASCADE } yyVAL.union = yyLOCAL - case 1475: + case 1474: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9661 +//line mysql_sql.y:9653 { yyLOCAL = tree.REFERENCE_OPTION_SET_NULL } yyVAL.union = yyLOCAL - case 1476: + case 1475: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9665 +//line mysql_sql.y:9657 { yyLOCAL = tree.REFERENCE_OPTION_NO_ACTION } yyVAL.union = yyLOCAL - case 1477: + case 1476: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ReferenceOptionType -//line mysql_sql.y:9669 +//line mysql_sql.y:9661 { yyLOCAL = tree.REFERENCE_OPTION_SET_DEFAULT } yyVAL.union = yyLOCAL - case 1478: + case 1477: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9674 +//line mysql_sql.y:9666 { yyLOCAL = tree.MATCH_INVALID } yyVAL.union = yyLOCAL - case 1480: + case 1479: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9681 +//line mysql_sql.y:9673 { yyLOCAL = tree.MATCH_FULL } yyVAL.union = yyLOCAL - case 1481: + case 1480: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9685 +//line mysql_sql.y:9677 { yyLOCAL = tree.MATCH_PARTIAL } yyVAL.union = yyLOCAL - case 1482: + case 1481: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.MatchType -//line mysql_sql.y:9689 +//line mysql_sql.y:9681 { yyLOCAL = tree.MATCH_SIMPLE } yyVAL.union = yyLOCAL - case 1483: + case 1482: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9694 +//line mysql_sql.y:9686 { yyLOCAL = tree.FULLTEXT_DEFAULT } yyVAL.union = yyLOCAL - case 1484: + case 1483: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9698 +//line mysql_sql.y:9690 { yyLOCAL = tree.FULLTEXT_NL } yyVAL.union = yyLOCAL - case 1485: + case 1484: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9702 +//line mysql_sql.y:9694 { yyLOCAL = tree.FULLTEXT_NL_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1486: + case 1485: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9706 +//line mysql_sql.y:9698 { yyLOCAL = tree.FULLTEXT_BOOLEAN } yyVAL.union = yyLOCAL - case 1487: + case 1486: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.FullTextSearchType -//line mysql_sql.y:9710 +//line mysql_sql.y:9702 { yyLOCAL = tree.FULLTEXT_QUERY_EXPANSION } yyVAL.union = yyLOCAL - case 1488: + case 1487: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9715 +//line mysql_sql.y:9707 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1489: + case 1488: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*tree.KeyPart -//line mysql_sql.y:9719 +//line mysql_sql.y:9711 { yyLOCAL = yyDollar[2].keyPartsUnion() } yyVAL.union = yyLOCAL - case 1490: + case 1489: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9724 +//line mysql_sql.y:9716 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 1491: + case 1490: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int64 -//line mysql_sql.y:9728 +//line mysql_sql.y:9720 { yyLOCAL = yyDollar[2].item.(int64) } yyVAL.union = yyLOCAL - case 1498: + case 1497: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.Subquery -//line mysql_sql.y:9744 +//line mysql_sql.y:9736 { yyLOCAL = &tree.Subquery{Select: yyDollar[1].selectStatementUnion(), Exists: false} } yyVAL.union = yyLOCAL - case 1499: + case 1498: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9750 +//line mysql_sql.y:9742 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_AND, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1500: + case 1499: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9754 +//line mysql_sql.y:9746 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_OR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1501: + case 1500: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9758 +//line mysql_sql.y:9750 { yyLOCAL = tree.NewBinaryExpr(tree.BIT_XOR, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1502: + case 1501: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9762 +//line mysql_sql.y:9754 { yyLOCAL = tree.NewBinaryExpr(tree.PLUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1503: + case 1502: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9766 +//line mysql_sql.y:9758 { yyLOCAL = tree.NewBinaryExpr(tree.MINUS, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1504: + case 1503: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9770 +//line mysql_sql.y:9762 { yyLOCAL = tree.NewBinaryExpr(tree.MULTI, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1505: + case 1504: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9774 +//line mysql_sql.y:9766 { yyLOCAL = tree.NewBinaryExpr(tree.DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1506: + case 1505: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9778 +//line mysql_sql.y:9770 { yyLOCAL = tree.NewBinaryExpr(tree.INTEGER_DIV, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1507: + case 1506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9782 +//line mysql_sql.y:9774 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1508: + case 1507: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9786 +//line mysql_sql.y:9778 { yyLOCAL = tree.NewBinaryExpr(tree.MOD, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1509: + case 1508: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9790 +//line mysql_sql.y:9782 { yyLOCAL = tree.NewBinaryExpr(tree.LEFT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1510: + case 1509: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9794 +//line mysql_sql.y:9786 { yyLOCAL = tree.NewBinaryExpr(tree.RIGHT_SHIFT, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1511: + case 1510: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9798 +//line mysql_sql.y:9790 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1512: + case 1511: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9804 +//line mysql_sql.y:9796 { yyLOCAL = yyDollar[1].unresolvedNameUnion() } yyVAL.union = yyLOCAL - case 1513: + case 1512: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9808 +//line mysql_sql.y:9800 { yyLOCAL = yyDollar[1].varExprUnion() } yyVAL.union = yyLOCAL - case 1514: + case 1513: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9812 +//line mysql_sql.y:9804 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1515: + case 1514: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9816 +//line mysql_sql.y:9808 { yyLOCAL = tree.NewParentExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1516: + case 1515: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9820 +//line mysql_sql.y:9812 { yyLOCAL = tree.NewTuple(append(yyDollar[2].exprsUnion(), yyDollar[4].exprUnion())) } yyVAL.union = yyLOCAL - case 1517: + case 1516: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9824 +//line mysql_sql.y:9816 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_PLUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1518: + case 1517: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9828 +//line mysql_sql.y:9820 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MINUS, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1519: + case 1518: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9832 +//line mysql_sql.y:9824 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_TILDE, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1520: + case 1519: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9836 +//line mysql_sql.y:9828 { yyLOCAL = tree.NewUnaryExpr(tree.UNARY_MARK, yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1521: + case 1520: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9840 +//line mysql_sql.y:9832 { hint := strings.ToLower(yyDollar[2].cstrUnion().Compare()) switch hint { @@ -23079,35 +23082,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1522: + case 1521: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9882 +//line mysql_sql.y:9874 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1523: + case 1522: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9886 +//line mysql_sql.y:9878 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1524: + case 1523: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9890 +//line mysql_sql.y:9882 { yyDollar[2].subqueryUnion().Exists = true yyLOCAL = yyDollar[2].subqueryUnion() } yyVAL.union = yyLOCAL - case 1525: + case 1524: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9895 +//line mysql_sql.y:9887 { yyLOCAL = &tree.CaseExpr{ Expr: yyDollar[2].exprUnion(), @@ -23116,42 +23119,42 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1526: + case 1525: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9903 +//line mysql_sql.y:9895 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1527: + case 1526: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9907 +//line mysql_sql.y:9899 { yyLOCAL = tree.NewSerialExtractExpr(yyDollar[3].exprUnion(), yyDollar[5].exprUnion(), yyDollar[7].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1528: + case 1527: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9911 +//line mysql_sql.y:9903 { yyLOCAL = tree.NewBitCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1529: + case 1528: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9915 +//line mysql_sql.y:9907 { yyLOCAL = tree.NewCastExpr(yyDollar[3].exprUnion(), yyDollar[5].columnTypeUnion()) } yyVAL.union = yyLOCAL - case 1530: + case 1529: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9919 +//line mysql_sql.y:9911 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) @@ -23162,66 +23165,66 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1531: + case 1530: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9929 +//line mysql_sql.y:9921 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1532: + case 1531: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9933 +//line mysql_sql.y:9925 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1533: + case 1532: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9937 +//line mysql_sql.y:9929 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1534: + case 1533: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9941 +//line mysql_sql.y:9933 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1535: + case 1534: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9945 +//line mysql_sql.y:9937 { yyLOCAL = yyDollar[1].funcExprUnion() } yyVAL.union = yyLOCAL - case 1536: + case 1535: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9949 +//line mysql_sql.y:9941 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1537: + case 1536: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9953 +//line mysql_sql.y:9945 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1538: + case 1537: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:9957 +//line mysql_sql.y:9949 { val, err := tree.NewFullTextMatchFuncExpression(yyDollar[3].keyPartsUnion(), yyDollar[7].str, yyDollar[8].fullTextSearchTypeUnion()) if err != nil { @@ -23231,16 +23234,16 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1539: + case 1538: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:9970 +//line mysql_sql.y:9962 { yyVAL.str = yyDollar[1].str } - case 1540: + case 1539: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9976 +//line mysql_sql.y:9968 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23250,10 +23253,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1541: + case 1540: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9985 +//line mysql_sql.y:9977 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23263,10 +23266,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1542: + case 1541: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:9994 +//line mysql_sql.y:9986 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23276,10 +23279,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1543: + case 1542: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10005 +//line mysql_sql.y:9997 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, "block") @@ -23290,10 +23293,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1544: + case 1543: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10015 +//line mysql_sql.y:10007 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, true, nil, yyDollar[8].str) @@ -23304,10 +23307,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1545: + case 1544: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10025 +//line mysql_sql.y:10017 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), true, nil) if err != nil { @@ -23317,10 +23320,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1546: + case 1545: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10034 +//line mysql_sql.y:10026 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), true, nil) if err != nil { @@ -23330,10 +23333,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1547: + case 1546: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10044 +//line mysql_sql.y:10036 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), "block") @@ -23344,10 +23347,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1548: + case 1547: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10054 +//line mysql_sql.y:10046 { v := int(yyDollar[5].item.(int64)) val, err := tree.NewSampleRowsFuncExpression(v, false, yyDollar[3].exprsUnion(), yyDollar[8].str) @@ -23358,10 +23361,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1549: + case 1548: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10064 +//line mysql_sql.y:10056 { val, err := tree.NewSamplePercentFuncExpression1(yyDollar[5].item.(int64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23371,10 +23374,10 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1550: + case 1549: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10073 +//line mysql_sql.y:10065 { val, err := tree.NewSamplePercentFuncExpression2(yyDollar[5].item.(float64), false, yyDollar[3].exprsUnion()) if err != nil { @@ -23384,58 +23387,58 @@ yydefault: yyLOCAL = val } yyVAL.union = yyLOCAL - case 1551: + case 1550: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10083 +//line mysql_sql.y:10075 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1552: + case 1551: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10087 +//line mysql_sql.y:10079 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1553: + case 1552: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10092 +//line mysql_sql.y:10084 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1554: + case 1553: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:10096 +//line mysql_sql.y:10088 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1555: + case 1554: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10102 +//line mysql_sql.y:10094 { yyLOCAL = []*tree.When{yyDollar[1].whenClauseUnion()} } yyVAL.union = yyLOCAL - case 1556: + case 1555: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*tree.When -//line mysql_sql.y:10106 +//line mysql_sql.y:10098 { yyLOCAL = append(yyDollar[1].whenClauseListUnion(), yyDollar[2].whenClauseUnion()) } yyVAL.union = yyLOCAL - case 1557: + case 1556: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.When -//line mysql_sql.y:10112 +//line mysql_sql.y:10104 { yyLOCAL = &tree.When{ Cond: yyDollar[2].exprUnion(), @@ -23443,9 +23446,9 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1558: + case 1557: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10121 +//line mysql_sql.y:10113 { t := yyVAL.columnTypeUnion() str := strings.ToLower(t.InternalType.FamilyString) @@ -23458,10 +23461,10 @@ yydefault: } } } - case 1559: + case 1558: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10133 +//line mysql_sql.y:10125 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23479,10 +23482,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1560: + case 1559: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10150 +//line mysql_sql.y:10142 { locale := "" yyLOCAL = &tree.T{ @@ -23497,10 +23500,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1562: + case 1561: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10167 +//line mysql_sql.y:10159 { locale := "" yyLOCAL = &tree.T{ @@ -23514,10 +23517,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1563: + case 1562: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10180 +//line mysql_sql.y:10172 { locale := "" yyLOCAL = &tree.T{ @@ -23531,10 +23534,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1564: + case 1563: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10193 +//line mysql_sql.y:10185 { locale := "" yyLOCAL = &tree.T{ @@ -23547,10 +23550,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1565: + case 1564: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10205 +//line mysql_sql.y:10197 { locale := "" yyLOCAL = &tree.T{ @@ -23565,10 +23568,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1566: + case 1565: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10219 +//line mysql_sql.y:10211 { locale := "" yyLOCAL = &tree.T{ @@ -23584,10 +23587,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1567: + case 1566: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10234 +//line mysql_sql.y:10226 { locale := "" yyLOCAL = &tree.T{ @@ -23603,10 +23606,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1568: + case 1567: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10249 +//line mysql_sql.y:10241 { name := yyDollar[1].str if yyDollar[2].str != "" { @@ -23624,10 +23627,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1569: + case 1568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:10266 +//line mysql_sql.y:10258 { locale := "" yyLOCAL = &tree.T{ @@ -23642,95 +23645,95 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1570: + case 1569: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10281 +//line mysql_sql.y:10273 { } - case 1574: + case 1573: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10288 +//line mysql_sql.y:10280 { yyLOCAL = &tree.FrameBound{Type: tree.Following, UnBounded: true} } yyVAL.union = yyLOCAL - case 1575: + case 1574: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10292 +//line mysql_sql.y:10284 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1576: + case 1575: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10296 +//line mysql_sql.y:10288 { yyLOCAL = &tree.FrameBound{Type: tree.Following, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1577: + case 1576: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10302 +//line mysql_sql.y:10294 { yyLOCAL = &tree.FrameBound{Type: tree.CurrentRow} } yyVAL.union = yyLOCAL - case 1578: + case 1577: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10306 +//line mysql_sql.y:10298 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, UnBounded: true} } yyVAL.union = yyLOCAL - case 1579: + case 1578: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10310 +//line mysql_sql.y:10302 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1580: + case 1579: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameBound -//line mysql_sql.y:10314 +//line mysql_sql.y:10306 { yyLOCAL = &tree.FrameBound{Type: tree.Preceding, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1581: + case 1580: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10320 +//line mysql_sql.y:10312 { yyLOCAL = tree.Rows } yyVAL.union = yyLOCAL - case 1582: + case 1581: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10324 +//line mysql_sql.y:10316 { yyLOCAL = tree.Range } yyVAL.union = yyLOCAL - case 1583: + case 1582: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FrameType -//line mysql_sql.y:10328 +//line mysql_sql.y:10320 { yyLOCAL = tree.Groups } yyVAL.union = yyLOCAL - case 1584: + case 1583: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10334 +//line mysql_sql.y:10326 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23739,10 +23742,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1585: + case 1584: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10342 +//line mysql_sql.y:10334 { yyLOCAL = &tree.FrameClause{ Type: yyDollar[1].frameTypeUnion(), @@ -23752,82 +23755,82 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1586: + case 1585: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10352 +//line mysql_sql.y:10344 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1587: + case 1586: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.FrameClause -//line mysql_sql.y:10356 +//line mysql_sql.y:10348 { yyLOCAL = yyDollar[1].frameClauseUnion() } yyVAL.union = yyLOCAL - case 1588: + case 1587: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10363 +//line mysql_sql.y:10355 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1589: + case 1588: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10368 +//line mysql_sql.y:10360 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1590: + case 1589: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:10372 +//line mysql_sql.y:10364 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1591: + case 1590: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10377 +//line mysql_sql.y:10369 { yyVAL.str = "," } - case 1592: + case 1591: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10381 +//line mysql_sql.y:10373 { yyVAL.str = yyDollar[2].str } - case 1593: + case 1592: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:10386 +//line mysql_sql.y:10378 { yyVAL.str = "1,vector_l2_ops,random,false" } - case 1594: + case 1593: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:10390 +//line mysql_sql.y:10382 { yyVAL.str = yyDollar[2].str } - case 1595: + case 1594: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10395 +//line mysql_sql.y:10387 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1597: + case 1596: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.WindowSpec -//line mysql_sql.y:10402 +//line mysql_sql.y:10394 { hasFrame := true var f *tree.FrameClause @@ -23852,10 +23855,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1598: + case 1597: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10428 +//line mysql_sql.y:10420 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23868,10 +23871,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1599: + case 1598: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10440 +//line mysql_sql.y:10432 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23884,10 +23887,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1600: + case 1599: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10452 +//line mysql_sql.y:10444 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23899,10 +23902,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1601: + case 1600: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10463 +//line mysql_sql.y:10455 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23914,10 +23917,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1602: + case 1601: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10474 +//line mysql_sql.y:10466 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -23929,10 +23932,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1603: + case 1602: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10485 +//line mysql_sql.y:10477 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23943,10 +23946,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1604: + case 1603: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10495 +//line mysql_sql.y:10487 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23957,10 +23960,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1605: + case 1604: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10505 +//line mysql_sql.y:10497 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23972,10 +23975,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1606: + case 1605: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10516 +//line mysql_sql.y:10508 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -23987,10 +23990,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1607: + case 1606: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10527 +//line mysql_sql.y:10519 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24002,10 +24005,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1608: + case 1607: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10538 +//line mysql_sql.y:10530 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24017,10 +24020,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1609: + case 1608: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10549 +//line mysql_sql.y:10541 { name := tree.NewUnresolvedColName(yyDollar[1].str) es := tree.NewNumVal("*", "*", false, tree.P_char) @@ -24032,10 +24035,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1610: + case 1609: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10560 +//line mysql_sql.y:10552 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24047,10 +24050,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1611: + case 1610: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10571 +//line mysql_sql.y:10563 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24062,10 +24065,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1612: + case 1611: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10582 +//line mysql_sql.y:10574 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24077,10 +24080,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1613: + case 1612: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10593 +//line mysql_sql.y:10585 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24092,10 +24095,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1614: + case 1613: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10604 +//line mysql_sql.y:10596 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24107,10 +24110,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1615: + case 1614: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10615 +//line mysql_sql.y:10607 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24122,10 +24125,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1616: + case 1615: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10626 +//line mysql_sql.y:10618 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24137,10 +24140,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1617: + case 1616: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10637 +//line mysql_sql.y:10629 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24152,10 +24155,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1618: + case 1617: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10648 +//line mysql_sql.y:10640 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24167,10 +24170,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1619: + case 1618: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10659 +//line mysql_sql.y:10651 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24182,10 +24185,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1620: + case 1619: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10670 +//line mysql_sql.y:10662 { name := tree.NewUnresolvedColName(yyDollar[1].str) var columnList tree.Exprs @@ -24203,10 +24206,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1624: + case 1623: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10694 +//line mysql_sql.y:10686 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24216,10 +24219,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1625: + case 1624: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10703 +//line mysql_sql.y:10695 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24229,10 +24232,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1626: + case 1625: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10712 +//line mysql_sql.y:10704 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24242,10 +24245,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1627: + case 1626: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10721 +//line mysql_sql.y:10713 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24255,10 +24258,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1628: + case 1627: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10730 +//line mysql_sql.y:10722 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24270,10 +24273,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1629: + case 1628: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10741 +//line mysql_sql.y:10733 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24283,10 +24286,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1630: + case 1629: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10750 +//line mysql_sql.y:10742 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24297,10 +24300,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1631: + case 1630: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10760 +//line mysql_sql.y:10752 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24310,10 +24313,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1632: + case 1631: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10769 +//line mysql_sql.y:10761 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24323,10 +24326,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1633: + case 1632: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10778 +//line mysql_sql.y:10770 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24336,10 +24339,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1634: + case 1633: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10787 +//line mysql_sql.y:10779 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24349,10 +24352,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1635: + case 1634: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10796 +//line mysql_sql.y:10788 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(0), "0", false, tree.P_int64) @@ -24365,10 +24368,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1636: + case 1635: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10808 +//line mysql_sql.y:10800 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(1), "1", false, tree.P_int64) @@ -24380,10 +24383,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1637: + case 1636: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10819 +//line mysql_sql.y:10811 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(2), "2", false, tree.P_int64) @@ -24397,10 +24400,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1638: + case 1637: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10832 +//line mysql_sql.y:10824 { name := tree.NewUnresolvedColName(yyDollar[1].str) arg0 := tree.NewNumVal(int64(3), "3", false, tree.P_int64) @@ -24413,10 +24416,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1639: + case 1638: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10844 +//line mysql_sql.y:10836 { column := tree.NewUnresolvedColName(yyDollar[3].str) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24427,16 +24430,16 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1646: + case 1645: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:10867 +//line mysql_sql.y:10859 { yyVAL.str = yyDollar[1].str } - case 1675: + case 1674: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10903 +//line mysql_sql.y:10895 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24450,10 +24453,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1676: + case 1675: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10916 +//line mysql_sql.y:10908 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24467,10 +24470,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1677: + case 1676: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10929 +//line mysql_sql.y:10921 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24482,10 +24485,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1678: + case 1677: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10941 +//line mysql_sql.y:10933 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24495,10 +24498,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1679: + case 1678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10950 +//line mysql_sql.y:10942 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24507,10 +24510,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1680: + case 1679: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10958 +//line mysql_sql.y:10950 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24519,10 +24522,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1681: + case 1680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10966 +//line mysql_sql.y:10958 { name := tree.NewUnresolvedColName(yyDollar[1].str) var es tree.Exprs = nil @@ -24536,10 +24539,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1682: + case 1681: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10979 +//line mysql_sql.y:10971 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24549,10 +24552,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1683: + case 1682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10988 +//line mysql_sql.y:10980 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24564,10 +24567,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1684: + case 1683: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:10999 +//line mysql_sql.y:10991 { name := tree.NewUnresolvedColName(yyDollar[1].str) exprs := make([]tree.Expr, 1) @@ -24579,10 +24582,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1685: + case 1684: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11010 +//line mysql_sql.y:11002 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24592,10 +24595,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1686: + case 1685: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11019 +//line mysql_sql.y:11011 { cn := tree.NewNumVal(yyDollar[5].str, yyDollar[5].str, false, tree.P_char) es := yyDollar[3].exprsUnion() @@ -24608,10 +24611,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1687: + case 1686: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11031 +//line mysql_sql.y:11023 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24622,10 +24625,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1688: + case 1687: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11041 +//line mysql_sql.y:11033 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24636,10 +24639,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1689: + case 1688: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11051 +//line mysql_sql.y:11043 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24649,10 +24652,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1690: + case 1689: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11060 +//line mysql_sql.y:11052 { es := tree.Exprs{yyDollar[3].exprUnion()} es = append(es, yyDollar[5].exprUnion()) @@ -24664,10 +24667,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1691: + case 1690: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11071 +//line mysql_sql.y:11063 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24677,10 +24680,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1692: + case 1691: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11080 +//line mysql_sql.y:11072 { val := tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_char) name := tree.NewUnresolvedColName(yyDollar[1].str) @@ -24691,10 +24694,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1693: + case 1692: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11090 +//line mysql_sql.y:11082 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24704,10 +24707,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1694: + case 1693: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11099 +//line mysql_sql.y:11091 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24717,10 +24720,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1695: + case 1694: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.FuncExpr -//line mysql_sql.y:11108 +//line mysql_sql.y:11100 { name := tree.NewUnresolvedColName(yyDollar[1].str) yyLOCAL = &tree.FuncExpr{ @@ -24730,34 +24733,34 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1696: + case 1695: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11118 +//line mysql_sql.y:11110 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1697: + case 1696: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11122 +//line mysql_sql.y:11114 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1698: + case 1697: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11128 +//line mysql_sql.y:11120 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1699: + case 1698: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11132 +//line mysql_sql.y:11124 { ival, errStr := util.GetInt64(yyDollar[2].item) if errStr != "" { @@ -24768,20 +24771,20 @@ yydefault: yyLOCAL = tree.NewNumVal(ival, str, false, tree.P_int64) } yyVAL.union = yyLOCAL - case 1706: + case 1705: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:11151 +//line mysql_sql.y:11143 { } - case 1707: + case 1706: yyDollar = yyS[yypt-2 : yypt+1] -//line mysql_sql.y:11153 +//line mysql_sql.y:11145 { } - case 1742: + case 1741: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11195 +//line mysql_sql.y:11187 { name := tree.NewUnresolvedColName(yyDollar[1].str) str := strings.ToLower(yyDollar[3].str) @@ -24793,106 +24796,106 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1743: + case 1742: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11207 +//line mysql_sql.y:11199 { yyLOCAL = tree.FUNC_TYPE_DEFAULT } yyVAL.union = yyLOCAL - case 1744: + case 1743: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11211 +//line mysql_sql.y:11203 { yyLOCAL = tree.FUNC_TYPE_DISTINCT } yyVAL.union = yyLOCAL - case 1745: + case 1744: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.FuncType -//line mysql_sql.y:11215 +//line mysql_sql.y:11207 { yyLOCAL = tree.FUNC_TYPE_ALL } yyVAL.union = yyLOCAL - case 1746: + case 1745: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.Tuple -//line mysql_sql.y:11221 +//line mysql_sql.y:11213 { yyLOCAL = tree.NewTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1747: + case 1746: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11226 +//line mysql_sql.y:11218 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1748: + case 1747: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11230 +//line mysql_sql.y:11222 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1749: + case 1748: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11236 +//line mysql_sql.y:11228 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1750: + case 1749: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11240 +//line mysql_sql.y:11232 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1751: + case 1750: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11246 +//line mysql_sql.y:11238 { yyLOCAL = tree.Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1752: + case 1751: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Exprs -//line mysql_sql.y:11250 +//line mysql_sql.y:11242 { yyLOCAL = append(yyDollar[1].exprsUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1753: + case 1752: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11257 +//line mysql_sql.y:11249 { yyLOCAL = tree.NewAndExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1754: + case 1753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11261 +//line mysql_sql.y:11253 { yyLOCAL = tree.NewOrExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1755: + case 1754: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11265 +//line mysql_sql.y:11257 { name := tree.NewUnresolvedColName("concat") yyLOCAL = &tree.FuncExpr{ @@ -24902,355 +24905,355 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1756: + case 1755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11274 +//line mysql_sql.y:11266 { yyLOCAL = tree.NewXorExpr(yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1757: + case 1756: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11278 +//line mysql_sql.y:11270 { yyLOCAL = tree.NewNotExpr(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 1758: + case 1757: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11282 +//line mysql_sql.y:11274 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1759: + case 1758: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11287 +//line mysql_sql.y:11279 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1760: + case 1759: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11291 +//line mysql_sql.y:11283 { yyLOCAL = tree.NewMaxValue() } yyVAL.union = yyLOCAL - case 1761: + case 1760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11297 +//line mysql_sql.y:11289 { yyLOCAL = tree.NewIsNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1762: + case 1761: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11301 +//line mysql_sql.y:11293 { yyLOCAL = tree.NewIsNotNullExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1763: + case 1762: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11305 +//line mysql_sql.y:11297 { yyLOCAL = tree.NewIsUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1764: + case 1763: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11309 +//line mysql_sql.y:11301 { yyLOCAL = tree.NewIsNotUnknownExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1765: + case 1764: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11313 +//line mysql_sql.y:11305 { yyLOCAL = tree.NewIsTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1766: + case 1765: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11317 +//line mysql_sql.y:11309 { yyLOCAL = tree.NewIsNotTrueExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1767: + case 1766: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11321 +//line mysql_sql.y:11313 { yyLOCAL = tree.NewIsFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1768: + case 1767: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11325 +//line mysql_sql.y:11317 { yyLOCAL = tree.NewIsNotFalseExpr(yyDollar[1].exprUnion()) } yyVAL.union = yyLOCAL - case 1769: + case 1768: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11329 +//line mysql_sql.y:11321 { yyLOCAL = tree.NewComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1770: + case 1769: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11333 +//line mysql_sql.y:11325 { yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) yyLOCAL = tree.NewSubqueryComparisonExpr(yyDollar[2].comparisonOpUnion(), yyDollar[3].comparisonOpUnion(), yyDollar[1].exprUnion(), yyDollar[4].subqueryUnion()) } yyVAL.union = yyLOCAL - case 1772: + case 1771: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11341 +//line mysql_sql.y:11333 { yyLOCAL = tree.NewComparisonExpr(tree.IN, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1773: + case 1772: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11345 +//line mysql_sql.y:11337 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_IN, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1774: + case 1773: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11349 +//line mysql_sql.y:11341 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.LIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1775: + case 1774: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11353 +//line mysql_sql.y:11345 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_LIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1776: + case 1775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11357 +//line mysql_sql.y:11349 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.ILIKE, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1777: + case 1776: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11361 +//line mysql_sql.y:11353 { yyLOCAL = tree.NewComparisonExprWithEscape(tree.NOT_ILIKE, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1778: + case 1777: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11365 +//line mysql_sql.y:11357 { yyLOCAL = tree.NewComparisonExpr(tree.REG_MATCH, yyDollar[1].exprUnion(), yyDollar[3].exprUnion()) } yyVAL.union = yyLOCAL - case 1779: + case 1778: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11369 +//line mysql_sql.y:11361 { yyLOCAL = tree.NewComparisonExpr(tree.NOT_REG_MATCH, yyDollar[1].exprUnion(), yyDollar[4].exprUnion()) } yyVAL.union = yyLOCAL - case 1780: + case 1779: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11373 +//line mysql_sql.y:11365 { yyLOCAL = tree.NewRangeCond(false, yyDollar[1].exprUnion(), yyDollar[3].exprUnion(), yyDollar[5].exprUnion()) } yyVAL.union = yyLOCAL - case 1781: + case 1780: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11377 +//line mysql_sql.y:11369 { yyLOCAL = tree.NewRangeCond(true, yyDollar[1].exprUnion(), yyDollar[4].exprUnion(), yyDollar[6].exprUnion()) } yyVAL.union = yyLOCAL - case 1783: + case 1782: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11383 +//line mysql_sql.y:11375 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1784: + case 1783: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11387 +//line mysql_sql.y:11379 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1785: + case 1784: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11393 +//line mysql_sql.y:11385 { yyLOCAL = yyDollar[1].tupleUnion() } yyVAL.union = yyLOCAL - case 1786: + case 1785: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11397 +//line mysql_sql.y:11389 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1787: + case 1786: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11404 +//line mysql_sql.y:11396 { yyLOCAL = tree.ALL } yyVAL.union = yyLOCAL - case 1788: + case 1787: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11408 +//line mysql_sql.y:11400 { yyLOCAL = tree.ANY } yyVAL.union = yyLOCAL - case 1789: + case 1788: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11412 +//line mysql_sql.y:11404 { yyLOCAL = tree.SOME } yyVAL.union = yyLOCAL - case 1790: + case 1789: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11418 +//line mysql_sql.y:11410 { yyLOCAL = tree.EQUAL } yyVAL.union = yyLOCAL - case 1791: + case 1790: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11422 +//line mysql_sql.y:11414 { yyLOCAL = tree.LESS_THAN } yyVAL.union = yyLOCAL - case 1792: + case 1791: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11426 +//line mysql_sql.y:11418 { yyLOCAL = tree.GREAT_THAN } yyVAL.union = yyLOCAL - case 1793: + case 1792: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11430 +//line mysql_sql.y:11422 { yyLOCAL = tree.LESS_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1794: + case 1793: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11434 +//line mysql_sql.y:11426 { yyLOCAL = tree.GREAT_THAN_EQUAL } yyVAL.union = yyLOCAL - case 1795: + case 1794: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11438 +//line mysql_sql.y:11430 { yyLOCAL = tree.NOT_EQUAL } yyVAL.union = yyLOCAL - case 1796: + case 1795: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ComparisonOp -//line mysql_sql.y:11442 +//line mysql_sql.y:11434 { yyLOCAL = tree.NULL_SAFE_EQUAL } yyVAL.union = yyLOCAL - case 1797: + case 1796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11448 +//line mysql_sql.y:11440 { yyLOCAL = tree.NewAttributePrimaryKey() } yyVAL.union = yyLOCAL - case 1798: + case 1797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11452 +//line mysql_sql.y:11444 { yyLOCAL = tree.NewAttributeUniqueKey() } yyVAL.union = yyLOCAL - case 1799: + case 1798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11456 +//line mysql_sql.y:11448 { yyLOCAL = tree.NewAttributeUnique() } yyVAL.union = yyLOCAL - case 1800: + case 1799: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.ColumnAttribute -//line mysql_sql.y:11460 +//line mysql_sql.y:11452 { yyLOCAL = tree.NewAttributeKey() } yyVAL.union = yyLOCAL - case 1801: + case 1800: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11466 +//line mysql_sql.y:11458 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25264,35 +25267,35 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1802: + case 1801: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11479 +//line mysql_sql.y:11471 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1803: + case 1802: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11484 +//line mysql_sql.y:11476 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1804: + case 1803: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11490 +//line mysql_sql.y:11482 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_char) } yyVAL.union = yyLOCAL - case 1805: + case 1804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11494 +//line mysql_sql.y:11486 { str := fmt.Sprintf("%v", yyDollar[1].item) switch v := yyDollar[1].item.(type) { @@ -25306,51 +25309,51 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1806: + case 1805: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11507 +//line mysql_sql.y:11499 { fval := yyDollar[1].item.(float64) yyLOCAL = tree.NewNumVal(fval, yylex.(*Lexer).scanner.LastToken, false, tree.P_float64) } yyVAL.union = yyLOCAL - case 1807: + case 1806: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11512 +//line mysql_sql.y:11504 { yyLOCAL = tree.NewNumVal(true, "true", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1808: + case 1807: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11516 +//line mysql_sql.y:11508 { yyLOCAL = tree.NewNumVal(false, "false", false, tree.P_bool) } yyVAL.union = yyLOCAL - case 1809: + case 1808: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11520 +//line mysql_sql.y:11512 { yyLOCAL = tree.NewNumVal("null", "null", false, tree.P_null) } yyVAL.union = yyLOCAL - case 1810: + case 1809: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11524 +//line mysql_sql.y:11516 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_hexnum) } yyVAL.union = yyLOCAL - case 1811: + case 1810: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11528 +//line mysql_sql.y:11520 { if strings.HasPrefix(yyDollar[2].str, "0x") { yyDollar[2].str = yyDollar[2].str[2:] @@ -25358,69 +25361,69 @@ yydefault: yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1812: + case 1811: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11535 +//line mysql_sql.y:11527 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_decimal) } yyVAL.union = yyLOCAL - case 1813: + case 1812: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11539 +//line mysql_sql.y:11531 { yyLOCAL = tree.NewNumVal(yyDollar[1].str, yyDollar[1].str, false, tree.P_bit) } yyVAL.union = yyLOCAL - case 1814: + case 1813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11543 +//line mysql_sql.y:11535 { yyLOCAL = tree.NewParamExpr(yylex.(*Lexer).GetParamIndex()) } yyVAL.union = yyLOCAL - case 1815: + case 1814: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Expr -//line mysql_sql.y:11547 +//line mysql_sql.y:11539 { yyLOCAL = tree.NewNumVal(yyDollar[2].str, yyDollar[2].str, false, tree.P_ScoreBinary) } yyVAL.union = yyLOCAL - case 1816: + case 1815: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11554 +//line mysql_sql.y:11546 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.Unsigned = yyDollar[2].unsignedOptUnion() yyLOCAL.InternalType.Zerofill = yyDollar[3].zeroFillOptUnion() } yyVAL.union = yyLOCAL - case 1820: + case 1819: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11565 +//line mysql_sql.y:11557 { yyLOCAL = yyDollar[1].columnTypeUnion() yyLOCAL.InternalType.DisplayWith = yyDollar[2].lengthOptUnion() } yyVAL.union = yyLOCAL - case 1821: + case 1820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11570 +//line mysql_sql.y:11562 { yyLOCAL = yyDollar[1].columnTypeUnion() } yyVAL.union = yyLOCAL - case 1822: + case 1821: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11576 +//line mysql_sql.y:11568 { locale := "" yyLOCAL = &tree.T{ @@ -25433,10 +25436,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1823: + case 1822: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11588 +//line mysql_sql.y:11580 { locale := "" yyLOCAL = &tree.T{ @@ -25449,10 +25452,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1824: + case 1823: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11600 +//line mysql_sql.y:11592 { locale := "" yyLOCAL = &tree.T{ @@ -25465,10 +25468,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1825: + case 1824: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11612 +//line mysql_sql.y:11604 { locale := "" yyLOCAL = &tree.T{ @@ -25482,10 +25485,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1826: + case 1825: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11625 +//line mysql_sql.y:11617 { locale := "" yyLOCAL = &tree.T{ @@ -25499,10 +25502,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1827: + case 1826: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11638 +//line mysql_sql.y:11630 { locale := "" yyLOCAL = &tree.T{ @@ -25516,10 +25519,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1828: + case 1827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11651 +//line mysql_sql.y:11643 { locale := "" yyLOCAL = &tree.T{ @@ -25533,10 +25536,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1829: + case 1828: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11664 +//line mysql_sql.y:11656 { locale := "" yyLOCAL = &tree.T{ @@ -25550,10 +25553,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1830: + case 1829: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11677 +//line mysql_sql.y:11669 { locale := "" yyLOCAL = &tree.T{ @@ -25567,10 +25570,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1831: + case 1830: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11690 +//line mysql_sql.y:11682 { locale := "" yyLOCAL = &tree.T{ @@ -25584,10 +25587,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1832: + case 1831: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11703 +//line mysql_sql.y:11695 { locale := "" yyLOCAL = &tree.T{ @@ -25601,10 +25604,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1833: + case 1832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11716 +//line mysql_sql.y:11708 { locale := "" yyLOCAL = &tree.T{ @@ -25618,10 +25621,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1834: + case 1833: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11729 +//line mysql_sql.y:11721 { locale := "" yyLOCAL = &tree.T{ @@ -25635,10 +25638,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1835: + case 1834: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11742 +//line mysql_sql.y:11734 { locale := "" yyLOCAL = &tree.T{ @@ -25652,10 +25655,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1836: + case 1835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11757 +//line mysql_sql.y:11749 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25683,10 +25686,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1837: + case 1836: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11784 +//line mysql_sql.y:11776 { locale := "" if yyDollar[2].lengthScaleOptUnion().DisplayWith > 255 { @@ -25728,10 +25731,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1838: + case 1837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11826 +//line mysql_sql.y:11818 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25768,10 +25771,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1839: + case 1838: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11862 +//line mysql_sql.y:11854 { locale := "" if yyDollar[2].lengthScaleOptUnion().Scale != tree.NotDefineDec && yyDollar[2].lengthScaleOptUnion().Scale > yyDollar[2].lengthScaleOptUnion().DisplayWith { @@ -25808,10 +25811,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1840: + case 1839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11898 +//line mysql_sql.y:11890 { locale := "" yyLOCAL = &tree.T{ @@ -25827,10 +25830,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1841: + case 1840: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11915 +//line mysql_sql.y:11907 { locale := "" yyLOCAL = &tree.T{ @@ -25843,10 +25846,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1842: + case 1841: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11927 +//line mysql_sql.y:11919 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25867,10 +25870,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1843: + case 1842: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11947 +//line mysql_sql.y:11939 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25891,10 +25894,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1844: + case 1843: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11967 +//line mysql_sql.y:11959 { locale := "" if yyDollar[2].lengthOptUnion() < 0 || yyDollar[2].lengthOptUnion() > 6 { @@ -25915,10 +25918,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1845: + case 1844: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:11987 +//line mysql_sql.y:11979 { locale := "" yyLOCAL = &tree.T{ @@ -25933,10 +25936,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1846: + case 1845: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12003 +//line mysql_sql.y:11995 { locale := "" yyLOCAL = &tree.T{ @@ -25950,10 +25953,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1847: + case 1846: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12016 +//line mysql_sql.y:12008 { locale := "" yyLOCAL = &tree.T{ @@ -25967,10 +25970,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1848: + case 1847: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12029 +//line mysql_sql.y:12021 { locale := "" yyLOCAL = &tree.T{ @@ -25984,10 +25987,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1849: + case 1848: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12042 +//line mysql_sql.y:12034 { locale := "" yyLOCAL = &tree.T{ @@ -26001,10 +26004,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1850: + case 1849: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12055 +//line mysql_sql.y:12047 { locale := "" yyLOCAL = &tree.T{ @@ -26017,10 +26020,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1851: + case 1850: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12067 +//line mysql_sql.y:12059 { locale := "" yyLOCAL = &tree.T{ @@ -26033,10 +26036,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1852: + case 1851: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12079 +//line mysql_sql.y:12071 { locale := "" yyLOCAL = &tree.T{ @@ -26049,10 +26052,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1853: + case 1852: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12091 +//line mysql_sql.y:12083 { locale := "" yyLOCAL = &tree.T{ @@ -26065,10 +26068,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1854: + case 1853: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12103 +//line mysql_sql.y:12095 { locale := "" yyLOCAL = &tree.T{ @@ -26081,10 +26084,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1855: + case 1854: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12115 +//line mysql_sql.y:12107 { locale := "" yyLOCAL = &tree.T{ @@ -26097,10 +26100,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1856: + case 1855: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12127 +//line mysql_sql.y:12119 { locale := "" yyLOCAL = &tree.T{ @@ -26113,10 +26116,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1857: + case 1856: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12139 +//line mysql_sql.y:12131 { locale := "" yyLOCAL = &tree.T{ @@ -26129,10 +26132,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1858: + case 1857: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12151 +//line mysql_sql.y:12143 { locale := "" yyLOCAL = &tree.T{ @@ -26145,10 +26148,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1859: + case 1858: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12163 +//line mysql_sql.y:12155 { locale := "" yyLOCAL = &tree.T{ @@ -26161,10 +26164,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1860: + case 1859: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12175 +//line mysql_sql.y:12167 { locale := "" yyLOCAL = &tree.T{ @@ -26178,10 +26181,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1861: + case 1860: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12188 +//line mysql_sql.y:12180 { locale := "" yyLOCAL = &tree.T{ @@ -26195,10 +26198,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1862: + case 1861: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12201 +//line mysql_sql.y:12193 { locale := "" yyLOCAL = &tree.T{ @@ -26212,10 +26215,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1863: + case 1862: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12214 +//line mysql_sql.y:12206 { locale := "" yyLOCAL = &tree.T{ @@ -26229,10 +26232,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1864: + case 1863: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12227 +//line mysql_sql.y:12219 { locale := "" yyLOCAL = &tree.T{ @@ -26246,20 +26249,20 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1865: + case 1864: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12242 +//line mysql_sql.y:12234 { yyLOCAL = &tree.Do{ Exprs: yyDollar[2].exprsUnion(), } } yyVAL.union = yyLOCAL - case 1866: + case 1865: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12250 +//line mysql_sql.y:12242 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26268,10 +26271,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1867: + case 1866: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.Statement -//line mysql_sql.y:12259 +//line mysql_sql.y:12251 { yyLOCAL = &tree.Declare{ Variables: yyDollar[2].strsUnion(), @@ -26280,10 +26283,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1868: + case 1867: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *tree.T -//line mysql_sql.y:12269 +//line mysql_sql.y:12261 { locale := "" yyLOCAL = &tree.T{ @@ -26296,75 +26299,75 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1869: + case 1868: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12292 +//line mysql_sql.y:12284 { yyLOCAL = make([]string, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1870: + case 1869: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line mysql_sql.y:12297 +//line mysql_sql.y:12289 { yyLOCAL = append(yyDollar[1].strsUnion(), yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1871: + case 1870: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12303 +//line mysql_sql.y:12295 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1873: + case 1872: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12310 +//line mysql_sql.y:12302 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1874: + case 1873: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12314 +//line mysql_sql.y:12306 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1875: + case 1874: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12319 +//line mysql_sql.y:12311 { yyLOCAL = int32(-1) } yyVAL.union = yyLOCAL - case 1876: + case 1875: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12323 +//line mysql_sql.y:12315 { yyLOCAL = int32(yyDollar[2].item.(int64)) } yyVAL.union = yyLOCAL - case 1877: + case 1876: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int32 -//line mysql_sql.y:12329 +//line mysql_sql.y:12321 { yyLOCAL = tree.GetDisplayWith(int32(yyDollar[2].item.(int64))) } yyVAL.union = yyLOCAL - case 1878: + case 1877: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12335 +//line mysql_sql.y:12327 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.NotDefineDisplayWidth, @@ -26372,10 +26375,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1879: + case 1878: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12342 +//line mysql_sql.y:12334 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26383,10 +26386,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1880: + case 1879: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12349 +//line mysql_sql.y:12341 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26394,10 +26397,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1881: + case 1880: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12358 +//line mysql_sql.y:12350 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: 38, // this is the default precision for decimal @@ -26405,10 +26408,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1882: + case 1881: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12365 +//line mysql_sql.y:12357 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26416,10 +26419,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1883: + case 1882: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL tree.LengthScaleOpt -//line mysql_sql.y:12372 +//line mysql_sql.y:12364 { yyLOCAL = tree.LengthScaleOpt{ DisplayWith: tree.GetDisplayWith(int32(yyDollar[2].item.(int64))), @@ -26427,52 +26430,52 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1884: + case 1883: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12381 +//line mysql_sql.y:12373 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1885: + case 1884: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12385 +//line mysql_sql.y:12377 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1886: + case 1885: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12389 +//line mysql_sql.y:12381 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1887: + case 1886: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12395 +//line mysql_sql.y:12387 { } - case 1888: + case 1887: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line mysql_sql.y:12397 +//line mysql_sql.y:12389 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1892: + case 1891: yyDollar = yyS[yypt-0 : yypt+1] -//line mysql_sql.y:12407 +//line mysql_sql.y:12399 { yyVAL.str = "" } - case 1893: + case 1892: yyDollar = yyS[yypt-1 : yypt+1] -//line mysql_sql.y:12411 +//line mysql_sql.y:12403 { yyVAL.str = string(yyDollar[1].str) } diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql.y b/pkg/sql/parsers/dialect/mysql/mysql_sql.y index 6ed55de684563..71a23753f0ae1 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql.y +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql.y @@ -363,7 +363,7 @@ import ( // Secondary Index %token PARSER VISIBLE INVISIBLE BTREE HASH RTREE BSI IVFFLAT MASTER HNSW -%token ZONEMAP LEADING BOTH TRAILING UNKNOWN LISTS OP_TYPE REINDEX EF_SEARCH EF_CONSTRUCTION M QUANTIZATION ASYNC +%token ZONEMAP LEADING BOTH TRAILING UNKNOWN LISTS OP_TYPE REINDEX EF_SEARCH EF_CONSTRUCTION M ASYNC // Alter @@ -7559,8 +7559,6 @@ index_option_list: opt1.HnswM = opt2.HnswM } else if opt2.HnswEfConstruction > 0 { opt1.HnswEfConstruction = opt2.HnswEfConstruction - } else if len(opt2.HnswQuantization) > 0 { - opt1.HnswQuantization = opt2.HnswQuantization } else if opt2.HnswEfSearch > 0 { opt1.HnswEfSearch = opt2.HnswEfSearch } else if opt2.Async { @@ -7652,12 +7650,6 @@ index_option: io.HnswEfSearch = val $$ = io } -| QUANTIZATION equal_opt STRING - { - io := tree.NewIndexOption() - io.HnswQuantization = $3 - $$ = io - } | ASYNC { io := tree.NewIndexOption() @@ -12736,7 +12728,6 @@ non_reserved_keyword: | QUERY | PAUSE | PROFILES -| QUANTIZATION | ROLE | RANGE | READ diff --git a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go index e07618509a27d..9869cb6afeedf 100644 --- a/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go +++ b/pkg/sql/parsers/dialect/mysql/mysql_sql_test.go @@ -3260,16 +3260,16 @@ var ( output: "use", }, { - input: "create index idx using hnsw on A (a) M 4 ef_construction 100 ef_search 32 QUANTIZATION 'BF16' OP_TYPE 'VECTOR_L2_OPS'", - output: "create index idx using hnsw on a (a) M 4 EF_CONSTRUCTION 100 EF_SEARCH 32 QUANTIZATION BF16 OP_TYPE VECTOR_L2_OPS ", + input: "create index idx using hnsw on A (a) M 4 ef_construction 100 ef_search 32 OP_TYPE 'VECTOR_L2_OPS'", + output: "create index idx using hnsw on a (a) M 4 EF_CONSTRUCTION 100 EF_SEARCH 32 OP_TYPE VECTOR_L2_OPS ", }, { - input: "create index idx using hnsw on A (a) M 4 ef_construction 100 ef_search 32 QUANTIZATION 'BF16' OP_TYPE 'VECTOR_L2_OPS' ASYNC", - output: "create index idx using hnsw on a (a) M 4 EF_CONSTRUCTION 100 EF_SEARCH 32 QUANTIZATION BF16 OP_TYPE VECTOR_L2_OPS ASYNC ", + input: "create index idx using hnsw on A (a) M 4 ef_construction 100 ef_search 32 OP_TYPE 'VECTOR_L2_OPS' ASYNC", + output: "create index idx using hnsw on a (a) M 4 EF_CONSTRUCTION 100 EF_SEARCH 32 OP_TYPE VECTOR_L2_OPS ASYNC ", }, { - input: "CREATE TABLE `vector_index_01` ( `a` bigint NOT NULL, `b` vecf32(128) DEFAULT NULL, PRIMARY KEY (`a`), KEY `idx01` USING hnsw (`b`) m = 4 ef_search = 64 ef_construction = 100 quantization 'bf16' op_type 'vector_l2_ops' )", - output: "create table vector_index_01 (a bigint not null, b vecf32(128) default null, primary key (a), index idx01 using hnsw (b) M 4 EF_CONSTRUCTION 100 EF_SEARCH 64 QUANTIZATION bf16 OP_TYPE vector_l2_ops )", + input: "CREATE TABLE `vector_index_01` ( `a` bigint NOT NULL, `b` vecf32(128) DEFAULT NULL, PRIMARY KEY (`a`), KEY `idx01` USING hnsw (`b`) m = 4 ef_search = 64 ef_construction = 100 op_type 'vector_l2_ops' )", + output: "create table vector_index_01 (a bigint not null, b vecf32(128) default null, primary key (a), index idx01 using hnsw (b) M 4 EF_CONSTRUCTION 100 EF_SEARCH 64 OP_TYPE vector_l2_ops )", }, { input: "alter table t1 alter reindex idx1 hnsw", diff --git a/pkg/sql/parsers/tree/create.go b/pkg/sql/parsers/tree/create.go index 10f63ab955ba2..e2156327bf77e 100644 --- a/pkg/sql/parsers/tree/create.go +++ b/pkg/sql/parsers/tree/create.go @@ -2069,7 +2069,6 @@ type IndexOption struct { HnswM int64 HnswEfConstruction int64 HnswEfSearch int64 - HnswQuantization string Async bool } @@ -2079,7 +2078,7 @@ func (node *IndexOption) Format(ctx *FmtCtx) { node.Comment != "" || node.Visible != VISIBLE_TYPE_INVALID || node.AlgoParamList != 0 || node.AlgoParamVectorOpType != "" || node.HnswM != 0 || node.HnswEfConstruction != 0 || - node.HnswEfSearch != 0 || node.HnswQuantization != "" { + node.HnswEfSearch != 0 { ctx.WriteByte(' ') } if node.KeyBlockSize != 0 { @@ -2117,11 +2116,6 @@ func (node *IndexOption) Format(ctx *FmtCtx) { ctx.WriteString(strconv.FormatInt(node.HnswEfSearch, 10)) ctx.WriteByte(' ') } - if node.HnswQuantization != "" { - ctx.WriteString("QUANTIZATION ") - ctx.WriteString(node.HnswQuantization) - ctx.WriteByte(' ') - } if node.AlgoParamVectorOpType != "" { ctx.WriteString("OP_TYPE ") ctx.WriteString(node.AlgoParamVectorOpType) diff --git a/pkg/vectorindex/hnsw/model.go b/pkg/vectorindex/hnsw/model.go index 923beffa745df..d6d08281ffd2a 100644 --- a/pkg/vectorindex/hnsw/model.go +++ b/pkg/vectorindex/hnsw/model.go @@ -26,6 +26,7 @@ import ( "github.com/detailyang/go-fallocate" "github.com/matrixorigin/matrixone/pkg/catalog" "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/common/util" "github.com/matrixorigin/matrixone/pkg/container/types" "github.com/matrixorigin/matrixone/pkg/container/vector" "github.com/matrixorigin/matrixone/pkg/logutil" @@ -294,12 +295,20 @@ func (idx *HnswModel[T]) Add(key int64, vec []T) error { idx.Dirty.Store(true) idx.Len.Add(1) - switch v := any(vec).(type) { - case []float32: - return idx.Index.Add(uint64(key), v) - default: - return moerr.NewInternalErrorNoCtx("invalid vector type") + if vec == nil { + return moerr.NewInternalErrorNoCtx("usearch query is nil") } + + dim, err := idx.Index.Dimensions() + if err != nil { + return err + } + + if uint(len(vec)) != dim { + return moerr.NewInternalErrorNoCtx("usearch dimension not match") + } + + return idx.Index.AddUnsafe(uint64(key), util.UnsafePointer(&vec[0])) } // add vector without increment the counter. concurrency add will increment the counter before Add @@ -309,12 +318,21 @@ func (idx *HnswModel[T]) AddWithoutIncr(key int64, vec []T) error { } idx.Dirty.Store(true) //idx.Len.Add(1) - switch v := any(vec).(type) { - case []float32: - return idx.Index.Add(uint64(key), v) - default: - return moerr.NewInternalErrorNoCtx("invalid vector type") + + if vec == nil { + return moerr.NewInternalErrorNoCtx("usearch query is nil") + } + + dim, err := idx.Index.Dimensions() + if err != nil { + return err + } + + if uint(len(vec)) != dim { + return moerr.NewInternalErrorNoCtx("usearch dimension not match") } + + return idx.Index.AddUnsafe(uint64(key), util.UnsafePointer(&vec[0])) } // remove key @@ -581,10 +599,19 @@ func (idx *HnswModel[T]) Search(query []T, limit uint) (keys []usearch.Key, dist if idx.Index == nil { return nil, nil, moerr.NewInternalErrorNoCtx("usearch index is nil") } - switch v := any(query).(type) { - case []float32: - return idx.Index.Search(v, limit) - default: - return nil, nil, moerr.NewInternalErrorNoCtx("invalid vector type") + + if query == nil { + return nil, nil, moerr.NewInternalErrorNoCtx("usearch query is nil") } + + dim, err := idx.Index.Dimensions() + if err != nil { + return nil, nil, err + } + + if uint(len(query)) != dim { + return nil, nil, moerr.NewInternalErrorNoCtx("usearch dimension not match") + } + + return idx.Index.SearchUnsafe(util.UnsafePointer(&query[0]), limit) } diff --git a/pkg/vectorindex/hnsw/sync.go b/pkg/vectorindex/hnsw/sync.go index aec23777edc88..a1f2d9d42b892 100644 --- a/pkg/vectorindex/hnsw/sync.go +++ b/pkg/vectorindex/hnsw/sync.go @@ -136,13 +136,9 @@ func CdcSync[T types.RealNumbers](proc *process.Process, db string, tbl string, idxcfg.Usearch.Dimensions = uint(dimension) - if len(param.Quantization) > 0 { - var ok bool - idxcfg.Usearch.Quantization, ok = vectorindex.QuantizationValid(param.Quantization) - if !ok { - return moerr.NewInternalError(proc.Ctx, "Invalid quantization value") - - } + idxcfg.Usearch.Quantization, err = QuantizationToUsearch(vectype) + if err != nil { + return err } if len(param.M) > 0 { diff --git a/pkg/vectorindex/hnsw/types.go b/pkg/vectorindex/hnsw/types.go new file mode 100644 index 0000000000000..973402610dabf --- /dev/null +++ b/pkg/vectorindex/hnsw/types.go @@ -0,0 +1,20 @@ +package hnsw + +import ( + "fmt" + + "github.com/matrixorigin/matrixone/pkg/common/moerr" + "github.com/matrixorigin/matrixone/pkg/container/types" + usearch "github.com/unum-cloud/usearch/golang" +) + +func QuantizationToUsearch(typid int32) (usearch.Quantization, error) { + switch typid { + case int32(types.T_array_float32): + return usearch.F32, nil + case int32(types.T_array_float64): + return usearch.F64, nil + default: + return usearch.F32, moerr.NewInternalErrorNoCtx(fmt.Sprintf("HNSW Quantization: type id not supported (type id = %d)", typid)) + } +} diff --git a/pkg/vectorindex/hnsw/types_test.go b/pkg/vectorindex/hnsw/types_test.go new file mode 100644 index 0000000000000..e3063979fc548 --- /dev/null +++ b/pkg/vectorindex/hnsw/types_test.go @@ -0,0 +1,20 @@ +package hnsw + +import ( + "testing" + + "github.com/matrixorigin/matrixone/pkg/container/types" + "github.com/stretchr/testify/require" + usearch "github.com/unum-cloud/usearch/golang" +) + +func TestQuantization(t *testing.T) { + q, err := QuantizationToUsearch(int32(types.T_array_float32)) + require.Nil(t, err) + require.Equal(t, q, usearch.F32) + q, err = QuantizationToUsearch(int32(types.T_array_float64)) + require.Nil(t, err) + require.Equal(t, q, usearch.F64) + q, err = QuantizationToUsearch(int32(types.T_varchar)) + require.NotNil(t, err) +} diff --git a/pkg/vectorindex/index.go b/pkg/vectorindex/index.go index 55135f3285fe7..25469bed5d4ad 100644 --- a/pkg/vectorindex/index.go +++ b/pkg/vectorindex/index.go @@ -20,26 +20,9 @@ import ( "encoding/hex" "io" "os" - "strings" "sync" - - usearch "github.com/unum-cloud/usearch/golang" ) -/* -quantization := map[string]usearch.Quantization{"BF16": usearch.BF16, "F16": usearch.F16, - - "F32": usearch.F32, "F64": usearch.F64, "I8": usearch.I8, "B1": usearch.B1} -*/ -func QuantizationValid(a string) (usearch.Quantization, bool) { - q := strings.ToUpper(a) - // we can only support below quantization - quantization := map[string]usearch.Quantization{"F16": usearch.F16, - "F32": usearch.F32, "I8": usearch.I8} - r, ok := quantization[q] - return r, ok -} - // get the checksum of the file func CheckSum(path string) (string, error) { f, err := os.Open(path) diff --git a/pkg/vectorindex/index_test.go b/pkg/vectorindex/index_test.go index 5b161b24fda8c..bacbca116845b 100644 --- a/pkg/vectorindex/index_test.go +++ b/pkg/vectorindex/index_test.go @@ -23,14 +23,6 @@ import ( usearch "github.com/unum-cloud/usearch/golang" ) -func TestQuantization(t *testing.T) { - q, ok := QuantizationValid("f16") - require.True(t, ok) - require.Equal(t, q, usearch.F16) - _, ok = QuantizationValid("") - require.False(t, ok) -} - func TestUSearch(t *testing.T) { // Create Index diff --git a/pkg/vectorindex/types.go b/pkg/vectorindex/types.go index cee4d409aba7c..f144f2fabb7aa 100644 --- a/pkg/vectorindex/types.go +++ b/pkg/vectorindex/types.go @@ -66,7 +66,6 @@ type IndexTableConfig struct { type HnswParam struct { M string `json:"m"` EfConstruction string `json:"ef_construction"` - Quantization string `json:"quantization"` OpType string `json:"op_type"` EfSearch string `json:"ef_search"` Async string `json:"async"` diff --git a/thirdparties/Makefile b/thirdparties/Makefile index 1debb8d8cb29b..1fa3a193af5d2 100644 --- a/thirdparties/Makefile +++ b/thirdparties/Makefile @@ -17,7 +17,7 @@ UNAME_S=$(shell uname -s | tr A-Z a-z) UNAME_M=$(shell uname -m) # Usearch source code is from https://github.com/cpegeric/usearch/tree/bug564 # There is a fix for concurrent search issue. -USEARCH_DIR=usearch-2.18.0 +USEARCH_DIR=usearch-2.21.0 USEARCH_TAR=$(USEARCH_DIR).tar.gz STRINGZILLA_DIR=StringZilla-3.12.5 STRINGZILLA_TAR=$(STRINGZILLA_DIR).tar.gz diff --git a/thirdparties/usearch-2.18.0.tar.gz b/thirdparties/usearch-2.18.0.tar.gz deleted file mode 100644 index 90d2550b5d1c95f4a688d7e01310c3737feb9f94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437995 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 z%0A+G?Z-$d1sRMWV2aOrCOvxz4g5!~^^ptwAGJO|0PR~LuzW!&nDjlSwde>KWo+nb zzwk^<*Y#w9ku{o^|B(>381M+q({mde{``Qblcb^TEnYOGWk$iu}&W9)4j<^}3u_+V2*l)HjQ?Kqo`$p}J)c(J{`U0Yk*=F%pM`+jSnjBRhPZ*0}qwzk(&K*hkt zMIPZlb$$EAf1x~s8W+sVXkeLPqR)=_oCyTI7ts6ldR2^oIvL5P5Zq0DV{?l|kU3D8 ztsrLv>Ram@D$saRml^@t)NQ@Ky-{1=u7VsFkTGSz&9Ag|&(4ob?LOqT@ZWDoR?9;Rf5tSR+aQ)t zHT07n?5K`#Xw47pE6a^OHi8SD?D?kMhXl#G(7W#W!wL?phF3uN`iu42W(kdzG;s|MT2Qan z*R)zytJg~t-%(nm=wlTANje2uYW@A*PkQ|y8JE@}nnCEWAKy_Ov)BLHMy;NW{|vjy z!}|XQ&m(q*E1Tw>8`03Iv~dON7Om07whugRZ>rd+eH1wJk(b&5ZaHURxQ=%Le6d?W zCqk%m>w%DU1w>+;LNab{*B#leJ(`TV7%&0reDbE%?!ZpO*7RD9?KjREhuv1YebRnf zg3a#}Fp*D)T8PHbZ&^evbxb;J9KSkmylQn=lQn<(iPH93oo4%hOs`nEBXrIGVEgF0 z&u1O-G^Oq1Sa5r6CMZkG9pcIU!1qQ(VmP^aeR9+~g&Ml&?Zbsh#8Y6?*&d$gju50h zh%7{5_>r?FnrfgarRXhtG6`t(jefri$smYQt2V?U9m zkq4dbQRCpad)hwvq18NNC;R)*5-9sbcvm=Yw_C?&-OkB*yV>gQ9kf~Jtlj$edE=1r z9PyW@)ccvxkDr#%W*ERze;bHF0@Ywv*PbH_<_Q;EOkC$>*B6${cwhIe(7b4RZiwPx zg{6B=4L?0OJZSz5P*1DXtu5Xtj!|O|#Qo`$PU}p5Wyh_z$tLj=_MpTok9%_50epk$ zJaCD#6piMFuR&RiTdGiOjtZL*Y>p>m%Z1hxLPXL@X>dX29{Bdj(Zl+hS<@r?t()gIx|xaskX5O&o5u zf?zKUXQ1H`v`trBxFd1Gfi%SA&3RT9x4mJMgk3rMJY#sf7;V8Zj68e%YXOpd$+S0R zN}K~;IjO%bc)G%$1KJUn1f`mw$zHtRcH5|V$sb^KI8=}{0Luej zWbgd2)je&Ty@oL^qA_18+~Qj1P)fo03xk&@ts5S7>Xg$psxskrFv|Jr_*|^pJ=+hS zCMe)pqy4IN);(?9&44J!y-+l~WBl6QnEENj@XI zt7omF)58W%I`0ZMbl2%cx7}Gq6AhLVynArmX#d>JX)w;@{b!uggA{{3X9lMERygrp2H(GwKD^|n_tDTbj-|UN+Jrdc zq&9mWZ4B7AW|;*GC#VW6q1urjYgCMY9q+HZJY;`)UyrzS2ROXyA=V;|*bqAJ# zx4DA3eP`y)O_%()cL5)Or*?obd~ydcgRtMN)sjql(?hi`ffJr4M07G{&`kpr70TS0 z_5$6|ry9`5Dd(Oe=C`4obGhvCzjjYf4wVUwzkT_xOik>-A`reXfcsmht=+LR0eLdG z<2DOcJ-^Z7BenX@YLs{Fa%&VHkVTbRxP z%`D9vnXhR9Cqr`@!86@wJCL5wZUpAI-xe$~6uXJBkWCS^t}B%Qwl%vcadPM94sf`V zs;Z5IW)O*uQj`{Di13&E>qSdEkN*|3^s++Ht?!_xNcM8pY=X8Hj>0{RMBa{rOk5>u z^H+{X(U@c_QMQHjCm1{3m7WQ5EPR|2R`y^yZq z9*Z6eP<1$0J#7cU#0o04%@ZVUPvWlG*9u}^TnrgR$G^A#3EyOn<-7A+Oo8(pvqiL z%$FpI-bbPF9>YzMS*8$2YbPe03r8yzTu*^2;Y_Q(q;u@aVrQb(!#XDyNGAQ zku&-3!Jd8*jvS6L@rkJ7ZyvJ5$D!p{$LC@J;**k;MDw2{#`^KExpW(!)Aqp|RJ}j` z*W-V2BD2$O9kv>s)^|JF$yz>-oy`39;OzBY3rO4k36;q$q7CPQ0vPA75JI&8LVoff zFis`Cr*f)kFqhKIM$ZNjj$BqTf9~n0q1qcmZ*7CEA ztv-5qFbe?00kZ;Vxa0XSA=kzF)1L_HT^<`EAOq z>Vig=HMBCaFrWjS*zM!ZJMP*x@vVbCAkhnUX3I&`^mHaVedX4cKX|kEx|s7nesi#Q z&?vK$Hk+UI^=WhdzBnHZ6Wd=QyyPKXE==;~7NV8Aabxv0avBIJK79yLVcORmW7O*# zaV;Re;YF{p<%iQJTp(nTD^!3C2;M&XIkL57&GWrRvb1QY0Fpab1mpma^Yo;1fT|ae zfcILkboNjTZJzA4NU?BRsMw}1F3E$lR`cwfKy97qKXtJ zkzCF*PJxQL@@s((=1ZjNSq|r55<6#&3qma-C>>^+Z2hL&EIA?VB< zjL6cE3ddwVq;D`P3X#2=!MPQ{S!1*qK$V8_sKY24@hGHd)Hn9+5t?98Frq$-ctes^ zn*4&Wi2noM#F1^+)B{gAUr(g=rx=olyyiI(fs08flD;zJD5LAWfqfI-G#>Hz@rtKk zI-_?iB&_1-8c(emSEwN*pI0!n0Pu_NbNTK9D+*X)~Du-xt7lBM!U5qPlSkZ zEy#$sf16Rpui)X@t^I?a_~7L2&C470VX5W0-CLRS@dkdiN#7l`cwu9{JE&`MGd`Hg z_-KcYfR0c<(2JH<&l=$DmeUuuo;(HaqGMUgjlm!^%u8f326%lKEi-1L#O&_LKAKnToj1?!CJ5y0``@*CZM~Mg|GoZj|NC1!bcZhVf$71E&P|}iuHlC8 zqfg$&;Ul_qCy!1iz+RmKc}I78Z!J^W>O2O9ll(|Lgi z7lgwsm`o##r;6uw$ptuYxRwLcfT5X6eH%}xp%J7x!Du~vN-r$K2``8h;?t!^XweBF z158IyDz$E6r>#Bf!nm?!OsKeK(j6F#A~E5uS=9>|&TnttPw>yF^KE3 zMyL$olXD3in2XpDde_hrVGcXCJZKCQ+_kU(Oy3wbt-*w*jz_klkXB=0l>jgzj&)7W zx&& z7RoPj66bqEgCcxkv#n?f2X%*EuFe@^e5Q+X=UV zl_;MQzyVhN#Ju3n8^#yYfO|j#!Zk8%hx$T?jjQD2&YMuI9^1#sbC4WiBT07jT&VJd zaM22lWxQbwZBfuk8z)@Q7$LpT+HGOOO%ifg zTg6Or;@^yxprqy~K1UcVocEjPcXu$A>%t5dVvLj6v#=$eA4-H#hf^YWdQn>nVKBlH61eZtkB!cquTms% zR5UmSZk5q#gm2;g2^Dev;|itnAvr7oq#BJwXBsVQimKg6AdE_7JeXr%l2#UN+al&7 z&|GsWwhMlg%pJr>{q*HV0dr1FQ)YD8s|kF-;m;*=JSrqPJVLlIym6ib;5kec0HS1H zc=AEIDvn43>z4_4sz?rC+^Hm9Ds2KB^Mq1~x{zIBJKUdVO-F^9&x3=&#`-MXpl8o^ zFy0uCi>;DTb+6@wCBhDD1mNk!P3#ZI7r2}qqzxp2FgmY0>K#_wko({&UEIN#B-bi) zl9}LD#0FUSI9ew6+Af02P-QON7Z!7>j1bWgm$pj7jRp-*sc`P2UR@JQqmnUfA*UIf z)tZWRL5BKtekOw2)OGfjx4dYG8%ld%FYzYB3-r=NE~6rJ<2*arbt581(HwI|P7V}# zyv<+@ZUMGCA&naEoz9NEQWOUinL8}V!?Yu(i;E8Z_Vxw$P61mdZr~AjVZ}m$EL-C2 zX1r^YvzhdM!hIOUK5voJ^yugiJ$>rrLrh+rg7tgl(d4R?(K1Qz4M;Kp(;WP33HL52 zin*@k1SPZ;N)TP0z2Sq;n~9r0th#_^6H$vx6(L9k9y#Fw<`LN`!^Ju28LpV+HE3^? zXV)lPP7Rtw518b{DpfimnHy!WO93hr&>AeY4x<^&#e=xfJ-oVy%LYkCfI)R>NyoE> z{3&5`Dc;-@m=HH`-n1Qia$(?5Ma=A-U{^_$T>!gmijwHzzR{tV$1^Kz*yLN?*a`X7!85YBSv6+TyV)d2s6g$KI1|w~bsm&-@Au?YOOJ0VKg)IqXE1H#ycalHBf& z-A4opAO(p8*Z?Sr&Uk)f9_M8~a6Vz~QdL+8%5vLrGUv2UCpK$CEw^sn{Tf<50yH7> zkHOkRQKrTG%JbcSzxPH?oL>Pm#_-9R3Uyq_)OO!-(%cZ%@4A40?muht|HHGB{U>kE z_77it9pV4Kd`kY`X|>zUwfN7Se&=`j|2O!Plm8vLbP})F|o@J!dq!Jlt(N_@*o5s7hY~9AZWF&kbIs89;qHDvs z@e{z`9LJV&V!VywE7Dody$68xoR9>#rV5T}%3!znR&3#CUm`CV8L}ym1t{+adgcp1 zt%k{eBS}~6B#FYNFC1TvvPBfY6V~e^Tu^4qT1}Ra{h*@nCPAE}L}BVU;fp1l)fm2y z;lkW`#7eoS zM~{p`v2=;&*tk3~6H`tAhY9;S3tZ(LjgV_hzyIEB*~U}|{Of`7#$AT#vgXGAjUEa5 zMDv9)n_bVL1({&+zP({c4QE})FeKEkmaA&ulrX7@&Ot$TT5|5VKwJ?@ zWHpb)HoD569BRkXi+pT-#-h~JWi0y2$;-NI`pR9sP+eNWa}xV#%mf!RUPPGRh0X+d zsvA`Q0-Py%X|kHT7*Zymq*_Xa=tEz4Rz*ko!piYZz%k&5H*G+!NnsyyL)NMqmv#lU zRK=j=9FpdO)HtEe9Irf}aIY}L&H@;*9eh;YlF}hkJA$bX#?{*}HcS;|KqlVg%I^W-&eHa0#(g-&Wic){GS;&h zkQT{&y_d9kQ{B|7g#9>&QSgB^C~G}c_zBhZl|-$qdf~X+fY2pRzusS3_Nngo3%E@| zGIg%$TJ3n5rZRVp7A~g|JOzNlwxvCzs+WPyQCmEZ5=!}<;&o4qY_8c$`C}}!m(AZkj9#8<;qNPtwL>jv8DeTMfX~4f;@ht#8gf>XW@O!n^KY z4Sbc=8U!nAGeE4Y&Vl1v{TfhiXpsla4NVk)-uaEJ{u_hj>wr|T8G2YOC`>Rq8whckPiL?Zwk4L@SKX&z-~xcXm!l zTlvBdfe8@L&?68LK3rWkay9~ZnWm)s;6x2FMV!TBEL|FewDTShwX^e|`JZw$;iT|T zYA5xaB7(+wv48I02C8wAMhnzbW04`(WU_ftNQwg>);S|uxPnH&FQuG;o5rHVB|&(; z3}H*e1=bWMp*+aoc@b;}5c|13N{Ay8Qt9iWQd^HhUr>%2u@fZzIZOqa%yVCD9X^UO zjY<|s2xaB5(!fz_#5hV48F7f;@7kM?bWJbz_O{tI{Q~$BG$|0&HgEfn_J;<*d4T%s zpMee}V=DBA$2lWGn6ncZORIalkkY+`uO$~i2ckMHB0%5G0!nznO0B?Wh!|cIz!FiT=x<}k73P+S-Ym0%es-@}7y?M}M}~5osarXgp?e2##q?1>>!aW5q!tuGOSZ_D}cB zA2+sLL^poC5Zv|{e;n^^Y@D=*&0B7||Kz~<>&AxjV3BaUgZ<;v%^zQgUPmokeq8PH zEJ)LtZ=#hwDzjda;v!*{IA<#*VI2-@X5<~kXuuPr1e_tB>^c0H!@UA@aF+<7Rw+L) zSMu$jAq$L;$7UeeSamU}anwa)Z*NrRCtjEQ^ph-tcUu+i!YhxjI&{`$hX=AOoa?fa z-9voPxjc44^gmK{xyv}JJ9sx>V`u0?W=_Lp9ev7Tqt5%2D_7mKn+v^hb*cy5o_g&b zwC_d&NJdEN&W~lP0gbmOj!2VA zvO(9b6An5l@G1p_WVC@h;eV-AG^A?cyjN_Xb-a24RZ{d;)I&kHcgL&aAcrDXi-1&5 zQWC6bfh|U@)y`Ywe-@@_Mar5#MBHNvRc9?$WBuiPBv~SrS-yv)2zwPah#QxpzOzVQ z6_wHp6D*-wn@r%fyw1`fFR$T639pfKm0N?^&ayubPy@VT$3{%kiaJWUbt;S)=UXr= z9EWILROFH-Uk$-F;atWhHF1hYcR90boX8?rWVaj!EO>4{(Bcif9NG*1Iv?;+td{Be&9MJ{wywnj*_| zxEf@fiP-e$2}FPxn}CeD0ULXfYXAz(0o^GR1Rqv9C31_q+!nhKiR4Vs+>FJ!697;O zNepBZiiLy8DkBB6VHQRh?MSfY2R0P5ltZOE z9W7SvR#VQHzbCaBb3Z2Po$ei)BVjh+vV4@5TWH}-9h{t`meT-7a?%+1QJ|ZPmp0Lm zF0-d37T*JuBT}AYA}A4FL_oI=Xk{P^a+d+~zg?{qr>~fHf*c)N0xjWE|Ifw($qzQYpSN=oPPoXcTBAYCUq_7=_cs__0Lq4M6zA`pjBRWk5w+W`G5klQ%Qjr5ZL)F={M`3n9luNhqc)VY&! zDJ*L$Z6Y~HNtF&TLnA{*c<0EZDy7IPXp0=p zSXr)Y_RFY&gwP6p8N$uE@riBHG}0@ebWRC>0%Iz%1l!BP4jk?t?-#GpA+XM`PD|v` z;qgI69ig#KxR_ri#5ziLQjti%fkKj>x2CJbZzYmsVref5ze^d>z>L*BMz(cROq>WD^#k* z@g*E4kJteI1!HWDsVgcDl)|9Stv5}GwGv^5C z;x$DB!vp)y(~=GnicvGt1WJ&g>x-{}#{3)*T9S<0Dwq(d4$!_l%7;Ca5*8VxnJk9o z`$JA*d;na6>bctUlcNJ^!f5#-ww#-!!J*3mB)WtIG;QUSc&J$?J^_3P@&)4%-u8n`{9Syj2e zx1r*6_xSkb{>g^g!)Hf_8@~1KFdaPX#xCU>17mnJWqaz+c3`KU)*F);J~_P!T^l6e>%!SwyUC#NOzwdVan`-X9q_oKaYBy zgC})_VSi4;@tAu&W({u(|5NR_g%{YmOtj%chOSqBsuxFd%dKoDZ)XEX82VMYSF%k3 zb}shuw|9kD8z*S-PyYYR)`SAMuh(n7Hfx~x;e5MupmPDs>o@iUsNjm%^@PHhXpuzW zN!>&Inpi=UJ*+|%$$x#xn~Ixn#mR4dP?dfKh%_WO`0eyl5baIakqoX5>qVya{0W5c#edO2Q?C5Z}9Eb1xEu`{d(|>I+gH zXU1O}?trv(BDN(U8zW?_{TpJku^W9?sR?$9>sHx?Oq03+#f-z6UJ$3N%+Q0~Af=PD zqjRQT_)B*F=h8hIkubK@$Z)21HgKD9v9gho_Av7Ma2h`tCx!3?K=hFvn}5q4GB0WT ze93qy+YSB@Nx#_OQuc?1|6uH*9sklbm3}}w;U!n7llP3r4!6*OS~53$WK`i~X^|v3 zp--WKq<*;E2+k{SiFcZ!T;#84*{;Tr&dbqFXpFP5#yoGb<5c8=@^1-dE4>NOd7k+R zWShrFI=?nlx{2I0*NZIIxuV82JvO}0cc?6;PWJ#B*@UkKK4~WyfFdQvuzH3#az*jx z8FGipDvhp=+)H+V28>NdaT83c@E4s~W#bI1DX%s1&EPtjS;dvTIt5Zt=5S-Qk9@l% z?XxGq0^}kMD9LJ4`_IwImiKd;9HaF)5soQ-7E|5PcKt-^V~*xwXsnbwns_#`WPH~04KiiB%Ge9cX)N$opMnlU8J`RY6T4k$t8W~6zNy92;bo0EF z9&8(B6j%Hd0yyzRWP|_&%oJ@6=n3UeXhjpOCuL)fFEVYqpGDSZS(6y%WvwO_#a4|{ zP)1`Kp(e1wiV%*+$S<#C+fb4z_dXLyEexRv*$X{H6&tML5-|mU-pM%#fl37y!jr=w zf_be&DV`tip1mAdh9hQ;wn-z^P77Sq%W5)ED5hc?4zw@y!wZADCK2O;8<*E}+9k8q zGBGmNrFX^VG5B5fg4n5{0i-E7sfS_iKm3~>NGD|5P~4Eh{C&%6=>Jp~+LLqKlXHaw zc_T2&z8P(95K5!C>RZ4FJkDPiV@%{I$ zR(6`w;-T__pIK9H_cp~@Je>1EMUs-n{q`Hy4HJ0j5bITmH9so(M-vI0I*;(Za;6-T& zxIbLt3xJ7qq_jxkePE(27#J~^L_tK0Re=_ifsW*PNQP<6+bq)=&aVKDQD#=R-U~!Hi}x_p zdud{tAbvA%d!6_E64w#9p=D{t?~Ad+XS4dfhXa0-nkfKfYEl@|mCc+*Q{c>vI);de zX8s?q{n$lvZ8h@z6lh0yn#)}awpS`z`gZ2`nvgqQ!cGGf8^IHzM^Vk2UoV__L(W{9 zn4q~RZb@lF%G7-Q^GChUe8?KF)OYvf;EQLpaolfkT641Ipu4;q&rKjd0W*k;U{M9L zRZEDH(gHrc9rO%r*pZ6i{@%NQX#Fh*&aQMt0sP=3SB8wOZTjIf2s2Yd))QuUpY(`Q zg_0WiHwoSzVCp<==~Af7Y}7Uy9&m6;QbTgk3w=V$(&*u1s4-;n@~y&TZVf>Z31KxT z&3W{Q$OG8|!-9sTGTDn)@?Hn%&lwcd33?kuwQkFQv%PA*IjgyxcxvcbDu1ASGZO1$ zI@dy7>P!oJwNp95S}UolDa?JDTo@V8oYSglZ5UJRZ+B1kRTlV>-Kr`+fBxq6>(Rr% z<;y-=O|})N;GT0IYuq?VV4~JYiX)N+yf5J_ay(sSmPX!GLDTricEncd#Mbmf4VBEd z*AwG2x@7DmVQvZgGSujeuia2-3yjmJf6-nA9D|e?&nTLS3*h?J-1KCM@uQ>HdoOqQ z4=EMB+Bz7E#2X)(_mkB6ns{d?ii9PM5BEz-k_h7mG>7$RXTEo3$k8;a^Y} z5)7d2UTQ8ENeZ`OUUgi+hXZTpIbq<0inu1-A*O8FLEe_8^pB3K@&DydIsOYNA7*gh zzv4GO5&ym2@7ineUs~P%@9|&0!Jh{dyH85*0bwlD2%Y@d!u!utX;(z@I))8QV4te6 z2N*akRGC2MPDobeUXYS4ka`S8Xz%~-ofJv_@=Fct)ywSU@>2LDeZ21 zVE3C|yDdboH|%wrqT@D)?LlYI=|b_K>G_jZQ?%Q#wt?vP27bFE95HBi`#rx06kEYr zeq_9>8FiFNQhwh0HvGb1g0M34Ch*b=DEVc>>ThpL2L}tb?XSFE*X<1Z6US@Xw%zHv z_E6YPv)yfZlWyPkZLilCt!Ag^3V&kTy(XL=v~+wiX!#T08Q7KU1(3sq!V26t@TR^w znK{#>R0gzn98nqa)TUU>mI?mv&K+Tb>Kp9Kux%+5W(94xEnN^M}2D zQ*@iII}t;tXSaH=jEOUJgb>4Cr_~>{E06zC~FTGPktNFFD z`^0lw@E~>iJ-0jTPKNF7Ky+KZmg95))7hQ&V9*^3$7!{D9w51%uzM2^j(*~|`tH!) z0H67TEg#R|YlG&%@!J2#-nRfbmR*I-Zu~>Ugd_$-z{#^_cBi$YC+X?0-sxHQbob22 zJKfWC_kNtNM*V*3ejZ6rt0#50#%r?<36Kg@U=2kei_M=(rKo`IwV}Y+kQ8AdAyrUC z@e3g?2XLhb#z{N%cUvSC25GdKYd%{s{ z*Uqr}jv1h&t&>B%*Bp}#1OrZ1%LN|7X*9}hn9_n@x9hIwmmJ5l+O?uxE>++-0bZ$I z@v4TZNOb1dOl)LRPI@FV*aV<5p^w%FOW}VmRZ#M6;#i$CyOL z^eK3+sbvYsJe+E!w(VPO;Cm{-ti$%Jl&bZT?K#z|RRzL>&jBMv&$r8M+XYOxg|_dP zonsbhlK-9H=b~3d%1#}I(uSiPMpAQuPpR2(l6kfZe6SBRq+Nu^ z!05r$wX0RHdfX^jq@UPsDBjOL0D+qq{IB3)kDXR) z$A(qhcFJuK0P1epsy1Ma+YQTYH(cOsfg;sm`FmEyt~phpyvMC&yf8AO@d?blUMM-r zO7Whb`^9?E!8K3?0_)f676?3b7#AFqZ9FGo?}E7FyB07tE^w%Rp;m7c3s$*U@fvoi z!!wCEqU8tP-#^l}e*r0EVtm^lJqlumC)Gy zuq~h@>}kK$u6m8CU-M6#)s}FLZ0+?%82^D*_2j#5bl@gl1l4*KYs`E&)eOCuYJ+`@ zrdo*~PqianiIz^DovCrXSQXcH$Ls z+^6q&6%>*xRjb^nR;qOy&d#FUc8;U6Q|sp?A4nZ0pil$$3>eKy2_(~E!FS07dC9mRCD|KW+%hgg5 z&Mv!c73(lQ5XOrjq88kmh5E)?4Gu9FWVv2*+NX>}qb)D_P|Cn%ltI1*xdqOhLc@2; z^*XSSg*GzIzyLEq%)fNlHf)!Mhm^ZiDp*#%jx040YO7+^ywfISf*!u~YpepxtL~TU zMHjV&rApQFyhf!~DAlWQo{6rtW`=g~}`UKQF_dTHj|9AMDX^A4B>B-<4jB_KnBoO{{U* zYScmSE?m;@XWxQ8_))GG4*Y&+tVR00lHLJEj=exd7n|rw=nsqsjcay<*WH_xRLi`E zH&c(3iJ>9P?N-RrgAKzm0YExMcTNJ-LJ`F3PT*poM|`jdBi#2*V%>!&7d##gMw~BB zxF;@Xw%;dN)}zUaJBkCoYxUy7a-=~RSCb~5#InL)ns$Evp@)z!q~FroQ+uRam+H?a zj7n#{auW|V|FRi%r1z;{McY1QV2f~$*k=jnTQr=`8fgRzO@(%h^U6h#+@C1Q65bVx ziYZYE8`zl@hyWT`3ze6kN4Y$Q`@+7I+fzMg%?bccYW4}0UlkxjuX?nW=%5o=95NY= zJ6xNhJEYLqyW2m$MGW>PvJg~!OOL+m9^!CUf5F^#18xv#Z;KiM#1)8 zGr~!tZ@MXdn=06DBtvoJtfKsCVl=3!rr3W*JsxxobI>;Oa0-zLqfKE{qG6POh#-SD zN}3HJ^zG6CLB^CO1@kr8pCopz9-%#iiUW~);?~Ba%gqf#83``kT7R32eWpBSD6CVi zKQ`326rgWw<8AA=nrmA?QN^f`qUPe_a5SzwxqfSN#i)Z2^imr#P3-@h&83yK&6RuG z$I1I2q(Io~6Z^khtW;mw|1ZPe?6Xe$WA@3o$qZHMgpx8y6Xo%HD;fg)iZPb6!i$OHa`5*ohb z&8D_>%wW=P8uVNMkkIr*`*6BJOYNWy*zEfQ%GoeiDLjy&?n0FmSvE8pk_$Zr4?-K= zNVW(~I)2X=iOUnMYjDO>{>Ff*BGPTq;Nkx(-U;W9I76-hgw`^f}TV$5Pz)x&!FDE!o#0r~`j1xOSHxRMp zRR$HIlfhfQtdWr9L^E6?|Sxv$rLJ2VgpRD@D{`4_tlZ=!=!|3`0zcXh4 zM?@TYU*bAJDLf-5odlFNrJV@dS?!EeNSy+TLY0K=c-HkynKNg6au38=!Q=iE0;PIQ zoTUm5Y%DP+w1z#wiO80O_bt_e_s0RB)iwo2!X*7gN0My}#}y0(@sNB6tuBH*(sI2~ zM?PYazZzD9z}|F>3zU|F-$-aIdcOE zty%rZQmhcmr;$#=DHtstAugSfq6AOBO`)ifTT#50j`XZXMiQ$)!#3g#cwBcBMV$V{ z!_=2ZF9jR<1W~;BXyPbeGA2<&T~3Hj7%E_L@5WtOEa%p^NN%I{B8x|p1^4<=v{7HYp^!$Mb20A@aFBYGkj z3tev0*?dKdiCLcNamH~@w1p?Aq)pJejYRja!0gOHHNQW^4F)2|P_jtqK+XbD2BTx+ zShd;fQaW3T6^dM*1c>D5kb-sLA>d=odHy%RAc4bdocI^%fMApbS4d<=j*Mc7(HzNM z?S8+5;wHyDKrEBSpFwjwb^!S1vfALBF*l-PSJBO$kFN3@xiILp@g7BmFAC(@r*HhZ zC<9_JMr{a%0N4eNL~->ToNS_k9FR<~NDC0aXC^NRoao{Zr$U}}IiuOe`B$<~1e6Nb zw3?J*u*V?CECrOni%;db_`p)UHD?h*gc+0pe1!ZH|E7RO9s3ZYM&nRBzQ}cE4;An+ zPcT6hPa<%1CNSWU5VhlWw3OmwIV?FJUE)+J#03s3xe_JIB!yA2Q>35~@3A-}C;`K# zg9zF*lxxL~B*R8}ZL#jYT0sNW8SVzCWCbIVfq@ygX;;>v@2&4SHG0H)|q1Ne2MYdqor^nB!-vKli%OLQ1-H!-$2tlR`VlOz@YV$O}Jr)+~`*@VQMK7}qg|600gY5r&6#VxCxJ`o2yopfJ;nqBD48?!_nIbo=2T zJB?*q@_I(XRrwe!wI_B8F%TdD@?=4S1JA@kj@8`A2-nD1_%;Zk9N&;+>1Z0w+I$o9 zz@oHL@_`Hy3$MtbB*77TizwDOp_^C728OIc6)nX>)mEg|iUeI?=qx)S%h-=#BJ?ql zJca5F&+~iUs4Lml#EOxGh2=jvos%?;5G<7#fQFfyiL_N13yb)G!Dw>*F=CFpx0s2d zSgIhlm6Y|&08A*pw5h;G#5i=2Q6)zqW)ocQ3=Te4?ajC{;%2nFqOd&!nrysnC{MG{+vByb84zqfWu6@26(M+&e z1g5rNxCv%mJ$d`c_1D57R#LY&biOzt3uSEogro_N5dtk5!Eq4z966r1fi@+gBjzqx zL5dj>q)4;}G94{^nWu;(GEUyBwipp!g^&S7uO~gyr0gN?0;)g?B?A)WIEaMgqrK4Q z@DRjuYd1oAUUFhz^0p9>0aY{oq5=xDTxek=n8Sfy{liHF_VMZ-N6$wOxX%Y*_+-h#!T*(5~*UaYH zwTvywJezi6EnW_j(^bMRZD6f4~fY=^?nV~kyl!Hz-JIWQu( z0gpKAIKT*!wx(*4H(5grxTUEKdj4J~0Pf56Gg)=polU56mFDNv^*+ap0_yZTfx|hi z5V$?mN2q%X+2s%|5F)xApS?erdM1t!RLaOH>jW~+H_kXst&N$c5;}ZJcqmK)V&eeH z*%2$*pg6g{imL=VE;jTN)ad8P|9@MI|%5Kv@OgxU~gxv_8j?h98-;zhNgPbp4wZM3AzXOgJFW`ksis zgSV7EtjzTGPFfK@(oBfcZY&oQQB@)JX_9o#m|Lc7WI}19?NQnIn==MU>m;U%0LqRZ z!y%*t?bz1tW^u2uVYIpkZHt_U007VlOvx09G>B-fEG`VB(1vAs-M}g%cK{N*G?y1V z!Nt`oMSm71D;y+RUJYW!Gyq46Yox(xJS&nnpThVB!GwhusQY+?M^olx1yg=`PyazD-FRM*F;4pF+7XW&dBR6<@Lce;NMdrN@NxN`IU~!%y#( zE&NyfZ({!^((>J_K2F*HrBY#P|5vKzSK|M^9Dn(|ND7ES!Xs1WQm*70sT7;z$n=oQ zG4q;AbRh?*O4oQcp>@6YQ{y ze371+ldH2tOLt&BlhcIDF#f=mp9fL*&0#c0FET07W6mb4^f`u_AI_xgF6NxgFrPKx5{$%#OSuPXTUqW{WYt);73Ftv%sWZX~sGpKyfx^KwT&EfzC_>TNdOp1yK9=%P6YDqt7V z#Y)l0#SZoA5y;8JYHQ4Bh^K8u$KmapuuH+0^K0Y5B8j>|FHh=G?+NY z=xpbEL67=H9j)CP>;2zbs8w$<*f;4>vv(J8qsa|mUUk}{PVX(GvX2{_IV)2`nMrF@OA-?>DXnJ+$$` zufV`LbgdQ*1DBp)2q$w{L}^&%)Kp@#&YY3sB75agcDRD+s4a`A2Q+?{EwJt_ePx|K zjna#32Gggqh@QTJ>BTqc`xnp{H}fJJz))A|D;x0di)_FJtQw8Ri>w_gSsU8X1n(Ew z97_;aNJM$D0e|cB3okmipZ?UyNQ-P>mP7$P>N*wCNiwj z_dq;b?0JJQ@c4b4JnzL|^{GxU^Z~73a}z#G`p))(gVPVpzK?opAGZ)^c#TPsL9~bn z$NG4^IYElZ!NbjI^+C`_eGR%Mn~v@6`Ld};;8hTM3&U_|cOD$|f?>2^I}SS8)5X_= z9lt$nQGEXervpOLgLGA@o{W4hf!ELryu%+T767IIK13L*2;rr{&pK;+{qEZ%BAY@Q zn>ot0_0@?%!mC`gPq*)gbZ92;jn%L^w&QmeVmblPKoe(yNyRA@-)4fdgs)BpNYwTw zKthrMU{C{RMv+R{EJJqXmuSslc*vX-QxoVKUH6BlAPgJLd&3z`2~at`Fk%i{I}`4F zw2$lLaIxV93p0}<9cw<$avjsL12ly74->$z+6R8`6yW`%QIsFdXz~$`G`2t$A1Ez8 zP`n2JMFlGtMo|nHAQK)x7%vkT9`y^KLQAYhsQ}|MntjzH*h_dJ?u=oUPX<=70P@Z` z%2O5wY+wePA(x5Y4*?V`grosD+XJ8*rfI@I#>b!gCq}EaZ557;HVG6v+x%$`_wAn9 zwu30zX|;^)8*7_S>}>D%qC?Z}?1dm(?00wQrreKXd}1AA``Ti2a}(Rax;fFwCKV;^ zrH_d&*+_IdBGJWIqTKSVv)Q@B8@O^g=h<0hwlddF0++zPhvR!Kdf& zbJa1bxp%fv7TPhx{tzTB4AOudAlw5}#XxG~U|W647YbTt{?s z17s$&i7@TGUP!FiZriHv0(84Ueb+FJZL|e5;|QG(8c&U2dq7X|GhrVGAawn1I2fCL z8v`BrJ$Gzs5j{-+-h|q{VQ`0l$f&_S4janokQE+L3(x<%43pQT*_oE z!sczTJTWC220HEd!rGqO61?mdNSxh}e8N0qGaR6u1scgn6b#v>ZTq_43%i(X70WH{ z`(27ZEp1n*Wu8J>k>6XvoURHxn zM|hkVq6}JT3F0$9D=#kPw}B;wp-AZDpt7k+sx!0hG?7I)(P4Q^-m1wrv<-6m{eEgY zbRu^IyBW!hi|LZJ=5-ATGcO^=;Ithwice~QQj-)|Yi4j19MH*bJ5k=M7D~B7qf{)U zm{!FF{a)@cxE=H{Xcd*mUwPIcwF2@dV?G%z#euda_e@_`S;0Z2z@oVR;DLAm5oPbKJj+z&q`i~!{2e4&yr zl=2c{rBRc>9{>-qKkRl=sa9(XIAe-fW;EeoLsMcnGT8;DLyif^xVRl3{l0;8KZb6N zi-WGQ`S=PIJE~WW#mApCD^~GhWOVHaL%bldBsXjyjmOZl-oRw=a1expT@#38A2#AC zi%4kgOfhwl8}!Hd^Vke*-Zl}@KD?qY7(IrpAbUW;;3b1$5*V~`8SWe5pyv+|Odp6k zdkyu&&KSuk`YWQ9=uyy>X3&n$#O?ahl3^9`c($y@(W!v%xvpsy0m-I)a0F;$*5p0EwHhG~Lyt)jro^vU|N7FLl z)}0Xg^I^mx+ai!t#3YQ z+4!_N$WOGwb_-QTsU!q(6a8^NVD+HT6LUGYKgyq{cs{8~5KpKp1tC#0b%jo^ZL~D< zy`631{7nb&xlhjPJIEb0@u9H^Y~((yFJr^*2VSH(Nkzo#MdJ9`;E*NFmL7UuhyOik12L{ve zJ>Fm(m08Gw#$prWD)=1|zxT(O)ZJ*0Iv~iS`xpuDQpq5U2XRmzpfod*A2ueV6!u~d{e}@~k;EDd z7nT&NStOgF0#ZOZm$6c3JuJJ4k(klLh3=4ZIt4Xxed!X%q7Ir_095^b2ITp~Pz{c$ zi{rrYQp^?%b0_`x>;b@wvIZS<1N3W@v62Qbaip-k3c_9&{k>4TLGiCO-!zoXaT!Jw zhn)+N3pBsHo-`2qZ@&@GxVJa%3-S@a5m~^O)7l0`uldQlrRMQQGx;v#hwNr2Sq+T>u2L4?Vt5H$iY zDI|a}8A?Q0<~V4uBuG~g0ObkD30A}%IiN5C2SDs_Mqt4#D%sj61samUHL*A&vD@ZT zsomY({y23W^S7wU_s8fW+3Tlhe@jbWvE{fFi5^ggo-OdtIY54Qp_G|8 z-Ogj~2ugt!3CmX6L8WE6*HS{jU4Slg=+HZ!+Xluz3w(DK|0(Zeu$3j=BsNSgkR^61 zbugd15%ztdkVW4a{x_biYk|MyF#-7fGXlJ{ylY`A>EG!u1;*59lm@+Oez>o_COO`>LbUNg4 zJ4cXgmy0`cXy{TLb`}abD+9o+zzGKX1r-RexH^CoL6N%1Uu)`rSLrAsTob9(D(y2l zJs7vcX8Up#RX$#%i|b8twE=THKd68%$o1JQ1l?R}-wf*mdZ>BZy+pVG*LH8%7lR3y7t$wEh?>33$aPmnoay z(pt^(>O`A292%^BhXc&OTfB)v{c(U%kowTET&`H1kH&?IZWvv}MwU2M!NpE7dI}y~ z4Ep%*K9N#r{h}5to@!=|I4>ME!e+iGGb~)h0aB}*bSwcnFSe^?Y!Jj+`k?n0gF61} zSQm4-oZjG?j9&-mMUSjDfc7j{)odaG8$~tIhOCw@s%rSyGJ2u#3-^!uHsPZMduzce z){|{5iJ;nuMCPq1%%IRuOtio|X`xy^z71F)G9CqS08F9?@yKl~Tm#96l=uiI52W__1Zx@ ze63|?gepI1nNp;n%q?^U6l7Lh1>%*Ai1jH0&xyeTJ@GI|w~OI?VRPZuh68&z%}(L< zc=BFQ@i5#=mb3mLxT21{F_nBPUa(^b5RSdcS!Gz;MNGHgCwZn^RMR4<2_nHeQUn;- zxvf^Qa76DhA_-q#;P`vS;uD*3kYwSmV(@ibl5XT8*u`^c{x0n_(6%2~3*T#zv%EYc z@Y!@xG(M2jCx^!b?CQxl*embU=``^vZm~(ry<7h)Tu1nB@mgxX}zJ%kDY4FAe{;}M22IONcwm<|NGaR#HI zZ^F#EsyPPn%rfOcLfU6k~p3vii7~ehLDd27(Zo| z5BRKc6~BmIvp6ka%C3v(o4`(7EEEcIx9I{2yegKpvneHC66?ej=wr?*w4jYFRmkLk z-Gzf?4$8D)g$_%_OoHc1Ry?Lc3J#T4&}$*XG%p7R^%Hzi6f-83f{u#ZO*j~{yfSE! zXHwWu+@Ox2V_S{R&@8R>CUeVu3>`wV8JF0F)w?%R;jTrN2N3PBFs&s)X6()|+~bg4 zNGHVo1zzCHSlKcw8McW0{eXg7g8(oT5zNpyM6(KsZw+H98&}r0$kZC&Nu6SLpUI`3 z*!Lw%$LttM6&E9MfL#L;eY3cWn?%^WEQP?*Wzo7vNo^SZgZ9O!PXTZYB%AsrR1n{N z%!F;m{Wqo4i1JpgdY-Js#i*=P<(l{{8olx~Luj^PsA^TSA(cDrGS zu_;NNt4Q7e$@=yU$+PZkEB19qjp<&hiG&UV4MyOs#(-n2DT-_6Qg0L5Ak+nIuK}-W z?`-$zBWr9g_50)T&bCV*6l7|99RpRZ!^1v)>5q3POdE6fgtYAh&?079PiSo8m3;Z=pWsI0cy?=Hl1VdPoX~zoY|8jKhD zbh|~P0aDJx!gt8MaGnNd@~xx4bq$h%={s?LI70&rA5RRB=z&XKT993B2Rp_?vSs)| zg$6#LrDs@%X#g_Bq%TZhX|B&BU6?f}R3>2fpR92kFutIjJbb^luStSpML7nX(pVuP!dLF1=ED%vW@k{u+#&eIBsJp%U4-Qlh6!U%i5JA zF+Zdbb)z2by|9A;hhl|VeEN|Ug5orQWJGAcCim>4%jVX=_gS-cGjv&6+r+}8O(gJnbCFUX4+4Q+^qD~-(jMKpGv=6Qq@baJ@F~81{T~MXo$b9lL0>cc*&)bq zk)W|7siHWlw4$0)3y3Pmn5w=wORw`l$4x=VO(kNh@xEB|vB@#T?dVQlH%GVq>o8DY ztjPmlga&1`M$xj04fwBEuQ#kh;gM*eSb(82rH)&o-#JVT0Ot)FSs_*R(fbc4HLtYj zd8DAa?JJs7op((s0Y@o8^fg;B{5_*-R47Nod`cY%Gp+Yl(I99X-Er^Od2xggFA-m- z;zD1Scc8{KX{!sH6C@h6zlc;UwnLjEq;mq8_-a6?h*>y|R2G>C8i>VXskEns$SQjn zP&dwNNX1>4BGduoQq3MSHNq^2?oTdyYS(lzhj1s(-h>hGa5%UXea?+GB5@veEn4HK z@vcqz%vMT!keYW*}{L~Z>1eBDkn_}`iv+L|AnCPAhm_^R#tSL$&Gr4Fpjy*!$Ot& z<~eaBF;?;FC5O{Emq88h+|v)|!uD&NSvZ!N=>T&54oj~I?ivYsh?=^6 z850wJur!#BZeu zJyaEE9qYmACNp3z4k6tI-eQ-(Np(Yfm%+Ql9$}dEq0oq6!)PW2fs zoJ!Swyb#1{AuXTp@%D`NQx^o|Xqc{X@f1$?VX{6P&S_jzty))1Q`!xqwB(u6Fw%4; zC*f%6aAYo~t^n%UZr}@r0EE{Vf}wCFII-uz^@UPGkZPCjWP{eLdzrkvAQ(XQ2p4?B;j|SlN-@^M`4ZsHSo^0eXte8IofW$s2(>5P>LFu2tS& zQ8;zXVbocs{fY9D$pb;prz9~+_~?uY#ln=g@)1QemRX1qKSU}HfW7pDc!`V?4?s!H zi^;S)2?PM4aEW=xHxeYuNk>^}WExfUNtC*9T-?Yt01bmp$M3gIt5^f-Uaak~AVL~z z*B$lQ(iY7ej5_TpdOdrra<^$aaAM<~Hhza)Sfs>Fcz7$UI9LL}YqR-7*6@e!U0?-A zX$#4{M?`WD1$@qR-!ty`gODTn`!wCVm{n#sz7C{oPki3SYn5H#aNn%dO46Yv_BXm) z&k5nlE-j1X9hJ#4X}`Dk$iO~a7?S2M^%(K!Qtu1R`Y7$O9Uc)=)a29p-B?^TdcH4q z9b12BD}*l^m3)DAK$64fdqQR5USpO!peMrR3h9(jp|WvRn86CoxX^^7@}8&;o@^>FkJR79 zen*5Wk?)uhHWZv%sg|oeAj~l)9GPg9a6Dz?3*==0?1u5s*LF587;Y4|l~6QV#@1jG zWa4O8cj-sFwC-2Q{fHicxJgc6DH5t=S}h|iZg z=QCV52n?lC)NU)GWbh+qHpLy>ywQXWjRV+Ds!^#h#pKH6aw4o0UP$US!YGFU+-?G~ znJ9^1&l^q{cI36H2u!t)f*7=cC)R>d$fhznkkXcdF0UjD8%Lo@rEZa?QJF`HRL8>h zE7qzaW~E&7s5x!-q6M}gvm`eA;RVYs7nEaE^DtxYjzH--Hr-$yc8HmAF0A*PN zOt-p2Vk!>MngZ=3;F($@+6bh8A|CN70OHi5{G$sfpTxK3{L(&>FDp|o#Z2;@qxLSt zH&)DZnBr)Z;HUPIu=TjK9BJ1V zoL3uKQbE2&`BXa?M8lRWlW0dgY=!N)1VXk8I|SY`%_qCQ66qCnF+&QhD!$Vn@_V+d zgL6INq?XD)QeJ9B@~ri}R5Ws0iKU?d1@Gh%iB|{TEUWbp@6Roz4ImL9ZZjaoUc#pB zQFE2j#Vd;!*t-WZ)tIhp#50!e`6JEDljHdV`_dtW$dL3BQvC+o5uI#r!cM1*?>5>- zi{pdYV{z%0C31{hs(;i+0TRXYfOD4)(KgWTjXCu(-%SKPN|+08_u&kWvckeq_$4Jx zgVbtA;x3tB6c5P|olo2fU*XE4yzTYtG?@m^^_BRh`*S5wrlDKh$MeYSC?Gd7l)rS!9}v`%RS))dj@HU=)8m{n3D_*!q84D zJj6>JI?Fk$D^;N+*UR6<8Xy$o4+GP5xl?d^30x2!z(SoD?_ zL9CpWckPl1CAI_g^VmOmAhVC#?H<62J*a$Bs6c?#W$a?9T`>>hiYloVW)olBu;Z-I zDX_jI_H8zV`!f1X^jJ8C#VEr2cQF~K@--BCFr`vUJuR#;l&9G>8kzbz;gD@SGU;-L z-eJf8)ZD~GN4PKy)err8MDK^6Jc7p<6DHYENx?#hVcz7haoMFO0q8rQD zh$PFCl}(y{)9h%rIu7Mx0s%^9V5Ul@)V#xX#Z+EG=LG9wSt>|Z)tWLkMV<(CAi`61 z-9l9CFr0eSw}E8O!wPVbM}gNl1Z|E=G8IHEQy2kTvrv#W2E^nDqIkvFKt_;AvNZdK zwT*$CMZWS7&9sb7b`V;%2k=v-i<+F?PrdKiZ#ms*S1wSKHRgaN(PoCZ=4-mOaSA05 z*Z^6P>_U<36D16^1X zKHZPuAtu`D!f`UKf$uPajQr$)L-2#t;_%54t#Ch61n3joQzf0y z2!{MR`8o5Y{s4Me^t`O1#{<6$f~XjaL6IfISNUCgp8OV zgD+*TGu>~_-s|^#bKEO^pL!u4YY)+%ZDJ24#u`^h_Bzqztg)WlD_?!-et*YcSd8SX zW1T26(JOH;#`NEb7@j@WyTI_{K#Pc;3KgL4D}3x&zu;cc-3SSo%jE0$vEIX8@sL=I z$q}*!v&Pt_0iCLU zME*R(42x|X`i`l)m0_$upA)%pv?xN(scquTjcAkAKsMPHAPY%GPs$KYWG%o0g^bUN z1%q5O5np^9Nd5-D3&jxG+6#ryCK*kO7u*!T*z-X&W$dgXI*>Uy-M44jN>ygFXx=0r zkDx>G(@~X7sx;yKw-EO?cX1NCB{R14!q_apF7KP954)I2Q5_2Nha4HTwk-k9ZLK`H z)mm9wy0yHru_KBy0;kJ1R~N6Z#Dx`*vh5h^{rwPAWdM3}P3)Wh6;@AE&@g;+REf=}lxeSqqdEFF6YB(X zqEBgBn`@ILe{YU5(Dui|nl=HZP}|W}_dGII8NUSIY>M)Cs;MOiu_q24Lb$u^Z9$oP@N* zWsOjqp%H2aq%mK(ql!e%YzZkIs*4jciid{rP#ebDdJ=G!h3)%Ee+e;2P}G3JOEkN) zV{Ih=mW6xoSwrz06HG@1**PH)&kUu?_G7&WPV8uZXL}^RnZ?R&lkdNG#0bSm9yGMf zPdu<<#ds9MJKPxUp+VL)bo$L37$9|`!Tt6QcesT1>HXmdxS1uJTiV%nU9;3xou1So zh?1)@N@w=Vjj0Y7F>c(>HieHfi`~S~^f}xLh8^m2(TON?x#+N{I-J>?YL`1q&BWs| zvG%xNUM|~I5)W~ueeM^{U!kTdpLZ25Tdu%mYHFZKSMb~R-d;xpnv=~eVZ^ge$9$|8 zkWJ@s%)$012LmHK9VU%avU@#KZy*&<&0V)cHB$*}-*p?Z@}!iovHWO&?9{3ZdZ}ar z5d{rZ*8I*F*Wp4LIMe=CYHCObz(bnvQmF<|*IcSOoW3j*S>#FUBqfWrb#qBl*v*l{ zw>?dud*PtJA4FZGXh2)Lxzx>(dpp1j1}{W=15@4WXnIVgb@z_~)N^f-!g-Q}qV2T` z63Rl%p7iL_Mkc&`R+~3hHg~q8F2+CE(QHmYlG^8+V7l)S1|My}l|LY3Bw

{VoSm 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 z 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 z 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%0DYr7^7a}YVbwCx6aY5w^ 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

%rfkfY17K=4$LGYJT>emHeQBtL=vKF1X5S@(= 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%0D}xS*d{g|qh-hm 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 diff --git a/thirdparties/usearch-2.21.0.tar.gz b/thirdparties/usearch-2.21.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c0dbda3d26d6f1f74110be56625962ac704aae4c GIT binary patch literal 469019 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

x4L_TAxA33wzmfgF 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�x;lZt_H%ZaCRIq;XMdnyB#UoHJK7o5t1xKLkVhvZQJb#i7s?XYfDJ- zmE6?%Oo(|@3hEu$CwYzW0r^cjh=Y`QJ#{q#(L!O+Kmj1L@#{*ob~&1;r|Q$X6B}(~mt4OwheXG)dtwCPujXHY0`uEqt^7KPF^UfvjPB8$R27qA zN&uDfgzsbZ%{PK@#^oy>1C-otH4v@Y(VfIe#vnI1ieZYI}tq7V(qupRf!qx`eAHVuj>R4GUtuJ^}F>E zy9Qq;kN6K7LC9HxA{!hsHyjN7O%OgHmEE*}pvds_sauC@tN+=hwT0u=-uQ+SB>9lFF{+4B%g#_<3z8Cgm@dqU^zUQjwlQxVx-DZ4Pz611(%TLkvP{u-CIG;_ zDFw0rsrs39@?Jo7)6(Y7Bmq)XoIY0sd6QR#cvn*TP+}7d`c@&3w>LAj$^NB8t54D_Tquyc6YjWUa;QRq)iT)dvS#l+&je=cS+s) zvR`KoPC@lu*!Sr$Z-m1VFLTCu20(>nSS~{5&_|>DE&HR1sQ>pvV^ZmV=>xe(hBy{8EM>JZHWQ9kX_@YmIOhCo9VR(-m0$ z?IQ%!Mf5P{>?=4YqzURI`;qMVH;~@dZ09AuTm|l#UXYA}?;_~JA=yJqpom7F>H~C?vsoX~YF~S8+ewG6-FQajtxfrO<(>5`$m%9z& zvDVRSg+#K?j3(!CD~^BPtB7)Bl-WYV$TmIFWm$5OV3Hv@bL!UC_m5DP46yIad}UFD z)X2|0>l0Gb3%iLA}zs)y(?uTN@2) z0o}2kK8sC`8?qOKXmho3)yn8oYRX;VjJxl?C1j)OZ5R7eY$ud)GIl~<$)S_AR|SnH z$U)_T7RLTJF%QFuZv|13)Xk>aTL;B5LpKk|9D3w}+B3H}ma?C|94|fH4sx(Q6CkTF z%X}GX`WLTeExy-)Yy$woPY`r~kQZumcKU2h65qEtj1?sguV%-58Sy>( zU!DtPs&W`}3kg}_bt%$7%s+?XSQck02ZE*D`#_mcS!8(19nWDX#=K>0^Q1axv8xTj zF}^s=n^wQL--_EK_38UV#>7#_8+P#lDYnh6-?SQG2+bF!656$I{@cFR!F~Bqr_#6F zl3v2J5YxKja-LWY1F{1{r+zai7lAn;KpNj;%E&u|P?INS40pk2s+_`Y|0LXXFj?I0 zf|bRq|8Q)8JxTRYrIC%I#=?~uYbc7@zAhx0t3|qtGLX2k^9V2gGibBc>UvUQc*wc% z`~U5H6F`vIy^W`G+<5l>0#k?)*#~M`J=#b?sEK%uZCd5j-0l1Ui4yWUIM2O1STimZ z{qK8cwL#KXlOo#so}U|p`aGW=RQ(pb3wBA2nJ5EW7Tfujm)glZ=?ZIbm$9j1KR0Uy zF-@foF8_A073g5Zut<{!>2eIHq}&U0q%;dnS#opCS*tFl3)1Md1M(XEipN-#uXoL* zsHu55-_b?53&Y60QIG#^gWI8-{lTQDa7I5U^V$%yFHYQU_o2Q-6i6_I1|h;3?EF>>!RATmmz%F3hI#=K2w=Za$PnEu(j|&L{xZOQus9j zCVeDgLZa(dCmvg+05Y6UNB zyzB^GLCq^bWA<8vnu5+g+^A9R;w-DI#MFhHbaV!-agI3$ctCPd^Y=iH{!XYhW$Inx zb>TKPB5zCyY)f7!LIOTh4I4V19I)x^vXzSpRhb7B6 za$W<|h2IpY4yPkho?kb28-O`tjxUu zx4DT2s7lo5uNmEa%8*0{2L~#Z-%Xq0nukou*O<~4KGkk^@UQaD`=)SOF$1EnN_yIWJSv!{C&sD)Hc5yG0WXIaO(ZGbKt!oXlhN4CgYbq3 zJH@WL2l*ObL&kP?c6h_%fUN`ugw~iHOQ-czg_FO~It4k2ybn~P)VdB53E#~?Ntp?0 zOEo_dA=H)LuuBQ(Pdo2PpBvTh_IDi94v!OQA}eTWiguZ$@T3RtPRaKl-s==rc6<(V z;Z`R3W$B?eDc(-i~^rxBvX3fITjSS z#Bqde?E*gCixxx|R`x_45S?uHt@;(FRId@~D{B|KJG6Q0+S>MCP60?+YQRAe4r8ly(?D&6Y07Q@o(J&EtNSc13u=wTUITx8tvb_4 zc#}zzL$_eP6gh5dxG$tfDr}55MY%*8`Szb5yKsZ3` zV`{-nqJrHpHu{`e2qw^PUe?!*)Qh_vyVro|dl3puwrx)vM`~Pciy2v*V`ym?}_(XQwHL%=x~QKPmxzwTshrXIYh$ zHqXzv+IQrp0A8qR3kQEFp%(ID8XQQMTh_h`77Nm-Q@4O) zu(pqy-6_n##X%j!go>9iz#UL22uHarnHsibgXoA7N-SWutd~vMwI`iy{|cJ=$}VF* z9Wf!>#g$XjJ=lRzQyh?D8cNyqvnEj1d#$3Op@w6gMN(k($jGyDaL_CUGZ-Y5n}>XK zQNsI6Q@7lf?)|x(=e^@NcAcpYB6cV`tStwm_6fx<)s*Z@LhWyNqY%SX4kpiRL%`{) zCv&3!rvdo_BypA3B{ny6z6%WGW0Emh5mGU%dZbF`06AZbh*A7^g?ccgcpujj$98H9-)X2L4uf@pk{5^!oYb-lktOnvk{( zg)=iXV%>6x1I29;FYAaZ}@a%60)VmWK5$=Hsg<9^#K zg~_?MXe#FQ3oP_M3I1vw%9w@8<{eT!=cP8h9%d-3Ae zfc;*jL$bQ46lFzqhs za`@~Lw6M=uhrps{WnJr0qv`*5=5r;-g~So-<%-!Df7?K zF)M{h#a>5XbJv(1&89NugQ2+RQ^T`;mDbF=uI&47*ufs-t2oo|)t`cxlzNn!#m19b z!xqNxS(uFU$f<&y2EU~E#D};CRtpa%l{?LmX)J28M5Ql(zMS+=WDLIY4k#p}C_kyL zuy6!hfnhoSM+hW0HF#roKc}WW8&s=7V?dxN*qzv2EzfB5BVE?7ee)6i7Km0h1>Jld z5XK*dnoh%Ix*mf)ZkNTtRQ7=d>GJWwmx4+9WC|qlH}@g8g-?R;y!oV*h?0ObJ7wW6 zl&ss)s@eZxmgPrKcbujQ<7-_8UtFO+y?LPae8QW>kX9O9M?qUsBh|giX*DU?qsqA4 ziyv4=O8OFWRblcCNK{q8`3wYA1m->VDheOc zTYc{;5(rn{HvX5!0fSuz(v0u+90crB3L6Ge)RekZ!`Q44Btz8Rx+$ar6s>`N_r?fZ zeTL+UUaRx2f1h>~h&i~;1OycQ@nm=ZD=14xp1yxa+r8#y@h%?`*w?hYq~9~OpYX4s zI;fAoHIVZ@{YC&S3@?t8#-Da{`X5f8Do;@p_sYCEh-RKbfE~NWv~p*)ofL7JB9dYY zBHgke0Kt%)vOSZ#7rYXM+W%rZc+Lzg8i4h)2)Ow5F?6|;KW&~5y4)p33my{=gO96z zJGPQC&(>eDnN&zT!xT`XOnlaQp^$eW#A#YdOtJX1g8t-uyJ8RikSe5mD%q-GzE^wCd-7 z4+5;pWl$+&qxp^ei51W^{98d|{qPKQV?dhy7Q`P_>k&y3ECzMv>$Z&fIw;G&V)0bg zK3cx;^h^UnEoc<}>|es!fT{hwqAoecrfoHQ9ve9)KGB(?CfS9da>y`s7Te)lJZbAC zk#o|f_`-7hK~gQof`2v3jlENlHY}(}%9tJQPc*kv`ByKJ!5mE-QS6c!P&nDDKSral z1sm2XRqBoN&jjQI7<{oFN@3tmC_^YKyq`p&Zm&Tr40KkC_|NV&BAZf zeS~4|AOU&(qUH)-2sFH}lXTj#@V}2()h$I`Zk{R8E{XmjB>#8$AGxYmyGX(`RA@?* zEV$R@@j|<0l(2Gv`{nbi{k7M3N&4KsF%n**32d!V=2pyQ5&yki=Uom2MT&dQj#wYd zPKAl{ZU>IBtcg8nuTkAH6pQwL6^uqQQ~V)_q=FM$4N;NTyxiCa{6i6nMP9#}#Ep%{ z1%nnC*9-rdEbSpia2V{yjf`wOqD&CWUNlnC;v^(W)$5GpR<{OJ1Tvx2^|GF}emGO- zsN7rqfyDM*OGHx9i5*SEyzGrRS0fGxxxe;|+Ia#(FiDU69u#LIy2b}Vg81)6;KTAVg7+$OpyzJ|_*)_R zL};F4jtB7m!`pdNiNYntRb0cd_4j^?az*rr?Z}FaN)c7^l7sCU>`8MCv_74UV~VHTMQFd$D*JpW z6e;1++6CNYOd<&~-nzjwYI$#`P7s~}$}QX0c3bZMM(5I67JB}kW0|8ChW>RDnwYV) zgNV;*l^qQ<+Q;y9e57y}zXoHuC|N!;JmbHz=H@96 zs82R^k~}w-mPe{t@EC{JmwOezb3iCuYw;X)8Wppt+#Fg)Z(bs`^uR-C9_UR>%Py$~ z&6eFmTjdf+_ofAKF3tniudk@Dt)=Ob`xzn@d#(Y4G}7g*6P=Qpx_{GWe%T zGrn2zn(Af<{@;G=f5vZd{O6?qob;cQ{&UiQPWu1mr04_wo6`n##k#!HjMtDmMz<^e za(n{(uXOysdH&YOlCtr;pgSM+4Xzd@O>%WB9!(K4f3;|EDhf&+(t*|C*y}&HT^*!KH45QSnIU zv?Z&sYTYl(R#}q$#%_dxFV25Hj;^s_=Ie7OxTUrI&b068zxL1B?qwT?oAeKEetRT3 ze(_Je1ZEOa?FI5&81IE;(yDC!8OT|Jbqagxxh!GwuThWhD|<`dzRUXORp?zaqciNM z&i<*S0AIJE(FJyBKch#Qi7x3D`N|4J2TkD!F#?8ReBhf($>~3KIDqKQlI-AjWrG_q zxhe3>8DOk@ueOZ^a5RIeQNFMg`+-9pIn5R&R>#UoC1AhRZ^x%``EB|U-_t&afauPW zi3xMDzRBMHaV8*o9^5>_DM~?Kv$wU|>VD0JW?#RLdxnWN`b7JwJx(TI=0?~n+KJT? zQHu7B2Jq$B9)Hb-+}uBe05$CoFH zOAA9ie9Q*4mu_%AON9}l+MIJvpQO!g$mSGQ9-4U;B?JI!3W~f#Fs?Z{7QnW~|w6E$zQXRahepx;&KzkjR3B1a~a;Uyvzo1)@yueraUWQ-g_{=rd z+cV_BnvLFHKIbF{H-0EUZvVlpZV9DI_bsJ8qwzrht`B9md4 z3pkSQA!$?(Px$N7A6HJ8xobq62S+>Wa?VZ@KCJo_W1v9d?{Xl$h&@i`*zf}xebQma z8d1vSN65WY?q5D%4X*+1@-(%*#nab2+|cQ?iOVg!mnrr_c1ZGXh9fslKE|1Zu_t_z z=elEj%CV*2qYAr^eYuvbtP22*wt0nlr)Rdk<2I-CF^=DoBbj~^;YWP0=l1sJ#d_TD z>owlFAZc~87xkh7xT7g1Vb$t(1(l2YC#767keII4AV0`} zZJsE_nF0lxORF6+$?4_8=`(uM_5xlDn*#t~QJGsPRZwai1f;F{x9%2sw)9!{1Dz)1 zxBdOw!h7To7RnRJPtspw$<1p<6>yw&()NNvy9?qMb*zL$3RnGbz22Iux1^bzbsLrrauyci8Ou(bjKJpNsl! zrq(NH-sm~eb5z&R@6PEVpwnMO1f@;&EtJUk^w<$CeX6(Ven36SEmtZxY~&}^`AX2t z-&4nYkGB2(uqx$FXqh$HbxdpPcaEef*jC(R0^7CPR#T zvT^J$?i0?lL%HwVW&Q1z4ZE6c8VX;J0z@ccU^-8jjgr1@O!xF-G7B+1(#5Np%(h7~ z&sPOGowEnbc6jxW`yZ1ZobGUEnoJ1Da{S>Gjr3!e)ZW%F+6kt2>5_48zxwyNomeK_`p1(fwy+^6@#ES^2Cj#v(r%p0S-r_P@ zN|KFucOhC|0lRiI8h6)5@CaWd2OHS3Z^-tjT_byM;WX{tr{)SgmumpE%S@+cCXh#ep&*^OX%gE^Sn9Fn zH|53peaRSmN(4ck9K+twr@?gAthch$DrXkGp7{O+=!Z37tHatFJ!GFl znDgo{AIl0{X3nnB%qX08fUPda}0O52|k z-=p8zk>Z-7m-~6cY|ec=In!z&!|A(Q)zK{EOWyh=)jqmy0`v~lx9h;#?r)ta?`Ba7 zF^g?@D|YS){HGHdq_p`u2MFAi`IrCI2=3^p5_Zz_d*p_LRM=$~)3yBELU@)F%%(1M z&x_9 zvxvS`zscH^QwYz5&A2=Z_$_2|N17FwxwdhVsn;-54sGyuAIY)2=ePJcB{EJ2P!gdV z$k~SV?!D{W(X=Z&pc5)twe;@J6M;ag(T$ySaC5^=2RZ6L<(ZWLMx0V-tC~6dz8h3exjwuY zt$){j`>s{tr#0gN2f{tFP0a>3p|Uq(yNr{i%I5u%vH|0x-U+g0Oa@0^>~?G%my|=M zHz=b;p9rj7{8_V6-W|tQ7F;%Npk^O?CFk!r6Y{=$CL0mezO5j1%^wBxS%yZ(Klmm- zlU;_o9eE+8j3wy~(lvfjpc#y2$$go96g$bQ!8qysOtYFH-1T?qLDsA=fn;S=3F5=H zS%pGrEbwd2=`*|&ah+w#)xJVTkU&Uvwo8O5Z!M_48z63{FOO2bEPKmDDCy2H9eD=e zALO-b!zM|rGu1@Z`$I{x6MeFr@7V8oU!oqJXVi%#0^k z(m9DOqna1{m2MlKi8dW~e^(~cJ^0-oMC_EX<~QF$`FvFH%-z_-50mP0v`VgAWKJ*Z zjYxd!oF2Z^9WLX0alvv(xedbSrXl*81w@SivPm;aDsEHtMwg1Ovfjy%R42W)2fthS z$5&+eA;`V37NAyrC>LYKsx^Z!Q}#-Jn>bs;@rI{ErP$f%l#;2#vG$Jb%{x0aJoYt2 ztrG$)zU*dOsF1lNf3?E&Z^N=>Yz|ycX5wlBxuf@XV|cWYQTF)Ik|VM0h2hVf%JgVU zA~hS(iw{!gPNdX9WYvZh116S_eNTx#vUXRm>Q@I~TN&wH1oDmZ;Yi$?jH|{g&0guk z!TI4|i=2%l5YrZWin1i3YErVrf$5I2`IH%$Fp`rRS~;tw8%m8Y$z~2_d=+c~NZ4gJ zo*B=JGRJ|Ljjg84eXB%SFs)@2yOLxKj&58eU9yxn)D*hdubA&OiKexNNvaU$r|Lup`mQOeO^0s_fa3oSMaQT?*L1NM{is^w`;~X^j>Uuxtrxu zo_lVRx`W!VD}Szw6<@2B=bWn%H_vstG`1t`_s#QFf87N6B{1v5-*GBi42Vk09|(8E zmBPL`2}M&(V_}&^c``}gu669Du$P9?#p6sFQv5V}ps|f5GE!I5mOtL0G-^=H>yV^nV~U$GVLGQ!vwN4moKKJl;GX$N z5MTy;FBLu=`@Tvp3>wQ@oK0=I9hK#@l%adta!0Ns73e(3nWQ{U)hmH#&PpU{_Bt`L zr?bEaUbt(HjVio_o35}jkG;h!BV~Kkn#Xyh>~wZ0a)1MB<~n6FZ<&%iOsI?yfg?6M zzV3rUUz0*2ouxDLe6(Sb{CGiqNaDhxKzS(aVqx9gydfd7SEGU1R_R4C#cs|Yss%)` z_`QoNY4GmOlIcG5U2rwM4!Aj z)q13aIF8t}LNoT>yRnInZM|!8J@jQ@cy({ZV%>Z}iE@VbZHO+&c%cb9Ti>p^HdIjB zkbFlYS+0N?D8PKhY^$$^qYxY6(3a8>Q7?dg*u3>ka^V-5mr9#zJ2fNzCn*}WxikXx zn?^6mq<;FaBAWz3&Yg$@Y}3Zs`Bj!Ji$>w07)EWdR3|p==TR*iQmH#ewNcLmYOwC2 zS}tbF{AP=^htqRtqiL^Hf$HYNA6{T|H9IdZvR}N(Ky7Hr$_3W#{8r_~4J|SB?brmA zZK_}GG9WmOgKb_6*QCD(nM!<9LTs-Uze6{#u*k$);VmH!TZFr}UTO61sj_f7 zz$_T)tHcMEWcx@L+}kR*1bUf>?yn}MsKEYL$5-$wSx6Er~27JDI3D~mxpm}!AG;ezVoAaWG?N-^@Z*>bw|DY zPK{fyGz~Q4GOqC{0qVD-&8B-=-yXO-rTdrZecWVYY9t94`~8LtYg!jnXt@*fCnnN{ zW(R;_@7C>bZ0?nYnvEQGpAR;Sy>~ejIb42ozbu`;#80%WoG{)hw{$Rb<>R>ys+9fu z3cRkBPxhX?R$ZD(j7-APqmu=xSK(JFufLOAwxvs7o}Sotn%Y$hN>jhZA-_8u9$za~ zWg2Ei-LoA4+;4H7dVNoFkzczqt_`~`+S#-H=4Sr=-)71$HL*^-D(%&VO@5JF(M^6v zia)}R?r!luDJ*B`3Y0)OU7w}dtK(H#_!`OmAo`XKvPWHKE2ri?>rK7UnurP$dvW#n z;X@qz!5>!G;)8H|{?kWs7V=CK6*`r5v?$`j!le(y{kES>>|AbJB22xX{>=x6UXqIP z`oo;-E^pO*2`Hn2Wy_}g0Nxb3iYFAGJxxCwy)f=OrHA`yq5QJ{7nmnM_m%cK@9~we zBV{?-ZIQ6T$v1I<*NZZZ=c7=w46c+HMXu(#XB2&e9KDeV8O zBQy5GUNe}}!@T!EW!Uv$2gb0idSpr<{EO`qnfc)w!2M&gmG5L5YR~%NT9Mu4+sB>D zsamec7ii~0S}#mFa?Da^d5lJXaVo)6x@`v1U>X`d(hZrM9cJ~iiH=9A@~8oJdax?? zS3&O_b!&RSpa|4T_QWyu#zF>XRggm$UCVmj*r|_Ju-?`S8H20q!+B>eff~xf_)XyS z0W`64BUlVJdL0x?GMv{Ur2uMVv#!uX>)0P9?gZ{kJa_5ipE6$$q|U=}9vt%g5Re5O z`CKI4_Xb`2nCv{!r+_xXo-8k3dbykIoi8GneU9l=qsH>$@!2)3pX8xd=W|ycQ|`Gc z|CsxL4FLx@NnIFVzG(fIa*qCM`r zhE~SKT@v*e)X;KA_Sv(|w1Op>safpY)O2@5?lUcvTW-2Rzrz_Gu4;!6WwZd(tNwvG zg^nj2LXP*^8lW7NE5q;O7Ma6NgBewM|5N&n)xI|}#4O~TLt9*&=j;i!Y!tg`?EA29 zpiM;Cz#&|QG_R5asO_SizAD=u3V*K)hkrmvhUc+g56SUwEQ_3?K(}OjT0^?t2&-dy zc2x&(T$0hzM{MIvU}mBpwzyXRo{dT#NW^evr^^I7A)WZb-j$ir*>lWXqr`z;Lk7S# zg+hPuwY{$tK50^aqt_|y;(Y>MKqu`teJbvei!7+`B-K@m2&CZk9cRwG!#v;9nQc={ zo|`r2r{x}VINE8>eA)FcdfY=-mh3pu4iS4P+NM^*T&w@6^J zkr9J9S*rq3%IselbZF~XzEiUeW`v$nS&|4uzu@G z){-a$Y;A7f;-%w~2ykP0CdvnU-C|3J?j+*znSB=?JQHv9){4W5YG7$Q4_~!q?_`w28g>~nI7vmjqL~I$p0GkYp`Ks;<%xBGFIgxe7RkNvjcO!o% zN4x$mQvo>h8CNQ{H;FIl$+w=jkx4X4Ww*U0Tb9b2Y>ycQ%7^8JoOVeqVVY!0^YlV()YZK%md77iZ%2P>y+Xg? zaOAr=bGKQnG8IIJJlYBr(Iwq+y*u`RQ9hOiw*MzxQfYtVg5oyylM7f4vjo_1E^Yi$ z`^;ssf)Cd=vo$W0Z3sTPRctdPP%=DB)hjo7<7)pZ3cD@?PW_I&4JM^4NF}H5D-FfZd1zq+m&1p=L{`#tzIe=7*k#g5a*t+rLiqJ)}NIdnohi=k^=y2BC01#VRJ$=^-p4Hh2 z8mm>}&-XFe-zyX>bIxk|eayBkj86UtDSxEJ?$N_l-h%?2i#h*U7|%l zR9Tghr49knZF+}N-c;9%X}RwOFDibFM82uP7GyRsjg(_yhqOvS((yFsg^Aj>gvj=Z z#qH$W*|AzY5x(k1z;h2tba?JSW=B;5}AW+VPla`v!E*xeW zDP#El#l0Oa|h!nem;Rw^BxzPD?hb}JEKyeETu zW1{baka7<-P7cCqOdp=P`LFA_-q#Z%6m4Jd7ffF)A$x^}nk`EFioI4&(7*=K_Si9! zkxKg0$J@iqdZjLsWjc1#zjz!hrv*g?r0qAb^TRQ$nVQFad-SC67ERerPm6xsJgg)g zz_433@ZIBn|J6&eSZlM`-W_P{buITnrchHPjCACpBpm>W~9c9ICi z^YIM?pNH*-Lv4#{HlV!@gdYl^=Q6ceL$4K<9`G-QRy6%OrIh$6?JHN2fd(z#wo)eB zxhp-6LHB&mKx(^tUm4@5yDqmkSp=6ZxRF^1&xq=9H_K$psH=}%HeWo+wXln{_bO~y zi(^t^T&;bRiv4i9YCDD}*YSuiJA-DipHqf;PL5hMaqT-9ygNEvfrTB`dZDtnM`yPP zo7{`*j{Clp-|Je-&X$LYc%eeKqw`W9t zwoQ#3mOiX>1oQ__DtD7+R}@z1-Qo!*j&cJPtET}Eev3EqnMq!~NKTeJ%p81uVHB@E zBn4Y+QTA@5js8+^8<>;t8z2P$WkQ#kv*YvJG$Mvhy7nexjhf&sBWI3;XSi|E9S777v{$v9*_;59-@2Wn3cL7jCb6*YERtScV@Ty3hn! zL@Q;@eCy1luKs@1JhIvn@0A)s3wF)%+c{*X=QAq`utZ)5@P!+vuOBL${$1tG^=SFv zX#4ET^Uo<}-m&`2pW2Yg?XXh+Om(dyf}+NOPj5f`TNJ4Cjra$E^mo|S8@e=lX{O@X zb=TLY=f#;`K&RO6Z)Dz%%p$7i=Pv{@C2t{V)D1L{bO(v!6)q(S5-?4= zaO7+oa{vC}PYdtd3FDcH{e*rGSQd;FFT*;hO5iJysI)mD8R++IcYgB$zkT7jyO*%l zfm1ARzRC1u&A-Jq&7<|#?j!~2S3V~#k|V(^4aJd7q6w<4L&~D+5B~Z6503)@CVedZ z!Q}Vj?F;YyM+0Ji5)|bOZ{!rhUpeW~)(`X!nslQi!iGLJmC9DGR0dqa-%q>bYJXny z={OIZ96G}eCaaRgxUiK}K&)CUm{U>Or`Vh17K%n~rF=(AZ1-803JcehVYjsjl^bvQ zis91p3Qq)ld-Y&N2AAx~9V*2?4Bkdb3KJB&b~Ki(n&YblZFw0e*n9YD%-}5tkN!C= zSG%{OZHkR9W|Ep0O;T@mB+pvxLl$qnk_xfKY_N0n^@Ej?pH0caY_a2xdLO}{I&vyG zPNo+cBbVQu6nSn&Gy}9TL}+{6Ceygu`*hGuMv1MF>kmaYf>ojiV&D0fW`Wx;gBkz( zFrJUe+R#DUV$A8YG@Y6aQcct8DprI2b@4qZ!nACGANLFok|wQZABwdMkDE$UdwTr)vW}Y9V}ADy3Yr9`dtCfSLUUcD>U=L6ObZz>LpA zy5L@{!+V(tcwS+iD=o9Fb!5uNO*5st6U)}Ck6blB=M(b&D}4 zWeL)(B%Hr+ROJQe_K^F@ujBfJzIP!h5vU2mJl9$ zR!B2ran~?lr?oWV0_S=TAOeEW_66ny0Hjx7=fJTk*$$*;{r9_ndzdcXEcFkY?p@f{ zHmby~hd*H9)CCm)5N-O7+!!P9QbumDsT(TS12f8EANH=*<$TkvWr5#)`RgK+j-yFX zXarWN1AbcaP99AQ03@w)I{DebZk~$WzRX$5>N>^Yn`l4pgrs76U;zoh%!|le+UF$% z>)izZ-Q6M%Fc)RSjhk^D>=HFeeth*4+v4rYqWHxN?#WBpmG^kA0*#L<{rR3U5u8kE zyujIf9?ib@EWSMX8@QxZf7r+5uS%Sz-aLntEb?5ooA##N2%Yg8_?nI3aL;97JnjZ_ z;#W{1b4AJM8+X*v#lh_}eo0#0(L7-LRoV)bZ~^WxFNc-3n#PeYvfvjWv71vn<5oK% zH5>WzxTuh{ed)b8=cwk9ynsx~yIF9@t|mc^?0JU~Ni4vcl7UQKL<9;dsd};hqWiv8 zv2q1LJW`f{@>sdR-34*=zMU8Qzxvz=^h`F^olpeDGn4?%0g`9>tb#D5Ie1_jj7Snr z5EXM}KrImzNC+BUS(_!j-@nP=m;Dog0RUfS1TP%!a3EP0v$F0B?&UbU!gKa3h!>ea zefJo*9@XeJeH3V)lkGy?dIe=5>_$(7cM^Hjy9RUm2<;l><~OC-z{mP`3-e5#AIv2# z?+3ox+1BngMn+Yv|7#LI?pv=s%-TXIaiB4Sg1Fb;2T$8pR)dy<12x!IyMIYYThZ`;Yz79 z?Q+9TS+JY=?_~JX3NzcO7BI&eQS#}1H<-gtftJW(cVmCw z30={P|A=P-8aeV7!wfGFvXYqAiYg289Qro>5~A(dGY_RhvpY3Y+vQt&cIoHXnE)VE zE$UTNl-OQGIerJ8LYe!QmzNbN$6=YCE$pRoC(=E$Xm?Nf;C;_{F#~|F#tsLJx*16N zaW_nF*Jww%vq_Zq>dZUF5#p9O%VCDn2Nz;C1zt=`ID0>6SRzOzI z4-*4ZG3$poy4#OXei-nzEM%I)6Dkc@_bc5AmBZpDZlVRH0Ncrk~=J#n=RBXWzrLHYNWO z7NGqN66{j5Z(Ul5P}Xk$k#YaeU+gq;M#SZ5`Dao1E(M(iV{w}46yt5BmnJ_B?(q$E zDwE#42D1nN_Tl+F@MqB~;QCsbO1qMrvg|+YBx9Ued7koJVVvTtQpol>ge*PP>*@>c zZ`%X_8s+kO`svCQP;kODlU(|gcx3Xx^@UETWSsLqw<9HeRx0K?{3shIpZKqLF8E~6 znQv(JEpT_<_;U+zbi4(AE#=v?L_OW|r(eQ9_cZ-7tJ!ecs+>Piqwt+GCU4*W_Xqdh zxj_;8Xn~6N2+Rv-R`!4Hxrz?B-`782wPU_`D?0ej{<77MXWG91I#pr#{lC}!&+-4~ zhc964AKE!0>>JTLITw(?RFSfq*V*gC14P%D_w-MSN8Zqv8WM+V=+9YQDz{Rw77uT8 z8;$>>fU7_EV%9(6B!2aVnbl$w|NKts^v}>&OYL)V_66=9X_GEd`_q5xo3!EjWcx77 z?8On?&chlOxr_ch%@HOI^>|yjWlP(*+h`5Y4w$8#n-@~IQR{@>&vck+DF~jeWtDAv zSUAXRW9rwi`W4;u9%EBehVBVsI@1_vmWKaX!JV_!9M`HGfgs|;kWtvJG5qQ^9_uEB z`XoQ(vWY8gv~%{xL%f#RwXErF91_1gp?M%xSX~v-nLptp7yvn!6Zbt8roSWCQD*Oq zOsX_Ry5^3WsphFuv6~j7*=)HrqHz*=2?0^AXca2AT-rgUfTgJ`JtX`&#scWQ*(C62 zTCl9By6jk|Lf0b6aWbU;olW0#`RMBR=x=r&E!H+`7het#wTtIpzLGAIZHGQGZ-7aiJJ+1V} zvzu*aXOgjocbk0WB#ztn^#`suzTYU7mD){mBh2|88{ow`H1JLL_P1nSI4i82-5`6= ztBG4n3-l$FSnUYn)X1utd1pG;RH%JK5vw-Rz#UP=qQd^gJ!H`M_`}}G@jJh&yaTe; zE-1l;lJ?xvU@L(=DucgBS`B06GMq&|Vsq(1Sozg(D}KRH1MFsvEe5x4NwvaJ%z^`6 z7836)QXvCse1&B;OGgxP#InubmvYtZ=SiA$b)t6B1PK#z@h}rmUsCP4aNn9o&7r1s zGOMJF@?9|`X;cvB9I2}n{;b_uv3D!YVWBBl|GRT7qO_((-ll1mt9%7#w=ps2bpMCe z{D=4XaoS&mKD1Eu(N6!DW0oMn67KRb!4 z=TW#BM~eg4Yf$LDZz{>$;^l6oUk(a&zG~GW#3ZamYBuV=M4dHTrP_{K(6g7Tdqm@U zbf|kgkyK5ciF8v>40gZMK?8T=zH&FI^~LnIhTih(qxDAHmak3IkG3~|H6@wb4}1|w zT5cO}P9rtG*xktOGpYL-72=qlJ$r$L zkdaM_`t4DN(KFFC(p@rHZNw{@4F2$}FZ@ z%CXSi6Gp|oQR=ss*bj0VkefqDq1e)<`p;uaX)YlMf3C)$IuJ2Itqz}E|^Xc{<(BAYQEiNPf#()Mw zn8VbZ*%nRSgB@akP>e8hxsW0HNNA+lc6_*E>Y3*nK#xtX{jj?cY;hFVSKn z-U3y(2nwBcvzgmajmvV5NMHS0P916Z)rzZotIUVOh7q0D{5ylO;piGCRlABis3@QO zA#(HPu3;R}tb9|X96!ElO~)*^EkWxKzD_My85>6R5Dcq#Ij|vUNn=ZSPzE}T$FJ=7 z;=;|W;G7m)3lt7|wRfJj&ctwwXJ1E2pem<>OL$Y0wbjtVezo}YeGYE-NWSkw3rg(j z7NwqjBF&&r2ZS`?Kf(^QQumDSZK-|sW1e}j^2l}K4w8Q1_2Rl=+T^CblS`_iO^;Xe zt?;_)DJ9%28aoY!x5e7eq6z*3K00Pz=Y~-*o4|bAJAObJQpj~1U23*+AAWhDk}|YR zA2UDlaBJBO#IUF2Yolry{A<$zZ#mz1&@`=?YCN@@=zYG@tDfTN>fl}7lFVV3Kv{fg zM7KQ6@GK5rA|aj+zxH{YGQEb#l%b&;YHr7Qar%L&$%^vfNC;ARtR)H%m~ zjyuUq*`U)>y^PF=c zNQ%5jYQ!!&xAjqR(kT-MCw`9R^u4U!1M_(bHBBuFCy=RT%YHWW{U{6R+C5ZdVq;~V z`(E4m(uIyekDEC?3n}Z^`VwU1Bm7`Ka<9dT#=e;q$?YBxRUO8I4JVfHhrZg+avm1? z-rVKls;P*~8Sl)u+mh;hWP|RVjHQ4pQ> zs8U&G3K){zR4c?LXxI-UY*TMqxk5=vq~9;hgA7eO27M?$`CXE|;?c2~5Ou11w)Zp) zN$)J^UECYr;8ig92~_mrY`%owr|n#s?A_D?MFka80uoykVy|z~zox(KsE7A`h0$}_ z`zUO{h$%NGS&r#28I(}dhOIDdA zzZOOH)%|$96@(ztt!r^{k*hVsk!_D$X%)`W_M;6VHfa`OxLl42lHIKmvlL|H3VmnL z%X2(V#fJ~ml}4O$2_KzxHL}>62%ZF@>%KO@*P&mVc?!p0nj%-9CTi1vSyhUAIIx$l zM3KD8qjd;v4&$O2@37T@BJK}%peJn=3WJ_L_j($=m@!pmH55_b!b`7tl)ZW=Nd=YE zRl_%aJr}=ED(7HV?A^n@-8!K&=*PXFy;|gKZE^H|vBUmo{rd+G5gpkr#GsG`__*kk zk_ilS!Zo`Gzb!cK)286%UhAqlZVyl2#KakPR_S5-#(D?7is6xT9Man;p1 zc8}Xs=#z{v1!`8l5S@ghO2-{~`0cksNnyC)Rhib^MoB3i>xz&t#ph+oR)!tVllogf!qf_G{wRdP=h77qz_xDZ?(GGJYQy|TQ9)>z*c zCpwN?unWKBXUPc6$RNcdwFiUIpgH;mlDS_3T&pDnpf*%b$Z(5mo)-M zYnJgW(c#*oYHf>#^%sImJf)J$P2KnIcnna+!D)UqzUN*OHcY2AZ%(8z(SM#z)-cvg zDLddWH?3Q&8{hgs^Y*ERIgo-^`bzvfMr%BWHDXJj7N(cG+S#<$irrWOWyyrpMhIHK zqXp7H2_Ar%7f-*m8J~cB(>LF-dV~gDJ zKqGINsr9Tk3nikHeMyF$1^0>%{Orxh(=BBf;kvl;u{yY2EsOLfwpwEt;ibMkMsr0* zX^-Y={z;M`baUMbEp`~wz1latpj5t!yB=02qu8}GeY2&tW@j&{nnoR#j0wKy9zN=y zJ?Z+&!p2@x@99|Vw zZGd;!X^c0es?*b$X0AkDZ+~N0&4X{WWyK&DzEs;6T&UT|vD)#(1$z$|TKQxxjJ$fe zb!cZUaC#{I1g_-Ebl-VW1FpGmXsQ_6e6Gx1YG1>uOw$k~oJ2z6LS>CwFs8YB1?rL0 z*Wbfg1FJT?xCB}D$y@QJ;j*XY)+4bU{_b3WB# zeHq?X=AsjN8YWvot)Y2jyD2veiC|OS*+5u~E026%9fc_#EsxMKuG!n3E~0A;KHeO| zFL*UWqfC29yEQ{|Z}s_V2zwlMQEJGo8(a%LX&r`E?pef+G*1fQ3ex#!>iY7RYVri` z%N8bGQ4Et?KZU`16I%lYb_Q1Jy>h6sK3tRRTxMHMT`hedy%sy)tV}n6b#N?V_=_M_ z(?j(@60d`t97C3xHK!LUCoV>a;m6{?%n=fYYcW**BGkAz+vFIH)S{kqaH`nPX!z2WM-xw+Qd^|=Owr>GF{Wv^h;ciZ-MAoUu`+y1nXN_T zzQzt@2ZorfCjdP_!oN}i)24bO;3eHY6)5hNadEMcA_5-bLAR?LF0Y33HH3AyHP52! z3C(=N1n%}`f2TC0Po zJy^AKxLqaFK;m-HiE72=`WW>VwflSRa=6&CJ2|lZVb(tV+4; zD@S$K#F&hnvS?rG?{~v%Ln~|@>F0Z;a!~ODzS*#c3)*E(j~_m{V%BRx|61N>I9-^z z7>W(Cukc$4$9SnbxZ6L!CkoK(FT=%Qqi=jNV76O(kvtS?5Ck(>U1?YtnnN%5)E9C~ z$=iT_octn3k=Y*?8`p42%7iAmXD{qQRKLk$)v8R%tL`u*{(8R3Rh^dMKCjROENn8{ zA}BG0)GAi#F^x$wPaBNK2t_OPz(T)~2P(I04{Whv4Vmx;A9IO z&9!l(i!5A^g|XckgUx&O+NkIKEw!ZNX@ zHTI_%&c0#mjSnpZF_+~Q1vd!`s5o3-+Rbt`h);V!1ru7i8G&5TKw}nz28QOUTS+%C zC-84szj$9rLj5?ekXg@1y{>v+HEr5$Z!df@j3~HgFtE2bUcc!wT4yxuRbJ9>H_bPU zH`kQz*;8BK!TJ*Y|3Z4FsyneUol?s7pOd#PuzMOGe7wwSeEIDo^fcH6>f9?vc?Ccs z>KFH_oiSNIGwS(TbouQEs?iaeL7l^acAT*n@lkgRxU`qErTs3%1|e(Ka+$1GRJ7FL}sy`H%2t3}s!YAX*B0~UgN zJc_JVThzA6$QNX{ckjH;s2dNI&pO%UcrPH5hRUW_3x783D)l%~>vBSp`VEJvd*;p4 zAS43d^`OW2YocCbW%w&Y%EHIPA~>iL*j!&$kWG{dZ*KU%3byMm{W9%!=xK%4qdK3v zV~0MBiyyZlxrBVNva4C?YwwcCR!(H5}?tcu~(_X@|>9w%H<@eof; z5qb9{6Uo0D72!Qh+Z`O5gDQ}QC0+ez7wO8{Pi=D++)EV8WPA3ee`+;>|GNBOZ51Bn z+4bH+8#PS(1+>z8`@XCj2Ec!pQR~a->%V-E-ow)sOp{yahXalIqfx_<9~O0em66ms zJB^jFJas)qttBB1BgNt}{t+{KFN}_JR-7VK-F)kBmQyDmcR<+M`{cgn2Qrp}*) z)>8sI$v=Lr%lXttcqE0483ecVRxEVwaVJt$RxIj5TdglXY9NmdeJU2mbX70>`i>g$ z@JG?L&ZYam9s?HFf1RCGb7|ZXo7GeRd-=p- zBbEwl32h~61onrumcDsFw+~AX{t`*Bx)&8^Y)x0VO%I~4dbC7Xy6&TAk2A?%^%+WXrNUSXfU>#e?Q;%a~Q zVcPUU59-aMh0UJ1^l~q=_)g-2gA3*5U@4Ny9KovSu&DHVRJM{e6+CDa@5Vs3(fk&uz$pPq|PG=LF-FLrOjS9O$j2 zrOl!y?b_+(JFECZ`MIPIy+wQcuHm`+SH>%kkCP`vmo+_*3n62@oeGgdVVz{Nlt9gW zqK8LKA93!WD~(zKiuRAR(wbc(l(zJ;iE5wKo*}Z;e{&2SW|XAZdO%r`bgrZPGIT9N zv5WnyKYOt#3(sA+D-u+1!IK!EY5W_ZL#hr_8$-S^o7#;kksp5-fZ^Fw^GVBhaHFID zs@@B&xa0+P_3on6PV@|oo;}hgEsZz?8=xS)hRc8M6OH?cDjRatq{*V?t`fiCJkHY2 z#{*df;Z_CMJ&NZ5$)~lt7dL@Pm&E%}(9^DTbz7SpMR=T|s=chrTHBN>rOjI`Pi{Q? zLp2Fiaoub+?*eM8vKO_mPl&aE@tpr1r-CTzRm z>f<6B7Dz>;;GY4Qv1xfA&}3o%=_6CoWwpt*ovkm>pH4OlZ!O&E8tA2}97wZWtq!c_ za7;na!E3dem` z2NQ`y9%-7R)x?szDZz2dSUt*9Gfsi4c%0^&LP6nIE*bRiDc&txJh~aX`IQirJ6XFw z?Yg@9WN?FqBot{9{L(l4wsZQ?t%^weJ z8b;fUr)^gT0(;1P=W*HuH^xU+(~(hGH1`PA@y>~eHcNbP2YLJp`QGo+h~kA2ubo8i z3pkO-1EQGD;3?@|sK}$p99PAC1PQqtqAcmuN0({v_8a-?JN1eVyNfr0>wPxj)CV z8c@dJDi2Yd3smLD?zeH^E9Q?j@D6eJ^@mi`B6!1cBY%de^*CX9=Xkswa4O@y%j4`~ zc?Q*J`v-_UoYNc+Cdx5;0UsJ!KvhbErmD|6P95_#C`8_?3!S+C*~@gu%bGRy_++T7 zjj_%6C6o85;w@%wA2bJ6@F&M@_B;m~1(XXGRjorjJFU!heZ-=f@x*NM4`&kYO{H^O zl|+|@YN+1RN?!iHleVs?Ts#*BonF7Y`KxkwCyYl_Q~jwO zeN55EBX2lwK^j9fO;t8Ft0=El%dHHsqCKt_0g|+lQIn!h4*YH*R97Hce_b3EcZ{jg z#SSmYfA#AE2S-mHMq1yU{F^x+w`L90az*J~Ah!DS8$QBsmX zw9cCsd{AbBo(>Q;nvyXX!h4S9baGAQ8y)*jwJb#hiZ7vJ+~ z^N}cS831hC?#XQdlEz5dM3TdbuHq?nCZ%T$%-JdZf6dc=t$P`;c14wRv+zy#?lze1 zOQjU2AEjdpmh&X{*?`8td~vbkolK45W{b3u2I~W3cY>5G#;4`P|0%znRrB^?Jg#J< zAgd6R5ydqdR^0=HDClPkRB9Ht20ty8>tQ;?E_kW-GO*kThYgqO8J}p#!?-@kTzgH0sj8 zO0O8bV*2ONK)ZvCB_3gn*Mti!=N{WJz@h@%`g9Cmv+*VNzW0bW)9WNeNYoG6$wM>M zW>$;PxvOo90za)*@z*+#dY!?ebSMza?V9PMMylG!4ecnZ4_8vE{+Y10o^358N~m2v z%qPv>)js2q^^Nq^oq-9T6JQlrYQ|MRJqnB)4i{`CU#nCsV`-l=Cm+Zd4AE;gf;YY% zZl=|4ZjbX0RoW!AY}k4~sS!$QJ^{2}rCh%_I zUy9=R_#@-mA2pP0J9Y%?FUjN*C__7g*lPE3SHt0{{`^8N4_IwzTOa*g<@sfwOPY1P zJGA@QgS>+A50@79{T?NasvPqrE^T-a&B=)fAG9aBt;<=VN3nlClQv?(bv(k+NYA|6412KF|_ag zAt#d3UqK&>B8j#)y&sUkc#<1VPdvo>E7}afN5{O8L=r|)a|uB*gHibQ(L?)aTUef? z>!Ro~X_jPeKio@ViWZaA!(bchMJa#jL6(`XM0!Vcj@r&#DqoqiTfN||9lx3NS6{{I zr#q8jdpLQVgUcRkXDQ)J8a1>DzYKcR2&2{*$^#G*<)#?H(jr7TW%be`Nc36Il2VODc-GOY?$I`cDk|kc<9({0BH%m zCq9`pDL9_QySA1^p}BRCMVcI@cB?iIiduhFbSOBug-kVFKM*gO=v&tOhFZXCqsd%D z*FUC8!fZgs0U93_lA!}V!x|+UEi_(tO3%T&4>pXBY))ve8#vSI2-o!E&|0RIrNpxhz}ho&!-tVqJ^DbM|e zJn$!kNU*k0ySkBm!IqdSW<%3>Mc47IWc$s;NWO)hRxeX~+x<3>l>ytrVEtF=%4MRR zN1vtMKc=&MEX>$^Xw=PAEK9V-#}c(U_VittE3M+DDRL5-+&*XFZh5ny%VFunvRM;+ zfEtKX7%ykd-YouF(AfHm2VZYiNA zT>|(0$3lBNGz}F|#}JC6lP@@5_c}3il-8S-l@C-zL^O8>f90+ph}yps?P0Re zGt?N_AL<%Tlrcw6j!C>3Mi<$omG&Fw5Ru8H^_!PhFP(f}Gg;3!6Q>c}PJ2jBAAGG9 zzFitTT4uLZYHlBpz6sO4QNZyghg!>W&8(j7#rTp0X}m6C!jf0zZWV?O-R;dLQy)$|%e9GHuzvIhv z(IDl!%y>ma(>CtQv}lK6h&UYWI-2Y}yb!>|NfL?21g)l5E`6DXuIBX-4@dV|C!t_B zU+^y)1}*yy@6N_?+fQ$$a}`DM@24bI60+EsEf)2eDsHs^rVD=86utTT`opcxA0AhX z4O(8O+tgFk=qIiQtLjhVT7?2f<9=L`S6nE(t8}#8PfqdELQ%a3Dba9zBt-QK<3g$0 zNfXzoIXjd0p{+e?(`_$NrlBhudJVZ9W(s&^!>QWxU+_VxdU3k%hn^zp*fqSJ8_KOw zi(hpnA{FQikMAs;2yO}8C4QM6M{X9!-9d?7<=U}T zM5rjUIrRDt=cz`HfuT8{h4qIG!B!_8$vypST6^sJQ>;&Ke~Z<5Vg1MD?^#=Mvv_YN zB@3bHJ?mBc^E)}Nx!bn@BcE*8{{2feawlTVah~~VeDE_fAFjhJ&fI?(7LgiJX0K*H zJf06*g)TP*1FjE~9}K>!XYswye8rb{OzTMMU*A*II2vFzcMR^iT8+>j_AHMbs`J;{ zHSd$NtLY(62vX91U=;MHyFj;x9cBYh17Vun7ZaFs^eTe$QzQKS6PM*@fn3b zYbpBRJZZg8$QqXGt78%A*&{atdK3*Px*|Tf-8HM@5y=?2%BMfc=6e&gSv?C&+q%nS zH<;OwAqEXPT^szd0Qd5zqQ50^NOJR+ABBc(D;GOyR5L-+A{o;obuyl zZ0I!cr*h(WH|6u`i%{|c8GbH$Gb`e~9`#tc%ASEN=Tus(cwzTYD(5t4W1?MN>|J9P z+ZS8vzRH~#Gtl%q5gRRUH?u$sWQt74;%*d{^J zp62w+Gi8NgB8l`<}|Uk^jV?6)3u1efHFTb)3_Ghn%m*8#O28DsH@ z0%lY#F5B)BQjXG8Zc5H7>aKs!uGUj6^P$((!{Wti_)0WozCOEsc7%poL*5Jx5WmCyk zVVbi^`z9O`ALJ8U){w<%W-}D|V=Rs{sWu1Y**nKga<#PQ%x)0H1%yXL52r>DD(WI^ zz6_~0IefM4iOF>dfz>}GSM^!sRt`vUg7i9C2}^3pt+Xk&qAp-5acaTsut(|VTC!XE z0yOz;(?iNG6^}YimXL_aLbAEMIrPVu|p68S5dN&{HHOUbh zG2+A>~+Y23T8*vw!94<(Mt-Wa6(Pw9g?Y$MvaV^L_HlV^1Nk0^0_x@~sa8SO( ziP|##N`K6ZdAX-^suRpeZS+!|YwJiy(Tw9`K-3!M1ADUNgQk z#gkEE-Ul4m@`Z%<^k6-j*^w57;gcUjaSF|=?m3e*Vq-^JY9yEvbXk^N-hgNAL0N7Z ze)BD(YJJ*P`222>_Q*D;occaD0;)+#{T}3AqN{z{AN2bLALLLkD@rnt~F{PV-WC4 z@sx6&l1wwM_gN$jNh~8}#sfRZo#t*Rm(1cy(Y%HUwr@$ZGDu3jojJX>!(%K!cCu(3 zO_Rel#~8xCcr8+Q=CZ#kQ6jCWnK*aR&5L9O$NUCnX^T2OOz-~V`2I`zwMvSysBib9R%Cy#p}dfXx8$>MiZ(13f15g z@y@veYq@!*A=QTJoN8f4Q}|s!{D>vkS}*G}9#_d1-~V7I=F6PS?cRb8kF4`UVTvq& zddCa-na|pG%Y)0n)HUp8|L1Ps^SSO^^NqO0*Wbc|?$Ksd{gj*^MpBDPWonBEBH z%_LcpGV}i_ZSQ}M{~Z7GAMISU1EA1ZTPriO>NDew|0N%`{y*XI|MBzRLmol{UH^|h z`Td{cfB*UK3Nnhaa{tfIf0wzTAoHK+zyIHG{9p3?cUQlEJ^y`Avy5jrQ)Kr775|N| z-9$S0n(1s9E8=594y3v|^QrD3=g=!Ame)ty1yep+AG>yl49GIwVQG1O=x#!7#!=l% z8C@>VGl@raZ*Bek_N*SqHKwaN~ zFFk1b;h!JUwzub!P~#0giqzFfk16=U-Xf(>GjHZl|H}y~RDSA&l^qy>%*MGw9x3fW5>@U>sp;7SM(RP>rSues6aXDSeA-9L! z>WC?LEEYN(%p2-)`U*qefq; z5$iiw-G^Ld_!gj3bIMMp*I!%IYG>?2ApoL~F`EouoLPhVKqw@r=JS$OH&iBy8b+Apzj7 z>MGeRNqx&Q;9!4m6a%2#Vvhjrf4hF39QVO^ZSVp>0D6CCxwAP<$4$ngn0fpGiWt?d$shE< zOx0v_P$}1v&Ge2r1uItBefmnBNM3}0+GW~iC46$1oR0Bq+a=@No^dOB>plax-5ExH z7CdF5y(IB~l@9=}SB8+HR?oweu}`W(W`x$2NANj4{tuqV@3&sL6;VY*K@5~ zxB(LffH-LPUrSmD9?k8KoLO%KZ$}%}#2zuwy~J^ela2@Bg_;D+k(;;d!-;iMNybev zHST?)Ifnq>=&u|6;$k>!ocOCUMHv@~SAtLzmE(@4g0~&}3Mpd8lNP3Lav8~n1J8p98yFv(@2P(+s9lzWUl~-KtS1j|e2OjT}CDYD9~HV4=SP zvy4quk26x3AG9?=Ir&R%GHz6vVB#|Mo@ zzw*CU8W{G$LDIJIyDcUP&16|1c+Vo|ddBfzEg_`lBZmN`%SoF1+pp_xn<$8}K&utL z$w*;#{V9avJcYr(LEPd#I-aTGVNs_Mkrj&Ptw>Ki{y{mcA_kmR`&AA{%i`sUy3#~l{vn3 z`}|nF@6N2=)lD>Y$^&?jea7E=aT7b_hK$HMKH)FqbHVI##sUKsum?_-x_){$73_h&nkb za}|1yCofk?fDz~WcIPr9y_lY*){V`Vee|>;h|eeqak#!L5QIzFHOn>TOUepOMNoQ1 zr%8Y5ObZWoB{%xcK3QgSOct}Kkn5B<>KW}Nt;M?4o+<0@b|HwTJ|VFCnb%B}SM_~! zR3@~&-c?(7NJmd5U-Ee!2jpzQfRCQ6_E=YPR_2xVlbxArM(;5wMIQxV9OT0Ana|J9 zoG1wFiDBcsG~-(sAPpgVm0w3TrdaptxigJ_A8f)%LSh*NnWB4kL)jj2<)*`PA*g$W zDi_*dER$>7op{pGrtJriLiuTGEWZ*5hUguQjFSpi4<0{Z>PYo$zHe^xtM|B6>+4+E zD!=RNsr{BHZ<1iFTaoVmiDFG{p^xla`6Y0Gd1qnS$3n4(179fNOAqfxyC;5Ee_cv!| z&6-(r)|^>0YhM3wDbK@h&wXF_b?trcy)jW5lm?Al!RIjD4GwVr>&JRB#ewraX26eI z&ZaJ-h8(imuew<{TbeR#oqP+fIOd9fWd_tPo7=4%;g7fRInd+1vayzKVihpX_KSA_ z@RF}0EqZ{(hmvN2W$5-e2{B+H_)`r?Fji3W)iOWd>8IW<0(lR>wvvK+Pr)zbW=KNq8fdj7B$dKAi4l(+`D+0Ov9h}C zl0IRj7YC?(k)G{?ZN@hIo=Im6!FQ3xZ5bI;vXYAjiCBciM_yWtne`gbYo@#I`QM7P zP^}_yxj$1ICTk|3ckPvCGIM)fQJJjlN(Y*{jfj9+-InUwGnJhYrJTLGF^g_8711MY zJ1L0_U3FwDUa{AU%To#V&iHL9lo+y>?UqBgy(>JbPxvp-veQQ)6q6sE<3QcCa5z|q z=8aIKsP#^{?(NMYZ{kd?Kvre~Ez;(8zquW`rB^8ElL&%BBtc;;G4f~`iIY0nm3jn^ z5DThmFp@btE2kGH@Qv0DnGnMzV<_yj*Q5f+EAFZE{XzUBQlVM)iX);*CRCaGjYxWv zAu#6XnA{V2@3PMa1$20WQW$B=Yl^q`YK)IFLR&wag6%oRuJuq`PG-Uhx#&DfmO#qM zs>89Xe8bDp?p1s+U$b5m0N@qHPV2(Zxh<)Po!D{MR7oSCR4CukSwfVC-3dSbH7rZ1 z&cAOata=@t-MUN6PN2sdP+-FYRzXevp}5E+SY)1{(ZK9`cHa~}03g>n>SC=~y?ZFD zi9^QLoy3kH+}!Z$H9*ji=w&9iwRsu?LQ{5()reDDJGk9<5CQg-VqN8Vz#&J2(Ien_ zVfi4zhc7%hGqfj8aOmSI_NB$Hu!jAaGWBC2-KgG1fdYZ*6&30aHiyyUlm6?*qfUn1 zMXWc`k6i~GX}~AkK*plb$D|_iR_pk+-cY(d39i;2jvw8Ltt5*uovFRz|3|L*skt&^ zRpp|?<0D`j5Sb}N^$Tu@|}_hg6nZOY{m z!mi>lP%o|pnX+YC_Z$~HkaA|GE+c%x4VQ%eDV9S zi44t92(-jQ{reBE7vvj@?!?4B14d7w z*qw5@t!Z6C%b49_hzqQ)F<5#)gRJiGw&$|`Ua9@o7_Yp>)$4HBXw=zegNJ7o%^_?i z_>TOe%eBV-zdH0~_?lv2X~WiyRnPR@MA!g<>~lMf)y&7@j;j65!_zbii5L-2c-GTr zXPP2{vUunT@fQy;4DeFmgPxNOcO=uG0Jd4xvS^JOO&Gm5WO(frq+Y+gGOdk6rNX&j zR6b;*Br~VZRJ2!HrB>4UdSmX~xUwF-&|68POS6F;!tm5=#>z(ttMcdnt~At*TWR)& z(#sU`jO?UrcZ?~!N?ePrJVW8vn}4S78gEA~8WF`NS1O~{cZS^UZC@t`a%jf#qcCl^(228eO+^z4lwXe!(l!PS6D)UnriZG(&^GUtaqEad%$1 zw^D)^#|zX@s)SKlre4wGeVB$k_HLu*CS6s?Ys;J^q5ab8^eLM(n&Um5uY$O1d;S*a ztKkfPi7JA|pA|ywPesvmLV|Y6KjqJ^_A4j$2KKX8((FXZ=Eq}tcg+@ zXCDpO9=+J(zp8&`i&?M%0BH6~kKL$bua7acA{1Z_Fi@WX-OrD@JU@Zlg(LKV)a~FN zPxIvLKD|mt>3e>Y(KHL}36F$jDBDFh)+7XsjheQL)m6d|Z-yB1bl^;%fvkQXDH>R~ z0zb-;99w9n4)FRVT2f!{tqb(_GGLLSS-Fd>j%0Wu;WPKFnh05DO5=o}0SCs!5$S+C z_QaXg5bJW$P*Zt7G3@aNP;hmoz~FMChI*`X$njA%Tzy44#OqinG8g2MF(RLO8yUT9 z=#&omDHOFp3!Q*k!IF%>mbsGY)8_haG{T&+Uza8DqP&c+ zYUvS-Q5ykyg()_7MKJsvEitKSuFpPEd*aFtEc z_NJYvW=D`XOB-h#wNG>68f;f+t4o6|Kc9EZ&rJ4jXm5I2(8UO5(jzwWKv_{60_X32k?eDT+UFH%!^2x~ z%SKUJEZc2=Ic+pl*yh?^!Z}X&KJV~f9oFaei7Csqgt~J#XbNaL=0uGT>Y}Rf;%`QE zZ{}P*`2F_EOv+WON2Au6^-_8qmCH?#ogZvtPatkCWp;VwmxGjyY_(qRCo-1-j&Dty zUA;CkY`x+|N@_(aDxFheZA%(n4SLnZr7Z~RsWaN4iXYRuXVG?;ye9L?EiQVbC>-Z}_y4aU@nHISJ;zo<75pT;V z3%i+ulIbH#>xeX<_+F{gGhyXB zJFyW-^D8SuMQ^<*+g9H~b_1ESmd|F2XEW@KqHZ8t@_2)kBojcF&%lfyp3M>yCfD75 zb>)FFQ!r>szSc%Y)+HTzwe4;Mjj4sI$;Sp&YoakW+K|_mxti0)^ktS5M>a}~s5A@_ z(ENSZ~}ho`@%T$^PTQ+ozS)mt|*ODKG=b2+Ja@aJnS ztmPdZ%PX>4uWDY>GzgHJirTz^a#J#AA4&~91T@)x0QI%A+4a2KS=yRu37ip~U?a#Ejqg^@AlC}i%2u%M~SoaW~Gd8@x{Cgti-e{pD}7@%)ZvCtCz5n@iJv!-e+yF z{rr}|&Q1|8^~*tQ&weaYnFA-FJD1E$<5%J$X{fIyB{WWzTSpDu%)W&cJxM>M(k5ZB zwW7v(*xnyH%MJVhkoEXr*B&@j8U5P7(|>;I%DIn$>!1q82ds7uWnf{;_Lc8)MeL{e z^8-=V?rJgULP5(HDSW;!2jaHjfc9#aN7diVLLBoEDR#1t%~U49jO4*$5{g zF>j9~$*#X0d2+F<&)j4)-yJ9e-vkbYr37dp!cx>pHkqLCg*t}ZnrirM{-)u4pwr5#g&g-NF;gE+MG49QDC$$J^U(F;7*FTZdn-6 zh|VBvveP*=5%6 z=diDeim-|7|L#J8+>rpl71Ug$-wWE6W0yVIFC z$!AGNB{_%VL{C0X8T^8zfVEE4k~#Z9z$!o`&5A!)-&Q~*#dCG^26D!0W%;SPLhp9c z)z@caeY&pBNWqktIyJedr=v>)*L*Z3Z~dzbP$|E>P@?(i?FOSxHJg&Y()*ENKl9aSFkS^+(+96Y!U^SKJOSOsGXK#8F=pY{LdSjE$+Xs+%v@G_CsN)q(9VC?PDCTi-wKsv zYSjip2}zlwQW*72&;D+uNxazNeoV7lg{xXge@ft1R9&FHB?44c>j_Y*pSAz$tQE^iGBY_Gu8@6WD4^I(jr$nF(~+<;D6j9@ME&7#q%Hf@-Uce5Yonx- znCP-3L>wrpfb)wDDn2jp}o{rw&sX zPetiQlW82;4XagY6C(&o;Ukd5A{Br=Mg^)!FI3h$U6E)xp^c<>+KVlZ`!}`_%?1Id z`t&~Z_Lp2&=Qip1nH@Cfe`I!A$Nv(uneyy_ZuZw@@$~6t{f$aChwxu-HhRZtl?>=J zOoPF-Ww+I0;=FvOk;2Y%b|~@8rs06aj^G+A?Zt{wNh`!>jNbT)nvJWDVyzkrzb{}S zB;Ba;*>L{dMH-W9oIa%Vdh2a`ujBTD*@;$w(kHBx&MUD3I&|o9F@+6$P+F+ZFM!g0 zg>=XXr-CQTxDVjV2! z!!D-)LRQl)5?s@mYB|lVUaHkCD{d-Er9uvIK9MRfAYVr#IVh38-Z3GsJpMrOU)8XjLgtfI@gE5b!i?u5Dd}X17MV$* zM1#+w_~~-9GGIwd+Q1vC0N?2gLfl?HojW@8Ia2+PUO!Wf)s<|dv|_{+y_^kPe;7v| zP691lXKcJ3A`V<-pX$4n6u-Kx`>(O*rer-yxlM60?C`cb-hv-jBG2gs-E2KGSw{25 zPxaMZz|bRic?)Kay5&j55F*@xnOV#AHabKJvo4m`5kOEz&Yq^3a`(k`x{xI zzPIyZUAwN{G8aj2(yxD>oAQ*`hUKo_L7D(SkvWC0m+$4#4(x*3v0^HVW`%|7PXBeL zUQ2!8x7Q8TgQ3M|WMi&k-vjDs1b*}`icR0`6a~nZ%2#e2iJhrhqv`Lgj+y&QE>@nu zX?m@IDi(Bl#3etru>K2WC{;KYbhuuWm{Zt)-|-(7{#RgabC<5GpMr36O+y*OFT@(G z7DKUBz%QoCSQ__Y>XqLzl@ZWO;#BY+W#NMWM+Nm#V60Z7HT-<4Lv2hF-0f09(KvJs9VW)`bP8<(Tc|#;*Pvq`Z5ABNdj*t|GeCo zDETFQcPN?7{^j%Ld;xR7-0)UCUjzk(mPe7cJMhe*oiq#(Ww`cRtWs>kA>o<#%;i%b z1N}=HJmVmuG#?nA(-X;;BW0c1s}mba640PeEEwd~h;6UR*|qvUZ(ew2&wKYVoF;3N zqT#>~E6oxi)oB|X47HAiG=cjdpiphY!M6_o&j6Z zCaeItwX}jqGNo!ddF@P1#q^TXKxgmNZ~uI9f;l;Y0&NCV5m|_{PiWeAO$J+NqkIDR z_)M8dZhC5-J7LvZjePH-3w-0k%Yu=YfTzpYri|W~2Id!z&h1avL`-|l(OIfVgGtnQ z=qY#lI-8}5GISuQwaV1{1>#Qrxvh_O`cYmge{xf7Q~2+@a3@PMybE3oDLdGkG|qiY zH!7fK7IXSpxM%|rKv3}ys4=B5%42j%p#|d zzSKltJX+8-6&OnLQh`fP(c%&3t7r7}$GFB9<(1H*72&ZdS_8Ps>}Vlz-q&_0iC-_- zro~&X_xT88vh+@+faFZ}4J+5&5GI;ZbO)FV(pQrvXlz#|)d|XGivJwQ>dO@*$ev>L zR!?W^P5;zmi52FpMCk^t&jNQBA>;+%Go;Sk2j}bJ&JJhp=f1lL=)G8xF+2?Vnl^sA z8Dx>dS7#tC&ag%sdj(pZqaW+)B=nL!5!G^Z@|#PaP-hptTqaze0*Vt!{RbEg!0yGL z2fTVP@vZo&c}v>(znIc-kw>(o!Sr_MDF3J4KgcGR!RoO=U1Vk2?Hgu)YVCR=Agp4r z!!e%-*^ZKXoBwLSm7&xzIyjK)vd^Ui{hn=hv>|aj+R=5&c~j8}XqxsQXw2+Z|AaQ+5cXE0#|lye7dG+( zRv*Yceeb0hv5_?Vp;g*cNQ?~}y<*XGIK56Vm7J@w@0tUQHpJ50ApoY!A`qFYHOL>i z-^ZJCLhU&rSN8eE31k~X)fWKKVhwrlJf#K&&&z`HoVU(Y=E~9gc+=*^t=kyp!l&jo zG!Sh3ev|!MmW&ht)RDm$Lqmak&c%|)=o2bBSV)t<;n6YT81kFY>-n#z~n*wm;e#M!7f)2>7Nl9_02Mxl}!bJ9y+=Q-~S*zH>Ojjd2z z6Cy`iMw4GwkonoLk`Uj$(m?ZsFcuS<)z{IwzfTjmIfW@xH**+8QgjazPxccZtTy7VLYfgA@(pI<`%|qIx3Uo>XP4!dQ-$o8V1rzPLUAm0-8?lj~1>QtI|UH`Ln0Q0}ggqyNo^n(M)ltX0#uk zRSarN3Zn(_oM*+&U%;BLz#|V6O4sqMB@MrQw+v)f6xkWiil>si&ZqCCXNA!8b^O5C zWSKF%V0mpUx9dcxhOg$F<1-fiUZa;Zu?k#m7#Pgqqc1sgyaJnwdMb$IpNoFJIh3S9 z-7p?g4nJ7UWa{OQDb!>&>G5A3_ButN=N`~>3RF;nJ`q{j=bWe}j|y7arBf_;G6zx{WWfu>wbn9@*m)`G?beRdk;-#nmHXa8!`7)qM|*x$MJ zh@!MRJ3o9(On#@=jBtx2WOX+8AB0kz6R!DY(X2N=MS0N5SfI$PT_2F9Jypedx-vJ# zkW$!bY*AwmdgU>Tk+IT*O2x#@|BF-3G?7!rE}H+QH$oS4j6=1!y$w7ZwKn1!-il58 z)b6*egBJkB6*RMwUH#qSW=)Zv&iG? zNO%g>!L6j86G{(nXVl=^3s*)f-*RWZOc_50rC(SmX?{BQ+auOT)1FYumUtm3 zRgTv0siwiu8OH2~GG}Mi^j&dK+j} zg>=&B>PV*Bj<3y7QvHX+YF)i*zSznde%L+@{pV7AU(rW1U3(^=!ir`&H%jVBsbnTv zfhl~+T76l&Vkd_+C&~sNk2Z`WH;MbBjCwLFiIGRnvQzYQ8b<}e^QE>^xjx-UFN2gT zcGxJc%&kfJ)O#`Clt`>EqWhjRU2`lGJlLTx+%*rjYfrs?Jgohs>&c3w!NLkX#^$Cu z*BJ|*9sZu(dz_^&Q#|-(O}eN(^~S*hJ_2#H57V%pWynI_IwAR-$cJtH%;tN)`=&N` zqS`=weog#+|EQgPG>+zNHjhoy2qp!HIsUr0G*8 zynkMh-!B)%K#|BCl;5Cop!1B%oILE}?2Xv3ef=&u)QXz!xmw<+O5W3eTKGiUJ)(3Bv7Lk1xb$gx8sw4gO9BsPY7HN*^j*>L0stH{i}Rkw ziD=hL4J9qnLph1!7qsqL`jMtU!%XWp74==GQ$CG@EL4tUW&8hE87|uk9SGl9BYNxw zY&A&hB|{9NZj?No_7l)fVWcM(o!KgQHhkX|G{$@UH@X2Tdy~FkQdGgbwafV7*^H7> zn)BH>VZPI0w}c%TuF*RFO5|qB4J5)vw+>gV3(Ron3MKxMJ|AQNOmKyKESwlR363NO zj}hP+Cry+HD%L>(-$@w%ZFI6H?GhQ}I#%?Z*0!6(g=Zvd2`MIebihn0) zPO!3T3c= zI?z;ajC0D>m-N6=`0ocsDC+c<(o}H4pf+}~dg^nq{joC+Mwnlnryv3{okhR;&?v;QQm^cDvG#ejthuX!xH-SF3M zC?-^GzZ&riS&9(`!h{rLAN=-Z#C1l}u>OKt#HD;{!nM0;?=Eg-x1b}!f_C-}u{8>Y zs2{OxZkPK`0l3}-V8-R5MRAmQ=7XC62QtzP$`pE32922G;(%SeNn;hWn%UBKiKeHc zE7MGp=y!c&B@`n5_Rz5Xf|`2CUexRlcDICUwH_?|wPh0?1=mAZQARPRhLWinWGTEe z3m?|n{W<{fYC*a&fJ(FMEwv&(S-}WGF8ZG4){=EP{a5M9SR;*xGELofK3UYH^H39E zn!8N~ZBCT~zeMgwN3K6p`%T9a*{Lil@*d628tL(XX5aCZ!o;OmDfwKNW)47as4HN3 zIZDCuohQc> z&Ev`gx@66Ch-eF;X`3A0qu&?)%}lWpj#S2?X<}k+M5@OtN?+uQ-PU?=+^fg`$yt0Q zp*w^v%%^HAlLBm_W7(wSJBDc{I`nyyUPJ9U3>>OKk`s`{KF>5LQr77e`cDF8FKcnp z2|YQ|PyajZ$pfYT%ae@a8^vVE{5UdD800L ze$eX)Tie^159>akSv_>dr|0jVHwoWCZ zeeA<`eyq_(+j~Z^1X}ITb9|?;7Ekj6Zt;INiUDAExOc5aDfAwGt-lpAtg+A)7HrB* zv&UNI{~G*+LBVC*al4f2ETGgpB`F5FktSKS`hf z$6bN{dFg*%`v3ZuvX*Hf)n^8D9d%Y79vn>Ia(>k(a4ZW}Uj}qMdU*EJ?hcGsLD;y! zizo7EXN`z(IGLj&s_k;A$G8^s@f_s9ZhOReZkOUEi<-F;MfE$_bww{QeRcLuAQld} ziDIJX>3QAfOTUB<_$;&&nwTLKxKTJ1=I2Yb`=z)3&a zQNlz;zyAib^O2=)) zomuC^vBg|nnPnOnByNZO{rzq0m_HurMb36B@Sp)%SB;l28zBTv;6e99o`{iGoqApp z#uRetSbA5G7%Yh{I}Dp7&K^=)zTW%WAt_H-;9_~(&=oj!Loc*IBeMHB#2ekckVk{8 zUnkd9u574Uu{_+NC%0Nu+j`9UfVnt00!qI&zW%R-Tk0?TB=GBXJ{sk)LmfD#?(&os zt;b4rXHk#niCLsDUJ}GkKUaaJ&u6g{$vCYJd%??F+Wt5TTcN(G*iktaGC!WDL~wUN zN&9A2bwE;>NnXN1B~_U>GZ5LwIpICaf@VRdko9s^UQ!D19J8GVl2d@A=l9^vn6$==}b{z~U7r`9u$4 zRtuBnE1dO z8F2IN*yJD=wAQfSm*pJzzV{$t(6&K5r#yx5*h%Rwh!*8_O8m@?s!IxaU0rk~c~X)U zCSHbRfOV#rrc-K%b(6u}8XlEpeTqzfG+UoUg-mShe7`KE`Z1Z^q`mxF6K=do)h%SP ze|g^jPkwAcTwG3OuLwhKcrY~La3jC__o7Aa$F|;WgSfHEBo=2(6GGqZz%SEsD8i*U z*n+bsZ<+adsiyMf$;{h&-!XK=cS zziYoa)WilgZ;u>kCwYnn?Wjc;?y`@5LGH493CFdFu-$LF`}lKX;P*zi>dLRj<3!|I z`x07tNtf35V?n2`Z&MBv zif}bJhKl5?ujSfktg;B&q0jGXu4~lXrWU^cSBwlfI+65ExAC~Rrj?m3Y!z5LZxJDR zJC8DWaXrqvq9yfQ!)}M+Gl#t+f(vwap4dH#T9k3Uq0<##KPIERte8d}^mEAcs_<%& zfVIzCaLC0j61rhQzrv=}n~4Fz5;{y3gKpK~-6`+xc*b+Jw4V{9C`fHHQMZN8H!oWa zSB_G)Gw|*dd4XfsVw(clofdAXdb}OVqo=u^^gsnDK6lbwe}DI951uoC4b%gd7F!h! z5GxV$KSE)kg)j|NRd0rZXy`jwp}GcW&s~?U;DoW_ZB03Lb4(r#wkWmH+E~2UOn(pYh{X#9Id}$~`-n zpOG$0_y@A=sve2Mi62()Eg*t8zlP6bR%KhvMH8G1JJQJYo+nQBD38&D@{!WR3!5?# zc9+Y9^-|!^V^(n(o2ejgJhs!a8poir##hVACTXi1;@xsY(j8KrJz+sjI<`HOq~_7NGQ^=#kf_%!_qK=0n>0QEd;2&tJ{Q|QWuQ9 zM0)569et07-Ci1Q-9cxDOUG{j^i{n{v@s0{CbvvcicYD6A1X@0yka8v; zHB22@`c;qLn?B@V4L`a(iUJv0WPC;YB1kdv(lH>vr zP3Cp$1Pkn>qzL9P1mTO!+_l5aWrk4FpbAYjtNY>~pF>cFIFcTPfcA#&wRLa3h?ZzK zx*5tf5Mhy-Uv~IaqXx1Rf<&m}2JAe-s+SeNsVC7Ktz3mVApZp=ytx~|A*b|b?f9O~ zMD15j0i|nF?e{B;b3*3R#VmlrgI;1MYazqUo0oS&YWO0}pnHTCSDUsbvZo0QvM@We zOb-w4oFUu?kzM(&Y{!Hx&xgfa=)>9ZFgTmsC<<@Fli4GI8p3>`BCTh1qt(~!)~9+5 z!jX-249V>c#gJcj_d0A~v*DPOvtN5sL#pe?`UiKZqY`NNVORka^W$fG-zP}I7iUU+ zfL6!ts=V8~v)U95eCtfU$*NQ9VrHmAwEfFzwv*MSi~ya27OFL-E7~Mdev>(&TCrn& zzlB_$2OIYD#G669)30WC(`)T&-jbc3mjAkp?8FCB0=mES6?yYAdT3PN=1alb72K{X zURV=v@h@PX@K9>jtla*&rOz*67Ae1$FSXWGgz=B0tjL2;|T=jUbPt6cXLKkGm_w97f3gi$q`tWLEt`V3Tn>3qQEi$H8U|6LcDg z#OARjMv<<>dB~q3r(Dbh8#d3A@(9-En($@KL(b5uhF`uVVcmgD0&Hl>OL z+dD0x@APbpy6xB=gU?iY_CKJU?QlQA!UA!K0|JK4yG-54PL_L)64>M1*sn^-xw@g; zjB}Q$sk1^u;V^#O1L{m2-lbno*Uk_u!(QI2 z#)nWl3FFrw%A;$zNJ>{F*=>>bIYy39Gyeo&AzPtUA@~lGpZ%j1e&Ty-=Xe(BoEw@j zn-yzHf@i(cvN z<*0NB`xek!53iP)9=^nynmF zK$v4jd4&b#D>&-YzC-+6{MUP4{`^CFU*PY}I{y5cUcb|>vwubJ&b-fZO015Zv}y5XdeJK&Vj8(<3#k7XgiKM- zzY01q#Dq;@GcrN66sh&0?-VQ2VjN8{(#OX?A)m>Uj99OJMSB?y`Jws)G6B4_c71 z+B-8dcnGC+2F0_h#6vi6>-N z5}dZOB4U*JCV8Grq+dmvpY(RRJXl0~mEpm@VL&@HEQm=}lwuCGVO?m6Z+1f?E>Mgf zo}H;w!_{@Kx}d>+s(YUmH?P}6Cam`;l6K%Mw#R4eiw(1DIN89$4rs_``>n0|%2I!X zCwthR?rJ%$_9Ast5q5*v4_r9WRCkwJ8cK`>e6bCs7gdtm*KZbLH%IMaKeKrEcyI zUDDxC!{nzvE6z04v`wQ=o}m(9$yZ~vVJ?f<&9FSwoGTM5|ApO9av=`czGtO!%%qeV zIQF|@c{M2j>~))O*FJGV&rUC~kRgF&&FTgF48LzDQ$sxth8(x+>yI^f^=d(z2S3aA z$&xJ@3OmztcrD;rN{?7x>{_U!b1^B0KD{NzDNZKs;eCs063f$ONEl zax&GLKN3zr;^-4JG)bgJA=5XZP<8{n9|;$%eMv@e${QsPQc{eZv)LUmd<6zvh!L zQV$v1xdW4g6`Lpc@JtesU%BPRbBc6K&tRXb=N`0Bm2fGR(+Z^Y*;;SsmX56s8#Ee2 zvEo6iM}YI--K3ZzLEw~hD+s9$?&_vVz40Yok{qT*)i^}TA_TgLm?H<6I9Vf#~gHKK#P1h9Ty2z9n@9{qI8?z@_@MH^lrx>Sp&CM z2T!(f()3u)#0N!W;(!#38vA^;YV#!@Gzs6*L&ZJPpwE&9@JeJ`Fr7sLSa(Sg%D~08U$9W-uB|f(iH8>y#S8pHc%gx zLe7QM4ewM*9UabVLVC$&L=@%sv+ZH z6dE%dBMDJMzfYIS+RZXwFw z^dA;mmfUVxG(uZ8U54%iu9Vp+)et(5Bximhq06~8%2WEB8r&rZ3Ma_Jwk6pt!neYd4JbiV-ufhIyeGS(d1Ny-VLoWL`k1Rs zR;7i{T*;wceWO(}f117@c`Iz%)$m9((QdB*(;d#Mj}ppXAvP1JB2oRB(uhqvit-xQ zPjX0fo*66C9jler!wdTUowi|ViuNg$f(#k(-~8Bapk<>P$apsHWCFlxVbr>jW!$Ik z|E4PlXC0u+qx$k^ZHVNOqIcU(QMRjsBK7*w_+o}T-osJ#C~`)66CyiNXcGdD?tIiSuQwK9aKWVQgG9qp z5RqUG8??JaohV7bwYhV$XlBM&+D1=EXI-8@vdNUzgV_u>>^&Q2*OaV=CA4l;sGTWE zY>zwFIE~)uh7#M~nI2Gr+MwVqxbj>gDvg~SDtvE?%QjL%BaW(OZOBmP?`CfiLi_p<5 zEH2D<+B0RqB>P2oOvplDHX3k=2L%(wnU#Z^g}EBs(Mb45P}xNF=?D&F8d_`Wuzn zo8&HhQ=rIDlVSPp6OHbIl6#HR)@?|Yb1*uqbKChT3?=Q_A&=B}QgfwVTxe7*_+?(B z+H+Yt!<_i5dq$$gRhXb2Yfq9Wf9CLM>h|(xvbfTY6jrf<^DbeE>8&~?{nzhoAT%;I zG|d7UJG^DqoQz5``4RoK`zJo&&m1P;RE552v8|Sn{EYN-HUVHJ{#(02xz|I<*66?| ztI~oA-e0%$l*kfuP}{8;xk8Hl-x*9}p)|;>C=9EJ5^gh_dHPy=6aKW^Zcz|gHeqi7 z1FQKr1`bMiPNu`sW}gJ#t)^i;X!T~=H~}osIeF^Y(tQ2+7wt2z=O|5vtV&XNxRCNn z%9d!2$FJil*p?zHmgrU=xR>$HB21cSjULfpRXU(iL&fni;qWJyUYbZ<6$G>^~aJ zq1~w7!*EaUgO+kqyK=&=Y6+j2PT=$=QGeK}g&^Lc;mr!R*N4lu?NlH_e0uYD$bag43UER(QY7c#p#9#q36Bo)-K^QKF$ za!GeMyF{0G^MEL&HsPJofnmn`DmFW}sZHiBSJ|h8F8{GQ)aHbh9q8ksY@OF9Cx}Fs z;ewxodi1L7v&fmKFDKs9kSbL4s%_o6tVSs$Wfqa1WHlr8%axOQ23ZzbYH#uVlbY`D zR*$gnQL1NWmcG5ca3#^G@d}}77`MK1@VAS+m`hcs&q4hC!nd=2tSaAAv3f#8XF?N= zUL`iC!&Wed$MbV2QTp^l$aqoIFnwA=eQw6Y4Ov80-xLqqo89uXDQKCG40I|`D~(v3 zcksE5%Ex@EBQ-%pVIn6$6=I$03vqQWQCQ^>^$F3>M~srbj5c3P4XNqyjNF9(_)M$zCO5?L_c= z6OFdpz{nvx;6Xw&Tw#^VM8l$>DB&EU#({T_iy%IC;?*Hm+5(5fHmgXjtu>8?RT0Ci zdlIy3nvT6(PBPg2kFWurNX+3r0`r3uaD{4HOWA~5FFjUaPPgF>n1h!050lzDsQK!f z_j4#mj~LcVK$Xg@QZJmR{rq()ev9OnULB&tp5r~p=&eZaRf@bZcR*BQO?zYFqeW;C zXHP`rnwmogx1BmKkqX|*4z9Xt2WzNGfa5^ZH6r-u5JN%$wRk&-Z55S! z`=i~Ddi?NDh=g>&Vs}uJ@i1xA@>wJa1xjj%OeE}#917OMK_hdcki!dyc^&O8J)6`~ z_4HN+DW1`=ghD7n8x~wpkCVoOj_vjqnL%O9O0Zt_RGQPh2%Z;jUzH|EuFMISwV!HQ z&q%emcofuZrNG0wK;P1gEzXC$P|(6G?B?0ALBU0C$cT8qFAT|pZnTlTi+{d2a@Z!Q zWvLB?`*le7Y%~8peAon+K)($VHbzMbX$_MO^L+em_BasfS7S)$sGpbB@bid&0-`%- zSP*MgZVz1s)mK{s)mq*S?(M~E5|p9lR3kP>cjCyLB~Bm+A-@UVX}``7epA*B22V}p zV@7yT7U<<)|3rWGQ3*AX5s2!nu70PBhTGZ)BZ4qZyeJIi&>Rm-B0TAsZ1Nf1qCnO; zxW271f?^w;zkkMNs^h~B3Wzi*MxmgHkVIE>dLdDKgFt;l@Yep;650K*8Sc^Mvc zNOQ!~@hvl+R7j46vjQcVa%jXh-t7{GYo8_(R^@=w1KM(s+k%0+S=y8WH0HRQ^5aAp z?~$)yY%2^|g zcO{jGm6FxSP3Z*7an4wKPbFS&vFdcl@PYTDdb*-bP5x=S!|*bK68?J2ZrjK*Yx>X# zCcp|M1#cNAEn9|E+10rgY}ruv>tf3ho6FKZ4u=DUuDJC>>%t1|F6LF)mOBa46q%<= z=-{dy>8BLJJQ;$cKn9P!KdZ81pJk43rjV&?W4V`mYMguAz(?HH950f=+t_+Mah5bx zPm`<7@#&Dcz?1ti7e=a6gX^w5L|vc3YSr^I)m|$PuzE3{kwUowcVlxpGSC&XjdNA|!y6iwug&D^6Y7YPS1Wl)IP-hQekF z#m2wiB$D0J;Ro&Ai5>f0*c4LW+;mBR??P1b4jZy$x!ni9V@YhkvqXGuX`#9h}Y?z6Ccjd&b%GJS#E!H8W8=5 zghM3)&$z7gu-ElI{db$4(O(%(z$?G*Ux2&p|B`0(y%b6si+f_q8NjR?xcs`T!)rS* zW<3AV&gRmOSOc;9E`MFrVlThi5zqn%2{5e+D0wfmPpeY*CiCN0@AZy6UC{=op8}Ay z=N@>R`Js%c0a&&O7rb0Dc_>iliHu7OUFZT=#-H^a6#vS6myg}<2D{qcRs&pp^M<>@ zgurV3rBx*06~rR=W`_K=UP=A$&7)2uO~}hqoqydypRKF0{tMzB-(K{?@-Mz8A3c#cA3&D|o(4i~3H_CS~)ekXHvV zn>f92!akv&4tAy%PG4b0_INy6YcB6WHg7G{zPSoTDc_U6lX^fmjIuJ6nt0qZ-2AF9 zc{bT*FD6}+*WvK&p?XB>%s)P{UKM$6fsv=*v-A6Ynz-K{gqy2OuKThq$yA824;y>W z(F>q&vn`7K+0EiZ-|r0As_5^Uh)E|oLz7#bkAYBEd0p=kT>b-Hz(}#?$qzP%JZc_0 zkWI>dEBpvs)1%%op2*lrKZQk^7n<$4x)ZWhEmU@D<_8DA@2ixHN&#!5mD0~72mSqK zc$iXRr!KQej_TAi;pWdMJ{8QEX=xYG=k~#J0wy!|p)yu_$HkMsyu3ao24Ke34i9Fk zYz%lEfLdD6>=D->U8gkmkzPLf&b`!M{F#z=IdUH-eh=w(#_31Um&4J!1R@r}3;rp{ zo^n>-eF;!(?<%<9SqJL*xBQDUkdWz-Y46R}H*dOF-2S03BL?C}M(+-A@< zT_@{QpIC9Ec0ZHF`B2?^+OjbLm)4_EO}KDZ0{c+}`!ThmnLAn?E?Q%w8by7U^3TEX zjO_in?fEuB6MCT=682{q3v#_iP@iEpn5pBgW4fvT@GP?y$Hi=J7QI({RZKbW^gP0+ zQD0heQ>@!cZXjer3`4>x-=&$F{2j9Aaxq~?J21DN5$XXo2@^Z&J+y2PzuA26w3$Ma zs&U)u2?TLkw_XHQ)8e<(AA`hu&$s>pFwzV~(R5Qg^PJFiXVxF}EV2ei9GtN;b@`!@ z*sPqF;zFl2n^5n-;re;vpr+~|;IC;QR)sTk@i@(0*MaHlEK#xIKYk`=N#PVBmYaOOSLu0AcO4GqcL`U?cy#2;Ki}UYaT6s54jnaKD z9z#*T&TVb^(NFo=Iynf=F6xID^}vsVamI)$Y?EsT?PJ`9fW<}YDh*;HAF-7>#G19$ zNT9^)>aZCviNC+SeGl(Q!0p9U(A;)={)*!XBj`Gbn%fU|^%L>ip}Au|ZdBKhdlFdT z{Bql;#RP+ccVcSD&+Wx)P-!7*BlcvIXg4?Ut`Gtc?`)w#{tUU0U~!->oG_aD@`-~n zX0Gcf(xmbWDlfJfi3x2HOK5S1bUEO#d+MMy`bj+&UL%AVKi*GwHEG|OJtosZM1<4O>5a~jAglOj>1u76NH`cw(LIknYY`I=><^ztJ$<>IuHuh62js}%^dA&J%g zP4Ls*R?=41;GMpC{@X8x=S~rhBaq#v8wHs&6w_~}?pruHCjXGTE{ts|Wc~5Ezaq}4 zz>OPKPF6@9n-d`_ix72xbT=Hm>PxpwzBW|CsK4asWD;W#BYj|(t@lgrp%Sijg4L#E zECc*$R~4xfhYjeXKAYSlM!4+_e!eCfVyh#Q2?O@) zSIsNZ#Q|HQ1KZjOo9=#p>W(Zv?O-GhyH#`*G_PkM8?8sen}r*vKqm z*AoLABINnmOGQ9%nb>A*20L@?$}!9BVXr^hYhwkTHu9I0d!#_k)w5}o4w7I|YHT&4 z#n7Jc*)k9E#lfe;{Uh^X9xU#HR|>NIfiSB0Eh6MA4O0$Ij5kp`pXUU>FDFfnjm}U zyPN0jJL;Zt1Vd8(Y3s37Z85krwd%ksVQx|SxAf12yILZgt-2d$DfV#x58$D1%0Q+C zqY%R|TIcKnrSmRNnd%tS-z*j3_OWsaMpk+9EmYT+5muz_aPt!xBi$1EFZVneB(RPZ zDy$ZIhs_rVjp@z4ji^sp^`KtwFW0$nc!=HcSIGy@oXqFEa9K~ArKL>rc5T4B&#mGH z{t^X{4gEb<$PzDoo5pW|>dU{MkP5C{N!k-hqVe@9^IuAK%yqss za=rwc7R8;m4HAoQ4$`dmcA+0v66EJob=A=>V{B85t=_fyM?LD_3GztFw+pZJx+MYaK*a#dgM>9qX`rQJRskdnBhZ}HhO@^4mZxxgUUKQfWR}JwG z%&mfZVZj1g8C`4D<3rLgZwFv!aFKKRf=0~>u^uhD?J{8<9T`}aoej5X2x!y6n0`SroL1umvckO-BF*akL z=nNHkdu}py_E|T|b>PvGW!pGZ0aY|Q|7FB$njsDR<723hOs^zO2%mY9c~$qeyJ(5Q zrg909-;e#2DMuI>vijNkuWR5~U-Xp=3u}Uw`U}*!IHQ>QsZWw}qy`PW9Nmuqtof3a zWMK3_y$p*o>JCb8o}(kbndLem>nQgmb3c1F*Iy10oAy%L#l;5-%Q!bAn^hvfKdX4GsC#u1k~)Kp($tkK6orlb2bS zhUQXweO0e23%~Cz{pe?QqMvH+<;XZmwzxqdBr!4*C`;V>Wq4(1qk+eKIwBL2i|8GB z?~BBP@y687w%%$srtOBmoV{0ZmzS0o$NBZ_g@uHqO_%)jr`KPdVJ%1eSw|Jh-HS>; zCE+SfoKT-9KM*H=9)Tn-2+j5P0;dqYt{FB|N^>ZyZi+DR@V1DnvT;|bTNg<;lVqKb zeL7Pr3ZE2io<1XZ>IJ=t{&f~WGZzQBebZ+zzzvQ@5xJtUgR<9b4A+$LEdH2%lLzTJ9^=B%-N=_omZqpCfXt2zP z#DIjQUknD#>Fvg~8yVWBy{vI|YSlf*T5hmSWFIw~3CI<$D{VxwHod+M)puL!&djP( z(Y8fJ6MaT2r#r;mtk{+JyxOrRNK)1kHUTgwa)&$KkmoECEPu)W=QDRlk*li$9& zA9_y>t$s^x*_O9RLH$AX6WH|$jy$e9%2pCcbaS!rE`!Lk4o1@KMvhCpX-}B zUrGuysCF~A#PyOp2Rdi&ebJ`@U-Nhb0-HQ_I~S|tWbf8&l6YqnU$0TZXMQ5lt1Q4Q zh~!>%x>r|eq%0sQSZAZ$$-;}ucfigW#Z;Iyo4}@R^JXH^|CGJ%Gl!MvZruTmP5{T? z2X-FL5-&WPR7fn)wI<}I)d0n7y{-bmd6uLZrekwnDu}7O;=<(&EUKDaFd2(hZp-O@ zJE1N<%{$RN0`~QgEtP0>pBehfQnA?#Tta;Aj_&VL_B;FcpDVB5(oY%N^c5b}_4&1hj$mFMxhKjk0aJHFUj|AauAd+i=YG9M6;Tpc6s|-owtt`u2e{fm zxa7Wsa=$G)zw#Z#C8v{l3`q#45Kl+nmagi5TO_bC0n5CZKRfftX|ew1yfCX>S7?)k z;ntiHv^57Z7IG#lq5s`3x5nlNYZQ7f#-~jqaYUZANp>>hu}z?1I44J6qVfihT6a~W z6+u<=*t=kN_Gm#Bj0&|Hnx$a z(V&~SUx zqg^8RYDV&HBwjmF>hh`J$1P){*{Z-r-K^a?0+&u1AU9>Uuqmi;ExuWhC;F9>BO<+31BW;Pw6ahL|R0;OQJ>r=eBc`WY*mR zwgDl%62G8;#D`eB&F;6_b^NH|rsL*e{Ax(OF#$+OXMgR)`E!*%E#&)mPHw^Cv8~IY zS83JuZ^1~f^oE|c?ov5 zWXq5pkd~lxCgfE}P!*`GiXrYl+Zis1duq9IfBUIT)9%RsXm=JFC*|1wNBYRASP>~x z9n0JWMu1`dzvACeYxsvt^COnq2jq=1=(hN4FnwZUH2^ccasiOV^6$h#?>m>*`?{tp zNH-{TIP`UsfMz|wPrzfsO`ZYJtKJaxZ#kpyFSF%vDtN0NMh?5J(q!aP{m;<(&X7sQ zYyX{~?)Zj&Ix{`x93O57j1pjXqFx33zWVPLm0qn9TXW!>d73(umlZgHE8o_8Rjg&6 zEq5B=d+~pzw>NxI{(sY~#{azZKQH~yOaFiU68YqU$I0ZFcrM``{r~^3+^zKg`2HVn zR}VLLCm(-_zz|>8fd6B+|NK9@|3~hg%stuv+xvf{<>mh8{-6I({Q19s|IewufA9YR zy95aW{tw*$W2yLG_x~*5no#|R3XYhb@nGF^uP?p2bow8G@>@?%6`%fen*M{7r&qt+ zDt>dH_Rrldw7TamqjE&DPQ658ji*G-7ENoWh+_+~!|b;^d+PqPX>5J=1oWS#EC07| z1pfCvvi1LVlAmh-wV~`&*nfG;ee!>Y-tGT(n}z@0ht~c-1^rJ!|5MQa6!h@y`Qu{> zeheCU+;$2u!&j$t1>i_Eg|fDsvJ_*u*1EIwBX-Qf0n$W2LKwF^X{@m@-xlCT_`&Aj zRiGNe|KK!0m^32Qb0j8@F>xZ)^c;)IpXt>XIM`WE)QI@<2!m$n;8hC^qv53w~@E*~+4 z@s?$p^3ado0Ts>Vgi5$N$X3~OooKqEWxI0Uar?&f14GS*c~6cAaL`tDDx@TjFX&9> z*QU46*Iiz=>8pwnvF+aZFU@&M?DL_gX4W(~TOZQT$8FT_3%mq~I;gf$FB4xR(>{fs zS zt>js?rlaK9d^tZJ)t9$|&QxTC*?P(d_}8ReZR3h@vl0_ptpGI2LPB@4UT^r_95>_BcGNR;KY14d$Cx851SYX^NWVrr9@6!!O#WMB0&>{K_QrhmT z7vWdYqu7KO?E2pYF?UXmX~xJ|Is%p_$|}#uT~Ql`fQ?L1fmWb8rGW4n@Ra9{c*RoPAET_m0SNeTIOp2v)HE($9=v!I&vDcrjn26n(|t5KORv^7H*UR zAsG^hxgU2Zh#H3;hwqR1uq%|v$@?b-8{U`9D_YkIEfnH+$H-0L8XmD@o(T-dmNsep zP4b`q?X+`7*BY>o7BfTq)mnRc!^^M0+n^=t5jby_g~yof=?V*c;wlc+@)%s8wA#{% znR9_=d>||Zb;w0%tdE?4eqVB}8#dp-Rk3X<7YloZX69MzFo^&16zXysmkzz9X16x_ z{*o_aK&T@;23t949R@6gIXRJ~AAz@1$d8eye$Sio7RbIB`%*zv`Z1VfhYv}}YKPak z`2fa^X;zT--Dc#50efgLLx7$ATSH#I1Q*@p)25g7tH#xsbjKI!X2edpC(q7Lw3^Q7 ze&!8elUB>vLgdZ%ymPL}Jb%}`bk}p^j=NnkSQ#u+Y>C>-5{WD(ocXE1aIM<>k`w(v ziFHg_ZOfXHWX%}IrN<(7T_zyt6X1wQvm`6+F-_s5@hfl-_Q7!=y~&0cEIn$ci3BW9QuYMVi855Uy5Nb3RDDN zf8RNxIemr49lh5cFHHZ;pBv|={LJ}zN->Hh7Z$g#>y^Q{VeGWR@#t>Gk1@n83SYz- z&!qArmX<5=e+|Qpcl-ILu?-mly{W>+@|X;x*k15H{Cu_Tn@A4(iQ9k1aus-^9+kdc zrQgl<_|0fGZ~AIg`L$a^Ni-|~@2R$m_*R$mC#|G-{C*`T5--$NQ~D>^#w%j~Z=sfM z^vt|$0Lbj+s%lAD6Bzd@K&(jadWA!GcnHO3Q@2fH+7Cs2kw3$NHa)M~rCf*ON=cFy z6tum6`_GoM@@GZr%$vz%>Os#>5C8G$l!HYze6=0$1%+<(dZ1Kyl2&)lvE%Vw4x38Y{^-F?({B${ltjpZk8yu?Mcid3Eg0o1d1JA{Y+_nYG z;^&+Qwn~rC;e;_@)mkMbou|1_0t~UuIBrP*7qJkBS`dH+fZt$F)h96!PI0{5zeyZ%e%Is2j=~3~mB%R+?RTY~Nsq2pielQ4o^nEwVMyxmchq@AkF7B=iZe2h+dSHq-sV1N$^zBrJ|*DbH;R z5HfNW>OJ)@rBBe+Vb4aI& zZSW1=zSc3*e#g^!C0VAI#q6?=r=z(HsD42>?NX*q={epAjwQ1HcA8BsMZwbaPF7Qk~ z{#NOct8lKBTw~uAiry?uF5iII@KUPtXCOmO_q0dC=AX(ldy`9_bgduEmJ-_w0^;}9 zrV!!XMR%ts$cQ@s8ut)EN2`}QtZG$D=UFB0xY#6{_pvpcxYc8&an(*`;|GBVNJ9t~u zTuSZwF~T7dRH}akS`N#@7~_)v{(8jA9d0x-_0%kEWpe}IYirQICZnzCM98vlReQ0K zoqaQt5b;&y@mi(L%wc;5dDJsO?#+eYDe31LY#ve4K?2*t-Was~c8eLdv;6s(!3t=@aA-A1Fy$PRt@NO8|X{Y?b}OUGO6hb3pOo!YOd{d0f)~ML@d0sBN(P=+cL14!%uov&8bIy74AJ ztzAqm%yyrWlfthwBVM4S?X+IbdE0u#iHt|1N0ZNmmkDX{uVxCE0jlk`(J=j}8?Hjp z29G~>h7f=ggfP7i#b!UIc5OG3>Q=V6dk^$J^nNUESrI9H{Uwz@^!jn61R)!iwfL#* z#i$3UH~H$RS;>EXoAs~tf1+{rHF=SVhM9uwvIH{;Y{rjyouU~;%eK^g9~J{+zSXz$ z4YE~)lI)xtSuAfytR2d-7M_0$Nl7yjHp?&4JnzfF z!teV-MzBxL;#0uZ1~OG^FwbSs`jTE%SC*g_V5VsF@nY`1H-@zlTf8bnrBNlmOT#p*AD|SlVKt zS$=~X(BRGU^704PEMhbThe>Ws; zx%-TDkEY+M=gZf0G|IRfF4+*Bt8b*pz$w;i+GEm9topFZ*Qa|o8pXeM0X&ha&KeQ+ZFm02wFJFGAI ziVp@?DK_Y{*xAM%s@&qI@xG9Lq9Kn)L??mTBA3;2uiMQgI#g{t2O9WTU&iI}`{E4k z7q`0tW*TP~IJVl?Wam3dc74}#6kOSD3usiC9NoVr82S-tgB-7ZN2IY@Ng?@`y-`)n zQ>!0Jk3Q&r7;SM8Pt?qRbT98)`>KldQc!Z(H(Gp(uqi7L(|ZHCeTl^_njF&^i9Jk= zUg|IGG48suc2H$z$ZHC;RUG&bH+ug0*Gi%diu{(w$xe%95JgPy&w~4o>2|`&ZoSrD zS#rwN;-SDfm}->F>eN#PBRv7z`llZzbsI`Q`jnb`P>+Hk+Xyd&9F)hcc&zcyL)2% zI+i?^LY$s$ng!^nr?E2x{dkRmLr>s%Q*(E#NC6O_jOPzpW+LFDvw*hgv3najR}{M^ zNu_*qm2qXQe0s@SB#nF6zU+ZOdZSX;s7;x5yO2`Pf#Hn2jKI0c8L**0*QLvVWdWX^ z2x_R$qxYZt*OYcXmsrftH441d54xus{7kv; z;B;e*PsBljs9ptjF?0P!OuG8|AN|)}!*|Ep%oIy{Ke_$!R;t-(s%4T*+z3u zt$ghSv>aV0W+x_OW!`rwG0nrcPKRv_zwwa>NaC5y+pv_;{&9&5&{Oz>K@74g|6Y&?)-(e)kHe^zcB?!a=8=f?%@w^|ol2`j zw{#@O=G8t8yyUqY);{DnL_Dexzo$^vn}M*WI5h#x46PJavQVvO5$exol)^4ZE%cuA zE#F4>^km;APZp>oN?el~4qU)5cA+{U6jHO9X2?qLL9h|B%+(KU=6cFZmxkuzCW>?* zjGEMajissATr)kE(h`J0@@Z&!J)qR;v&jlw^e&dXy+6WV>X|Q!o#5yb&;lHL#!w1> z?RB`GeVlSDW}#yotn;xmg4(WxOe(J_4OAVSnh7y<{VLvSe}V*5)M?#4UN1_NKeAc# zsfkuE^G$zLTCAJ${Ke~v3LzL7b6o&_&p)x`4E4}-dyUXjB}x^IAAy&@6E@p>cx>^9%&Cwlnw8$mK!!5_tsngbuY zl)LC&3J3TyRuzfaAh@zccft`Afi?V#c@HaciQ$k^@Y7_G27qE|M%K>nZ*L!0(6@cd zP8W`!ib<~muL`(X>oglRd7k(mH!xrJRcC#6;ifzLrM&Z*C2P!yj8r>*b|?F%fP`|y zM!xkUTSMHFIvi1AH6~*~2vBWiuoPjm)FoKTBkGW4&yuD2@LiE*{qvhf66c!B-}l=R z3~mhTCn7~+r$M*bPXln)oDmTxRPq>C6~jNbwE#CO1Y^|Q_KJwJubQM?Ss&GD_0`5{ zG}&G;Ly$fgI?FWyGBB85^?y-$N}U05dQqcYBtgwrpp5m(zi^EcuiqTSTuE8#au1T* zzGK9v=1gahEv%P(+vxLYW44=9Ud{_5zvuKm_}(zM(P_MN0roLj7jn3k>yuM@s-ol;<&fxkZXkU^EYaBmWUKeSk=TACml8O9 zEjd%jHGjrMbBQvGH)Kh#T7A6*mFe|6NVtp0J68f#4XO7?wnST(JzvOZ7j6>JDo}^C zXNw}98z39NX+ns{qd;+nYs@*5*iP5S@08S56!T{`tk=$d$?%lMBPI+Qe#{1#vKm9f z^4)&T#4%=@4K1~<*%N9FJkPjS!}{0C5hb(pQbiG@5o?#Kl$HIxNn;<*B>w^|-fl@V z0=j!&=VO8M$xXMI@>gx%Rks(4T>Gu6k@Gg|W?06Hn)LJ8!|jBsA8+jCSR$-jvTvIE(Wv&BiBo*+a*6N*- zLB}Zdp#!#|YGG>~{!Ud)KP6(GE4mnYjZ-l+@V^PR%b+w<#$4UojML#+I2q7PUc!Zg z0tk5_xTWr7d!Zv&C3t&YJ>||29&@h|&i>86%Gx=k`?ix(!03jHBE8L%bEt}sm1yPUA^Xbc99f_R~Ku8gEG~wB_L8`9UUp}d!Iq4Dt?yXRry{C*@hKj_@nA< zi$1aR{c=x+j0sT2wh%Q?9&h*~Z*p zEHc|9B)W+W&Ggd1_w;{w{q$o-LAOxRW5bR*8*H1NvxVrHj_Lzj1r6%n%91XIkA?BabQ}DAgoDHH@R1ckl7TcW?dA=$-Q3e##!wwIP2f zU6wi7U4Fsz%iJ@7s2ZQmWebr{=^i5WRV-YYy8ZDUcl5vcF(^fH+%d*mBEl~@bC_hk z*rwKA&84JxewM3)TDD5@Y<~I^YyzGY|%kno?Gh;_{^Nxf8Bx$b~X1Nn-_jIA}51trXe58LPUffWaI z-z!WSj@J#C@P{fiXREX`TT4tQzwR#Xn{KO#Y5LJ3pfu3mBDh4cJczSaFOy-(m8aJs z<@w>R{v{ud@bdU<{!L4KN3*A&S7H1JP|{{*pewqt4Qp3x!=mAN(Cw;GiJcs17t2dE zv11hUhT1HltcRJASJ2l#%7tsJ((=!9q=$wJY z<)Jpn@zDX0seX+Ocdyo0Qkh*Q?bjJhHKN*sNuY?gyy_3-L63meO^Npk|6F{5*?e4I zD)8>UtmU>Rs|J`+7gi(~ml?R4n&;XI?M4^Q4^B-<^YJhdWJl`GssVAAO4x+_1fL|d1-jNTaxz&%pt%6p-9RdOV!RJ=rrh2Jpcl2+6P zFD0t@d$7{PUEk`JXVur@S@Nu_L*nBr^_=`g>tNe{Ih2C&OPPG}T^_c-6vHP9iEQFVElOQ%`=+cgt-zGV5ekRW4|&gnh@ZR+*MwAp{^)BG zRu5J)9mZ$w=XtKCbroqAoozcWplz9YFCunq%3m#ObMGa~nZ<5M*xv4=Zd8p!4{Jce z?>uhL-&qK#%iyX~kdk+$KQ8aepu*)%<+pG(D}B1^uRtrlsp!0eo(NoD3TFyspL2%;UYNyFlk;h<>$zuJx3l75?TzNoiP1uFB9m<72*+)R@QsQT(t|E?)qqtz>T5k1@ceKYqLeU_fmk*I#S zu6f_^*3{4MSihCnP(mdEzT#HU-eIUTPrtIClBUqGj}zdSKk@p38fU9HO?nr( zZkEcx*XUUefA&Lj5%*%hNACP!YdO~hjXVw^(79oPAd{J^B)QW#>S0Uh;ob&L9Zhp1 z0v%KVGe)E8U5hhEEDfiQEw+Qe$k(Pl-B_la82sFBRZ z>PTjbhDOBEeo)R&b0_({p|DmKjibMP6sex0T~adCX8!CK^1@)rGllCMnLtVEaY-DheJm*bP)UPz9{LByLVehfU7H=p{smN>ldqN7aMERniYR zSQ=h?l4#r-MR~gEf?5jPR*An5+qC{r(nrM;hMVPFG#+VI2ccWwKha0lmr?jCj})6(f-h-W#z zF{>+lRPyp0w+@5E%^M9TwqChT@?42>TI(~hY*Olbj(R>B&I`4ZfF!Mvg^pm2QQ1(; zcs>eEr73$G2fBxazx4LFKP!ChSLou7Oqoai@1e%qt4fqL<;Q>ZKi`38*TbU|lr+jL zer6#OpN)^@J)A3glz0rT4#H7pofGp;^3a{$FPRAu6!pm?&?wjLY5>Q!+wmCD?2_(gr}h7pBu!j(5j?~Z2y}L0Vg%iL5t401|N|I zl?TtZH&&0k`nxelEd_mbo=x%bNaR3TD5)B>Mm8(6vvD3Bm%9y|Oeg;=Z1F*N_lVSX z!3B@$0d=3+jDDPqSS7Ajn4Lr-Zo@;!+Y3F-grft(mB^Fr4!ls8Pl80EG+t$IM5?Fr zghqIBNo}oqGICwyr!@L_T-%i!RYb1x<^X!PB*WEFN{x7>Zb*H+G{zT!IozDCc#D@? z3mD#6;bN+Zx29UHLPm%^KDiz0X1odz2Ad0e>GRvwpxId1W6{y^c zL$*n^%=>IoNOhaYwoImcQ6O62E-*7WBLOL>(>yTeq(8bC#JmajwlEwaO3MQgP}p6d zMi^JZK$a8SQjC`Po@fbJw5FEb23q&>7gJx0U3NX~l% zdxrWDd+t~D8k(#41M-tXU@JN#VzG?b@W3X*f~T+7TqC#@eh_?fu;rh<&F^LmaV5VM zD?1ZC?#-1+K5;`;>EEh>lm8M9NhqI_f98Y#VZ=g)>wqe&`z`r>AOy1Toi3HUtK`x_ z44Z;IWz!JL-UNJ!_6WJ0DCE*a&-yw?M0LhpJbc zgCf+;N5_wwl+8zZ0+_G-*a9JzYG2={`Cy>}_%@;YJT4rAnQ9{c*z)fYk*55F)Rq+3 zH8)5AF+Si?o`E(HajTrXeW=RYQDB!To$zFv5?Qkx%-ztEZUM_1*@cKACYz~q)8CwIM#m#!kb4hlpfvT*@cfpifshvI z*}l{4Z6C{I9@5!)SBKZDPky4Cr6{4o{mZb#;O&3~GdGlcsXPbHEX6vY#f)u=#2t3& z0_76C@8RZbfa1|8v!K?dr_i}?cDpUl`MeyK^?5{|f@C|*TkI11?4>9qkfq4YZNy*O zZBNw-_-eEMZ0)TA^7)yn?kfr09>|BI-P>7q$K5_EAq%rvT@rl$qgiU=eKW9Tmr*06 zqy8vQm}HCHG7*zY&Y8S=A zZo)B*2Gx_w-x?)=h*hW{7TGZ@=vywJwXV;7w&h%k;B|iIOJRNbE)wTn@3z==o%_u5 zwbh40;joC(R3?{m>Y84yVv3gWN&T)(YHGS`%NT}j{Ceh~&>4;R{fw7Vs6(cG8git= z!{Xz-0o$U!!WG)DGK26x|L$t4`A2QOS@8`cws8fh&Gbb@pIbj9ELhZ@n{ifT@isK> z%_wjWa3bA3rU4p)3|Ep4Gkgm(mG0Q;Yfct5Go;x9<2=oq<=PYDk$q8_o^eR$VGZ!x zg>IVf?Oe1h3wMjY{cV#6x5_ieVPNe zC*A%t6Ve@vi-q;@v@EqXS*x!F+?z;SS%z!vCKlg=m?$dT>@dC#4_$`4b?k1bPPNJa zSNglpSG9kV4^mFEOHZ?l5AK*cH~t4BL(DscQOFzia7ZMu^b8n=N#AQSy$NP1EXz_; z$k-03%z~^FXzo;v4t99BV(LViooy8Z8haEoNOK-OH9pmft@Byv(Tp+!#@9(nN32Jf z!B#*Fb9D^K5WRHJW*Ee7{7YoyXeep6e(+`$aqAC7^4T^r*vkO6RUT7ohG>8lj6hsP zq;nUk=<~|-99M5TVMIZFyti_59cz_JDP+8H#3D^T9ur$~4Jpx3s5<0OqlQXDevPB> z>q+ue|0>u>pVP}YCFQ+A!bcjBr1rt->95g*P_w~V)zCe60zK`P_Mpqk6p8+K!N_1R z0s(7!OeG&??FO_pTaP~v!SSuO60CUV5dMY==LW}aI(J{8MN)P67Gjp%De@OGYp--c zX`r53hX_O(g;3?4)g2tUhskn@{om}+3#$0iTQb zr34UtkH@R~U@bTHBQknvCMzo+4jEOdM0;A~u`2^dc{;ijZ#2LL20+pjnu4VKB?~%} z(x|7$@k6P?Ez$zyck`E7a(!4@TEN>!VX1dpA&ZZfUec3>S%J4POUK2TBu@#w7Na<@&GW(e9BB(fy`yuF*?@Ni0MwL6DODW_q4*vb#EhiVW~xyC*umCNQ}9 z#sD(vO#gC41s02L!`%sL2m^?4sh69L^D~HKnLxlWc?HfrRN^dr|Mluh#|a6CGJ#hu zujHN2FzeqkO}6zMHOl^+CRR<00kFy>%sOt5ewl`oMAoXsWhH#u4nER+5BT`BIdaf&8`Win@BJ$ro@TF6)>Vk z&*=Js;g$s^F3c2WDK=Mf^jYTO5QycpEISg&qFzTW*Pfm4`;U>ajvMYQQ!W2Y%!qf% z-#+zad>Dgaxd$VqC`Hld9~@4kn5^IhY7`4TQA+L`>r2vLDI_cSN&*jEflm;^!~?|_ zIv84coI|JcKW0&TLSvC;9(MpV_Nm45)ve4#u1<*M3MOuo3;U$))3$ccK$hA)A)s61 zIM=FbB_DhJyXS3~BwF;cUg`){M(96$7n}LeTCMS9JYPkHcQs^V!!#oEPmja^DYPO? z!t3(a?1|6n8J}J%%nO#;};LO?<0-eRPp31tu0#Wm=08L1P|P#eTYYY@L%0B(TJgw zl1(IWFF`^&%tEHLe@oTvW`pdUs}V(8sl`+8!xR*ivRY8+e_Y!CLk_le*tW{G&AHkc z8!C@5q;)yCI*v4JFGbwbN3CsCmSyRFt24a(wDjdoW<1D*qX=`uFj#~FEf5!}O(*L= zuUc(T8n9gnm?i+n^REX({kJy{G{{3>|2X*G&oHC>3OP)*k}$?D4Uj72(=yN;QsJ$C__W#CH%e>}@* z{ye@+vnmtV*2F%P>f=#agAlj!rzR;G{nLOY-wXp4+y*8>;Jcln3(3k4$_kjG^*;FS zOf>Mne9|THwG7gQY z);3MNYVr(?=WZqOR%S&Rga4^C8nOsxCYNhqrOmSPobDXTqgbymlJY=m zNt+K*Spn?Cwx6x1Go^~|4$m=1Z=Z@*{wGeZ^joC&=(uM_95SZRGZ6{1)No-~<@$)k z#3MN@e%C`}{B|}&&wkHaT%&z11Qn=QAFy%$cYS;taVySU^+tmMCp3q{ zqNP<%97KVcRJfYE7jo&QbVq_hhf`2Ihl1=6ezqsvkBK5J;ong zZ79@mcG5FJ!o(7M2f z>DMm|3yUOgH9h@6h(IQu{ia&4(WLC238`*@BBtKwfL{Bc~vM7@Oak7?} zZe^i!@bQ4GW!{3m8_LlnL9M7rDa4Bii|VQ)+v>jXH5&JXx!Vp&Pos-4a46clgX^SL zMppa_>jCwz?F_o`#=b#em#UjhiS7d?Ni&GXSXbpd)}MC};(GHDp`+Z|If!HM%C&|Q zZdtP6nNrJuQ63>$6}$smyF7w_>Z7vqsY*14!5P@^wGOL&4YpbK>BfUKiStH`tKCXM zK%b7_E7LLWc5ez-*1%rX0mXpJ1g7j*E zCZ6^d28^PCi(JUZce>mSgwE%*VI^^KHU!{kZQkk#mDl~?>q^r@0`608>Sw-Kj?@18izO)gt!fpE=^Lp*W@TYkPIBcuyb_D7w-e;*Db0x-H(^UJhWe26u zWW)!gll-3dKGk?$Z-SrPcw__X)9jiER&pKXN!5z6^LvSc1bdAx21g`V!6SB-e*AI@ z;)%}tT%fk5#?pZGe2!4!5xQlRd{tz}Y&2@JHtOQNVXk{hqh1?W9VKpqGmn&_Y3Sg1PN723`xL9nkgVeK;0E&r7TEOnhgoJsDz z#F28#f3B(2!|Q#$joC&>bV-~ zpN(m|#Ci6s)UiNd2N%P1&bzrc$FCaGVdaAQrZMRdLUr+m^H=62sVz>b$$#EH?=mvA zf*FK!zpXyUAV0I{fcFZ^hB51tRr7524@D%*ze7)dq*m#=Vp*d$IcBb%-a>Nz!7TbW z#2ZrlA*rG~ZC^i=durUENU$JfuP?SSlt0wz{;sMDNXGw}fwd5EKRLys$8x=b{iTj`2K#dVZ{+YQyMowgn_O zjClWyMXd3QmwOEsZjE+QyI1wDP;*UnB~p1hrH|rZWzLvER&+5dN%{M8p~XA zSzP#=u87S10>t!B7D6k-rY0XtXI(y#p%T|+fIPQL)hMD>|HbN)7SK%NiDx6)wF7t0 zXaZx&K6oji^E&pxX!%%hfKg2!aF43PvNT$=D*pR}%PkLp7?M&anP8cb4sMVgOMm5f z0s6_F;}N=3=i)Hk#lJ2n)4Fl}{&@eK6lH#==HQNV-Zhknu3)tAY)dkd%C5 z)2r4V7`K+1+S%VmRSx&Zb!5Vrm8~R+7fq+Rm*X9W`zq+iD4(JlI&&IobUzBe!max@ugKzSD2XdEIo>-c>{$@|w!a|v_NF&zOfa~{z z$MONQ=Lgg67vEO)KXOex;jk67_{N(4q%s`r`%RAf)T5Qr2N}V0N&&?3_nfo!2XJb8 zb4q#*)~;#}Q5p^23ri_JB4#!{)1>x_;&?$#LTd@P;wov&HO zG1C*_%MaW;kE9>I4s3aLrQa>}YCU*6DC+y7gTH_K!`7mC4>VT>h7Wr`x_S`tl^uu?_bqc-HZaHDrqOpL!0UA#8_>40sOZ_%9qVpydz*S+;k@v_k@0tZ z%&VH}5)*6CciF$ZWKPohb#q;x2w!ym=I4g5p}%o!j;>6V3wu3027bXNRE4}`(^48!rvs)^?f8YSTIr}wg_MoL144VfBXLF~54`(k1vN|hVv z_@nvbVUZ1CljEGK$)u^|swME`Dl{#U&Gyk3yVn^MhWtjxOI$-~$Fp%xCL#3I)9hPL zs*9I=2Q3!9K4s*la%RV5h0WNy=uI_1xa&&F8NYrurD${anp8C#64MhQ7g{yW5KL{ z(=c+3Ke=k`mF+rpBim!1Ry})iOr6D}Fr`+fl@bG6vtR7inNlNOlHyy}9a7ZZX&x;6 zMw189ug&G*KxNzsSZ|0_(H6(v-+o$n6sL>+DdC&D2iNt@Z?$M#kmu#&9od%CowR_H z!@j?=2+8hV+V3H=zS39GiY{Qm!=l%&uEr?2lq9Gg9Etn>;H@c%EcG)gNzb0#Im3S7 zcCK*ep1h%+1n0O%D&%mE(Y^b}IE!f|SV5(IY!m+8V1-uyM3K>1WG_9QsIJ0Q`goF0&eM$eZ&e}t@9iSji~DrtF8i@$Nw@7>6(e_#$FNSN zdqJqwpn)~>k4;#eR$*4q_(KsaAXYg6VVc+XWi~S1y_cfB??107>{R?&0_V?~OdRYr zjE?&~Ea(V_&x=(XuS z`_j;N?)MmlTB}{`yP7x{m7Z}Wjd^!3Y5<(uNDvMjRjnMTS8#b?3PtNmbT{5#+kKE5LBHOs;*o;2eEn!eFm< z^{R4$K~@@!=OMe4@3pX^e!Ehu+{VmARziP%CBs8shJ>!2#Q%~So+&BVzdKC0tV=ROgl7qpE@SHjr93LE zYYKo5xyb<7s;+XVZnP_pAYEW=NMIqmIXigWc5|LSpg-4xIyW)tWZi@bHD>2nnXg=( z40(*)P3zP;64ljo`xFaXA;I;3dE1{L73sk*tK9H>gh`Av!K)UOuBE=d$?%Cx zVQ8$dcdk1$(4WA!ZWGEifR~5QKe>M`b)7+G*tpl)>IFv;r#3U0v;=;` z_|3{z!IevQ&UEn#8HT!oWaimWyNR;LBe}5}bskl$Qwuas%8ggD_^EZVavA}WZV*#N z{uNS~ZQI!nxqhUfh3VNz+8B8G;Ps=1x>FL5?8idb97j1n+3Ldd!b=Fx%=Udc*c;v1 zq4|go>9u4=CfjE)PhusRevF)gJm0XcjROH!fJS=LBpY0*Wr42Mw~18|V46ofD7I&~ zg|pAqUE&G*GN@oXq<^QBLbbkKWNeL|lme2AuXd|Y_ih#FMwwLj+;0wuzW%cmQi2iC zy;m}}tc!{3JL*+H0K%K}WOH6$+Tu)D-2jeLRykJ45We>p(i!Mcwwuk*Hr5^0K91v@ zX!P@L&h)SUW^{PTHYTJ`NeAK{6kREIeQ^2UYo|qVuY#&W&hsAupUO|h zjZ|vfZjJ6{OU)adM0->;LBy9+4~JSG-fwMkNlSAv6CKhR5uA1QAOSvSA20=xl{n5m zxJkJV_Q`#v?#z(rwbiCnDOt90#OtBkl`XttC+L=4o#BbiA^bBd{4I|R9Brw|S*lQN zJ(gE`j20+cMVIAYzFXz*L4`Ox~E-NL_K9)F|*7yg#@&e=vltM=@$)w*|_! z^yT6>n5~EWSbX)qT)@ObIeSpbp4o^_6y6b~z9`OcjM}snm^^$Gyl{x_?-AkCvu<>9 zDEADn|Cs{;2_MLf4f0_BexK}GSBzsluheAaA=?9G?NpU}3kc!SY0>nZ$0(13!@75 zT@x}mZD>>4T5IbT?mS!ZEyd-}sJjiScgRC3#)`)t)*RizWYfc{x7QGVz5zl?hmv9n zqYY!g7rt}LERQeupZB|rzts_$6Yayzz?4v_lGV6+h90xCb^N4p69kOyei99-wWYe( z-RP-o=1q)U`?ez_eZx6yc2{PP_U5tR3y%g;env3DstfHx>;{fb38V+P6Tl7Hs`S_c z4V$rBGmkBEzxQoiLG;UP%OlPCYhZ!7e8S71W+$dK?0 z@afD7)m7NBpl1($i^$9lZQ}E~x0Onc&dsZ4R;XRnd7Ls5l*mENsR)K=r&XlIrXIRC z_~_gmpL?ghzsEOfr*TkI5&5zkyDMyM`NuSz}q zsAR&>*FecPdw;tEPJ9$BTOLEount1Ib*(Zcz>h!LaC5JKV4Urh=^Ud97Hnv{a?pR> zy5C!@AbT-t_CH!nAtMjDOV`;Pu=$PWV74!B9$iYY-(s%+p+4R2{UiAc1mv5Q2_ue& zhSyQoVY>auyJ=+OpUTAwbLUhlZlW(Ytqpi9n1y%k&uQ9py*!AWPWm1@>BMLr$QmVKsKlar1;;qe3 zPo7^R9ne{_6e{8Tx_>KJdzgBDuhQ@p#b7ByIJiVhv$tr~(xQH(szAS^>Hb8<(jtB$ zgnpA;Kf+}Ovq#1zE_tp|+A;p(DGa>krCixITEW|7M)=mk)#BtJQN&6$w&Ra|5Y1WaT5N3d6uhqzt}c_6BzMW@PSJza4evGeW$FQ0&+Ef`OC$nRl`vdc?i zogYG@I!kaj50X{Dio-suwr~}1ZuVsr=oI+bHs%>vC$Ly-Ju_ZUtEOqtP$iRldop|R z&Op?SvXw;#cRuZPioY=$@>8F!-E|AuEj!~^+nitXv_DSTEOLFd{o);UonWv5t49ZI zkS#q7%j_@6bPXAxuD+z>d)A8Ej`nyeA5SI$cR6fLYCM!vF7Y4@0Kc7!Os(V-b|v(h z1ZP1LO}&G>4mC=j%c(a`2tW9Gf0LMQ$$`C1>uzGSRC$?QvBh`&(F0n$V8R_ns(-?v zo#EWp`Q7`gtWT-W-)ZE~qu-bD>siaP?hW)TsqDEW7bzD?ov4rMi5D95eKSwrv*y)n zZB@149c|;-{yK*PgOZO6%!ZanoZID-VY5lHWxcbME_Wh7+o4M*tJkqEco7Gi6L9d# zl0I6>eXk~3%r;qbsk(;U(9#XS{YLTKYwf$$=E^{pw-5=*qABtpULnhU$ zY@p@H^J^B2-C7!gy<}w3KxQ8QJ|~;ht_yuhXDtt!5b$}*M%ITBPq2$Ts?LZEyjhT(lK!01`AzY4Y&WzN6nU$!0v^9E+1Rf2MB>)X zecm2*QRLQQ8{53>$QVr@6adI1qdp!C8NfJa*VdHt(8;F4l5wt`LF4O?6JpZPE^)Xs zMoMPFkzXDs%rDitw&6!x)m5IRX1p|k8*`0ufcW90aqZYFHMN}@D?Io3EfYWphFOcvF9!r!Ez8?=A!1Z|dQG6(neGaMJrRRS%px!8M;qN(q^ooVcae z61@ps#m(7DugOUw)$5D~)YeW)<$E+>My0)xfQq$k@r4=~+nfAC?_B63anINeh>hl1 ziebWHy}a@v9r~oJkC!*CNz;k3!Xl@;Z-Q7EcUVS}waaw4ISt%65XV6y&s$tk30z3%874JWtoS82i|G8gYi-lso%Ai|P9}|b zJhsNk206iFky4VQPtLUZ>%me{VI%ijjwHsc)EK3YDhts{{@NUo;@YG%8iiy+%W0f^_wUgDxU8v`Q#=OpoKptUZpFylLFSFY(EF6ER zCxT@cG?m)h)WmNf6An#9@H7g^#LT@04(pGAzs|yATzltk%Oy98uMCO{2JHow^lEc zT(#{QI)`T_SSuKU2?mZHhV^wBDs|Zg@k02O$m=7oGOlV2^;UXT)!9|opPg89B3L3& zwJs^eRj#3Ot5e*G#Z| zBS}sV-59*ACF=_U8fl#2*W)AUOamwQrII3EQTko;g8aohSOR`c-F_WG{UTVsEmaS} zs*LUodlLDBf@k95IWi-qKX<8(He2?^t(APL6xa1#79UbL!5JzzKH?sJ)puJ_*wdUH z=k}dn*`rpi)z3=vV3Y>04%!iZd?>z(RhNde$&V_pGh6NA9i0C-C8F9Xf|G~MeqpU@ zgn2H|Jfs8+?{HUtjy7r1MzR&5(P|5Ij?rb`1SfkNWMx}-<%h;~n8>!#Wx%2>7^asV6OdF135DiQdrH+q(`}4e(5rtNzIm{wd8u53 z78DJB04dO6uc>W+)sYzVq6C+%rXz#4OFQ+vBJEKcPb$CvrCV!@D!VBl0$g!1)-^f* zF1fW1)Sc_sZP~cG z_Owi(d36F3)ZaG1w$I^9Aa`HDZIctYk-)LbkM@z4AkXrs){XRu6Ge zQ#?CiDYrbVYki$-Jy~zzxzl}nt}e9qz4?Oza_v+10`=-J?hguP=G&s$cp;39Ot7gU zw@W7V*5umMVx^d%`hb9t$2<6j7v$J^KfTbDy=Op!$2O}nqQV)w0*vtDb-X!AyMDeg zHodiOi}2dZky*c;%TF(7Of%D?FR0?Ba|0^*4i9lp=alo}m`0U1idD`dZ5d zHw~M_Mty&<=`8<8b5O$J^Q?p(jqiH!YZ%`@m5uk7c0WMCouP!2aj~*l4ss)O=IIxj zdXz@AL4|o%0=a~@g-IrPHIpy$;=MsZLwS0vhHp~_?nxb0N?Mycdi7B?-v)XPJaTF7 zX81#UpL?fDi)s%KMvR<>Mz@h;_1IR1UD_M7u0PT=rKDc3zRF73Q5o4Xez7(|JLyOp zbv1%5NGyKds=4RelYuZUUf`>@H3HE|85mfRHCgIE&y0TDE%LJ{2Q|6CuRe*QNYtf{N}-t)h~+FF}+{(b)UKTv4m@<34lY~Y8ckQMahJ*F#!h4%K- zJ0x&C0*4036hw}rp!R1fGJ#4$qNfEZ>_G$|$Vd`~NYTJzd_YJdQ9%u$z~F#Clm>F9 zQo-vz2}oZo!tc+TylqqWMejqRi4+V0PkyiGnRZt^L7j^C#}fka>O>O44~O_T9S#xX zg9fNEcnk%Dz+!^YsP|}RR}GFt{(qs}3@w?0GD2?J1lIiv-7$D1mWo2dQ5e!kjBB{= zM-@B)g_c(*%6lr1(0i#E5?V!BSf!3Yp$K?&1QDaG3KB{3R8XBwAyMmWO}<31j>ae2 z-+0FCB<~Lhg(jl$C^R045xJY;y3bM{fHtA(?~B`q1PI||G=&1-pHLv}Lj^4$5V)DW ziK(p_9OB>rH*$D4j})99bF(0TL=M1#9+}RCjtRGE7dfm*_(i} zMBq_aKq5d2{%{1-v?eGNMo5alLPaq+JrW>5^k)KOmZ67yawtdwen#Z%5%XbzXIw1*TC%yrTz2e7VfegP*UMw=aO7PfP!=!A~Ft{}02@Y`c(;^1OkUFJgLw9^kKZ+rR8=7MJ`| zp0}>?rHnJa`o-P3e0fiA5aLVurZM(wm}VgKQ=DHN2Jc+X?ApAJPEc!pz$EWkZnz~?}%^&1{wYO~kH~;$&6bz0?AW`HABtOxtgD`jsnuJGS zL3;vlAnO2}xHu6@^~2!FqSXY0l2;aHcGa;M9}v8XJO=Og4if)&Xg1gElJzVK44S zB2bCK^a2t~prSxjJQb%P{)W&<-WP*Kt0=gbIl`=<_6n*X3VI&}L?K~tDyrh*Lghtc znaNfQQ&9*C#s`DNP=Ww%YknMy*-g&%)i3He1S=X0~1J6lb=Z_lc9Khc_dc&B3!bns0*QjfN~IFEyfpvCV>Dus3?oXD638r`H~1Y z`9G!-Bs3ccfyKh6tAu?EHA4}QBB6wtBqa!eLcsvn#QV);Emf4=02(Y1h57)qnmP^x z^a(_Xn!K|5UMdDn5q0;59gRm4ghzIO8!9_HnX7MA{!=q@H-ZGH^G@p)w@OzRe?~zBw&Q|O27j%BkcIyoV`e_aHgzqL@XKygal&70(+=<3`KwDUo8-L z3rJIWCQw9}AY%0;kZ=f!yz&fi0T%khA!g!KUU{Pk)s+8e0Z_n+gun=s$*#LGK=(uh z60M^8mH;DEkm8D=?1l+j$SPWYv;oQs8|=}60Q(yzKrvBNIg`=yCQz7zJed-NMa%n8 zDe^=hO3)-A#;iq?KcloTIsS(09bX2n-qn8El{aqG*a#ASQht}jk3jIlqJ=`urv<7g zgF#?j03B692m+a?q6#AWV~CojI33$M`?;?gM{#ER!O@R^7Z~g8~@j;N$_6QtWi25QX z_#Qk)VY)MGdn*x&1qm%YZEbncVK({CFfl7;O{+&Feq_TW0>6*%rrtu{^o&ifNgBd6 z>CKC@6+X)O76+%NS$IS``|a_pwdj4qIYXl?(Fhc<{CtjrZ_n1=KaQK__zggC8gK&u zLQ+X2VAcSi5)RLjfJ2A8CHhQlKdeFiZCn3wko?)^{VyB$eG7h-asGS-`0(_~3G&0!v1JSx3Oqfku5+M}XhHInM(D*hL1` zs_nCG=as*h^-cQVGg;s4Nw>S(o7h=F;M=WW4kk_z%P-}(H*vChb9S)#t5`*xAFyJ4 zQbUWPK%GL}H zH8+O=n|o6$Czz3r)`yn(2>08sC44pqRP(b*eSHyRiaM~Q?fz_*S-yHP%iIVHu$s&q zbc>c@^7MjYE3}> z4P5??2fRJc{d*$*zJ$MP15F|Ohj#+KtjoG|M@ing&+yf6aJY+0tbwO zK;EY=O56Z@UAz%^GYG8xf9ySLciT3W`&qvNQKm7~>JdAS_Na9`j-n)P{Tj`dDD4lH*@n{oh^-3y$qBEL zjrVG^vw!F{7uCo42{z=&J9Oa!FXV$iy`Q5OoMDQG4c?y_({fj zZ1mKXaSWtzIh0Qk_6WGWEu`a6Xb`64i0}7K1&}dyr6a;A=N?ovzM+W9{b0N(4u5j( zv}*+25q3As(kM&C7XUSwdb2E+91F*nr&*AC3yxwFm@g<KmWy@b#xZM;$lv1vR8T~f(jHBFgNn-AjkM`FO-Ms6g5H-SSiAA>^KhQ&pdBqVS` zN}GY^h_lx-TpbDw<-JRHw*qpj+NEih)3WAeskZc%esJSspLwi@*Gu zkI|sH&=l@&$p+0?ST+1_vU9-%jk)w;cA1bio|K=3!|Z~)h$SK|HR0;a{D(vk*vFtt$Uxuk#1^2lC188v z4%m9%YSv_A(s>+SiNL)QFDZSTA49U5M`7(k1ND(FK=f|1rHJ%}WmUHbH=$5n`C>KD zkYG$eQmn-U$mHHo0HQSoG@POoF%UP5KvlkzYxJp5PkwNhBwqsOBt~C2U0TiJl>%n8 zKLMR`6~@lGPWrv-2~*h*4&4Pz_hc3U#KbC~x2r(84?YyC011yb(?^@lLYzzSN=?UX zU@VMcf9nuycutBo)h$c9sz`T}|6caYWSn|aX{SalO8xtyOrs2-O#bSdb(8I?8B{p2 zEb0LFRj7eVy(^`*x-}h_&-!u&R&%rfT@7}^1MvbJTlg>nTzt1fd-gT4t6)%ICxbw9 znP}%!$yJ4&#XiEEr)iY*d%YRhMA@VZ1g0!|MGhh3 zN?rbVl?Uv)HN+nft^rV=S7{5{^?{o7|1EUw!rOX`9B>1C+_ZyQ*hw<~aM%XnZe960 z=e>qa6|(ENA#ZR4KX@ptwq!ED1eXkqLm8}Jdd)j~$y~g?y}1kKv9F+abMSw~*>-8R zn{!3|w>)s6ElUz+LRBP+OHT@$KZ9cp`T<-4q_?;VGv7f+a)wSyn>4RhakFurKr?u7Jl)pahow-9cc|?{N86j{$v7ziMhK@rUXvD{H2O)}c{z zS(Yvp$x=7-o{YTS<+jGmjeA*y>ah$6TsN#6^Q2$LSiqsNLPkY}XD-+{msay|@AdF# z4Ez4tw< z>Ui^#7&cWUXoS_bLD}&362boQ#GQuJj!O##USH5qVKjWuEy8f<*>6zS)8KYU0>^4b zaR_Efa;l4bo2{-6r@7TAjwto?z2M@!KC1KQfsOxbKegvS;^cQ79zNN5Qa%6i z_{;4_f1dyN1Ae9f#n>(F!T6xJ7n$-ML7>^!*JJwJ?@waSnYmUo29nX;JuwJ{uUXhr zlU$;8Ik=QJ#In|w@z$5Ku{RwnlL2K$?bSF&mn#{gx06^@#%R1yAw4TEY^{5Th}6C) zmB7|Ds8)39`C?do?%Eu+=-FLjm=Q2;fT1y`|*#$h}L^kn9z zmR?oO{Co#X8jjO=`Sm)YDb`peT1m~Ttx&!6s%#6?(n+N#6`AYXud8<5sFP9Rsup9T z_C@or^Y$jefHn)6!h#r!)0N3MNn@)TCuz!f(G&aqn0%|R!-H9H>bF&hS_9jE>+#2<^EukR#bYr z$+)V-bp4dy-&tH4+wdlqClbCbNi#!0g~3Eb2Crb^4YDV8d1^R`}d-mGc_~u+O zc>(IsP+ol`681&3{4!A473zK}@!M~e=eoS+7NJ(7!HbLNTDLboezZxeq9$ge){ZA< zL70HEnsn^Y593|wU&&>%N#_}=GNkv&TSUG$T>^n8S&{87>XXX!q6)?jpw`;b$4!v^ z$CH}K+c60KDQT<<=80D*qG%x9;PKJuY^C>#IK?x7W9^!-%(ndyPaRe)xG0RqI3;L?kQk63 zhUN)B-8RW41?^tZuiv=8h0VZ{>wCZz5hUDDIi-K$KWS>2ie@ z`2_D-x6ULlxFNS=BJB$dav{Q1EUIaw96A;&}5$Avytp;Vaz-61D7`{S| z%5mA)l^0chQz++at%wo3aTavEX~&*pg`Trpaq;ighrIo}cADRzldgfrliJr~bvwmJ zKyWbo_Cfu1TAko%2>-8woR#>W-TMS%U_9*0FQ2T5|MBNa{O{4@r%(Rv$tS>N<>y~K z{a3kKHS-P`l!18Pj~*j|K|_+Y24Q#H}oOZ;d`ox7Ixuz z`pX7h_M!b^u=d8I5g&t8a7ap!w6W7a#<>^K{|Y&>jhCkY3kB={q@WF?zLk zI(&X3>FYW&BG~_I?`(gtwm$*5FYs0yKi;amoXdp`{6K6Y5B zll=qmKlY!)kf+1Ho$nop=F6jV!{vCK zIB4gsp9J|%u$h{4=H%mN@o~88eWSU5Wyj?VQ?nbZz@dK*=^rgJ|EYdf^#AE_@A=`d zyKsKLF>bm4Z~MuYEBgQOmrox5ssI0gpZh`;bdua0fRef|_5+}a&vE8PL%+YIn#~UL z3+!vE*|hm=5#AX%!=o$?AEsD>9ifkBi45;A6J%F*8+$(8E{HWP{<4h?2}XW61zce~ z_k{vHirxHJn7*Bci$wA5o7nYTiP|%gGxx2vQH5YncWQNMrhm&k`vMstZ8YA!duKQ9 z>mwrHfY|lI?)+N};Jv`gdh`iVry6bW)Ki=qjrakI$9qOIJ-9A*EZXBluDn3}&wu~d ze}b74q(w5`i2w8Xr9MkZ?-#H_z;;-G(@OeoS8VTm#eS=nnr&#I4HNk zzbd08`52Q1DFP}Y2;GI7#vpjXiomd#?xvpFVKTlb!Z+Q-mcERujn&iX_R~`166(bl zqlJ4NNqRWOqk+5PVH*j7{HYSQNnKmTn9#ho_4_IT(DP5}wzq2oX(WvG0O`>d4~Tv` zw5TZ0+aLiNWC2F(wqdiEL8}|zECSswcQAlzgM`0}S%@(x;Lae6iXwxPFv?&fy1e*P z*diK(HwEe5Qc&Fqu?!RDjaeXo1xCD2494v_uI0#7mXM_*FO2Bp9l%ZjfB3e&vW|~- zU>!HaA7ADiOob9z#B<;+QYd&l_M#9_pfTpZtp=#Hwy|p3OP4i0N@QNsTOT4fC(ICx zx(*h1{SuWf+~rsutiaF7o9%~h%Zm=id@2Lm&70{5Mq9-}{9f}T*s=-c2nKgYcv+nnQfv7oR2n9yHsc$^?XME5~pe zyVX_YwlNraai9d#cVb)g#Y2pkf$$}PJaS|DV^>P|oP{Ehm#zRmMUZ+xe&#JpiU8(y zL3E)P(-8e8R5l=|=Ai?A5li))aI)BzO^(^+f5xo9Q@6$eH*bCExmUNhrg=W&(oMhy zafNNe)5vw9n_`{@6rp=9?bKh2Ie3GM41^mt6m$opL5VBc=%8KobQPaXmUueRN}mUtPo-MBgMZ3m0}Ug7MSG_jL}Ko!#gkNEa*@U_^s2a8*5}PL(lnKJ)_bP zSR>ma+zjgB%8a>@#)`kSc^Ye$=Z;-)jW+B;q&QX6}ufiRtg3eX^WA! zzz_}q#QSNf*5DFm2r7?~BOPhmU{A5#r$vmo0Q(O7RMNoLUp=M0ilwM-zV3YQ5{$py5S~#eNXL+)v`r0b{HdgZ+~=2-L#$ zcaonO^62M`;yJ_2_B{vWv3RbDSvSnV4kZc~7LU>4F<=67z8el^-6yg)=NCc zAqHLyI-pe@vJR93Mmty+sO1RO_n0>c#Aq&qAVj3~>lJUo7a$d9-1V84c6>ak12dw>H`0s>>9fTIx93#g9pf%?G`JOMQa2O;@)lswRL43~ z&xQ3p@V<y{t4pc>BH%yp#aGh3ccfrO+gnGdWRyorY!`PijOH& z3)KKdl#}#xA;Bm%zE1e-=M=GXbsiKfvA-i?HaO@YO?lV?FJ>0J-vG}|FgP_91&!R? z?a8e_%H1jawfNV4+Lhkzs>`EllS>vb$WaG+_6h8skg6DT!SbwYr!23@U(&-Di6jw4JcfpRsBTV82j9rPnt%}+MZQOx4o_PHI47gQXR(at zcm)GWR_S-ua-uiyCF2krtg;(%fyb08f2sWxpd^2~#fCn5sZr9 zTk+&4jnN~DO3z|g@4erq$Lv<#203qk|Lh!hw#D)ZN8yP4~wjUo#?6s^$xMd z@Qs(UM}>;R3-GR}gxJ!?uYd#H^n$Vxv^!m{&zk``PfO7R#8k?1m_XTcP+m#5#Cm}0 zQn3dKiH~HxTsD;80@#mZy@w@1fVUy=5*KTYm$YLH7|kmEhih)|O|-mc?}XfIwOn0{ zHF&{gc;PbXumPwF>5*lornEtYUY5~ z)7yx&Ze&NS3Di$Oydsm5i#z3;9nv{?5>6)yLlBzCjZy4{dfNMaM!huIZh3CyJJo`U5>lwFOIaHF*KuU?68W zwMtWNaWwvcp1A^3LS%C=wFv=U(zaghw$@!Gx~Xv$>=KF5gJ%%co~A`n*S(;26-L$g z7=!`e!D=swuTK;Yd&!~@K_K$*v^ok4*Z?Rjnmi|v{xIPt5xiwhQsw>ch{PvITF}A1N>JIPaFK`jlxd41U2sxt6>*kf zK{w?LFv7afVQOPLX;)lft96=m=Mj^Bc&zT@>dck_KagYY0vm;*-m%Q zO6OH5iLyDCNHs~>@nmJ+)_b03|JcuS&IRpTIQ0R500~l(KN6?gnx0r9fdWvdDijKZ zDg|?++fCce12qnXi=bv_Fw=SS@eCp>tN8KDxP}Dk)9ar_IaIrM!jcOrf&_k+YyKTn9!2I;Nl{g2TWu1ruro zm3C=ICc%(p$L(Gqr**jxzF1Fa-|VR%L81$%YGcm?@`7VyvZ?$`OPDx~Fv`PgvZ^7QM~Gz#0D9u0Qn2`F{z2-rH=W z-2ZENd46%l;{WyF|NSLCsh3iRH{$Cv7SE;3JsBv&CSYfF6K`dz3i6^_<7`%hGh*it zzvt|4ZNGZ^1}${*qy!JX)loN;@Y%{DT(ra$&qsa_Lq&4!nMdNtLOKR-93O8Vom4=m zMrakrK#X+KP}LvJJVLkGN$LtygjpBePI0frF;@qi0?|R=vei{F+!xl@FJvurcINF# z3%8^gSB&JQhSgTGx~dnG5L1_;akVogB>-66Jv?NX1VpYZTK?DpS73&&u=}7_L+zJ_ zo>|KR6DA3IxsF%fL64|8vlxNO8NddLLPUTXbm?L6Ia&lZfBX^ePfgHds<`IbOWp^Y(vs)9;#b%LiCD>4O+-QbBQ@{%(nt6e{TW#cEl0|$(%x@?gQ3E^7lk$X(732B zzb&p!hMuCz^s>0Fc8**GK`T-WM?XX^0;HEIhNO;?i@>M?#W4QG$GF8XRDm+gh;!*; zyodtDFwz6(A|PprVkqeeaS@cX1Va(Fg`(o>)KlKX*3P8L`K59VF0pWe>X?OtUKG~M zaEXA=x;8E;W~5>`RxT;wq+&>UE-7N8VieP2Sh%E+ zkBXsKxTKJe>|9dh8<28|<`E6lZ~QVB6SLq{i-~SeQC&0Ot*+8bi@=a|SC&fZ;>(h{ zXvQt9i!Y1owo5Cw$JF+p71zagCG9p#T5W!ORy5(6qGe*SeC8|Hm~Y#Z=15T|h8M+k zjrq0_LrGm@%520?T(@0XIXB;yIW4N2nQ!Zy7Pi|Q$Kax%ZN3eq9)DB}Mf8a@G8XuL zNarV3lWWdx(*?C&Uq`DHwOPT}iD~W(}6Q+ zD+dhTPSG=y*z!HY_jYhu`qPQ))8__fQmV|p4TM)VHB40UT^d3Wb28v&Nm%Uhq+@cL z)Q|k7chVixCOQ#lv?)eJ`zF@|c_oSCe@o=t|=pxYc-uop&`po72E zJG5R=zp7&yYT{nxh5zmJf;ea5UgX96t@NTjT{mpY&8_r<7=O}U9Y>F*&s3R=%11L|h=0 z_nfmfdAc45f_8Qf!xf?lU1mAeBXHvhApnkyQ&8-JxTMAz11XwKL)O^|IJE+iJ9)wg zw{Y}kPWy|7;Y&|kt&1oqi@JZ9zxkE6fOjFk6Hv^|gT?|SsCk$mp(voEqNn?f*RD(cO0e7=?p)F-3@eQ)R|`p}#hV0~SGZdAx# z;Z`+_7X?*>=YqACJaEw}lEeC~~h_{O`Fo*qgSMpOf^mwYcXsVA*Kqz)VGgTo?sy@WPlA3~6Wx zAri#7BhKkW$Bst9bluV_%j;N~niyiLB5%(zpK4?Lj<3e#$3@Q@^s6C`ilw}qPRJ6y z(9Ht|$$Ev}1)JC{5xH`S+4b-s+aC--vq8?ls|DvC=E@qyfuF>kM6TY$He1k4daXVOcfu8Ubyu zj2r)19U)_Gkc+>h*Dg$7;^jHnoX2$$T)@@^v2!cF;XY-LGI|J=F4jW~OieU~`g*>L z)`1zgrLYABBheLDPNzPds-=cV$nt=ZqT%LP ze+>30jKd!hdo-}S#vX;W_#c~;SB=ShL7Q@|7 z3!A+;7OA97ueNC56#?W7mdge`75d!^6N;`=Th#A77%q_oV??Xc>!dF-HRN_gFD!N> zX2Hy+YCZ!e7X_>Ez1lBji>OTlYk3naGcuA$0mtjXT$J6E*Rg9ezX+QG-x$z@q$~Vu z2kvkPYbox)X_q7)Rw%>_F72|n4E;`)uvC>yJ7CcyZ+A_bV5(Gv1?z-Oyg~U>PAsji zUwmTq2t^MQdnXf13;!3N*leh#@v}HqLzv3IFx^z!X80~N3#)z9)G!3TY{ZjNjOcJx z(aeK7@-3<(+3h^WhMaH*pVD)g?ETzFD~Bq;hDXiZhYc&`r8?z=%aPSjq#Ur?l*w~F@)){pvS-{M}Q2V za(BabM@jgDuA+kq_hjNzn^e7*M^p}fF%63iekjlK_*X+i10F*1uiOr!p&y5F&8ZPR z5wZO#aIN(ByFj-d)pCpw&)*=MZp-VG?RxLYG%-HS(4=aRh0Yv$U0tiK+5A<=dBC_P ztLJOL6G+Pd5ewlnqzMhMa>MZnQGDFoUNWPJgVNWLUHcfF`Zuu?jd_hK zcN`<{RZYy{0(BPNPVq)dw1zPY!`mELi&$P36ht_0c(ED|jE(MSFogb8^ts64J=?dj z1e(47azjeI0d3zt5#tS&$`c-8wK#q~7idW>G5@fZ8}-*>3z44STVjyB=J;;yeSR{k zP7rz@JKivHK1sso(ek}cW0GDtpTBj!!waj|WwNn1pEZtpVnqEe)WvMe=>+OmY_6en zTYEZ%O5W9$oh(tT#^O}O;J>~SF(Ernz)nZP zN{0WbC=y*Bvd@z6{-c{l%AHTbFNyQ~+L3!Cg@t9Y6hZ1Jys2#$*5Ux9`Bkj&rk9c@ z`W2{5<-!YRW9OOgq|&ppYhsmxOI}he=r`A_aznp&WX_3bKzQDmcYP%u?JpUXx|+6_t6_;J7P!~4U5FWz8XX2NhOgLj{HvOqK<0g6w(&lCoe`41 zxYtf6mi(w9W=ZOteA`DYkZXzMSne{NDq ztGuw)AU;@g%&ozbYU&?J1%A}}^+e}-JJ6J=G{_p;Yv9wOW*b>Cpf!|3p~`6Rok;J5 zsPfIDfpoN(_;O9K4C^Mw*w-sMDxq*A?Dc?}GsgJLK#PHDL1lB0z|Nflr$20hEX!Y@DrY=^sEp^YIaC#~;|H_Q8CO*+R@JSMeNbQ25lI7lM;DgDCMj zNrg^n2QUY%HmD&H2J6?IfCpZT-oh#h7Y0Ak3RkTfy{JT&b@PbI7jdnb1rgzNlMGq02l-Y^MnmpZKkMLX-aXG z#WXFZ-61l|YA=RfB&u>vVg1=~h9T*ZGGQ_&2J$!ys?5csEYcKd3nvUyvHq=%DR#X& zCaCKH2n+^C{hH&PnNLLiI+;GSqAVMjciOaX@UyhPl0XC?ip~YQ7XDcs&`yyvjMA{*w6f}YntGnO zx|cETX%V*>inwprbNjJp%oHQ>vtoYWK0jtTL|Jjrxr_`MniT2xII|CVYo*!paICN+tt-aj&k;U&4AoB+60XNSfEi;p>#8GdXenuz za5|LBNDZS&v$kfw(3pd;_X7gc(%NaV^*ef2bM#lruL46!iOHX&u7LuPF%GjHrVf)g z=$Q5n*LUM;s@cbyGjEP3UrXJroVupw>6)#pQ~H?Zi}Nzp@`62&;3MW=W3r4OWENtb zbnga%M?1|a5$)V4=bD2zy7XFba(@5=ffktWTVg`(#vNCCrnK*o)=O%XdYav-@UoR|RYq(R z;j-GIqYLmJ`VZW`1b>Y?-Ukt0F2dRFCLJjFfIlwsm$4kME5nk}P-;~&ic9N~TqpG7 z^{k<)0G`cCmGglaXR>-&zb06}06)Y*nh=<3l>U!D>Z24j*!P*`f@Vl!w;eIOsYaHY z7IN$|d>qDoG`g7vPugpJRInH~$=hCg_R_LI&x*wa16{Mr!mK#~+4YKkab(WqECp75h7Q}Qh%=N+2Fq;2qXt-KZyAj$zy$kK^!Pa$TQ|Jbi%X<_G0(GwO1)u*@GA~glJm6I82=Z}8c%h^-L1)&D%FTZ zf?aRTDp&f1SPD**SeauEy_=M`LiBSs84MfZ#q9KEps_2% z7#R9$if%}B=ZbkJ-5D1~C(rnp=`V^ymRtEne|@I?k?8}9HPR5*f;^%Iq;kC~`HGv?CD2|D61Ft!YYkR~n;;gPg602(&Fo2@nA16h+y^Y_`0Pn%7_Fz@J-aepg z6Ep1w<_;asHC6pq+{^(a@{Q3qV$ACg^EOO**r&X##|VKa*DCnMjZQn}%{_Q>@$P+A zI2?_FfFv6LjzK;!G`)nlh>TJV2}|9=Q~2QL6cCvzDzRh`d;AXXQGIHH#+w`K~)?GsPrSuuYXOsIz0&f*=ff>-b6 z-&fQ7VjB1AE&WRd9>FiF6$;lWzh> zcaXaY9L>?-CSc4HshdDbEv`3#LIUC%06yz7m*a{d7r!unU%U{?p^WwTaP$9<^~v4; zS2wk9uZ{Bi|10xLE6wcv|K)|J5BLAS#OIOU15wd)-tNEMYsvURKdGDTnaAekf4sae zqXXdgOl$xEfp6(GFI1TVu;Qx%n5JQ635!6P9`>l!>J0m%82>-xeM~%%KeL;&uu?tp zg0A1Aa@=(z*b+W=xcA*k>zAGV#f2*F*S}NGT6;VDZ+-#&v{g;VX$EX+wYpxXk5_9e zU68C4_5=!h{n#t0B6}q}mjReu4L$5D$Cb_OI9?Q$mPj#G^}^yD8Xz@G%9vFz(w(^o zIN%(n*Z5s081?&g_%-kY+S&33O9U(6OH%T4L<>Q-OpKTNyJ7Gcwz3{?u-hI?f;46c zw~m5t+p@liy`H7#Cs3;{605*gqu+Kr=cEkHvQ0gn#l7!rUW1#h86%;MH{PbhO`?cu zz<0ea!_@f^_8bOFFnchXwW4q;coK6N{L zTjX~-5C5>`StTBdFWfY$ZBjOmCakw|KoDUM^T)_7~#c z>Gh)Z^_fc>jliQaOV%=7AIhBKg*_^?Y%QctRiVU+wZy-G2myUm;%Px=1_O-HizS{} zO8{;8gD?rH$a8CvIE--f!aZpMK0n*%;zgnCGUm?=ZEDV6_B1R%f4Y$%KY#kka()8k z+vbXG{={4VnQh|4%XZT?Ve+K}yrQGX7;Z6&;v^b%5>37v_9(^@@iTr>o<>`tIB}$N zLb4Jfk0~hz&38t9K6Y$-$)$(RBFdqfpiLMt_C;AIK)7*tVNcru&4>-e+y&7=DNnE0 zNyph?@$y0I(g(DW(#da_lUj<1KGfLvP_-{3(O`TTTzO!{`G6+D52Xl^xF|&f&vs@m zjH6$56`9Rp!eC45IegJZ8wfe+#&`}9;?FLsGE!pJ96xy+!v+f_Dd-NodP1X6qTj0z z;f0U;H(uNUcAds8qV{Nb{RQpYMjruL>Y4zed=_@Vv-Q4zuA4P3LxDRih)rWpE<9dW z!pJ}MrG2BOnu_g9_=^IexW1!bWw5wcI`CW)+b~ zPA;o;?-+{mlJyCu&PR}LzsN|=Llfa84 z7P&;3h2b55s;#S;=!xOTb2nWP5?nX~rDtwq`orZ5yF@}6=^b}MmzGOem@Cp9%3IOu zW|q;Yh>-_1UuYVMsaxdt3G%8(EQp)T=8}o~ej8(D^M*hMcRML9ms9I)+cs&PC-Y&x zPdnOat}D)4h3;US{Bj+RRwst2?^sEHu;bx_P{BrYVVj&zcwsi9Xbt7us&?MN*5|$0 z)f$^)j9d*6X!W9&jh!#-kU((beGiyUTxk8Cx)8yKxv`1l4S7dUU4&21ndRAsIFdox zK?;pSB<%M`1skmF0j6;XWyjMKiG#wB)A`wZ9eIM9KtzY52;E_9w*zx?_|6XqyUcb- zW+o1daSQp&r}AHHf^s-DLUz+Zne~`>3iKU$sJAcz*}2D|XgmO5K%c*bqz`DD4rd%` z{tIF)CF^~)uwqR3m_=>-${bh@$wHi_3#1mK=r+-f77U8DL)UhFTmO*9=;A8hlW;Z< z-+rreaYFZRyOfhh5*J~>*Va2+lqQ=bo1C|Yqq?mr4%0Ln`AbqaM6_TeWUv_Cv-A?`*WgV zEwe+P5y3&5A5v$~9Nr0s6u6DTYf@@=T%>Mq`bcdOZDNnEF^e=1iE`ndcwc6b+!OAK zvlyeW*LBGXSIl0w#|zirj$|hOzD$tBUZr?8ZoYM}Ekpr)uM0((z54HJRT3GY*d16l ziMvBT7=@!)zMp)hLZHIzhd{+wd2q(i{D4*A`!dhuZNz;m;zvH5<}%9Pmj`#_MQ`kE z-*g2mAfXB8ep*@ZEm8muV*(10GQds;Y?+$ibBhado_4MUBduFuz_u(50Qw@6_) zsC!6ZCCb7Ci_jg-?;l&6kW?^!y2ol66Vt;~G@+Y^q|Jvc4V7H(l;_CRJ&Y#CuFK0oc@8yQomY$b3BU6mtrl% z6IEB{p#hyKWq3d6gah+%_eOeIp&;UEJT7byHp; zESMX4BCpZ~OfgydF>rb$P6@>L1VDFQVpZj)*7dJ^_%Yom$MKHgd~gfQGwFPYdl-Mv zc}Pb$IsW;7& z!8{34dYGTW`6*|dTbiPD*%!e_*!}D>9QC_6BAPNlfpWXjLp|K}+{rGNDod&zUzq3g}D)FRIB3`jG<umb@N>52*OdUD+`_#Vx2}rXiuKPG4JdZB@*zW31cOf*ZCP$T=oJJ;}Wen_>RfR!` zjL>^nH@7<@_&55~P4#~ER7YgFV{Fh~LEvG$Z5l9r7gKmBv;UpfH-^I~{OAvGwcm&8 zc*Shr^H0y(*z?Ny#{PcQ5mP}I2m4`6LFvG>=+G>eFw&66XAJUtjC!%?D+%ke%IU3~gL z4SxXOJTGY@SS=4Mjm0_+VpGG&a}Dd4ji# zPT>Kex&3KDL6rAjIJ9+yWno^ACOIYI2=x3Uk=cSiZ~+!toD5X7CblKtmN{Umtpr_V zq_jsLMWiYXA(My%%w2e00bt=XD|a%V-G#~FNaXap9X^`cvNZ_1SFFSTXzzx%pB zRYcW|LeNNZ=@};=D-ksR4mPhxbbU9@;8etla6um9LXL-8d27S%%`YLOe1fr;mczLa zH0w(y#V``6M=^DE-)TV`(fG;7qLWQNVlw+I2`4m!PhqqgfR-nyMjblHg9Z$2=>0zO z>w4tsqVp0VsCs?`iXf5zf0GGCLyq&~Mt*EL4H1=N50oFV^zhfos%s*1f^{q3cg;`s zC3NgD!dK90kd$`F6uIfox$G@O!xShnZ*NRgU!Nlx@x)p|8$moyE zRD!;RfR#mI!xQ;=9hmjn+?5d9e8xudH0>o!?&pi5(P#q zx0x`lbKo_DK%Y3}#uH~7@f(Hm2BKl)!;gSG5OLt>2G}Xx0E02|Mv!B`rMg*!F~4L& za1VQ&aKx1l*rXuI50*Q8Lb<*s)l#!zR}dmoFGBl}M_tZBG#-CrOhxw&kE*}7hfD?1 zg3+&Yd`@fCB=#=L>McZPy5wr>LjED)(0bS|$VFAr$tVBNgmXQGpm+;kq8pfd_pD!C znPE(n)o8BRI+%e|U`tbDGD);n2&Yh?5&Fz_gn?$WNua-kJ>Y9PCiUU(^w$C`c?LeG z$pz>yrY6XwK=|4T8*cd{(4+EyV49=3TW$mMVLW}hT#)~Rzi0A)EG;f9{>Sny_rv=6 zljr}i&VQ%x4~GrUs%fJe_2^tY(C_F`2rtt-dTC=C7rWP&KOyp(SNnJ zybi3wUWFDSA`SZXX6K}Jw0(GRymNAJ^iSt3Nrv(2+}x?3oQ>LzPB@qwjJ$r|4d%=` zCmU~^i)Le?u{e`yXbm3@wW@zKd3)bJcK#28o`1>$py3BMZDS1oH!b}C zw2AA*Z47YS=Yjv3|3O_kbUWvull?>r;4x^VT{r4(M5l3e22}sbUp{T_ZTw@q^?GN2 zt97`s`Hzh^+pYbLz3tDf&4c~dJ8v9WV)O0M(f0mHYj@}P1d8u&f3D6@8owd8&|)1E z52LA#mJ5wk{&skD@b~S_6N33Shhet%4z{+dGc$g#vVU;moNOGu**N~ z-#Iu^X8>iz#NXEL_VKZ^2*Pu|T2&P>(V~ddU9on_+1WqYK6<^ex$W%i;n23X(%QJI z0~Wyah-v=d0yxma!|kJ!o$X`e>sHr~$ijgV>o1?u60PHdw?`n3NW6=}52~c?W99#Uc>_w_cS~Eq zG5o)@xU!tr|6u?B!2fsuk^H|+88+SiVHExgSc)~izi;nt?Cu_H0v{c3yxQGvo$MZy zF6IEYy*&n&-)_BnyR*C1I^Oz6>+qi^KOO9U=2g6?x>K)r{TLa#E>d6Ay^mg}p7dj} znB7RxFrgP)50 z^|~ltZY(zD)l(ir!KhRzR@UFbWNjYo?P&@yeZ0g@O^Y9tp zH0In<5}tw<5})z!j)37A;Om$st>=GS)8J?`@)-(nA~Yx$_Vm^?!u;$!f^z6fSC_q$ zVE^T{RC`Q`VvszrS0lgQoqSZ3NM29_s_o>G>vz;6!I7#(ITG3C?5ukA_Hb+CWIOvt z5YHnKSrwD`sGd=lvh;Ur2o1CHFCF0NxY&&yU>HnC7j$54oyqPpbdb=ylbubqv2fn( z9=zJvt(MiHW{c`c29djwtBTld>5Ynw$Ujx}7N8m6!B(k&272D-;p|zRUa2ho3{0G=R!~Y8l z^D7Vh|0O<;oDwE#1{u_kL165;{|cilU7*k2%p;YV z0X5OZg}Id_N>xmeDjE)oj*jM3gaK2|(Dgd1Q=(#_YGG1rryF{4@EAc3+yuoAtljYV z(#4Sbem~*s)~S==uB8k?XU4HT}#o(Iq@`{JMfLppl*kHik)Oo$J zd%RsG)wV)Pk=Bk5ssZQUGV=2|C zdPM=LuJT5XZrDLRL2zuU(%>-x&I-#%#|vUAz5yG|GY`m9yy~W!DZajeZp!e^!httL zM^pf2Ss6x9u-@s1qwbv1@gyAjofs-rX2s*0Gt1t#_$~Ga-Bivd&?hWA8^-uj7RMWK z&`qjc1Yz*{Dwft+X)xLkRoCWZ z8X7mkSgIX#&BaAH5t;!*aBzhdl@G&2=?ZQaZ&Lb6J@Mj1UHj>cFip*>C@;s+4Lfmz zI^KX0H0RF3%Os5FxPcZn&^Sv5{YPYmO@Z>sBU!lOmP|bjLz4!aCp_{XY+*hqQ348_ zL?drTkWEh_2GoFluez%FKlFPItXG+R(m0#_lUWC{@_#tIZSUXf`Tx!@EI;`Feu0l= z{x|X5eb)!RYa|~_$2{R@-1@(;lHLC`SC*eXtp8u)g9cIQl*MOTC)>v-tNxxe~6|micdc0baO) zF4DIG3Q(o0<0dPGCx`r(Pt>~ofak%2f7>66{6E^>*xK7}47#_~M!Ec7Xf{`J{@=@s z^AG;tU*hvf8RPKE@8*v`&dfY|>6SYUUda3xvbZi+31sB3*N8o!#<;jPJd+E!$?M?e!!;j!-o%KTC_VOiiRd| zddY9$(Cekt)lihHVjl<}|26VE=X5`KX667bm@-TtUvxk7PtWRo4@QIdX*M0Y|JZY} zV2sWbupb=4h7`WRDACzs)%hS(epNrzoDUfOn!boDy!;)LGtxJeR*;{&vKprJ8#)vkpCT#?)}LV_;FEnKJn=;U(6kjg1}2J>Q)wO zj&Xr^b+x|`|K2*UImZ3q)z#kOLhHQxf?&}B5MAf(%;@My_- z1#3MnpE8;!S{d?C_2x(#rIJD z(|n^@bLJb1_|L*;4M9B3lJ=VO)fYIx!^o@CNj(lkOY7I1msg0j%1EnA3pM8lY;OL& zfPfYt4yunnMludM>kuOftrw5_Nh}A`5QHv()SP7l4u=wDZzas@k_LnjaMBTBKPz$4 zU0oHoseNc;{ssK`ZcUbMFe|-qe*Do-wJ>PzpD1XbM3)m@9*Xz|bg8$h!|#p8N2= zB86%yNgG1G`k|8es5wL)oyBxKw&I{-d9l=7G~iZi&CO7WM&iwrL{u0)GD#|vOOzE&)mACU}@ESfY2_JCz z;Lrs1*zI{DaF$AFq$2EdLM;j?y9463ABWBvEH*F>TnKQL5D{SHVVR8L2HSa_kz{LkvG+L$lBecQ7S7cljC8H$*Yf3y~dequ29J{x8Ex$r->+d_UQ)=FiM%l&sC$$k}N|YRSCK7AM1Ho zRG)Dr}&1DC)%FfJkb9GQbst<_yEI4`c*1g}>kp zEbx~BwhS2aMZjYjk_R<5&B>lZ0lfvkW8mbl^I$X?8H?M86OER!^)k#jC(eC&y&xQ&o{=IDqKVzeiz@-*l`e5hEF^#s4DBJ~kHWGkv|x|U zT2|H6=@Y}&1dPQYXlRX>JpQ@53R+_K5>)(_5_BEVdz~lF(u)~Y7Zx!Ws9pnC$-=FY z7OHDIEN@Anh@s{u8S{#jgPH;*9v}^-s5Qx2*h@vN8!-krQqf*M zqR0{SmtAA@%5l=yYGQa85_3kBs; z99}g@er{8=8FF(a@%c7DDu+D-NKqV0T?i%I`zn8IwQm-FDl|OrW5;7#UJW;UFhCS~ zu)}ovI9HVYGKxk+3|~c&xaqu1ThVd)>%5weA{^Wag1~b*TGWFu0ny+mGELYO2-$(h1fzFz!T$Pl(?Z2xjt>`7}0IF+aeM7K^v8lXNf-m z`Sm)CWLSMSMzJVS7P(wpD59=2%j)W^6SmoOphvkDX>52%Bi6(*N+|RgkdQ6_l>A2& zcrhbOt~nKaQDxprqN`SRcXQ-*!odJgk?K&uL8iQf;PC&sRX)`JoTVhWt z-wqSZG7*w;ArooUG(oN6ZP6;2rl%0etKb2_OnDAZM$ZW{_zZ-F62ykd*0cKqT! z@c}7X{CMEPnv9LYB0uLWz*0urT@2AC=tpkjB?KrzJKk0YwpwI0BICfCtRObTFJ`o8 zwkr5#S}NUo6O)M<0F3d(D1y5@3;P(LObBJBxs=qf5(P69OD68R0JXqx7{cs=a)U*f zIZ+FasxMD%T5M5laHvqFe6fj*7h~_j4@WVO7yG}oQCg}TB4WMLOKSQx_OBb_3Uvm= z#8Je95z#8oI@2sofn2pfBAkX1u+M<|IP^Q`Okf!75!D2g)d0CB?ulVfbAdr6ju@|K z8-vEtR@#UEqZwG&R&WJ_#k-!2aIYbpPt;KtFXW)fhOki4zD4T7Y92W2950rj(>n2h z)M^guP0JATJj$MY9~)L(RYoi1D5z`dH?Ej<^{efHwkvjiVmqHoi&S~zFTf{!vtr-} zErp>qr#U}ApS}a0(B3T=@4~K^F$r2)TU{M^(J8PlIY`Ax>l|YR&WSLe@#>6jiHI@Z3>qxE&K{W&W02GVt?JsTi(0-@okpoME?MS<`GHN5C@tuS zLkd{ZTRDL%`nh>AZ)k+!vJ=K=y_c)tI;UWn-3(!5-YlxBvm3!F)}2*+(a`GqLtFKo zAOJiaMqwA$6^60}>b-iPRxDCuf-oAO{lV*|p_rmyJt+twl;p^S7{q+ zNlImQd`2T``|NIb=Ei590Us**gAlmY(!hy$HwzNL>j4$}$VB)G;MLh1!~hnD5enJB z25igkc=cmZU}A_vpitN@*#I8$t6AD7dYKsAz$tCF?So!&Md$%NU?j|`I&R6SHt_7& z6)%|--r&B$+4Q4M-?PkWCxkhL^)m5d70CR}&M_N;J8rJ&F31a5b8vyM)8g#k2~p1R znHvN+N@0V-0ZlMSWc&z?P6-|wV-Q(nTin~B>cOUL&4lsp*dHA4>}{o{d+k&hXa>YW z7l^?P=0w3Nh+^1?24vS{%?z49J@qIuEvt7ZF{Fj6j(df^*jeQ|w0ZcJ`rJ!T1oi7G zGB38=LZt%Tr!&L|{Ze_84toc>%EHq3L*~%*gSHXDQ+78!Tu)8)sMAPg>Vu&%X5Q7r zr5P88e&M637Z9s8!A|0?pztB5S7afA5_?13({*;FNLDC7@s0r)1cLxEp+SZ9Gq+3D z%2SWWPC^OOyE49T%Z9!@vsWOv^;tX2S2RbME zphcNbz))c_;E2=Qf)4_NUalyk=unEL$~tF&i>*; z)%lkB%tx>i&WA)5iYR?sjDXMvB)t4fM5I zeLom|Bs8dIafjvyy%5@^bq3Xlx~nuG@?AGG(d#z5z|0KSJM z-U}{_5?Aru08|Ls8hjt>?_nbWKnMpiIKNRB4^m`Z{Qf~NpbS~MTU#ggPhpQ~K1#ZN zs6X*RmjlIQu5j>sp!M0@PTFk}|^CG|S_L zLE)26y}}kh)(f(|AycsQ5LK@&+|`V(gW4L>v6NAewwnf7a(sA3`DTc7*L8N0?oy=> zX-xW>Bi$byZtw3MYA`_Ck&^~rTNs83uqh93sjs=&zP3A}?ez;;E30@Z%}A=xTXQ(}S_>VZUTQP5USSI_Rj3vXL+o%};_Mk- zBVqf6vL&wI3N*yccANlVand887SS~(D0Qx~mcn9$D*AiYQUi|MOA%)2(`T)epe20U z_kz>p%y=tlnDQ9e-*m!$`bPFhv?;P4;cLEJnjcZ6>U{cK{Fc0a1vHFnmCjP7=fY|v zT_YsLeTRi`mHv)LmqakC3e_~pk7t)pQU}9?qns%>Q$LV zrm%JJ%dxlwgdbi%F@v^@bLFfVUE%XrymP!kJ*_!!w)eM>b~amhm!jt2I@~(`X@g=} z;)7t+?+=rx=Ac+?ZU4G+e6q9uMiksQIXT*S_4Z`DwSRE5x3Q~=S6|E+s4_aV=IreM zys^8p)#C29;0K3F(6(}Cn3v1C0##-=(H8)ZiEsr^{Xeh~LhY>H{4NH{Yhm2)H`_;y z8KlD(=2X7%5=6=|yxIP!cem#Jpz2hw)yFo<3+^29aBTE0e3YXf1?(r+L^J@AIF+c@Q>B0W)KWolB{Z}ws*+$k>!E21a!=W8%`~q+e18OuC zU79?p!jOLUy~~3hjxWh!g>cfJ5|GflB|KW6 ziJ)XO16rn$?}Yd`XdMwrIsXG+H+K)Vf8E}!zQ{AbUVqK0H*cBUQ!LWbhKxr4w8Rla zrbqZH+b`gBy+-v0{j{;XmE-jW8*!46Ol7QrTaU{A+udEAEc?NuM$4yGZUL=#z|R zF7OBaBE=rU$Ty1qB0;wf;ww=$Bx$4aBRXsz09fH0B`*uXHdeSyQPOg}I#)Bm;?Yc< zO<8y(GVt7Z6v?FVWgCTBYE2jZ7s&3${vjoJnR0XDO+)c^R&VS@k*c1a*vTX2)+A-6 zn?Z5eT#wdOzF2hsl~swvxaF6|;mUg2e_PqH;L#$}vhA7VFwwkn?hnV6L5JyOj)FTEx%}re46Ajzx&lF3Q%!8`l z_bj?9nFqS;w#*Xx>Z5PHtks}JBeP^-$%?HqZP)W-;+G(X@s(Vnb6eJlW-<3hCB4nP zQ7Mt9pISu}cRKfa|MPTUjv+@C+L$cJo{VfJA{Jw%S7bq})pw~w9zB>!v7&q5yco!Z zf&3%W6MB_tm^=<Sp<^tyxG#P3old3>g&6h=+LyDl!pWe*&A5$;4owrSS7C26lY zWmkSqJHRH6GrF5a6z6?(DfUDYcWI+RU>L^4#BGWzL`bd_mjxk_%NTE(jPjZUll+^( zY-W&U*K0F1GnZ{GO}_KrJLb`gsqR;vm>?^D)u306YWYf-Nc^6lI4s$cN=hN8bSQ^% z&tOow*(IoFZrn;cT>|zy9h)8=MesJ4Kp7)TkuYwPpIWQ9ja+B`Y9iG6F}KRRFJ4Q< zXSHk&Y#>ejLLY*Xgk^{_j-k2^hTYRB+iUym|L`Iey zqsrKIxPOzHc65L7ZgBkATHv#AJt zWt!|@xjD&q)TT!k(Ob4ZSuIV&lzO!4n5vLdFJ>eBSFDFI#yr*yE5e~5GZkaIC@!^U zRm_&AV~Ww%45s}o`}EoF!Z3{q%MV(-=G>hLD`y1C+pY{_POg+BWm~DS1|^%FC`D$e z8Htc@Es>K))>4LuOpQ@Clvi{=UVB&V8#01jD{i)Cg_`UCL|ZbWP3MW$H+_R<-orCX z74E-swemgGd7xD>+BPT5?5EMFIU{DHnN1B(YsG@8PuE>jwf@@{xp5NCsv21#O}aK` zTDr^4|z&A)kS$a zSb)}BKxhFfZxe~-=*zb>CBh`KZm1PxwSoEZ%fDFqb+aA2>b9W1{uGyf(9M02<`z3&<_uh+HQVmuPp z{4$W_bIpZRz6#tRTw6dmtpj#*?fXgrclw*JIwsS zMufC;Ptp)ZiXY@rro1dh8RqzOeHI;8jjMPSZcB#T9?wb$vC+ZWWNy6|%p~UKi!hVC zFPE8HxtaZBV=aos`y#`SBA%iQBPZwFWWz>xgo}QNoC_eikOV3wKJ(m|&~KQ5r3u*J zOUZG

&SEnruuN6I;+|Qb}w6AfeRqyehBkiG4OKj?qXt_VIRJixjq&?*k}D>ir90 zXOSwaY3CdG6g~=nNv%!XxfOAIGsZm3jqtHj)ei`it`o?Ud*g9k`=mw0?D7b8w!sty z9Pns4B)729?J5u@9$olcvm!#B39AawAJ4y_3U*{j z8*wpOwJS#2Xn$N&oq0F^9v2DO6#UFpA$%#`?jK(%lH!&T3w`o&vwhNS;|qOHtFc_ne_Nw;A^P{fa)? z)S1$FD!eGQ)zk_}A8`uFcv=d{^!Y0b)-SST&=Ov$HdNGyjN92bt-1*t)V~A1XFr?u zXb$p$Lh*4WEBn%q5%!8dFatH72&o4VXsIuM%BBpcS%K(NAw{c!Rr#=_C$gn{(t$CC zN83orhf|tJzNgr;7WGyCn5t*7jYj{-u)Clg<_mnzRGMBJws);+p#+T^MI`A9KlaHR zl_EuJwjt?VD7vK9H-s~8b)z!0y5Y^h1h;D{a_}T8oY>uHsj7?v*t88;Aat4{-L6!* z)0ew!-|WCN2G4m%+6H7H?(8BrK<*j;N{xH`{eP>|8lpV~0^V z3}d%1IzERu;P#lJsXdc;q$%8N%P3>rc-VIsmc0oq%(NrpYormS&Wn9@h)4HK9XE>H zt9MPQJ7`xj)5Q|QC{pRivC2Xtv)zd(-9Rjz^U1HsB7BUC;0`ea`Y~311^++6pimVc z_$K_HdRBAr`ZV8{Edjo}v;X#21GI`URS|G7dxPcjtQ;eu&Iw0}%1P0SFuo7x{Ofv= z$O|M;%#UEXpkyDb4o84;zVEKmOe30K%uJ4t1^jc8F?hMSooF zP*B8*xKXRULS1rUc_qDViw8kKN=-=`1h2ln=YHIWA?=bDu&}&rzQw2-2fbst2e&k% zi5$e0wsjm5w4=#hS>-j)L#@3*$^zbQ35|;|~rlff}Z?Hyrq1B{zb} zz+KMX`ss)s<;!^VO%y;$<1G?0 z5Yg)G2TWqU7D@&FlExO1-o`wglrL2xNB)wY;ucZ_h$DpFFsa0PDCGQ?R%X@to}J}% z&^X+R4oR6SO)*Ewl|{o+WVx1F&YzK!rT#lEy|e)3|FU z8JB0PdL@-rQ()gdq@RQu;OMCm)CffaFoBeYAGj>Z6lTxAM z>zVU@0f)S@EpbO)<{GNy?^dh}RHeYgHw_6gte?OF(_=&5y4hZ(hk5d4fuTFCf~VLf zq|8nw|C9oC*yZ4s6346PM@iDJY7)ET%tN&UrZ&V=qq;aS z(9V^!?iV%-utQ#yt4^U03Wje`!%h(@9E^0F6x83A_;CK_Y;?Oh5C#q>fWdBWC14cV zmFYPsnsc9^x^_O^nwdN3ImMF!PBL=u^CNFJP7KG47WYONIqlY za*RLX2V}T~VjaHP^91exrx$7s#e;FOgDcY@&IIPi3F%L?c6L()>AQygJVtjto3 zSzSiUxJ>32rqK;MmD$F--dVf*zKzk_8~!u?+r#+^(ulR3UR!#lsXV;1ny}Zpq$1&z zbV-JUx>1)%Mvm={TA@lil!kPwieC7l1KEZtX&?s(awtGhLA$Wbm9|L1d}LeJMzqK| z6`8%UYHuwB(9k9;GNsLO5!JFVmpa0Vss$;wHPhy1KoreZ8%ljZ$t2*B(iTJSIR~>8 zGIUg;Pz?MSCozwa()cdDl80#aX8*;_id91&9-dF1dXXHVC?R|EHugBNdYYrX6H;Q( zD`|!;}*9ABEt`4@k%}zmILVj|JWN+?UXi?Z)K`R{Ab*T z|E#zP|5>I5|JmdXw3`B1%@R~Kvxq{QTCRzSrl*c1leVD_2t*5;phU-*Sx3tjD~vtG zW2mDc+yb?~U_#wpa8x?j@jyFaY=Mb}bpxo#g*zUeFhyHnN_(~eSEPm=4_6wdEr6AM z+kh-{!j1LV%HC~&mdRl!!G_GuYQu*-d&po!9{5P;8pSEdXH3s{NT!3v-vS)# zkd*6;j?ysqS2SRgDfx@|D00F+1((CaPbQDDzJc`D0Vzs#>Cl66)zvzIOPmZ78A zc8X#cvJu!Mc4?0&ZvkQUdflT_Ci1dC+TyKH+0OVC#x<1-A1Zyyd|YT1DlvdujRTdj zA{BsoqiNQf%2)t1XMU>cn=0je0UM}y?{yChwi1%7mf?TF&oQNN->W)xkwnWp-Qu@0 z9-;MINISgMo>Fs-9?-FXQ4^1ZQ%7AiEWJ87jh5NB)zx4a3d6}~O;V(OCb_u-8P({) z_F`7+YsL!svPTHfUaeGXud)JQ1StT)hV+Flp#`>e&^AE^0m{dels6S{@(;vquWgX zTb}>7x!hcMx|GZRyS%XQkpK4!d{iD5;wQm^f&lmhtWjrSL@zetGv{YF>VmrL21fc8 z{JahPq>gn_FJX}&W0TAD^5j0>;F@@gUo`ml5vZ`}LcB1)un2GYKgaopcSR~E9uLu> zWxT5Lu+*KEr8?ScKai}DIo2^hJICz)V3=J$5RjOX&=0~mafaa#cPWh`fTJ>qlxRJL zMb^@~*ORI3L3`Hn#Zc%f(1^oPH+Gg@{fMS!%15U)-CTIaZHol)TB9E5X4HA?4aMv= zdWY(+=mqMWnYPiQh34iqDpA1eD5QP7MS>?2vE|Yw z*eY#od^YO!`bN^&jvM3USdj{zit-bq5U9LovWN!HZO3}C2+$A?)^o+Am7U+WyxQP+zoLitcj)oVPr}`Z7F_zw$j@8`BxBk z&b*_2pyIKMnWX=X#}H@86i8`2Fzuzdt(ndzI>@Xy@(bZrBdg1Ae^uXBo!QMFe}oXi5T&K=OXsh15=zAu3&QNKhy|ggoD)-;JVxB3l;kOkL3&1R-;qNj`#PQ$11al8;FCl9W#kUgDFv_&I2Cck+jyzQp_^E2&*c0V;*^*SoIUi~;-#=C zfnORtMbGjLI)P|28{nMFCz?Oy3+*lShTcjrqJJR*63zrL@RcR$5hZKTU)|FMgBuCY zO(A^y$a0>oipJhQa;!LkIH`4aXvFC~uH zLIKFgMnO>{BPfP5`v0=vHJh!JVSJZcER8nm>;Fr3E_0!o(b@GBLWM7*j#qh!SxdBe z;^AR7U6a)JVnVt(9ng%zL3$ES%N(%dNL}|rkG>#5P;C!w&v>o06NSLb7a+dEQJiuW zT0+SfE=4i(Fmp5Q=fu?^Tm>n!CO)KuI4pgkLy^~axt9*<-`EXl5tj|pk|EYdT0T)0 zw|EQ{MZKV}0hfyogq_4o(#v5=MU(wwm@o1#pTRq>{O;L%)3C|OcW60@)smpas8F!c zE-o;PF*qyDx4XM|VzD%jR@G(-?$}FcVo=HC{6qPW7Y68c9=a$Cu+!l!EdZINkp;Mc zldGZM!NjKnT;aHyRwG*ncNmzHHImtoV9A4eXw&lpK{O6*!%kB(UZsfIL-#QZS%`v*&*F2cZAZY)PQHjA3Y?@C?*Cfgj^>g8{B-bNYiJC^9HK^E&6aj3D1?n*_2&(ZyNv4FL+n z&dL5}7E;_E>A0*}yYz!I|M9i>4Qn0ZO7=eqGS zMYnBcU)s7`Gnht|frl9dq#XA81hCf)*af3n<6*5$Gp@Bs2DWzHkxc@9-45NzS%>Q{ zQmQAy$SX~`(=mFK@{75DdS5H3QisjBuF6Xqm+d*M|6 z?M0zOHaOrJaiei2*B?I*}O#&-x4ZPT7r$s8QkUPja6I5Klu_ zn4Qq?3UNUGS1{g-5RFo(Ck9uVzC`h_dM;{G@Nx*7GM|og2JShfTN_2_5#%O9Yv_7) zJUEZ(2A1FFgQ(ZIaltY^EJOil$|G`1b`l?&ig`n_=z!)e0+mQVnua*6`y0k89*7b3)j=S0R$N@|nxTuo` zSVs3MrbkiJ;}ap(1#J>lb?;*mxh-J^!Si0}OO%bM2JWI?H2D275I@wW( zw1g)vk1md;DWiMq8b1Nzeb~>E>zOBgQu6WiEwS~oA4|Yu5f+!D663!;KZ>Q<)XXl3 z_B9zghih@!TWMBiNtmczQTSFG24NIU+AfzJ+pIB@7Q5qQ$s)^bt;RTVp{O$h)hm`o zu+9XqR?Ag%#T-t2iQIxhDSc;)Wd!lo{xsPjf$|3 zey1vO>{vyn*|3^s`BN{cXcS!`2dyVnVV*?GVu>aT0+t*Mv?W&bKZ&kd@&#u*-jXkOsUPwDA{nm;L&46&1&!55aALaOL;qoAHaIKmYb2Dzy9 zR0R#EJMq-tE1fV>rXjyud6q7t!%j7gxx)zqn)W(NEJnF0h#}LQ3HCdT-I~>&B|3V3 zKS2i;P9v{Es-Jt_kUiN!*$cbER1{Ats0f9A+zRO)^}F|#?24f|Cd-ptoO0MwHpypr z{)MAO?Jb!R+5gsbvcUdEMGn(w6W=^ulk@%e`B?fti-Q$hKK0nynPhr; zgj$*nzUmJ9O_~OM?v1JTyW}l{Wg9A5tlmwu;-tdJ`QZnw@^UTJDvZdH&>5L#3u)&E{L3KnUEvKD6Y}nX@=mlNjoW~m>UABp0c50i~sZ3w~ zBM&yR7*!T`Gm!^cZ-*7`J6-=-W9hqXua6%1D)6;Uamkf3Rf9Z`3^&pUy^3w}v^mM~ zm`)HG5x$TqcHI?XOf!o`T8vp9Bf!iigP{u1Xp2IRDi&_MY0nB=B@Zvj6i@phvhUbd z9ekdZaM{@I$_q*r&7MJX_MD*)^drxtQ@e{+ufe=)TGYp_ld7*-d91hiO)r!>HZ0;1 zKP4g(KNc~mV<*d@lSxdS8mEz(_%S4BO5-U=w0w!o?u$7z@k@Pn4QZNI$*UI=@B&h0 zH^U5yjOit}s@V=1i?>C%S{n~^o26R~Io~4L8go0AYLyx=@DdlN9c`---k$X^w@N3B zA`cw}rc#5?FzJ~o(}gpeY=uvV(CV65TypcS!Lkl_kz6yhQVsmhc|u#lF(PkB2R^}U zwsdYP&m7zsov8-o)#F%M6RSwvW>j^2l@3`i$Z2!Oj8dy^aj#0nfDX7|F3ARuhbh9u z2~gRfOqK4@5^SSuUE+#_0(qJhDF`_u28AMtJarmUFwie$qp*h(yeujyYwfw=>#OcjyO`I!HVt8`n(T%~@` zC8>+)=tVM07lk?sKymzHCR-}X{aW%7Ri-#)nW~CNcyAs!-0FdXTC33aO`Z#+@@86# zdB+{P9m)WJdR9~EgzO|KZ!ju1X|%U7!}#&4(|oqHwDNRmY5wWr)A{Gi%gvSMGS#*p zZo%l5o-Hmyjrqmq!u-B*6{}swtR7PfG;ya#(lrzRV?DXhU-%==Qd(Jd(lA2 zc57Knf6fe}j(Cd4Rc4^id$iaWi)-~wFj#5lObgFceG^r$)ivIYl=h5C?s{F5b+0$2 zR5{bRv<*dAhQmtgrxIZFo_;Fe;rjqKL{dZU`|XIFj`0=&@&yGSamlZqe5(6ia0*XS ze+vW;l|Kju`oJ{?VGt%^fS%;A^!fpYp&=PbmzVKgJxM&$xIWNNWakfe?lGd8B5xY} zOJ4ctz(aCP4C6zMef8LR_S6dyTL6~EMx&v1^uZV9!53v}UzC(Q@(w8Dye&9sg(Bht zKZ@L4kesfQQFbs(^&iCHBHI_%J4+5d^aAc&}_K}8OzL+rgm@o= zFXGYzLcZ_En5Le#8?m?;#P*Fmy=C(q%XstaYguZO&N2mrku{Nt%^`0h63cinIrt7O1t8<)Am)$+8Sx08;8QQ%iLZyxyUu=_X73eVEH7X@DbdSWEI=#{xa zWqB(zoM~kVezIdNIWAMp=I|;vR1=9QG2mMgQ+I*BDP`4NqA^2w7FSCYhaDHCq1(T7 zLF?ge@)3-GdWHwW@uep%m$VJmfoemuoEq3TSL-XIK+&dXDS6>hFhfxCzbGB@+>KGbCUw@f2{6R$ci%Bk zmHG`MC|9z55femVml~i;d9X36=$wQfoe`)Lge>#8lT-58juy>sW$M@P4!`qbVIQ+T z@JC)J)tAuO9|T@6jCiS5&@xeXuH89LoaX$4iua)6J*apODxUM8;$2I{yI-y|rio+1yKU)NSyl%yBW2;| zh8{N7gWLi~mkAwfOr^^5@EUG4SzUWDbZMQ=Yuxn4s&r@Sm`boQPn?FeHNps=XnRt3 zU(CG$xocJ%$W~tW6qfIGM|WvpUXnhP6H}SZ|58bDd~#zaO{}3tpPs-TCz#K)o~VOZ z6)H`rM|iGK=T1{7EYPU>-UVoOyj21D3DOh|=~sF=y%JUsf){XBUPI~vSMDM@OMClp_UUmmG4Je^* z4VFqD=7N`H#2zNJ<`omPUWn>#HiR66q-%9E-Br#s0wO zyrg11Gy^aRcNMt|vrwk11hq`s5UC!WU_>R=nu;FFa22kpoJl_mXxHanxf zxb4P)+$?TeI|&7E>R({`b?FJ5YG9xnaS{u02fwC8s3vcAxyVtRT-bc|u2}55TApLA zO>DC7pQroyFgj1KHi-tkm^bsGFx+KF#wi6eie;*zaTHK%YSK3Lh*Cv#bv;N|-ZWQ} z6omHBb2}=ta17G2-^GM?-fikYC_Rn3N>7w>Qr2dYHkt;?DyYn9X0kP{3X(+|61~z@ zCTH;^I9(OfKx#})t-!TsN@uT(I~R9PFF^gH>fF&676k|6WNT_p8gyQVUK60! zb?AKEumwERvkE_kyt-4VnMNUB z)wNBjXgaI;y7>?duws(rwHhy|vvP|j7OFv4uGR z=fuOE{gc+-#;=%j!L$yDxcM>-Yd)BSffkWiB>!rdM0%)uV<9iNL@gW!b{WE zRu!9sd3$Nu^NwJ=7!pkxl9Dw$UF&!CE9D88gbu{CqGT+d}R$Ila^p~jdCeii^r3$?u1r_-KE z0W8`8G^YTtWCO79z9xvl%AIM31j`BdT}@WnRKX0{XTyr(!qI)!6p$h|1ZCtCpuGwI zU!MQ0*&=jSwsHaIqL4Q6j1&-tauxw1CtN@AYaCT9Zv?41*O3#V6|0b_af_JJxh8Ej z_#-boL`mnb&g_*J&tkH;Ae^;Z8S_2QRMRHGZYWfll1dclZ0+*v4d}LFF(L>-DD1FO z9#-_jCsE`aU?C)2H85K>uNwGN(}WFsfr+Yhxd%?HAZ>vtp&Yn7M$OK9L^wG z|CuHY!Z_jQUWL(C;15tDi!rphUH0nDz&5{hrO zPd5XW(k08>M5UW{G)}P;-7c!M<%o&Yh7K#u6}qL6Cj!g>dz=NGvw<6($MU{v8UQ`W z9{r_ib9UX5XM?L5T+pX5rA@PH5#`vygRO&AXAk8N1NPLBth8HQhEX@|YF`BXcdw*H z5C$T%B;!e{wVC3MEfjRDxW)vxtL_4(^Tb)28g7v|$O8I&XF@;}6~~OKu1?g&QlseH zvQP&zPvmH1#*T@oIn{)ah=t~d9H(hsX+g_s2(>t=F4g^Px)EJV(UYH4YpV!V&8DSg z7I)hXc59}E6Bic5ki1vYT-%xfKDED#gq&o0*Npt=yM#Hic`oHCwlLf(=$Z{20rvcU zKgO&Gnw=iFIQ4Cy1fExhjd>?=h8(Ld*1Zno5qc~}6nnbaJhkM*56U0m34(B9x95rO z2s3_wiD|>02A%Hc8^;b)*xRMq+cFkq`Paw*eL%Y2DPCmdKBTWCBooKVQ{Wz%--}J{ zshvF$L{YI@7|VAYw`@jNO87Lp0KI>>5}_{Kg&uZ6+o#ABqv6ZVpEizKuXaw>^LF9_ z{huJ^RDX%AjQ)?W+Rcy8TJoTFA|nYFjrQ;DNt8wF zh6Vpc>H%u;0MYsl0J#F?a`xSdx znN%TvW6A0ls87s&(G+gO)Q3+oeT=!%k2mqvGHB0X_P!|u`N_nDf@@;u1mCNb%=8;m zo>v+I&%;2sVm+f+>k{e{jf(TC1ZC?^^Em1Po01jSBC^GfV{C zG6_I1L7~)fD`ay|`(u$0t!@wanc6n-2eaBN;t3GvA^) zTTd7WU9(g70AqC#(6|6ta`8`VO9%LJ%_gGc2W|7FGV;R@X8GJoX=!8KNP&}5pv?lL zCo9UDgYf>dDu=$=*sUS53^vQ&c&XX zsT-y!AqfU=zzAziBkz1VaD7a?B$6d~;=Yg@`<=Y;OYZ=b6mG%Jsej=GV_i1I=)@() zybdYUFHuZaAH`5}HSxLCM#Q9$E1!fzN8ZoI%M5-bwN7&LByhLj*;(#msVjY|P-Qz9A2Fkk7zmO`u0BTdG)y^E98v}HC^f~>yqJ4l$Q5`?3u<7o=PAZb2-zW7vH zGC_`OAN-U`==XbbB=N+ao&ZVM!`~R^}V9G&LK*=D4DK=lmk?H4NQ2c0Q>7 zevo?>y>?Ew(W2RjnW>o6{3P#YWa>JSs+F!IA4py2hXQ3s!>lntg{+M7lM+-*a;m1X zrfY~Gx~#CA=A#`BR@zsIr(D3Qa&T%DFv(e?!zUEAA?#JuIIFcO0B4wC3cxzAXg()) z9}_Jnnq2KfhzRG$AN_R60ow8+wRARI(3-06=HEBMUJvE^8Z6yRkSb>i`J_v+lv{tK zF@nToCMYfdjGfA96pn`YIu0Y;Lj!~Sj#0K@aHp7+yM~FF!{IQ*tu7D%tV<~P>IzeC zKO2jFqua&BNXxJsSoiz#asnL&h|7k(Tp$i{fgu*Bky>UGc|bwhIVFsCaSg!$`Lv*6 zuo8Kg5}$>aXuUzG@HGuOBCPw+8F|4H)1V;Q(7Y3IEIegfGVWj)S5!A(Vy%}{^{W?| z>z~tKo4mF~0VjKMC;Neqn~tQ#l#+Spe$?KnJ^!3=fFe=?QkBbFO`aadBOsy(FD^zQ z5@gh+)OET&0H6wYPvwq|NzGBueW4opyW8owQ5Pw~g|(OOaYHL1&~@?{bqYF&#u%pL z=9y{02+rCKN5Bx;rK!G87C!UnClvR4Zf4s^-(`KE&^6WQS>bg8+0R`XDeQ5=jtbaH zDS&!1+;SeX7@3EA1lvm4rb0J~N8`c*QcU@^0Ij~f86YYVwT<=vM>1KZvPCfzu?cbf zV3H*4QncN>^Sx6s$Ul_1QLEhjGGa;HMYezWo#3`(u+lx5{#u=U$)nZ zmTeuo6?3p!zqI=aY43r}3L4C9m4Aucq0*XB>W3t`!;he@xBmsxCsdK5I}ejxZn0i# z$yYDE+EQ|vE_Qrn{9fz!#?6qd-OZ5M7LAp$*n2(W zxBkK?t~sFB*QI3`+27=$vK@d{IurfK+6Y=qeO)?yLIAq_k-vrDQTy%W(+~K{yxLr` zHX@u;*VY_!ELjw4)*-QVntr(1aGB|z(%v;;-I!wh%S9;A&|vPvG>cx|il-T-^uUF3 zd%%m>u6F?&qO$}v_S9&JFla}Dx-joX$Xs+xRsY-X_uWZ$O?}juMRPR{c@zm_;NY9t zjcCqDVki~0d%%LAm!gH|-$)1X8SGZOZs5BCy7Xh|e^p7Rs+I>8TLD+CISE&+`2MvmN1x7z7Dr9)QknY`!@e_y5@!g)o`|Mr&j9WU~dO z>s+gaHTijI{ROH|rMY4qzqZom@pmbNMT8&4UUtshNNlYu(0mQS*_G@9JlwIe z&GVR11~U(fl)>>m&eP4^sot4Rm#W^AHj z;BRz{=!mdj9LisxV0tY5c{A=ns?+m5Er+|_s$M&n?7gTUo?`O4(4eqpOAF&FG&2>( zwy=LH)RF=&*AbeYVMyn7_)16} zvK~x3PX%B~Caj>w1T$AubNmz*)tq!LIc9IsR4(MFQfJFsoXTuJXeN7pFe#hWGI6Cj znMW`QpXtRWm@A|B_z5zK+h)aj>Cx{4dOR6`*?tL9bCXY(Sy@y1G)dW=hRQDVasmu5 z%r8BAQC9vI{g=Lumy*cTUEr#e*GDD{@y1}KMQO75ZU*x2OLRBg3#!1~DHqXA*R_(2 zjv}7g)E+5nSP3b_hM|>rKMK7ZzPvQampp;GAJZ*IDzxCSE&2pJ&IC6t5@XrUQQ^!M z01eNa-iLIj%QbVhb7F7h4j)p zW?z#aq)ja*Sa9YQfZ|QkcWdQtS!wf?d95&>Ii&JX5!LmOt09(dvwv}{PLI^<4%I?O zYk0x*%M;SI=*UWl=E|#Ya?{1lkHfy)I^yfe7PaQe!;6f+} z_Y%|lK*{f&1(Zzl=1O4fF|ekAdQEOAv85RQc93XmqEH}e2nCi}vC2VViLv6;nR6C& zapngJUHO1{NNNtAa6EY;J4aFuT{f5INtd$q+LKn4 zW5LalGwhFm$1wsQ#x(y&ea~}2Zg=`45bP1(88;SGokpbGQp*Bep6lS26BZc#dCgoD z7M54iIX@p@ldZH#H2q^EAj{^LiVcxg2!36|E`wITt-v!w86)rGtiZQkTb(LG zb#_Md2vm5rz&{PhC%aOF2EDR6TasFYe$}uD0N?IQiAxEo^jXE2ty&hxHRqGo)AYDj zdnVm{452*k^C^3gP`_GeM*K)+V!*>lZC>HP@o(TYf_rq8OLE-o) z!zk>II+)l4-jIh_tF=5o{}>jUR*TDgS4@z28{rb~1cP?!Z~zM#gNGoL8pKz2~Ontu~$yt>N-9`K_((V zIf}82O}}ic>cSA4Pc8LJV2CIuY4h;!b1RD(87%P}Pl7;?tDxsVG zjE^KSZWL0((sivVN08~owFfjo?^9mq@S3Cq3f>T0Arh=ccx4*bSy_Q-z}TegTXrM@ z`=#2<(@}69gqMNk4Q8Q8*D!LvLyUZ8!VMyTX%e4nkUV9~dNt@Wdt${bIz#LpMqzh$@FFk^2m)mf%WV z5tMo=>$f_p)CJhW5lbL|GpN33Z1_cI3hPR&*pDwYKp7*D*x=3M3F?15d~W;^IgaZK zjfG}oey$UrxzTX$cH02Dnt%Fqnf}5j``>`RY({39rF~!Ch_fY2oVNO-#bsPuj>W%|8@O&=#$(BPTpnZyIMK>xV#4?Kmb#% z;lGa>sbFV007b`}@n9Po_FAGJ{oa^XZqk1|q@wUS&M4{CpViypU}ge7Z|rZM;LuP- z1xCNX_{7ZRlkmAf#6=qr@W?rcPJw^^?eS4|Jkt%60F}-V#uQ)0z`w1oACac*#Vz(G z6uo~$=DP;EGKedkX?4VC>-Uk{S6=Qd(2$|N*YAq@s}z=aTn!WjfZwaBDh<5kES#<# zyu6Z_H6A&;Zg4tsPstIVL%UzZ&a2H`amrUX@bs=MWeTGPFeFMpZl$54MO=hfHX4sk zPjTN72IGN=yE1O4gGmbV03KneNf;1Dh%W1ATBzj*Etf319)|khEn!Pu-r)-vm+nft3YS73O$ri(K#)uTPKOf!RYWbn*TRz~L^U)dAw6>T=ne;L zA`9^=Lh*@t@;M}TYar@j3)sZ~ND%jD!d|$MsS@*{gqGpJgq88fo{f-aY`_T}7(uL}Ab?~YualU)X2j*jY=7NatP-9~F z6L3`z=QifXD9l$2FH*M@!df1Q37j!Qo{R$-z`wZFo?^h+sxHvP)gTj<+%4m0ae>bpW&ccy6E#W^$YkhLi)ufZNly{f=8(QC!FAwGOVZ&e zz(8=?8bY$JufsyMk4*ZU7Kl&S@Z>ATV0^O-6~)fLO=daf10be<#RtM7gq?#Cg=3NI zC!y0fj)&S0DTeDP5Jx^7B06r!-nua7S0EHXXK+u05W3W9#3)34TET&;Nip3I6K_@I zF97`~p=cEy7tQwB9@1@vk7VITR5YA_h9eodE%N9VDTO%Yo}h!&6%-iZvX=p+I;r*T zX!E!^zqq3J5zi)Zu#cQ0a-?!J+3&RbZgB1(%@jj>S_(~SgAQqfby5clVLdO01(E`2 z3ueN3d=hfxj>nj-sb2)Jx%kWu5HF0yqrm{jh-aB$XOsp8!Lt&)pi>C+`FNlr>fZFg zR|bVz{H<0Bw^40X(9uMgj1} zf{7ErI~aOZ_(1nHq9_BoT-0CDQQr9grc`8{B1kKX~O0fT*_R zs8lw{w&x5-ZO}RGkQV0)`X!J?VUz_6QtVdRxPhjtr~R>mUTPMsBq}H_Uht;t@)Rm5 z5jz4qwB`9CVNH(vUCdgisamu=+8`Y_m!B8V$(|pR13Mexh}P*Ki}8oC(|y>r^gR(D zJQDP2@9(qa0xmly=44JSqLydN1&hern6A%vKyj4Bhx!~|M&+(iWYGa=yBD4cD38u+ z1?{X9(DxxJY+4Ab$D8Oz@fcUEc?aY@McD-!5w6psAu2;Xo+= zDk2sJn!aEy0E9IfrvviIvcTQh+J*@!7{f7d2CfKFVda8eS(Z_zq13Qu2MMc3fk2`C z0-G&q#^RdeHBK9j00X@w&rsM%@NNPaS?r$*nu6Y!XmPZO0JQFjO^URf6~QV}C=gaV zDp)hPW`WGx3COOhLWT3XS=x!BMIR*!?vU#${v8SqVP-4@Rh#_Ge>2P8`mS48suB<5xd1x2UB zpLyF;w&5amgUs3yNE~ShVSpGi5UnbO;KpgPq|y%~AJwWsx zqJ<{Y6{%7bfq7a025086kflGl@fk{l#wK~vdXEc%jT3K%sihD~fdX~J)=oNaan3MP zcj2g>74W8>m?-KfeCM~KOdj`bhOnpS68XA zA-u+>Ot`&)FeyEGm5yUaL*fA#RthiX6VicL0#R3Ndu)aKV3^K6Nb8!&M$z@-Xf#B{ zr2!BM2=-Z#S*2|GZA{)JzUIhbJw6WlKvt5MpS#6c`5#rbg>1%0R~T<6R%4?Gt&gKStP(8;u6-M-UybJ&~s|FHhh- zyel#i*c$o8dmM=~Uq={~5NjRGzT$D_+z!POCYKfVA1wgCWC1U>4*|NOqAYJX8$$U8 zqUm4Nl)092|cpbYbhs+oK&lU2mM;pKq%?Dn%v-8{%LO zMq&|9jW{_>&DneedkZ|AyW(}i=Uw!uXs>HZ9|3relo1@XJTaq$!}6T1%e%T*-ZSA_ zH3bbU*m^D+P%D`@JXV31DWoi=ykRaMz+%8AE;ddTw6*li($?#OO?i!I7g=#PJU#WI zJ(PB*sLuDjQ`(soZ1|oQGYSWcM)cS5aMWpEv22jH*OUhVo-`B~FJMQxXlY@e76Lj+ zI-?a|B}MB)_kD_m%L7os`%D5ub3){!jDW?0dKZ9rK(ijYez=_iTM`M-g{F<1(XBZ> z<86at55W8Gpxt!~j}caEkoLR?rHtQu%+BHgMbD-O#ekk$09m%Tl+dW}w!Oj?c>bx4 zS#!#aX1*?lWTOqGAMEbz|Cb}qZ%dCx7Hl07+fGv@Dh5%4o^(unc&|8HB*!jNuI4Qu zQM1ylxzp-YOE&31+8T=Ln`&%JD+Oe$+bUW16v9}x5p13~+!C#H*(R2bbt^lvvTkIT ztjl?t=!sf5ijSvkJ>3Q-m(ZkvUkdd?xy|5gQs`}FtH_64#phWzlEDc`MP!NoRRq-9 zF`89&z0jnRZXYNUC(UOzk9Zq0k+n z6hJ+pObje6+9-{WeZ(^T*Hsl*yLfC%Hd4@z-!|#6gVb5teJY87lcBwZ4F>#YYsO+U zm!ftei@9wcRZStLd95e}QKCm=RFb3!#-dFhpVAmxwq#9bb}V5(>deG|O2n1uktVZ? z=#fF$#FKuUuempYICaaRt=JZ*Db1qKN@1iOi-qBX;t2?bDKgg0PY6@G1&#&SoDg8w zk1=0bA&pyi@Y0Sl?&zXvMK{)NgIar@w?Iy4chUe^%}%(JJ@dO=kSnkwQ_&I7-5t%k zSet|LU9c;_Hhb-mVF2Y1=0}C$#qNczOCR6D!rHWRKV5+3)h@T;Klg_)+J^GRg00*! zJWDr;&?mgElsM6dd;~dr7wL#*6Tl%xOdw6LDJ^0a}oFCK_ zRp=NV@vwo<$5$*RzOl8l!z1Fq8nnZHp8EN5gG>UTfwB{P+(7SDP^n;jrU(+`RF7|_ zudW*+*=_pCgg_Mbbk}|=R5S{*D6}LT+aRdK)U_ucLk7n5Ll9a>OYrgareiFS{D4H2 zsQ_9>C(N2-0Nrd{(+sEplp9p+;CV)9_DXr&^^$VVf~B8EriS^jD9 zBHe1^l^i8K8lqiEhiUm6fD||Va*OB;@1Z_&1ffsILTnGENHCr z=}4_*uL)G%;>_t4*Mv9CSSK3f_|cUNYr^qdcOV91w~R$P9Y{_BObbbjMSnOgh}>Yt z>*Je`if+qJsE=Q`<|RLl;UKR1z)QMm*dF$1RY? z;;4bRY(;>F4>YL`T847HtG6kjp93pPX0RB1aMpdC%wC9 zfdd;+cwML0rF~7#qVTf(?xay(zu+fNZd-V`X6=Oanyi4wk8};9#lAIb!Uw%3g(rRq z6R(qCBu6qHL+dpm>}$eFpoaclHRr;Qk`caj+d!yphs+M>gI*)Y;K=WKHAh~it$}2X z-5xx-AiuZ1S7Q}sii@?zXj<&y>KJ#)4g7UI#X>N0d92vdd|HcVK);=cRmiL|#oUSd zyxKD@sk^2!ylY9`e2#^Ea@NBW8Jj$Pd=ZAOa zMdj$4lMK>eFT$5=%F9qti2l`>QbJhM74+PtY$Yklt46qPq~TU!))A%`)zIaHZfT;G zS~x|(oKS{tY|U`nmA7Fh=#qIAIW8UxCE#pfyxA*Vrt)PmRqqi6*OMnHmMIhQH53zZ zv=j3sX|kCAg52}W9@&cUa!dBk0*EnSvvbxWpM?U5>RqotilM02!xiC}+(T`m6<@R{ z9T$oFY{U9{=~<2V#y&@3zt!u5Os1S(1IsA6wnRFw<0OL9%fT=&u*hicp!ObQU}*e& zZBP>wWEKkh6iWd9J42<8qIxsEScfZ+Ic+V9wQma(A-dt>{cHq1F=D*IFuA%ZrfIg& z>`om($%Mxa&9*r$|9 z&THCtup;dIEQCyRp)o%XGTW@9-aeh-7ySHZC7GH}8}p6D=JWZ*#`1G$I`9XhK|#@Z zD7rMi(0tx#&Kz>Izsl^V1)!Df#l^+?v)5aj^`(W4#rpH5r%Uzb#^Uqkm93?ft?g%@ zXR82UHjX;8HTCDy;>PpE*RQsr{PWk#^`++1=k;gLHeS`YpKUyQ_H=V;``Pm5=h>O< zpetI_T7A8-J-@WQIbUC#Z@#WKn_G+ZSFe{|)#v9o=a*hTeZKwr)uw1Q&po0OzvbUp z9yK_OA@%s#vxR4`pKfi}7dKu#uP<$GY(uNBH|mSqFqGxxS6k1YuG~qF8I=(TTlJ;a+t2D7ueP7pU(GLXKV4dS{%T?4xjBY6{jlx!Xa1A_ z9`i+liX=yQo=?l=p}4aiSILy=$wD*#`JY=}dvy9g8^M*cdH5FI8o%NFk=OS?57$a$ zp3M9w^vUQ$QI`&t1t{N*pFn|-KlgF>v*x_s*gf7J4_%<6WV~UVXe~`fEe!(?jSbRz zHhZTQ3|$K#-F9lsUmsj%7K|R|X6U*=(_UIYPDHWO;PE;DOYk@uxGC{?J)k9c97o>! z4M%`8-#Os-En#wj4?hNvEVE4r**|J$P7P#9f_`K6Gz*KT8s{csex3d6`piqgrt28B|D{;&uHN9rbDiSy zzr<*yLUmhj&cB?~e`B4wOr;_?#%hO0Vrfpp?JQ|sR>@5P>AOZU=JT{`bz6@bC*f{*=|z=l0Wclf z!LdF<7{cB$2>|HWPJD1I5mb5niyw5u%lL7%I=g=92NLqZ@%pvE?fSv!BLVBeSd#8i0X4Z|Z0Ic`q4d~BQMorA`qo18&s-gwFDQNNGBDo{!E^5o2qaU-Q< zYxTEA zW*}v2_x-kBJFRi(cFx^X?_iV+M+uJCs5a!cF-0^oZrm*A|R_l8=4;Kib~d z+S_gny0_BCnDu|D3GXubA6Dk)pFXVrU*Pk|5&L$!6uyaPmUsvTNa>3>D>ENHe2CA4 zBMb#A5Pa?AH~(0cApFgn&BJ$LSAYi3txygd4Mlw#4B`ikqNmmY>IeK zxv(l)_V#~3p;c#3eQ#`raSd}XZJvc8-3Zi@vr)a@M=q?x>><4B9CzHl8&S>In7?ar zfodP%#YDX%o?)s2^krqK28c_Z;njl9D2ha^u+eZBMv2H!m*$9C#XN)vd5fZ_lOsQj zyUme1w5(J<-dF^wX(Y1+qX%)bfFsj#VF3*v@zt@mS98K4 zyGqDx;hgPnqYFrEE<9t*@tGf0gry5TDWHqK$U;^Gg6C(|Sy{@$P#08sA`zg9>_I8XTcALumo|0w5`A(nyvi(p7t(#UIx|C)FubA}xI7E{ zo?s`yQ-~f}ppax)Z8vngUf0HOS@16i{sGJzhCHULGBAvDmDv}g-T4&5SvCd5uiILU zT3MxYC;PlGsIuA7i)|@pY@B(f>)L8A^-1MC+k*!9Q|h zjUI0m$~M{1OPs_kaVwBQfY}Rdl?k!0t@Av5(vMyL4@R(MzO^iXs1Hw>|8IF^Y55`l z-xv6l%|HEH7ux;}Y{28}zbgwl`)_k;Y2{)6_XR#v+kXoTX7beDw3mseskw~F?B$%Y z40G*`5$K6gypCJHmvi!$Gzbr1OK~OM$zO*3>BK#Sx?&&uGjAQlFIb4q>zHhz>+FsC ziC^CfyXdXp4R9~lsf%KJpb&RPpa6*n%49{LjmCDm>-l}EDi3dGjN-d~2h;tcaYpcC;vUeVtPI{i`CLj$vJ@vKH{u8)6v^5nNCjVH4XwzD>iDB$miem6N= zo0TPJow)+Q%Bm|Uq6FCNSQr?%K8b&mD7z6Xg~qW^Ue0OQ!{6W4>#`h1*uazmC=evc zQI65ZK)M0=Nj`r#^*2J z#yI`|=~6cT_rlW^;Qt5x|L#9hv3HKUu-Yq6U`*oMfJd{%N9262{#vG3Scf(I8LIZ# z=Uf^CyJ3XMx0J|to%8>J4q-kPWz{OZPS*pVSo%aLFr$8-eo8>RQoYH<76K=fNgrs~O+9TaHWpGfuo%?GQQ#+9&4tF&6crm74$6xf7vx4A zlN)sg*s@S^aDZHQgVe@#p{%}e@P>Hzg~L&>UpV4+8l|Ux;mFj9u_%{Bc*=t%0j~x; z*~%f`j1^DaejkyoKjM+iWrsF)#1#3v@1X`sF~-A48|q@C33&U4hMH5ObL7YLYC%M! zF`YlTW7pf6Un!dO+Uy}-ep1_>$c?UMoejKw#--x5S#lkb8gr(z%7^3?UT4Fzi?N$2 z>9TZiT&-Ijs(#~HqAizXhs+SjNHDx|j>A#Zp&cLe^KTWiE7e(N3ol`D@Xps1FdMs- z`lM7-ev^^EPrQ%G+N|F5RVOo&S&Ug3Mr7??n?3VS&t~mVs9&p&rC$>Q$n-T=OU^GN zab4R~l*s>UtpEBkl3e&p*O=1vA2Tv8=GK4s{^0-dB|iW6fB&CxUK!%eKF5a7J}&TX zEOqHn7auLJnaH3Jhgc9PG~dPth=MM!IZdy=(tBZ)7vYy>L<~li(V4Abti7o z7y0-afVy;Wh>-YO3W{I}7&&xQ_%!j8I%mxEM4SMZ^u1!@qWVGuWpNY zyVq_fdC#cfIi}dbG?)X&L_ZbF^wbRa z6A{)SDu;2h5p<7$Rl>+q)RB@nhxi`C$|_h3dXDR?Oj=gi7!J3>0mfL}WZy3F>y;a) z9=&*5&b{!ud<4Nd#;nFke$T0Vm)@<|{^%p?YOPjNM}beqM5L8AL4G7@lK^r+jlV|i zw587)l5tX~TR5QXxU}lf`(!XQoO&dPNqz7X-Pn2L5Xyr*W{*11;x8jVVb?dAH%9Zz zlb>?`JoLIlFS;;zoXDb{1EL+>)auT_{fM`UIzA;>)4|@BE1vvhT=JT?p8P~k! z={@sukR;DHpHJhVC&5%R6lQqr@iI{8vZwgL?z(5bCVw_Xzk0KV+X<@IlB3en8nnXF zlk!8ggd>DxvAVD6eYbYTfROQ8OL38N07`4z#I4cVqm1*SwM^ED(ORg`nNeQ?Hv66% z)JH@0jAm!cgH67d!(O?p7l_yO2h%0)_8S-)yfgh z)Aq+9g#t_c(qPKwUz8Qq-3n0+T`4c^g7VBI%fTWoaiPo-?I)>Nh5~s#CIw4mL{*B$ zBSHR`?jOBo(P)Yl2WF>A=?Y`^x|VCQmg!{SVw%@F@MCBm`6(2NN7mVJEChXKB@EMv z)DGn&8hMr6guj%|fAYy>oj^K}jkA2wb%pEmmChuE+W4P?qaJn;x3YtnOb}>0fCnbO zH71AoZIM#V`r*-{4BL^>7K96BfH9L>targy(M<*n7o#1_dLZly{mdBWc@;RB{or9 z#rG)~W&vZoMsbs^VN%k~St{GXDfxI(j(l~Mcn=Kug%}bq@ZAA7rgQkfjNddf^1Yr1 zcKnj-2BnKG4FDdcw1cg^>>dCOnK)_sc%Rg*z%4yi?_v@_hA?Lz?*l@n?23rPVNHVChb`wan8RLMG(qlzgW=4$V%0?CdB=EIqviz4<{3 z=;gk!);zrkxH0?dtgn&81LtQd{DC;XP&t3#eZAb5SIzH<24K*~gCNLM_yY)nH(oMk zCtwPIBQF_6LA)78cu#}eAiw<9{0LdqyYOh>ECcd|bRp5a3%AB^a-UEvA*Rz0jIF^} z6A9Pi|C|g-IBuw@B8iG&1AizC8DwW%Jb3rsiNwq9btDgScLsj0Q`cneLhb&6v;PFT z|Mk`W2d=)?T&-LR9=Q6ex`KQ&teq0f18d)F)-KtUmoYar`KRXaKj6Oord#$uFQ?0^ z+V_^#Df|>?$Ive)38toI#R2Rcv-8*H!yDWaGT1H0ZNzMnL?&?s`$C*B*7?$E=0bW; zA?VlMGxU88^49uO%Yv(AWA5CH*0pOte=1VH(G8qy(0Pe-)i*}waT|tm=VX2}sy6P= z{Hf^rrdL_6LE5F>N#7W8tB5jpFT~AgXV*9}WKuu542w<+S|?{wco}bh?0AIGKRVez zXf9b2%~1UY#e#BxqJThgOjS%Sb`7}2hjv79FU8;#<*iq^&6`kpf#Lj5MC1=T%O9G+ z3k^+wA`*X4U;dDEe&h|p3$L{kAZ)K|F|f#2x)tZk8&2gtMeZ+m?SAmY{nBmjBTrx- zBAU0ZX_@57lpZruvu-s6f0nO^KXzHzJR`z zV&>b{nZ~h2I?j8@8rN_Ny&sE+e#*S?^;zY??ej~p=JaRFceZ9}Sh-zpoX(H)ff*k> zH6Ix9P8df2^yD*Z`}fN9h-wOaZ-HaLj$rw4L34Dr0vy= z)^E;4;=;K=9cMM}Uwz>_=k%UCcM=wG4j0OYK7HVsFT^v~;}?TDQg3oK)l;#BHPUJ6 z4RYI+bG`Ml%iy<`9wX0o_jV_vvtr2-cHeHA+-a~=RP$jR`Mpdu3spL;;Xp#Bm%lz3C^XSrh*) zz<+vv*=ZK$3ZO>>H+W}$R}S$?~F zqjg2(U44slu)7fdo(X2KCG#uagmbLQ=W*gjNr487?=yGJt&t4&+>hLUS?Uj}pO)=0 zN&A$@tQlxi+NZB+pZ=sp`@)4MN> zE%%hlJsVr@Ih1QQ=6ixY@RJd1zmL4=N}1HM_2;Rbc}g@tl?>Bp3OTK2BOMSfcP-s0 z_qr+DM1ps1+_emEnHk?Bk`Z3_AGyr$^39ed13Z3O#<7zQ=iU5!6I9QSVtb7E5+KbC zkk|uhas8{DStO*mE0f9Q3c7$2dhzWp(4~R6G6+Z?5`{!8FKIyQ<`n4|s^w8n7$tZo zVIRZ=JiB?D210F(Hp?2FVnw1$-E`P(p5uvyX%A=OmX{?qc}%%571?L_oSxw4+$4Rl2^dkRrT{lc4cUYA35qoyw9*+##AZ)BNOQP0V# zKg&k=K~R0gJ@_{zgRUokCKD}>BJUJ1?hGRUka*78Eq}Nb2_5i}fb^1xvQZJr1UAs` zdckROmX%sOs66+~*UW0>=9F5rY)(Iy^-t?zj&-n`LCqQ0TekPaAR3IVUI4Ju39+TX z3Nop$Og3PU@BH^RIdVNrq?DmyncFEtm5kbCxz~6%Gf53jJd@epr5Sqfrgu|yPT(#> zX1dG&b*YRYe?=-Qnx$(}nH^DDsN3rz>TBcacG0AwOj++!5{{-I^B~h#hJHgKYWmRs zX{G2RFX-~hI|EOk*IpF3eJA!{5$`&kz8lA|UvT@R4EV{F4CnRoWZhYHc5II?al7H1 z!0S;ka0B<$>&|>KCMNRSZW#2hpinD0gI=A5{jN|=#J1Q zLpM-QosZ~aV0&>@l~c)2j0rUd;`f|Nay9hAUPTnHqW`;i#57t&{6^z!iet9I2fxCc z?!k67y4rK2_{{A$Hr+UpeXKdcboVi%jh4dv=VUOiGBCwtAxd`!!@dXGi-dMDM*J2}#{F4y#i3ei@8j|AiRkSyL0 zljG5F7@{MH7D}pMzcB&7h%c~k0FR_Uu6SxD|BHRGla0?~+wh z12bOd8H*kvjk4GgkN+^pG4zW6_~U;@F_~xT3ypf;gkJ4Kfkc_AI;_Y<(0+xr%NkO;rYVi@*=#y z%Ynyc@;U8?ZP3!#zWD1X@IlS~+I@QXe7Vmw{6BZiHjp2l zK3y*6fB2r^|M`{0rT z=j9#|?4I9=!Z_?Djs5MD20WTwN44lB`{yQCZ=!HCTqi~8<%t`eddcg^ z9e9^vbRMqR}*Es^@@Vsu<>%N>zpW(RXG6TbB-_`5R&fej{(TTJF_RaQ*bGWhjkBv9m z&hbwhN84M@;nBh2_R-1C_OVm16BJOJVe{q)Os>uTrLuX9Y_#P^)wy5_9K_yh?T;^!Fwm1wnf3AxVgDjg27o?`8n8dr>%mcf#11^XBG7{>-vMqUi6Q6c$?;YqT&XPtNT`{MQy#$e!-?G}H>`BIsU0vDAJ<7pV<%cJ|$ zOKwA4*wOec36V*V#X&p2UEbo$)f4w0Hc#Qe_B;v8hxVs9UA_OGsqBB*q*D``0LR(? z7Z!8&|E0yJix2j{FYwWgf8)(nLV&Q9DoYK{s-wP}&VAXE6|pOYwqj7gs!+4-#$HAJ z{zOiMUmG`nhR=2QpGxU$sD`+qba?EhclWAguGM*+gv&RT@!OxQ4Aj~6O) zb92ticr+M*X0uMebUG8lW*CJRe%Ff~*Acrm=Q47KLoXs%vgFK@wVXaHNsnW3RjxM* zC@UlRWH-3EIn|y`q;bQm&d!z}55pLp+A~&ow(mQv9=$ML(N+;vd#LGke|GyLw9QkH zShFBs0c~~M&KX{HlNKAH^_f_aPj&)7@nInUCQP8?CG10K58;G89Sb_{F8$=piHBat z@A-f?VT5m_&CKQ6c{y|=ci`a6t<9!aLTA@cpb7r%pfZl?U6*D+?qwWM+B>5@c@R2n zFS+!*Kn9F!yqqJr1?}ipO1Y(&b^w`{^kO(_2JUp-#C5tOT3BdW;LDf>Q!^Pi7qCw( zz)ar&EW)c8f|GKH7TK7H#>(Ouq_HNW4>ZM>>IN=aEJH@u^Qt!8f;!n;HDD8 zcWu=kG`%9N-JCA4ETm+s?UzXibS+n+`Hev*YtDT3y*|mM?}czQijb%xoJa}9JLilq zuW^Kj2Ybd{@=B4XF5`pt>`>B%owO7b=z2XDx>9`09Lm^nh@Y;0+unvw{A7@+|1=9K ztf8qCO6piHDj7=zXHagrBw8&x${&F|GdE#OOf1HOE5pVLAUR1 z#K&bS8U#-G ze!q_kE_MXzg?ln~<;6m?>pMM)CQ)-bk%!SHp~Lt>j#;(jGUH z8c!_72`fodYC{OrX=Q1a0`5c(sF!%73wv86!i^(ntwS~KKsnpsM7N)eqx^{hPd2DR z)}a^alg#Z~JLep`7oJY{Kp3}6^+g1aJ{?^v^>OGLbotOoFH2{JYe)ftrxZ)2czWX{ zjHb>gio75pv$9i3HR=l)s#|Bia@6sWU7S(PrRpX$VTSW^P8QZNC4%fw+|4Y0=vB;N z(?vWO!!N9qPnu4ix4k2fhg7MF(58s!(cL zKx-=KRmwKpFS17X7qHK!(@au&oDiNymwxOO%p$2tDuOak7*x;BBo$L}D{}4^#=NPs z)ay^4CCo&@wBZqUR=R-1j(pFQCC&)`jlS^QSyxMPI1t?-BNLlBY?Fhxayb)0;lyB( zjtKrGdc@JoOb3$*CTLpr0&!rGMYy?F`7x_I&W{Y}_BB15%sO*pp#N}m zdX^3zHRWzsr~MpNrr3v_S`a1}$cAwumKgzSx>;&TAld0MO}H*z2r8K#8fVEIsb-2* z%U0JLxItHLJ&c)A)zj&q_!?L+)w!IPI-sI$8db`5)$C+JI0^e4Z*;rm>yNaUPRT@u zKy%|b?D&B1Zn~0ii{m!;REPoT#{c4Z)izET`cTQWnu?^yaI8iiJ0UbRjK0}qP69rl zKWpkqW24^>I~C#Cq#l#U;h_(@LRa7MM^^=t|9%wWtNmrI0$n>6&>4PA(5Ge)%ZGHeo2BlZM3e=W!bmxrW<&1ye}H0 z1268#HTUnbdN

J3idRtdyEbK+im6w+o0)>!}m$PG(v*g?nuzKr9f_^ejo)vs^RU zn|>KQZ&y%fkj?4$P*a#0sP8?elJEOVr&%4te(5ZZ`u!~X89&8obFP&yY43Po@>^%} z@>3Lp$+_qQlTXRy1)IDF4ln2MoI?Di`8=M2(a8s=#I<57d0}YS@x785%E!sj5Q-Ie z%(2w#yGh~&f}#wCf!(E^aFWQI3l_7bKbn9Mc)#D8L|ha)m7`R@oC#`LCu+`ot*oqN-}X5(84ptb zLF(T?>W@7+D3tnK^Fiw0meju&s^y)Ce5RCpBl5XB4=l`>>h6 zj>XPuE`Qk1KWKK}x@I^2M6OV^6ICB{yIbAS-vdc=C+eM`mV2Y$iT*q&c(*6{IUI-= zt59^Eei(akqKi>{Ou?n4&-27$o@)K9>0~+>60z5j@B#E0yBK)>=~-KJl6iRyxQvs9 zSa|aAXiCOLU=tCr8KC+pF?Kzuu@Wst7&%N-&B4aR70^i#X)4_?7~IU!pzPspOm4bzx`>6mP4}C&FY7j-xG_>7tE!D<3<$@{z;J~#R2Ej)y0&BG-)@t~S|aMbI^0W#^WR z7BuK7RO{L$kMJf6!1X|o-#kG|$D8|0ka)WAEmPyYBgA`0gUVuje~D0-K_;QYBg!)K z)ejWfp2PWWrVmJz)+?I0Baum`EC`W+VzpCcGVqEEX(61|>B zVgIHL5%n6Tmgh(Y4$RHf_#OR8C}an02Z>&Ud@HO!ZgvrJ`RsC@AvwFRIggP1c@o;D zd#r6Tlf@`I=iCT^zwz`JSe!~}fWgMxUhK550LM{yi9tNwd_ENsVu=bn!;o?XJARCj zlE_RsIh7Cyo?sIij|D^qbVcS*kogj_fs%z)L*#v+i!M5v3{+<44)$%_@ONth=Z*jN zqOdri5nzRAF_${#FSD|rDj2-ebN#;8U3ET*~wn}+&(eC z!a@~}B3!&|Qnp;A8bPHHB!>;Qp-2z;I~k&k6vmUrF&szWJOg_4VXY@qVert4K#&Xo zZNnijKFwCW>%smP@Rzvpc^;uS5}39c;Joj-F?|gqimjF;lzLmHZA@pS828$xEY9VT zj|3~C0`p4@7i}1u8posI5E_bK+Z4bU0fky%YysP8hk$ws+oe;sTuU#~u#RcPFn}J~rX(Xf!UQBG6u9uCWaReE zDWN!zs(Uuh_>Sq($f{Br4NYS-8)0YDvmiDslwC5tTOLQ94|5457zlk>lf5aLy5 zZQZ0pjvf95vgBPS{}WnK<6F!B)NC#-=kmWTE-yXgfBF)i>*Rl$KB3dG2$;??j531Y z4vtfQ@IGR?L_!5woIL1=o|0wN8G)W7ayQxe_-$|=gqMMy)ToeaWm!t1QUY@myxGsdc zyAb~la2HGA{^VYG5si2(ytL?=vs4Q7AE4m2-OhP^*YjcHj&uQ4PrWkeTdD|vUoHiI z2*etP7*Q6sOiW~jU}f1gXQdS8-`!5fjk;s>L0M|ec{&EGgMm*m!N=m13$8iON&%j@ zfj-ilYwu*&7RpB+~c{x%2|NcL)*^0fOzU3p+P5}Ej8V$2Getw~SlQ7eP;JoIqhirZ0X0}oSSj$xL%rXVfxa{8gk`4%F>Kwjf63!REeAW>u2U0vxCZ| zIis{*rKt+BKWVx#om`&9NW2$>y1uVhV2~W8p--Gm|Jx+P@p;G@Ph!MrOD>>Re&Y!zp_hONG3+ zlOSEtECb6dU<7yfdEe!Z8(4EB7Io&GFv4xbmABF^Kz=u`V3%(uqEGV=-Z1H@kyT3w z&P=8`E&toZ7LzZP_>|#hGlbs0$b3k@`jCG0OQv7FfpoFO*3!9rOa@la>(b{9p@gTI zI1S~%mV2~dy@sONd2J4?C5clmA?tle=t`!>qV%jUY{gWG%-fRuteKJp30gCyN;0%& zN|vQ)Ei77;qcuBbJxQxH_20QE_N#m{_TO&UiRW&+4YY?oeY#v=|K;zd{kOT)e7g7_ z%eUPT+viVj|IN?;o_p?Lg38-!qul;K-&~k)X6Ju-WnuZj{{IC&kDNU}@CTq548*LH zDsVhJ^Mj8Lki!ThbwUDt=F!Z|Bj=yth!$ud$hT|wR1!=e9dXhP)Yd!pETyEC{Z|$<8YKknreGx%q9=0E@Tmx|W8s#D*i0?sTvm))w);!oKp_$BM$ z2&?expgJ?tIQ;2g|DUT|Tk;@wbrU_^>TbX90I8mO$*L1U?>tOu?~H_fk>8MhEar~S za@f=E5}n>OC6&#=*P+1rq}hrKXJ>Ui~O)tPs`^9N`>a;0zM02UcPSaqHaKRWa9|LprAn<;En z+hNr8qIx?_fTUKPCe)6@zTb5oJ!?PhJ!>}?(Aj0ijezj_-g?ZIm-VyeYLJ}OJ7=(T zSDIDPN%Y?7yH~4D5C$IAYs7xnYrD`u1lmSD@jfP^Y-be3VYDjGZ>V&F>dJc34!c+D zNwl7HMOmx{>#TnYW9)e7_Fyl*N?HT=%2KuO^%AQ1D7-+Y3GZ@!xbCj|gHuuX3|-z~ z8DCh=Ao24TpZ^K?|6ey`|8e}ku(-66r6pz}iet3#b0Uut1rkGsyy|q~){jS#u**3UJOgYOAaBH(a0Z?Fk*a@7^I%kpB zTbn&gl3~0$H^&eguvwTJ1*1W|gU&>Af+FW;$)sFA3zKv2YHjw^>CQU1)2R2|w$}&1 z;lLZZr=XN`!DJM*!?jtmdWlDF;P$V8lHV#Xby?(*`oaks^P7u}W%vXC z6JMTn=;Xv)*{NK!2N! zrRN}L=9`Vhr|@@qvCa=xpxE;zC<1>M@ZmH54b_^BCOlYx2Tg#w0)Lko7SwL6EaF!O z#MU$HViPJuoyOAz{EE+?J%#_Ezl%_I1$v0J2^hRs#{R&gX5%S5Sg1o0Z1OpOS!_IC z#t}flMJxzIgx)MrFXpLyV{rumEZ|RgzCfsItUw#kG_-;}L5NN4*dml)fS%yLFbbR< zs1E~n794!hL}UOoLM{$m{%tHR!AtlbOlIRbHs)Ys(EG;n3YKdkL@M80rn#aa!KfD- zPnU5l%MOkOrmV5B471mGN^=NP!M#AF5DuR+GND}@2do86m|d9VWthv2XYgv#;eTPA z^Uxh2hx$@u2@$vatWN*?H;~mF(iQvxdR$jF)t7Vb`UgJX`%7ikvQ*Dj8)wO&UztTm zLg)Yc|4KKCm+fe79k^wP_6A~?$EkiY-+1N?9$A>}x~!_s ze16zu7JqE(f7=T>XCQaZ;|8cXH*aH{{@+|&&aMCROAq@0m-ws|d}dxLBA6*GGt+1| z1JL+8{ZZFjT}30?tL^>GpY}G6{&CzGbielC9zJ6~HvYdo%MX99VgFfLYA!$6f4;!S zKL6~#cq_vHKPHg>OS$=9S$MGje36e7<(tm&)<0&HV7Ewi_^&f}w7s#lw+*75N+e+? zi9C3Zy4~uT-|c$ADk*xf&%?{iom)FYeE8hW$Ikz1`ff!AjOG88g`ED^oL_q2|1a>_ zINWiL3RtSVcH~e^Y>IHaK2m&N6{k2E@@X7!#iiwimE8Vsd1ZO=f&ah2=aI7od`f;F&BpUa6a5WN&ivS+M_n)OM1EV`!V)*| zWBtaaxW8^Via0S{AO%Q51~?V8SBf8Kw5*bIfs2vi|dL= zwa%FvpE;FBkH}F0ZP9+$!)uH#xtXAQ20EC)yJ6q$P;gInG=UewJ^WGIGO_sNK=|gRFMm`O~2yb3IBA8rFgqN2po4eWi$g;Cu>cg^VvpH{1-hHKKFk5$&yCTWW7O{= zNP!*cCXNPacwhN#*7UJBIq?@>>%JDxI z-bS5}9H^DAGy2YS&fLiD;FSRB*KKqXsR)^X(Ao?8{qV9uGc3G?kvQI-yskfUF3)_t z^A+>-6*dR}iP+j6n)o%Br?A73d*p=%9z%mz6WM2k(I5JL8;=t%oC>>30W|)Neob_7 zF2pjOs`95wA~%S+9}VZ&!y5AF1^Mwb7|{Vj9QKk+H}d9W3v&tr(kFIl7{)Q)!d2sn zCACXjFkJ%CGfIG-whn&%=j)x_?bi1G=E2s^{u}9vMFnO={llY!zi)4zwDvdlwrS%0 zIAz1jFzV89;R)T4V+7%2plm=H9+Hp{B3XmdqRw<(b4Eemi(}_1962yH;SGfdz4ZU> zM%^k;t6&e{?;!DeR|2m>ED;)bZu2q@`Uz8m{_w#1On2z}j?c9a!#L%B(x+|@LOey2 zbsRjqidl34-#b0;lH+SIqn03e?@BTkVA;T5`dM?>mM#qGvpICX-FvltLy@0=r*xsKaL&q4$+ z97P!GLoQNsEp-0jc|#_+v`6ffry+v}r_J~A03-}F_k;7=jd2Q(iHGX1QG{`rDiI3L z*$z%|z~qaGRD$UHMFumH4eTDgIWUmN67>qOLPx-epMWF~W5-7!O6GztN~R#sGAuj? z?ni$Bl*y-&a_|IFAP>V^c^^9-kj?Tka-;vz>ocb$8UQ-kwA5LcpBGh90ZL1CCmf=j zP|b-eCommD3dt7{lCCr)6ApAFHyU$p3~EqJ2iA>Ya4H$=;O)ub+mqJT&Jk2RIQplQ zWs~i!jYZE!TmB||cWwBR7KY9LIKZ)F~&&xZ!k1$FFmHfBYIjcEa zZs5oGca-2ySPVhSh20)Z7^31h!3&F3gtr~zeMb<-HCR(YO>ruRsI9m`6(0BjgL#d5 zJN$j)A?v{3$n(x?&QGJ@6up%K1hf-$VHJ(37dy~z`to;o=u*$sw>s{WfIf#}yB?g&H1?S2?tdZ+YNjMAylsG<5{ z*r%}`f(|k|9Z{!`!U4l^jz)1T03Lf$o1Td;_06jYXa{HUxF24)=ls{hTOr3oF%id? zAo=ji$tXIU&=tO4ZK=f~*k%a=e4u>!-8%UpiMg4CdlhM1%6Ls$;A4M`bJ zhLMN1AF4=rF%g1`nJZ9%`lE8!)T|0!FQJI2=AH)N?8Dx86?;YT9)H?_rRMGa*1@J2 z!ZD#QKPbetwpjAMmgmfvD!B-DLR=sduYW}W2rztRY9A{_sDUY6^A-qI_8lKv7*KQ` z7q1=1ejP&xfvh=2g*4YW(6igPk98^TGH+M_o@8@mJl@rzfd&W)FSUiEm`IH59nLoD zhjAhT9I%xJ-_~$1OTmBvp3C;8zUPuMN6^F;C)cH#!WTjXwM9#ihZPZ=paZ}lUQZXi z06gCTl*;|?VwbC8Dcw025^Q1@9)N_BoY^=u5IfCNgy zaIMN;q!Gj&B_YbPj)-9@%#SK)E|m*=Vnc@Jm*lFtiUh(Sh>2@X`T+KOr(U8zL59a6 z*W|`N#-&49{%X<|8e_Op8O#Zgh&K`?YSHjXl(+Hf)zS9PJE*nl)VJo$X8JVi{5Inh zeP*-$owPKLrL-)dwB)TsKv|j8BwA8PqO7b;ip;W7Zt2UQ>@8B6zDxLJL-Cj?g0Vc0`0s5pG?ZD4t{^Wb3?> z+X(IK@9ykxw|4e_+CJJjfnq3q$F3Cd8SI2u1MvgsF6pmwk)&mU2-a$hVX1`Y1yls& z1&uk3k-sI3OGH5!bt#aVC@J1GPX;TUS``Je;ARKO3IB+~X&feAL1UG^gO|%* zQa@vBORfp(u&skg{f50O&do}LNg-pkN^K#u-m)gIDeBQE$S$NjQFw!$@X}D)6wlt3 zyc92Oq{65tx`m>o=CtufIUW$1ovv{Qq@hW-&M9?3v)&j6IzP3~>B>>${XT*kLQ_rz z{<3soFaoTDS)!11VIkKQWlZo5pY0 z0lBI0@t}b$ej)9$1h|Y&!z7#6NOYiLQIrZ73ql&2uj@>jc15($wrQo3Tp34dvX@LD zYD*K~4iGh_AqvN?G|-|(4LylSWtIJ??_hr7Q*-Ln)X1q5qVV{qgQJrP#h_Xr2cyoJ zkXDgX0Rkoya2(SN;8v-cimOSQt;&g;t+y6@H zB%-v|VoWPBiiJ!dQ*nUdkNSScPn^H;20+H^;8QPK$Ep*o$$89{;s4df{=PVZoE-Ts zp_~W@tuMHRn|oq@co)|8B$u?kQ?%8=uaYU5ZMzs{d)6`m0B@QpP-rKGAknoOKHTAv z7}lXl6rK#)3W)o^PHsZiOuxwEW9S;_teB*;1dX$0lC-KmmYQv(4Djs4{97S0Pff}O z9`m9EtM9$tJ=q~8bo21AwR5bQcZ3Mk5g(FvVh9_ZTV-qK0N1y~0L{yuG|_A zq*!4T8?lzM3lAVN!Xx&SDe2G**%1_~@HFuMP5Dl)oB`Jl-PBXt<3wXJI;+bPb4gGv2jVgKIJH0bfnGww`mp@g+$NhUxZL8);`JGEM zfap$#Km}!|35tpALp7x9$;PYJ@y>s5TXz^@wMyf~3TH=hq)ObjI$~i9Z_Ltydy<6G z7>Ok*2U}VjPi%n*+*38X6di3e;L58`v!?t{`RS-Df?lX#Tj(DR{iYLbiZZz&Y=;QL$pyPEpO8NHVK zJOa)ZZ=TWYPSU0DyKG86V@o^s+vq1~axzjKcI`J5d@__U(Sh8Nx)M{gbA*5qHs9C!{%V;ZWA- zhv9iT0TW;~hfu;)2|^L!@c)yejr~ax3WG!!Z`2Y+(!D8=Xi%kqH0hA^zK*AnpMTog zopeZ8_7=v2V5XcO>gD*s9PjRIZcjRzV~~zsI-FY&ANU6M=hr0k0Vs;(KA2n$(=xO{ z$90vRDR8ff4Py+VVSF80XCx_H$^pk-AJ=AKP>ORG#A5#8NwA@Sh=;;}u zra`(>;*pg{Gt0`m8z*PlRUj<6CMQieZ#v{@fDMvuRCT8&+)h&;zF0p=;UUFZW{1>{ zwCe0^?bb-p^1sKl2`Aq;O6=%VHXp%CzFET!e9hUaIfp+Tf=b(UDtm5p-i7@eygq3E zi-N9ubtuTPy2i9zBhIR^>WC7JIp zd`TssoE@eQyi*jxdGXbYOdH1A!iw##O8$OKkQoo;1hXJVzjCC zJ@&lxc9v9~)btt*DEU5?y3zKpC)@jY(WJGvad?>CWYRY881ZK7;FtZ@@!P{gSQ+KM z-9!IxuWN4FK_u6O4-aCXudIDUA)OALxSz@qNyZeUT1!0-!%OzhCTT5CWU{*|y7{H< zeRW;5;q?5-YXg8r;3acn;fm)5q9MNi#il%E;SehmUSpE|(cF-btws^CnjDxuo2cVT zibGx1|Cqk{>11!0iT>BU-E{XrJBrNE6S~N@C7kr=+>Z9YBnF^oxL>)%)QWgo27_<= zus1?^;K%W(>_(MltjSGe##lpSiPLg&u!(1FyKlF)TR&}Y;03p=wZ`2Nz-g!ki3R0Ho6`yInJo$TsFV55LN zzY~RcU-)s18syyO?v9hHwU!Bz7oOBH7%JYxqNKA?ZYfq|$80h1v;|trP-$+vcD!?F zEWs0O(qbRfVo(oI9o4T#N0>~w?FQ$F*b%Kg7^zm>mWFzBK3-X^+V^+TOiH>bo7d=c zlRZ4>1P$4PO{uUz4aEH!F{g-bk@rd*g|Q)i2>rsXqE0n*fh-8qlTa9EBK#T8y(^L( z9Q+`ryu1@w=rufA&OcGJ)M;S{clfla!4(YeB%FGDmWAI@aZqcJu!M4AFcfDX!tj=C zKtzLI2cWZu-8j91JM^ODijEP}qd$|b2#Ls0=|Pua=s&|7dx>mBwa~uO8nEA4mCF{j zK+7Uv^ISNHDnK}DjF|=k{#5i5IxnR&-e*VNL}`VI5Ls#DeFlm~+MT%Qk`0xRiBMK5 z7dNAw;Of%7B2JrmRKjaxW&aG!SnKfU;Bfosr5}sg2)UYlsxTbd*<{=o*QoM z;KALiwFlPP3b8DT%sO~#8F+LbhG8H9GFURXcT;CFx)7Q}hTaO=r(<~?h7X0Yw`Y8gfeF`S zQy?4h>O-ud$GPxb=Qp4jYGDFgF@pBDkI|2J^I-4r;O+j_af&M?+~2;UqI9&K3U}-g z9YyI5%EEf3{7-Sn$b0~<($hEX63-}FS==f`p(?y3NPf{YjoPZPu*8uyfVF}2dhsCx zdaX1L;ao268~NImBcT~0Hw)mj$=T?GBn-$4w11@?y%0&lOyHd_9oUYxC<72x^p;Dun4A~=U6mZ-ZzEeaF13tyq(YRUNuA}`7 z%T}=q5}2kjOA@P!(-gEIgveGDE`;rwd=^eKjvGzt!X6&l(Zxs>(jwYDmf3YrykBSd z-p$d;>uT2ck?7kd^kQVymR1BjJsx1radADL9LKFE-Bb9tXVF|ZAICd;hr96Sab)^1z*g1mA0a0N{8*FS()oe+AL#y2h764~$I%k*hR0BoPD_){ zdS)^+vwreVpos0)Exf*WEDB}pO*Qm`5Hm%q8jrWeBdqa8(!&5T2A&)@&X?qJ*?U{O zYv(3Fs)a%nVuNDU!JN;>u<4;MC*rc3c{@L&LZmC9q(^Fu>I;LQT9UNp4afvU-j3`E z<9eQugeUlh&{|Z=Xr^W?+vNdhPR-DqFv`%8iEwbHLtSB94pNJ>2>*oPl-SQ5y56Cy z<>GXgt$sssZ;;PpknqHy9;;SZq5$mpBy?saA=3c|W9%!I zy&AMbJ_H5!>$sgWPxoqFA<8 zbo5idb#(O0iF2YO`Y-xCbVo<@dGC+dKXCdJdfetUX96Ha$#yMat+EK@%y}7e%rVD( z(3TUUj_0_8X>59leE|}AMs@?WwQm!paAatmm5G(~LguX!_vqroWjfU9G00^BHUEki zeUl_(L?WIwNnFXI%($7UwQcS;e!YF9wN`8ps~&zT0(n(d1xjT=AQig z&C(}@&Y3hh2l83Uoq-JKkW^!ORQAe4V*vX9WGQRKFul@z>d1;Va#@{&3b;Hktt8re zy^C_vM)&v?<~~0163dC3R(XNycjNd-Iv(6`<>Z1$!KJi~)?C>*_>NxouqH0lg(fCZ z?GZ*8i`vupZJZ8Bm!dMgaDEo2MrT^utT}BcQv^afvYA~#(`C*$P%2##=i*XnZD2YB z;+9qRz>R~~Kn~)*lJR9pjXS(cf)HfFCLdu<#z>)On+|NQmI;YErZhEzt3w4S=7}gi zQ-M6CD`cSgG7qT*zAJbMFw2pgodGzIvsU*>L2hM(K{9am=U|W^Jr~?X35zWWB7b8t zyb1cxccPbU!DoGN$@Srh!svcElO#fQpwnieZG4{+n;GpMHM69*X`8%3LwVQA!=%a|3_9FexJpnA{(5l?p`RsGb^Yx_w72&YG^$6*5w&WgQ%De+$9`-j`#x$OFo%heyZj z$J-kw@Yyz%IA$Jk)-3G&7U*J_kJu@l64C`+rHvmNvQIiLjh&7AtaSWt{cw-WFrKYu zHVa~J-4w5A9~6OIj>!d@wW5LOXIws8VSHQKobKt>IjhNpV{q(N-EX%Kk6*9XV5bJS zn*Q4~FDEhk^RdRyTga_1Lr<`N8S5K=vC>WXkT>{TUMNR8O7J)$4F;}-C9>O}zD#WT zE|_Byn!TJ%2W{w>8rP^>o3G4d7N+m)Z>;akp;w8TOj<~gZ7J~?`om;?Y&v#w#?83_ zZk#}aeO~pLN=Q#fPL#W&q(KXaXhy^ceHF3icY}R3$q`h!_|2o73WLTHSCA1N#3lmW zlFckxCa{*d`vzod9vqf7{DRVCuDF7hvU0hX_u>^TH9n3s%cR-28`;P)lecRLk z^Tpxz)}C#)nirnYS)L~1d}91j0&#leA8mQ8)BwnrWaeIHWd*@?Ztr!U?{EICCgd`> z#?e(px{_c~N|$CEez3N-a9?6H3jzZ9cVVG#VD8#mnX1;O9dO}(md{Ce=nR4#1`3Zm}eo4i&WXi-X zW`)i(OxcepN=S?W==jyvdQJ2#7RLfNHvs#f4CuThuoJ}6P>KsZxSIc!$6S#@tz&$> zCB=%Er@*XO#9#;-^N{C|V=g-4Vq?TVG+dUh#KM3UWH+_ zs&K%QMi&u0}$B!S9;_qPj#65J#`} zztjHJ7)LQ@_JIkf<)M&@h8^3XIYZ5fRDNhPyj`5Yc zwK>sw=;@>qDL{YZeqd5Upm)98qo_wB)qvtdyvTOSOe+bAID45^G|Wm{X5{d>95;h& zt>i`AKit?7rGS8MzRjj>mYJ%Xly55u(w4GP!R-YGmV>cWrgDx+JI&+Xn`Bxt4e|gE z&bdC5=8OH>#31zG@9eDd1M^xKm|x3DN9-_0zAY;KcwpPi;jzp~zT+Sp39vG(p zTQmnXuuM7ag+d$!{+$Rg{Dsp;&*jn9h)@#67~shf;-evbE7vCniwz#BcRWYJs8m{)_#~r$B;Q7hVHU^-v>smz6 z*_qJ(9UpF!VRZj^zq`AByzvVCp(~#Ec9yp248vqOhEPQ2hPZ{3)7V5O*Wy?prCN8C zT{=-@o=|*JENTvMw-K%yqk1yxSxLv9MaoX$rMvbMnk$o@)OG8peabwMOLCs<^ew4b znK?BLFyGHbhPn=l>!r9Bl+D;JSn49stl6wUt_Jv97^d#=FXfc>ddax5dT-s{n$gNR zp_vxbtceyT1n1+Z^J^== zZu0!~%NsB5baFob+Mw}mE=|pQ+Rklm9UN|Lz+am;S)$OBKGt#Q(Q@WosrAOJ6m-{G zvb!8-$y6BAu73|A;r8+N`p))$1AY!=#ER{JgbMNYGpPUv z@+?;DHW_kZwG3S%|7a%T9057>(95%ENw^(?8hK=#F|{wV3V&Qx$FYu?hDra4QAbwj zEcuG+NsX*5|5BaMDmf|Is^~RkV%HNUzf&?7S%VZ-1tH}G%`=U4jpW4iVFlEy)w9x( z)?a7&90+I`3&` zBIHtf@tX#2Avl7$1m<+H1DK1eSj^u_^ zqrf$6t|a~Um4sAiM4e`x4eMq^#b3WqM;$oL0Fg|^ie7q=vbQki-jeVJVcdq97*@Cm z%vlwfz#sog6@a%#{p1}1Oh0%*S$3jhOh)u=O8HwcnpGdADRD#oqMh|lSv0Zb?2mGd zmG5bZqjARqKxO%+-Mlbp+^Im}#xStf7P>$wJ&=@*MtB{Ei(s2PtiXF>@&$_RB0Z8) z-Y5oERS+M&&E6!+iJs&asg0{rTk3?oq?2nJ(++|`PMm7%*1~RiIpfq=EE3T4;5JL% zB|S=05H;VX$eNEq78x~LEoDa-a&iep!r)S0WMvpTS6Q}ahq}rJg#p)&+|Jb7mh%#O z{L@1fsE6{Xlj;dhyNWbWD?-~M+ww3_w~uLkROLgrGz<3JxT8SFmQV@};Jmh&_$fe0 z8leRdwkTBDS^wKUCc=bv(@|s)Uu9~ARtDQsNlWIh7W=kek-g@{aB>$Rrx?tjLe~{_ z_D!%UCAxOY7Gov?vHnGuG2Wn=DwJHhgA>|ewscd`%j5}{!-mzMssNFxK%V zjXS!mI$A+BfJ{XrQ_C@v5_ni9h*Om+9N(eob>0mJmMeq3;dTU~wH7~CSMtl-bC*CO zQ%%Pz>>|_D?ueDy_@$yKtp_kTZoVc<+O{#Mp;I7G<(XtSF0s(Kjbk?1Ryeq^jqoGT&8c*aneuYPL`i9;kTvd=_v-- z>J(^LKef}~>?9m}i(_#K2~~J3JsqSOh38x;Q2M+e^sob>$oB;JqvOBrY|#l)g<5r- zk*T(#!it4``fNm(F0dnC(L!RpZcrCVUqWY(%-u$eKG? z)vX%7ql0^3b`m$D0>93&xTh{PeCu&Oh;@H`y}cC_abXuQM0+VaQ`uN}7RK;wm|Cgb z<=!MVSq8?H2l92*s8JuXdeV}-^jI+w>9ZNeOYXYzad;CQOEbq()h<+)j8 zo&%m?Mk@HLc;Wk&QXF1*3A%v$BiG-=d5K6kDG2QdQ1lOl7voVD-;=XCJN~RtO?zLQSrw#RDeS4=1qJ$z?%y4-lBdd{) zV4=X3@-0ek!qfW24d=ppu@hs@CsQSqM6k} z{*vb2GrbgxUK<5HHF>drxVwHFQhSOJlTEwm`Z~oPRp8)|ROV5|5+!1}%H4=v{X0v$ z|BebvmRtXwUG(DfU=dCUFOnb{?MXv!K%$ei>WA8sm6{zat|?ocdMI_cji6*LdKhb& zB>H!eXzj8nY{>PernClDs&vwyq-b#w=iclTJB4>xHxQ71>&v1M;MNFkYYa0*Rb>~Q zi+Q2ie8JiJo&A@yg=*y$Cu_HuPP&|I4$OEki$Aho;gjS|tvgUo%NBElGL6F?IoPb` z>&j=h$>`3(cC#8@%l#jP(ca!Wc&$Bt{4FsWTY%XT8I)Lx){LPbuB8^od?{80Dk};Q z$MIQil@8_1n8PcQ<9p*VCn&NW(37Lhzrblz3HLdR|I4f$9Zt{(;?GCaXxlM=^NYtxAznU<(Q~-CE|60y8V%mi zfYbq>PG?E{I033O-=+G3?A*SmT6QjGHT@ALztkIKlm5~KXr&&4l)oK(I;)55^v9l_ z;p-!MUB~jyopye`Exh#oZAHP_9ta~-eU~E9vmD3dSOi`UJq7(Fu%2=@16tw7> z+?ZG@piq4sCCV7Yom7lkq13qNqX}tYbS_-=_L3Pz>5#^X%TV*5;-oxAr#n zH|>0cPq~4```Jori+t%=UyBU1ostKZQd?61v4w;*YH;`VdniSZu~tM5JvWIU-6dkh zzKVA{7cB`rK_pP@G;jW*6GUW9%hy_l%PU|a@=OsK7Nz;hyH^(-0ybY zUi9Uk0e3d((c_;Ac8`E51K%yi6n&7a0}IQK{!veOac^ckfA?-i12}-w8+`rs^ah9l z(_5tJjOVi^na-MII%|@EgEJcRXEf-~YLLxpa53ZYtmm_!bTJD`7qg($D`vo8`eQhd zGaKBW+2X;h7I4~UZT5^)F`V&OmF<|`YDO@YS#11=?#Dy&1x_Mm_Wg1HF!Lu z!OE-#GajR((6k0XJZCnTfe%1+r#C=)JRPHYiIVaTw>Dmb-2d%V0bCW%62_yLoZ1o< zOWdrCP_mAgv5aLJuB6LkFqlVaWTxbNY^BlG_Z0CpZO+rBQ>`T+1E$0yYDR>4M^{*7 z?-r0&72}x1MT#a~ew*E&4PdUS=H(LISvWvE&oa(Ns9of=AzkyWJ}*e(KczU0%L`^~ z^iL|x&>ft$B_<0cGH;WS$wE!uDpW;pgLrlDj>jUEAR}I6Uo9 zSsct~UK>`B0~SXEopUTqNcr?-d$-KU$`Dl2di>2{bPI1}n(rR&y47gcJ=J>=CRt{rDY zO>72HbBa0YCUT>0FqJkIP$8pLs@$RUzTQ>3vNqQTVD)n++G6MdVy+Rf^2uT$1?z=l`zZgogsr!*u=53cagt<4@)gUg%B z)$1Q7Kv`^sEkgpWNqQtOL>;P&nwv=I7q3kuZcn-3Nz9zZDUh+R(WuN(gib8JW zvJe4to5wHMb!Kb01(s)}-nCqeY9GlLyHBPw{;n**Xk*Upkj}skI&+;bZ=1i!3Ny03 zyZ-X_5j`Ec&MV3-YD)S*jq?r6B82Z(Fy5N0%Ud~G|7-ceIton93mOktK~nATYWBI_ zkyYN2A=qWo^=J+Hv#t?|e8O)(i=G%y)MxaBU0e0@fNyJM{cIYvdy>~0cfxM1p^DCm zjM@dA%`(v-Kg-RP&Mwc&97>ykY-@{zWwn&p-w@9r5GF4_viSG=>}o)s+Z4s|jl=+Q zI40hsXIZZBOV!UU06#{`t%1s)s614%Sk=(VdAF@%SE#^cpE)}{I9DcT%= ze%4~MgaapbwBZu7=q!oma@vX!x=rfo@$d*H?X(dBr#9g+Pd764waHgT>8y3CF%74- zJ1cWm{uL0@hg5($k|sy{uQ3@*O_HFtYpq7Cp>PgWDg?W;pxClY5|42nln340qgAo>;j zSp?JQY!WWr=J*XOA%}C)YcoQr>nfBmy>Z88Wj3vfkgAM?LI;dCEf!6ACN0VoiIwkM zJCz)>GbtQnl^;TeSJk9&1;(43cd^ZdgA1;7!v3bX=ihD}K3_lH-lfXenElswA)GHm zh65@iD3}mJ?ZU0R zzW`1kk4LIQof_&gzS5bvCAIP_m*>#(6euF=c<5Aso0uEraBF8BL)Pn#i5BRbYUy+e zt_XbtzTT!<8Tr+kcyLbTG@o@KI7#0TUN<|s$wKsm8+ZJr=wr^YVM~)jxn3flr_!u^ zz`CpnM^y)Zs~Oj6C;Sd9jnh@t(7VPR&rLgtF0POpB!xU7t=Td_w9w=jO>4GeKuG~4 zNg#S>WHvL#l^6DH_Vh}5wA#(DAMRZP9vg}Rl;i#Vo#X9;BRi2#vo!rnUe60;t(b+; z5V8Wftn+L#pvDx+R;FW7yqYASwydHeCv-j=B!!$X&B{`zoQ&USe#M09N#Y^LE8mpH zQhESgS)R&N5^KZ7zPRfwR?cbks}d8UQ_MR{Rq9lMY2;Y4ap}f}n+UjB`!kF0o5qHF zx02pFpQu~B->c*Gm$m7}u#uZ0*xyNHwyCz9K%IbR2)X!LU!b>mbEQQaZkL@^mjt=p zEs`6o&EsIAvSanWylnW)mwT`OSm@wiehnI)lP5db$B?B&UEfqUJnlgLQM@Pm+_Fjq zg-P)hhwkoo9(Nw1M0$~)Ur-V>+%b-GO!3ll9jwp?a538EAWe4OiphFld7tyZ)NqSa zvUppJ_-D3CWixbmMUi_Jqg{*5QD!>YAbl>#rt11wqQ#ZoKD5GqDOd^bTUugB1IfG6 zWLN#TRL?l*51wpG=k-7aj!yJBjrR?br(hg`RZ=gSSJX zDJ>IL9rt<@sehbPt{mC*UdA$0o=`zJq@PJnx810hxH2!&xwJQd`vy4ti)1iH37CbW zWH=sBxHIkmGQ-R&XC^_i$w;7Rt6Bm`-)|%*K!OUb7=13T#)*CF+6f2s8O5prS2{_L zg!*yP1PNMo+#57Fiv2mvcUC=II+Yt#)mK{e2qwqyoLr5<3m5Ek85Us+uFUdnd*Q&w8K{`RA@=82ZUHbWY-DPVD4IQL)ihe_r zwH`)$CVA#R&l!mCIBcd;nj@6vpuIJS6J)5k?f!wCo6J)3-f#a4X!wf*^-r4zf zmzgDdX1oA}K5Up)jHIh2LSqO~CZTxbEZM(O44#vKm>CGt^nNS_=K9XTtM%tw$J?Ctesk;lU@6OyJ29G)C>7ZYhKfiS zO{JyK6i%HJJ@BAP8?BvPVvrgoP(yoQNy@i&G#M$|mabGdi}h&)mgQasQt&2LMMNak zk)9feA$h5Sn~`3i0vrUq^j+I|$wbYLxyr4Wl&Fr6aD~E>S0TtE+xE-7{X;;!!>t$F z-;2F{ijM@&fkLs2R+)cHii($-nCqF<8JMhVLMM0|d6vZ-_do!uJ|FHb#v%W=iNJH7 zCX%sP4*6IINaq-(vF6T=;mm9*D!T(Xl8rJ5;*;+F>*Fcmwd|;(VS<;Hu`-D_2ue4O zPcUE0l%s%N)qX8JR(Esza0@fF|IO|S(H#WTk(}qW;!|sfvaUsVG0uT{E);yMvjN~p zf7rVNC9+LvQ}?WxOD|f?F4dxM8=4T=#+sH}>so|YemmlrtWI2vrx<=aw+94oeFTI~ z1qv(+PWQ&b;!}$%k39|O3Aw17N47lx3cskF$?`ffehlP0s~Af&&aWxz^V-)Ysf z=uWS|b^i@GN~V}ESpOw*+z3SQzJu*v_f|Z+DmS`d;)7wU7aDhThB4P^rkZQjU7))c zA}~R36G^mg*h6)X7U=j%*E3~{2c8ajWs(?7x=XTnlNH+@yb539wkPBBoYmFDDZ}F7 ziKTJWIjkt_qpe17+)=t8?dU+6pSiXOTk9nGKuwCs+c@rWkV9@>Ob+(@9HA z?!5INO^};8bwr4tXQ!y}X96ww(eyU6Wh@AY#}mpId5Y5@r2@ufBxQ0tC}zz+h+>sh zPD3=}?C3T@9g)OJac?m> z{hL#Y#x%0;Auo*YNM3gzLZ@*g8MNUU{KuETyu(37Q9 z0dwJSOzH;B6D|sqjdYwzgVVaV=1sVK8>n7EWej78>ONDRRL{q?66`YgC0>IVZLZ?# z>II2yHL^Y+KpK>MtsSTRR@V|)8C_R2uM^UG*7WpRTYdf=WJZ)0|GO|iYTxZ^U7}{~ zJ4@pxIt*x&r^Lo?TU}WD!5P*jmjAIhTaK`h!#dspBReReaVNaKxL8b!Z}`B81GC{4 zsIY}_a?0d-oA_m?*qw@BHWqE{@9ZBEB)YF&Z|P7mo!GmV4KjUvovU?I=du&?%a4d*v~G z>s`h0W%WLNIfahe(Y@tmv@J~X@jw#!-Q$jO6$&|5y^VVh{#2>9vAVi^JE-L01ECUh zUWYSB>&I1`ffb^@9d(HXI@}O^Te>DBVMpVReVjE?u{dN`Suq!kHVT7ibp^NjKnkzH z0d3qd@2oy}AeqiNy&`onM4RththOTK&jo4dssibi<=cn!5$7U&ik;U%`sMoW?s^s0 z=P^(h6=!5h(kW7lx7}ozjtHkoojxKx#982=IvepV=hi$;0K;ioSVcI-S~b9|YDX>E znE@tALia0GC|qUcJjD<#c-wyirDh_9tf}U`qhdJBU*RiaF^hX87Rcds%HqhG<*|J% zQS%^e5N$e-+g8VbzxD~X8m@L$`5@weinBsik97bVzyWNzA3&G;)iOAbZy#G2698Kt zFWcq7vDNYR?$*)q`tHFrcQO%cm37<|!5ds7#iV^zSxBjv9tjWWFfk@YZX7#NbH-tr z?4L3|RdIqFotP68lP(<-K6HVs9@RZy8D&zKxOF#r6lF!~2PgG`{y%fT-ayq?lH0J~ z{M+98?)FA^cWdwURCm4#z}>|;kdHYygAFRA(F1;$Ej^?7ZFQqI(y$DgiK924WaK4nW+&O z{JMLuce`7A$A{Yh4kbgYazY}@iIi;W%3+-*@kpVy3aP?kYAE$l8XH}brcd?OdL#%^ zX|%x=aq6To;5<3+#_WN^1&0QMcw8iE5a)+sh0y+a!yL- zM~FMtoNZ-Ube<$|B5F=XSfGvWIZpSXCfMh(ls8ZEu7~CaK34G%bAe-AYNlmlI_hey z#vMJ{ipw?eF#ag0`(SM8M9UmXtF)quTh=!%Cq70V8v&k#7KoZv&iRf0qiiXsVHuL7 z!STnPhjIH8d_ErMRz+CNx%tLhEPB0lTs`q^*Vi7YZEft9bG}tUAqg!7c6l9mqU4W7 z^gTHs-Xmv*bAGXpIG2r)e$Yn0P4jF-K|g+WRA~uh6IraJ1FYiGJM3_&)z;B^$^~Zs z=zCai=RwrmNwRUA_c2m1(;70Xc!IolU=ZTf9F!*SA zR;r=cwgvNv&h3|_VvmWIQl8CHd&IWg+BSB0*)*p&0z$gv6i|fW-~0> zeoQ*=qq@f->At;e`F1fZ0sC2k%;UOWY689g#b=Mm-zWk)l7r|Si(3pUtTbm*!M#Ey zI77v%spdwZ{K{=D=JWz1imYe6!t8NCwp!}sQFZodm!`T3%)!NlT?fDdLLbEZbN9v8 z)}}51P9R3TZ125SdyRamP5YoSf&gKk@fV=CmP4vw|!{HSZ=Q~We?))VskdbPDv zE6Vr1vyYSFC?bosV3KY4i#2f&yg=_E^=D62!{o1TROw>flo>tc!f3o>gfgl;+q)?S zl4oZna3eJEE0o8+%knpXsN=?+U{3a-dWr77WVARbmN2yeiYRbBf}}Gj(9P-He@XjK zS65cJ_U!416&d6HIU^ss#q8 zU<0k)V>2JmFQ+6b(4U^Zsr68Mtkb*1FZCS9ui zv4_M>dYh7)40qMj^R#C9X*d~u@;pu^i8fyC&Md6zS&;Ztvw(wCAJIh6LKh&V*p*mZ zBaN4%=_<8*QDmP}O(E1xWf*Kld|=2ZdmZS|`h5uL<+~qaw|}+K-PzwTG3--7G{}0A z3eHLQNMr|1@|49zfwARSpa}c*iEaV`>m=`z7OAwbUKFKBYB%n-Kh8ZT4Q}oDc=L32^!fJQ`r+TY$NL-JeyaEsjCCJTu%J(q zYd19(7o)%{xP5A8^`>^B7o4q(g-F&L;H!LR9Vm|q1k@f@Av>LvCD!8o*mz(8C#u1N zV=R>T{lWU)rofM>kIgt`L~6wkqD+PyMoXfds+OsY&`AJf6)NQNm8AU3jQ$TVw2uxL zYt8En>e&;d#gZQe7x*_LvN6&i7-S~m}iXgBZU|RS$MOhIz*f-h*lq76u z-h3CnO>;E&H!!OdqG0i1d-0aLTV#ALrtAoIdkZ_@L6dg?`gTabL3iWzk;)=zsVoX6 zsc9M50nYo!nK>IesVU!QHv#m9>gk2#Zu}rP^Sl-%59B<#6K6uQ0wRxa*w5FGk0s@X z3phKOYh0Fj3d~BPZgISdIML~UE?_dSTwtPo_J+U|Cl6Tx+~5LD6J{wh$Y&$<)jF~_9U=Y2ml~R4y zb8BN~``~CRtkk@YMHCpN?3_g+9g}aAM8rm2k$Mc-)2-ehMLRz6>*K-XJROO-(wP3x z3!k14Bg{s^(n^eE;;%(xAo2h@-mtk)Mqw7tmluL5B=n?l$nUitj)DgpcSOS=e#JVu zB+s(&lAQ3^%<4IYHPs50L;xre_Ntv2k)M1LunSRA%AQdX`t41r>ki$mlUoS}2jE&1 zj7RKxkg-;nES^p}b_O3>c;fsMDf4WkGwk@fSX_*qAlF$>f(Y{+=UO3zQM<>_l%+-k zlWVig+-QM0DM2~5kSQryx}q&R&7(GDs+XueX7(ko7rlg!#&Fs|^daqG$V|p_n-d6A zQebg0VJ{zwej!pBUuBcBMxq;&%Q&1)s?6D-6bV)qB|FQNN<@HgSGx360%Ku>9HFOd z9h=)n>(9~3r&CpUw473^Wuv9+O!>}YNN=IEgi#ay;98VpifkRqz0!(fTQ^S1d;5-B z#muw3P+qGjmdjc=lFOt_OxWp8jx)b(`)bkwwz-#BF_Ox|ufcvbZA*<`MxG}gPC&9f zOB7sL4MjFtdOqG+cK0Tz`U%XdHeZ3L(s2EYidXMGr0Y1)&yT(N%N-XN?$= zo|`Gt4qa{B(Liu-xrpLK$MGl`1e7FBjv+loWsI|?*rad^?fsaIRK&Wa2qcoG4Pz4W zWV~|G5Q92JNzcdjXm-CWY%j}b6Z>dK8%L}tI?E~in6wDAo1}51EP?1jG0ggyYhAj9 zQI$<s&h z{XZicigJ)c1;{lnE_8%?AsyBc03aL6utx``NzVmwPsCxi>I_A?3^5c??(e^}CPJ`Ni+I3VT&9H=ZQew7B zdh?*3v0>NLZ~|I%Efb8Sl~Nk0(4=1N>9Erhu}ZutGBRG1s907K)_jpH)yRbVAG|d| zu;bR;x43`AQJQXQWiQ4vTg_^L?MIOgPPR6W>6O|(@!thd_TeUPVqV4cT{0-N5|{`S z!i!zQ%&{uiQFtzptvpz+0&Vrdhx?GK^>)A8-n6P)J;lzQqGiXF8TtrLAvE3F-2YBp z&fb;cU@R7!vh%58mYE!7Dy|$@NR+Jv1mJ9S6*kLecu6GtqaN(g`lC5!s_}U#b8{i<}?qy)4AT!Be`cbb0cQn+`)-F=C0E5DT1VV9& z78M4&t^5L7e6V4jSc+-Z+;&M6cG*>;|vB^iWJ7mf;9oj*_jsTKUTz3 zX!CqNOtslv-#FYS%b$wkLCKU4^HkS8QO`Z0dTw+eGEm=z}K4bp_@PT!7w)9NZ7O|gjjqT%6y zwOr%|D5#|6Fdi2jLqbKox1;N5)~Q;O1x0cN&sW?L)#| zgTwfW6$M9tW6d^%F=Y_U1ble-+_| zEr-k8$T~NI#=pISV5)CFsLg(IVGD zSdzXtk+2RQ(MO?%tw4w@qC%jl)7+^V97sMdMBqH7YS0{9QKp=Tx7CjJ$oF6ufXZqE zod50)vnIed)o+^`c8<-nx5wW)g)N4?kgZew&)Pp-;4oz2@r&KpUFb8hSAbA}R4yr_ zErq`5sBFETOt$l5A-M|Oq!w-EM=IFhbe9&q0OXKLqeS4aMcK{Ztwc%^JmdZ%j1sNW zSyBiX*jKkWhOD7MnOMm;Z!;OB6h6F{l%%qf)O>h`VB>plP>Pm=ARe-+sGm{TPF`RJ(@TBkl9(2`IHkGdfA25LF-R) z`^wZ89b>g9*(}7frt~y|TWo24_Xy{&{uT-NcED&2<~TK}=UBvSmaBMd6}|rvZgxJj z(KtnW2HOzGch%H(QJtVUh~o*B&O3OG7f!QxQ{-{B{0_*-DK8|*-Y3kOS(}De*QPS_8S+d7 zi(Er}#dyb;98BUjQhnogRlGmp?o@dWnzmgYen5p=yVadqqz56hD&@f_=d0mf=Rym9?+CWE~QN>E!GfMezbM??bcxz zv*mAgc}Iy?R0SJiWi3!j50wSistAjK=Ml~2`X;$L&EmZO4I&?VF9A z*)=L;^t7-ts+wIzXq+NSz@%`(PmV6qv+~*3He{Yj#x_EDA9S=TrB3FBsHx!ws&#s+ zis68~MY56QvO?AesgmHcq>bAUz#SS_CvGq?tezu}CR%tRC)0S@q)5u8gd}4{99<@- z&^~{g(zl(UvP3;6T$G8CvPDlfc8~WtG#dK5frq!QKCa?!SSd_$Zr1aohhkNTg zvJ}DvvQvqU&Lpv^qx1)_4ul`3OU#U=vVGWo>!wO(qM2wK$D4-_PU?agO;WJxL2REG zA!VH9Rw?GG8k@PYMN0wwENrPJ+tN7;NUCd3Y4KrY&}{6gqFxoFELD9FJkxIB5hiCG zom(a0*v$Fr0CzXAQ$!dE?E(}I@yiNB&69(*pcLhS!Gh15tVF}&nB6uOwF6P4dLGTaOi(1v28!iP{SZ!dkR zAw<$}LjHyjgfKA5ruCB%1G{gIFc$N|S=fZglx6^llh7$EXk z&|aNsp-PX9oDfw1@JOiVnoJPq*LgQrHIO*~YbL1Akvq(-z!`PzZZnll!;2w{M z$EBW4q6gUgFNo1B|GGmSe&@?i%< z)`&TbHs-oj(ngN{ih5GFOU{(zrPe~!tfs1pU~pUPidtu1r}x#%Nud=ZDe~yy=wN8VSlloBQa&J~L@J`a)%sjh~CKK404u!U6W-v!mi?xqQTn-V$Wn11;tBu<`;l*pX-gNAstXlmUO zY8VeTUkHX+P(ZT>PR;dhM5l!*Z;bnA{1TUjNp$8(&I?Hu0J#C(Iz3<%m17&K*MLb> zYy#>sq%+p1%6;C`sg>i=`GovKN~hQmWz$76c$y?^O6;d+R3^S0kV&Shqtb%CoLE&b z#T)6ikU(#*6BEQL^1p0x9)x*Oz~6jzh8xN+8t;6<6TA3?tU;YaZ6uR~gG&_X(>aZu zVlQigoz5f;Pl1)SDlVYPa?2uTvje+Xagx&f7!Jy}+Xn+W07yP1etIbkl)rco$Hq@zu`fs&Giu)%JCJK8jSN;Rav5K2r1N?sMJl*j5PIB_Td6oP-j**$7+x+2f*16`IyxyI z|LtI^Z}>PKBa@5O*!{XxOo7Kam5Z(QjEL_?&DE9V=v}n>r$^Cn*lI@uwp%nGcOJmc zD=X-Xc##zJ;;kCd39bA9YsgT}-$q;k!uZa^gzas+Bqs|CpdNl8nRzv7>575+GBwUz1D3@or-P2)O7G|dLupk?^nx!{#VBo*&UVivl-hR)t#442r z1e~+vNWX?nRa^7nDCXf$g->7_I8RMcII;x=4l|ypGM<@Ad~U7<&36-_V^osnoo{Y*=S$y(B3Pg;l#vee9?R?iLQ>Y4&ifiKatIG`%t4MjC)>Wbum8H1!OSHGX zLia~pcFwQTr;1{-%io(3Rce4ur8qz||7QS_FC}d9EW;8w2qW#9$-=o#3qDL@ie|Iw zBk~Aq(Z82zIY=;3+rMKW2gLg}|B3(b`lMzi{2-SO9%$AUn@I zjlK#6<>AdqqL})I$(CvyEU7)^%@#s0J{PPIF;1x$l1!c=<2YMAYZa`LRky_&R4R0O z$7Y@io!+sr%5%%tcQi^^hvVYl%g|~z$6-)?X%BL)<^ukuRLPxDbmn z^d2?E-M?5J_s=MYy=awMOslbtPRrN0qp39q3VN~RmJ?jd_V=LjF?6vdfbk+E5>Vd= zHp{`n#Q9`aIHTM%6gNw*QN&D%PYF(mGydM1-%O1p<3hjUI3t_nD*R?BkriJq#!(8q z_OikHN=~mRu-*|yaSTCH0bok_keZc8!PE?G?h*Z$unIgJwx1?3y4O?Bfq3LfHDhmr z>~MiDQOXmH7x$5O#{ql5tx0x=C;NQ;c;nUX{^r)q4Z<{^_})KG0G2>$zcK$5dR`LN zvr0=yj?dl*ylFkUHVEchP)9S1-XzIb6%#=P)>#C^oSd3^y$O1hTi#K{8wE&W3K71j zCy@b65G!qpL^=Dp^{ntkI+h<-iQ)sGQ-JwCsaB|bPs(0LXRV!OySY7>IIFFN$c(tv1gQ20Ye;ZB;GxJeMjVdH!vV`Y{``;ZY zVddk3)&^RQQSJHmbLLlO>8zRODp_x0VnCz6$=z-LCy_F-X0ius6^ zoAeaPF#9oeLjR?%23v${?ZIu=isDC}IZU<1OS`&0J|y9`PT0w7Tp#lC>^g{zllRfuTD)s4fxZKFx*5n&W2NJb z`(4=RLNKxyAHX325khjds7wH?2+E#pdvS%S9YDYZ#y%PJi;lumD?$BCIk<6WZb^79 zIT*PSR}!Y<=1&d>&5vVv6byf{lAiLW2PM4MzAU{fM>T&PHY z)dwy6V{W>)o&KipWU=T5Sx-ia#*}F_-H@EZ{)m}j>>TLcASTm>oR&WpyyX?QL(WHs zPT47I?Bk+H&qs20u<{NTkC)V&nF`Gy0;Ki*MLQa%9BE`vO{yQrHIn8o=xW66`OQ1F zp1`u|*a}4{ip(8yg%8$2U#s3=-HsXEpmy>lbrxzO_$sA(uX)NDECUW0>|lhBxkBs3 zZlHG(^(BG54D2N4%`B547PLxC;R?` zkmw>wj>&u${|z19Be&O_h(;pL?)?ml54KdgkkjNmaUG}G3O z2`b-ZM-s?gOAfCCkF4E6M~gCHlNuJB=uALXK}#)BOAhVl;$bf3LYtvwTqX#p7%9>{ zVGs`$HeiOq@D%|0frZ%3qNVaBTK%z6kk~r8MAfVMMGi-i{4fo2fF9~CQ}%&NWulx& zs;`Vod1E`}KQ`8`(jR^$*6oqYH2=z1;`dgK)Y}|Ba2w)KbKizmylHchpGqz`D(~S={U(8D()kLcDg*=&? zNU9lD2_>(;-a>LMLW$}$ReX6Cq3rXNu7j-#9zMo;&@cp3#;`V7HN7U`bPex9JwJ?g zk^$eLo&j9H4*jGKJqoJmr`PK(QIA>s;Q{#*@?OgKczsf4FJTimE$!ncq9W_BkN4qA zcXR6+mMcn=5}LHmyuP-ygt1=e^2t0pEEPCu%s1FFOq^!n{9P9p5a9nKF)Ztm>cj|Rz%vzK+EeQ{GG z1^WfGkqo>hc2(A}x8Ihl*}n9qENF;IdNTA%5CgTPr?eJUzK}VSP7&6WyDh!AY#klV!|*1E-gM89Pr$~aJyYT2v7RhvZ&A3Xjb(fz z5X(HnqQZx#hjb z#Y%-rLyDJNI#6kkRLV!V3z0CQj(V3ypdkw@$4x)u(pRyn)`%&ZF46VmN?8sY7-$M> z+U)M{?fea)K%C=klm`p~);k!y1wL%U_eo%$2;soS6ecm1XS)@~bm+kgW7;sb);1-g z=;TKS5PheixA(R-B@?C0YyGIJe#a?%GT;Tk5&)h`thBeW^LjJn``s3!g>`&PB$K?> zJ-`&?>Nex#Oh~j*lE0%~P33fc=*=|`1RDObLbsPQ`8h+Ql+qwI73P%FkqaUnN5_ux zDtSdg1`884<)p7v;=CbkbEl6oD-Gg;vsBMS^fw7HS3xkUEh*dJ1QTH?=+4*>#5tW^ z=RaCu5Shq3ixkX>SJqXaQKxaoBxEzCf}ER=Bp@!!+_W5Uu-)RO4!k@gCwX+M>GdRn zEY8nK$kKHx`Pj$0F1*k=Re}%hlQornK{UosjSp4S9O1I!9_F!7l*M|iO5rX%U7$0O z4KZI5@XrfRR~A@?kBeeLSJp9kxxU4@#R3+qClYQ>6At57(7{Y`cjzn64zOpE7r+k; zuH?EUMK z0haPpu7F>;Dg@aq$G2RU2{Wsg33}CsIMUiM?BOw;Fk5vn1SP6-(dmV5<0`3MeIjbqq6t}-<%it3Mrdy>W5Rn?TE#0JVCl?bP#_2(MLays=T6Ay@(jA)xj zNt^s28RHJ&OLNd+PtpC;%^-d? zl!j9;<|)0lLjP5nHrM;4MbvLAy}Mo!_D90c^iDaK=K^>A6#H9UkRjNJMb8n(Db1(A zG!!93_AAN@^!jkeq=j!-d17|b5r>v$HDFu_C&Y+P6&E!rlxLlh36}VJx?m zQDmoun_Syw>eG@`jIzOjt!>=7`R0=2sbaVtr>vWzP*tbusB8WJ=_7sxNTl z6lf=9+xe;F@C~RW7#grWBq+O`8oofhJEqZlQo=hEuT>)J%)l=X_g^2(ULlqK_Lpe1 zF07ZGwMbwqiARxW9Js^XZs%B{m+)C;?~AAYA`f&*wrOj0&FTIws+(sl)pD=5P}4Vb zr+c4!od<4CuwT!41KnIPPy5GGZ*J_Y9|5Phy^f~l;Fi@H(D;<~(^y=gnvx{I*n+rf zmpN8IB9S6dxX}dj9Lgg*PB#(B9WR9a2&)$qLZ4|Il<>|f)>RQ4i7I2sD;ez7`nPCh zKPC}fm1!}xk?IQWjac{s$hV^+#q2uJ{)*z9i14A_0BcR6MTVlfXX$4f9*`@?N2xTF zN=7es7^{eU_zBOx+6>RyY-bqbQ8!!4M6|cbYfu2u^U=9qX?PRn4-*GGv^nb7VOV zv$6vj4LK>ZaD;L^yx!Z~-@qD)>&H^t&nB@5bd@Mn;kHtAg@bw+s16}vc1C9)GUitT ztH>_gj#JUXRsIs8^EUmbU%?NHPM*s%F1-O1o?#iiO$*Ej^Uqka#$VZY7k`dW9>v?uH#rS+IKmfAVfTNP8)|iG(`03xvz zS6GfDwU5|ZNS8sKp2h<@KBq}}iFv;_4qgKr9djjZnGKs_07k)*@XM8w@b^|LCE@3( z2(LFTC^!3CrnmLJX1cXXC$>|UQ{*~lz8P6Wv9y)srZk0#KJXK+vJMiuAf}#U0&!AU zq8`&7@y4h!zG&%1piOcf3^B%c{KwwfBAD1#F-+k;;mecBI0^zf@tu)-bIVpn9l~^Q zHbg;_(c3i7Mv`Na&BgpmL)Sag^XID|^Ju@Fx&PA>~zD1r*n37 z@Ae7CmPgzFZEEsm@_s-zhHC=1j5b-hujB5RE8j!z`xWF~y$VS0fXJ9sri?OEY^`EujPN76J|cRq8(80M;uffVIoUQ52%jELqY zI6J&aR%2i5GzAz@7`On(PFLNBswHayYD24Dz}?v2*;#+Se@L9mjbMuuRYCWruyu+| zklvkQ21h--ubUR=+lpdgYu5kr5SAKSd(J3I(72;D4?3ZVKgZeL8aLmF0Env_K_WUo zou$;DiruU#Xop}fS_B)oA8paja%!>f_3lo0=UPz*o;*N?aa$tLG8p-tNcIEQWVyfl z@{dLIdcz!apHk;I9b#!|=?4{qsvAoCGPkn7=X?yx6Ztus@W7)nvFt{<}e5 znp7hc$M6%snkh);o8(;&xH$HQc(D8j+wx5vu(dcD5&g!DWErO&vt>EcDa>F6c;pGC z%2|1!0E=VA<1vW8m~o3V7-zOPz>_H84c^x>Bgf()2+<_JNjI{uwvP~W#~jH_Mtx;@ z`DV(m0@!L39>=FzMDov`nW9C3A+46V|Yh$Jy#KP|?C_==6<2(LjxwsDOG z&=}JvP&(s5GCIdZ?m)?P0mqD=9J1w{3av^1!+fscs%-0F5d&cNJ5V+;&HsSd$2=kU$jcC zh9e572rDdstt2EmP!#h4LdxsoInjXZcWv%IQo&V8J0njdBPhwyGWWNT33_ zRc}k%p$AphbF-8cmYySa4R_hNQzI{lQru?cm1M3g@fBvgac4f)=^G=U1Hypn(1rA7 z_xay$3~i&(yd`LhIR5*CwgF=p+8gUTJ2#W-d+e#Nmwjb}5{rsN=Y#ANvwSEoBW2o> z3*3+Va^p=!IXx?EpEBBJ6i_^&Ob|zCmjad*OV`B(Tke&?^pxv*mAZ^Bu0atglTV#@ zM`kVgNtCuFiT;5v@lth#sZBDLah`nBr^$8}_b6H|EiRbv#UeX}iIC$gCjUS)ithZQ z5i4E-A_IJMM9~;fk0|tf8ya_CZEqbS zO%6o;h42LzfX;?!Axi;u^4`T2?bg6}m)JS_fmL`%OkMWjg$|}DP^zm5ELtZexW)ld zOpvc=i!H;zMQo+{v%?WcucASQ;XF#>u+Es_uBc>@N|U7{;dHb{fDOA)fxTL`vK{q5 z7Px&l*2xaryX!Bvx-a$*ch`@nNe+~i+c+Vb--?EvcamxumFxit9igEw9yvabc1Jj8 zQHiiowPC_>r9sFeK<6Y=w&dpgmf@E1@e^A@?;^{9tQBw1>8rAa;lin68AU5tDcrK? z-9FcP;*hi^vtvs}xe3f0%WtVZOty&>; zjD^|YKWn`>%`@xI>JR6A{&r4D()lm?@yGEw{YSl`|5Q({f9cQj^o;%^FW|1LFY3AV zFZ~H1)uY>Eo2kp3+_}~+1*F7Dp?ab(A|F}5sDJAZ7Bv1)iO)GS>R`cYg^pF4m_7(3 zrHVaJ*R3kwX%RVcedO!X%_d8AS7VCXBwUkp`Rvn<2L9-uSvFJ&OU5x}BMjyP&;dPxCn(CFlo!v5%SdYO22J`Z%#u(}$gokT;aITH0E;p5}I}pAtOi z`9wGc_<}b_Q(ZX!fLEndx$uDVl$M*eZnLhyx_6H@ZgbtkqIc7E!>g5bH=OB(wrzX; zR<|vUZ@g`3T%Eo%J#YHtW+R2+;7F8{;XpEF?5yt{qk8qvm_R_CKoffrIE0Nm_A&f1 zej6L-0XjW0KlCLD3XN<|68#sL^jy`;(b=9fBCIp8SQ#U)Wf z^$$Cq_1@U?a-)fDlE^%IcX$2!?%uu%C!bq|Pqxj5B&^fXS|q(3@_EDvlPh~YjXPnOEB!mat51LiCNo%_XdV5# zM{2Hu4k~3$?5H22vq?_86s)|=)1HV(IH;Mz=GMXStGNvrRSU+0+woNN;UPBAWs@tq zGU<8n6r^a>)Sem8h9$;zX{oam-V;p?2eP6rh|x7im9pbAjB*ohKXheEamP%mF~}L- zC(YEoDCygw9<;59c6|k{0l5XJP18Qf2D#L$5{hl(Y+?INnJSelDAVTADp}9ZF-mHH zXF)r{qjG8@*Bq(UMr_DO;zLNwsjSciw_x03>!sxla2?zWBfly<9GmT07VwWU`Au~r z$$@WXZToOk4WS{S>ar@%p={O1hwFPs2kVDhd#-!Bl?hDO8lyP_W{%3GD;VL3{wc+AU;h7+KHPFgM~Lu zsulx}u9RoY1$ysNZ%9R3A4^X1cgvTP>|Nb`y>qQDuu04R4oXX zqE}PAEcy~;ImS=TV_$99%dZ$X{_XSUwmuUURTft}t1F%5C9Ed6go09Me06JMAj|pi z;eGlSKK{S=9u zaley~AH1u@V$z9@FVfLFPmyvuNl`D#bmE1yJe!~|o#eT}7Ug0(@+5AyKeV;M#_3jB zTnaI{6g2cAv>~HQGFlqarMN`Fi%U+=9n|Y0>0Dfl4mfVwaR|I=Sn~(X=Z-{hFIqEc zG~`F1V+*fAB#r(*|BvYP5uLz=MlTy*<(MiQpRO*i-fKtLW}y*J$_s$AytB~AlL490 zDQnWGxzOn>eY>4@TOH)K$IVuQJzc167j+G3Z>a}(pA9=d7WB&3 z3oR6+e=OD-NM%vUhT4dy@Qd_Czr#1!yf@8d{Z)zYrUB*cY)TIusR7tr`1htvu>}Ll z0$MHEw3l2p)5DivW7DL5=c4nd(Xh(pJ&pcOOI<*(K|te$Hh&$i=Bw&&9=8K;budRa zjPE|_BG`jXiwSUt`BmU4UF`fl@N^W9vq6%L+(#7mn4Wfi{ArT-ovLT&S#}P)F^UIQ z=qo9WfMG`7zfBrSenBw+L*TR|H*7q*qA+rPW5KkAUVcERk$S7Ev&I4J7P>?~5bKUF zCd1RB(?7*8oz0`}Q3;*lm%E)|e*rpZc$4dW zrG-XA@V~1Io-o zN;hi+QXu| zypJ`nlm$Ot>;dijv49iUm^BKBVdWAu*TVt4e>Il2hW}&Fel+{$#Z!^4=VKk-pa~n`u_<&9(~%l6X5%5 z89v4n!}I;xi~0Py_9t}y* zV=hlJ4v_bwdX=0p`)TpU3JE@WnveNfs$0MT7IugC_(;9pXsmQ#OXxu@xV5#cN(ks_Ws!!`X#O70`T>9YcVH#U$4M~(5Ah3dR4;qj|5t1%{<3o zg67Et{(gABTb{H!WJp}3HR39+(CwBsFFIL{o;;1x=t%@C#1s!b!YcB7gpL7PZ<7IL z)W*4p-`7dHSYDh&Zz+UCAs~fROc@8dchll>1}fPNP^r^I?;jZAf$wi*i(F8n z5MYRJFAVt(lZ~lt3F?^P5k#}@5W^IBw_)t0klr_Jl7RgmVP;20uVDgfx>_8@HI^w52Pb{hhjpr}VEp zc8ViMC5V+l4vVChX({T~1GES|`11 zFd2@D6E6*Nk`lGOx4L)=_zv6q@IL)jp_&L{E(7d$Z_ak1W@y?d#7ReH>YZv&YIf5* zL$a$lKM2g(PLF%3ucfjG~nBQ1BfEdeG||# z9hf`t@AyC=F_0WMK+4D8Vi|?TQJqE3Ux#Fj6FE|JK2b-xLtg;Fmb_O-OueflO2z)8 z`&1u>$AtW4LXjJN<+UZt=J=`!T~O$=c|~r47M|0fxC|bqXDvvl-=LFBp5btp23I$@8 zHn5J<1eLuiWQQxER@1)wqyz}1=2a

SQh2tHwb(l-0Zd-H)hLHr&nd;%+4blS65k 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

uK>%a?n5~xve4ER@;$8 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 Z+t2Oi_H+BW{roXL|9@18@Vx-2AOLLp7@YtB literal 0 HcmV?d00001 diff --git a/thirdparties/usearch-main.tar.gz b/thirdparties/usearch-main.tar.gz deleted file mode 100644 index 9b93a9c6f7b36021c693aea8e8c75a3d6eefaee0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431082 zcmV(vKgj6n+C-rl@I|AURe=AhL7U;zDZ zZEtTqa{Bi&`VF5yx&FU!_LNLwF-{W|3s2pbDYM`Nx=On z?{waAhiNC|;h4vI-SNsk@WiC=1f2OOaw5~fNt6?^3+_ZLPJ|~SmIx&sAsv;*9Z!W} zDn+t%m@{KB(>mlb=}uzK9ex?{Sa9iaX95QKoX1Ng`MMMHDU1DpYfXHzDM(}GFFRU% z#MimdVjN%!F$T#We4*J`1Q=-D;mJ&b5&Ek6rQ^}KUV@=C_`@8gT!R0O@WF}U408f6 zF~$Su>zLo12Q+fYAUcJt%*@cK@`UPg2u6j%b6{jis@FTx6f?^M8ftoQSQNnvndt*; znArtlYC6IUz+j46IWHaJMbVgv>CH9jC!FCb(MCWQ2YRO892bjDeb%$81}F1Ij?(*zZu4&CV-T(S_n7_E%?jLijR zP#amBp`A!+k)V5rLq)NYq;;d^RiiL$`21<7^QE)TLnU<*W8!k^@DPSHv&y*;(wAfn ziCTaYM|i zybG+s9(`xLByl()3=<9n6LNC@iY2v}#41Fas;6MU7s`X?XlBqo314VvLnn?@iE|Fj zGjdKfc`*csY56cQ%o*x2Md%SD0S;mo1f|MX^_xmNbw=J*D7&h!Gcbk_LzS%+!#lw| zlhYI~Yuq!$mw0KVomo0d5;Ar0u40<6KPTU?jxLu*)zo*af`BX*BkD9T;zfsWTQy}s zB5SFAw~AgoMb#-1Ad! zMq-71&z9PZLBNFo8<@HHgduP^0YyXD=t{(-ynx_{n1recV=&~gv0=|*F!U(Uv!~L) zhZ!-N%NW)-=Em%R4lyUE2bjbPoLR;khCxA?Sl|LPnkOVGgIg5E|!GVQjFJQ5lEOWo$rb{Cwn61u%0lMq784ER82$&dIw^QYvN+wLu{NtEg zmjasExY5bD$UtmagBr+f2}9uFsyx;=F;gW#KP7C7i zkORYwrV`3FXaUczMeFras+r?@Bv5NJ+9)kVi`W=!$LF5VW{ky*%c=@2zMp!C5S`9h z%Rp2)fT+Cx^Xp7Kkk*S@Vspr7Q&8 zpdE@sMxH^Os5r?DrYg?d!0S%UE5N{#4guWrRHmWp1uFI3&d_Q)3K)e-YinaNF^ZoU z$mSn&L>vJu1_4GDMoF+N+&ZB2VYp&2Rg_WCv2AHQ%Y<#iyTM#-q18VX(~Yk=dEv`qA% zL@0(k`DQTW$Z5%6m^UnSyUg&)Kcl}-`s9rDM37v^Sj_LyQQ8KTjdZkJpxC<4%?)ldi!GNmjq zo1N>tR-HVtCniio;}<5=C8txtocme!PBMl%wKCZSFBb)Q+m1~)%cxC#HR6deVTYVh zOawQnlu*7=kq9AR3J#qNVd1}XWt3YT%(zKCHV|aO(gOO+FHx854@)sAd7wLiKt@mn zUDtVQg>TuU;193UMw?_>c2$vJRiI*q^bg4+rBh6jPR2}TT7Ck4i#ogPN_QF>B`PGz zD_&ZeM4sGKgx%4!p&(=<6)QB@Y6m6L;M2MdL52pLS(h%gM)|3+=1v*hS1h4q@Fumr zR=H!4sETCvUaYH=wY`OP0rePREjsYi*j5A0a_e?(qx3dCZ@SJ&LB2-Mt7}U1Maz%a z=(=6;oi@cgHz|JIsjMe#gzA(TkWD0}(`Ia- z1(r>;fQ&?JSKB`xsgH>N>~Gqn=~nZ07p$5U1;`h9{Qf_39;c97ItH6zFSH%>>_!TP z{ZH^v&iJWwn|XCQFHGK`7nG5}$VnTJl8IObP}$h7A4P*v+S9V@l^4VBZY{_O`v7E& zF{HJ5n~2?AAxWhRxAS{%a6Wvl{jBW&yK_yJbl>MdcRK$u`~RDpPx=q%KflGNRsWQW zNwX*5o@*t4=@{3a|MdG%drkj4TcrPo^PgY;^K-|+XALV$vrFY$*j{_;{AdbH;rv3f zF%L59=+ZV0@9Kq^Bwf4jxwc+b)_O5@Z6Pf^t3{#iMoVOb(j5oPyT}?N^{7>{O?GesIIQl1Ld)x(FH(d zR;R&9ym^BIg~dhOXivMO{IWrnv|HO?0r|Ti1&rnltH*JZ8!e`i1r2I~<><79>hnnp z6#{6ZHUtG?AjVB9t20*7Z@F)Y2`eX zDmG_lEyi1xH9MPg4@;jKkzbmFUM1@u6HHZ%6=GPQV=6s+BcN6wXhq)aKjfi`>+WcY zqnK-zVtHCCm1)T1hPSGybyzIjd{t-C92C`QeA+N-E8YW)4d`Fxx?`a$Kf(tO0mO$liPEQ$mz?h0s}HgX0XvBs!&9a2w3kYy`5Z+cm)yIxM1*9bV5 zWRrCow9;a7m#wNHYSW{M+Tx@{4jc0|)P|sm3hZj3wqymDt$M#~HR;PF9@u@)WyO#GQMIF^b|zn*+OP zs#0wMt|*uR+0cG@$jrnfPLX5McJ$2Y5si= ziD^(6-6UXBU8cR`R0RHF#(7zzNHg+0Of96x=twlD>}M2FtmW7ID(CxeP7j9P?|oB< zJM`$LXYnX~qzWYcobVwP)$cwmMB1b0ocv;Vcv{S8G8RSKNgAvC`&6lEz!{n?>BeS3 zHs{DmoFZw@NaQxGBFk@HpS~-~q+U>pn`2yMFfsReVJzp&^Ps`}@mmDn0Op-PUxeVK z;Nc}8eO&HTti9r-%0k8%@4VI?BrFpuPua4(q+p(f`~xMY^j{_aqtrEfIy!y3mw$iF zqC(hoVpXxp*ZX^4mqj8hzMGq^#avz^C1I8PBq}?2dvs8wDC6^DF2^Saua8dhr-*LB zD39x+#}oK@5)@*NmI>E|Eq|8^?}Aq31tsQ?(?#Wp4yX{w4P+J6sE}@4HO|w+qx}MF zMTmce3Qu1h7h*bv^;Mf`q*YS$g2&VU{hw8W{=ic&5I!&c+2WTu_$iv1tDr>%EM^Mq z0ThHPDJGE6316Xtk@Mo`DKuwFo$GIJSE!!g` zv!Kzefehnm1&3{wlE18pK?5zc>kBrObdAe9r5oc23di^pLt&Mj4SQSYNSNzXhjjjK zGfAl=F9Si18vhy8`wVC#U9KM5S_B z!R8gm@|4YaYXz+JSsElSie1&Ggp#y3>P}TTAzvkuCwc8t6_mk|vY)88XRdg?q1#?> zPK{Z)8vgpQY5M>1)4KngFnw`fo4=24Jpb9=-m0JfY;SIFKkWbh7N4IR3#bjZ@Ak_; z1xr|~o(BC~e6zU-oeWX4S3;(jj)8b*->kFOS8Gxpk0r1H8uMGA?*87<@a4g1?}r~o zd&fs7hp!I4e>U~J?qK7Jvd52YS(b8+cHbPn+8>=AoSu#LPEMW;t|)3Lcy+j2qvP+$ zrY_I=H8QdYN+cT9zdbk_zCs#d3M{|bu>UwYcxHs)bax%MXA*C_`{4ZbuTD1ot|8Zo zyImVO+hxeIDEPic&v#Vy42za}BjjI*K;aQfyqSp#KdzLUI)8!O*H*~yi>FWPcT)cM z9BFxxd;DqDpNXMr0C7gT(ggAfg%O~WcSv_(3x{R8``KH=5%Z2u|2-%uwcS%u(xW?5 zC#0_y z`i`FdhtS98;C-g>R&X8aJrzbG;5E>$^<~fe$`$ZRp&h-g$Q0XM)Z#oO^j%PD%r<7) zT54+a{43hp(pvN>Ce)yQ>a;)I*?Mn}U4IDs{cP~$!JO~KoIAGu{cpjvuKxp;N^f>= z8vr-l|JvN#sNetH-r9Ls|NkbR=K8Hv%NHCw*_ENSrfz)xh54$94Cw z-2Cy!jR2Yb9FHnk3v5A;X>1Qm|MK%f#TVvhWG__U^Y~LW68C85byObq6+L+NZb!3q zy<+8+6s@j*1+L^$7@iJa1JTb8k6)i&1uJtF*pqVl^{AJOfW8;{S^p_Z_@zjm4W7~_ zJLq%(Ff#X$N?LZ+1|aI8&ETmy%N{9duh=~6Hv#8UlZzYX@aiseu!rg*S%R5BO|z>A zV6BCdYf+tUqzsb-nV2KuVspJxBcRQOcGQnz{>oU+8PgZH*_AS_jt-B2dS<)aAFuNJ zsUCCmZAZRo5nLNN2yPmBVe^$+4u5lQZrW8Ga;}>$ne}~FuQS2)&Y4*Yg8a_-@qixr z=K(z)(Brp3k6(rzcHNH5gI;{}j^3{_IC7rvDgC=4$(W=0FG@wOTz;%|yY}F|K08zB zvjnTTMEB@5Go!&#kM4=NgCngF^ecGjNn&*o`7vkS&Uuu79 zP*)epUffq&ly&wi;l-VjqPu&}weE4n$;cJXaoZSnvOFuV z{T6j{`^)Zk-qrp><)=a3K}+}af-Pk$m|Lfk1$!Ck*0%MRpXnzmpRR{udc*3`a?c8g zZfgD;@*xR0yW}Myi!bh3QWa0NJ@m8}iwO2+{L(G1dEcw-bi{evNy)=P<~|LmvVZo) zl>o0|?gjBLu^W4j`1Z>*jCs1}1tJwq^R3t?>3E|VU$uFECRNDarAI%H#M*f2$|yY7 z<_&r)qx8D=Z`btbCex4gUMU}&#@R1l5&E_U8{Olt&b@Os{(%Mj`0Ky#f7gFJ{Qie` z|J*&B$dk=?uZJH#rsCU|J3+9yISenqemU=byK%I6c5;4s{*NagxKtm!55b|1Uhee8xncOiWHf)(g`&=6UpX4gBnztW1rr&aoMcuLcY zi{??6No~Dv2Xd?fN3C9c5KDb-thTl3B4(8lzPic_ifYvX3gUCa+6~TrD{Ck7zPoLM z8CY5mIBj;2uD0!s7D?aQwyUGSw$0zJ>G8ITV3umb0Q`>Is}@og#0qA zGP6Fa3PqZ&LwPeWhz$pW%ct7*%UivEnSaFf8-wT+)jI~&P1}1_``^x1@Xg)j#oI3$ zWn5G}yBpqK`{wWL{y3O_ZI(RU{&QRW6T<(1&_79)^?q40gpUG#9RX`` zx+V;n87zsFMy@o3&ybNK=N_$%1W!O0959Ma?+&BA2`mUb!_;B+FiP%MDIc*wegMV0 zh$9wm*+cHZfQSrbXbPq6dR9GJO4fce(@jIv+8JdpRxG&V!lWH)9Jtx<%K_yAV@hhk zoU;ZD)o@u1VgMD<8AE5n6#P~XX>K{AHH(I^sf{=kp%$f=^3tT)dc-G51s z{`*l(&JA1%v@YgdcOueBIihh&)XojwiUkGG=HP(T@-jPk`f{Uhw+^;O#8u^lNwR84 za)@X6K8m=sln{P&0N9K|qI|v`kSc}Su0Y#Uxgic3F)O)<#rfJ=J-5TGjy7foy|)D& z|B3wp<6lz7-$PW&`?Z+{EL&u}Q%Uo=NAG0-42zl#mi`Dcv!RQnBSIMw6f{Uj`9@Jbstn+9TX;WgLr>l*)D=Te-jWmDA3@cFw*CyU%fvK&7`8`9+@4e)0<-22+ zj69{F@{hm&*8_vmX@`q$U#H&dT9AKDnD~pF6S$wQ+!r{aQ)0F0LwTivQkL58+-&I$ ztwvBTSE=8p2(GXs4#E?*53xQ^FG+Gb&j<1bNHzp~$fZ_}i@|6+8Iny*armB_75a0l zDR#FQR_|@4y+1E?R_FKY_9*JTueWwIiDy+E$ombVD~7x-Ci=ZCTq?ZWYzuE9Ix~1X z>7ClV)dCW1Mq-%DTd-WZvuQxnsagz2EH@^XJGNFEV9RO?WNB0Rh}8op39$_;d!g0r z#(j-4*7^>u?FoJ;mQ*}h_;h7>?mZUpXx-+k+=_U)YvT(q^BHpZXOO?hc*XqXtaoblR?w|EF(5tKU9N$BP$Lr27K|q4 zNim00DWW1J3}cj=Cn!ZSO=E>S2BEEjnoe~jCPBZbm3r!ojeUSFD{-|zXH=n9PtV!^ zFF=3M-Vac>%(&akaMRm%pML%(33zS0 zd9*cih1i7w8(WPuF~p4R^V$FyJ8RUEhUU6IOqyMP*TAzPlQOMdnu~fGPi2bpbp=~o zjec*@W9i^%FZ_KT_o(l@NjPcme0)mbZuXlYpP72hCgcv4RZC>YEnr~)&wG0b-52GA z+*|v?3YJ_}5-vYkMPW24T09K;g~Em7esr+r&O)dUO-=@FmZDJZX!mrM?*@M}4f2&4 z@nZkq5g@;Jma}V=pz9QASze$wer@tMkCK_Y!udk(`R-Y|J(Pj89iCt}pY8<=anbkLW*krZ+F(n}G(8d^y6+1q&>uQYIbh|*cqc*fdf8u1klBnc)`l4#o#c|) z|1KEprsjK95p;yl?7V*g^iU3Fef^03qrTA}#OPMsX*%wq_eA25)+g-Qz?1QbEo4q% zxU?JsmL}}X1tW{B<}U)~u-@)f&XR-;L&7Bs@(D@pG)T=gb%>!u-i3WE!bVmywQ3si z@#j_~-q-B@6Z?)75F~!LEM@r?s$ZO2?>>U-)+p$`FB1LdF?)Li#%{Ozp3`Jza)$1D znd9NX>iqM(1VusLw z#$hO`H&!{cX@2eT3TtR(3v6{f5TKG>H5x^a+uh{3dDoY~rlVCn4OUZja7wp9jS&kJ8!9*1u`*a zTNJdnuw{7SzM#iPKnSba$fA?`7_4&BF{+>e18G{V;(JN!ACi2uZ|2o=2f0sEz1^tv z4Z*=Jd)>b1nOVNx_)S^Li&N`wXPyFlnFe$#pW&0hjvawqyQ^oXaqQT;x1soIn>{zK z%J**mB75%b-Ym#YyUd<%|As-A_0Ag)oeOc77#d{}yub8i-rUPhOMl{>Ph5P3Dhcw+ z>2n?9G@8@zeWV$QZDv9? zh!dV=SSj%aOWK#lGfN-ZYL?)Gaw{`-j<^Wkgr2HuD?dc@T(DL`oD*^xk|V&KE+MKK zQ_K{O`LbO)(;v>>e5=J*l&@>?(R}pO`caFg-;)+^PDMw;6j{a4F+yGJW1=4;ZI0+T z8USXU)$6=uM!FV7`D~Y1Ypy{AzaOGd*bg!(PYxQ^J;W6!H-Im_VZ|~I7tyZy+G@7ks z1#u?3CAZiobDiMq$k{<*e}{>cSki~Z;!rx#1cQy3%oUfOE~ub9n#^?1YK+Q?-Wnhn za6g{UeaEjGH+pW2vMpb{ru(Gm8Svr1v#iWy`8!N)l z^`g)hS`CgXX6ic(C0X+&F6u(YCPk_jY$(3taiC_SQvpu;LN-X47u%FWrO`#zS z)#BE(l)N-xUm)OlsVD@Ac>`(frAXN~=AIg(@G4+4#Mp^@P;Gyh7k}7v^Xhj4U2XS4 z<((yTnmZr%UK+f4#$z=ytF(qz2&RLYF^ht95C*fpfi)q^ZaH+l4Gl4eVsNuQAaMbg zQbH05*TQ|N%5vF_W~+*`F?!T)`ptjCK?A1K))yAoLV{Qz^Or-m!k#-YrRQC&|AZcz z$#ssXc4@|S9t8XY^4yz*6BOs;Q#tA88V2A)aU}4*FOm@%adU>48=PiWHawX` zU|#0(N|MInIuJr<32h*-+7t@o=d(ufhH=f$jlS)|RcaBmViy}cfv=zcdF zZ3#zxoNEUGIaVUw=>wBSiub$7NX4kGU4I0un-pUiWmimPRfD$!G8ExmffEx(q8p=* z!et((Lu3!`=DW}zNu$7dE{(t2;kxHEJLg7% z@i;DDWStQDa`i;WzZt8|ns7jYRXJQcS|~JQwO}Aalzx~{GBtOFLQj1LW&j}F8-*@L zTa-^~v%j?=J0a1A6D5?Vl)fh0zAsptz7oY2`@`h^0_p0ytv?!H|0<~a684u%C(FM% z#_k(CphN^hbs;OLH3J@)Ln%;op&^19lTb=LXb{A;Mqr495(!nH2n$xu1EVc8p2+hF zukJWd4{M!RDH}|V9APPR+Ppz&>G1_m>tyw8|7FdSzs3-M71Sy1mrM7V;A+NClw`Vd zaLcu@MB5W8Xq!_AABe2CuS1JaQ7v+my|r9!!r~Zr@HtBdyk>!}E!HDod>E~O+|t5* z2u##kDx+-r-0tFYarer?0%hPGL(N{di09v4C!(KIYWywyZ-E+M-3%PrL7o1zxBEowxaPBu$3h=u zyy)+ZS%KUW5v`TcaIhZ7td($@?2Zm$w8f?UqHH~+ELvmN$4AsMUE4H4@nDlN=2GXp zB|qV0g~epXAaI??=muJjlJ%iKC=`sgo;z`HfwJ;*?|b?OnP-m9RT{>z4}H{My5^5K zcR#&zOSeMonkWwJ_RuiuD+?Z4i7l8J#k95N^Bu~L_k=t-)U6wcMzl8s$_h&(;zo5*uQ>QvT#la zfrQMx@2e{vDQzFp6}q~*tE--Rnii%k0x6-)31GhW>Zr#q#us+FD>^tiN8rrMlr%xzS4qR66P+T|L(VLKiIlVnSow~g_ zgJumeFiiUPXvEsw97`#8wqfKUD3;w~4yi=XvVp#bZl+){3<1NO;sc=##xgWd8Dj~= z@S=!&5#IAbsStsUKZKUstHG4d2k=OkbOLCVZnED>1N*a){JPJ0N!WfwFTFliG2A?| zZh=r3C#mytP9h-|HLws?0L{_h(hy5Cj7h{6Mw)=QZK_7wweBy04L4}rxbp`K%PN;@ zkK#ppfX7&6lt|ymjpZXo_E!?9>u`XtF7v+&dKuBPS4UvL?bI%-84xhLxvs%xS+DaA zho_5l5=;?{j>3^AKqTf!L!lCOk<-Xpp-4K`3=6~>kNfnplk8cY=K$fY;+e7*deezF zF#Z}ou)j;4{w1cd>$Bmjd5(9Io~J|kZa&kKeZ}dN3@Jni&lkmzM}suZ zWuMhWU>wwgwGIFi1_CH_6mv2Oo7I>QmKav+QthTtwG&6xmTw0*M=TuW9xwm98Jp5P z)aATYkL}fUOke-;Uw=Fbru{$v4ITWq`#t}+s*7t!<*(-)p8G$j|I~Vd@5whfcANX$ zb_ug69xqq+JZCcr=vT@_n>zz#goB)ig(cFZwO-}|F~H0IE~o}9KuCs!P?ED8%c4_L zos5?KO*+>$`CS(OPkqwATYb_Eb3Uny{XgFlN5G39It)DHiaR(nJfY;&vq?JB(CzA2xO&nZUA^1(=2>kiPI^1b~;?GyuHSLMaW&^OV(WW|YCo)HyOjT8<7e zvkH=#&LOi^)UwftcMTpJ`TbQ=XJerXub-H17^CvZtK;~Y<=-8_s)Nf9tc79ZOEo8Rk&0MVjnQ<$d3TYAQ**?%Y`eUy1T~tIlk2X9!o&^6q||Vyhk@aDw+Q(;iQaH`@Up; zN3cp?7!~{|$AUgXF?ouk%Lq59at*jy4kzuvc0^OySjx;8@3vjZSB{ZudK)u@yz`>% zx+p@mhsXh05QR%9Jw(#83tRks;>i8WAKb(R1`3JdW2| zz9UwFJ&&V=in=ugHl!fQyxsSPF<22C%X76mZW)@xJC+a-A=qx3Z_%i4l>{6 zz)i623Ic*eU{fmN-7wTP+h%M}jCtLU91&^+eY-#w)>24{m0&%X^7gljFHZdMkAYVI zB{|{`4(~Tyr1GBq`T(yyvRvOgJ8vs)zI0d0_iCH*dv>y6iaSFHWs_-GcbjH7o%S-_ zT_g@DLY_B^qvdkltOCHzVVzBKtzmt@l}lr6u#G`caDenpAN65|SJ)kz&wRlugU5!` zS~HG=@(sK2pgT0~S7>5J?vv*psOEe#+yB|u_sH+~FYiR{HT>?~6MUD`Ld^WsvSrdL zDj}s)cNSX0FX~p+V@*yk} z=PC1Rr5j&|t-MM&SmaCliMj`}G7$sQrjo5WX`o$?HYRJ1h1ngg65`Ar6$Q__G-((^ zcd^M*0MRhkU018nOsmCgvEziE?g}()r#yrOBAlq<3`CO0;u+pkiaoMK_1_|!e^l;i z-?<(ZC%-e34q%C=*XA)WPTqc1QcF+BoQXy~qxRjQxzV!)i|IYf!qSp!n-N1!I&L0w z4JTTuO%Jzjo`-Nv0@FE1gwbM#w%bxV*CuC&BGVXDwbJz2pxGocWIDx7H1K6J52%=AddZ_FM_3 zs|iJ{6S_q)GY?2sf@1;US*M5LeVxS3t=H&3a^|{fh_|cajA!X*I5>V6bgr7`SNAb- zaKxNc$5d)|gt`!9i>29m0O$O;%n4ocEJV8%+VfbQ0UJ*vIK$16bOM&!{!lPD zQ7wApRHSFF8G@@+5~Y6w+~6aX{^HeKkKujS3QuCr6@GGpdv{r+Naq`xK*(Cp24+7Y zMvIc&XaW3*B;Y!*=ACc7!S(_<;%s}^w6OccysYLkoIT7&!j zVgA@X_fBTBGU(j5LXi(Y+r@$PynR2WTKZ1l>6eeI?$aaZ#ELciREyjddAYU@9W`PLG>K zzAveUkh>#&;A6S1pa$bTR@FZfeEEi=&rZD8-STg5J1>&X)%)`9=&0Yk`RwXJPS}HS z1yK`qGK8tM6QC9_2}WD4Z@Ab{1lH@(mdS-Y)0TEo_f&h5j90bDNDB#`?K}#wH9%D6 zBhj@z}`A51I4>6#b7;|K}U^i!XD1d;U(y=1t7GVvjG5+w;xA8^ww=4Pj>i zqr^1AB_L)S05x6o`4O3Q-FO+`MXX@UT@D$!<(Sw?YpGHvFcT+weV$rL(5kcw+`s}A zuc=K`d28ec9m&6iEuRMdA4C36Hst4n#=5R3?aie z#8pa!K}=}QkDKjMF^?$5cM@~>&N4LS>3Gf`dKPd9pIPSwY`_$Wc zKHqPxUT-1qkg4xL`H(__-YKZ{;P$r_vr2>Rt=dk`NEH_IGUZcxG?2iY_ z#@n!SRfx3+jIecJMz&PeJ9ca_lN#ry36*9IIL6C(VGW(NuPLa-`~Z0KkNvm0+u)D9 zrlu8qvj1Y}m!T;y5?*c{-#4F59o~GE8sQ3jpan5x==0v75>c>XEP{k(EJ(6>lI#$k z>QAIT;lSi_*=49I%#g}4l)iyCTE5 zi3;R7NAU-8Kc&`jFxKrSj?i~5DS46bGV=T8omZ4F=nzx(1Iz4G8&exE^sPDOr!B&% zR7S@AB|Y8nBiygo%dv^WD2!K|*$Sa{R5@*E2TCbwIU3m6mg8EuY-oO0&ZWoN)H%7~ zAszLegZA{Xiv(sTHjRr=r1Q&#E)bNQKJyDT!@;XY-km^>AH0O|+xPt8acq-j)xTa6 zc9%&uiqw9J)AjXZ-Ma9}- zj8+W&ll-<>p2VCR=kdkUvF}?gw8p&>p?N(HM}FGljoEO-c!Ok&X|og@f-qk>z-aEU zA(1a6eL4cIsT{2upW6}xpaGRBi|0esjy7%<(MB6_jzp#x+>TH6`Z{Qbj~s2{}xgv&Um$ z&dt+@vtpD6=Uy-uOp_Mh~6uHF@}PB&5DsgYn25 zt_KH%u0GM2$hLV&oM~g#Tsr!0vs&@7Hd`5x(%0$Q8fZm-Xf9vMEz}zy}I0rQretrLDeYR-)Oflq(fWzc@ zZr)cCnTClwf^r9Fp|I@uDm75DfK)ffoJQfJLClV8T*EvRj=iXCmbFwFg}+W`nY?KS zwwNHO?&muIo8<{I*i0MQ=kXta=ia|g{>tcgZMlTMj>SC_@}h#%)6=Qjn^WnL&*ojn z@R_>Z?KA>b9LR$IkG(5F2|4J&aWTJp<52=&_0*Zr0AFLG~Sa$lo59S#<7< zqmGk%f61+ys_|IXX+7PiIj8&Uug5+DDqS$hv?`diqGWLGG@ntnjfJV}d7-EW86Z3B zev9a++!lnohKhpjbku>%!Z%f>e!Y#)yV4SSBRif}K5f-{B^%>Iyud%9jN;T-?kJD^ z+xzu@q4#T&Ifwh1x4P^#zEi7uB4h6~-bT08t5S3|?vZd|c_EizLYta-7e*t(L&@cs zNkCPmlS!2IY8iH-v4rGoj%9@_lFJmlZe&%CFuf9ZBmBG<)~F*WG@jl=-+>> zk-qkNd2W9%VTs$V_%+b>Go&If0uJ_je0dvf2mr_tHWhp7ikKRfArWc{OADz?b$Th} zE1d6bkdEcM#zMKP?Vu7l)78YUMACi9GhaDK%(01&&9r&>~^OIIJ$I#A)0pYho-rcWsug!#bFK#+rsW_G^^;Qy0wtD>(B&pNGXfN0C_#gvTR-?&@~%hMfus9lUwqPf3cjOn%uax9 zn1ORmKQQ>vZ|pv8y_2(3+`D(44zpjYL!#{Dkw<14Od*P$(+jp`=^g`Vq?*PIGF-Bf zN0L2}Gc#1RczvLCk*z_{{d&Ws064OlL0`n?glNSNZejYys&?F}A3nT~ zOmzQcJNsRoy{h`dqr;(7&`xmXSVr-p^oR8iz8!S%wPSyFKlhr<(W4(d`EjbN?SuEd zWxbJHG+QDFLKQTTEmdGJ9&CkGHfia85e0N%({%<<{ne`WJU4Y9Q|VJ{U^ZWD3Su3g z9BGGxjy|MFreBDcyKCIJ>bIZT_mr}4jIy7vJ@O6e))N^!1)PkYkXtBRvz?cXyV%&W z!*Fae)!LXgb8(bmCL@cokB9`FfRrBIS; zn3P%-l9wsbKfV0^rEvZJ_xLj?T;EYD{|q|sRLJuVcp2V?*wgeF9^;TmVGD2Tb!m{E z3-N|;F+XvVNSt#7w-rp5U4yEsI+cmoBMvK)?G)-$4P(tsmcc4(yI}pUW!9-R&pfHP zJd}*RCdLk|Hh2s89hO1hQ4qBrw$giAdoA zClq)oZx&h8mx@kg=Cx)4#TeBfv+yK-WA}hnl!Az$0#Q1rNNlz$FvYK}$3FJYLx<=$ zvafI0kbVC3IQos4;@oviBUa$G-wR)lzc9>1U zl-gvO+R?#m0s0KSGoH1dj6tU7s9~k%b!gF`yHo~>CbdCkXf@c`>Itfql!jqiQJK@O z9a0ZQ9X|iQm*&&IH|P5P+x*P!?M%vvj*soIZzDJZ0DI^bRs+KbTn>yBr>I45S~dfx z7_=m&&u4D9oO2ON+o&mKs_oI+maLdAruTZ1X7i$}NL#f)CY`O@;*M{b;13XG-=T`L z7JirVvG)hdPh{-X@HRShzqwioX1mov2ghq-271$xIgVyQr7bf>pn@Jc15Kt&!73M3 z08#it)?`zBBS}kd7*M_+j+J!;PEc~i^+8xHnRI3l<2d_)1NR@=yD$%pthnY-)B6VE z=~T#G*C)e67pd!SS3P&!WnDZI(s=+iss*#TF^FgCScbZjWi0rXTGb{eDmgwG%O$kkq`I#~` zJ!um2V@&OpTFkriyf8`(3i+&9TfUPB@uV`9(u!V$ImpnAuB67cf` z$@fj->h?EBTneNKafCm zQVqZchX@Cx907gK$zZ;+|lTJN$9(-Xs3xWRY zejKyej56d_rysB(V`cBNuSBu{7Lt;wfKP8y)FHO#~UM za6+Sjn^Bo##(p|65^}IRJKwKZ^0eopeckF0Vx#?n74Nr#DbMW0+I(=-jEwN` zL(Z)D-#)eB{Tb@s^4m)`e39Y%-DdL5WTfOqg2aod=dx~z zGT2C-b%+f&K&7oy@j#)Lvowp=_@-kuJNw-#QeBD5%=7fN^WX&gJG=apV*K;gHkZo1 z&W#y;m@(fGTX<(-=P14XSG*zugnR?I@g`ztQ*VPO zB+kglY#2r#0-bIgbJ#c&N=a-B$(E1@7owf|ks~nrcRIW)wE9sS=kID2yCst9rKlsz z9NLTK^W{QIp>aX4AsZ?sjHd&4IjVEEr?nib=WY|M^)T<$oYj+KYQ7AZ4p+%sHW)Kq zl+5%f>82It`qqQ1T+X%nxX0KJoyjcM2>cU;{O9u_?LThEOPy%-%VXKIwS9gl`|Cme zp&sP#f$7gXFdbYLoJhb>)^D*HLyk zAiv6=&cbb~e@u(8*Mf-4Xrz00{&D(e3tSyJ!>-=( zayNrCBDX@5TJYp_=RE*dYpbNwZnaG{G+AM~mY3tzypl5$U6&r+Sv3NnngKOkbV0Bz z;>7fw28t#z9FWo0b_$m1HlZu!RV@B6iu$-W)p+mdxd$fK9Z2BY0n_D#h zikN;IJVCd(p>pG-rsebp>w2O$^eFNnmeL?9h$I~#V%jpnal4dP8tcVfiAHS(10%F+ z;}pd8(rFbqN|vd+@01i+r8`5Ak0$zK-H;i)ZsHGj`bU8H-p7Wr+INPD^1_IovDe_I zA)Koa+P@;?Ur31_;cRY4UGJYoXK%djo}a;E9jD)!-|@w5=qr0IY#I>QU2iTGk1}u-{5jTq(CwFUkEfmh2FnjdY4uC{9xh)M+Rz)i7 zpXi8mm(M@f!}(+K@{{0RWt_;^Y2;*dcqUw}7P&K8&-fuJ0t-~O(rzA*rQs;FJtg6| zq=M08%H@W|LUPgPy^;v!9xr69g;-R8`-oAaBYab@6(#YOF|yFykZY@d1e^ICjK`N0 z{g(y#|11mgFKWL^yC0o;zoT8`7H zR1x0hg|NqiIZEq>-S|;%^pgA zFEIU0#Qv!DI(RzFd94O)hKA${w-ULkA-uv_Qb@OE7pGfuAT1gyDcw=E%*tGJr4C3Tgh=> zlEZb2SrXP#9hXq`ZrVC=F0!FCl4q?ruPRN{6xAQ9B*3lsvB<4fZq?0Yy-d*Lo4JlM z^3u|IT6ux<9Gv_aME5&6hlMi{*6?8bYFK8wKi9}#FfP9a5B?0b zzpod*gg(0;j(RR;ul%z&4*eajhB?s!g`{AqZime%Au~QAEihuE6kg8^l+p*W)#p48 zS{fqR$7FH@N+W7wtjU)1)oCtiD+;uYai_yC={eqboSCtO^-YHR!|!pL!ug`=={wD; zPGr2S;Bj+OmREW9DEOi_tTR7sWW~OT)f} zD!A0!rd4h|_7UUdPUBn~a=J_b{K^u&KieG!4`g=!uB+PfReqhD$G;Idd6lrYm6z8~ z_$^VB+{5MyhqlrrMNpF#hn2A|!ggXavm$O*3qW*Q5S+y3%EF2ekbTMWeZo{A$yu$I zj4YWmKW{>@?)Ll8I>*--I3<4|GoKgRz&Qp^(9dW?-hp3V604tl@}C62JSO{JRs4-y z|C^ayO!dFn?&q2Qk7(k*XSvudo=%e)ZUgy7$cxLSMyI*Hi3iO}tn;Y5wQMI3tzH7m zA<#lvq13@70H&)(wi}_a*(#jMvpK4Y8q@1b#kS}SJ&XcxV!piHazA<|96tDq<$hHC z`1;9rXv;sEhxLan_b*W4&jKoZrJUDIaOuEwf3e7kj2HDBM^C+5%0yaoKxE{ozXUUL zx#@VwPBp$+7d}3f7L5*bdQHJYbXqi~s?W(N5gLqGu7VTE<7*B?N3_bKn4{)NBpYZ{I(Zk=n(0snKSJxE%t;hJ6tM>5! zn|h2djOs5Q{Z01&u=i}+i6cqYv%VtNuBk3>Az^$k?{Uv!3cIK_HU)Ow=YWtBkgZ!Q zB{0?7`y2bXFZ+S}2^$fax&Xp;>zUczGaMh=;=tKHv- z54*`>we|XHZ+0JBXQz9^arnB^wYs~n8&m$d^KcFNm+6(?3;%TzNoswdnELPAl1aNW z``ocV%zxeQoNgcOy}M}k_OHXMUbntGyM0%8TW{Nw#M`;+TGQ%Yt>^D>@AbAlw_d;9 zOFq22;J341rsIRAm=10C&Be2`_f0E4{7OTm$=|9xOGdsN#y+^_8(9B$WYkG5<3I|sE#Z2OM{V%;kdu^BP; zC>bVxoIEh@3;q8`Umru$x--Z8FB+yO*a_ZLC0dKAkKMpF8=C7_+!wTOJ*2PRr%z{N z9i4=x+pNE6Hx19m#xM{LEH}rF5|0=m*DW_l>>U0{;PDXfD^AJB8EUo@q%*3w=G0Wx z1Df{nqtqyW$;sn@(YW8xM36)lHOL3Qq3Bep&%l2-w7>Vke&uUH{u@`9*WK3X&2{VY z97z60?eVbu?``kbR^)$o=O6O_H+gNcM&N@FH%v&L&lAVynsz-g{W~@f5;g+q1=#|T zW)mLqf6`jdEU=wo+e!BINbC{vl3?jk)`#=BdKQv9(byzoG zcbtbXma|_I(*?80f)Tw%H=IqJ@ub3LT&`#`!DH+nBUCQBRtSp+aKfe^LG6$hVPO>9 zf}Rn7dHSGI*fIbL_VMk+L=_H<*E( zY=TQ*`p##JtVA%1XJ*88u)W+3LXZ3L7H<18m?6|^C}+dS^g-W=AKW@!rnm>C1Bg;i z{G;ouRkk#3bCaENURs*apU#4L6^USXljO;GP4L|beC`wy5% zhRRDbkj?NYCII#fDS|6FJ{Sx8q_3 zHX9|rB_{!s!O0H>12NG6gd75vgti%Trt6Lm?K(L7Rs!a3%5gMd+<5kk)oKJugFSz) zX;(=EY~y$)SRw3mJU|f-*(CV^bt+h+ZQgN`9HI*#+Cu0Y!Qcmo7bz0)`;bQtAj8=V zjz-R_;2M&SfeVL#G*Mq>Nf?hoB#8LjK2EU`i5)OAjCJf(NIiMN7MdL_a|c3M`1o20 zn9hZePtj$rGrZ+!$O8*GmyMr2(`!3yY+3kcliiT^(}oeBWh=p)zzdn{PCXdWHm$3k zq}z=^pgsIL8J~$c(B{69;g5%n3`7tRVWY$+eCaGj;>0{dOaiOFU^l&Hz1w)%KfP&P zyy#yyd)NI&r*l%nzDB$LOEc|x-)Ww_z;AV8`l;NbPhawsE+wBiTI_)~P*)>o%xIog z=&B+}eJczlUUZ5)Wp_dlG4cZdJLHx#a=2X~RBS#n6F0`*L6?&Z42*9;Dg`}~b4!6& zeL47QBWq4#P)-=}eax^B z4XhBDItHq8h&pJb)DX!qvrM01)$K7F6|^ZxG({1{bT%j_!vMM@5=cSRAUWHY%{y&g z!vCcchoCtopos3)&%S7#_8UtxQEnqpU+bY*nGdXoJy=s!}L?c>2)~ z*jwsVF$Xt=+(b9i(#+}YV5)`r$_e`N96!E?@cj;#Ittt}$C z0};itJpkRgM1J_&zv?tE+eAUstyeIm-68!9-UC{(BwbERVdlZHLS*LaYN0&}deG10C#FY|=3r$RS zq+{WfLnH=^ZQ}Q>GsS~hHD1;%wHPoc_&$+4uP8~Nv!e3^CP8iAa82n=z|nK$Vj0_0 zJpK}Vz*98u&_K34JJSWDZ{ZT4d@Q*XBBapzM46?Bj(%xGqu;n{cUl+C?#agEr?iWX z{5*2*$*I_?V)YSiw6QYx-Mg=!{p?v`emV1%c4sVD+M6?CX?KAgSNd0&a?OY$YpxlR zGU$VQ1ZpBz4`B$wiggD|b06LG6XYpf2VG;~e)!~v2)xo0i(;6DDdJ)) zL@k2bXUelzI4MUZOW?>P%p?q#`l%iKI$!X$y`h_ofzz>HxqLs_C_LbQgP8$uNvhOE z9SFQ<-jUK3Y&PLOBj0hH4y3>qJf`y(r{pUP`h8QF{_$~_<5Moqxeq~r)x<{tqrwN# zwRsHog*jlE#^9SPgJD`0`s)x)&>G2*7U@|*$ZfgQ@$tVG->TItGX_JM0DdEgpy7-; z1lLXwsddg4XO24`u|Mb)T$;KWF$9!z9LIRBIt40D=06 z4!euAL+(eWBX}Qx!7#JWQ{tgn zyphR9UAg2IGx4)2k#VxJfESD-4-~l3yK2NdEbb&%rd?ATS8$QdIXu4hsAeOkRpD$$n)cbk?gJ3it>zQP2*JPxDu!ELjjmF7_H1b)?yLYMy zEO**i2Rn~;9VTaOmu=PNds$nzeu*YswnwIqUmlY76@>9*!$jEt!UBzwdwuLD8*GzZ zMQlUTr_i2G&m|XTBX;QwlAaCiE4<&eE>K^>cJlbQ0+7EyNsS*tFA+uQ0vTNP)KYS;uHBFcxjk9 z1TI#I6<|KfA9d!Z(4~@Z*qP_{VA{vdyyFy9cqIgm>dr|<$iGrISb|p@BUQ}usnKPp7PaL7qFQ)oZuF`T)fW52oDp6FK4nlFy7IB94@JawY zidlsDlG61`9qA(OQ8F57_)9v{o*AFWoC>eATODNkN3d$+Lk3 z2+;^PTUL6=m3W5BRKa#q*QF<3B!#y24aUPNkHg5Al`=GDc0`JgqMOuY1emlLL-0UB z|A{ZGuj_b}BK0t6{oI|bDA1#w&X5%RCyMA`4+CgA1B6k9OF^sUXOj)l4H zdWgPJ8>As}@I7u;f7@f{5kx{UF#Wn6!AAoMhl_L0Fi5Uq% z6a+C|J52#ClrTaPAFoKXa4=j<(t8Q9=+QlXDkY@|+|~+J<(^j=3`8Qrijqm@G;ly` zM*P==ZVk+M!l+bA-WoeXBxQF9l#NaKS8}-Su`iG*a}{2J!S9j!g!oKp39xZf2Y7~E z);q05F}j2p@>OriOStT`b0-0xb}4JPFoIH1Rq82xhohjjH^%eudwqqLR55no{}f9_ z0}!Wjj<-qbG8MK%{MZ|nvTIZJILfFyLzSlgdZn|hYR#Of)H-Y(A@r!)5OE(IV==)$ z)#VgClg4huqWrfzn&)isIqO|ngambn)LenR#=7{wm?AFudi5O6D~ z0TrTJG)NPYGEf1ryfD3?Z6aZQva`UNvM@A^uAUU>NlZ}dW*U~fx76XPka3M1x|_yZ z?!4Nd5YU^EgA9XrT&bRSJRq+`RJP!KkapI+YO^pIx{hUVD>BTPsJa9!72)2BFCuvotLfdn%>Li)#aMq-ry7<0(uTv+NaY!hNk=&6raj~ zMMu%pRT0-}-Pk4;EL3;5cd8R^+RG~|EB)2W%QgRX$2c;Mv~QTPA|N0JZ}||8ntMZc zE@N+zsEQ2I9s}-45#;_LS0fA8?1jr48kvbR_aqOh$WDcP5Gm%d=h;R5ymzwk__w8| z-_gCjzPheo^xMt$RrmeL!Cw1x19_Nxw47YCA=lJUTI9be#SIi-<5pxh?YUZ<^Eg9} zU@KsDTrBK>BlI~dsdmYU0#Q@M@x6VA+7SUX4sBsv zAN)zsrkO44g11>>#jv>$0WX-YMua;UPLLZgD{WH${fO;C;v13pUc;3p^ud`{ApnFn z3LM~R`0)c7LSmADqOy2`Wu4-rCaKavJt`(ynjA5rY!*XT&I=-m5a?P8*&rhDA$E%J zCUu?}P6{vQvc8D2u6d0p-B#w+Mr&k1mDW&r;80Nu#;<%vu`Eubebc=3@gm;Jg#ZL; z8hEC-tZq9|JkKi&0BfPHY$>d9WP*6YA-o2IYRT3Htw(TM7R$xv@26rS3}GsIa3ZA zn~q}UjLP&EomuJNT&scD2gz6#4t$h-9Yq4=#pVi5V7DTWyvHlA>;4Xfr}i{xiyzc_ zLSjhf5e)#nl}d0bY4|g{o&;?pg$^i|sOcH)U3>MlFdbH|7jxyDYpaC%ppcJXp1gV~p znZ*Z66QyFL$YG&epa_vxe8UW;J4}yqH7ToB9Z`08#v*2~df*CDg_Z)4;$!97=O(}a z<)SL~s7w#*CV}*kJlSP>Rv3s{eomxg7PpPT;U;puqx(wR!H3GROe+zGseqpGNG6_U9M+5U9KMZp<0@+D*^hZ@&%^fYMK=;j;aFg z>7}w|h=7d)ym+dzO|+SYJ%@g2c~#hk8AC<;Jn<7UD|2Kg*%D=WBUp++mL7m<0|Vt8 z0-Y&aShiXQ6^tZax88l<@6@kfo)|21x~A-37>qTHg|tZtTVZpVtC`uukLOPOG8qC& zCPHba1$LxW6Uyo}}{w-^AR2TDbwLHZon-&E&M;;L1KY2RVgy zOK+8`@*_LN&nJDi<2#N_8;cXZ(+q(6lz9eR@|@NxW{}J8R8toE?1Y+?L@vfm`Nx=e zY(U%qx)j{|jWi2Wj7ac9zP9d_EuF!b@bKyzzx_?pgd)*QQ zyT$Yg*rI$jc1gJ3fYB6kdGNxTK84w@>Tl}(msjm36LZ+aE1r3lMxv_WA?L)3Fqa!+ zgQ*+jY=IL1B0_|#w^NU(q}OVC04#WG-^pqW+*g*}A8S}~rvs>?POHK6*5lu@g?_K5 zetmg!RVB?^hEdIa(kVofKGGyBtdWGU!jS2~`u;#dB+n=XD`2@UMNPVXHq%`T(MuEF zDSE9xWeEJ~Q;t_j>nCtNc6Yvj0O0&7`^lF3dbEP{a_ZG(%dn~VaXm(F-3qw!whi28 zW9|{$ddC!qrL+-p<=8&4o;|D8^3zlo?4{>Z);9`k2M-QNV}a!{-@-KDBmsecm_O{f zZ+eb}CUlWIq*?tkgLFalpie?cf_TP-OCUsE4->F3cLO@Gje@pJfx5|SZ-^K zbUMM7e==wjT=L8Y7?;iKQVU=Qu@Ac6PtXDYd!*T-RPURiV^AkmFHCn;`Qj~R40NAm zUFwrH%T~S716~dP7dVR&kZ*Pt3l$@OFL!Z$(F!_@X?WsS3O96EJ|E5(d_m$)o}Pya zm{vaCl;6$KBWf^bwqbm-P~n81V5v{4qEVoJ)BlIPKU;4b$rgpdef#q%P;{N0WF`rT zn(S1jyo;7(TUDA$l5;p|9~vYf5jF`h0nm~vkN;Qb`@ZV8=)UQ%zpo#qU*La*UQ+}j z0C3P?W#%q%?@EhAAchqyR;+nlZLGcJo4AU|4J~sserqwWK%uG&cL(w&HB$)6++@#@ z*s10)x&X->^CE>wH1xmwTs%3@I}t&W14y2muim`ZMdm}!U%7YNCkJ<)(bRq)V7Er(H9=>& z9gmv8egb9a4T5nQ&Xz49N^%RB4-UEpra+{myDtp|B6cbA7n0FG~Js{NewMU8dFmnZ)YTzfb!e&U4d9oc+4n2RZ!4v0) z-ILS3qr@KrSzC?O92E()wK@+V;qK-(G;C=~*k=NIcnz^2* zJ)miPX17&0^u7+$TIE1-puSBoH{KJO9v5><&juqTm@t z!`=X-zCv6W+YQf-j`p`-xA$NId;7ZzbkG;6H$JoMw?yyg)wJ+O(;Z*m(-?E||Fl~0x1IlEV|iocG5^Oye4fAwnDGG_>`1(a z{qu7)^Kd|cD7xLsy!Y7(>r=p1t;%m!>zftUhGN2s%b-u1PxkVazLEE!^GYMd%N3)K5m_F`6jg+rxYs4#DIkR&wS%8J3Fh6{a@N$F7|)N1;b49k2n=^3 zX1!2KLx+N9w0<<8XkqAX;3s7Jgn4*8CUvL!==9Qf*ui%@*rr1*VAM0r!Zm$h71L%6 zy4Y~%VaZ@Gyee)|5)^&6s7k+1`_$FPuHjBe}hks{;w^!mjA<9 zzyGNeKmX?RzqtR%E8i~?++zQqZajV5|A+WY*?-b?o{>u){C3AN=J0=O8-@LUy1w?9 z|Ls9O!HDEpWDkNKW+!t$Ou`^_+Y~hIa_n?Fj=k$$OxTuuS6S$d8#O)~#L*=*R;@`b zA4D!@ko+$H#{bNH{SB9GE}B-0M4)Ca$yg~Sy>yq-(Ritv zt)vt@vRd6J1z^+&*2J1$31rylvrW49THR%_y;ki-Nwx0wgAwNtN@^>0my}4bvRqzY z4hR3__kMW?eg5XOmK)B>vh(>ns}-A8VxQuSYOUpZ*<-KYudS^#u(QJR6uSTDUn5h? zjTxtE(6-^M8_hpwYd$4Qu^UZ5pau}8LlA?=7X#s*ILCMd`hTe|x+$;x^mIa*Agt~A z^Fh{XP#`l5Qhx8kPvO0K!&!EhTjv&(7X{f%(*FMUgBVlJ+8$>LX~!266!A2Hbcwn( z99Vesxe3iy{pMhNllY_-+y-gTw?KIxP|T(?AAU1nH|q?WH&d;punUy}wR)k89LY!{#Dh)q4`k$Vh7~TWS9W!!Ml3-h}G>b#UuI*ymDe(vL;^7(1iS~Zu5(|8|C`^ zyX!@Y{J+k)eQ#sT;r~}#Pd5tr-{Gf6{{I0!Pjmo2GL-B)`s4|mip=aoHj}H-u=2gm zws`#<5cqovP2B50&$#UGm(*|gTv>hLtDxEUOU7^5MC^CZIk)`xOX_>&`z3QQHcIvT z?7<>Q2T^@Vc?aH)qmg@saUf_I9R#WKe)K6+rmOetZ~f0n(EBJ^i=jL6?7N|qaDWjg zQw0P(K_U)R;zB5BcT+5PV4hw-^* z;52$4&tk7<@g&(bqKu-aejIp1m6(+Llqr)sObM?zG3g@yk%^%nBp=J7Isokkk;){% zM_dB>W87T-zuszXJnH`+;xldk$${#g#<=P@mjJ{Xn`n*iP2DKXOCHqsKS}3$HQP0$RIjTbb|e{;KH#b4XiE`oa4Vf ztxw?H$b=MhA0sUU!kT2IB@|WsAx#cC!IBsf6R+mTA{C~oM&PCbF7lbX97r6nUQa-? zI-kTLZ!|6)sVC%i6*GPEp41CZFTa2N*&BQ9k-Esv6c z$EigmAdOO-diKgbb`I@9USlP z?ZVG{huiyacJ>ZmIWOSV!y`ccJvai;@7WQJDZTCOo??FoyC>VP;cNTF-u~X%&kgMB z<=)vL_Wbhb#A!Rn?US>;?Kk`F6X*EN$??(YE=*zvdOqAce0c%`?H=qNp1CkE{O0Wb z0AHNb*X{j%91Xi`zky|(;6$D6qvM}X_Fla{b6y|q@9e^lFLq&m?HBvIJQ}QSd%wMR z&~SFz2klq8^wtq{M2p0hJWc1v*Sq*Dj@pL*-#*(rI>hx*!9e)hfaRW?>9>E}JKb$K z?UTJzgbZd)qm?3b;iV($2VOng<&F^Y_69){{Ql;2SNG}c?6&uzyHk8w)~ed$CNCA- z2fns_2SWG>Pc^v}u;%74N=aQ~cofWeBbm`++OuO0){7S%?NqWq#;p zC5y_xlPh-yhmEr8iQWTx#U43ehm-o(IGOX`5BHoV=OEyV#MuKn9-n(XOajD5^lu4} z^zS`q5c}s_6c~^3k$5Y}MM3WP-C=aGgqO(DAi8X(Q4^Qiv_;M$O=*`vl(Ap({vxt5*Hx;;}%fzJ~aAD6@S+1?MkotH#2DI!Itj*c(9J-nCS z6(N7a1ZPN$HTfKSqhghbN(K9MM+ zA!h+f#Q&(zX~@;Mn3$ZR6y*B>ktt5HCYuds0K1^-zFoiPDV;95F42$Bchv(v1J%>O zB~YcL991Ten9h7cWNqS%-P9iz)A;dlhBm+-qD?0cclDSjn5fW)y= z@3m~fb>IKzWi$^75?~WR1a}5y zBGV$G{yrZ$bW-@c7u%kPrH&$&lVOMn61TP(y#M=uJAc7HTr!6ySS+ztU8)vreAF$Q zDW~jOt*Y@`Zj-K`ZCj1{&rsQ|mV0F^EjdSQve4Tr0WfK1;M0~>tT2q$2VTK=7^F1$ z?{Y1(zP1QI)5Mj#@VV2fJO9P~{9-+6I<0rkrh~xx&YIpf6|E}4!RVuRZ2>wPb&L8z zV5{F`7@)4-7ca!y0$&ekYyb$EK9mYEqla2#VqQJ%C~Ycnq+wZ6i%tu{_} z#4^v;srPHnP-=E1zN<&!E|BzE`6Bd%X*%4RoisGCN}N*1lk}8hKm)`sQ{_c>DVpp~ ze5QKsgqyO1YaRq73%Drm)&k7P0W)yZi2a9muW>tfIB#W%I}CnYDHP)O@wIj; z%CH{-|1z2OipoG+t76Kzt7_Q+o1qmbcKW}asX~2O<5R3F9;DYZ&Y6JX90NC}xaOA0 z2W9kCu?8gY&G90YwkdZ2bWhF~Yy+$ixWn|iR#gg>bTkIO+=L#@fn70RL%0Wv^b*w- z(eoSCdFX}FSukS9SnG!Qi`kb;`9|_#492~9WYQY)@TO9OoZf;if=rA+GGuiQD?Ie_ zbC6vy8!Fe`&%d{({>yw8vj0p?)HPUWj5+?F8yf}t&)U<~$M~-Y`7C|y>>QEedUt2< z%sG3#cj{nL4&a3Ya%ho!UMf97_7i1ogY(FMr2R{qLm9`}^VE?oY?4G5wXZ=&RZG5+a1q!4uNm7^xlmB@? ztIr0U4F%yz?zYB0Y7e68{Nnyz{~@;&lG7JniSD*^33uNb^y(|l`HtY{PQTEMP4B>a zpSj)n7g|B)2YK)FH@p5)@E1?d`-i>m_zTTk0*ML}zv~&*{Z5_ty-eTh_X|_s`{m^w zCr`c3nmEY)@L%#yrr@PJ(i?Hc&#mK^mw&JSvX{pn7@CH>0p(G?{xcSoE#+Re1;m5m zw$y)lnO{sc?BdIzzUOSt9rwd4IS|Dg`Ho1&qs&?eU&eP^3#w7R{91UFFTECwg81@l z;ZeTyS~xABmXTV z|7Y3pZ#Bkj`G4i-HdLaQBz>*Qn9hDFvm8ig z=5ASNXdJ}(eoSsR$13Z2pnQk8G7Eh1dSYkP71xc*N@Hk@d1|pjLo^}wTpPXCd7+re9K6&-50Fo~)Z{Yt^zCGxv={0-W zsVE4Wbl$4Zf0W0%PtVBN9)tv;QrDy6BrY#6S6#qU*Y8i<Kv=rEwfx z#NG&tt?^06|FA!c2BH6uV?}yymv=1MT#2V5J&DBFD&^1sSJ*3qLRwm~R zqxP)MjIg_G{%}gVevGdfkHx#FY(_e|&jbRNr$zr+{ZRa80~N@dy>15esn@L^^%iiL zHaR*cvmvM6hp9K=NH(c3D69bxbv&?!_pinttq~ZROcG+cVJvQ#Kbcs?4|1`a z#*b>>&7X`tHGZ}>p!9bwrYYkVdZN{oqOc}2wWnv!Dw~WwhuqMG5!vMX*(59sr;NOq zGjbKdp?~$On((lT8(K57Kxt1oZ(+(*;7;lG%TpOLbJKsI6@^>lyV68VOP({Dq(lgr zsgkE+q}z>S_I09I26Uc*Lpe?iW^1IvMB$I?F_(5!(M170bc zBA`<^B3#RYm^GE%DF>FBpx^;PWemF@mdRNwWyPjJC5=*(d&|Pj%#%9>iF9&@heRMX z=yaHn+C7o0Ljo2uK0iYPSZg#g__dN-M#BX`1%xn&Nzl6u$cSvKq-7TT9)yakk!gU8 zQz`*qyN}nh5+!uvcm+SqXd`iZMZ{vLVH1ZLZ2Z%Rk)+CNyhOQ>gp3qA$Zrj&Pm+vD_O3M4wF47- z&^wwZBYVZOX~;B6$*FPerlfqZE*kWV29Qiac{v%wDEc@VyEag#_nBi!r^Yt~2@Rk^ z8&v(>0-aF_gD^vooRNowI1ZZ~jj|)*sr!ogehj=OhJPB9uj3%-+a;Cb&R(YorLIqD zs*0Q;Q42~sRl<^gQ4&Fe3LtdS<}v{&mr?5`u%H*F0Yt)`N+Ckt&kqd|8gw>9GL;=k zgC_rCiH0f^9)0Agl6|^}v^W!ZG@ybVOJ-AmN14bT8hAA5Y~WF%GdWs{T$S9s7XcR0 zMpB|Hch9=V)g^AzL5>rVoMSms_uJnna2EyH&no0aF%w?mB%FQve1dNE(nCYNM9PBC z+@JbH&_R3|Bt=qZ=RW&AsGW>Fli;2BT$9HJ-^d#?>FWpQ=RUEG0Ug zEqEjh0IZWX+hVQmv}H8howtlq&jnI0y+J{~Y4osrM^li!<5|EAN~jWL*PKY8BO56Y zoRry;tvx!0HCq4#ykvIb_*ETIt1It%{JxK6p;B@&C4MYbRwk!s4$C8Yq6KDMmUD#0 z29M){ji%fNW3iw+Wc7zboTWrAK9Pi+pPAaheEJhgreT>#q%jTjd79>nSH$2^0fS0` zDg?44Mv^V38jK~~f4+%j#DIpFhSY9J%wxyO9k^W9!pJ{Z{@l(hSlY(66U=QS8h2%V zvSOVj5XB0wR_9Ql#-U;If)&51a=JRd6@#d^RfkCt_Z+UgD%oMQPQb!pzzd9P)&r}4 zGbJ+|G0xh+<3NWc7@nUpHxc~OXSSgEtSBMd@L(%d;Kj$qE^rLNg;GYVX2l~0h z@{s#IlY`)6XInSGe(I-*Y5ALH^s^KT#rSS@HgdMa{ANgM0(1Y=E=9A%WLz9pO ziJKix`RhA-%dpX0SlqxQISmfhD=glcKinHktZc_+)F%(09A&b;-v(BTsvt{XWV|q~ zr~3htp?1uZ-8^_Kf^2-d4QOWCk*5L0QqPIWG;Mwqh^tuFaHYSk?JIYxEs4Zun*iOZsf;rm4lCMS>yhfEc9$nu*ofpHVm zJ?{gz&(?4wve*u|MwzTEx;IK(6r`$k*XIHz)dR2R9GyBp`=aehhE)L}i>fHPjFjVg%|qfJ{)IBE`)q zK0)a%WL3AX=7Y5%R4EARECZ>XM?M4I)WTmvW^?Mi(P^J<(7wn9EcRZW4P9_Fi(i}bjsU^3 z$&xO}w$9G)L0`x8_B6xfjDFa1*0Zi2)=EvcqRr?|nSj_DQ<&KTDXuoYKD8Ksy)ZF?beeRb3p*J2cFvgttkJVNo|HJyq z`eXgC2l*5-Ib^vVs?*bcRE=ieW9mJxZ@&4xLLA}^;F<~(-yMv{(1z2&l0{{Vu>{!r z=BADqDSP~#dW+~{2Ofl-6!;hG)y+-%{UZIIT0MuC?wDtw2JAWA^&Gta;cwH*GdnmkZ3v(q?{_hs{SgPuUXj8+0b$@RsY)?Pmb8 zVS~e*B&mH>k2yuD`7rCZ0G>wK^755b`Sf>KpzkP4MvZT9VEB^sdjnw4YnGC!;Y@93 zYfdt&z^u;#otY5@7VO6pm{$h<=?gIQtqpUlY-pKa0>PZyxs(P!yeQ_PW3mJPWZ3f( z`lPs5PSC{x#H0f-C1W+fhh8x^nsh`pZ4ZHM`vAwvNTekyUG)6UOdNm7cYYCJ&MoA> zCSy||FU5jX3!m1no0}u=V-_I7D3XKFUs%orqMzZ)AHB8Ikc{7|8;}osetf4OWxLGl}Jn=Cpsz2pAF^HygGxIf@`WGmpbRil;hA~PW z_m%soR?3qorh;?{3lYRcJ|8TlgzUR{!Q*i1x`g>OpBFDn)^4avGI#dz82cSTM4+!g z3gp`qI-v(_C`AeON<)|L77wpqQ`11IVvIHor>Wx`VRXKRCw5?Av@xpdV<&FR6R(vO zW-q|(2Bg3o$s!9TSI58HjzG-9@tda;nS$6^AfJup^U!fB_hutxVpdJfFi|66%mLD4 zSS#N)_HI0vV20*%T0$wF%|@{=LN;gO*XQ{(u6Szhu(_mE`g3nCE#Yxc#QtezCq4RFe(s>#qjej-)Nk%eew&&KOH+5!2MU%~9R#Dq>VV!AZJ!Z$ z=-AqAc^kg~UqGP0!Q1Ae-;9~fP>&hI*FTGEGi%Z12>^n$=;)rw)l6(j%WU?Y@jAdf zyJx4rZZ^{%*kO8JtG3y->VN!e;t+7&hSi2s<9XN3Y0Ipw0dIb>BaWC*GS~IIhL**K z3GF}I%|8PlEks!^kltHnu3Ut$8Ie4^g%g!rYw?{E{*Kk?fDcL+kiSo;6=MD*41S&X z`0n=~#De}@U{FH|S$>4K-x-@Med5B5P+;_sLM5yny|SoUU|J05Z8QZ{4F1t2Q;I%M zpAD+ToB2WLtjrKP%5Vgg)5hX;Q?BL1mnV9qVQ^k_F7bGJL=_3ZO--DnkxotOc;a86 zOVtNW94XUJ4!)KKL7L{#^tRbzZ*nmdt^?KJlBx}7mxG?n2sNR;_yNk7j3xlg_oQV_ zy2ya8TW>jsZ}#`=dGO+o-(}-{t-9BD5&c?cZH+e^M!lNS%V07|=WA!$kkZ2f<33)3 zvoAqGxdraQTuYfm{(W_=8GEv*u)@f0fNBOj1ThTEC|+@<^^(gpZK+$SKN*cXX;dpr z&IA+8%|tg-pDFtfbV8jDp%U@}Q3)EeVIjS`{_-Z0-}^Sc<8`c|jkU~cB@32=scDT( z7;l+X_lEcPy&ajM*Yz=uagjq)Xv-ZHySORxbZ{Yh$_fnE(4hK2JE}ND38m&=m+LmjfS|Eh={zNKiBeDZTFn z7z9F3-*c{R$+x|Ie4P$3bUNTf-frcIbA*xT7g5xA`XDj|sgm-OtVEu)Nb~OR2Jx+mHNS<%4tyK9=uM#lSmmYc& zJl|S%SM>AoHSTt+rM?44F}_w`5)itAQUCeYhP&*pH@<%g|1879cNLyY*Xw=sNxCpb z=MW=|X7{R<$}jkvJHEz%AvXwvPDE;y6=T+HtEX!xGc2A?*~O|LRc zs|~eh@3M9(CT+`+R?cs7DSU?e0Y_WnqOt%W-XNw4eZrP^mBL{1lhJQgPym3^jS|V_ zLE!86Vbt;0Rm!FEF&OiyU^H&PzZ7G4jg{ZAr21tPe{`rcAp8oFAyApb*{nlHDjmK# zH5b7M4f|0qaf4{dhlNmT;Uz(lez7IjOeCU=63Omx$nT5b|)A4 z*STi3{W`Q9C&qUFOzW}gLj%u^x}hm zVl0cB0AVMxfc3|NxJmFavBjJ8gOq-CxCy*D47$w(2X>w2rSlt_s5|iWv-2A@{EYDl z&Kp395daWg>)}}mM&5;_awLD&2ylBGjVGA?;&ks|r-^nlOf|iI{Klc$4=Jo0uR}~M zB!`hQDdE@9zw~3dAgSm8+;=K%5|zBAYU59XJG<~U zHCq1)O%R27!~W~nE#1g?PhX6)-cyY#x`!rXbCV{7d#ImuRyr%sszyt}_8Co8_r*@t zlTNF%Vm2)HX}4t7WE((sbn09RnS~7k*y`pr#&P#HntlJ1bBRxwe6HdTFoc|LY>ET`#?=Sp8vDZ^ zjJ__gGkg`!LB2P*rRnAC;V6yugwaa0zH|2R6E6 zrSw>W#+|O01kfH!4n3hvo=xhki5Ym4CXCjER!tO5Wn1a-y9%aDXzF09*2;2Gq4)%I zo^W0TX{fR_qxO%|3AwE;~KlVw0@A+<= zq<0--F8{Z-k=y^LYpbnC{_i0^?c+V?L~V9u%l=dfKkVsB(1k~?>-3|m>kB_biEVS! zG1~s#t9<-S`%F3ioNVD9&OUzTp8u6r-u}P-boKH4Kg4G%e~c+b%KOXfz*Qa>?MS{P_F>cQPf%x~x|2@cO>i*v&2RM)Z zKV8Z3e=Ez&tLu;S{~fdy)NAtUk7VnRG+C|+ynHbDpr}pnd^Bc@~dl>j(I(ODRZnk*8rx?H+&+RwiX7l@9 zeE+AO|9j*BZ?6A;+Isr*@%%r;CwJh*USH(@rg49QEgAoZ&C;ls#y&JcT(rAz#PhTBlT%1&A$xUS7KL#f{>NIv3e?mbw^k^%5X33@Ab@0B9u?;GsP2DMG9dLz1Jt>gk&)UHyRH60S2TA!H8K&q!3L z6m%)jQMGMx0|_Pu$3ADGiIZ>^(3S$bs-#`im@LfzE6faUwW;5-n_ zg_|g%tYf;|9+ll5c(K<@F(6QixLT7$EW$%TU_Fn9!|2kb9qvnAXc+3v*~{iL=W-DA z2Kbe>Z|Z>1At4((n^U{<0N5-i>T#WCuHBu=8eBS>czmD}Dhe3D{60A~cFKm{_&fS) zV%Q0sN(|?yYp?Az_QHhc;X0?jZ+LCvdAtZGcovtE=sdmjVt+}Eu%vrH{KP4Zqa+FN zEUI-S3fmPd7%u_o86<#DJ4ZkL{Bm!9x3hb=eYCT8_=-KVx41z?-akG$`upzoS?92Q zuuB_QRb)o=-KVwzRUN@XcIK)V;>u5ry)Hz@U z0eTty%ZvMU-c~staK6JdIKLLS3RxmB@ZJ__9Ly8828&_B(PzBl%o2%Fx(_=`gLFvK zrcf>Yjx(lUEh1eQ1$ypZN(2}k)ENLixK@V?plrb}`)oPYH{oQY!n3OdaKAZtv3o)Q zN3x@+IiQdqG9^?n01(9fr+}Q^xoR=57CP)H(vrmmQP|uk3Vwyrvc=l4!z_^JP7XFQ4FT>0vfQg@;A4+`=dSTn+oV{^ZGamIe1VlFTk?mwNEUV>YA zN@u8vfhNumoaaqq^>@PyTrkC$BbMmUF%x?GN3V`7;4wwL2B-|9iwO4+enfh~&he2xV>v$T2D~!oU@TNuwmq8z< zTzqF`d0Ae`2q<0Ey=aVdLJubqA+R0e38ol~2}sulkO>ARkU<8*vXyB<_0imMc%cr~ z(VMg5H)oxly%Tux=;UWb%ha(_(8CdHbSEN;AP~DrG@PVp^+A>g!ovZ|L5DO@KfpWy zUD&AHt{{t$I2eDZqR_MPT{vo9cgTc^HiOBIL37V1LoQ!^?h{|Cm*+Wy2@;hNR*S^> zCDA1A`8-~OHwq8Ogm`k|XY!MhLr5V{#tzYeiBzmI%mvvC?8=X6-FV9aF@nofcHSKB0fVqhS6IoeH|!n9jE9$S-os}5 zbbD_PFOH0j!zgQ_(rWEgNe-cxgAE-Q8RPJ%F|9v^%|M8~F`gj=hkxZ!3ED42!)g| z`)QMq3?|)c4P@w1lN5`5VrZ~naS-wW!A>x{v-HDEbwtIwQ+1SNBgRy3T2Bn2ajcli zPb|Iw-fTMU^EmkEd05@99eZ6Y&C`xy$^j-ed=Y#93WoIOwwHQC`eOihS>iV^hLQhl zp2c22;OiZp#}Q1FTK>!L4I0jl7X}IbJ4x{?T!z5qQZ?-WL2-)JXp%bix0_(Gb0EhJ zxKn{macalNt$1M_eh5PD<|Xp&@b4=hj}H7B`~Js<^Li3qcrlKP=pOdr7ENdtdoXYM z^41|DQ`F`-GHL?iCUIhiDhba?8=UHVP_Xl`G} zfIGO0r^D!z_mTeve1Sj4vJt13K>6^Gvq}6B|G+czF$N(PCxO@g4}qW3N%p6oB3X5I z=jd~yX^%9?ou{+ipVS2fyyUD?#Wa))(m(XE$~rAQS9)qw57uFXK;J(*feky`C$Me< z#|`r649W!WWB|&H#0#MV!Kv z8X8{ME3hqn7Rl5!usgv6RgH_!0-SlwLZjr}%Rw~s)l`IX$vnIe1S6yxqIz=895tnr zGJ0qR%qC?#zuJ0MhEa}AO=0-0+Fz9tgdEr~l_gNGYs}ok>c>kZXHvW9Tm&*yzoggo zO+*mxLXwVVKY+Y<;iu*=c;Io#4JFtocy(yaUqk6a6U>a+|J=r^hW=MVK-V~VOPB@St zgy|ChsxC>oCO9E%nKFi{650!>3FgAUAEE@$x9Z~(K@i12$~+JpxuraFk$V8TH9?^g z4i#02;xDv0&@{LRaX6BC5!?~aipY+a$Z7KB)<6XgQbJhLLU1jISRSq~-|X*qj@xIi z7ZfhdyB8$$q0-67-O6IMBoNMc4$_i~A~)ryeg*wgIy%CRvv> z23NGOM9W3)(EOt1V~UceXD55dotGy^2h^}k4@`Fwpb&hIn=l@TR;aU%^?inO$DKN* z%S%!l(qTbi2hj=tk;aPl^yLOkbkPL9F3;2EfVC}!A!x#76GZH{^j%3|S6oJgoYpGS zh0uM=oV>xPW2VL2Maml$;ojkLUCmAL?p;fMHmxHSrJhU+NeQPfBm=>|_gDVj{} zoMs0M?Tw|N3o`wj$sFnQi!`}Z;Fre>>ma~Am`4hQHzi23ces6P#GyS-Q9KQi5M}&( zfj)VP2@q{4aCeEYLv+9t+>GW0HL-7E!g;8pGR@M!Jj|e_z=Ln{C;Po0PcvJyqJ&hoBUU^3j2;ixtNL>?OE+IWKn9vkH;(@rJG?xENn?$0F(GsVY4kn4v1X2|PlXEp52E8D4{>B1;O2)=kud<2N z7r2v)kevnp7wyACF+na4e2+j*h=bY}6ycV>wm&R|b$xY8y8cDL`FLk+Nwo{2k{?$~ zHURp&$rfm^6GM=i+zlIdcqNv0Xc2}d2ev85{m-+z;5Fkfp7A+&4R|&krSk}lyJe%a zetj-Bm!UHBSB}hYry}!>QQ3lHk(A);2XFSz_J|4HK0fa3of_&LA%P~~BjWHh>{GN` zk!g4YQwW*_@a=ED;j6+MYQT1fQSYNu3tZpD#n3m{f~BRuAX!{mTGGI&^KmF!F%xEW zL3fpsh?h^`52BbEEv%H5`M2O*7^%tTr)p2pOH66X8l7}(tl~uI2uOfIM7C*6uA*#} zBX0tp4W&MXOD4~0i4U4~l2N@8V};q#*jGsMRiao2!3Pg> z2lq&)qfM+hpn}Qq&u6cX4m&_4kRLdFWyu`6)6yq9(c6Sx-gH_G z?SGb4rN+*$O#9emYeREkqGUO*M|Z70y5#Fx*h|-Ghx{IT zvhv;mnL#&F+_){8XN6r*l{MR=vaIl96}?^k^K%e5xBfQ9-00{swM#!Fn{UIal2q9e zk2D-+J{G4Yb@{%{dLa+Kzh&R+nQxpmYbEDV=Tc~ib~G3}T z>_Q;;Ib5k^9UhjWD296OL?3V327$^2HgyZ>MRYg*@cBir5c zF{N9SwQim>9$Y7=DAx}zJw4kf4uF4!XL$M$BY(v6k5H#H-pCLG2M5o8Lx$ip{--f# zrTDVsJcs_+w*lLa@G$TlO2hz5bRZA9BLe00o z(Pi@Xv+^NVtf}lpWAz56q|P>A0jL%LN|2fXPy{&q@9d;~xF|qjk?7)$Tp~mA zCP1{XQhHi+N#bm9R%)g#h|y*+#u|6d)7>>4)F!@G>LT-2fDe8$HPDv6`Y#h05$0nmB?~ICGzdJ1(nG90`}3CQz#?}PZz_eOQ_M! zG{0!8*xx(+M@D`kmhI*veBsrib`no6-V>*1``T%TEfQ3|p7p{F{-UbgBhy$X#!2w; z(j!+O!#-d0XxoYS!U3@q1q05T0Gp9axS$}I|p!GGwd8VAVLL_5l&y!c|mHUkw=Z7tt-ffQkvH3J59tp19sj7d^_=KS`#E|wTJRv@c@ zOBRhZu@L0G91VwFH_}1K{QwnSBf;As{1gp8*_%NZfO5KJ_bZGj_R@t+8ZX}L?Vs(z zu{+y0k)R9%4uW1BVZ88H338B2+xvS?#@3c>kP3LxW-w&D>4*}~hPW$?>>LpTtt~KG z4oeH-+Uef0bpu^lT`&BIfSu6Y1Ak@F((v9=fFY~(a`{fF zNr^XQ^%_|>*~5b@Xm~tWl?oTsNaAN?PZ8YXNf)?oWeQ_O{21niqN0g46hIb6nI#m~ znTkK-NB^2=2PZ#3QE(v*y#dD(`zLaiCNAuugik^Z-e4G$fW`C>5%F(i9P}L|n$UiL z72S}W`6&e)hlDiv=LmTAsGnpZxMM#~ugQ#{$_!nWqJMx9d#M^kkI=m~ z1}KkNRo51cK-VHwoeiY=rgVg>#;i#|;4fsBFnL9tF`gaICQ>U99$aP`SDxaKRB@-~g4uAqQU+>Op#;d zWyC!4Oc=1)?q))TT#I;_;6lP{5WXlLhWkJSH@$f-+wR2NwS8zts%H&ov3U%?8Ao@kyH0kQbqKPAI z0CNLbc=0iJ^ip#i;#@BAMu8D>B%C3hX6c-SoHkY&56KI3cx{+o2qj@BFy@PwtK9*i zi??B9^rD2Rh1ft7wq-_YE%%7yH8sZV+Haqpmb(;cHk#3pJ)$Nd=Y8RrB61iAD8G(z znssy?$umq_MG6u~)0!2E)y0~E8iWXs6{QPdeJ0z&X~$8}q$wPr(T)NmnMm_JNp1GM zGykUw$K9Nqy{zYzAE_xep%){wwsa$)^?1|`LKU7*j^m}4?i={G=fOO6KTh`!j`!i8 zvy(U5XQkUAyI|~#wI3vK(*-BTpzo!qn)HW#rX_TR5x&E`)dL;DBs)pg%W|W%K8k2o zDcNIX;AP2zVtd41P4X9Aj*K5xw{;!;BXm;wPYl|voF7>JK=+4Pz%WpA9xkCYJO`Uh zTv~M3bDNpl^|PM=BX(bQFnsS+8s+p&4fKPMouXTf*W2I~Hdv7KF+q$4Cx`MqUJ2Mr;IyR?li992_f!f+nzEU_cw9ZrCNO~djR*8Gaf02k-Fw*HU$YlXF|B4s= z=wlIPPi9RLm*12b_tlhLrTEorOC#XdM=BoNU~9X64-NbYa46!2Rd{cRwS^mqwix1p z(gvpRp|n!Ih97N6pnyer_W}}=at>>}L|tfN64f4Igt4eS z^*(vQkaQ_3(+lTk(XL4eGn)o$P8-S;fsl@DW&>!t%ozt#rAy*mTq>;%OlL^kvdSK~ zef$QOM)xt!y~-ht~ca4}GNPg1abTu_Zy|Z%l?aLH~Kz zdBqld)(58!Ij9kZ(fx8JNrdW9r_Ds$_z@*G%g~E;1`8qf>Pi8#TMDxacxz(zeI{Le z;=G``_Ya%rQK;zdPiH6X?XymMe}8`BpiIX`(dJ|r3iIYNW<@neq^&EcUdtum@{AJ* zxWallWj@eK1)^~H3LAk7j#`{GS*0svq)^K`KH2*Lga^DY$83=YlvNK;&)R2u+gaeV zX)3YIJmRdGnE5Tx#V`)pDV-A1mAFc0erU)(>9{m@Htw_1@yGVbA(>%vwwn1Yh`Dt$ zyrT1ytz;4vf(2CjuAviqODOl~X(2(juEb~P50m+^>DbB{x8MfYaRL?g zdDUYoAw3AKD0fRqgBB3cjEE8X+F{S{3j1o3BdBumTSPfk4jMyTK}LA!WfACxY-Tt! z5u?SRPg7L#aOEFlINnbuI7u?~|VdwA^sMYRi z;n>fBy;8JL9209KkeLMJVC#ox+OaEH_JBS%7!lq|a`v3Rf;M$qOO`PzPqI-^(|~mW z^!O?yfqa1$%;$7^wEqKUnZmH_oepY44^9iTuOt)IJa%qCiG1m5FXdfCt86?`G%T8$ zn!`?hGKE~K%upyBp$wWdgaX)jj`yC*7FSFaEyf%)sG!}J<79x#G`XToowo?Om4LA1 zRy118xM3Cov;t=_bpd9JHl$MKUIqaGAnpyWi^^Dnyqyka5x85RMC1Jz0j9ofrU3Kh z$=>dvX|`Gvp3Zq3_~Lw$`J5+f5;juCWKzT`K;dK^PP`b{&!_JGNou8+KT$Zje zye>#r5-dvT(oDloH|k#t_a#QNQa~Ud&pjw0=t2o%+f=WAl^DUu#VITd9BbJY5}c9o z1^rCnX4O#9)R#iL?2&b-0;+OV$q6*uDPCDe&l$Se*(Xr*HUxZOV8?VRo&o~oR;In^mSgs{%HI}{J= zR5D}tys@WUJVjGYHrOFK3=@qPh1g!EnXf!Co{&}sA0((urkp!$ega^LUs5tFnKE&U zQKIt;$nil;T1UuI7K8W3EV{=4QU$ zl43>7)5^U%w@70`S%HwQZz5MVsccFp4M>7)mMA!*De>7#mrqDu3W$bE+QD8Lmr=!Z zwG5Tng$S@*XO#9#@@~FiBdF7W>qj1HH}Eun1yvL=Aa+RSJi!TmU6{ce;IaT%L+sQJi85I#UI} ze0LCY`ZP%{2N25`ehI6aCk-h+xS&5+oC7Z`s8mrvt<>e$IoW-=d$N1Do!583>Qxv< zy$A<9X><`$7`0@cpnMLba7X(vTu4+2Bs&F!&ROwAWAVJlLOR(-nBn(r0a09H4iKlW zkABqt)fh*yVD^Ctr{$rLii#QAp*cg%sgT1R$z(Hg5~@(=`CcoL%seN`kbdtW@dt0t3szSSnLF$E0;*ulLcPl}v*? zfJ^5*J(K3kqp68O=)o`Stn!X|Eey<`%1JxyFh;&DD*fdm*lEsXhKlmC%|QoiwVZZZr)M|DMNU3NS&XJ*r48>S(i%D|hb(Vi_Dh!Vom_#7>KnUM7>ZLo#VsE8n?)J!~j%acvcI<;C$RH0x8_V;7qiUQNkv#E|$0S(Nz4DL+hK@jU* zpF^^8t2dW5gJS(`Fr8(p68i{eK9nk)8!uMip0Ar(E(%&q!^xzPObK5`k8-`U`BVBQ z*{rM5Ib%N!F<+>@mG+qlB&LtaS(Gze!xumKv9`Db=S4B1U>Yv=l#e^K*TD0WpG^!v zW7my{ptUn)`*(J-M~2a(v!l*I`)vC)`a>5y@69Z2&N+t3atxt}%oTA9C#SKAPOinV zKuWc4DZ6x{$k?a&Bu~^F;%*~cHAeMB)U%R~a~3Hxg_rI+pU_;H^rWs^Kj>5DiCB{J zMBPuMW@Y9yYk>KF1`+ByD6W^{T2MA)w_vG@K(l7E0=XLCZ{;wxkAEtswAb^;h1KWQ zom(?nIVUvJWR^A2z=YEISZcjjyNA2vwS9K9bF{xF*I=PgBB`WmfYjvrtDGxphesUB zm`43bVJKrebI*xXE$f?spKr0Xnb+$kwq}E~Do)+zIql``o}S%)dA_6yU2J)n?)*NN zr>0)e$?7IA-n_c?;<}TI#n%Rn?{jHt-m`XYXZQGIcN_lNxy=%Vp7gPfLywlT;7W}* z=B1#!(UR@uSWDhLY`>7g30QXMbjDhHXyFv)%M@E&(xChWysWoC6~C7UogrK*!{=C0 z*?Eh(Xqbt8i+$!BL3gSdJ!X@Hw)^HMEc>YQ#Ndzy$vIPpSaC7xw)t0+@dAlCtbLXPAuWhk)|8Vl=BhN;Bey@{6|CJ7dwr zma{*~4OV`rC63Ay0|15PXYCe+LFGvS3b%%Vv9_`cl+pu9*=U5q?9*`fmId6!%xviUpdi}{35k+RccF}ke76Fwam1GV2~51+S;|S>$#k9YAhBB zXnJs)`B#3A(iAwgPXV&#V~|C{TD`992qR7|p-329>P=RLv2&GSd$y>nY*0Di8jjtW zdfRYbVvm1%r~>s+9<@?E!D&~K25LoUTVz`v2I}@Pt&ggFXqRTeo-0oj=-3iUp#hxN z785^}5RyvSf(Tm_s_eIaKEgzp&~7%0487|}t&ZUPpXru}yr}p54c9<`S zhawp3c$3N#T~-~fpc+6~MWd{iVVnha^%#Gr~!fk2gK{LwhYLgOZmnPgkx z;PxKM1A8xwduj?AQiecD1=bC^f*slVgurB0L?h#k5OU?3ppAKst9xR!#qSj(b0Wn# zSyqz3l;w6YJ7BtQNC<=%boBG@uFJMg$X4 z?lZFH308G0hVSU$9+;iPji|t{3oP!bOAX(9oDX8%Ki}-_mWsHr3mBrk6rHPVEIf%zz4O>`{H0!vl9P*^fr zsf|TvOZMX!@C-9j!C&?K(#zv`l#MFCej|7YS06IzJqyO0Si?EY9!C`AkM|;)G)TDEtb;R_PjwHC0B<4aT4A9FcJpUd&3zV*@gS zQ2y)zw5ZYH5j&`3t{zeP%Q@6}Jej|@P$f$&XE@!NA%xwDM8Xte2qj%n5L=dk80ak? zc;sqvEqM!%wVRxi3g#n$d;}B@z*0(-is93r-%S;~!Y`A7rJMMoWhrQbDo+;1|65~! zrl~LNNvX|^TD4E7A%Dr44@M(oB)C3x8jUHG5%*1#RWkKRaIfKlJ8P(y?Y;dDh!Tom zF~gM`8Ci`WgoOfE%C{)F3D4>mH=GOac~*=)pG=idmQx_)BJSzZAb#D*M2enD6Ec*P zmx+hrsGbsxl3&uod#0CS(CbV=PfcDPogB2!%G91B#6+_$y1q`aM-@0YB$atou|$bj zu5veGSAS(`_phk1WV!XP?4svglosKX@FEGK(VjHq1|&LJqkgD4S*h8<;+nG6sfSXB zI}?|dlK?F);@lf`u~T@5bps{R@AR^01h`Ft z+a|+IQB~PR>te1Jn^&!^-#>aaU#M1Iak6%U>7>ia%)3 zeY}T^GEUDMHk_TPm(Y{boqxb-QwjGui~p-=-$U2=lL`7k{QZ;~?pY>qe)-H##M7tg zynxGVfZS42sqm(jNFMNU-6iqm1jy2ym!=nG=k`6-(jCle`T-WO)Eh>V{?Y{Kr5=J5 zz%D+W*F)6((9<(~b4su4c;5LFNG^l(RK4fYx5Zwe8Gds*x$t6nO|gkHXcl3^z@sSG znAnHD#JZ3c!Z-&?>!z=7DQK}LfjC1go2lw$zVqhnW%HTtHB$&<1G2Dm1I#r=wYG>> z&^Ib&!JbplqL<~z#Bu?N>g&{31|jaGVAv{4k9!eLNE4&;;i|WnvQd;CX{DFgE{45K?NXwy^rLmNr|2XUZdb*kgBjCZ57HQ z2j-V!sFam+KaVig63dY?5+zcj45gc}Jq_F={_oXQgEy=}yVb)gC|?sT!heH+{>zO5 zXoUZ8lOP<@KYjYA&;LaH&wx7{4Co8LJ>a(o{B|#)x9~sX!C3xTlYiIw-*m(yggx$V zgx^%L1^S!bAJOly4Ngt6ld9~8M&ZqERZ*hOeT}bajO$DM=lt7c{)YxWUtZ;Zp3y%o z{)hg9dECEtKMnfw&yYKt^yu-g3A;$Zl!5magNi;##({<9J8!2GUfi2G&#$iLG=Kv* zyTLc#%x-`fFuO$%%y~X;^!M<~5iD zOrT)%8a$iRpf#_-oX6-aG^+s+&$$ie-~&+I*$t2$&&H^puOz*b-R(CZ`~NUg2v^0k zgz-owT~n%JshbrNO5PDuR%V@sE9uf74i`}zWmB>~rs8P#CyM%-HRst9s@4>c5mRCk zH6y~jqb;zqhYLuoigEP4BtSDSzs)Yt8DOr9Cgv1fS~y5Njv~%TsNLkWFs`O9#x@=$}-mp*=WjOtMUr$h=L$EGrGeF!$NY!MJn!^8r?cDYrRO9ltz&DA_wF zxNBP+2Z#qfDvg8Lt0d?dnLPkQgC#;**YUL5T&?7|?Kdr3Kj9&uT?i;=Qh8(vho zA^VUQkGOW85mj+Eh?&iSS}_0w~S{H2$QEDS^fKc zb~hmJZHnahPT~MLBopt^^C(vMrE2IVfFGf9ZJ-h;Di@V3Ry8#8-tDRQ6)JMsXU-o}nm!NtZ-Ng_r59)Eassm`5LRt{Bbw==in{6(7I^w}a0yN#f?%~+Y$ zljz*~$ffjA&97tSJSrWiGVES}Uv!+?%T3 zEqw%xTW)J~-GP5P{H)Gq2@6i_Y{O+{(P0uz=ClC7CFb+lnIB`NzRbbb=vx1vg?;BMNcc1+FFt`ZT#BB;`YFWL^|IZoD%I)PiNUQpOzQ@EdyyTaX@7XOikQ;bGq9(*dbFy z`xFid;F!u?PX5%Yif?v{XZ5UguHXt)NWr`Zih4;I+CZwolJKE}JotK&pf<{vi_uX? z+yb(6qpr7Z)Dhynmuv}m&^b%CE>5Zw4oQW&S3&xE(iKl4RT?rYmPj>70riO#Qi&?s zT16NXkEW9LR;GaHckpQuOrx_&xOAW6SB#__)=8h56-r%KWl7U3PfS*3$EXUaN=Ybm zz=+eNnU!eLqDG#cnkj55Ppt4!EHRd3 zS0Xtq6a<~cGLl-8nz;Z>1aaKiKH}VX=wMy83Mma{RFyT7+Y(WfyshX3q|)1>zA4)@ zb4RuE0#iW%YCx60aUtLa)dFVP{1P~U*b7yMIz7~-cdfH=OM2ybZqH@QQ=o8+Fd9NeFqd(jvn;3{g|nr>SQM{WB2ZISQPC4Rrwx)q zPMT(9s#A`}A2q*{h3iT3A@>mookV7v>dOh# z33wSH7k}#kdW_dvb=q*V^sKrh$nCC4uCOMLgUQOy)cf*s#%I1deDhVJ1AzH8Xm~;1 z>|`H9mJ)S+Gu`mG1Nlesp6GYWDista#a|q{TXUbe8z_+uf{OtqLc<;7SjPY_J=?(w zeE^%z9tUc&^Oi@}1H%KI2d0L*oR%fG#fX2|R;i4J7OyCBPt!Rt*c@f1qYcvMf^4d` zk0n}M>FpCE^p^sb@V=!bmT4e)S8D98@1^P)hu%q>3v5$oGm7M+$89uXXLabOwppsU zdWsv6?BbG3JPQhyO2cP_p$QzMO%tz-#R($WNGXeCnOl*KGC~ysow5*I)O9chEq~6H zb+^M@$#%V9;x`$R0vBr@XLvq4kdI9AfR9~3r4cNBe61j86fDYaf6g+8U#09%meZGr zsaCae68(}~8392}d6jR%U(5`=5}XV> zjt)rSlR{zbiy(U0jBocS;348(UFHdATM5lRct-YJMv%209J zqhm8anW5ypIW8>ST_X={nl7($duXdc1}b_osv z=Y-cAeXY=|Iac%`jkv@kRj7!DS%fwH)+AqgVjL4ctEXz%8Hu(gDp9~d($2(K-TYcl zK8I!&1{k(Ovdfundw&SBDG0mMK5M_gS{BNZ{X50sSxJbQfgnxqmr`K1_m5w-JeR!S%&t+XiB0~WG@&hB#~(<4TYv~>YVI>2UXf=?d;-#)F^=(+5=0{zBQal zsBBxhTH!p_r&6*k`!bNCH=ZgaBI%Cw)Ibc0Qx)Kh^a2&&Am9a84eO;Wa(2v>ZpEZT zwS0st6qdXQK^EEeUL78t0OFnOzTEps?CmprBybKCij`@V`A0t~c&UlGo>`q?mU&I+ z1aBkHGFjjrD1mC854RU%k^lQd-~~?;$=EE1e5nJZ^NiA13+KnMW;PR*?Ex&wMi~V0 zN$2Rz*^Cfdc2vYKB|u zrh`|0!{L}L*GtAT48QLE0U@_O0)ktB0?UH4y|J(WRa51%rvY<9F6!oyZ7%^uzObC( zBRE~K)(%QMj#e0<4GUluNdI|pn-j7z+ni8AU{-ai-tPA^rV40#?fSPOGLxyS)V0{WEZsOfg@w{!8Sz5Jd34h3&cSjhJ>- za+hQ?9nv7*e6rW(ESMCpFCqXT7s=K3ORt&;=< zQ_@7<$8nc~T;}G*7y&3rAsqNH#u?qw7 zKZfO$k~x`6HwuHAa}bB9DL8&p4CkH;^u|yMEW&OrLhgBgr|v(c7(9KwTb|@@3Jw5g z+~Y$*bOgbIq{LA*MwNk*sK1F1X?_6gubECliR6x=k69fzg9FO@kx#=P1zv-woBGka z?q11ir*563?jU&N$U3Tg2>6uF%G?4=?ao^d(geAgQ%8jOanwbHKND!dk6Las>zM@s z@pwWxBfB^aQYv6vhM)TPgJQ<~OHr(_%2|k(87@tXBZ0@lIk~Z&ViZP}=2i0xxjWt{ zE}+Txn}lVaOsya#O4!kDf;u9JmEzt!a{A9sDH_wrzK6Upz9YHa^B_vdT1xgUpYzyB zMkQt6Et#~FrACg~Bicd)iM^3so{X_%3Qa8Mc00b#uvj|QK8l7tMzi1c9c$GD1C}@T zN_q+?`+P7$r&97CBQ{8^byTv$d`HlerBnfPVsT9B2913#3=@Sq&ZNSr-Rp}cUA_-g zFQ77pF*wscGoBRB$BmNgGWaE4gBWeD+CJJpIw44O zUccGZp<+6@cP|=7`uJK`>yFN6C+3$AlO)aF$*NE12vXPUeZ*>KR2GTT(e`>kC74;R zNcvXl!*yOyd^`HsOGs%LUSNLYkaTF!5O{7MmC$5FpPhgidn{uHnI32dR;`wR4wubb z<1vPPY%Jrfu6^_|XgIAE`g#%jXwPmvqi?-y55BCd(U&fC)Nodpm(jK`iN`}p=C{fn z#VQnXp_&`3>)#eCZmg^<-w!I~@PSYXI-iC!r|q*M&cF&$-;TP(1RZV&zI9y}lCY!l z#5~R#saPB`E3IS~j5Z2`Xmt&@`cR6m!2zv2$=+F6Uzcp>oMMr>7@^Jg6INW2@fU(L zbX9{hgWc1!_QCNicQO%cm37<}!7E%R zB}@IPGLce2JrW**k)N3qxv^(O&1DYDWdD@$sge`i=)|0$m~?5G@SzK2^{Dm%%P5m1 zi(9v&M^RR!esEHE^#54^_8C<3N^%qSJ3k+`5B9b@2fK%FX1eng0B$eNg1pDU8EjA? zjUMp3Z0QNTPr(Jh0xwVOOwQLB&cb>tCAMHFD&}WAB~25F#wxKfJ7F0es`11MXH?Ic zptmSGX8ND}A=ixZx@N|VG%G7H>iT_&0QRZirh#Ca5JL98={ z#=sbh2-vbRcfbI`vDt@$JR|tP$T>-wA0h5obGC(L(Rq@<38yv*u}B-;bDZu&O|Z{n zDQ_PCs)yzWK33ic^MPYrYNTajI_hey$`d_W%jTMRnEWWH`(SKwon;QCRa#NSE$f?> zlOH3GjR5z{7KoZv&ijr2qiiXsVHuL7!O4%i2;=rGe7+p#Rzz6Mx#f+wSonJPta#!Z zwy!->+o`cz*7;UNg(S2T*yT3xME+Na^AkBBu97pu1;5xwoQuXtKWL*r1#uKo&`&-) zs%d156C3_cp3m1@W{ZNYq^WAkOH+LJ{~DbH}-3B2)tF6{^1 z*o&{1b`)%uP6u!#`%63K>hRkssuWd8_@6S@WkCEsm0MyBmKUd!F`ETu!F?#>qN8>2 z$zPJFg+BSB0*)*p&0z$gv6ebn%x1Z0`z7go9@TRklI}Z~G2bkRC15}Ik$G(A%T1v7 zzxeDC`3oJOBQc2Hp18%Z!b)={1>8$if-_XCW)4E6g4TWUH=D z9#v?cb!n=rAUn9Yu$ur_K$r(H|J-@GySt-{fD?$T~ZcD~#CZ>7b9|3s>pnk0s0cy}|v(o5LLtyY_Z8+)IX2V!OO^{N}~}-s$Vz z6MXG9yHF{qPwb2*-C>XnSZrQ&6NvO=+c0et7K~uCmaeCBZ?LxDR)n=0a4NLve9&#n za14apOoQXpb$-#c@hRSNto4-neZAh@pDN1tb7vnX#Zg2CYr!Nt<1aSFL2!WHL+a0- zs))&7KdSP@x+yby%7roWjuFbJ@@yXj7)TzSr@)QSz^_pr`!R|?0-}y9PfByLkJL+a z_xWLSk}P3r0~Ar9+Z(VrDJFKqj*$q%6Vt_8AMVd|x+A zu2@_6oQQH&saK5lFz{eFCYaz-R0|AF!3J8p$7VjBUrb3HtACBk2xf6(x-sjWVoxIo~JR(hv8)O$;)vvzO()M zU~X~MoCS$bH48XM^$|@3Ep!o5ie2%s= z(E9Tb(#y9$nce>Nc4z-+JBwkT0it2llT>h4xv1JY{>x}MOlWaUZxELm^%kLlOi*Kae;9MSSiksC}Z* z>(D)b!CIyPhTN%SnOv9NFg%s1eh2I~oC>-g7!rUrA3?Mgnnp-e7tN1#&q;%OJ3hI2 zT08n;@34LHbLZ@6JGY-IJ_TdlLkbqm)8wg}>WPa{$t$>hYG?JPy3R|^R>ndk>kaT# zzO#;%M+E}v5G#>&CuxfHc)v6r7{GC+;K3OdOZ@4$eYhj=W9nlvP7#q>@qDkHRC0XH~xxXm3NRPS+1G?Obzyhm_0;w z_t)M)Ul2Km(wijXxhL)c0X%gZ{`vZqeM6eg4Qz(_=l1J)Jci)sEH2|$zIj<*r z)-&$LJL)S+fo%cPz`q&FijsqUt6e}z!i47Scj1R1Mst4!vq~WfCU@J5PuyLT@j02X zBiQXd>_85hyaUj;MFNgH+iy-)7D+>8kuXUO(vltEynmdTv!aul@_lw2KyRy_UP|u9 zJHeUf)s#Gti{wt63&{eAa)iTt-ab2%lp8kS%w(=!n#KVzE55qL@haj(r~h8SWMJ9A zMEmS5fhkTNvI4ll1)9odo>ToNZVA{JT24Fb>`rjwft%Uf?gey3(3qfm^#$eK5`M@Q zam(aewsqy%sDfnc{yG>le{g3Iy_zbe=2_3(?ft#u)7^5V=1nZ3z$ir*EE4IM{7gwi zY}7TW$B;eU?F|F8;}gF=9!@TTP|TH?=?}f|=?O8yY$QyL#7J5EwP*}P9ze$%HW$h$ z%);g6h0+ufdeS)LPg)O0!Go12qG1rfVx3%)XPM-ZobcGp>RE<0)e4nF04Ndmik)O4 zKlvnJ7owz;J)=VOdplCw9lC3iTL}gS;93-nLv}rgSSw5xPb(cegAXk{Ui?7HJQL|M zcDyYXm&{HO>#QfG2=gQ7S|Nl{yT{LzrA7mjYqQMVXn{E?K{>XNDJfaHoLw``qc&x# zm#95v_9d?uy@W5uaGF5OLpp~ca~aP)P9RK4fyKpyy?iM8g-E4$9Zk|H65W_w#^H2Q zWzGtvNHDS}nOUw>A_9cF(xnFy7z-oB2t8%%*x5U6zd$RWPF0bk<&;t_3YVgDrd99*YE^FaPt}JDu&rWx8ocU$b zSCbB~$-Q`rkyIXj751xX7;5~~$$8@81SH$DM8T!SP~?)GR7HGtWmgy_I`{)6|rt80*Rz)!pZs4&h_E8)O1 zU)L6XwAgW6C@NPxDVgKwd>Bj}!;qMPIxh+WT*IPdmrJ zr(-_tQhr>rF`Ax;%4tyhPuq@aq#2g5PD;#HNN--MXRMetHLQRZUCRU`X{D3~Dm1BA zb2{v_M642Tij0icBr2Abgtb^COEEHG?ao_M3U=I@HG}&{9Hr?7M)qPnv&F0y*gkZ0 zaI&#^Os~}TiT^HuvJW?T4f84nSN<^3N?;;T2rqUG%Z^pTj=~FpthK&e1lr2_-F-;a zdOJVv?HJXqwy<-nXxSNMhCYQ;2u%-nj(${^bM8v9FcynVnfX*P%S?SB+6C- z0&upv3Y%dwyd;wSMGtn_`ics3iR?T%c(dQ8f7@q8C?uaQa!}Ca0Q=`F@U+4?Z|zjX z7r+Njy5x4!_b$62s{nf^FVs0L*vF*jjX6P|p_Nd-V^Cq;GEpGGoeVuHB76G7D;3~q zkn`iiSBZEy2dpH_wY<@qV^8X=VBy!PXIC%KwMT!A2w7j#9o+S zeK6P|JY#U0a=#b_rLyu>y0jE_xVP(UxXWB1jtrc-nK)P3oNb}PEip)hF8QPoCN}ha zy!rD;ponmZF)qUZLy^K*nXo3nKR?$3{g;Y(D%-p~AEw$Iw6{-=$nvM6cu+Fs1Nk=e zFI9SR{NG#HpzIf;LM9$X(%xFr=RIY16?)Hi+R%u-JGL5Ue z$+=vVyJ5E4Y$cgmQzxF3(oOBN*MD#SWC+f&PwK)P0b=>)z)J^z_pb6+3VA}pqYvH{ z-zvj_d-~^*F{%s}CTVn451|{8fY-k^{A-pqPkQv9oG&+V)Ovod$+y?1Jh| zLHAU0mT1UfoK-HJFa;qPxV7YmOP^NUr%kSduq1tPB4HgqqL0E9wgMs2M1??2r@2!# zIFNh}MBwaFHE0g5NCQs9TW>gr~Veq9p^RR=_kZg&W@F&aTHz@(Ti*N?+1*=V3t#pdX7cR=DCV{M$!8ZaI^EFb;beOGuVbezN=Yn7u5-xgE*d0={yva zxMEe=#ZY;2zgL4K(4zgkTMDg3;H}|laAH5Iu=&&7_R03^-NRQ(@n?|hsYxR_aG@Jr z&5+00@;f9Wr@Y`Jd+#%AW^5W>T|3Immyu^8SmYX-SB$%P$stSpMyhYzu7dX`+?^`V zLCv(w!|%wyQpj9lJmS!!IwM-i+6WlK}j&(fcEeVr}>cNF)Y%W#Pg z2Hy|{KrqQyKL<4BkxOZlQiCjS<`ost+<1DvIF;CUlvMXD(6wps~S2fv_ z&RIZGUFVb*cPoQtVpkFMiWp_6>Px{h>lO|%Ib(QXl!Rk5=j&tK-IARm!boUWLg5g< zj1V~3PUU1%QKh(Ydyo~8Cu6MunRXEG<+4h9!sjSkigk8KfML!~5XXdO=grB!p&W|3 zN?gmRnykdN>ii{xV4O%6_spa$lXPkbQ2A0fFiz%#cNex03f#L0lu8Mq#b-{=7a5Es z1E{?&NkjpC{p5`Um_*(^^NN1vx@$c791{O=P&kjCB|apDO%onS7a#O;@EJsj*#Aum zsgX`%c*$|7>|&lxRQ}w^a63dm8;XevccEChz06AuWh4zJl;0475C%q>w0;sYu>08& z#$sML3zHCKWgFGykS94v`dv zbFUVv2C@KPvkB^RWDj#Ma7JCb-ArZE$ibI?9M-aCAC%4{NSa5{*i$wiiDrt&0{eAvN|HDVT{jk#`>v=O7fqMp?Kk~8Ia zskIPOR#Q|(Ft`nNMXj^1)BEaWanDQh48Q(9)OTre=_Hb-=;HqN#ODs9`+bc_|oTKmpAjI5pe55uFxh zyfN;d^GjSB#@CrAIWHtt0OSUA>-2z8RE}+^UIQjku?eWlkj_}2D))I$r&jjDiwXIM zq*k#Z%BG8Cu^JP3=T zKz{Sp8LlY5XuR_YPt4*IvIcbywUJB`4lYrkkK6UEVlSJ5oz^5Xo&qat6dJOx-*=xEP%qyAuO#$Y*?4?#RgM^Q~Pcrn9fm3^1 zM=tF=h?5i@S7NWnYO^4-YIu`08tK%*Uf;+%qRxNcpTD`Kdt&TJw#y~3E8FBL*iwF1 z+~d}kZCG(@Rgv|hgX8x0+58JI%N0hJ95TxTW2JmP6nm2h&y3o4#t!6~Nh5>RifqOg z8|l2>NRbk*7K9$RQ4TK~1f>`BaT}eK&wf6h=^H-w#>nJiHTHa6DyG2W zn99XY^^EY=oZ3oj*|~C7zJ2P9M)ig>WV=P}nY#`@w_50oIPepCasfOqKY$KfYw8h! z7DUY6gxG-EQ+I{l#k8x^WI8~-8~JvZ1Jr<)?cL(7*+K?@{U7aDix;8c;|zHB5n~|8 z09<*JHv#7}4_UmLq_p4;@^Y|)aWT*#>=y>evEXdPiAt#iC%J};@XFD-oVZf9YNbxZ z+X*@&$w*8PT~#}h02!eDn*2h~&GI4I$43B=$pZ>pTl^}#l>7ZRdhi)x9BK1~a(RZ^ zJs1UPlFif`C1m4Pv&@ZLGVm|Dmv_I(+n<@17^TvHfOD1{={I9j)z;h{#d7#l;1iez zE>cqzj%-4K!;B}YjAx`0pJ&&C=DUf|F)B&(oI?$ztWQZMo`h+jEIx4}1tP{&;}4+5 zcD@^wDO80>#WnHf)#Zl1QKUQ$rd6U8m8H1!OSHGXLXSc&JD0E0r;1{-%iqV4DmB2S zQXC+f|04j&UnFeuJi-z<2qW#9$-=o#3qJBaie@wFBk~BF&R^3Y9r~E4?XOtK0r9@U zf8sy9KB<`rKggwn2io{Xkv!Ce{L+mB|2%6jj4q;_Mqh=3^6=S7qL}(hmMt}Nu%z~s zH(Ln3_*}3;By&m~NHTefjN@$etW_{dR^1nCP^i$EJ2s0{=*%4(qdey#$3~h@KQ>uO zJt^XLw^L)3)r7t*DBQTZXTG*4Zu`xudoFO2WQ;i{>7MYRP_Z+I5BF0}k@4Ver4&^~ z627GGUP>`viR`~^#lm~SlmaG{V#-4o7PK@+S(PZe#9+4C+mzpf{_a$OZ$40s5`1O` zl;fS3o!7ugpHRG8nShq@xWyoD$*+U=xJ15i?&3r&%Fw%06LZZR3m5-r|%?FGZA(4RkQLtGK7ADRov%)#$o}su|a*ZNp zN_?LkZ zvO7H47wxm{*9S*CyK^@P(|qE4Z@ZX(3Oz3g>sh5GBqz__2)t=Mx;6;rTTn+caz6V0 zSQQgN1=hI(#GIU(dc6sHlpEer$wvi9VhRzys3(yDvLII46p3=q=hidA7wK4jStUvy z$T=m7wH2@Tb|^o<-u7+@MPmb7&gmyrEP~u>lDLGK!Xzuk@e+^49;Ye5e4kV+RKELZ z&(&FL=h<%V4<^=Xr^4j)=*`LYF1ac%1QG=fz9tDl`y!BtdIFC&RaayYs;CPoSU%{E zrT*A6N~(Y%jv4j} zeb;+Aq8cFjh*JLrjJ#7p$jTR~1$lUsm4f7mS=2(uidG5>Vb&T1dV6ol!e&9WQ0K9T ziMt0!f8R3K-U%mXFCWS`0f$=HGa;LoN>7&k;t20B3jQV1 zz>grXI^RCk#u&V4DKIyUA`Z^I<~xOnK6FJ62B?EemVmgW(Y#!I6>Ayg))jcNu=4}< z^2c#~h|}|%AT~}ukJiTGZDR@aU1F!3gA7xwbi8qY3L9M+jLgNC;E;d_Avs@ECIA)$ z<(zCgxW?2DAm9RH?+^QltMJrFP(N1=t~^;-5?)9SMsCEGgz5O=wnZbQQKp|%%=FM# zht)ANw857sAr(9?&d^8V>&GzB8rcTelt>*XD$-x|LCgMc zLNkZ}X?=gva7F<~8ktj*>IZU-1hEaeDdP6x<{eW{U|4lbg`yNi<_@{S2kW43RBv$F zj%B(*?c_`9EYw8sRZ8_<N7XE94$RJ~PlLko^tUQ@34H~?{pF;3CT^BSB$7ME2DMG95|X)%$>VHnah6chv;<>6;gTab>VB&7!Wc zi*u=4C}d}w%#H+QyG3?_C3#saSt79!`%jn{nN3?eCa8Rut|XAVksLk^JhFBR9SzEa zO{TEmL}yB56|~e6wdBx#E*@r6F0>gM#$|$lijgAS69(~6VFP9uGQI*JKQs`#mef_g zM58}83KClB%;jgjK9r znj2#z!h=T(U!Oner1pOZZOCFVf))_+sB5g=MqLRElT8-03X~YF z;bGJT;#BObyB5=gR-P!FGkUx)bLuq6=Rj)VrU7{nTn=^*UXb+CIo&=wo^MkX0j2W9 zs0pTuCI&*ulU_8Y;vtv*aM!6f+=Gdo2;7NkZ{_DccGqlqn%{Hx2R_cuHS@yQinMTs_18~ z*L$KK^Y$YLl;{#EV_M5XK_|nPr3E!N{|j!t zT7RigOCH`dK%Ep3sD9cvIaA>ed)l&mz#8JwrYL+f8$(!pUPjS~a8Db{_(mX>d5%Se4^I#AvUH+F>6>Z_ zbasC_Zkw9%8B4huQ?UdrK;Z!!u487cNlW5i7{j0`qzc7Kg-Sz;ms~JZX^&LON4N`- zFrtq7fJUGp6C=k>KjP9?o~qV}DVi?P_2gPv4l5XF3TxWw93Afej8GuX@jl7}mI5|+ zFn9~{ur0q&O6G|WF4>qQOH7rs-3ntm%E1d`+Ay}(G$o?wl#dP|`c6ad9q#T(CQ6xC z`?RBe$02Q1h%}$x`cSDR8#_`D_ndG(3F{U6_w;3mALZXe5{1f$R zAgA-LH`gK%sN|Pbc6(WqUobREDGh?G!kltCvO%Qd=-5$SC9g=xV39>lS?Md4IG>TW zh0{l6D=ozZYpFRC(a#cMu7Y4xTT-^c3z&h6@nQ;0VBh;N3Og8MY6KJz$?fWEcR)uG z{vD6&YlaoBU)%1E2LFUC5BxLD2m3-_yT^C;H zoGQTw_sOQpz91Uot;~nYsfD;KuZMXo6lF0Ut5Uettty>~XoUHafPb!TwW=(`dr2~( zE9;EBTtDI5JOPW*6A3q6pTqbSbTCug6Z*=t1MHc^3Gf5MYq@U8k%-~9xrJ#lxsZCU zFlYAUUa`f%hUxZM`>x`gipA?!U13GPfA+_p6&`Nw?37Xs0xadHTmZjvRVZb%EZ=fn zCM;XMOfXk{h$F2thP`}DE6i3M3_*$FTy%P&`?yMq*LY$3PXDoY+rD-^-SylVoN)eeXgS!u72E>PF$;*i3>aUn)D~2;us;%hW_QZDJgeOG7WTJNl_A)OMb8n(Db1(Av@Al1>{pZ*=*`J~mKMHZ zT3oazf4IR)BD*>-*^Iebf05)2L4 z9uk!8PBXqhygO#mds4z%6Q8O?)|r7{ogBS6p1(pW{heQ8rgdSx?7T$+TS+{MMB~66 zZg;!D5_1WkW%haTG{4AWoswp=T!igO~uhk667HHj7(it3)HpRMG8TsS^TrJ+YhWF_t$(pZG*PW=KUsDbILiTA&uwp(P~g5G2l`j(07(NvLV%?o~&y+ZJRL!KZ9V zT-S9tgj-8aAMYdM_#o(8%_~m?Cphem_1B52W|?9cGEUSP8ji!P>_A3CPRcwSp&Soy z4tI{Wu|{J1Oltd?Bo=|L5``+WEXD7sc7LUe}&Nb z6#Oe+!4Hd0UdS^py#W-SVd;Dd63htmFHf?@M8l7P7<=1i|9Qq#0+2F9$?Ana#58bS ziIQZKrJ{&|B(GL%3h{%OA(HA&Yn!G{X+q4Z+!6DDuArF5Aw%s7k2{BN4mxMAPj=fo zroema!;PBPHk*g^Sb`Rk9ug1fm7ofXnis=~%9>@hC5=(J~Wk*u`h^>Wm8PsXl z8`AOV`spR+{oX!)18lU%m9%9xY>ELGm6n8GE|i2{T`81=U!)?u-nde^IlpCkTh}zx ztyMannYx@J*E#b|Xb{EJRFY?Exib| zNz8*G#^fFUvA2c@CZ<&kQ@Bs~@?meK4?p>sZTk*8T`}Qlon76#d4jR!>E8dGnS7bN zACQgVn!xo;o2=Z|ad)ySKZo3F1>{~?Dah-XKnq(yP$xlh^ zFU?Dp7U$({6L{@g_^PfSt)9&^pwvSV$IVLPhCD9Z0nVmJ0XTTiXSLKBF82YWGTV{G z^a3+>{CbYsv%vN8<;IbZq-iqleCCKT%vBu&DaymVmV7Z85zS3-cK9q=jd`up6ktSQ z;7T}ly6Wz#mYfPu6I#;+-0h?N{q~Ea6XINM1zV)33c9z2tyN@#^zIZh820eKt{I?j zD2j!xS^vvJ7;0?oIin~+<%!lj=!7QuInMXixcx?yfVj93B%<@vc}o46*v+bfMj6aS zi(mrxi!It(&Q$DsbFkmpzfsgdP97k`xG5268I1f+B>RDFvOGF?^;P1$37KpjL|D9> z*q?o?n8~euCuTD_ddYd-btYh>z!@8+Ie7=?Xz|lQ)Heh5tpd1=_Mvj}Np+6X5tf#g zeo!%}x}mf$;WfR&oHFCq$h#(mOfRCk9w6)m7b5eqLmW#0H0`~EJ?7(H?(OdHAnF2$ z2GOwZNE&*cTgHN8N#Gn)|dZ>Y5ArO*jns|M87d3S;T3_Oj$1L6lTx@9(h8ka$4&OusD`C9)tLc z8MjD-ac+tOJc$I};C)Raax5N!5KZ!%bR+v}`UpXH%#qAx)LYBTw_|2B2Ifz8=^kgy zj1DtM^B-Lv*yK{bq8KDAq%NU6WAS6XoWf=~!OH{%lNgnu<7~`^fd=H7$~_XOKyK07(sbxS)%C(G zWr3yVh~134tUQ?_FNspzWaX7)t}O8dX1wxbG1uu^BcKJs64jv%>7CAtpKlHAOrd#C z&=zt0&j;-cjOEbYZtw5kPOk51DBwd5yJ+7{n= zi!bp~b%m)NGL~_k{H)I`+nLv+Xtf|2FyD(sc9JYYjM6FutJws8{r#>Z$QB{dp0b(|_az+;#OuJvaWPKLMnAbaU)% z>M|#Lu2Yu+QsN|0J<%7DkBnc`ztayEG`_3EXB`@Kuwb=9#|lldJ_sbKiak)*tt#JX z5IJ&vGKeE|m_PN-y*OaA#u3JdWQPw4 z1fPmq9Xi8aU3%zT=V*w{q(T(k_b{A!;_w|w0sVz;dk`1S;Huj`+k@vg+%zIQFO)84 zw6tiS=5shoFdz8EK4#jhsraVt&{r2G*s#pJx2?W#$%wjJ}4q@eqc?>^zpS;X@fKHDL z;C}F8N!vZ^IO6?|Z@l6BZAh7DP?Xp_3NG(YVis+(peIUCmHOj?x1}K_UV1UPz+7?$ zQn*NZXoI1ef6iM9eS}$R;YWG4QK%E&s7394#+L~XONw>O#ZZ9bO@P1s@)hR}pB02x zDNAloQ_&DN=ApY>U>=#f2}hi;Qc(i2aR5fsT+(EG^DjD6Ip8SQ#U)Wf^$$B9^*);O zvZIMjlE^%I=b-&l=kQ2{lP|2oC);L464vQxaxtDd+UBV>__;R?2}lg0*qP~yN60~U zV$Qylg7n{0NqVRU#42!w)8{1F%L{rj1iOE#_y;L+5{hl&Y-0LNWmPI$DAUHy3R%xDFiL8OXF)r{qjG8@ z*Bq(ULN??h@gbz;R95JMn=tON_0sSLxC!o+Bfly<>}A`vEZ`3#`Au~r$$@WYZM!?F zmZ2e`>ar@%p={M>C+)-2hr1Wv6^5MPgEs>m`$(5mzZ}jiPEnxD>sb z;$_j7Ac`@5Y7zTt#aw>g!0{iCpL_XCSWIb-;Os169l@oG2)65D=^n>GcJt}eb^N#W zbbZRg*>-RW^sh;4I_o3&1{>}G)%lcGaMdA3C^{J&reMy4I?x}$#O_g>KB=SH96`S1E+Z!q%WkIDU<{sqqe>U!?{ zZ)|L=Kc4@G_-sx2R9yP*UgM35-M^)V<12+n9r{h5oUfJd|5DF_#tQh>1ipFJG$F-)@RB*7} z-eZlUZea##D`U`k5Mz$@%gC*q9>3l@{ORbJl?MN{B|p4)vq!G+|Fz{LG{a_h5)Atl zu6L?x@NGG6g<9&Od|ODGs43w%uH%?9r|_6b#PV?!fl$?fH9AixMHzkc`8iepuDTWc zXS4Eu{OzwbV{&z;dBEkttMI#;R=tW})tum)dIwinhi^x9Ag0H!j}Cv{gdan+D)1AE`jWlNTpmOJ5_;jeql-pW^ii%uBjf5&U6QgL zB^g9<+7la{HBYzlKQ^<8l`Z_Qf4lLrfA0hEZ~iILf3!z)A&mRd0o+{v-)JHK_bC5= z`OnP#*U{s5lLY4R|0`>``+sG5V}0fE{(p#1`*_beQQMs7^eZK-e?>6H-9rUYSp$>` z(qt1WQ<0lE2nO61F5*q8akyF5>HzOKKe5~W-T?Y<{+W6H?@0$ZU;Zzg|K&&h-@|-z zXZP>0`KPq`H_!nZ81twH{F8l(=bu9+?o0QFpZWU#l|28qyt?*y{vYBqRk!z&&|q=h zpPnX>=)X#HJ){|%*4d^=_2@wuzAdo6fTHmjL}WQ!h-vqlY6ez6ioi=h^tmS%&}R zpN~B%0aW&Cm*Q=k-6#d5+H_j*b`lMPzVqZ+_v!hwZfoVc%I8YOivjh9{&NZBe?Dk! zhUuV5VLG)|T_!2n#WtNV3VnLd#q5q<4+e<6u;0W?6w(%p(M9p5Lj}vcA+=7?T=_ih zM*ZvOY5Y9xOIv&mz1%NgjhM^bkIS2HlGTuBRq`rE>d}i&FxmL0z`uMxe(pUFMi0r|B45N$4*>c{0FKJ}As)YJ|zbA?1HtA4SIYrD?^)(k69R}gYsxyfF z^Q|go)krp%mbgc^7mb!C;bhe84WmhaNicG$>h!(TYYw9Hqkp|sy>R+izB2Hd6n+97 zMQ&by{-NeFI@#N<9y(!mirWbSZP8N9P(TKW7Yk39ajJi zSFs^15oWVOvsk9~?&=11u!3LV_Z0$_y8&as&@c+l1bb}Z#8#pG3d{um3#-80f%jp- z&WeK%S_lm2jev^_SO2r^N76)^1Fqpl&zJcvp*dw)Xt-V?$dQ# z%esSWfh}`a)?xSDr?iK#6+8JO1}2P)>sWyyVRvDd*I_T)&*0Ij!~cbKf_#qX z&|GuZ5OC|yn)HAF0<>B}yn=rK9~spN-Iu)Q?<@56ueEB)Rb8#Sn3khfeFJ2``Tzbu zoj0dM1HSLZOV8o7jM3kSj>}gWf3oa8^G9Dj|7-1s-4o32QHN2X;q$8VjY+HOmCuh( zCeuH~`yWH(-SPE3jxp!{U)^XGAlCYzv%ws-cs0S>38^TZvq5;@$^s=#ulpr4a>0E>YpCC97v59_T37 zY&yqWGtWu}ecO_Dcbd-=sovK#W>TrhkHA3XXPtq=HzO17bC65wR(lKoKo8YcTcZ;Q>~-(--l#V zF?=byJ#N7-(ii;>-(d4T)|T~GmAWBoaEWy&YtjR}41!wEuT?WL4Fk#o>UG()R}_jk z%;C%Lv1uF>Ic!>wDitj97;?nzmh%fOwTc;|0gbB-{yJKTSJdA;t_yFu=-&e4+fOwfrk;^#Y6&n}|q0(L`j%F^hGbBb}_ z4a!c#FR0*8yeTmK4yN7?uc?F}zfsNFLND(SYNRdh08fC~zX*2K4$%+9y0gJ#)J@!e z7r(eWr=8OjI>RqtyQ6*;I;i9(*9rP~3Rc%ztIyV-KKr&>Xdne4pw(GC@ddq(B>Ec3 z8r5`^Bs33?UJ?h6EPfMzXi6-31-~fK3ePiU*Gv-Ul$!~m~ zJH*cueEA0eA3g3RNr!`T@nNRZQ_nw?JpQ1cV!DV)Jj5ZHIncscr6Ty>5t4>I{8m-O zY?D^O9@ikbR6pzH671VCDWRf(7!Mpd36QHE)gL~)9{cQ#(r|#zP<=~|uFev4P`dX` zx{Q$ibcRx`1Usg}2=sncJ?0Yi3S3p&dqugnrHN_}i|+6~PI)Cw_;IrbwC_U#C$KVa zls;UOOVC^o2k`#gIMgEl2jD-yUjy(h^#8yCKI;D;;xldk@5%L-KJ)#5^Zq|iH`X5g z{~qLXWB=cL6CvJ5U8Ls0C*K_`@RIAQ zq@0W>Z%@X3Djp?ywkG2qXBA&{mz5fb3MC{y)({IZm7Euh%q(}9N-x2rR&XIn?k+zZ zP+2QZK|6NFeoTYoZv)rJNSP1Ss}y_;($_~LHugOl&ED%mARvMQMARgI;52KS z&ZpH%1=sm$HNVupkM&Jtv6zGrK-LY0L3+*U0NZ1)2QRiU+Zg5?^R9UbXj26_kQ3*H z`~?42!PHGDiq;K6%$J3lyzoK_%EOmQj}p332|lBe(fh;q0GyO7Qec8$5tK3B>Itlj z_V`r2Ua7QP*i!nDt)IA`2Y%|I^^~T`Dct>p60UkfQ?2S&R`Bhk^K%RZZ{q^+^|rB? z_lMuKU_z+VY<90x*#1zUh1#qOOe9=;KY_nD);j6?x=V_rCan=yag8ZAY4e=-%g*;( zPT+j+zzVUvQ;)EUvK~Um0Ig5{5Qe0=NY1zSK{Fk^cRo@2XoY~3PI<;S(7npi%iVMJ zN!bmRXpuLC`&vaP>>$9l2b1t)fNVw(8F^M>ph z=jh{UCD%#nkEkz~cajD?@o}p^c|*X?2#yndW99k_9(|t<05j)K?Zy7li#niQ9Q(;Q z;>3`c?@%qdCo^fl;p?VY9zde`!^H1Rs8#@jIMI8cGi{rAAaiW@KLMfeF0z_iaDF7N zKp!Vn3gjHIA;H>19;QYO{c`{ZW&`~w)!-=``1u48w>gfZ=p1mmiRe4@ujI%f=y$y& zz=V}pu4fc6@yQ=5b(-k?dfP71PsaR2}53Cp;1*SNgXphf~eLTVTxkj zZ5SI)4EMfmk_7Dk6stNjdX0Qo(=}YZ#WC5|SN~li&)8gSZj{csou5*#TXQ+$%8;;m@!x@v0)&xi^ zm2;vcqn=Rp3Y(9rQY56?lNht00{vVOtc7lTjt2FUN`=2NinA6{$Rgp(WkkAW8Zg;( ze(}_i0)&Z!D^-d}!11p3gnw^#hf%k#sueoFQ1|eZ{*{M((ilyjVB9J8ho^(_a+Lkx z=)9;f)-@$i$7()(RVOr?yzA_xe72M9WM?U--($MT_cX2dy=XWYg~@xB=2|lC`T&L0aNlr?w772{erK}seuNaghy5fy4-Opu_0hjp z{UH!zyqo)-WEjC=C4D#dx8^#}xIcZ>Dywd`hmuKMAx6W@kPeeX>aHK*h-L!ykr>2y zxOF}K^C8xGqy(Ut2e&DAn=X;UT*E%z*9p^G*}ztAx>llhoHyU`bcIq9?MM(p3WR<&SWYlmMaByej2Nf4}J*7Hc3_lr?(+x(`V~3U~8+Om&bizrbmYVG&Mh zb94C%y)AS}Abf+12_<2s?NfJ1L(POMGNBWR-&cFcbfQvuskZ}L@|HEqkV4-FHag~r ziwkTbmY3kK8GK-D-XZZDlf zZ>09nBRB?ePSjAa3QN}OKB^9XmrsfQ|5uP7{NFkM^Xkg-qy6_GK2!Jqch3L3{%HSs zkWb$J^Ur4E2eP}@`JqJM_ z@O+a30rds*d$0fB{Zl;um(lP%_C~*R{+Gx4PY?5%zW?`k2h5fK^ZB1K|HGsF{~(`o z3jZVHz|HRfg*=b?fIrEnc>eE~_ruRz`EPx-;QzVtnE&-bKE{zgl4M23i7z?iQ#d@w zV)5{A$t$(#{9pf{|2Oe`TCkum*`MRNU~1He4`zq(q`|F5C_|B?QG`OhCJ{#RHxx=fZzIz~^^O_ktblQ=#8 zO_E7$s$izasNqFFQ_lax=6^4o|BdxW``^QS3P)3)x8`=K`e&NvhtTFx?ek~*l+=GP z9OT{f>H*}xl~ytT@A9Ml??FDC!)j~msk`ECRIJos&0KP=t*vEuE!TuIi*0SKxvdH& zrP|tBSzduJ?#j0+;}bqyU3Zr&m>~`OScU%^M@hOOeKkKo*Q+r8$|Kcy@K1^Uhc#yR zIL0mPe=AR)KFWU&@tL~+59$9~sQ>e{wfdO<;Xyt*=5G7R4SatEQy!VVKk>&p|8T2& zB#}R8{^!=(O2PiO`t(u$dyo(1M4^3894DHc^l0y)Ya!TaHPtk;eZL1MwTUO06d>f`oFHok`4#og;|B`gI zWJa_R%^;FLxJ*rxZtJQP;pu&Z1yN_zhbq9)jWM%uMY8oCMtW*Xl9rYN`$8XMgP|ox zAO;lKC=s$zIJ}mZkE4_m!eEebzwb=KAZ@08lIrL_PSmj}?bSMv!EkBfF07!nG>9(K zC|TkGIyeC5$;HszX4Wb7;$IQ;jsBh}( z1e6H^->X%>b_dmevtj`j{TEC8eUEVq`_EeIG5+sCK4tsQ6gIgxJh=J(Z!AB`e-HDS zwg2SJ(($jnUV0~na1Q^szLBs0y|VmtL>Pre+!-S>TkNAubmd0*3E{ya{k#FB~_UaEEcnYrND6x z;%IU)7*A3?D@=_9=O&xnwrWi|C}foEMNAz59S#%B=_u3Ia|+J0MLl2@+(>T(IXvlds~3(w6*yqyVOe=5<-&#*46l*x;fbljqNw+agEWER=b7&X~;-hW>4n1gicD&YfWz> zb-5+@u71o0&_D4AosTfHE%VUunBy2=Upue9mci^vz+n(Mb<_FHeDWDMe|rB4CTdfP zT4=4)n5Mi!S>NC_B#KfArvqR4oM-F1%9e2T%jU1|vacWWi?i0n(huCiTPV=TTHTNS zH48@iOsEMsO`eejj%?LaDadE1_S>A({A>MlT>%P?BhQi&OaWkj$#Bfw2W)H@NayYy zzsnz3eW*!PRh?vL=k7gg7+C1OY;9QIU*vyyxw>M1-&iXSI&H`3u9D*bPxM7)taEEi zj+x^R6TkcdQ=1RBU5$4c_8m4@ZLB#={g>9e8*Jgr_TK5~Cj4+OTS&wX*}j@kXS(UJ z%#^zI-L_nS$MmFT=w7y}l-LqZ*FO$?)E$8!j`|nM@HM=MVi4fril`eMyI#NFQCDiM z+HB%!0>UK)VYZM~QWmr=SZ%`@_`~s5^)Q#b&`3Ntv-8mCn928yuKBc^=@C63RoAcq zy^k|T`PCX_)(~VSRU^#o^P|7R);?K3Ol8@Iz@1y@!!?FJK#^V7{LHrx&h5Dynl{fi9bw10HoI2&wN$Y9r#q;Za zC-xJdK0L^0{4aBFRn|4@nOCRFhLjNZt*+3Q{RPCcqmtckakCl`9=Z{Qpu9zT__nIJ z&$sy2TdbQ~#!?%7uddvt@70w>`fhF9rtj9q0(}S1Zqaq{Y=NG;twnkscq6O;VD{c^ zEzo=Et~MNF8{kU@w}z7~wBck^BRoS)CbYcinQYzoOyZ@4-6m-tnpCHp1-PbtZ=|16 z<>u_jR!=g=LEr(Yn7oq!e3J9P?{6}H-RzAg$Y3p@-EE0!>JmU23#IqH)umz3m0M`l zZMBvXkaU}3w@I8@%YEvu)isRgkBNCYz1xqs?5;m^TQ?bS46LM=+N@aZeF~4b)?Fs|;v4N4bpNmC=)1h^w(e~z7TGNDz--*#Q~));z2Q_Q(7PWuDX0Fu&12nNyBU#9 zV=qXDewsYrTEFw5wI8_0_O{C)0(?}qZ=r| zx)b+v585+!oQ72(z+s4{*s{ZO!NAMS0^>p7o~d zR*;S+A+~DOU0%KO?KyM8IL6bP0aGPgpuGjj@tM2!1!uVIt}fr~ev8Nbq={s68CUj2 zrv}Gj<3{pia7B*jcV!SuWs>G|%|pZS*tp?w9eOD)tRK)px$_iFuFC@2nmQpov3GM- z)PETVW0*{mV%e!oE62JrQDBK$N$Yw<1EcgJq^+=22rSrVMCEQ8%#B4fn6otSWV%wC z_pc4TGXKKMbE$YyC!&aVs+M{Y-EH1a?=WvP#{Jr z*RaDStGx{R=>QG+%OxESs5I`hr(G`|0kUms~H0_!i?-OCs#aVHpI*a(5q`NsLm9fucR}RjJ)lzq=HCl-q7`RoVKALp}T4G+DX?n%`+1EMW~gw{_s2cY`nwc64?L z{ORwKGmJZ)fVA3!8-Mv9rM+l3mZ|;Vxd{7dJV^&uZ$YlN`rY>A+Z&tHd}U8NfgXa9 zzZ=IG7p9(4nLd1cG*)hj1Gs#;K2~D%W8e$0u<|r3oNsl8Rhs=SIw~2KxVMw#*XG`BmKffp<}M%y=UxU7RB0bXWX~i+0+f$gO@SfWVN!fp4r&?TUncLi`Re+qqWi7 zYBpg08A&12ADgejB_OfT0O1ih`8~{SAT{FsdDpN{3oNeYy6(&~{w#OK zKbN&x%i7exAdUMTEA3)L)pLu)p)TRSKb86=H}5Y*kru)^auU1&-aVfD$CIBw`Klrr zA~7EPwY6-Q3MW6~ZQV|XbUPi31Ykyl1~0bZpeseEhiTwut#573IDkcPr}4D~$<4AJ zp4t#vVAFu}{}d_G1_GW1>Yzm zG`DAzN}&Jkto`$^dj2?_4%F7hQ*8DR|GFD_aeohUlEjnT8)cimzI==8{6X+~|5K$`Qf8{LMTP24Py<>{%T3jj>l$I5S!#18?mAl5en_ zH7L1jR#yy6iH7}qUfs~o&hDrt&@LQ6a~GXHh*zBjWs;HaC6m|}HE$`8T|8B`>@f63 z-M(jX3N}x_S=Q+dWC~NbcFkdoH$l?8>C|n!Dah)x$HQ3DvH=%VBiz$0Y=oXK1x>iF>tiZ=ySi)d)#p*k)z>3&8t$|k)!Ytm(m9ul+@x@}6Bxz$yJ<-iY` zRwAX9ERYUkE!iv^W!-sVktu8AQ)D~cqTdPw988v*&sR_;|0Eb`Bhmi-gza3t` zo4e{~Gy7%m&h5mw`MlXY9>}kqFsYSXT_$EZ3$TkBIa73VJ`XsP@U_+qeR%hV%P@K| zP`Nj=m*N;rX8Ba z5)4=gwRmK<9+|Bo4d)c&K*TrJGvZSq;uNFnW(Urc#_?D*l&=CB=Ejt^6rJ(l>oB@# zAY*a?*K9J2xNod1&)Vs}e?9{@TLv*e+$`(9W$(~T(q97Xjg=L<16=o}^AG>}D2D$e z`@u*5<~qrZm7Eq!fojt^q9iZg@RwuxX&dfOw9~)40nta$9Y&#V!LD?5#?@0i)CRMV zfAriK`%MTl&Z+h7`>NrD;~BSR*!SYtyM9-qrrKDYh9Bz;y7DPn%;jE)G%j%fAWjrJ zqv(@wWSjve8nfo|iLd}xHX8$-${tUlwK5%S^Acy^T?Hd=h>6z7$usQvG>7+yT<r0T&E3-u&EW7g|6$UhDeA~Fs-NA0 z=mOA5F%2;%DxAk76qmA5#I&_ltz`aE7yHZ!H)c<`b)yMS<7MW$lq|>ul}xaB9Og`L z8k@7o9A~gdbEa8jHs(wdZ@XK~vGm3H6D(>5=1fp7;#wHQaN+jx>V)L)==p28? zDHBu^toPENy-y88RfD;@O140EQ`k0sLY}ykJ9FyGf4J>aGoP}14i-wmEYr>lgpP9x z(D@_msAPkkzp2tN*=j9!mY0nH%j(b%Yj$5Qx#Rr4t5f@8F0g=Z`e6y4>1Tg9RMRt? zj%`4dxAnr&N$_{WH5#!(;}BS?vENf^Cae7*84tbdj*81sSx>RLkW5aM z701WSo5}P9y)mrr%ogh4q^ia6oQGmBv2c!3Nrc2#VVD^qhqo@QHJXysbWbJ56 z?f6$I=Q_sMfH#&2jo{i;(52*=SIrp{RzG%oQ3zwD9j>F~$Au>2>kF!O&>6x;#l}=u zr9n2;DuyY$>lrMfIJoGjXklouR-p$~^C$Cr2X6ET$5^R+{`V@l^auOQ%KwX}1Lzv1 z0{?>bUs~&Hx%z)At!1qL^qBwm%YRfr{55X2D!xL=;xHaQ9M3MuQd0bc%r#8g@^w$l zx+s_r`)@p|JM!X>E;*Lq3;*(K)ozet^6y`sHk@zaf0UbbZTZ`$@9HyN(mBP=Is|84 z7>uGcn)#*~(1q`>Hk=mxZ+&^@TNy(t?>xo%VHiIh99Y9;kl^irIc5m}xGX9S!tf}T z=HTDW=@`vTuLJr~^7iv4SjlX0pj<%?J8W&s{37YpQCfp;!m$gh3@`jzHXtWd?*b%L zO$=_xne*u%EK#u1aEL!Q-fYmK>vgq$`+dxDfzNAZ*A2(J3Vkj7>vXGR0^GZl`!F5@8ZH09 z>j}=H{~w|typKw-v*~|pWqGww|9P$TSpVxmK3H4n63&Iw412mv=U{SySr^Z}p6~Xe zEb!i_hU$f3v)5~`j+Q`vz;s~SA#xri^_;Ns$eQIv-KGK=)$tKd^}B{!(Qj`=w{UN^z~ z5NUB#dabkar3R*4DYHh6M@}<7&qLvBSFWRySM;+A-%?KbWmQ3fR#7R6$Ev8G(~nZ) zS9chM-cT1U#M)+3%#hM>ONm4Hn}1D$5mt0o4|-A3IbU75TI+;9R#ZwOVDi!%aLUXh zn|zLJVb=KH)8HcXu#j@Dvq<$cj6Ag8K-;V7bq{lXl9dWq$-|m;6{;%+f4=mF ziC-~1!tm+Jn)5Y?@+0r6<8ztBge%?Qr&94cs;D<_A7Oa4(#`$MXRV6uF_qYsIqBMY zRd4lg+}~%y8(^tF1^y+gYoW{8Z+54?sRyNhf7vwG@=o{LEqho|b+`6mRABwm%ShuT z)>|SsTdX37FT3>ZbHn+qYkaNNrIYGn8CIsYCyaqpxoG?8{a18_GaKbtLK(v;O8t0? zQMzVhdY$DEs=H^1Sldy;4-$o~TRH4?+vvta|3M8kNq?S}SeW_Fp!Q4aohct#rSLGE zcdGuf_tTIy!tn7V?DPZgB8-wW z=wY)U#6o!0AEU{z?_5U{XBd2>ECbNgF`E9D^UKdm;k!)-MiQvyI;*1?xQuRmxd-kr zy7U2rRNm`a>U!Pugid>BCmUzscVgO9L;<8mkS=-Kk^YwxqXJJ@$ea)gjKQ?x$MMYBPE$GHWUwyweZ5@}Qf4fTYQq z6Ws7M>ZZXj)tx1$hBrI^T8FEQzVXAl?kEp|Z?!;B+6a^gPo;`^NW&(&I^ufN8b)?IE7Pf%%9w@&#f^w*UB{`T8v zq^Q4rW>^4KzyVdhp?n!K;%CSpNU zr}c{7uH_2dmJR0v0$8_jgVY}-stB*N2I3wd6Y-&<-v62eFLxR44U0l6F6)f;2$#hB zgpAF3KvdP39x_v7xQgL>!p zUwhih*MEJw{#gI@K|Z1)iW1R(T@xjgUsV`brOYr)?Fl(7wbtvy(;r_BQC_64dq2E9 z{wHQ5_xfxJy@8sHeA*81KYlXT?!2@6vi)ZNth0S|c(}WLw)ex{+0PB@$?i|b?ZeZ( zqr*;nXJ^`@)7|#T_G`9J_l6!Uj+Vit*O|NYv5a#N25G00agh{{sJ{slV*vzi01~Hl zBec|#B^U38hQW{KtiPD4dFtYr_cSt)=3gmUwfzo*boy%wBI-@lffx~jQQ{uMFBpRO zuCPSnK#Z?nf4t0oF~mO*vt>&Y>LGigp{evW3Y=uwR6`_Ys+A;noDk5{l@1UL@4dv7U4=opBmICmBj5D zc<{u5c_9HJUxXkDze*h`i3=j%ImJyTsUQSu)Dq)WV=JiMJhC^P0Ju2K5fcMkwsoZJ zvTgcQj)8eL*}z1i_SxD};yH-8r@J)b@?#`&3YrZP^kW;|%{UB{qm z=yf(|j`h+j*d>grakBN&1|iU>E?YOt2+=QcFC!~s-^}*OuKstCjpzFRs=&-Uj4@mO zTW!I^y!^MZvi>OlJ;Wz3|6$^7<^KSGYiaG44#K7z0y~RlzLAE`w&5_3d766Zd{J*f z7h`&kT$J&rFVxs%vG^AWYysvIg}>WLo5&0x&7#U&tJ-(@o#9tOk6I0<)gpi4iV$H= z0ff(T%Wz+=uH={IzT8+V{?^(k{Pv>k$GvBb%DW2LqiI0kGboWBjN_=kp@02%3+69j ztI&J}y+^XkwG)l?%(d5aqZB;v@WnI;C($J7uu+{}%XtzQTk7twB)`6^47_AuzL48^ z_q8_~(YED&SFYcM2d7aC@{}JU94h3nO>At35j6A@t&PoGoD+=hLQN~4idwxs+kYLA zK%BxA4&2yty%ZRW`=cX%HOPl&=1V62;cGd}vk_-zPlQp}#R3RrxXH7U5gEO}8_GmF z0CVKXh}RK8UwN^c6K=3uh3Sx>)#&*RH9WO#UwN~8?JLjj8unPD$uJGJ$We-Ui@6T- znXkJ|``C73S{4niR>r3P*0V_)9`Kri%CX#%e=Rq5l#wJ&8v3m3q5l2w7Kz|P;jsh? zc*94my&2ZtEPR89DGA%)6dZ-ljM2R`8e-LL0qqm#EWUQ6A!?q`)`n@Ya3BpYYg#;+ z>Cd%-#(q*3WCH&rz*OX0;)!Kl)$}=nR0h)=F{sZi1Vaxm3*Suz+Zn8ll_D@%wbeZ@ z#3a5!=y*;)IHz*Nz!b)PKi01*pz{6~0V2-}?PH(%VFN3{=AvxP3yd@6$uGr`GF`$9 z?8tR99Y^MYm%P;s*V*Sz%Y^uk13z^7zDJ3g$>thHVKZZf91evK(yx>y1;#>Y8<^AH zN7!XAHF`tb3}GIhe2~g9?CK(Myj~Be1>pk^(2HVVtWzg}we`{8E++3HykLD(W6BOT zIM#cFP(qWsz)2AXzc)1W_ep|oOJ$sIoK^{?;l=Fx2*BiHFeVtC2XT@DGK=aQ&kLz7 zc$m$SdB|VCY{K=k`OaSX!gTCzwCwKmETb15s@K9~3?1M>j};UUI0-sv8w>GLw7i5- z>TEYN956aW3{M8+IT?HC#s>t0i-JI}fBD_8L=;36@@OE8i6JoizW~8Q0010NILkv? zx^&fH0pe@iiO$#DU9HZJ8rcBGFNNJxeV$pp7CV|bPSz_OYT;N2{z+|DLBC#NEGwd` zdsc$5|8}h4mt_6KuJg$EEle-f5c^~%t zn)KUH{Vve1IvN$b2&S9*D9_A=vG z={=L{ROUj=L01BJQ%`p9&^J53(H1P){HB|>@+aD~`y<^mh;D(zX^m}7d#^O|i3xViZ%LluCQp;a29N zz^?*P$7DSVybe6wc<2KwxU$|5r*_OfU`m~OHZJCjoTPrgqY)USmgQnw8Gc&(nK?Wb zMyvj0JPdjs{8C%^Y7`6dvp*wdVCw}rx|?36vjM>&k$)&S+^cRAc<2=dM0y!f4Fu>^ zUt3D#$}3_-E;C-KGc_lkeFZwruXaxIn#JiUp0R%qoHt?4Z=oms5ahC<^L)!DJ;G%m zaNICL;putd-n5!hHwl9iu3&koc-aioFKZgbnsPm_=7a9b4>J1es@|?_61?L}~ztXC!kjy59}u zZ-Mr#k3o>31`zcx%14GC!-K#VpE6CX2*3rRXEr6;mr=rbU@1{6Wwg)iH=~pF##FUc zy>8w(9P?XEM`IoJY|;lSkhzS4TccCrx$l(>I?n*M7@+j)NKnp) zUYf!Wb!No@8H|abZCXdOyDA&yjF}m4iPjB$o=a|USB{(Am*h7vDEtGixQNR#$G+kG z{HMm~C(bcfM9DOzS&=3*k({&-8pOXv6I9brdIJRt%-We;C#jfaV0vWJE`UNpi@BG_y;QQXvu(2iZ zkH}u$UOEsxilRCUyPAPdjAWlFpU{f;af|M_Lp1n|<5v+_WHaHVH2T`ImiqWPgyT`&P~o!VZN7NY%&>@14W%+d%m+?*RZ&!7`_&tzFl~V}vAQ}_mXISS5=@CyiwPQ%Nf&i{UCiPj zf$6#IrRoTqD#J$t_5cKof4P~4-%_zmRrgDHJ9UjG(+?*jWSkU4l^VQoeFs{l?#juZ zszuKf;(s2OwslN{@Mke&_Ou`LtxTE!4kk-gv|`h68qdTW{z;vkt%Vhus#n)EIu$S- zUwY!~ox|0L>1-wx`2(!}IF3FAee?{u^wk7OCK)49g*Na%j1ydZ0e`mnYV*l2o9k%z zyZ!vvmmhN8n9YOHb(PbLDBI1HB}~HL*NLyrDI0^*^3`NgyqiWCMOCX8z>w>%j=I)W z^7koy`aMNX{oYY4kDvSc%!>b_!Z!Di0DMmVkEa`JEBXB2>uZnszaQiyQB47y?lg*q zrD;I+fpYNgs92(CXJ04%@DhybF3k|4LdSrZzz^{M>5#SiMR7_f2EJZx{CsAl`Jk zfIE(45$2yIirs!dSpdd;7i&koM2>Y+F4`B9VAyv)d2xUa(FAvuQ9-_7eg#pS%8t1i^9!iF>a^R|u!9_nzi2Z^Q z{*@u+0Ckc=Z0a;f z!T3>dwJFE#Ivaq97>jeo1WnXWqbyxTW!hw{nP;8YzvE{XD%}V*Zh;;*KoR^fns8nx z&dO{)tyhYF!NxLCvs%sql?GQXEl8meeyDE-9u+!7E1VJ@OJBGVFmDM^{M-Pj_%Q(c z4drww0WW^)B>?A;0;je|_)4{5;qnJcI`j{t^d$&JefrU$onzoev}qEf*D*~6Uz@(x zDq?}d|37>Gw%*2(EDD2t+kA>L^e+pLLGU1n_M%L$MN6{HZXLKp$?YC3Zm<9p$T9&G zi~>Zlwe^29uQ4}sy)Wnc<_Z3NI}bCDFmcLbWfck}CClAHyG5WXGcq$WGBPqU4#@S% zGf(vAq^;r&exhbk>Fp_IjJ;2pDf7ZOp_-Rc6s8>WNC!k#5WT2M7?=pHj5xw1R($)~ ze|St#-g3NK>bnnxr>h94_dkq6vnLGc%TqUqpzXlvGxVW&$j8&UGw#x`TC9ds+{7fuvPKj zt>;^tR!BB9&M`Hhz7ZI#=)e^)>pe=OOoMAm9F8c#XOsmNKllab&_ zvuwQoG|uA@hIUqdB)rykX^Pe4nm{pH+a-C2X`|A!&Q(cRGGx(?G8JY}`loJI^s+VL zmcxEn;U5&cT*_)&1Z1%eWU~NXM1PknlQzjH9wpc<%RF!-@gh$tWuKc8P1U0NfKHr~ zdymn{Izor~woFd@qyit=VYYHkna#(+CZbjttzYOhtK@O{npr87aZ>VOS^I%kT5rDm zQ%g-w>@Q9}n{;V!ZAuA61+v4+1594CcN+r@@-*NI;RLvE^5|y{dTwI!-L~t#-MfvW zyWNg1_inpv{WfJ#=)ScAhu;zmhBh1-+J_FpTc!UItzRddUQT+~Xk(fFXS0z1b8~0= z>(Bb1kMRLMEUvE4jap>9N+| zY*VJ9|8`OpeF}qNyZ7I6?_P4Pa`87pS{ zQCg1whJoccDZI`9cO(7gzZ)$NR_8394KCtY(nYWPkr)P6b?bLUXJPrk2t#NZ`gXT~ z48{JxQI>3gja^d*|FJA_ODdGK<{1D7!I}(2TC7xwH(H_cWL8_GlH=sDJv6oP7n)4${n+6b zNRnclR0V~HsKE@g$(%cZ+?9R}<8eB=1o0w=WA!?km=7Hc2Rr7&wVv6H+z;-zF-kzN z3Oc9#*e1gmz1L=^XkED3+5Eu$j{usl1$3 z4UZe=$!r3hpC)~I5+S`!0VX99LVkg=vha&hJULy&r}UUlsq#XV<%f40iv8#s-E=a{ zbQ8#e#wn_hyJO@=^4!2lZRjW$Q`{VQa~B^7J3>E?Zt`}{8UU;Y+(tSyPGO|N@Gv3j z#@qFZ4y%W~enwHB0V)N%pB0KsFFBTTcLcn1W_9(h6fj+F-0f^_cDA+*GSJ_wJLz%e zCMa=ljb1eDNA~Y72n887vc2~Hv$4-V^Ji)NXA|M#%7#Eo^gs9R-uLW(wzn`P&}aS6 zNBDfG@Xi&6G%AJ44TX8G^sW+dON_edm$@?vvUc1q6#~|YBR_V1}#<#0Y%<)q&XWw4xQtn)f|BUAdy8pJW zzj@-w0chBGH8I(8#6sxg9e;U$;$jb8*gx?#n=zfdqrdM@8h#cPxtE)hMb}oc&f$_` z>o+}66WC4X6sCqFF)FpgR1yK}d2UjaCOn`AYxCtvRdv+h!9QMgbCJ2MWvt305x1Jm zbto-@Y)6}=v1fy$hYD>%+#dcTK^yU(+F%$B6>x5V2|9t)y?1Ufb?>DKs9v?4bLbO{ zjQdftYFAsRHlN$7$(6`%m3RuoA>Vf_rG^HKj(k>D4*X!{$DEH^Y5edbP|KuAp-WpY&=az$>6D&A_HeK z<|EP4d@Go1rG}fRWhYeEz0+!|;7mzA3H3uIzCyo>XXM8)&oJKdMTGx9q-7aV>Me=X z{+EN7QC~1Zj53}43W%pDEKpUfpF0LB8Ve7y`MMZLX&%af=**TdTueAgX0Fgro*NYI znF0)o0oWJOi{!UOIup<*G}4o38u!oRQ!>It-K87Yv1p_0_-ypC?KY=%Y{Nh?7>F(Y zT1KH^`M1HSlfWkw4|D|h>68evx1uA!E?IUHnxW4?uLl2U<}El@k&qUXlI^1ORCF;$9mdZGq9!z{1DM$x`SHWU4CnxzIPFrF!C8%BEx+xvS(1FT)=jYm z6jH}Ym1vSkrCG#_im5Y&KjWv&jCI*L&a#O$J}4hB zj$b{k3t_fK=xf**`*SO{Dt?v+fA*VDF@j#xZ*=~^*rk;6SjE$jlE;OBSX<)oW+Go> zIRyhO137&EQvWsoIf4+R?D_BIze7CbM{F!+77Q6@6oS6BEO&5{7znvlyF# zw$<(=Ii>t3SCy+kW=%2MFbOVam(vXX=BdhqL1w=wWug2M4bzE;Nb#(f&S&wAMUwn- zEQ>B68ML+YS2h`4DhW&EElFg@62lMKj9bNE0xCs$6dNgwUJ?}MfFRn)=p(i&;I?uQ z7$oKZC4uQBFqtaP51NsD7TW$*gtoc@66XWz_Ol#F+$erNfMgVJ15EgT++*3Gt^Zj; zN{F`$VnSRL6R1N}vbRK_Aeg-sMGvU35mA8t-)8e>yxoEt>Q`^ORUi43nFpwc0*6&j zfVAGMnl9+s-Ij@ceJgqhL=60G8#k@AFN{GTER_|MoDgoYC^h&JgL9Q;#D!%7Q%ksw zMojIFmLu~6cUCY|;<6KP*Ad~znF;gOmxaumThYtskDl*Fa=8 zER1UvsQNI2uP>3IQy3x@e8{jh>9>-3-EqC9+Q-0zwG3=+4o>?m!>6r|E3m}@UJbOq z{;)c|=QoHl^5eHt*22BB%D%_K@4V9Qscr1TJL(e2(YK<%EOM0hl1N*1KAcW3FHy3I z-(=|kNCx%~3Mm6~%Ks zPObKQ_|;dRw$77=xr+F#WM-@veApR{Rui77R&C*#+kk&zzRVt=x=P$UD$$tn%R3-% z$Ttu>j4M1p(@vn9518FeXYuJcjuw+yCIeIap^3E6rO1y^8vcC2LB=0MUwxIjkpToM zN@^mb!Jh{q@r+CID|SmSAD2;u6-U;Nq<53$W2_v|4UYyU3XUh!5iD+3wWAg^#xrqc z@0PvEhE--v6sNsWXPMTlwB)~r;!LejB~@la4Zrm-r$no4^|M;-BdOJ@{8VA8EY)p;~cW<%)Z=#qOG1Ek66D2e|5^eM3D z)06^$g6sezH)6s9cr109Um!{z9=^)CllwpaLc@o@+v=p$2?`j~%k}>Oa-F2;cur#y0N+{ShG3OFhdm;KPQ(b_)fkdZf_g$ zo44By6L_8rHyguId`dCTk6RT3c(|C6Lpz_K7Oq&^66yyIX}9hmT)8-Tq-~`y221FVA22WnVmg`Rc_pAL}a< zU)>W2rm|6#(gfmY+H;RNSYWr>Ys6B!SF3bSrGX-Ds;0czI6$HFkoN^xsjM4qD+-L} zAfP7mJtBsVgeQu=LQ3esnm6CJTeKz-5%zgua)*)6kG4JNqwweD(D4vzJYQ9ap{YAzth#hflJ2K>L8Q z-BPbE$Kx)}phe_X%lNie`c_D|NicwKQqPXV?|bsTckJ}*5Dq)>jJK$`-(QSTL72^) z4)iO#hnkeq4$|tN_CbcW{{+iW90LD~)7^d5#U$FN4gUK`Nhu^cJTzdI0wE+Rk>x9Sj|3gJuFwhI4LTDoQ- z3kA>c%9Bx`EGKF*(t?ragznbcUD?5T$n5(||k8VI?+OtxhsQ z*{s>(5F3oT+7}~UlLUiu`J%7-vYQe6%)08u$TbhHze7S6!R!@|r8SSFANV->VUMD} zw~_Ma&j9+ALVoFi;YD-+vvgUCzCg_OWj@5 z!J^bR5T40>t18ex#hR7`0>2H$>dc1USBU$6K2G9^?>`WV3@0IHRj^+xb5S>0^hfCc z;52`c5F~hUsiNo@WtPO(*CB!MTJ5(52Ry|?z#EXhPZOhL!h^MfqEsc?!Hu`95pLwC z9lZZ*{(|PJs{Cv2$1zCfZ&Q7ZEOG@@#9?b6sk~J&I<|7SnV~VP@)53y2u9bLxDWL* zygS1LqatS0KVhhykp=wbH?c5bMDADCoHO-i<&l%^PV7H5tt~)~UJ^~%V8E_}X?ukup zWDQ;Hplad;lNOzx!m}NsK))SDh_v3j=>(dfp_!mmIGg8&@LrHehPvOg43ER-F14WW zOfZToNvxF^!4gLofWWinFA}W}-4f67>`b>{wlRYYO4l+<-nTR zr&1B>IIK>qSo;&;MR@dA6{9Bez-No`At}j52`VnwZM+V5c)d%h*e1yZ634O4EQDUR zeI@~Hc$`{n!lEl{w2SG0ScW}Aid9%Mr4|Epz*<}}YmJc@=%6_oc@u~@0)odl>xd}9 zsT#1|S2PEF{mW|=EegcyVXBaf5)k7!G ztz`Y4jLHmSZz;tZYZdAOZc|O}hi;>VfvofXUgNJ%aZ`#8<|+|%!%_pAU|P#*O;-Y> zcZN^>*Z0_ z&v&)e?I~1R^x#lB-WbA??q%6IW>Uj#e}iCcT%_me#t-;)y@zRHfKRXYMp^$n-(5GG zTYLTR;eLDFj%gt6{gmLbca;_adT)ayV*YKiw{^}0=n=)AyCITA3j?WyIC$w$oU3-!Z98k!_+{Qh0(TU%_I`U=KbU=c3SNz^HEMsw9HV#`?M_ z6dG(dzn9NvZFP||;PBwlSu&dLH4ZVQ1Tb0<&*Rx;#BwjCnXhc%yrBc|a~?r#g|2mj zt(frrW=pODpE}?j_zdvXbPDi#n63kFKqnf0YVpsC1}2RaV9LJ4jsO*4HM4^W7$J{R5=m z^oOmJT1tH+1kOYXOOqvSFZwjS@+>uH*+srbFC>`Fxq@-7)QNx#^^AYXjbJ)Xy5dT* zhw*{&ft8e5)!Z`}@i#?x3D@EV-davZZc97~E3^~dkP5Bj$qF#T0*MEc&=(Kq#92J- z(YwKd7Xw<|>av*jeBDO9%7!fQZX1~7W;c50K-leU58p$F-KP>Il)A(v(3-(4LUoU( zj)i+yIZN9RP|ZxsJW@S$NM>l3YG)C z5`&z|T{^VvnX|0@vK1(w&j*9#jhyJ`gHQ#JC}~nbe0^7Jn3h=dfBnDxciafQZP+lq z#@5z=(RC^KX}3$PuG>W+rP~#5#}dm8E8~~Of60G?c}uPp0%l44m;3j3{P-_ho7+2| z^}iqEqhd1BENi{*uQ{BaOi1ms%Ji-rI>uMTcy=X0G*DV+d|BM4-*DJC~)lL4~H)42cqh-D$$@C>`tNhauV+a<|X zH{LV~Vj+`#6|cO?Vo7>tjRE(1G+v6|#OVkdipbF#le>!{W10H|_RZ^5kd9@mSb$YBT_No2)Ly6DA$pNB6V@4tK;z1;u) z$zuhg%k8)Zbm<^Edi>&G|4DTC;^682i@!&Ief)RVV2rDC$DTcZ89jUTJr!}!4<-PtItA2z3{5#ZV?Y~qan^_%WPS)h`?)HfxBJFb! zn3(XC96f&W_~A=H=e&dHaE64RKzmIn%V@&^yB)sWiuR9OJwASZc=7zHhkYpaW*)*0 zUQ~c==G-Wdo1P43m;if2gMyZ0=JOok|+1#$+rx<#@1_ymLNy$VVj{ZOZpIPT0n03B<{L4$5b;^`d9r%848^AS^ z|L^|;iX;sLvqN_8qCRTQ7Lx?^{a;5t#DT7M7pwj6|D|i)57yf8YTeVd{`dc?sAe}N ztAe}w#U3}_hAz+X*m3)R|F7G0Z>#(dU~OVfF?jVRk8UToqpzad|JVQLww@y8Q>?FW z56Ig>SfO%#G;}YQT!hjZ+s&|azY&mE-ES_k*?{M=?r!5Xi0l=C)Y)s^5w_ol_ZWJ4 z_kDP8DdYLW5Yx|v>6deTlq@It**t;s9+5;7>fk6;KkmI}mR~5?t_O6%jIIt?DOv&e zi~|K%_tYs=1K5%tdd1q;L?%cWVSIK;#he6EXs?LZPzzGJMjOjete`vPR)D*_-(E=t z+m$ukwFkBGo0K&|5&}vSw0Q5+c?(WfJJ4hO-;(-UQvWWM-YWjv3dj_AbJy*q^ZY6& zGr781em46oVSMTm#`jO2e{V||?$loAjK+|Z8S|A7Y1F~G+os>hFubMmnAc0@7fCYlS0J7%Vib+0Bjxc@as1Q# zm4KX3ZS(fmxZjUw1O2vmKn#&Z^$D@}X2}WB?NSrUt5YJ+3Zm3z;HqN9uHcTN9Hc52 zK6rW*1?78h9+b`6s$0Tj+Cj#F<`T@^IZ{_Q9*r|#)d^lOG(#Ikn<w%1b!F074_p$f5G}%v*xYs){65&xy^DO{d!R4f@-cdDZ5$~rI63I ziQATz+S+kS$!HV9g=UFD5RP$%)1IL31)T9n*QQQp#IAD1#84DLUOizu+`HT4frw?c zcIfMLmh@BRKs?%3N4KpJ&D5TAbV;6h*9sNQT$vi6M{LmT9UC*cjg>Yc!5iQv;!(r+ zE&SkMkwTCZqCPYoqrF{*$&+ygVN%JG5Cd@n%K_S2%vdmq=MGPI=Nh4E+5jZ7mfuA+IpJ57&IjS}2HESRI5cV_@QuHM*XWTP6w!fOuNJ1{x+bvA|es1+RP6 zP#Ku(RNCS%8>+klC_;>IFNo|jRIXHTGB(zbcKLOe8 z@sE#RERzN4LWwv@@U32{!Iv@`BSCscIziNr_A*E(bmVdu%bI~ocVWk#&8>v{G%L`u zsGJ$m!EpB}$>?BV)b!mg_|@<`a8I?HUI zlNk7@j66g{?l6$;6pk2Hz+=`Nq0vJp%{lSZ(iY-g-bF`*&5q?SzcM783I~!R?-5!x zEv7bR7+lMub$M{bb4caU0xcjaP8NVY>FE({$x|h9i19egjBWNBPPv{E&Io|{o}5+g=3wb zU8iT)F+c9s5gmd(w8e+trH6JNVW)>@Xe3U>`HWxD&$8Z#;?#xXYB@t(A|wHYUib7{ zPZHA9!_rVW7x~#vUcw<_DISokCNYY<+^`fJHxl3y0jXUWe?5_DGx~PV1C39h(Z<7q zlXH`V*D*%B?j?E+Zn7q;u@p3jaTTCZimeN}FxKz(Fpp^CC-vOQ+#(<+*<@X1VQE}R zNc+8weyz_^`|o)M$F#}mbqv6l#Q)g5d%s}+y|wc>{>Ml8m_Q$%J@=}qK!YJVfVaRp zQt>*yB*R$p?J>`4jlhd(UtE~56StMoAR{c z@Jyv1Q1!fO+%317(w+uts$Rpn;}jj+i^46o$)jy`;v9W8n|AOptZdO+Qvm{YJ|9Cl z7-d5_2oQ4=}plJ29rBYW`7VO5%)W4 z`70C=$P3RV9h-KbbPdW$SD>8q#waKK2$WM^_?)uvwWIr$A;xD(HX9_fWPqh9XhAzd z)rg%Fgd*lCo2d{b0w0#Y8r*Kw1Gytaq6AGgjNh9GQ!15%(7v@3K4`RPl3b@jfb92$F~ejDt5ui8<$GpbRdC7J4m}l052G0K|{!PJXr+4&gBF zRt@=47l2cKBYG_n26vqe8a07TCT5+eZ?9co90$k`#yHQWRw|>{$P30Dihj6x%+Y4X zeuzb)4ij9Fs_<)F(eYYvnh=u}9~15f>kMvvYsr8pCS|c}!Jg@mj{wy+XH-!g`>5>$ z0wlW@cCF9VfzDu0x^1){2y)NF^+AKl<5uyW!7j7exsQqdcI|6rMT5XlpBNHMLEVFHwE}fI^Q_BPQslDI+`_)!Z?&W5HjSd? zV3V0{9h}-Li_pTjYm=aP?^tHhixj1bY7|28&Cb{O{To$<9ipA`+cYcm*6AP=vR9fn zs}u`0Fq0gw21hJ*)n-I(;rquJc*~pqlhzG;4&~$~w9mZbgmg(#lKe1HRqG zZ(rlLdo)!p&5ReLdCEyQ6mgKjh)(dv`8eWY>|86bE(P5#yr%a{0^{B-B)yaNC?M`V zt)exoMH=Mycg_1P6{$Prqm=3qP}XaK*;bX0TjqXNo0iodJy1bmRB$r& z=DtwlFGaz_0d41Yb;2uI5$VD~o7{E_Sg?T6Ae~n2!cDs9OXwmAO|miO4<|mD&ayY@Ac+o%Hqw4{F^ee_ z8`>#k(=~ROm~c*dv_4iDz8-Roh+}7TqJuf=XaSno7DElm1AI$>M{?KDhEvsq0~bW!b$o|a%43QfqC%p~=9QXeohzXo9rfc;Jmc?PiiEb8ra?CEUsLf5GC9{+grGvZ z7IZv{1rkdWhiHUbbi2l+*Y*yo!7k9r~uL=iG891zEWBVlx8?pPIMN}1{bKK zz*#Vg5u?knt@ts?n#?9enur+yCfGT=CXN`_>-4T&Q zCzRR!L>tnRO*azhB%8B3J)K)b6`kN5}~7*k2Z_y<`(@1)sAGTF%KUU_4d2v#?MsANv*EZRAnk4Lxq>p&GFj5?S*$}8m~ znN!3YOeU|=au{-Jm6Rmnv&mjr<>6|f?&?fzh%1ifh-;8esmdNxR!BGfM#3LbDQ!c` zzaAcPHWT>?-@j=Iyx_Z*2Yk4-Qy;pR<(4&|UKiT9yS-u?ceg9sfY*gKcJ8g%#?HOU zHsH0)8ckSN+tGEY5Hw_z1QugCu#$}3ihgp)mh#Na)6pneOf)#FbRbwRwJraqdA>;U zjeGYtx2;MxQ`_3vwXCPxq5l0~8?e~VRW3IjzLJPoW%>)^z}93^MA@;haGDx|-Nn2) z-Feov5>!!Tz~8$t{&pixu4R42aXKVdHq>308p=lQ6jO-cq{3FeQA1fhsMmxuvEr9_ zHPpr=%iM~j zTGl`Od3Bc*#?_Bi7A`Z&ewKgiVFE?|R{pkE`Szwzr2FBQjl*SoQnt4QZcJ$s$oO|Q zZ(*3&b;-4O<-*TNA6m$jjxSGW5Ur>7p=EgPv+eV$+SQ>Fjuk5V{+U0(sT%>Hll{+6%*+4*e$_i;Y#+tZ+6IBF9KqvdhiOHDcu2pN+UX@K8G{O}gCb|%PgA)t zAz^vUHZ~l17ceU8krOZ3sZZl6t!*;ZorMn0eJukPmzwT_p|F#wl!+#9GJ@v&Bt}sIcK$T9O zCzoP~6rjI?!Mmjofr@RisjDcXBC1#*b!m-up-7!r#e(NdPsxIDrDUs$E3H|m;~W_T z0<9!yARKyP&#qr3+WOECpBk2^_Vye{XNCE3Jh?Qe&uw(;nybt~UUL%i@GMAivMJze zdCak97=?Md9jv1Q{bLDLLp=+TZAat47-4t_%Uz5)$Ra-d+C~`+{&*SUfG~nc!?O-v z#OiD2t>6KMx^K<0pF%fGB7S8(Xsfm!CvO+lvMeq}xlU#~R%8vbomjG`vcAI2>-8Y* z&yP6(!SA%>jA?*P05VjD7g%;OPPVqGLU1K`#3aMp3xYM`@yxa{!)OC7AE9VkDDNpq zypfzeBPX_=Y?f&OVb^)c?#BajJ)wvw0(jDctulqhV5r$c&jcc5|CxcO;X!n zxJYFqJ2JXN;^B&~8}PW{sywW4Q-#tx8~L%^Mw<)I*Q8l~G}VlI(omS0t%Q5OrwF%9Xu@$Y$9^ zTdx*}$~@e8)OG~|)kI2dE+tc!R6}(F#A*>N)KDZVo`+W^+3QfNmiX;m8j#m4?9$HO zZST%ot@8b;z%TYlWlGhL{@fgr3(sA*i;H)4tv~Ll&Rld#tIh|!w5IZi7k`RVm z0~Qr?VNsU8cnZge`DG0Vx@Z83T(G~X3CS*Agoch4LM0f-fDR8fz!=@QpJnp{m3KAa zR3SEuH)(QlT^Q&Va#a}1GWzg|c+WmSsqAW$c~Mzq+6LA4P@TSge<#4d)JctIYrrBI^<@#o;W4 zy>go6sa6dh5!qGf4#kUCd-eV`xm0>YK0Lt@jW=F7Q!&#jg<6*p4m|GP0V(&wQM6DnckXR?*pU4%zl)6KEp8 z9QV*u?LxvBkO>s_PCy5b`%@low)1P#zaOvVFl*a_C1tGcQ$QU z>ssL{GKW@Hvh)eGWeo4S0n0m4Ql?XhKvU3A3d+zP%b40rStTJ51loR8W>hYaj>ika zl-6#t)8v|n6wGqbl#jkNwHmWk6c~*6N4G7#m#Zt|@t5Tt>{BOs3+pa#;&)FMq&wuu zv)p%*pQuiS=*vY(T;rlFqVhE3GHW#i zQ?3M#Be5=l<&+J>v(#vH)XprBH82$Eq zTJL6}T)9nJx;RT_ly#h<_D7m}6sd@DwzNinusxOVUG53-3F{}*oM;a3v|+f9k|D+# zn>!IGjHAUD4I>?z$s^HkPlGhGA;KWN@r{|(zDY0Thj~l#CcUD&bMqXqCC}lTd9D{6 zztlhfsOC`ra-S;wk22x7t_Em{{ny?5o7-Oex6Q5l_de@?KE|h@&&e$Q$>ZFjYeq?wsz|a ziu@cMrQ@T6r;lKd9xC>$y!f>L7rTUEmA{dyG5RKw76(tj6ogvLxK2k|FCIlG zgHe*4j!B5__QM2W&hmU+p&3Mkq<>DksB}x6>0yRCx)jQG7wP2gcEiq`us;|`M9>*Y z1ecL)Ux1ptE8%kvj)_tC*K|Iy+8%ZEQH8^uQwTm4NuTBv*5 zM~{ElfA!>L_u=zr&mKQ~dGPbWO9|tx-aP*0aQ_(r+kf<^?A6iZ{TFsan7|{M^i$Q$ ztE0z9-RFmopFKTnn+HD}ZtXld_}+Q~_#%`Qo^&7m{n`H0gNNNm2S+j}n3`^v#PMu` zhpA}Tc;{f}ednEn8tXTKc;C>LlHXGZy{GXcK22t&wvy7=u50cJEu*mLs_&#Iu4dOd z5Xz z!)z@k6J@AMX`tSuv-tw}V={qn8Aa|e$`pRr#TyA?L#NQx>F+=VI9V?67Fu5JmBzJ(x>0j~1Utu{lt(HNK$B=#SN7hzX zL1|PeP;a3Qm>hKRcoADnTl$Dg{&pUnVQzzAHX0-|r#?PM%v&5gc{_#u4C^%;|EJY> z*&q}M=(=_AX;|G~jSgT_Z)z&0(-rbR+(gV(4E(h%kl?rkwNP&!@Dg3Xp=iB7$`%7H zoX(O_0+sR&)u;*W%y3|tDyZ)_-n^6Uyx(}Iy7J!C5S&0!bMX%}C;1S&y!)X=19qH* zm)A5ZV}|aoH+yYan`9Twz4xMb4cbN;yKvyAFMw*B#xcjq3~iN^!@g3CjR3mx9bnk}?;SI{}~ovP;sFmLQXePjdk-o~@B zyrnPxTkK@TduS2g;UDwny^Sw8M$d_?aj3`znuU=7mMj7%fpE`^7tjVPJ!!fn6kLTw zf{Z_0U?!WVGiQ0`O&AC|?qm%vK@@1buhZc?Tg>`NSJ5QVt>PY%#^aqJ;(hm>?mT=~ z1l@V3`)N@$hj6HZ8?L7moNl+;K0M1lhC4aL?9g3|p)boZ8JHClaN8gPu+k~)&jC5p zIq7a#E|pjw$vPP;k5EE6aYt|>A!$way#rR0QfJzc>Pn7b8A#^&F`fSeEXBy8FKD>A z%aAD|3Pu7ENnQfq!a5?rxJ8;#wmEI#1)Bj)l1^}VI%XJ-ZKPSey}{5MWWp4>vO(Ev zhzaADF3fp4jQjK4JQ5CQ9t@J+;?y$TTQ-S`QTd$C&4orgxO6*tlZ>({ZIadyfVt0d zvwP$AsRx65m>Jowo3))^5UTgw4M|riblTm_idUQlX24hyA9pX{SYeXpv?GwpyA;V+ zRqV`giBZ14W~1Y6pVlG?Ky$};D|(t?&H$VpeTD#ba`^n{;Fkz$!egNDVfvQnOr3;i zZpfpjfqZ0jlu@kt}G#&iXgdJ-%GL=er zslz9MwSe?I`y0b?C)2snQXkWb=APe#EPWbF*=T^*I z`{OF5I`C6v+HIP?wyjxqLCBe0>!VO(loW@p59ek|;&hZpg9Y6fnCi`>bJ}S~_crgL z$!PQgPI0SEF`z;4AE!C#Kv0k13y&5#B^|Q9+1o=n#m*FGe%N?q_Y0$Ize^Ao@9~Zj zmW^C~5ye$bI^m>nfT`Ikvou6TMA|;;1rFsset}h+qa?DV^@1lQG)2lx^bcp*V1X{3u|)-x+Qm(#su48cFs7tHqVTn_r}J3(3X#GW;gr#p zM2t>b(FqOm1WsCKDc&l_lc<*gIrY%cX9yB&A}1|)L2@8nSJH@1j8(f_O&wqjon=^3 z=Ab=1uNk_GrkZV1&m#Q~lq4hMX6%ECW`M?lKeaNN`A&@_`TUHxa3b=&GEo^-`(yys zurxlBkHE62R&OK}lzL@oPM6RDpSXw}Ezy-(gLGFQ`=+vHcY5HFp}#6rY*K9;AGVFZ z6$w!hyHTi@0i=`S8YKZS5De>kD^5Z$)gkK(arDuOcw1$oqID>t*jnY)r*Z!r9_CH! z4KPI@zCFi^n8Z=5ObF#~OCtOG0pZYa)MY7*QHlv6{unNuA>`)U=ne(FadT^ZQ+4l! z_1>!T;Wi5ztEDl=JfyshHn7tpOtN#@K~ibHRTxAI`eX`&&pqXVs*9<&^kyVCxU9xK zg1s?!J%}E%6Hm_Js)0N7b7Df2VSE;i(Q1YF6TAy0?UkL7TwDDKp9E%sX`m)>JjSrc z@jSY~6D{Rmh1J_U@e;0_v{Z&}0Yz}ob{014+)WQFNW6&A)#y!jPVkCZT25M`D1VL$ zZeV7!^bLpkW&pViLCi`p(?fTbpt|aW`od3=;V|u|$)tZNT=E4Kq3GghQ*(yaG|$co=bKc%N=RTsQO0&VLz*;^P^@d!2myqF@zW`sV^N_m z{!>L1d7B$&bDa`%HI#dKcrsp2*+7)~vv}zT--aP^{7f$5OT(H{5aGUgo z)sMx-S{RB`-dO_z)h3twpe`H�TEs?FY+O68jfM)aNKxVjnaAjJsKNnJ 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:b1hY%km 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