From 93cdc044ea92e59e6759e591079f544c7063c117 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 27 Feb 1998 02:27:38 +0000 Subject: [PATCH] pt.c (tsubst, [...]): Support member class templates. * pt.c (tsubst, TEMPLATE_DECL): Support member class templates. (tsubst, *_PARM): Support multiple levels of template classes. (instantiate_class_template): Look up the pattern from the original template. (lookup_template_class): Handle getting a template for d1. (push_template_decl): Correct setting of 'primary'. (reduce_template_parm_level): Add 'levels' parm. (finish_member_template_decl): Support member class templates. (template_class_depth): Handle multiple levels. * parse.y (component_decl_1, fn.def2): Remove member template case. (component_decl): Add member template cases. * decl2.c (check_member_template): We now handle member template classes. * decl.c (pushtag): Handle member templates. * method.c (do_inline_function_hair): Don't touch IDENTIFIER_GLOBAL_VALUE. * init.c (build_offset_ref): If name isn't an identifier, just return it. * spew.c (yylex): Handle PTYPENAME like TYPENAME. * typeck.c (get_delta_difference): Do adjust for conversions to and from virtual base. From-SVN: r18280 --- gcc/cp/ChangeLog | 25 + gcc/cp/cp-tree.h | 9 +- gcc/cp/decl.c | 62 +- gcc/cp/decl2.c | 3 - gcc/cp/init.c | 3 + gcc/cp/method.c | 9 - gcc/cp/parse.c | 6522 +++++++++++++++++++++++----------------------- gcc/cp/parse.y | 12 +- gcc/cp/pt.c | 140 +- gcc/cp/spew.c | 2 +- gcc/cp/typeck.c | 11 +- 11 files changed, 3435 insertions(+), 3363 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 76fb2d65bd8..319136f50c8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,28 @@ +Fri Feb 27 02:25:16 1998 Jason Merrill + + * pt.c (tsubst, TEMPLATE_DECL): Support member class templates. + (tsubst, *_PARM): Support multiple levels of template classes. + (instantiate_class_template): Look up the pattern from the + original template. + (lookup_template_class): Handle getting a template for d1. + (push_template_decl): Correct setting of 'primary'. + (reduce_template_parm_level): Add 'levels' parm. + (finish_member_template_decl): Support member class templates. + (template_class_depth): Handle multiple levels. + * parse.y (component_decl_1, fn.def2): Remove member template case. + (component_decl): Add member template cases. + * decl2.c (check_member_template): We now handle member template + classes. + * decl.c (pushtag): Handle member templates. + * method.c (do_inline_function_hair): Don't touch + IDENTIFIER_GLOBAL_VALUE. + * init.c (build_offset_ref): If name isn't an identifier, just + return it. + * spew.c (yylex): Handle PTYPENAME like TYPENAME. + + * typeck.c (get_delta_difference): Do adjust for conversions to + and from virtual base. + Wed Feb 25 09:51:29 1998 Jason Merrill * typeck.c (get_delta_difference): Give hard error for conversion diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index b6f7bc7f9ed..9f96b4af0a5 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -1439,12 +1439,9 @@ extern int flag_new_for_scope; (TREE_CODE (NODE) == TEMPLATE_DECL \ && TREE_CODE (DECL_TEMPLATE_RESULT (NODE)) == FUNCTION_DECL) -/* A `primary' template is one which depends on no tbemplate parameters - except those specified in its parameter list. So, a template - member of a non-template class is primary, and every global - function template is primary, but a member function of a template - class is not primary, neither is a member template of a template - class. */ +/* A `primary' template is one that has its own template header. A + member function of a class template is a template, but not primary. + A member template is primary. */ #define PRIMARY_TEMPLATE_P(NODE) \ (TREE_TYPE (DECL_INNERMOST_TEMPLATE_PARMS (NODE)) == (NODE)) diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 92730438dc4..0002891352b 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -2179,47 +2179,43 @@ pushtag (name, type, globalize) /* Do C++ gratuitous typedefing. */ if (IDENTIFIER_TYPE_VALUE (name) != type) { - register tree d; - int newdecl = 0; - - if (b->parm_flag != 2 - || TYPE_SIZE (current_class_type) != NULL_TREE) - { - d = lookup_nested_type (type, c_decl); + register tree d = NULL_TREE; + int newdecl = 0, in_class = 0; - if (d == NULL_TREE) - { - newdecl = 1; - d = build_decl (TYPE_DECL, name, type); - SET_DECL_ARTIFICIAL (d); - set_identifier_type_value_with_scope (name, type, b); - } - else - d = TYPE_MAIN_DECL (d); - - TYPE_NAME (type) = d; - DECL_CONTEXT (d) = context; - if (! globalize && processing_template_decl && IS_AGGR_TYPE (type)) - d = push_template_decl (d); - - if (b->parm_flag == 2) - d = pushdecl_class_level (d); - else - d = pushdecl_with_scope (d, b); - } + if ((b->pseudo_global && b->level_chain->parm_flag == 2) + || b->parm_flag == 2) + in_class = 1; else + d = lookup_nested_type (type, c_decl); + + if (d == NULL_TREE) { - /* Make nested declarations go into class-level scope. */ newdecl = 1; d = build_decl (TYPE_DECL, name, type); SET_DECL_ARTIFICIAL (d); - TYPE_NAME (type) = d; - DECL_CONTEXT (d) = context; - if (! globalize && processing_template_decl && IS_AGGR_TYPE (type)) - d = push_template_decl (d); + if (! in_class) + set_identifier_type_value_with_scope (name, type, b); + } + else + d = TYPE_MAIN_DECL (d); + + TYPE_NAME (type) = d; + DECL_CONTEXT (d) = context; - d = pushdecl_class_level (d); + if (! globalize && processing_template_decl + && IS_AGGR_TYPE (type)) + { + d = push_template_decl (d); + if (b->pseudo_global && b->level_chain->parm_flag == 2) + pushdecl_with_scope (CLASSTYPE_TI_TEMPLATE (type), + b->level_chain); } + + if (b->parm_flag == 2) + d = pushdecl_class_level (d); + else + d = pushdecl_with_scope (d, b); + if (newdecl) { if (ANON_AGGRNAME_P (name)) diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index b0363f1f2ce..cb786f91c03 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -1395,9 +1395,6 @@ check_member_template (tmpl) A local class shall not have member templates. */ cp_error ("declaration of of member template `%#D' in local class", decl); - - /* We don't handle member template classes yet. */ - sorry ("member templates classes"); } else cp_error ("template declaration of `%#D'", decl); diff --git a/gcc/cp/init.c b/gcc/cp/init.c index c80403e7ae5..e2104ce5d49 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -1836,6 +1836,9 @@ build_offset_ref (type, name) tree basebinfo = NULL_TREE; int dtor = 0; + if (TREE_CODE (name) != IDENTIFIER_NODE) + return name; + if (type == std_node) return do_scoped_id (name, 0); diff --git a/gcc/cp/method.c b/gcc/cp/method.c index beb5f295211..3a800dafc71 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -151,11 +151,6 @@ do_inline_function_hair (type, friend_list) DECL_CONTEXT (args) = method; args = TREE_CHAIN (args); } - - /* Allow this decl to be seen in global scope. Don't do this for - local class methods, though. */ - if (! current_function_decl) - IDENTIFIER_GLOBAL_VALUE (DECL_ASSEMBLER_NAME (method)) = method; } method = TREE_CHAIN (method); } @@ -174,10 +169,6 @@ do_inline_function_hair (type, friend_list) DECL_CONTEXT (args) = fndecl; args = TREE_CHAIN (args); } - - /* Allow this decl to be seen in global scope */ - if (! current_function_decl) - IDENTIFIER_GLOBAL_VALUE (DECL_ASSEMBLER_NAME (fndecl)) = fndecl; } friend_list = TREE_CHAIN (friend_list); diff --git a/gcc/cp/parse.c b/gcc/cp/parse.c index 4f721eb8df2..2591f7d08d5 100644 --- a/gcc/cp/parse.c +++ b/gcc/cp/parse.c @@ -217,7 +217,7 @@ parse_decl(declarator, specs_attrs, attributes, initialized, decl) -#define YYFINAL 1544 +#define YYFINAL 1545 #define YYFLAG -32768 #define YYNTBASE 114 @@ -273,80 +273,80 @@ static const short yyprhs[] = { 0, 204, 205, 207, 212, 216, 220, 221, 230, 236, 237, 247, 254, 255, 264, 270, 271, 281, 288, 291, 294, 296, 299, 301, 308, 313, 320, 325, 328, 330, 333, - 336, 338, 341, 343, 346, 349, 352, 357, 360, 364, - 365, 366, 368, 372, 375, 379, 381, 386, 389, 394, - 397, 402, 405, 407, 409, 411, 413, 415, 417, 419, - 421, 423, 425, 427, 428, 435, 436, 443, 444, 450, - 451, 457, 458, 466, 467, 475, 476, 483, 484, 491, - 492, 493, 498, 503, 505, 510, 512, 514, 515, 517, - 519, 523, 525, 527, 529, 531, 533, 535, 537, 539, - 541, 543, 547, 549, 553, 554, 556, 558, 559, 567, - 569, 571, 575, 580, 584, 585, 589, 591, 595, 599, - 603, 607, 609, 611, 613, 616, 619, 622, 625, 628, - 631, 634, 639, 642, 647, 650, 654, 658, 663, 668, - 674, 680, 687, 690, 695, 701, 704, 707, 711, 715, - 719, 721, 725, 728, 732, 737, 739, 742, 748, 750, - 754, 758, 762, 766, 770, 774, 778, 782, 786, 790, - 794, 798, 802, 806, 810, 814, 818, 822, 826, 832, - 836, 840, 842, 845, 849, 851, 853, 855, 857, 859, - 860, 866, 872, 878, 884, 890, 892, 894, 896, 898, - 901, 904, 908, 913, 918, 920, 922, 924, 928, 930, - 932, 934, 936, 940, 944, 948, 949, 954, 959, 962, - 967, 970, 973, 975, 980, 982, 990, 998, 1006, 1014, - 1019, 1024, 1027, 1030, 1032, 1037, 1040, 1043, 1049, 1053, - 1056, 1059, 1065, 1069, 1075, 1079, 1084, 1091, 1094, 1096, - 1099, 1101, 1104, 1106, 1108, 1110, 1113, 1114, 1117, 1120, - 1124, 1128, 1132, 1135, 1138, 1141, 1143, 1145, 1147, 1150, - 1153, 1156, 1159, 1161, 1163, 1165, 1167, 1170, 1173, 1177, - 1181, 1185, 1190, 1192, 1195, 1198, 1201, 1203, 1205, 1207, - 1210, 1213, 1216, 1218, 1220, 1223, 1226, 1230, 1232, 1235, - 1237, 1239, 1241, 1246, 1251, 1256, 1261, 1263, 1265, 1267, - 1269, 1273, 1275, 1279, 1281, 1285, 1286, 1291, 1292, 1299, - 1303, 1304, 1310, 1313, 1316, 1319, 1320, 1324, 1328, 1329, - 1331, 1333, 1336, 1343, 1345, 1349, 1350, 1352, 1357, 1364, - 1369, 1371, 1373, 1375, 1377, 1379, 1383, 1384, 1387, 1389, - 1392, 1396, 1401, 1403, 1405, 1409, 1414, 1418, 1424, 1426, - 1431, 1435, 1439, 1440, 1444, 1448, 1452, 1453, 1456, 1459, - 1460, 1468, 1473, 1474, 1481, 1485, 1488, 1491, 1494, 1495, - 1496, 1506, 1508, 1509, 1511, 1512, 1514, 1516, 1519, 1522, - 1525, 1528, 1531, 1534, 1538, 1543, 1547, 1550, 1554, 1555, - 1557, 1561, 1564, 1567, 1569, 1571, 1572, 1575, 1579, 1581, - 1586, 1588, 1592, 1594, 1596, 1601, 1606, 1609, 1612, 1616, - 1620, 1622, 1623, 1625, 1628, 1633, 1637, 1639, 1642, 1645, - 1648, 1651, 1654, 1657, 1660, 1662, 1665, 1668, 1671, 1676, - 1681, 1684, 1686, 1692, 1697, 1699, 1702, 1703, 1705, 1709, - 1710, 1712, 1716, 1718, 1720, 1722, 1724, 1729, 1734, 1739, - 1744, 1749, 1753, 1758, 1763, 1768, 1773, 1777, 1779, 1783, - 1785, 1789, 1792, 1794, 1801, 1802, 1805, 1807, 1810, 1811, - 1814, 1819, 1824, 1827, 1832, 1836, 1840, 1843, 1846, 1850, - 1852, 1854, 1857, 1859, 1861, 1864, 1867, 1872, 1877, 1881, - 1885, 1888, 1890, 1894, 1898, 1901, 1904, 1908, 1910, 1914, - 1918, 1921, 1924, 1928, 1930, 1935, 1939, 1944, 1948, 1950, - 1953, 1956, 1959, 1962, 1965, 1967, 1970, 1975, 1980, 1983, - 1985, 1987, 1989, 1991, 1994, 1997, 2000, 2003, 2006, 2008, - 2011, 2014, 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, - 2040, 2042, 2045, 2048, 2052, 2054, 2058, 2061, 2065, 2068, - 2071, 2075, 2077, 2081, 2086, 2090, 2093, 2096, 2098, 2102, - 2105, 2108, 2110, 2113, 2117, 2119, 2123, 2125, 2132, 2137, - 2142, 2146, 2152, 2156, 2160, 2164, 2167, 2169, 2171, 2174, - 2177, 2180, 2181, 2182, 2183, 2185, 2187, 2190, 2194, 2196, - 2199, 2200, 2206, 2207, 2208, 2215, 2217, 2218, 2223, 2225, - 2227, 2229, 2232, 2233, 2234, 2241, 2243, 2244, 2245, 2253, - 2254, 2255, 2263, 2264, 2265, 2266, 2267, 2282, 2283, 2284, - 2294, 2295, 2301, 2302, 2310, 2311, 2316, 2319, 2322, 2325, - 2329, 2336, 2345, 2356, 2369, 2374, 2378, 2381, 2384, 2386, - 2388, 2389, 2390, 2397, 2398, 2399, 2405, 2407, 2410, 2411, - 2412, 2413, 2422, 2424, 2426, 2430, 2434, 2437, 2440, 2443, - 2446, 2449, 2451, 2454, 2455, 2457, 2458, 2460, 2462, 2463, - 2465, 2467, 2471, 2476, 2478, 2482, 2483, 2485, 2487, 2489, - 2492, 2495, 2498, 2500, 2502, 2505, 2508, 2511, 2514, 2515, - 2519, 2521, 2523, 2525, 2528, 2531, 2534, 2539, 2542, 2545, - 2548, 2551, 2554, 2557, 2559, 2562, 2564, 2567, 2569, 2571, - 2572, 2573, 2575, 2576, 2581, 2584, 2586, 2588, 2592, 2593, - 2597, 2601, 2605, 2607, 2610, 2613, 2616, 2619, 2622, 2625, - 2628, 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652, 2655, - 2658, 2661, 2664, 2667, 2670, 2673, 2676, 2680, 2683, 2686, - 2689, 2692, 2696, 2699, 2702, 2707, 2712, 2716 + 336, 338, 341, 343, 346, 349, 354, 357, 361, 362, + 363, 365, 369, 372, 376, 378, 383, 386, 391, 394, + 399, 402, 404, 406, 408, 410, 412, 414, 416, 418, + 420, 422, 424, 425, 432, 433, 440, 441, 447, 448, + 454, 455, 463, 464, 472, 473, 480, 481, 488, 489, + 490, 495, 500, 502, 507, 509, 511, 512, 514, 516, + 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, + 540, 544, 546, 550, 551, 553, 555, 556, 564, 566, + 568, 572, 577, 581, 582, 586, 588, 592, 596, 600, + 604, 606, 608, 610, 613, 616, 619, 622, 625, 628, + 631, 636, 639, 644, 647, 651, 655, 660, 665, 671, + 677, 684, 687, 692, 698, 701, 704, 708, 712, 716, + 718, 722, 725, 729, 734, 736, 739, 745, 747, 751, + 755, 759, 763, 767, 771, 775, 779, 783, 787, 791, + 795, 799, 803, 807, 811, 815, 819, 823, 829, 833, + 837, 839, 842, 846, 848, 850, 852, 854, 856, 857, + 863, 869, 875, 881, 887, 889, 891, 893, 895, 898, + 901, 905, 910, 915, 917, 919, 921, 925, 927, 929, + 931, 933, 937, 941, 945, 946, 951, 956, 959, 964, + 967, 970, 972, 977, 979, 987, 995, 1003, 1011, 1016, + 1021, 1024, 1027, 1029, 1034, 1037, 1040, 1046, 1050, 1053, + 1056, 1062, 1066, 1072, 1076, 1081, 1088, 1091, 1093, 1096, + 1098, 1101, 1103, 1105, 1107, 1110, 1111, 1114, 1117, 1121, + 1125, 1129, 1132, 1135, 1138, 1140, 1142, 1144, 1147, 1150, + 1153, 1156, 1158, 1160, 1162, 1164, 1167, 1170, 1174, 1178, + 1182, 1187, 1189, 1192, 1195, 1198, 1200, 1202, 1204, 1207, + 1210, 1213, 1215, 1217, 1220, 1223, 1227, 1229, 1232, 1234, + 1236, 1238, 1243, 1248, 1253, 1258, 1260, 1262, 1264, 1266, + 1270, 1272, 1276, 1278, 1282, 1283, 1288, 1289, 1296, 1300, + 1301, 1307, 1310, 1313, 1316, 1317, 1321, 1325, 1326, 1328, + 1330, 1333, 1340, 1342, 1346, 1347, 1349, 1354, 1361, 1366, + 1368, 1370, 1372, 1374, 1376, 1380, 1381, 1384, 1386, 1389, + 1393, 1398, 1400, 1402, 1406, 1411, 1415, 1421, 1423, 1428, + 1432, 1436, 1437, 1441, 1445, 1449, 1450, 1453, 1456, 1457, + 1465, 1470, 1471, 1478, 1482, 1485, 1488, 1491, 1492, 1493, + 1503, 1505, 1506, 1508, 1509, 1511, 1513, 1516, 1519, 1522, + 1525, 1528, 1531, 1535, 1540, 1544, 1547, 1551, 1552, 1554, + 1558, 1561, 1564, 1566, 1568, 1569, 1572, 1576, 1578, 1583, + 1585, 1589, 1591, 1593, 1598, 1603, 1606, 1609, 1613, 1617, + 1619, 1620, 1622, 1625, 1630, 1634, 1636, 1639, 1642, 1645, + 1648, 1651, 1654, 1657, 1659, 1662, 1665, 1669, 1672, 1675, + 1680, 1685, 1688, 1690, 1696, 1701, 1703, 1704, 1706, 1710, + 1711, 1713, 1717, 1719, 1721, 1723, 1725, 1730, 1735, 1740, + 1745, 1750, 1754, 1759, 1764, 1769, 1774, 1778, 1780, 1784, + 1786, 1790, 1793, 1795, 1802, 1803, 1806, 1808, 1811, 1812, + 1815, 1820, 1825, 1828, 1833, 1837, 1841, 1844, 1847, 1851, + 1853, 1855, 1858, 1860, 1862, 1865, 1868, 1873, 1878, 1882, + 1886, 1889, 1891, 1895, 1899, 1902, 1905, 1909, 1911, 1915, + 1919, 1922, 1925, 1929, 1931, 1936, 1940, 1945, 1949, 1951, + 1954, 1957, 1960, 1963, 1966, 1968, 1971, 1976, 1981, 1984, + 1986, 1988, 1990, 1992, 1995, 1998, 2001, 2004, 2007, 2009, + 2012, 2015, 2017, 2020, 2023, 2026, 2029, 2032, 2035, 2038, + 2041, 2043, 2046, 2049, 2053, 2055, 2059, 2062, 2066, 2069, + 2072, 2076, 2078, 2082, 2087, 2091, 2094, 2097, 2099, 2103, + 2106, 2109, 2111, 2114, 2118, 2120, 2124, 2126, 2133, 2138, + 2143, 2147, 2153, 2157, 2161, 2165, 2168, 2170, 2172, 2175, + 2178, 2181, 2182, 2183, 2184, 2186, 2188, 2191, 2195, 2197, + 2200, 2201, 2207, 2208, 2209, 2216, 2218, 2219, 2224, 2226, + 2228, 2230, 2233, 2234, 2235, 2242, 2244, 2245, 2246, 2254, + 2255, 2256, 2264, 2265, 2266, 2267, 2268, 2283, 2284, 2285, + 2295, 2296, 2302, 2303, 2311, 2312, 2317, 2320, 2323, 2326, + 2330, 2337, 2346, 2357, 2370, 2375, 2379, 2382, 2385, 2387, + 2389, 2390, 2391, 2398, 2399, 2400, 2406, 2408, 2411, 2412, + 2413, 2414, 2423, 2425, 2427, 2431, 2435, 2438, 2441, 2444, + 2447, 2450, 2452, 2455, 2456, 2458, 2459, 2461, 2463, 2464, + 2466, 2468, 2472, 2477, 2479, 2483, 2484, 2486, 2488, 2490, + 2493, 2496, 2499, 2501, 2503, 2506, 2509, 2512, 2515, 2516, + 2520, 2522, 2524, 2526, 2529, 2532, 2535, 2540, 2543, 2546, + 2549, 2552, 2555, 2558, 2560, 2563, 2565, 2568, 2570, 2572, + 2573, 2574, 2576, 2577, 2582, 2585, 2587, 2589, 2593, 2594, + 2598, 2602, 2606, 2608, 2611, 2614, 2617, 2620, 2623, 2626, + 2629, 2632, 2635, 2638, 2641, 2644, 2647, 2650, 2653, 2656, + 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2681, 2684, 2687, + 2690, 2693, 2697, 2700, 2703, 2708, 2713, 2717 }; static const short yyrhs[] = { -1, @@ -384,244 +384,244 @@ static const short yyrhs[] = { -1, 383, 0, 172, 94, 371, 110, 287, 383, 0, 172, 48, 287, 383, 0, 218, 149, 0, 149, 0, 215, 212, 0, 218, 297, 0, 297, 0, 218, 143, 0, - 143, 0, 130, 150, 0, 25, 3, 0, 151, 242, - 0, 151, 94, 188, 110, 0, 151, 48, 0, 63, - 154, 155, 0, 0, 0, 156, 0, 155, 60, 156, - 0, 155, 1, 0, 94, 188, 110, 0, 48, 0, - 158, 94, 188, 110, 0, 158, 48, 0, 293, 94, - 188, 110, 0, 293, 48, 0, 307, 94, 188, 110, - 0, 307, 48, 0, 3, 0, 4, 0, 5, 0, - 57, 0, 58, 0, 3, 0, 57, 0, 58, 0, - 106, 0, 105, 0, 107, 0, 0, 49, 169, 221, - 61, 161, 170, 0, 0, 49, 169, 215, 212, 162, - 170, 0, 0, 49, 169, 297, 163, 170, 0, 0, - 49, 169, 143, 164, 170, 0, 0, 7, 49, 169, - 221, 61, 165, 170, 0, 0, 7, 49, 169, 215, - 212, 166, 170, 0, 0, 7, 49, 169, 297, 167, - 170, 0, 0, 7, 49, 169, 143, 168, 170, 0, - 0, 0, 57, 75, 174, 173, 0, 4, 75, 174, - 173, 0, 172, 0, 5, 75, 174, 173, 0, 76, - 0, 78, 0, 0, 175, 0, 176, 0, 175, 60, - 176, 0, 214, 0, 194, 0, 80, 0, 79, 0, - 87, 0, 88, 0, 112, 0, 187, 0, 194, 0, - 48, 0, 94, 178, 110, 0, 48, 0, 94, 182, - 110, 0, 0, 182, 0, 1, 0, 0, 361, 212, - 226, 235, 65, 183, 243, 0, 178, 0, 111, 0, - 322, 318, 111, 0, 322, 318, 1, 111, 0, 322, - 1, 111, 0, 0, 59, 186, 184, 0, 334, 0, - 194, 60, 194, 0, 194, 60, 1, 0, 187, 60, - 194, 0, 187, 60, 1, 0, 194, 0, 187, 0, - 203, 0, 120, 193, 0, 81, 193, 0, 71, 193, - 0, 89, 193, 0, 177, 193, 0, 68, 157, 0, - 13, 189, 0, 13, 94, 214, 110, 0, 30, 189, - 0, 30, 94, 214, 110, 0, 205, 286, 0, 205, - 286, 191, 0, 205, 190, 286, 0, 205, 190, 286, - 191, 0, 205, 94, 214, 110, 0, 205, 94, 214, - 110, 191, 0, 205, 190, 94, 214, 110, 0, 205, - 190, 94, 214, 110, 191, 0, 206, 193, 0, 206, - 95, 113, 193, 0, 206, 95, 178, 113, 193, 0, - 35, 193, 0, 36, 193, 0, 94, 188, 110, 0, - 59, 188, 111, 0, 94, 188, 110, 0, 48, 0, - 94, 221, 110, 0, 65, 243, 0, 94, 214, 110, - 0, 192, 94, 214, 110, 0, 189, 0, 192, 189, - 0, 192, 59, 244, 255, 111, 0, 193, 0, 194, - 84, 194, 0, 194, 85, 194, 0, 194, 79, 194, - 0, 194, 80, 194, 0, 194, 81, 194, 0, 194, - 82, 194, 0, 194, 83, 194, 0, 194, 77, 194, - 0, 194, 78, 194, 0, 194, 74, 194, 0, 194, - 75, 194, 0, 194, 76, 194, 0, 194, 73, 194, - 0, 194, 72, 194, 0, 194, 71, 194, 0, 194, - 69, 194, 0, 194, 70, 194, 0, 194, 68, 194, - 0, 194, 67, 194, 0, 194, 66, 366, 63, 194, - 0, 194, 65, 194, 0, 194, 64, 194, 0, 62, - 0, 62, 194, 0, 89, 381, 157, 0, 197, 0, - 388, 0, 3, 0, 57, 0, 58, 0, 0, 6, - 75, 196, 174, 173, 0, 388, 75, 196, 174, 173, - 0, 49, 157, 75, 174, 173, 0, 49, 6, 75, - 174, 173, 0, 49, 388, 75, 174, 173, 0, 195, - 0, 4, 0, 5, 0, 195, 0, 81, 200, 0, - 71, 200, 0, 94, 200, 110, 0, 3, 75, 174, - 173, 0, 58, 75, 175, 173, 0, 299, 0, 195, - 0, 201, 0, 94, 200, 110, 0, 195, 0, 10, - 0, 207, 0, 208, 0, 94, 178, 110, 0, 94, - 200, 110, 0, 94, 1, 110, 0, 0, 94, 204, - 326, 110, 0, 203, 94, 188, 110, 0, 203, 48, - 0, 203, 95, 178, 113, 0, 203, 87, 0, 203, - 88, 0, 41, 0, 9, 94, 188, 110, 0, 303, - 0, 51, 75, 214, 76, 94, 178, 110, 0, 52, - 75, 214, 76, 94, 178, 110, 0, 53, 75, 214, - 76, 94, 178, 110, 0, 54, 75, 214, 76, 94, - 178, 110, 0, 50, 94, 178, 110, 0, 50, 94, - 214, 110, 0, 313, 3, 0, 313, 388, 0, 302, - 0, 302, 94, 188, 110, 0, 302, 48, 0, 210, - 198, 0, 210, 198, 94, 188, 110, 0, 210, 198, - 48, 0, 210, 199, 0, 210, 302, 0, 210, 199, - 94, 188, 110, 0, 210, 199, 48, 0, 210, 302, - 94, 188, 110, 0, 210, 302, 48, 0, 210, 89, - 8, 48, 0, 210, 8, 55, 89, 8, 48, 0, - 210, 1, 0, 40, 0, 313, 40, 0, 39, 0, - 313, 206, 0, 43, 0, 44, 0, 11, 0, 208, - 11, 0, 0, 203, 93, 0, 203, 92, 0, 221, - 223, 61, 0, 215, 223, 61, 0, 218, 224, 61, - 0, 215, 61, 0, 218, 61, 0, 120, 211, 0, - 292, 0, 297, 0, 48, 0, 213, 48, 0, 219, - 316, 0, 288, 316, 0, 221, 316, 0, 219, 0, - 288, 0, 219, 0, 216, 0, 218, 221, 0, 221, - 217, 0, 221, 220, 217, 0, 218, 221, 217, 0, - 218, 221, 220, 0, 218, 221, 220, 217, 0, 7, - 0, 217, 222, 0, 217, 7, 0, 217, 236, 0, - 236, 0, 288, 0, 7, 0, 218, 9, 0, 218, - 7, 0, 218, 236, 0, 236, 0, 221, 0, 288, - 221, 0, 221, 220, 0, 288, 221, 220, 0, 222, - 0, 220, 222, 0, 250, 0, 8, 0, 294, 0, - 29, 94, 178, 110, 0, 29, 94, 214, 110, 0, - 31, 94, 178, 110, 0, 31, 94, 214, 110, 0, - 8, 0, 9, 0, 250, 0, 231, 0, 223, 60, - 227, 0, 232, 0, 224, 60, 227, 0, 233, 0, - 225, 60, 227, 0, 0, 121, 94, 208, 110, 0, - 0, 212, 226, 235, 65, 228, 243, 0, 212, 226, - 235, 0, 0, 226, 235, 65, 230, 243, 0, 226, - 235, 0, 212, 229, 0, 297, 229, 0, 0, 297, - 234, 229, 0, 143, 226, 235, 0, 0, 236, 0, - 237, 0, 236, 237, 0, 32, 94, 94, 238, 110, - 110, 0, 239, 0, 238, 60, 239, 0, 0, 240, - 0, 240, 94, 3, 110, 0, 240, 94, 3, 60, - 188, 110, 0, 240, 94, 188, 110, 0, 157, 0, - 7, 0, 8, 0, 9, 0, 157, 0, 241, 60, - 157, 0, 0, 65, 243, 0, 194, 0, 59, 111, - 0, 59, 244, 111, 0, 59, 244, 60, 111, 0, - 1, 0, 243, 0, 244, 60, 243, 0, 95, 194, - 113, 243, 0, 157, 63, 243, 0, 244, 60, 157, - 63, 243, 0, 99, 0, 245, 140, 139, 325, 0, - 245, 140, 350, 0, 245, 140, 1, 0, 0, 247, - 246, 141, 0, 104, 194, 109, 0, 104, 1, 109, - 0, 0, 249, 248, 0, 249, 1, 0, 0, 14, - 157, 59, 251, 284, 256, 111, 0, 14, 157, 59, - 111, 0, 0, 14, 59, 252, 284, 256, 111, 0, - 14, 59, 111, 0, 14, 157, 0, 14, 311, 0, - 46, 307, 0, 0, 0, 264, 270, 272, 111, 235, - 253, 249, 254, 247, 0, 264, 0, 0, 60, 0, - 0, 60, 0, 37, 0, 257, 7, 0, 257, 8, - 0, 257, 9, 0, 257, 37, 0, 257, 157, 0, - 257, 159, 0, 257, 305, 157, 0, 257, 313, 305, - 157, 0, 257, 313, 157, 0, 257, 171, 0, 257, - 305, 171, 0, 0, 258, 0, 259, 261, 265, 0, - 260, 265, 0, 257, 59, 0, 263, 0, 262, 0, - 0, 63, 381, 0, 63, 381, 266, 0, 267, 0, - 266, 60, 381, 267, 0, 268, 0, 269, 381, 268, - 0, 307, 0, 293, 0, 31, 94, 178, 110, 0, - 31, 94, 214, 110, 0, 38, 381, 0, 7, 381, - 0, 269, 38, 381, 0, 269, 7, 381, 0, 59, - 0, 0, 271, 0, 271, 273, 0, 272, 38, 63, - 273, 0, 272, 38, 63, 0, 274, 0, 273, 274, - 0, 275, 61, 0, 275, 111, 0, 150, 63, 0, - 150, 96, 0, 150, 25, 0, 150, 59, 0, 61, - 0, 120, 274, 0, 215, 276, 0, 218, 277, 0, - 297, 226, 235, 242, 0, 143, 226, 235, 242, 0, - 63, 194, 0, 1, 0, 218, 149, 226, 235, 242, - 0, 149, 226, 235, 242, 0, 127, 0, 130, 275, - 0, 0, 278, 0, 276, 60, 279, 0, 0, 281, - 0, 277, 60, 283, 0, 280, 0, 281, 0, 282, - 0, 283, 0, 292, 226, 235, 242, 0, 4, 63, - 194, 235, 0, 297, 226, 235, 242, 0, 143, 226, - 235, 242, 0, 3, 63, 194, 235, 0, 63, 194, - 235, 0, 292, 226, 235, 242, 0, 4, 63, 194, - 235, 0, 297, 226, 235, 242, 0, 3, 63, 194, - 235, 0, 63, 194, 235, 0, 285, 0, 284, 60, - 285, 0, 157, 0, 157, 65, 194, 0, 361, 314, - 0, 361, 0, 94, 214, 110, 95, 178, 113, 0, - 0, 287, 9, 0, 9, 0, 288, 9, 0, 0, - 289, 178, 0, 289, 94, 188, 110, 0, 289, 94, - 371, 110, 0, 289, 48, 0, 289, 94, 1, 110, - 0, 81, 288, 292, 0, 71, 288, 292, 0, 81, - 292, 0, 71, 292, 0, 312, 287, 292, 0, 296, - 0, 304, 0, 313, 304, 0, 293, 0, 295, 0, - 313, 295, 0, 305, 304, 0, 296, 291, 287, 383, - 0, 296, 95, 290, 113, 0, 296, 95, 113, 0, - 94, 292, 110, 0, 305, 304, 0, 304, 0, 81, - 288, 297, 0, 71, 288, 297, 0, 81, 297, 0, - 71, 297, 0, 312, 287, 297, 0, 202, 0, 81, - 288, 297, 0, 71, 288, 297, 0, 81, 298, 0, - 71, 298, 0, 312, 287, 297, 0, 299, 0, 202, - 291, 287, 383, 0, 94, 298, 110, 0, 202, 95, - 290, 113, 0, 202, 95, 113, 0, 301, 0, 305, - 201, 0, 305, 199, 0, 305, 198, 0, 305, 195, - 0, 305, 198, 0, 301, 0, 313, 301, 0, 221, - 94, 188, 110, 0, 221, 94, 200, 110, 0, 221, - 213, 0, 4, 0, 5, 0, 171, 0, 306, 0, - 305, 306, 0, 4, 55, 0, 5, 55, 0, 58, - 55, 0, 171, 55, 0, 308, 0, 313, 308, 0, - 309, 157, 0, 310, 0, 309, 310, 0, 4, 55, - 0, 5, 55, 0, 171, 55, 0, 57, 55, 0, - 3, 55, 0, 58, 55, 0, 313, 304, 0, 295, - 0, 313, 295, 0, 305, 81, 0, 313, 305, 81, - 0, 55, 0, 81, 287, 314, 0, 81, 287, 0, - 71, 287, 314, 0, 71, 287, 0, 312, 287, 0, - 312, 287, 314, 0, 315, 0, 95, 178, 113, 0, - 315, 95, 290, 113, 0, 81, 288, 316, 0, 81, - 316, 0, 81, 288, 0, 81, 0, 71, 288, 316, - 0, 71, 316, 0, 71, 288, 0, 71, 0, 312, - 287, 0, 312, 287, 316, 0, 317, 0, 94, 316, - 110, 0, 91, 0, 317, 94, 371, 110, 287, 383, - 0, 317, 48, 287, 383, 0, 317, 95, 290, 113, - 0, 317, 95, 113, 0, 94, 372, 110, 287, 383, - 0, 192, 287, 383, 0, 213, 287, 383, 0, 95, - 290, 113, 0, 95, 113, 0, 333, 0, 319, 0, - 318, 333, 0, 318, 319, 0, 1, 61, 0, 0, - 0, 0, 323, 0, 324, 0, 323, 324, 0, 34, - 241, 61, 0, 326, 0, 1, 326, 0, 0, 59, - 327, 320, 184, 321, 0, 0, 0, 15, 329, 320, - 180, 330, 331, 0, 326, 0, 0, 320, 332, 334, - 321, 0, 326, 0, 334, 0, 211, 0, 178, 61, - 0, 0, 0, 328, 16, 335, 331, 336, 321, 0, - 328, 0, 0, 0, 17, 337, 320, 180, 338, 185, - 321, 0, 0, 0, 18, 339, 331, 17, 340, 179, - 61, 0, 0, 0, 0, 0, 19, 341, 94, 364, - 342, 320, 181, 61, 343, 366, 110, 344, 185, 321, - 0, 0, 0, 20, 320, 94, 182, 110, 345, 331, - 346, 321, 0, 0, 21, 194, 63, 347, 333, 0, - 0, 21, 194, 12, 194, 63, 348, 333, 0, 0, - 22, 63, 349, 333, 0, 23, 61, 0, 24, 61, - 0, 25, 61, 0, 25, 178, 61, 0, 121, 365, - 94, 208, 110, 61, 0, 121, 365, 94, 208, 63, - 367, 110, 61, 0, 121, 365, 94, 208, 63, 367, + 143, 0, 25, 3, 0, 151, 242, 0, 151, 94, + 188, 110, 0, 151, 48, 0, 63, 154, 155, 0, + 0, 0, 156, 0, 155, 60, 156, 0, 155, 1, + 0, 94, 188, 110, 0, 48, 0, 158, 94, 188, + 110, 0, 158, 48, 0, 293, 94, 188, 110, 0, + 293, 48, 0, 307, 94, 188, 110, 0, 307, 48, + 0, 3, 0, 4, 0, 5, 0, 57, 0, 58, + 0, 3, 0, 57, 0, 58, 0, 106, 0, 105, + 0, 107, 0, 0, 49, 169, 221, 61, 161, 170, + 0, 0, 49, 169, 215, 212, 162, 170, 0, 0, + 49, 169, 297, 163, 170, 0, 0, 49, 169, 143, + 164, 170, 0, 0, 7, 49, 169, 221, 61, 165, + 170, 0, 0, 7, 49, 169, 215, 212, 166, 170, + 0, 0, 7, 49, 169, 297, 167, 170, 0, 0, + 7, 49, 169, 143, 168, 170, 0, 0, 0, 57, + 75, 174, 173, 0, 4, 75, 174, 173, 0, 172, + 0, 5, 75, 174, 173, 0, 76, 0, 78, 0, + 0, 175, 0, 176, 0, 175, 60, 176, 0, 214, + 0, 194, 0, 80, 0, 79, 0, 87, 0, 88, + 0, 112, 0, 187, 0, 194, 0, 48, 0, 94, + 178, 110, 0, 48, 0, 94, 182, 110, 0, 0, + 182, 0, 1, 0, 0, 361, 212, 226, 235, 65, + 183, 243, 0, 178, 0, 111, 0, 322, 318, 111, + 0, 322, 318, 1, 111, 0, 322, 1, 111, 0, + 0, 59, 186, 184, 0, 334, 0, 194, 60, 194, + 0, 194, 60, 1, 0, 187, 60, 194, 0, 187, + 60, 1, 0, 194, 0, 187, 0, 203, 0, 120, + 193, 0, 81, 193, 0, 71, 193, 0, 89, 193, + 0, 177, 193, 0, 68, 157, 0, 13, 189, 0, + 13, 94, 214, 110, 0, 30, 189, 0, 30, 94, + 214, 110, 0, 205, 286, 0, 205, 286, 191, 0, + 205, 190, 286, 0, 205, 190, 286, 191, 0, 205, + 94, 214, 110, 0, 205, 94, 214, 110, 191, 0, + 205, 190, 94, 214, 110, 0, 205, 190, 94, 214, + 110, 191, 0, 206, 193, 0, 206, 95, 113, 193, + 0, 206, 95, 178, 113, 193, 0, 35, 193, 0, + 36, 193, 0, 94, 188, 110, 0, 59, 188, 111, + 0, 94, 188, 110, 0, 48, 0, 94, 221, 110, + 0, 65, 243, 0, 94, 214, 110, 0, 192, 94, + 214, 110, 0, 189, 0, 192, 189, 0, 192, 59, + 244, 255, 111, 0, 193, 0, 194, 84, 194, 0, + 194, 85, 194, 0, 194, 79, 194, 0, 194, 80, + 194, 0, 194, 81, 194, 0, 194, 82, 194, 0, + 194, 83, 194, 0, 194, 77, 194, 0, 194, 78, + 194, 0, 194, 74, 194, 0, 194, 75, 194, 0, + 194, 76, 194, 0, 194, 73, 194, 0, 194, 72, + 194, 0, 194, 71, 194, 0, 194, 69, 194, 0, + 194, 70, 194, 0, 194, 68, 194, 0, 194, 67, + 194, 0, 194, 66, 366, 63, 194, 0, 194, 65, + 194, 0, 194, 64, 194, 0, 62, 0, 62, 194, + 0, 89, 381, 157, 0, 197, 0, 388, 0, 3, + 0, 57, 0, 58, 0, 0, 6, 75, 196, 174, + 173, 0, 388, 75, 196, 174, 173, 0, 49, 157, + 75, 174, 173, 0, 49, 6, 75, 174, 173, 0, + 49, 388, 75, 174, 173, 0, 195, 0, 4, 0, + 5, 0, 195, 0, 81, 200, 0, 71, 200, 0, + 94, 200, 110, 0, 3, 75, 174, 173, 0, 58, + 75, 175, 173, 0, 299, 0, 195, 0, 201, 0, + 94, 200, 110, 0, 195, 0, 10, 0, 207, 0, + 208, 0, 94, 178, 110, 0, 94, 200, 110, 0, + 94, 1, 110, 0, 0, 94, 204, 326, 110, 0, + 203, 94, 188, 110, 0, 203, 48, 0, 203, 95, + 178, 113, 0, 203, 87, 0, 203, 88, 0, 41, + 0, 9, 94, 188, 110, 0, 303, 0, 51, 75, + 214, 76, 94, 178, 110, 0, 52, 75, 214, 76, + 94, 178, 110, 0, 53, 75, 214, 76, 94, 178, + 110, 0, 54, 75, 214, 76, 94, 178, 110, 0, + 50, 94, 178, 110, 0, 50, 94, 214, 110, 0, + 313, 3, 0, 313, 388, 0, 302, 0, 302, 94, + 188, 110, 0, 302, 48, 0, 210, 198, 0, 210, + 198, 94, 188, 110, 0, 210, 198, 48, 0, 210, + 199, 0, 210, 302, 0, 210, 199, 94, 188, 110, + 0, 210, 199, 48, 0, 210, 302, 94, 188, 110, + 0, 210, 302, 48, 0, 210, 89, 8, 48, 0, + 210, 8, 55, 89, 8, 48, 0, 210, 1, 0, + 40, 0, 313, 40, 0, 39, 0, 313, 206, 0, + 43, 0, 44, 0, 11, 0, 208, 11, 0, 0, + 203, 93, 0, 203, 92, 0, 221, 223, 61, 0, + 215, 223, 61, 0, 218, 224, 61, 0, 215, 61, + 0, 218, 61, 0, 120, 211, 0, 292, 0, 297, + 0, 48, 0, 213, 48, 0, 219, 316, 0, 288, + 316, 0, 221, 316, 0, 219, 0, 288, 0, 219, + 0, 216, 0, 218, 221, 0, 221, 217, 0, 221, + 220, 217, 0, 218, 221, 217, 0, 218, 221, 220, + 0, 218, 221, 220, 217, 0, 7, 0, 217, 222, + 0, 217, 7, 0, 217, 236, 0, 236, 0, 288, + 0, 7, 0, 218, 9, 0, 218, 7, 0, 218, + 236, 0, 236, 0, 221, 0, 288, 221, 0, 221, + 220, 0, 288, 221, 220, 0, 222, 0, 220, 222, + 0, 250, 0, 8, 0, 294, 0, 29, 94, 178, + 110, 0, 29, 94, 214, 110, 0, 31, 94, 178, + 110, 0, 31, 94, 214, 110, 0, 8, 0, 9, + 0, 250, 0, 231, 0, 223, 60, 227, 0, 232, + 0, 224, 60, 227, 0, 233, 0, 225, 60, 227, + 0, 0, 121, 94, 208, 110, 0, 0, 212, 226, + 235, 65, 228, 243, 0, 212, 226, 235, 0, 0, + 226, 235, 65, 230, 243, 0, 226, 235, 0, 212, + 229, 0, 297, 229, 0, 0, 297, 234, 229, 0, + 143, 226, 235, 0, 0, 236, 0, 237, 0, 236, + 237, 0, 32, 94, 94, 238, 110, 110, 0, 239, + 0, 238, 60, 239, 0, 0, 240, 0, 240, 94, + 3, 110, 0, 240, 94, 3, 60, 188, 110, 0, + 240, 94, 188, 110, 0, 157, 0, 7, 0, 8, + 0, 9, 0, 157, 0, 241, 60, 157, 0, 0, + 65, 243, 0, 194, 0, 59, 111, 0, 59, 244, + 111, 0, 59, 244, 60, 111, 0, 1, 0, 243, + 0, 244, 60, 243, 0, 95, 194, 113, 243, 0, + 157, 63, 243, 0, 244, 60, 157, 63, 243, 0, + 99, 0, 245, 140, 139, 325, 0, 245, 140, 350, + 0, 245, 140, 1, 0, 0, 247, 246, 141, 0, + 104, 194, 109, 0, 104, 1, 109, 0, 0, 249, + 248, 0, 249, 1, 0, 0, 14, 157, 59, 251, + 284, 256, 111, 0, 14, 157, 59, 111, 0, 0, + 14, 59, 252, 284, 256, 111, 0, 14, 59, 111, + 0, 14, 157, 0, 14, 311, 0, 46, 307, 0, + 0, 0, 264, 270, 272, 111, 235, 253, 249, 254, + 247, 0, 264, 0, 0, 60, 0, 0, 60, 0, + 37, 0, 257, 7, 0, 257, 8, 0, 257, 9, + 0, 257, 37, 0, 257, 157, 0, 257, 159, 0, + 257, 305, 157, 0, 257, 313, 305, 157, 0, 257, + 313, 157, 0, 257, 171, 0, 257, 305, 171, 0, + 0, 258, 0, 259, 261, 265, 0, 260, 265, 0, + 257, 59, 0, 263, 0, 262, 0, 0, 63, 381, + 0, 63, 381, 266, 0, 267, 0, 266, 60, 381, + 267, 0, 268, 0, 269, 381, 268, 0, 307, 0, + 293, 0, 31, 94, 178, 110, 0, 31, 94, 214, + 110, 0, 38, 381, 0, 7, 381, 0, 269, 38, + 381, 0, 269, 7, 381, 0, 59, 0, 0, 271, + 0, 271, 273, 0, 272, 38, 63, 273, 0, 272, + 38, 63, 0, 274, 0, 273, 274, 0, 275, 61, + 0, 275, 111, 0, 150, 63, 0, 150, 96, 0, + 150, 25, 0, 150, 59, 0, 61, 0, 120, 274, + 0, 130, 274, 0, 130, 215, 61, 0, 215, 276, + 0, 218, 277, 0, 297, 226, 235, 242, 0, 143, + 226, 235, 242, 0, 63, 194, 0, 1, 0, 218, + 149, 226, 235, 242, 0, 149, 226, 235, 242, 0, + 127, 0, 0, 278, 0, 276, 60, 279, 0, 0, + 281, 0, 277, 60, 283, 0, 280, 0, 281, 0, + 282, 0, 283, 0, 292, 226, 235, 242, 0, 4, + 63, 194, 235, 0, 297, 226, 235, 242, 0, 143, + 226, 235, 242, 0, 3, 63, 194, 235, 0, 63, + 194, 235, 0, 292, 226, 235, 242, 0, 4, 63, + 194, 235, 0, 297, 226, 235, 242, 0, 3, 63, + 194, 235, 0, 63, 194, 235, 0, 285, 0, 284, + 60, 285, 0, 157, 0, 157, 65, 194, 0, 361, + 314, 0, 361, 0, 94, 214, 110, 95, 178, 113, + 0, 0, 287, 9, 0, 9, 0, 288, 9, 0, + 0, 289, 178, 0, 289, 94, 188, 110, 0, 289, + 94, 371, 110, 0, 289, 48, 0, 289, 94, 1, + 110, 0, 81, 288, 292, 0, 71, 288, 292, 0, + 81, 292, 0, 71, 292, 0, 312, 287, 292, 0, + 296, 0, 304, 0, 313, 304, 0, 293, 0, 295, + 0, 313, 295, 0, 305, 304, 0, 296, 291, 287, + 383, 0, 296, 95, 290, 113, 0, 296, 95, 113, + 0, 94, 292, 110, 0, 305, 304, 0, 304, 0, + 81, 288, 297, 0, 71, 288, 297, 0, 81, 297, + 0, 71, 297, 0, 312, 287, 297, 0, 202, 0, + 81, 288, 297, 0, 71, 288, 297, 0, 81, 298, + 0, 71, 298, 0, 312, 287, 297, 0, 299, 0, + 202, 291, 287, 383, 0, 94, 298, 110, 0, 202, + 95, 290, 113, 0, 202, 95, 113, 0, 301, 0, + 305, 201, 0, 305, 199, 0, 305, 198, 0, 305, + 195, 0, 305, 198, 0, 301, 0, 313, 301, 0, + 221, 94, 188, 110, 0, 221, 94, 200, 110, 0, + 221, 213, 0, 4, 0, 5, 0, 171, 0, 306, + 0, 305, 306, 0, 4, 55, 0, 5, 55, 0, + 58, 55, 0, 171, 55, 0, 308, 0, 313, 308, + 0, 309, 157, 0, 310, 0, 309, 310, 0, 4, + 55, 0, 5, 55, 0, 171, 55, 0, 57, 55, + 0, 3, 55, 0, 58, 55, 0, 313, 304, 0, + 295, 0, 313, 295, 0, 305, 81, 0, 313, 305, + 81, 0, 55, 0, 81, 287, 314, 0, 81, 287, + 0, 71, 287, 314, 0, 71, 287, 0, 312, 287, + 0, 312, 287, 314, 0, 315, 0, 95, 178, 113, + 0, 315, 95, 290, 113, 0, 81, 288, 316, 0, + 81, 316, 0, 81, 288, 0, 81, 0, 71, 288, + 316, 0, 71, 316, 0, 71, 288, 0, 71, 0, + 312, 287, 0, 312, 287, 316, 0, 317, 0, 94, + 316, 110, 0, 91, 0, 317, 94, 371, 110, 287, + 383, 0, 317, 48, 287, 383, 0, 317, 95, 290, + 113, 0, 317, 95, 113, 0, 94, 372, 110, 287, + 383, 0, 192, 287, 383, 0, 213, 287, 383, 0, + 95, 290, 113, 0, 95, 113, 0, 333, 0, 319, + 0, 318, 333, 0, 318, 319, 0, 1, 61, 0, + 0, 0, 0, 323, 0, 324, 0, 323, 324, 0, + 34, 241, 61, 0, 326, 0, 1, 326, 0, 0, + 59, 327, 320, 184, 321, 0, 0, 0, 15, 329, + 320, 180, 330, 331, 0, 326, 0, 0, 320, 332, + 334, 321, 0, 326, 0, 334, 0, 211, 0, 178, + 61, 0, 0, 0, 328, 16, 335, 331, 336, 321, + 0, 328, 0, 0, 0, 17, 337, 320, 180, 338, + 185, 321, 0, 0, 0, 18, 339, 331, 17, 340, + 179, 61, 0, 0, 0, 0, 0, 19, 341, 94, + 364, 342, 320, 181, 61, 343, 366, 110, 344, 185, + 321, 0, 0, 0, 20, 320, 94, 182, 110, 345, + 331, 346, 321, 0, 0, 21, 194, 63, 347, 333, + 0, 0, 21, 194, 12, 194, 63, 348, 333, 0, + 0, 22, 63, 349, 333, 0, 23, 61, 0, 24, + 61, 0, 25, 61, 0, 25, 178, 61, 0, 121, + 365, 94, 208, 110, 61, 0, 121, 365, 94, 208, 63, 367, 110, 61, 0, 121, 365, 94, 208, 63, - 367, 63, 367, 63, 370, 110, 61, 0, 26, 81, - 178, 61, 0, 26, 157, 61, 0, 363, 333, 0, - 363, 111, 0, 61, 0, 353, 0, 0, 0, 96, - 351, 139, 326, 352, 356, 0, 0, 0, 96, 354, - 326, 355, 356, 0, 357, 0, 356, 357, 0, 0, - 0, 0, 97, 358, 320, 362, 359, 326, 360, 321, - 0, 219, 0, 288, 0, 94, 12, 110, 0, 94, - 380, 110, 0, 3, 63, 0, 57, 63, 0, 4, - 63, 0, 5, 63, 0, 366, 61, 0, 211, 0, - 59, 184, 0, 0, 9, 0, 0, 178, 0, 1, - 0, 0, 368, 0, 369, 0, 368, 60, 369, 0, - 11, 94, 178, 110, 0, 11, 0, 370, 60, 11, - 0, 0, 372, 0, 214, 0, 376, 0, 377, 12, - 0, 376, 12, 0, 214, 12, 0, 12, 0, 98, - 0, 376, 98, 0, 214, 98, 0, 376, 63, 0, - 214, 63, 0, 0, 65, 374, 375, 0, 103, 0, - 243, 0, 378, 0, 380, 373, 0, 377, 379, 0, - 377, 382, 0, 377, 382, 65, 243, 0, 376, 60, - 0, 214, 60, 0, 216, 212, 0, 219, 212, 0, - 221, 212, 0, 216, 316, 0, 216, 0, 218, 297, - 0, 380, 0, 380, 373, 0, 378, 0, 214, 0, - 0, 0, 297, 0, 0, 62, 94, 385, 110, 0, - 62, 48, 0, 214, 0, 384, 0, 385, 60, 384, - 0, 0, 81, 287, 386, 0, 71, 287, 386, 0, - 312, 287, 386, 0, 42, 0, 387, 81, 0, 387, - 82, 0, 387, 83, 0, 387, 79, 0, 387, 80, - 0, 387, 71, 0, 387, 69, 0, 387, 70, 0, - 387, 89, 0, 387, 60, 0, 387, 74, 0, 387, - 75, 0, 387, 76, 0, 387, 73, 0, 387, 64, - 0, 387, 65, 0, 387, 77, 0, 387, 78, 0, - 387, 87, 0, 387, 88, 0, 387, 68, 0, 387, - 67, 0, 387, 112, 0, 387, 66, 63, 0, 387, - 72, 0, 387, 92, 0, 387, 84, 0, 387, 48, - 0, 387, 95, 113, 0, 387, 40, 0, 387, 39, - 0, 387, 40, 95, 113, 0, 387, 39, 95, 113, - 0, 387, 361, 386, 0, 387, 1, 0 + 367, 63, 367, 110, 61, 0, 121, 365, 94, 208, + 63, 367, 63, 367, 63, 370, 110, 61, 0, 26, + 81, 178, 61, 0, 26, 157, 61, 0, 363, 333, + 0, 363, 111, 0, 61, 0, 353, 0, 0, 0, + 96, 351, 139, 326, 352, 356, 0, 0, 0, 96, + 354, 326, 355, 356, 0, 357, 0, 356, 357, 0, + 0, 0, 0, 97, 358, 320, 362, 359, 326, 360, + 321, 0, 219, 0, 288, 0, 94, 12, 110, 0, + 94, 380, 110, 0, 3, 63, 0, 57, 63, 0, + 4, 63, 0, 5, 63, 0, 366, 61, 0, 211, + 0, 59, 184, 0, 0, 9, 0, 0, 178, 0, + 1, 0, 0, 368, 0, 369, 0, 368, 60, 369, + 0, 11, 94, 178, 110, 0, 11, 0, 370, 60, + 11, 0, 0, 372, 0, 214, 0, 376, 0, 377, + 12, 0, 376, 12, 0, 214, 12, 0, 12, 0, + 98, 0, 376, 98, 0, 214, 98, 0, 376, 63, + 0, 214, 63, 0, 0, 65, 374, 375, 0, 103, + 0, 243, 0, 378, 0, 380, 373, 0, 377, 379, + 0, 377, 382, 0, 377, 382, 65, 243, 0, 376, + 60, 0, 214, 60, 0, 216, 212, 0, 219, 212, + 0, 221, 212, 0, 216, 316, 0, 216, 0, 218, + 297, 0, 380, 0, 380, 373, 0, 378, 0, 214, + 0, 0, 0, 297, 0, 0, 62, 94, 385, 110, + 0, 62, 48, 0, 214, 0, 384, 0, 385, 60, + 384, 0, 0, 81, 287, 386, 0, 71, 287, 386, + 0, 312, 287, 386, 0, 42, 0, 387, 81, 0, + 387, 82, 0, 387, 83, 0, 387, 79, 0, 387, + 80, 0, 387, 71, 0, 387, 69, 0, 387, 70, + 0, 387, 89, 0, 387, 60, 0, 387, 74, 0, + 387, 75, 0, 387, 76, 0, 387, 73, 0, 387, + 64, 0, 387, 65, 0, 387, 77, 0, 387, 78, + 0, 387, 87, 0, 387, 88, 0, 387, 68, 0, + 387, 67, 0, 387, 112, 0, 387, 66, 63, 0, + 387, 72, 0, 387, 92, 0, 387, 84, 0, 387, + 48, 0, 387, 95, 113, 0, 387, 40, 0, 387, + 39, 0, 387, 40, 95, 113, 0, 387, 39, 95, + 113, 0, 387, 361, 386, 0, 387, 1, 0 }; #endif @@ -638,80 +638,80 @@ static const short yyrline[] = { 0, 599, 601, 604, 607, 609, 613, 623, 625, 635, 644, 646, 656, 665, 667, 677, 686, 688, 700, 708, 715, 720, 727, 734, 737, 739, 741, 747, 757, 759, 762, - 765, 767, 770, 772, 776, 785, 788, 790, 794, 807, - 827, 830, 832, 833, 836, 843, 849, 851, 853, 855, - 857, 860, 865, 867, 868, 869, 870, 873, 875, 876, - 879, 881, 882, 885, 890, 890, 894, 894, 897, 897, - 900, 900, 904, 904, 909, 909, 912, 912, 915, 917, - 920, 927, 934, 940, 943, 952, 954, 962, 965, 968, - 971, 975, 978, 981, 984, 986, 988, 990, 994, 997, - 1000, 1005, 1009, 1014, 1018, 1021, 1023, 1027, 1047, 1054, - 1057, 1059, 1060, 1061, 1064, 1075, 1084, 1088, 1092, 1095, - 1097, 1101, 1104, 1107, 1111, 1114, 1116, 1118, 1120, 1127, - 1140, 1142, 1144, 1146, 1152, 1155, 1158, 1161, 1164, 1168, - 1171, 1174, 1178, 1180, 1184, 1188, 1190, 1194, 1197, 1204, - 1207, 1209, 1217, 1226, 1232, 1239, 1241, 1243, 1256, 1259, + 765, 767, 770, 774, 783, 786, 788, 792, 805, 825, + 828, 830, 831, 834, 841, 847, 849, 851, 853, 855, + 858, 863, 865, 866, 867, 868, 871, 873, 874, 877, + 879, 880, 883, 888, 888, 892, 892, 895, 895, 898, + 898, 902, 902, 907, 907, 910, 910, 913, 915, 918, + 925, 932, 938, 941, 950, 952, 960, 963, 966, 969, + 973, 976, 979, 982, 984, 986, 988, 992, 995, 998, + 1003, 1007, 1012, 1016, 1019, 1021, 1025, 1045, 1052, 1055, + 1057, 1058, 1059, 1062, 1073, 1082, 1086, 1090, 1093, 1095, + 1099, 1102, 1105, 1109, 1112, 1114, 1116, 1118, 1125, 1138, + 1140, 1142, 1144, 1150, 1153, 1156, 1159, 1162, 1166, 1169, + 1172, 1176, 1178, 1182, 1186, 1188, 1192, 1195, 1202, 1205, + 1207, 1215, 1224, 1230, 1237, 1239, 1241, 1254, 1257, 1259, 1261, 1263, 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1279, - 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, - 1303, 1305, 1307, 1324, 1327, 1328, 1329, 1330, 1331, 1334, - 1337, 1340, 1344, 1347, 1349, 1354, 1356, 1357, 1360, 1362, - 1364, 1366, 1370, 1373, 1377, 1379, 1380, 1381, 1385, 1393, - 1394, 1395, 1403, 1411, 1419, 1421, 1433, 1463, 1470, 1477, - 1479, 1488, 1493, 1516, 1560, 1561, 1565, 1569, 1573, 1577, - 1579, 1583, 1585, 1593, 1595, 1600, 1606, 1610, 1615, 1620, - 1622, 1627, 1642, 1657, 1668, 1680, 1688, 1697, 1741, 1744, - 1748, 1751, 1755, 1758, 1763, 1765, 1769, 1782, 1785, 1792, - 1799, 1804, 1806, 1811, 1813, 1820, 1822, 1826, 1830, 1836, - 1840, 1843, 1846, 1849, 1859, 1861, 1864, 1868, 1871, 1874, - 1877, 1880, 1886, 1892, 1894, 1899, 1901, 1910, 1913, 1915, - 1918, 1924, 1926, 1936, 1940, 1943, 1946, 1951, 1954, 1962, - 1964, 1966, 1968, 1971, 1974, 1989, 2008, 2011, 2013, 2016, - 2018, 2021, 2023, 2026, 2028, 2031, 2034, 2038, 2044, 2045, - 2056, 2063, 2065, 2071, 2075, 2080, 2086, 2087, 2094, 2097, - 2101, 2104, 2108, 2113, 2116, 2120, 2123, 2125, 2127, 2129, - 2136, 2138, 2139, 2140, 2144, 2147, 2151, 2154, 2160, 2162, - 2165, 2168, 2171, 2177, 2180, 2183, 2185, 2187, 2191, 2197, - 2205, 2207, 2211, 2213, 2218, 2221, 2224, 2226, 2228, 2232, - 2236, 2241, 2245, 2248, 2253, 2257, 2260, 2263, 2267, 2302, - 2308, 2317, 2337, 2339, 2342, 2344, 2349, 2351, 2353, 2355, - 2357, 2361, 2366, 2371, 2377, 2382, 2387, 2389, 2393, 2398, - 2401, 2408, 2436, 2442, 2444, 2447, 2450, 2452, 2456, 2458, - 2462, 2488, 2517, 2520, 2521, 2542, 2565, 2567, 2571, 2582, - 2596, 2685, 2692, 2695, 2703, 2714, 2723, 2727, 2742, 2745, - 2750, 2752, 2754, 2756, 2758, 2760, 2765, 2771, 2773, 2776, - 2779, 2781, 2792, 2797, 2800, 2802, 2807, 2810, 2811, 2822, - 2825, 2826, 2837, 2839, 2842, 2844, 2847, 2854, 2862, 2869, - 2875, 2881, 2889, 2893, 2898, 2902, 2905, 2914, 2916, 2920, - 2923, 2928, 2932, 2937, 2947, 2950, 2954, 2958, 2966, 2971, - 2977, 2980, 2982, 2984, 2990, 2993, 2995, 2997, 2999, 3003, - 3006, 3024, 3034, 3036, 3037, 3041, 3046, 3049, 3051, 3053, - 3055, 3059, 3065, 3068, 3070, 3072, 3074, 3078, 3081, 3084, - 3086, 3088, 3090, 3094, 3097, 3100, 3102, 3104, 3106, 3113, - 3124, 3128, 3133, 3137, 3142, 3144, 3148, 3151, 3153, 3157, - 3159, 3160, 3163, 3165, 3171, 3186, 3192, 3198, 3212, 3214, - 3218, 3234, 3240, 3255, 3266, 3272, 3274, 3275, 3276, 3284, - 3293, 3294, 3298, 3301, 3307, 3313, 3316, 3318, 3320, 3322, - 3326, 3330, 3334, 3337, 3342, 3345, 3347, 3349, 3351, 3353, - 3355, 3357, 3359, 3363, 3367, 3371, 3375, 3376, 3378, 3380, - 3382, 3384, 3386, 3388, 3390, 3392, 3400, 3402, 3403, 3404, - 3407, 3415, 3420, 3427, 3429, 3434, 3436, 3439, 3453, 3456, - 3459, 3468, 3480, 3491, 3511, 3521, 3524, 3532, 3544, 3547, - 3550, 3553, 3569, 3572, 3583, 3584, 3588, 3603, 3631, 3643, - 3657, 3671, 3684, 3703, 3721, 3749, 3757, 3778, 3796, 3809, - 3810, 3813, 3813, 3816, 3816, 3819, 3819, 3825, 3831, 3834, - 3839, 3846, 3855, 3864, 3873, 3881, 3894, 3896, 3900, 3902, - 3905, 3912, 3915, 3923, 3939, 3950, 3962, 3964, 3967, 3977, - 3987, 3998, 4000, 4002, 4005, 4022, 4028, 4036, 4038, 4040, - 4044, 4047, 4048, 4056, 4060, 4064, 4067, 4068, 4074, 4077, - 4080, 4082, 4086, 4091, 4094, 4104, 4109, 4110, 4118, 4124, - 4129, 4133, 4138, 4142, 4146, 4150, 4155, 4166, 4180, 4184, - 4187, 4189, 4193, 4197, 4200, 4203, 4205, 4209, 4211, 4218, - 4225, 4228, 4231, 4235, 4239, 4245, 4249, 4254, 4256, 4259, - 4264, 4270, 4281, 4284, 4286, 4290, 4295, 4297, 4304, 4307, - 4309, 4311, 4317, 4322, 4325, 4327, 4329, 4331, 4333, 4335, - 4337, 4339, 4341, 4343, 4345, 4347, 4349, 4351, 4353, 4355, - 4357, 4359, 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, - 4377, 4379, 4381, 4383, 4385, 4387, 4390, 4392 + 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1301, + 1303, 1305, 1322, 1325, 1326, 1327, 1328, 1329, 1332, 1335, + 1338, 1342, 1345, 1347, 1352, 1354, 1355, 1358, 1360, 1362, + 1364, 1368, 1371, 1375, 1377, 1378, 1379, 1383, 1391, 1392, + 1393, 1401, 1409, 1417, 1419, 1431, 1461, 1468, 1475, 1477, + 1486, 1491, 1514, 1558, 1559, 1563, 1567, 1571, 1575, 1577, + 1581, 1583, 1591, 1593, 1598, 1604, 1608, 1613, 1618, 1620, + 1625, 1640, 1655, 1666, 1678, 1686, 1695, 1739, 1742, 1746, + 1749, 1753, 1756, 1761, 1763, 1767, 1780, 1783, 1790, 1797, + 1802, 1804, 1809, 1811, 1818, 1820, 1824, 1828, 1834, 1838, + 1841, 1844, 1847, 1857, 1859, 1862, 1866, 1869, 1872, 1875, + 1878, 1884, 1890, 1892, 1897, 1899, 1908, 1911, 1913, 1916, + 1922, 1924, 1934, 1938, 1941, 1944, 1949, 1952, 1960, 1962, + 1964, 1966, 1969, 1972, 1987, 2006, 2009, 2011, 2014, 2016, + 2019, 2021, 2024, 2026, 2029, 2032, 2036, 2042, 2043, 2054, + 2061, 2063, 2069, 2073, 2078, 2084, 2085, 2092, 2095, 2099, + 2102, 2106, 2111, 2114, 2118, 2121, 2123, 2125, 2127, 2134, + 2136, 2137, 2138, 2142, 2145, 2149, 2152, 2158, 2160, 2163, + 2166, 2169, 2175, 2178, 2181, 2183, 2185, 2189, 2195, 2203, + 2205, 2209, 2211, 2216, 2219, 2222, 2224, 2226, 2230, 2234, + 2239, 2243, 2246, 2251, 2255, 2258, 2261, 2265, 2300, 2306, + 2315, 2335, 2337, 2340, 2342, 2347, 2349, 2351, 2353, 2355, + 2359, 2364, 2369, 2375, 2380, 2385, 2387, 2391, 2396, 2399, + 2406, 2434, 2440, 2442, 2445, 2448, 2450, 2454, 2456, 2460, + 2486, 2515, 2518, 2519, 2540, 2563, 2565, 2569, 2580, 2594, + 2683, 2690, 2693, 2701, 2712, 2721, 2725, 2740, 2743, 2748, + 2750, 2752, 2754, 2756, 2758, 2761, 2763, 2771, 2777, 2779, + 2782, 2785, 2787, 2798, 2803, 2806, 2811, 2814, 2815, 2826, + 2829, 2830, 2841, 2843, 2846, 2848, 2851, 2858, 2866, 2873, + 2879, 2885, 2893, 2897, 2902, 2906, 2909, 2918, 2920, 2924, + 2927, 2932, 2936, 2941, 2951, 2954, 2958, 2962, 2970, 2975, + 2981, 2984, 2986, 2988, 2994, 2997, 2999, 3001, 3003, 3007, + 3010, 3028, 3038, 3040, 3041, 3045, 3050, 3053, 3055, 3057, + 3059, 3063, 3069, 3072, 3074, 3076, 3078, 3082, 3085, 3088, + 3090, 3092, 3094, 3098, 3101, 3104, 3106, 3108, 3110, 3117, + 3128, 3132, 3137, 3141, 3146, 3148, 3152, 3155, 3157, 3161, + 3163, 3164, 3167, 3169, 3175, 3190, 3196, 3202, 3216, 3218, + 3222, 3238, 3244, 3259, 3270, 3276, 3278, 3279, 3280, 3288, + 3297, 3298, 3302, 3305, 3311, 3317, 3320, 3322, 3324, 3326, + 3330, 3334, 3338, 3341, 3346, 3349, 3351, 3353, 3355, 3357, + 3359, 3361, 3363, 3367, 3371, 3375, 3379, 3380, 3382, 3384, + 3386, 3388, 3390, 3392, 3394, 3396, 3404, 3406, 3407, 3408, + 3411, 3419, 3424, 3431, 3433, 3438, 3440, 3443, 3457, 3460, + 3463, 3472, 3484, 3495, 3515, 3525, 3528, 3536, 3548, 3551, + 3554, 3557, 3573, 3576, 3587, 3588, 3592, 3607, 3635, 3647, + 3661, 3675, 3688, 3707, 3725, 3753, 3761, 3782, 3800, 3813, + 3814, 3817, 3817, 3820, 3820, 3823, 3823, 3829, 3835, 3838, + 3843, 3850, 3859, 3868, 3877, 3885, 3898, 3900, 3904, 3906, + 3909, 3916, 3919, 3927, 3943, 3954, 3966, 3968, 3971, 3981, + 3991, 4002, 4004, 4006, 4009, 4026, 4032, 4040, 4042, 4044, + 4048, 4051, 4052, 4060, 4064, 4068, 4071, 4072, 4078, 4081, + 4084, 4086, 4090, 4095, 4098, 4108, 4113, 4114, 4122, 4128, + 4133, 4137, 4142, 4146, 4150, 4154, 4159, 4170, 4184, 4188, + 4191, 4193, 4197, 4201, 4204, 4207, 4209, 4213, 4215, 4222, + 4229, 4232, 4235, 4239, 4243, 4249, 4253, 4258, 4260, 4263, + 4268, 4274, 4285, 4288, 4290, 4294, 4299, 4301, 4308, 4311, + 4313, 4315, 4321, 4326, 4329, 4331, 4333, 4335, 4337, 4339, + 4341, 4343, 4345, 4347, 4349, 4351, 4353, 4355, 4357, 4359, + 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377, 4379, + 4381, 4383, 4385, 4387, 4389, 4391, 4394, 4396 }; #endif @@ -796,47 +796,47 @@ static const short yyr1[] = { 0, 141, 141, 142, 142, 142, 144, 143, 143, 145, 143, 143, 146, 143, 143, 147, 143, 143, 148, 148, 148, 148, 148, 149, 149, 149, 149, 150, 150, 150, 150, - 150, 150, 150, 150, 151, 152, 152, 152, 153, 154, - 155, 155, 155, 155, 156, 156, 156, 156, 156, 156, - 156, 156, 157, 157, 157, 157, 157, 158, 158, 158, - 159, 159, 159, 161, 160, 162, 160, 163, 160, 164, - 160, 165, 160, 166, 160, 167, 160, 168, 160, 169, - 170, 171, 171, 171, 172, 173, 173, 174, 174, 175, - 175, 176, 176, 177, 177, 177, 177, 177, 178, 178, - 179, 179, 180, 180, 181, 181, 181, 183, 182, 182, - 184, 184, 184, 184, 186, 185, 185, 187, 187, 187, - 187, 188, 188, 189, 189, 189, 189, 189, 189, 189, + 150, 150, 150, 151, 152, 152, 152, 153, 154, 155, + 155, 155, 155, 156, 156, 156, 156, 156, 156, 156, + 156, 157, 157, 157, 157, 157, 158, 158, 158, 159, + 159, 159, 161, 160, 162, 160, 163, 160, 164, 160, + 165, 160, 166, 160, 167, 160, 168, 160, 169, 170, + 171, 171, 171, 172, 173, 173, 174, 174, 175, 175, + 176, 176, 177, 177, 177, 177, 177, 178, 178, 179, + 179, 180, 180, 181, 181, 181, 183, 182, 182, 184, + 184, 184, 184, 186, 185, 185, 187, 187, 187, 187, + 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 190, 190, 191, - 191, 191, 191, 192, 192, 193, 193, 193, 194, 194, + 189, 189, 189, 189, 189, 189, 190, 190, 191, 191, + 191, 191, 192, 192, 193, 193, 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 195, 195, 195, 195, 195, 195, 196, - 197, 197, 198, 198, 198, 199, 199, 199, 200, 200, - 200, 200, 201, 201, 202, 202, 202, 202, 203, 203, - 203, 203, 203, 203, 203, 204, 203, 203, 203, 203, + 194, 194, 195, 195, 195, 195, 195, 195, 196, 197, + 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, + 200, 201, 201, 202, 202, 202, 202, 203, 203, 203, + 203, 203, 203, 203, 204, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 205, 205, - 206, 206, 207, 207, 208, 208, 209, 210, 210, 211, - 211, 211, 211, 211, 211, 212, 212, 213, 213, 214, - 214, 214, 214, 214, 215, 215, 216, 216, 216, 216, - 216, 216, 217, 217, 217, 217, 217, 218, 218, 218, - 218, 218, 218, 219, 219, 219, 219, 220, 220, 221, - 221, 221, 221, 221, 221, 221, 222, 222, 222, 223, - 223, 224, 224, 225, 225, 226, 226, 228, 227, 227, - 230, 229, 229, 231, 232, 234, 233, 233, 235, 235, - 236, 236, 237, 238, 238, 239, 239, 239, 239, 239, - 240, 240, 240, 240, 241, 241, 242, 242, 243, 243, - 243, 243, 243, 244, 244, 244, 244, 244, 245, 246, - 246, 246, 247, 247, 248, 248, 249, 249, 249, 251, - 250, 250, 252, 250, 250, 250, 250, 250, 253, 254, - 250, 250, 255, 255, 256, 256, 257, 257, 257, 257, - 257, 258, 259, 260, 260, 260, 260, 260, 261, 262, - 262, 262, 263, 264, 264, 265, 265, 265, 266, 266, - 267, 267, 268, 268, 268, 268, 269, 269, 269, 269, - 270, 271, 272, 272, 272, 272, 273, 273, 274, 274, - 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, + 203, 203, 203, 203, 203, 203, 203, 205, 205, 206, + 206, 207, 207, 208, 208, 209, 210, 210, 211, 211, + 211, 211, 211, 211, 212, 212, 213, 213, 214, 214, + 214, 214, 214, 215, 215, 216, 216, 216, 216, 216, + 216, 217, 217, 217, 217, 217, 218, 218, 218, 218, + 218, 218, 219, 219, 219, 219, 220, 220, 221, 221, + 221, 221, 221, 221, 221, 222, 222, 222, 223, 223, + 224, 224, 225, 225, 226, 226, 228, 227, 227, 230, + 229, 229, 231, 232, 234, 233, 233, 235, 235, 236, + 236, 237, 238, 238, 239, 239, 239, 239, 239, 240, + 240, 240, 240, 241, 241, 242, 242, 243, 243, 243, + 243, 243, 244, 244, 244, 244, 244, 245, 246, 246, + 246, 247, 247, 248, 248, 249, 249, 249, 251, 250, + 250, 252, 250, 250, 250, 250, 250, 253, 254, 250, + 250, 255, 255, 256, 256, 257, 257, 257, 257, 257, + 258, 259, 260, 260, 260, 260, 260, 261, 262, 262, + 262, 263, 264, 264, 265, 265, 265, 266, 266, 267, + 267, 268, 268, 268, 268, 269, 269, 269, 269, 270, + 271, 272, 272, 272, 272, 273, 273, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 280, 280, 281, 281, 281, 281, 282, 282, 283, 283, 283, 284, 284, 285, @@ -883,48 +883,48 @@ static const short yyr2[] = { 0, 0, 1, 4, 3, 3, 0, 8, 5, 0, 9, 6, 0, 8, 5, 0, 9, 6, 2, 2, 1, 2, 1, 6, 4, 6, 4, 2, 1, 2, 2, - 1, 2, 1, 2, 2, 2, 4, 2, 3, 0, - 0, 1, 3, 2, 3, 1, 4, 2, 4, 2, - 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 6, 0, 6, 0, 5, 0, - 5, 0, 7, 0, 7, 0, 6, 0, 6, 0, - 0, 4, 4, 1, 4, 1, 1, 0, 1, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 3, 0, 1, 1, 0, 7, 1, - 1, 3, 4, 3, 0, 3, 1, 3, 3, 3, - 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 4, 2, 4, 2, 3, 3, 4, 4, 5, - 5, 6, 2, 4, 5, 2, 2, 3, 3, 3, - 1, 3, 2, 3, 4, 1, 2, 5, 1, 3, + 1, 2, 1, 2, 2, 4, 2, 3, 0, 0, + 1, 3, 2, 3, 1, 4, 2, 4, 2, 4, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 6, 0, 6, 0, 5, 0, 5, + 0, 7, 0, 7, 0, 6, 0, 6, 0, 0, + 4, 4, 1, 4, 1, 1, 0, 1, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 3, 0, 1, 1, 0, 7, 1, 1, + 3, 4, 3, 0, 3, 1, 3, 3, 3, 3, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 4, 2, 4, 2, 3, 3, 4, 4, 5, 5, + 6, 2, 4, 5, 2, 2, 3, 3, 3, 1, + 3, 2, 3, 4, 1, 2, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, - 3, 1, 2, 3, 1, 1, 1, 1, 1, 0, - 5, 5, 5, 5, 5, 1, 1, 1, 1, 2, - 2, 3, 4, 4, 1, 1, 1, 3, 1, 1, - 1, 1, 3, 3, 3, 0, 4, 4, 2, 4, - 2, 2, 1, 4, 1, 7, 7, 7, 7, 4, - 4, 2, 2, 1, 4, 2, 2, 5, 3, 2, - 2, 5, 3, 5, 3, 4, 6, 2, 1, 2, - 1, 2, 1, 1, 1, 2, 0, 2, 2, 3, - 3, 3, 2, 2, 2, 1, 1, 1, 2, 2, - 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, - 3, 4, 1, 2, 2, 2, 1, 1, 1, 2, - 2, 2, 1, 1, 2, 2, 3, 1, 2, 1, - 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, - 3, 1, 3, 1, 3, 0, 4, 0, 6, 3, - 0, 5, 2, 2, 2, 0, 3, 3, 0, 1, - 1, 2, 6, 1, 3, 0, 1, 4, 6, 4, - 1, 1, 1, 1, 1, 3, 0, 2, 1, 2, - 3, 4, 1, 1, 3, 4, 3, 5, 1, 4, - 3, 3, 0, 3, 3, 3, 0, 2, 2, 0, - 7, 4, 0, 6, 3, 2, 2, 2, 0, 0, - 9, 1, 0, 1, 0, 1, 1, 2, 2, 2, - 2, 2, 2, 3, 4, 3, 2, 3, 0, 1, - 3, 2, 2, 1, 1, 0, 2, 3, 1, 4, - 1, 3, 1, 1, 4, 4, 2, 2, 3, 3, - 1, 0, 1, 2, 4, 3, 1, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 2, 2, 4, 4, - 2, 1, 5, 4, 1, 2, 0, 1, 3, 0, + 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, + 1, 2, 3, 1, 1, 1, 1, 1, 0, 5, + 5, 5, 5, 5, 1, 1, 1, 1, 2, 2, + 3, 4, 4, 1, 1, 1, 3, 1, 1, 1, + 1, 3, 3, 3, 0, 4, 4, 2, 4, 2, + 2, 1, 4, 1, 7, 7, 7, 7, 4, 4, + 2, 2, 1, 4, 2, 2, 5, 3, 2, 2, + 5, 3, 5, 3, 4, 6, 2, 1, 2, 1, + 2, 1, 1, 1, 2, 0, 2, 2, 3, 3, + 3, 2, 2, 2, 1, 1, 1, 2, 2, 2, + 2, 1, 1, 1, 1, 2, 2, 3, 3, 3, + 4, 1, 2, 2, 2, 1, 1, 1, 2, 2, + 2, 1, 1, 2, 2, 3, 1, 2, 1, 1, + 1, 4, 4, 4, 4, 1, 1, 1, 1, 3, + 1, 3, 1, 3, 0, 4, 0, 6, 3, 0, + 5, 2, 2, 2, 0, 3, 3, 0, 1, 1, + 2, 6, 1, 3, 0, 1, 4, 6, 4, 1, + 1, 1, 1, 1, 3, 0, 2, 1, 2, 3, + 4, 1, 1, 3, 4, 3, 5, 1, 4, 3, + 3, 0, 3, 3, 3, 0, 2, 2, 0, 7, + 4, 0, 6, 3, 2, 2, 2, 0, 0, 9, + 1, 0, 1, 0, 1, 1, 2, 2, 2, 2, + 2, 2, 3, 4, 3, 2, 3, 0, 1, 3, + 2, 2, 1, 1, 0, 2, 3, 1, 4, 1, + 3, 1, 1, 4, 4, 2, 2, 3, 3, 1, + 0, 1, 2, 4, 3, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 2, 3, 2, 2, 4, + 4, 2, 1, 5, 4, 1, 0, 1, 3, 0, 1, 3, 1, 1, 1, 1, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, 1, 3, 1, 3, 2, 1, 6, 0, 2, 1, 2, 0, 2, @@ -960,1248 +960,1245 @@ static const short yyr2[] = { 0, }; static const short yydefact[] = { 3, - 13, 13, 5, 0, 4, 0, 257, 600, 601, 0, - 359, 371, 547, 0, 11, 12, 0, 0, 0, 10, - 457, 803, 0, 0, 0, 150, 625, 258, 259, 65, + 13, 13, 5, 0, 4, 0, 256, 600, 601, 0, + 358, 370, 547, 0, 11, 12, 0, 0, 0, 10, + 456, 803, 0, 0, 0, 149, 625, 257, 258, 65, 0, 0, 790, 0, 37, 0, 0, 14, 0, 8, - 0, 17, 16, 71, 92, 68, 0, 602, 154, 276, - 255, 277, 578, 0, 346, 0, 345, 364, 0, 384, - 363, 401, 370, 0, 470, 469, 476, 475, 474, 452, - 358, 563, 372, 564, 396, 275, 589, 561, 0, 603, - 545, 0, 0, 256, 63, 64, 158, 605, 158, 606, - 158, 260, 150, 123, 124, 125, 126, 127, 443, 446, - 0, 621, 0, 447, 0, 0, 0, 0, 124, 125, - 126, 127, 24, 0, 0, 0, 0, 0, 0, 0, - 448, 609, 0, 612, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 39, 0, 158, 607, 0, 0, 576, - 0, 0, 0, 575, 0, 0, 0, 0, 276, 0, - 549, 0, 275, 545, 29, 0, 27, 3, 38, 0, - 56, 55, 72, 15, 0, 399, 0, 0, 417, 69, + 0, 17, 16, 71, 92, 68, 0, 602, 153, 275, + 254, 276, 578, 0, 345, 0, 344, 363, 0, 383, + 362, 400, 369, 0, 469, 468, 475, 474, 473, 451, + 357, 563, 371, 564, 395, 274, 589, 561, 0, 603, + 545, 0, 0, 255, 63, 64, 157, 605, 157, 606, + 157, 259, 149, 122, 123, 124, 125, 126, 442, 445, + 0, 621, 0, 446, 0, 0, 0, 0, 123, 124, + 125, 126, 24, 0, 0, 0, 0, 0, 0, 0, + 447, 609, 0, 612, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 39, 0, 157, 607, 0, 0, 576, + 0, 0, 0, 575, 0, 0, 0, 0, 275, 0, + 549, 0, 274, 545, 29, 0, 27, 3, 38, 0, + 56, 55, 72, 15, 0, 398, 0, 0, 416, 69, 61, 608, 549, 0, 545, 62, 0, 0, 0, 88, - 0, 380, 336, 560, 337, 572, 0, 545, 361, 360, - 60, 91, 347, 0, 382, 362, 89, 353, 377, 378, - 348, 366, 368, 357, 379, 0, 57, 402, 458, 459, - 460, 461, 473, 132, 131, 133, 462, 463, 467, 0, - 0, 476, 790, 472, 491, 492, 548, 365, 0, 386, - 601, 0, 623, 154, 593, 594, 590, 566, 604, 0, + 0, 379, 335, 560, 336, 572, 0, 545, 360, 359, + 60, 91, 346, 0, 381, 361, 89, 352, 376, 377, + 347, 365, 367, 356, 378, 0, 57, 401, 457, 458, + 459, 460, 472, 131, 130, 132, 461, 462, 466, 0, + 0, 475, 790, 471, 490, 491, 548, 364, 0, 385, + 601, 0, 623, 153, 593, 594, 590, 566, 604, 0, 565, 562, 0, 838, 834, 833, 831, 813, 818, 819, 0, 825, 824, 810, 811, 809, 828, 817, 814, 815, 816, 820, 821, 807, 808, 804, 805, 806, 830, 822, - 823, 812, 829, 0, 826, 733, 364, 734, 799, 260, - 257, 547, 280, 325, 0, 0, 0, 0, 321, 319, - 293, 323, 324, 0, 0, 0, 0, 0, 259, 252, - 0, 0, 165, 164, 0, 166, 167, 0, 0, 168, - 0, 0, 159, 160, 0, 226, 0, 229, 163, 279, - 194, 0, 0, 281, 282, 0, 162, 343, 364, 344, - 595, 304, 295, 0, 0, 0, 0, 158, 0, 445, - 0, 440, 622, 620, 0, 169, 170, 0, 0, 0, - 406, 3, 22, 0, 618, 614, 615, 617, 619, 616, - 123, 124, 125, 126, 127, 611, 613, 610, 267, 268, - 0, 266, 33, 34, 0, 592, 591, 32, 31, 41, - 0, 359, 140, 0, 0, 364, 138, 0, 0, 574, - 0, 573, 254, 271, 0, 582, 270, 0, 581, 0, - 278, 586, 0, 0, 13, 0, 150, 9, 9, 0, - 398, 400, 105, 75, 110, 721, 0, 67, 66, 74, - 108, 0, 0, 106, 70, 588, 0, 0, 553, 0, + 823, 812, 829, 0, 826, 733, 363, 734, 799, 259, + 256, 547, 279, 324, 0, 0, 0, 0, 320, 318, + 292, 322, 323, 0, 0, 0, 0, 0, 258, 251, + 0, 0, 164, 163, 0, 165, 166, 0, 0, 167, + 0, 0, 158, 159, 0, 225, 0, 228, 162, 278, + 193, 0, 0, 280, 281, 0, 161, 342, 363, 343, + 595, 303, 294, 0, 0, 0, 0, 157, 0, 444, + 0, 439, 622, 620, 0, 168, 169, 0, 0, 0, + 405, 3, 22, 0, 618, 614, 615, 617, 619, 616, + 122, 123, 124, 125, 126, 611, 613, 610, 266, 267, + 0, 265, 33, 34, 0, 592, 591, 32, 31, 41, + 0, 358, 139, 0, 0, 363, 137, 0, 0, 574, + 0, 573, 253, 270, 0, 582, 269, 0, 581, 0, + 277, 586, 0, 0, 13, 0, 149, 9, 9, 0, + 397, 399, 104, 75, 109, 721, 0, 67, 66, 74, + 107, 0, 0, 105, 70, 588, 0, 0, 553, 0, 793, 0, 558, 0, 557, 0, 0, 0, 0, 545, - 399, 394, 0, 59, 549, 545, 571, 0, 350, 351, - 0, 58, 395, 355, 354, 356, 349, 369, 386, 385, - 464, 468, 466, 0, 471, 477, 0, 0, 367, 397, + 398, 393, 0, 59, 549, 545, 571, 0, 349, 350, + 0, 58, 394, 354, 353, 355, 348, 368, 385, 384, + 463, 467, 465, 0, 470, 476, 0, 0, 366, 396, 545, 76, 0, 0, 0, 545, 82, 546, 577, 601, - 624, 154, 0, 0, 827, 832, 366, 545, 545, 0, - 545, 837, 158, 0, 0, 0, 201, 0, 0, 203, - 216, 217, 0, 0, 0, 0, 0, 253, 200, 197, - 196, 198, 0, 0, 0, 0, 0, 279, 0, 0, - 0, 195, 156, 157, 273, 0, 199, 0, 0, 227, + 624, 153, 0, 0, 827, 832, 365, 545, 545, 0, + 545, 837, 157, 0, 0, 0, 200, 0, 0, 202, + 215, 216, 0, 0, 0, 0, 0, 252, 199, 196, + 195, 197, 0, 0, 0, 0, 0, 278, 0, 0, + 0, 194, 155, 156, 272, 0, 198, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 289, 291, 292, 329, 328, 0, 0, 0, - 0, 0, 205, 543, 0, 213, 326, 318, 0, 790, - 307, 310, 311, 0, 0, 338, 642, 638, 647, 0, - 549, 545, 545, 545, 340, 645, 0, 599, 342, 0, - 0, 341, 306, 0, 302, 320, 322, 596, 0, 303, - 153, 155, 0, 148, 0, 364, 146, 540, 455, 538, - 442, 0, 373, 0, 0, 374, 375, 376, 412, 413, - 414, 411, 0, 404, 407, 0, 3, 0, 28, 36, + 0, 0, 288, 290, 291, 328, 327, 0, 0, 0, + 0, 0, 204, 543, 0, 212, 325, 317, 0, 790, + 306, 309, 310, 0, 0, 337, 642, 638, 647, 0, + 549, 545, 545, 545, 339, 645, 0, 599, 341, 0, + 0, 340, 305, 0, 301, 319, 321, 596, 0, 302, + 152, 154, 0, 147, 0, 363, 145, 540, 454, 538, + 441, 0, 372, 0, 0, 373, 374, 375, 411, 412, + 413, 410, 0, 403, 406, 0, 3, 0, 28, 36, 35, 45, 0, 0, 0, 49, 53, 42, 789, 784, - 0, 343, 364, 45, 344, 788, 51, 151, 136, 134, - 151, 152, 274, 580, 579, 278, 583, 0, 19, 21, - 71, 0, 111, 327, 0, 671, 73, 669, 423, 0, - 419, 418, 193, 0, 192, 550, 587, 0, 763, 764, - 0, 758, 364, 0, 757, 759, 791, 773, 0, 0, - 585, 556, 555, 0, 0, 570, 0, 393, 381, 569, - 0, 793, 559, 352, 383, 399, 465, 600, 601, 790, - 0, 790, 602, 478, 479, 481, 790, 484, 483, 0, - 512, 601, 0, 505, 0, 0, 515, 0, 103, 98, - 0, 154, 517, 520, 0, 497, 0, 101, 0, 399, - 793, 756, 158, 158, 158, 793, 756, 545, 79, 545, + 0, 342, 363, 45, 343, 788, 51, 150, 135, 133, + 150, 151, 273, 580, 579, 277, 583, 0, 19, 21, + 71, 0, 110, 326, 0, 671, 73, 669, 422, 0, + 418, 417, 192, 0, 191, 550, 587, 0, 763, 764, + 0, 758, 363, 0, 757, 759, 791, 773, 0, 0, + 585, 556, 555, 0, 0, 570, 0, 392, 380, 569, + 0, 793, 559, 351, 382, 398, 464, 600, 601, 790, + 0, 790, 602, 477, 478, 480, 790, 483, 482, 0, + 513, 601, 0, 504, 0, 0, 516, 0, 103, 98, + 0, 153, 517, 520, 0, 496, 0, 101, 0, 398, + 793, 756, 157, 157, 157, 793, 756, 545, 79, 545, 85, 836, 835, 799, 799, 799, 0, 0, 0, 0, - 599, 0, 0, 0, 0, 364, 0, 0, 0, 285, - 0, 283, 284, 0, 224, 161, 257, 600, 601, 258, - 259, 0, 0, 424, 453, 0, 251, 250, 748, 747, - 0, 248, 247, 245, 246, 244, 243, 242, 239, 240, - 241, 237, 238, 232, 233, 234, 235, 236, 230, 231, - 0, 0, 0, 0, 0, 0, 207, 221, 0, 0, - 206, 545, 545, 0, 545, 542, 632, 0, 0, 0, - 0, 309, 0, 313, 0, 315, 0, 641, 640, 637, - 636, 789, 0, 0, 656, 0, 0, 793, 339, 793, + 599, 0, 0, 0, 0, 363, 0, 0, 0, 284, + 0, 282, 283, 0, 223, 160, 256, 600, 601, 257, + 258, 0, 0, 423, 452, 0, 250, 249, 748, 747, + 0, 247, 246, 244, 245, 243, 242, 241, 238, 239, + 240, 236, 237, 231, 232, 233, 234, 235, 229, 230, + 0, 0, 0, 0, 0, 0, 206, 220, 0, 0, + 205, 545, 545, 0, 545, 542, 632, 0, 0, 0, + 0, 308, 0, 312, 0, 314, 0, 641, 640, 637, + 636, 789, 0, 0, 656, 0, 0, 793, 338, 793, 643, 545, 756, 549, 642, 638, 0, 0, 545, 0, - 0, 0, 0, 0, 261, 151, 144, 142, 151, 0, - 456, 0, 455, 191, 190, 189, 188, 406, 0, 0, + 0, 0, 0, 0, 260, 150, 143, 141, 150, 0, + 455, 0, 454, 190, 189, 188, 187, 405, 0, 0, 25, 0, 26, 47, 44, 45, 0, 40, 0, 0, 642, 638, 0, 780, 545, 783, 785, 0, 781, 782, - 46, 462, 0, 141, 151, 151, 139, 18, 20, 387, - 128, 116, 129, 130, 0, 109, 112, 0, 0, 0, - 0, 670, 662, 420, 0, 107, 554, 551, 762, 779, + 46, 461, 0, 140, 150, 150, 138, 18, 20, 386, + 127, 115, 128, 129, 0, 108, 111, 0, 0, 0, + 0, 670, 662, 419, 0, 106, 554, 551, 762, 779, 768, 766, 0, 552, 761, 778, 767, 765, 760, 792, - 775, 786, 776, 769, 774, 795, 0, 391, 568, 567, - 390, 488, 0, 487, 790, 790, 790, 0, 545, 756, - 511, 506, 104, 516, 399, 399, 503, 504, 501, 502, - 545, 756, 257, 600, 0, 386, 99, 507, 518, 523, - 524, 386, 386, 0, 0, 386, 97, 508, 521, 386, - 498, 499, 500, 399, 0, 449, 78, 0, 0, 0, + 775, 786, 776, 769, 774, 795, 0, 390, 568, 567, + 389, 487, 0, 486, 790, 790, 790, 0, 545, 756, + 512, 505, 517, 506, 398, 398, 502, 503, 500, 501, + 545, 756, 256, 600, 0, 385, 99, 508, 518, 523, + 524, 385, 385, 0, 0, 385, 97, 509, 521, 385, + 497, 498, 499, 398, 0, 448, 78, 0, 0, 0, 0, 84, 0, 793, 756, 793, 756, 801, 800, 802, - 262, 294, 202, 204, 300, 301, 0, 0, 0, 0, - 284, 287, 0, 0, 0, 0, 225, 0, 288, 290, - 219, 218, 209, 0, 208, 223, 0, 0, 629, 627, - 0, 630, 549, 214, 0, 0, 316, 0, 0, 0, + 261, 293, 201, 203, 299, 300, 0, 0, 0, 0, + 283, 286, 0, 0, 0, 0, 224, 0, 287, 289, + 218, 217, 208, 0, 207, 222, 0, 0, 629, 627, + 0, 630, 549, 213, 0, 0, 315, 0, 0, 0, 639, 635, 646, 545, 655, 653, 654, 644, 793, 0, - 651, 0, 597, 598, 0, 305, 149, 151, 151, 147, - 541, 539, 444, 0, 405, 403, 257, 0, 23, 48, + 651, 0, 597, 598, 0, 304, 148, 150, 150, 146, + 541, 539, 443, 0, 404, 402, 256, 0, 23, 48, 43, 50, 54, 641, 637, 642, 638, 0, 561, 0, - 545, 643, 52, 137, 135, 0, 114, 0, 118, 0, - 120, 0, 122, 0, 722, 664, 0, 421, 642, 638, - 0, 279, 0, 595, 787, 0, 0, 796, 797, 0, - 0, 388, 0, 0, 0, 490, 489, 482, 793, 0, - 417, 417, 793, 0, 0, 0, 399, 399, 0, 399, - 399, 0, 399, 0, 417, 0, 437, 545, 264, 263, - 265, 545, 81, 0, 87, 0, 0, 0, 0, 0, - 0, 427, 0, 425, 228, 249, 0, 210, 211, 220, - 222, 628, 626, 633, 631, 0, 215, 0, 308, 312, - 314, 793, 649, 545, 650, 145, 143, 441, 0, 408, - 410, 641, 637, 566, 643, 115, 113, 0, 0, 0, - 0, 0, 181, 663, 0, 665, 666, 422, 0, 598, - 777, 771, 772, 770, 0, 794, 392, 0, 485, 486, - 480, 94, 545, 510, 514, 96, 545, 399, 399, 532, - 417, 257, 600, 0, 519, 525, 526, 386, 386, 417, - 417, 0, 417, 522, 509, 0, 793, 793, 545, 545, - 0, 0, 0, 0, 426, 0, 0, 212, 634, 317, - 652, 793, 0, 117, 119, 121, 729, 723, 727, 415, - 0, 672, 0, 257, 600, 601, 673, 687, 690, 693, - 662, 0, 0, 0, 0, 0, 0, 258, 719, 724, - 0, 744, 0, 681, 0, 0, 364, 0, 658, 679, - 686, 657, 680, 720, 0, 667, 284, 798, 389, 793, - 793, 531, 528, 530, 0, 0, 399, 399, 399, 527, - 529, 513, 439, 0, 438, 433, 77, 83, 793, 793, - 296, 297, 298, 299, 428, 544, 648, 409, 662, 728, - 0, 668, 661, 184, 737, 739, 740, 662, 662, 662, - 0, 0, 0, 705, 707, 708, 709, 0, 0, 0, - 738, 0, 335, 745, 0, 682, 333, 386, 0, 334, - 0, 386, 0, 0, 0, 182, 660, 659, 683, 718, - 717, 93, 95, 399, 399, 537, 417, 417, 0, 0, - 451, 80, 86, 0, 416, 0, 0, 677, 676, 0, - 0, 0, 0, 701, 0, 710, 0, 716, 725, 0, - 331, 332, 0, 0, 0, 330, 183, 662, 536, 534, - 533, 535, 436, 435, 429, 68, 71, 0, 730, 173, - 0, 674, 688, 0, 691, 664, 742, 694, 0, 180, - 0, 364, 0, 0, 0, 706, 715, 0, 0, 684, - 0, 434, 0, 0, 0, 0, 662, 0, 663, 0, - 743, 662, 741, 698, 386, 703, 702, 726, 749, 0, - 663, 432, 0, 431, 735, 736, 731, 174, 675, 185, - 663, 187, 678, 171, 0, 0, 0, 662, 399, 0, - 0, 0, 750, 751, 711, 685, 430, 663, 664, 689, - 0, 692, 177, 0, 176, 699, 0, 704, 0, 749, - 0, 0, 732, 186, 172, 695, 663, 178, 0, 0, - 712, 752, 0, 700, 0, 753, 0, 0, 0, 179, - 754, 0, 713, 696, 0, 0, 0, 755, 714, 663, - 697, 0, 0, 0 + 545, 643, 52, 136, 134, 0, 113, 0, 117, 0, + 119, 0, 121, 0, 722, 664, 0, 420, 642, 638, + 0, 278, 0, 595, 787, 0, 0, 796, 797, 0, + 0, 387, 0, 0, 0, 489, 488, 481, 793, 0, + 507, 416, 416, 793, 0, 0, 0, 398, 398, 0, + 398, 398, 0, 398, 0, 416, 0, 436, 545, 263, + 262, 264, 545, 81, 0, 87, 0, 0, 0, 0, + 0, 0, 426, 0, 424, 227, 248, 0, 209, 210, + 219, 221, 628, 626, 633, 631, 0, 214, 0, 307, + 311, 313, 793, 649, 545, 650, 144, 142, 440, 0, + 407, 409, 641, 637, 566, 643, 114, 112, 0, 0, + 0, 0, 0, 180, 663, 0, 665, 666, 421, 0, + 598, 777, 771, 772, 770, 0, 794, 391, 0, 484, + 485, 479, 94, 545, 511, 515, 96, 545, 398, 398, + 532, 416, 256, 600, 0, 519, 525, 526, 385, 385, + 416, 416, 0, 416, 522, 510, 0, 793, 793, 545, + 545, 0, 0, 0, 0, 425, 0, 0, 211, 634, + 316, 652, 793, 0, 116, 118, 120, 729, 723, 727, + 414, 0, 672, 0, 256, 600, 601, 673, 687, 690, + 693, 662, 0, 0, 0, 0, 0, 0, 257, 719, + 724, 0, 744, 0, 681, 0, 0, 363, 0, 658, + 679, 686, 657, 680, 720, 0, 667, 283, 798, 388, + 793, 793, 531, 528, 530, 0, 0, 398, 398, 398, + 527, 529, 514, 438, 0, 437, 432, 77, 83, 793, + 793, 295, 296, 297, 298, 427, 544, 648, 408, 662, + 728, 0, 668, 661, 183, 737, 739, 740, 662, 662, + 662, 0, 0, 0, 705, 707, 708, 709, 0, 0, + 0, 738, 0, 334, 745, 0, 682, 332, 385, 0, + 333, 0, 385, 0, 0, 0, 181, 660, 659, 683, + 718, 717, 93, 95, 398, 398, 537, 416, 416, 0, + 0, 450, 80, 86, 0, 415, 0, 0, 677, 676, + 0, 0, 0, 0, 701, 0, 710, 0, 716, 725, + 0, 330, 331, 0, 0, 0, 329, 182, 662, 536, + 534, 533, 535, 435, 434, 428, 68, 71, 0, 730, + 172, 0, 674, 688, 0, 691, 664, 742, 694, 0, + 179, 0, 363, 0, 0, 0, 706, 715, 0, 0, + 684, 0, 433, 0, 0, 0, 0, 662, 0, 663, + 0, 743, 662, 741, 698, 385, 703, 702, 726, 749, + 0, 663, 431, 0, 430, 735, 736, 731, 173, 675, + 184, 663, 186, 678, 170, 0, 0, 0, 662, 398, + 0, 0, 0, 750, 751, 711, 685, 429, 663, 664, + 689, 0, 692, 176, 0, 175, 699, 0, 704, 0, + 749, 0, 0, 732, 185, 171, 695, 663, 177, 0, + 0, 712, 752, 0, 700, 0, 753, 0, 0, 0, + 178, 754, 0, 713, 696, 0, 0, 0, 755, 714, + 663, 697, 0, 0, 0 }; -static const short yydefgoto[] = { 1542, +static const short yydefgoto[] = { 1543, 405, 2, 406, 160, 660, 311, 165, 3, 4, 38, 627, 352, 727, 371, 40, 728, 381, 635, 884, 636, 637, 638, 42, 43, 417, 168, 164, 44, 729, 742, 1005, 747, 1007, 46, 730, 731, 169, 170, 418, 663, 916, 917, 608, 918, 218, 47, 906, 905, 651, 648, 1069, 1068, 869, 866, 135, 904, 48, 49, 525, 312, - 313, 314, 315, 1293, 1486, 1432, 1504, 1441, 1525, 1204, - 1481, 1499, 346, 858, 316, 562, 821, 317, 318, 347, + 313, 314, 315, 1294, 1487, 1433, 1505, 1442, 1526, 1205, + 1482, 1500, 346, 858, 316, 562, 821, 317, 318, 347, 320, 338, 51, 236, 373, 394, 52, 53, 321, 520, - 322, 323, 324, 325, 419, 326, 1294, 459, 583, 327, - 1295, 55, 201, 641, 328, 202, 498, 203, 181, 194, - 59, 441, 460, 1218, 442, 1121, 182, 195, 60, 230, - 411, 61, 62, 623, 624, 625, 1271, 424, 784, 785, - 1426, 1427, 1391, 1325, 1246, 63, 612, 341, 1147, 1326, + 322, 323, 324, 325, 419, 326, 1295, 459, 583, 327, + 1296, 55, 201, 641, 328, 202, 498, 203, 181, 194, + 59, 441, 460, 1219, 442, 1121, 182, 195, 60, 230, + 411, 61, 62, 623, 624, 625, 1272, 424, 784, 785, + 1427, 1428, 1392, 1326, 1247, 63, 612, 341, 1148, 1327, 1026, 872, 64, 65, 66, 67, 222, 68, 69, 70, 224, 714, 715, 716, 717, 226, 467, 468, 735, 736, - 737, 978, 988, 979, 1235, 980, 981, 1236, 1237, 609, + 737, 978, 988, 979, 1236, 980, 981, 1237, 1238, 609, 610, 563, 848, 330, 427, 428, 175, 183, 72, 73, 74, 184, 185, 152, 76, 131, 331, 332, 333, 78, 334, 80, 719, 122, 123, 124, 104, 81, 335, 826, - 827, 843, 586, 1298, 1299, 1398, 1272, 1205, 1206, 1207, - 667, 1300, 923, 1301, 1348, 1457, 1400, 1434, 1302, 1303, - 1418, 1471, 1349, 1458, 1350, 1460, 1351, 1462, 1523, 1537, - 1488, 1517, 1445, 1490, 1405, 420, 664, 1201, 1304, 1362, - 1448, 1268, 1269, 1339, 1455, 1498, 1443, 1429, 1305, 1438, - 1365, 791, 1492, 1493, 1494, 1532, 684, 685, 945, 1117, - 1214, 686, 687, 688, 941, 689, 145, 943, 691, 1119, + 827, 843, 586, 1299, 1300, 1399, 1273, 1206, 1207, 1208, + 667, 1301, 923, 1302, 1349, 1458, 1401, 1435, 1303, 1304, + 1419, 1472, 1350, 1459, 1351, 1461, 1352, 1463, 1524, 1538, + 1489, 1518, 1446, 1491, 1406, 420, 664, 1202, 1305, 1363, + 1449, 1269, 1270, 1340, 1456, 1499, 1444, 1430, 1306, 1439, + 1366, 791, 1493, 1494, 1495, 1533, 684, 685, 945, 1117, + 1215, 686, 687, 688, 941, 689, 145, 943, 691, 1119, 1120, 492, 83, 84 }; -static const short yypact[] = { 138, - 148,-32768,-32768, 5632,-32768, 50, 96, 224, 354, 222, - 175,-32768,-32768, 1133,-32768,-32768, 145, 170, 228,-32768, --32768,-32768, 804, 1359, 1163, 255,-32768, 343, 390,-32768, - 861, 861,-32768, 4785,-32768, 5632, 303,-32768, 360, 47, - 10183,-32768,-32768, 319, 1719, 421, 388, 424,-32768,-32768, --32768,-32768, 410, 1947,-32768, 4591,-32768, 1463, 295,-32768, - 444,-32768,-32768, 787,-32768,-32768, 427,-32768,-32768, 480, - 4266,-32768,-32768,-32768, 149,-32768,-32768,-32768, 1045,-32768, --32768, 1001, 5715, 488,-32768,-32768, 9151,-32768, 9151,-32768, - 9151,-32768,-32768,-32768, 224, 354, 343, 500, 486, 527, - 424,-32768, 1001,-32768, 1001, 9151, 9151, 516,-32768,-32768, --32768,-32768,-32768, 467, 583, 493, 507, 574, 597, 605, --32768,-32768, 691,-32768, 876, 224, 354, 1965, 343, 500, --32768, 1254, 478, 587, 10399, 9151,-32768, 9151, 2937,-32768, - 1685, 1128, 2937,-32768, 923, 3278, 3278, 4785, 571, 604, - 623, 613, 619,-32768,-32768, 726,-32768, 644,-32768, 3779, - 50,-32768,-32768,-32768, 664, 444, 777, 142, 341, 702, --32768,-32768, 660, 219,-32768,-32768, 3614, 3614, 4903, 968, - 313,-32768,-32768, 423,-32768,-32768, 2144,-32768,-32768,-32768, --32768,-32768, 1463, 353,-32768, 444, 968,-32768,-32768,-32768, - 1484, 1463,-32768, 444,-32768, 5081,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 424, 935, - 935, 427,-32768,-32768,-32768,-32768,-32768, 1262, 1001, 440, - 187, 1567,-32768, 268,-32768,-32768,-32768,-32768,-32768, 4049, --32768,-32768, 621,-32768, 711, 715,-32768,-32768,-32768,-32768, - 723,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 126, + 137,-32768,-32768, 10153,-32768, 121, 66, 52, 69, 136, + 211,-32768,-32768, 1414,-32768,-32768, 144, 192, 273,-32768, +-32768,-32768, 1315, 1087, 1740, 299,-32768, 303, 307,-32768, + 1961, 1961,-32768, 2997,-32768, 10153, 327,-32768, 410, 122, + 10212,-32768,-32768, 366, 701, 465, 443, 451,-32768,-32768, +-32768,-32768, 249, 2556,-32768, 5041,-32768, 870, 292,-32768, + 501,-32768,-32768, 1276,-32768,-32768, 478,-32768,-32768, 485, + 4260,-32768,-32768,-32768, 111,-32768,-32768,-32768, 2240,-32768, +-32768, 574, 7640, 480,-32768,-32768, 9121,-32768, 9121,-32768, + 9121,-32768,-32768,-32768, 52, 69, 303, 508, 456, 529, + 451,-32768, 574,-32768, 574, 9121, 9121, 509,-32768,-32768, +-32768,-32768,-32768, 198, 588, 316, 347, 651, 592, 606, +-32768,-32768, 909,-32768, 935, 52, 69, 243, 303, 508, +-32768, 978, 236, 569, 10375, 9121,-32768, 9121, 2886,-32768, + 2655, 690, 2886,-32768, 1215, 3166, 3166, 2997, 560, 564, + 585, 572, 594,-32768,-32768, 706,-32768, 612,-32768, 5159, + 121,-32768,-32768,-32768, 638, 501, 732, 147, 234, 681, +-32768,-32768, 670, 172,-32768,-32768, 3449, 3449, 5359, 1514, + 382,-32768,-32768, 459,-32768,-32768, 2763,-32768,-32768,-32768, +-32768,-32768, 870, 650,-32768, 501, 1514,-32768,-32768,-32768, + 1939, 870,-32768, 501,-32768, 5557,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 451, 1246, + 1246, 478,-32768,-32768,-32768,-32768,-32768, 1644, 574, 740, + 475, 1725,-32768, 403,-32768,-32768,-32768,-32768,-32768, 3571, +-32768,-32768, 302,-32768, 661, 694,-32768,-32768,-32768,-32768, + 738,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 700,-32768,-32768, 1262, 4266, 483,-32768, --32768, 725,-32768,-32768, 9766, 9853, 9940, 9940,-32768,-32768, --32768,-32768,-32768, 732, 754, 758, 765, 775, 500, 9238, - 923, 9940,-32768,-32768, 9940,-32768,-32768, 9940, 7264,-32768, - 9940, 756, 812,-32768, 9940,-32768, 9325,-32768, 6382,-32768, - 1293, 2446, 9412,-32768, 866, 2698,-32768, 1745, 3382, 3861, --32768, 322,-32768, 3288, 1917, 756, 756, 9151, 10399,-32768, - 923, 771,-32768,-32768, 774, 831, 10554, 786, 789, 794, - 2295, 644,-32768, 1965,-32768,-32768,-32768,-32768,-32768,-32768, - 583, 493, 507, 574, 597,-32768,-32768,-32768, 224, 354, - 836,-32768,-32768,-32768, 478,-32768,-32768,-32768,-32768,-32768, - 4374,-32768,-32768, 5081, 4405, 2509,-32768, 756, 830,-32768, - 627,-32768,-32768,-32768, 2937,-32768,-32768, 2937,-32768, 802, --32768,-32768, 4049, 81, 826, 855,-32768,-32768,-32768, 726, --32768, 444,-32768,-32768,-32768,-32768, 109,-32768,-32768,-32768, --32768, 7356, 9238,-32768,-32768,-32768, 9238, 800,-32768, 6592, - 130, 4108,-32768, 4108,-32768, 4344, 4344, 4903, 859,-32768, - 444,-32768, 5081,-32768, 828,-32768,-32768, 4802, 1484, 1463, - 5081,-32768,-32768,-32768,-32768, 444, 1484,-32768, 440,-32768, --32768, 424,-32768, 935,-32768, 2238, 2712, 58, 1262,-32768, --32768,-32768, 897, 901, 908,-32768,-32768,-32768,-32768, 651, --32768, 337, 899, 913,-32768,-32768, 1262,-32768,-32768, 779, --32768,-32768, 9151, 9238, 725, 7264,-32768, 386, 7264,-32768, --32768,-32768, 9151, 5355, 5355, 5355, 5355, 10599,-32768,-32768, --32768,-32768, 879, 10027, 10027, 7264, 910, 571, 917, 955, - 920,-32768,-32768,-32768,-32768, 9151,-32768, 6889, 7264,-32768, - 9238, 9238, 7448, 9238, 9238, 9238, 9238, 9238, 9238, 9238, - 9238, 9238, 9238, 9238, 9238, 9238, 9238, 9238, 9238, 9238, - 9238, 9238,-32768,-32768,-32768,-32768,-32768, 9238, 9238, 9238, - 9151, 3967, 603, 415, 8087,-32768,-32768,-32768, 977, 1026, - 404, 430, 475, 3321, 1128,-32768, 1060, 1060,-32768, 3007, - 931, 953, 1004,-32768,-32768, 497, 8594, 399,-32768, 797, - 1001,-32768,-32768, 9238,-32768,-32768,-32768,-32768, 309,-32768, --32768,-32768, 756,-32768, 5081, 2581,-32768, 991, 1000,-32768, --32768, 923,-32768, 7816, 7908,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 56,-32768, 969, 951, 644, 1005,-32768,-32768, --32768, 1597, 255, 1033, 474, 1007, 1009,-32768,-32768, 1279, - 10455, 1279, 10242, 787, 6017,-32768, 1016,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 975,-32768, 1034,-32768,-32768, - 319, 89, 960, 1036, 955,-32768,-32768,-32768,-32768, 6794, - 10599,-32768, 831, 986, 10554,-32768,-32768, 988,-32768,-32768, - 1002, 217, 10298, 1013,-32768, 190, 3127, 1046, 1054, 540, --32768,-32768,-32768, 4108, 4108,-32768, 4802, 1059,-32768,-32768, - 997, 130,-32768, 1484,-32768, 444,-32768, 493, 507,-32768, - 1031,-32768, 605, 1041,-32768,-32768, 116,-32768,-32768, 1035, --32768, 763, 843,-32768, 9238, 5414,-32768, 3527, 547, 547, - 92, 556, 2088, 5972, 4703,-32768, 247, 547, 1067, 444, - 130, 1699, 9151, 9151, 9151, 130, 1699,-32768,-32768,-32768, --32768,-32768,-32768, 770, 770, 770, 756, 1030, 1037, 9505, - 1004, 1038, 1040, 1042, 1068, 4166, 1081, 1082, 1083,-32768, - 1052,-32768,-32768, 1053,-32768,-32768, 1080, 598, 722, 177, - 78, 9238, 1097,-32768, 1105, 1061, 10599, 10599,-32768,-32768, - 1106, 6123, 3964, 4420, 5777, 4534, 4252, 2573, 2030, 2030, - 2030, 1725, 1725, 1263, 1263, 487, 487, 487,-32768,-32768, - 1062, 1063, 1064, 1071, 1072, 5355, 603,-32768, 7356, 9238, --32768,-32768,-32768, 9238,-32768,-32768, 1079, 9940, 1065, 1098, - 1141,-32768, 9238,-32768, 9238,-32768, 9238, 1301,-32768, 1301, --32768, 123, 1085, 1087,-32768, 1089, 5355, 130,-32768, 130, - 1603,-32768, 1699, 1092, 8786, 8786, 5873, 1090, 9325, 1096, - 2285, 1917, 916, 1102,-32768,-32768,-32768,-32768,-32768, 9238, - 923, 1103, 1000,-32768, 10599,-32768, 10599, 2295, 1112, 9592, --32768, 1113,-32768,-32768,-32768, 1846, 4374,-32768, 5355, 9151, - 1824, 1824, 2391,-32768,-32768,-32768,-32768, 2144,-32768,-32768, --32768, 347, 9238,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 583,-32768, 574, 597, 9238, 1165,-32768, 565, 568, 575, - 955,-32768,-32768,-32768, 147,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 8690,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 1054, 1162,-32768,-32768,-32768, 5355,-32768,-32768,-32768, - 1168,-32768, 9151,-32768,-32768,-32768,-32768, 2097,-32768, 1699, - 10599,-32768,-32768,-32768, 444, 444,-32768,-32768,-32768,-32768, --32768, 1699, 518, 760, 9238, 440,-32768, 1170,-32768,-32768, --32768, 243, 373, 1045, 1128, 608, 547, 1175,-32768, 1050, --32768,-32768,-32768, 444, 5018,-32768,-32768, 1118, 756, 756, - 756,-32768, 1127, 130, 1699, 130, 1699,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1099, 1146, 1147, 1149, - 975,-32768, 10486, 7356, 6984, 1134,-32768, 9238,-32768,-32768, --32768,-32768, 362, 1136,-32768,-32768, 1138, 179, 1588, 1588, - 1142, 1588,-32768,-32768, 9940, 1241,-32768, 1144, 1151, 1152, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 130, 1153, --32768, 1154,-32768,-32768, 3001,-32768,-32768,-32768,-32768,-32768, - 10599,-32768,-32768, 1167,-32768,-32768, 65, 1169,-32768,-32768, --32768,-32768,-32768, 2588, 2588, 2810, 2810, 2391,-32768, 2144, --32768, 2880, 6382,-32768,-32768, 1176,-32768, 960,-32768, 9238, --32768, 9238,-32768, 9238,-32768, 52, 7076,-32768, 8879, 8879, - 6496, 42, 1179, 122,-32768, 7356, 7168,-32768,-32768, 191, - 7356,-32768, 1181, 1183, 2238,-32768,-32768,-32768, 130, 1185, - 1199, 1199, 130, 1188, 9238, 9238, 6409, 444, 3662, 444, - 444, 941, 444, 4136, 1199, 5150,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1192,-32768, 1197, 9238, 9238, 9238, 9238, - 7356,-32768, 1217,-32768,-32768, 10599, 9238,-32768, 362,-32768, --32768,-32768,-32768,-32768,-32768, 1204,-32768, 1270,-32768,-32768, --32768, 130,-32768,-32768,-32768,-32768,-32768,-32768, 9238,-32768, --32768, 2588, 2588,-32768, 2880,-32768,-32768, 1210, 1215, 1218, - 1233, 923,-32768,-32768, 6346, 1297,-32768,-32768, 1223, 1171, --32768,-32768,-32768,-32768, 5355,-32768,-32768, 7356,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 6409, 6409,-32768, - 1199, 579, 832, 9238,-32768,-32768,-32768, 440, 440, 1199, - 1199, 651, 1199,-32768,-32768, 6077, 130, 130,-32768,-32768, - 1228, 1232, 1242, 1244,-32768, 7356, 1238,-32768,-32768,-32768, --32768, 130, 1245,-32768,-32768,-32768,-32768, 1233,-32768,-32768, - 616,-32768, 271, 1294, 904, 907,-32768,-32768,-32768,-32768, --32768, 9238, 1303, 1306, 1308, 8972, 503, 657,-32768,-32768, - 9064, 1362, 1314,-32768, 3791, 10354, 4475, 6222,-32768,-32768, - 1360,-32768,-32768,-32768, 8198,-32768, 199,-32768,-32768, 130, - 130,-32768,-32768,-32768, 9238, 9238, 6409, 444, 444,-32768, --32768,-32768,-32768, 8000,-32768,-32768,-32768,-32768, 130, 130, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 923,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 955, - 1283, 1284, 5215,-32768,-32768,-32768,-32768, 1318, 9238, 1322, --32768, 955,-32768,-32768, 1290,-32768,-32768, 440, 631,-32768, - 706, 440, 9679, 808, 281,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 6409, 6409,-32768, 1199, 1199, 1280, 10508, - 1292,-32768,-32768, 1299,-32768, 599, 599,-32768,-32768, 1382, - 6702, 9151, 9238,-32768, 8308,-32768, 1341,-32768,-32768, 726, --32768,-32768, 10114, 10114, 7540,-32768,-32768, 955,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 421, 319, 5566,-32768,-32768, - 9151,-32768,-32768, 8500,-32768, 52,-32768,-32768, 1342,-32768, - 1295, 357, 5081, 10577, 8308,-32768,-32768, 1233, 63,-32768, - 159,-32768, 1296, 1298, 955, 1300, 955, 8404,-32768, 617, --32768,-32768,-32768,-32768, 440,-32768,-32768, 1233, 1398, 1351, --32768,-32768, 109,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 9238, 1352, 7632, 955, 444, 8308, - 1321, 181, 1358,-32768,-32768,-32768,-32768,-32768, 52,-32768, - 1312,-32768,-32768, 1367,-32768,-32768, 1369,-32768, 9238, 1398, - 1374, 1398,-32768,-32768,-32768,-32768,-32768,-32768, 1327, 185, --32768,-32768, 7724,-32768, 7356,-32768, 1429, 1381, 1333,-32768, --32768, 218,-32768,-32768, 1434, 1386, 8404,-32768,-32768,-32768, --32768, 1448, 1450,-32768 +-32768,-32768,-32768, 682,-32768,-32768, 1644, 4260, 915,-32768, +-32768, 727,-32768,-32768, 9736, 9823, 9910, 9910,-32768,-32768, +-32768,-32768,-32768, 736, 751, 758, 761, 794, 508, 9208, + 1215, 9910,-32768,-32768, 9910,-32768,-32768, 9910, 7112,-32768, + 9910, 38, 782,-32768, 9910,-32768, 9295,-32768, 6255,-32768, + 1045, 2489, 9382,-32768, 861, 2251,-32768, 2116, 1661, 4715, +-32768, 433,-32768, 1120, 1568, 38, 38, 9121, 10375,-32768, + 1215, 776,-32768,-32768, 796, 844, 10533, 798, 813, 815, + 1239, 612,-32768, 243,-32768,-32768,-32768,-32768,-32768,-32768, + 588, 316, 347, 651, 592,-32768,-32768,-32768, 52, 69, + 865,-32768,-32768,-32768, 236,-32768,-32768,-32768,-32768,-32768, + 3357,-32768,-32768, 5557, 4953, 2186,-32768, 38, 597,-32768, + 351,-32768,-32768,-32768, 2886,-32768,-32768, 2886,-32768, 818, +-32768,-32768, 3571, 75, 822, 826,-32768,-32768,-32768, 706, +-32768, 501,-32768,-32768,-32768,-32768, 124,-32768,-32768,-32768, +-32768, 7204, 9208,-32768,-32768,-32768, 9208, 819,-32768, 6440, + 154, 4020,-32768, 4020,-32768, 4241, 4241, 5359, 834,-32768, + 501,-32768, 5557,-32768, 832,-32768,-32768, 4722, 1939, 870, + 5557,-32768,-32768,-32768,-32768, 501, 1939,-32768, 740,-32768, +-32768, 451,-32768, 1246,-32768, 1867, 3027, 50, 1644,-32768, +-32768,-32768, 871, 873, 877,-32768,-32768,-32768,-32768, 578, +-32768, 462, 845, 847,-32768,-32768, 1644,-32768,-32768, 631, +-32768,-32768, 9121, 9208, 727, 7112,-32768, 487, 7112,-32768, +-32768,-32768, 9121, 4469, 4469, 4469, 4469, 10580,-32768,-32768, +-32768,-32768, 843, 9997, 9997, 7112, 859, 560, 864, 898, + 867,-32768,-32768,-32768,-32768, 9121,-32768, 6737, 7112,-32768, + 9208, 9208, 7296, 9208, 9208, 9208, 9208, 9208, 9208, 9208, + 9208, 9208, 9208, 9208, 9208, 9208, 9208, 9208, 9208, 9208, + 9208, 9208,-32768,-32768,-32768,-32768,-32768, 9208, 9208, 9208, + 9121, 809, 368, 315, 8004,-32768,-32768,-32768, 916, 967, + 497, 498, 517, 1365, 690,-32768, 1809, 1809,-32768, 2716, + 872, 886, 939,-32768,-32768, 492, 8564, 1584,-32768, 716, + 574,-32768,-32768, 9208,-32768,-32768,-32768,-32768, 283,-32768, +-32768,-32768, 38,-32768, 5557, 2205,-32768, 923, 929,-32768, +-32768, 1215,-32768, 7733, 7825,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 145,-32768, 901, 888, 612, 936,-32768,-32768, +-32768, 1509, 299, 963, 374, 937, 941,-32768,-32768, 799, + 10420, 799, 5259, 1276, 5487,-32768, 944,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 902,-32768, 956,-32768,-32768, + 366, 81, 570, 959, 898,-32768,-32768,-32768,-32768, 6642, + 10580,-32768, 844, 918, 10533,-32768,-32768, 922,-32768,-32768, + 931, 417, 5417, 933,-32768, 163, 4591, 961, 984, 520, +-32768,-32768,-32768, 4020, 4020,-32768, 4722, 989,-32768,-32768, + 943, 154,-32768, 1939,-32768, 501,-32768, 316, 347,-32768, + 966,-32768, 606, 1002,-32768,-32768, 196,-32768,-32768, 1548, +-32768, 643, 1168,-32768, 9208, 4462,-32768, 4462, 409, 409, + 402, 546, 3531, 10271, 3737,-32768, 176, 409, 1003, 501, + 154, 1798, 9121, 9121, 9121, 154, 1798,-32768,-32768,-32768, +-32768,-32768,-32768, 1335, 1335, 1335, 38, 960, 962, 9475, + 939, 970, 973, 986, 993, 2387, 997, 1001, 1023,-32768, + 991,-32768,-32768, 992,-32768,-32768, 1025, 463, 591, 344, + 146, 9208, 1040,-32768, 1049, 1004, 10580, 10580,-32768,-32768, + 1050, 10598, 5947, 10614, 4769, 2294, 3366, 2601, 2013, 2013, + 2013, 2188, 2188, 1098, 1098, 760, 760, 760,-32768,-32768, + 1026, 999, 1030, 1037, 1038, 4469, 368,-32768, 7204, 9208, +-32768,-32768,-32768, 9208,-32768,-32768, 1057, 9910, 1042, 1064, + 1110,-32768, 9208,-32768, 9208,-32768, 9208, 4744,-32768, 4744, +-32768, 117, 1066, 1078,-32768, 1047, 4469, 154,-32768, 154, + 5056,-32768, 1798, 1054, 8756, 8756, 5713, 1079, 9295, 1081, + 2780, 1568, 777, 1085,-32768,-32768,-32768,-32768,-32768, 9208, + 1215, 1089, 929,-32768, 10580,-32768, 10580, 1239, 1094, 9562, +-32768, 1095,-32768,-32768,-32768, 2104, 3357,-32768, 4469, 9121, + 2144, 2144, 4172,-32768,-32768,-32768,-32768, 2763,-32768,-32768, +-32768, 304, 9208,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 588,-32768, 651, 592, 9208, 1147,-32768, 558, 575, 590, + 898,-32768,-32768,-32768, 51,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 8660,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 984, 1149,-32768,-32768,-32768, 4469,-32768,-32768,-32768, + 1152,-32768, 9121,-32768,-32768,-32768,-32768, 2127,-32768, 1798, + 10580,-32768, 1986,-32768, 501, 501,-32768,-32768,-32768,-32768, +-32768, 1798, 404, 700, 9208, 740,-32768, 1161,-32768,-32768, +-32768, 390, 640, 2240, 690, 1012, 409, 1162,-32768, 1091, +-32768,-32768,-32768, 501, 4027,-32768,-32768, 1117, 38, 38, + 38,-32768, 1118, 154, 1798, 154, 1798,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 1135, 1137, 1138, 1139, + 902,-32768, 10507, 7204, 6832, 1124,-32768, 9208,-32768,-32768, +-32768,-32768, 399, 1128,-32768,-32768, 1129, 58, 950, 950, + 1127, 950,-32768,-32768, 9910, 1237,-32768, 1145, 1148, 1150, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 154, 1154, +-32768, 1153,-32768,-32768, 2797,-32768,-32768,-32768,-32768,-32768, + 10580,-32768,-32768, 1151,-32768,-32768, 205, 1172,-32768,-32768, +-32768,-32768,-32768, 3210, 3210, 3342, 3342, 4172,-32768, 2763, +-32768, 3880, 6255,-32768,-32768, 1176,-32768, 570,-32768, 9208, +-32768, 9208,-32768, 9208,-32768, 40, 6924,-32768, 8849, 8849, + 6344, 123, 1177, 350,-32768, 7204, 7016,-32768,-32768, 217, + 7204,-32768, 1179, 1180, 1867,-32768,-32768,-32768, 154, 1182, +-32768, 1213, 1213, 154, 1184, 9208, 9208, 5983, 501, 4816, + 501, 501, 1029, 501, 4908, 1213, 8073,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 1189,-32768, 1196, 9208, 9208, 9208, + 9208, 7204,-32768, 1244,-32768,-32768, 10580, 9208,-32768, 399, +-32768,-32768,-32768,-32768,-32768,-32768, 1198,-32768, 1261,-32768, +-32768,-32768, 154,-32768,-32768,-32768,-32768,-32768,-32768, 9208, +-32768,-32768, 3210, 3210,-32768, 3880,-32768,-32768, 1202, 1204, + 1205, 1224, 1215,-32768,-32768, 6219, 1288,-32768,-32768, 1222, + 1103,-32768,-32768,-32768,-32768, 4469,-32768,-32768, 7204,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 5983, 5983, +-32768, 1213, 474, 725, 9208,-32768,-32768,-32768, 740, 740, + 1213, 1213, 578, 1213,-32768,-32768, 5847, 154, 154,-32768, +-32768, 1228, 1233, 1235, 1236,-32768, 7204, 1212,-32768,-32768, +-32768,-32768, 154, 1238,-32768,-32768,-32768,-32768, 1224,-32768, +-32768, 821,-32768, 222, 1284, 752, 756,-32768,-32768,-32768, +-32768,-32768, 9208, 1286, 1292, 1293, 8942, 767, 567,-32768, +-32768, 9034, 1346, 1295,-32768, 5315, 10316, 10476, 6095,-32768, +-32768, 1342,-32768,-32768,-32768, 8168,-32768, 363,-32768,-32768, + 154, 154,-32768,-32768,-32768, 9208, 9208, 5983, 501, 501, +-32768,-32768,-32768,-32768, 7917,-32768,-32768,-32768,-32768, 154, + 154,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 1215,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 898, 1265, 1267, 3913,-32768,-32768,-32768,-32768, 1301, 9208, + 1305,-32768, 898,-32768,-32768, 1273,-32768,-32768, 740, 831, +-32768, 837, 740, 9649, 840, 235,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 5983, 5983,-32768, 1213, 1213, 1266, + 5762, 1278,-32768,-32768, 1285,-32768, 603, 603,-32768,-32768, + 1361, 6550, 9121, 9208,-32768, 8278,-32768, 1319,-32768,-32768, + 706,-32768,-32768, 10084, 10084, 7388,-32768,-32768, 898,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 465, 366, 4403,-32768, +-32768, 9121,-32768,-32768, 8470,-32768, 40,-32768,-32768, 1324, +-32768, 1279, 242, 5557, 10558, 8278,-32768,-32768, 1224, 80, +-32768, 149,-32768, 1287, 1294, 898, 1300, 898, 8374,-32768, + 615,-32768,-32768,-32768,-32768, 740,-32768,-32768, 1224, 1383, + 1352,-32768,-32768, 124,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 9208, 1354, 7480, 898, 501, + 8278, 1302, 30, 1343,-32768,-32768,-32768,-32768,-32768, 40, +-32768, 1317,-32768,-32768, 1368,-32768,-32768, 1370,-32768, 9208, + 1383, 1378, 1383,-32768,-32768,-32768,-32768,-32768,-32768, 1330, + 79,-32768,-32768, 7572,-32768, 7204,-32768, 1430, 1382, 1334, +-32768,-32768, 248,-32768,-32768, 1438, 1390, 8374,-32768,-32768, +-32768,-32768, 1452, 1456,-32768 }; static const short yypgoto[] = {-32768, - 1451,-32768, -307,-32768, 1044, -1, 21, 1454,-32768, 73, --32768,-32768, 350, 1108,-32768, 15,-32768,-32768, -586,-32768, --32768, 572,-32768, 1304, -658, 48, -649, 1313, 37,-32768, --32768,-32768,-32768,-32768, 734, 747,-32768,-32768,-32768,-32768, --32768, 380, 66,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1388, -522, 5373, -7, -179, -55, - 1346, -502,-32768, 508,-32768, 88,-32768, -1307,-32768, -1309, - -49,-32768, 1610, 1226, -256,-32768, -790, 2661, -74, 3538, - 3072, 1216,-32768, -66, 12, 128, -59, 164,-32768,-32768, --32768, -309,-32768, -154,-32768,-32768, -1220, -53, -322, 4419, - 7, 1305, -125, 24, 189, -189, -4, -97, -976, 194, --32768, -29, -197,-32768, -192,-32768,-32768,-32768,-32768,-32768, - 847, 473, -17,-32768, 624,-32768,-32768, -1037, -404, 829, --32768,-32768,-32768,-32768,-32768, 64,-32768,-32768,-32768,-32768, --32768, 630, -350,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 1282,-32768, 385, 554,-32768,-32768,-32768,-32768, 520, -693, - 785,-32768,-32768,-32768,-32768,-32768, 783,-32768, 375, 911, - 649, 964, 1943, 18, 31, -432, 1338, 1427, -443,-32768, - -6,-32768, 4923, -100, 652, -58, 3254, 1202,-32768, 4452, - 1493, 182, -15, -111,-32768, 1408,-32768, 4138, 2230, -278, --32768, 3159,-32768,-32768, 234, -906, -853,-32768,-32768, 329, - 67, -402,-32768,-32768,-32768,-32768, -1311,-32768, -1186, -1337, + 1460,-32768, -313,-32768, 1053, -1, 2, 1463,-32768, 713, +-32768,-32768, 442, 1112,-32768, 12,-32768,-32768, -610,-32768, +-32768, 580,-32768, 1308, -656, 47, -637, 1316, 53,-32768, +-32768,-32768,-32768,-32768, 748,-32768,-32768,-32768,-32768,-32768, +-32768, 387, 49,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 1393, -521, 5246, 94, -191, -58, + 1351, -496,-32768, 552,-32768, 98,-32768, -1334,-32768, -1314, + -46,-32768, 1190, 1528, -259,-32768, -766, 2619, 742, 3832, + 3147, 1217,-32768, -91, -62, 105, -66, 241,-32768,-32768, +-32768, -326,-32768, -152,-32768,-32768, -1210, -33, -322, 2009, + 64, 1173, -138, 24, 189, -182, -4, -140, -858, 202, +-32768, 28, -112,-32768, -174,-32768,-32768,-32768,-32768,-32768, + 620, -44, -17,-32768, 622,-32768,-32768, -1013, -323, 833, +-32768,-32768,-32768,-32768,-32768, 102,-32768,-32768,-32768,-32768, +-32768, 628, -363,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 1280,-32768, 379, 549,-32768,-32768,-32768,-32768, 515, -618, +-32768,-32768,-32768,-32768,-32768,-32768, 783,-32768, 377, 899, + 647, 965, 1303, 18, 16, -426, 1339, 1731, -449,-32768, + 33,-32768, 4899, -145, 277, -52, 3462, 1203,-32768, 4589, + 1494, 373, -19, -105,-32768, 1401,-32768, 4250, 2271, -180, +-32768, 2857,-32768,-32768, 232, -881, -870,-32768,-32768, 325, + 59, -299,-32768,-32768,-32768,-32768, -1323,-32768, -1202, -1369, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 87,-32768,-32768,-32768,-32768, --32768, 91, -1199,-32768,-32768,-32768, -19,-32768,-32768,-32768, --32768, -1338, 34,-32768, 29,-32768, -627, -489, 606,-32768, --32768,-32768,-32768, -360,-32768, -328, -168,-32768, 719, 331, --32768, 49,-32768, -222 +-32768,-32768,-32768,-32768,-32768, 84,-32768,-32768,-32768,-32768, +-32768, 89, -1233,-32768,-32768,-32768, -54,-32768,-32768,-32768, +-32768, -1322, 32,-32768, 26,-32768, -488, -503, 602,-32768, +-32768,-32768,-32768, -371,-32768, -366, -178,-32768, 734, 331, +-32768, 96,-32768, -207 }; -#define YYLAST 10684 +#define YYLAST 10699 static const short yytable[] = { 58, - 180, 404, 36, 450, 453, 921, 588, 102, 121, 475, - 54, 909, 701, 368, 668, 166, 1106, 672, 41, 237, - 646, 71, 718, 776, 37, 597, 1035, 56, 497, 500, - 644, 58, 962, 336, 36, 337, 58, 470, 469, 36, - 45, 991, 54, 208, 626, 396, 399, 54, 139, 143, - 41, 193, 647, 71, 466, 41, 37, 901, 71, 56, - 530, 37, 1439, 279, 56, 376, 228, 449, 1340, 374, - 1363, 234, 45, 567, 379, 241, 457, 45, 277, 100, - 388, 237, 329, 174, 329, 1202, 329, 487, 114, -276, - 844, 567, 192, 1224, 1225, 739, 1459, 844, 343, 567, - 278, 329, 329, 455, 458, 158, 1450, 1245, 155, 665, - 85, 1378, 600, 162, 998, 878, 967, 774, 1381, 1003, - 1482, 205, 956, 1456, 1189, 1469, 1461, 237, 907, 217, - 386, 329, 137, 329, 929, -276, -276, -1, 478, 487, - -127, 384, 414, 377, 378, 1479, 159, -2, 846, -90, - 968, -269, 71, 957, 969, 58, 601, 602, 385, 1472, - 86, 150, 1203, 395, 398, 879, 54, 666, 740, -589, - 87, 383, 1470, -90, 1190, 761, 1506, 71, 208, 1505, - 1437, 174, 930, 56, 1529, 931, 208, 970, 366, 1514, - 658, 690, 57, 1314, 432, 434, 45, 151, 910, 1482, - -327, 935, 1320, 1321, 415, 1322, 1107, -90, 652, 653, - 393, -90, 501, 502, 174, -589, -589, -327, 1446, 919, - 932, 415, 241, 93, 57, 1060, 576, 510, 929, 57, - 511, -589, 775, 512, 471, 482, 522, 416, 106, -126, - 527, 90, 1168, 1510, -90, 699, -278, 1527, 566, 936, - 1215, 136, 937, 705, 416, 662, 205, 1108, 1467, 571, - 239, 91, 922, 107, 205, 205, 429, -336, 1340, 15, - 16, 276, 760, 228, 397, 400, 930, 1535, 88, 931, - 472, -789, 603, 886, 239, 461, 463, 938, 1171, 597, - 1511, 205, -278, -278, 1528, 374, 92, 474, 89, 1080, - 1216, -336, 564, 1508, 329, -336, 150, 992, -272, 151, - 151, 151, 430, 239, 932, 476, 631, 277, 1369, 882, - 1374, 108, 239, 57, 704, 228, 646, 1536, 241, 134, - 649, 1343, 1130, 329, 606, 396, 399, 572, -336, 278, - 205, 1343, 151, 1067, 1134, 605, 1070, 289, 57, 1421, - 1422, 455, 458, 39, 206, 207, 71, 993, 942, 455, - 588, 477, 385, 27, 199, 200, 509, 844, 239, 593, - 14, 458, 443, 444, 1352, 604, 643, 1154, 1258, 1156, - 193, 1344, 1094, 1095, 750, 39, 630, 1083, 421, 458, - 39, 1417, 205, 21, 208, 634, 156, -337, 645, 15, - 16, 239, 24, 844, 576, 422, -44, -545, 90, 818, - -545, -44, 451, 452, 1036, 594, 622, 136, 126, 127, - 157, 1062, -44, 865, 239, 683, 819, 163, 91, 706, - 751, -337, 1394, 576, 423, -337, 519, 757, 208, 510, - 511, 1396, 1397, 844, 137, 167, 849, 645, 171, 205, - 760, 832, 991, 694, 695, 820, 1167, -549, -545, 732, - -545, -545, 58, -545, 138, 726, 15, 16, -337, 27, - -549, 129, 130, 733, -545, 19, -545, 834, 172, 760, - 281, 369, 370, 10, 71, 822, 126, 127, 329, 223, - 734, 329, -545, -545, 329, 823, -545, 833, 329, 766, - 766, 766, 766, -549, 173, 94, 109, 110, -545, 824, - 276, 329, 205, 205, 718, 239, -549, 445, 1105, 22, - 205, 329, 836, 835, 329, 353, 646, 57, 196, 707, - 204, 354, 205, 887, 28, 299, 644, 27, 225, 129, - 130, 952, 564, 954, 852, 1186, 1187, 356, 958, 888, - 205, 867, 597, 488, 137, 1487, 329, 277, 647, 111, - 112, 357, 280, 489, 397, 400, 33, 89, 837, 642, - 551, 552, 239, 15, 16, 643, 487, 1011, -386, 278, - 1135, 91, 683, 1359, 241, 342, 894, 946, 899, 900, - 853, 854, 87, 783, 838, 840, 340, 645, 844, 151, - 151, 151, 530, 971, 645, 1483, 455, -386, 368, 351, - 1176, -386, 1099, 345, 349, 1101, 121, 1496, 642, 1162, - 1164, 844, 1103, 519, 8, 480, 519, 1500, 358, 900, - 126, 127, -102, 947, 15, 16, 193, 355, 412, 600, - 228, 1315, 397, 771, 1513, 239, 1430, 920, 136, 972, - 818, 359, 88, 87, 919, 57, 519, -386, 1100, 360, - -124, 1102, 380, 1524, 1484, 204, -102, 819, 1104, 205, - -102, 239, 89, 456, 204, 1341, 1342, 129, 130, 977, - -269, 718, 643, 129, 130, 153, 1541, 999, 1000, 1001, - 443, 1411, 1431, 361, 362, 363, 820, 885, 748, 965, - 966, 481, 1164, -102, 645, 90, 205, 481, 994, 902, - 1485, 1211, 1213, 401, 860, 761, 1217, 173, 732, 1361, - 732, 58, 402, 58, 726, 91, 732, 732, -584, 193, - 58, 136, 733, 726, 733, 783, 284, 643, 329, 329, - 329, 733, 643, 71, 749, 71, 205, 364, 365, 734, - 276, 734, 71, 1044, -7, 239, 1255, 410, 734, 645, - 1172, 1173, 425, 1175, 645, 451, 1412, 205, 642, 976, - 986, 239, 426, 126, 127, 642, 90, 1452, 478, 413, - 510, 511, 126, 127, -125, 485, 1125, 1126, 1127, 94, - 95, 96, 1473, 209, 210, 211, 91, 153, 153, 153, - 8, 9, 1008, 1009, 1010, 483, 94, 109, 110, 484, - 959, 766, 486, 1309, 88, 1038, 517, 90, 494, 1149, - 1150, 1151, 1136, 212, 27, 503, 129, 130, 504, 205, - 153, 523, 505, 524, 89, 129, 130, 91, 237, 506, - 488, 27, 766, 97, 98, 213, 126, 127, 643, 507, - 489, 1335, 683, 129, 130, 241, 960, 196, 204, 233, - 111, 112, 113, 7, 126, 127, 10, 443, 1416, 13, - 645, 526, 838, 840, 645, 642, 567, 233, 115, 116, - 117, 611, 643, 613, 766, 329, 88, 860, 643, 526, - 614, 214, 215, 216, 1316, 616, 629, 27, 617, 129, - 130, 634, 22, 618, 645, 523, 89, 524, 1084, 1085, - 645, 656, 677, 412, 57, 27, 57, 28, 29, 8, - 9, 456, 204, 57, 237, 94, 109, 110, 683, 456, - 642, 31, 118, 119, 676, 642, -6, 94, 95, 96, - 700, 32, 766, 622, 126, 1242, 1138, 1399, 329, 33, - 645, 885, 1140, 1141, 34, 643, 1138, 1143, 88, 1409, - 1141, 90, 911, 708, 709, 659, 1346, 643, 696, 1347, - 1177, 743, 129, 130, 761, 744, 234, 645, 89, 111, - 112, 91, 745, 397, 771, 396, 399, 732, 770, 645, - 58, 97, 98, 726, 15, 16, 481, 129, 130, -386, - 643, 733, 643, 517, 8, 9, 517, 912, 396, 399, - 763, 752, 71, 666, 27, 1399, 913, 914, 734, 772, - 150, 481, 645, 517, 645, 753, 773, -386, -386, 775, - 237, 830, -386, 831, 510, 511, 517, 115, 708, 709, - 790, 642, 239, 845, 239, 642, 847, 7, 8, 231, - 10, 849, 1477, 915, 1399, 870, 151, 129, 130, 871, - 1113, 881, 880, 126, 127, 883, 812, 646, 13, 21, - 668, 889, 829, 890, -100, 642, 15, 16, 204, 239, - 903, 642, 920, 643, -272, 1399, 22, 153, 153, 153, - 1163, 118, 119, 232, 908, 926, 151, 927, 415, 1454, - 955, 28, 29, 1192, 1193, 645, 683, 576, -100, 949, - -788, 928, -100, 196, 27, 204, 129, 130, 944, 761, - 1530, 642, 934, 948, 953, 233, 1192, 1193, 645, 995, - 577, 126, 127, 33, 482, 94, 95, 96, 732, 1012, - 578, 58, -123, 1017, 726, -100, 1013, 1014, 642, 1015, - 579, 1016, 733, 580, 581, 204, 1018, 1019, 1020, 1024, - 642, 1021, 1022, 71, 1025, 239, 126, 127, 1028, 734, - 1027, 1029, 1163, 1043, 1031, 1030, 456, 1045, 412, 453, - 1032, 1033, -278, 57, 129, 130, 1046, 27, 1047, 97, - 98, 99, 1157, 642, 1053, 642, 1054, -278, -278, 1063, - 1297, 1055, -278, 1291, 1061, 1064, 196, 128, 1318, 1319, - 766, 1066, 412, 1073, 397, 400, 522, 27, -278, 129, - 130, 1076, 71, 1079, 1098, 1292, 1116, 1148, 1296, 1139, - -278, -278, 1122, -278, 1144, -278, 1152, 397, 1209, 1158, - 1159, 1368, 1160, 1368, 1165, 1169, 239, 1170, 1178, 151, - 151, 151, 487, 1179, 1174, 1449, 281, 369, 370, 10, - 1180, 1181, 1184, 422, -278, -278, 1185, 1270, -278, 199, - 200, 239, 151, 151, 151, 14, 642, 1188, 1191, 1256, - -278, 7, 8, 9, 10, 1196, 1297, 698, 1210, 1291, - 1219, 193, 1220, 1297, 1223, 22, 1291, 1227, 21, 642, - 1297, 1249, 232, 1291, 126, 127, 1250, 24, 71, 227, - 28, 299, 396, 399, 1296, 71, 1259, 1260, 1292, 1264, - 22, 1296, 71, 239, 1265, 1292, 576, 1266, 1296, 1267, - 1202, 1041, 1307, 27, 57, 28, 29, 1331, 510, 511, - 553, 1332, 33, 548, 549, 550, 551, 552, 576, 891, - 1336, 1333, 1360, 1334, 1338, 27, 1345, 129, 130, 892, - 205, 115, 116, 117, 517, 1354, 1355, 33, 1356, 579, - 1364, 577, 893, 581, 1366, 1379, 1401, 1402, 1406, 554, - 555, 578, 1408, 1410, 556, 557, 558, 559, 1423, 1465, - 1425, 579, 1428, 57, 580, 581, 1297, 1442, 1435, 1291, - 1297, 1447, 1463, 1291, 1464, 1475, 1395, 1476, 1491, 1478, - 329, 1495, 1502, 27, 1509, 118, 119, 1512, 71, 278, - 950, 1515, 71, 643, 1296, 1292, 1442, 1516, 1296, 1297, - 694, 695, 1291, 1518, 1521, 1489, 1526, 412, 412, 1531, - 1297, 1533, 1534, 1291, 1538, 645, 1539, 1543, 278, 1544, - 1, 71, 661, 1297, 1292, 5, 1291, 1296, 1081, 997, - 1123, 628, 71, 408, 1002, 1292, 412, 987, 1296, 198, - 199, 200, 409, 1451, 963, 71, 14, 1197, 1292, 57, - 339, 1296, 1442, 389, 1433, 1297, 57, 1540, 1291, 1371, - 454, 199, 200, 57, 19, 493, 79, 14, 925, 21, - 1113, 1075, 1074, 465, 278, 205, 103, 71, 24, 1221, - 1292, 1128, 964, 1296, 1146, 19, 989, 132, 1244, 1072, - 21, 446, 873, 141, 141, 817, 141, 573, 79, 24, - 367, 1377, 1297, 79, 1306, 1291, 151, 1474, 1468, 1497, - 1522, 397, 1209, 1520, 153, 1308, 187, 1115, 79, 0, - 0, 0, 951, 0, 71, 0, 220, 1292, 0, 0, - 1296, 0, 0, 103, 0, 0, 1056, 0, 1057, 94, - 109, 110, 473, 0, 243, 103, 151, 151, 151, 0, - 0, 0, 0, 0, 153, 0, 996, 0, 0, 57, - 276, 126, 127, 57, 0, 0, 478, 103, 0, 361, - 362, 363, 0, 433, 435, 439, 126, 127, 22, 412, - 412, 478, 412, 412, 0, 412, 642, 0, 517, 276, - 132, 0, 57, 111, 112, 132, 0, 79, 0, 0, - 0, 141, 0, 57, 391, 141, 0, 0, 141, 141, - 141, 0, 27, 0, 129, 130, 57, 0, 674, 0, - 576, 27, 79, 364, 365, 681, 0, 27, 822, 129, - 130, 0, 0, 0, 1251, 1252, 1253, 1254, 823, 187, - 187, 187, 0, 577, 1257, 276, 0, 0, 57, 0, - 0, 0, 824, 578, 0, 640, 0, 7, 126, 127, - 10, 0, 0, 579, 0, 0, 580, 581, 187, 0, - 412, 412, 8, 9, 0, 382, 12, 13, 0, 0, - 679, 0, 14, 464, 0, 0, 0, 0, 0, 758, - 0, 103, 1153, 0, 1155, 57, 22, 17, 0, 18, - 19, 0, 141, 232, 640, 21, 0, 153, 153, 153, - 0, 28, 29, 0, 24, 15, 16, 0, 126, 127, - -386, 0, 0, 27, 0, 129, 130, 0, 0, 0, - 153, 153, 153, 0, 0, 233, 0, 0, 196, 204, - 103, 490, 0, 33, 0, 0, 0, 1183, -386, -386, - 0, 0, 0, 811, 0, 813, 814, 0, 0, 412, - 412, 412, 576, 1358, 0, 0, 680, 0, 0, 27, - 0, 129, 130, 546, 547, 548, 549, 550, 551, 552, - 0, 1131, 1132, 0, 103, 577, 0, 0, 574, 864, - 490, 490, 590, 0, 0, 578, 7, 8, 9, 10, - 0, 79, 13, 0, 0, 579, 0, 0, 580, 581, - 1145, 0, 0, 0, 0, 0, 132, 1222, 94, 109, - 110, 1226, 209, 210, 211, 0, 412, 412, 692, 0, - 693, 0, 433, 435, 439, 22, 1407, 132, 0, 0, - 0, 576, 0, 103, 703, 0, 187, 103, 27, 0, - 28, 29, 212, 0, 640, 0, 0, 141, 0, 0, - 141, 640, 0, 0, 891, 141, 0, 0, 0, 0, - 1261, 0, 111, 112, 892, 0, 0, 0, 790, 1440, - 0, 0, 33, 0, 579, 0, 0, 893, 581, 595, - 8, 9, 517, 0, 187, 0, 187, 0, 187, 187, - 187, 0, 0, 0, 0, 187, 0, 0, 1440, 0, - 187, 0, 0, 187, 0, 0, 0, 0, 0, 7, - 8, 9, 10, 0, 0, 289, 596, 0, 22, 79, - 0, 412, 0, 0, 0, 1327, 1328, 281, 369, 370, - 10, 27, 0, 129, 130, 0, 0, 0, 0, 0, - 1337, 0, 0, 1230, 1231, 0, 1240, 1241, 22, 1243, - 0, 640, 1501, 0, 1440, 0, 103, 103, 103, 103, - 0, 27, 0, 28, 29, 0, 22, 176, 0, 0, - 0, 0, 0, 0, 0, 0, 1519, 177, 0, 27, - 0, 28, 299, 240, 153, 0, 0, 178, 1382, 1383, - 790, 0, 673, 0, 0, 33, 0, 0, 0, 673, - 179, 0, 0, 0, 0, 1037, 640, 1392, 1393, 0, - 0, 640, 0, 33, 103, 0, 490, 0, 1048, 0, - 1049, 0, 1050, 0, 153, 153, 153, 574, 0, 490, - 490, 0, 590, 0, 1312, 1313, 0, 0, 0, 861, - 0, 0, 0, 863, 0, 0, 0, 0, 0, 0, - 973, 974, 9, 10, 0, 0, 403, 187, 0, 115, - 708, 709, 0, 673, 0, 1078, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 0, 0, 431, 0, 0, - 692, 693, 0, 703, 0, 0, 0, 711, 0, 22, - 448, 0, 187, 898, 187, 187, 220, 590, 0, 0, - 1096, 0, 27, 0, 28, 29, 7, 8, 9, 10, - 975, 27, 0, 118, 119, 0, 0, 640, 177, 982, - 0, 640, 0, 1386, 1387, 1388, 0, 673, 178, 673, - 673, 0, 0, 0, 0, 187, 33, 0, 0, 898, - 0, 179, 0, 0, 0, 22, 187, 187, 0, 187, - 0, 640, 232, 0, 0, 0, 673, 640, 0, 0, - 28, 29, 0, 673, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 79, 0, - 79, 0, 0, 0, 233, 984, 79, 79, 0, 0, - 1419, 1420, 33, 82, 103, 0, 0, 640, 0, 103, - 115, 708, 709, 105, 710, 0, 490, 490, 490, 0, - 0, 0, 0, 125, 133, 0, 0, 0, 490, 0, - 142, 142, 0, 142, 640, 82, 0, 0, 711, 0, - 82, 0, 0, 0, 0, 712, 640, 0, 0, 0, - 0, 0, 0, 142, 0, 82, 0, 281, 8, 9, - 10, 0, 27, 221, 118, 119, 0, 94, 109, 110, - 229, 619, 620, 621, 0, 0, 0, 0, 103, 640, - 0, 640, 229, 0, 0, 0, 0, 433, 435, 439, - 0, 0, 0, 0, 0, 1198, 22, 1199, 0, 1200, - 490, 0, 490, 232, 0, 1507, 0, 0, 0, 103, - 0, 28, 299, 490, 0, 103, 0, 861, 861, 861, - 0, 111, 112, 0, 1065, 0, 0, 375, 0, 439, - 0, 0, 0, 0, 82, 233, 0, 0, 142, 673, - 0, 0, 142, 33, 0, 142, 142, 142, 0, 103, - 0, 103, 697, 187, 187, 1090, 0, 0, 702, 82, - 0, 0, 640, 7, 8, 9, 10, 382, 12, 13, - 0, 0, 679, 0, 14, 0, 142, 142, 142, 0, - 0, 0, 0, 741, 1263, 640, 0, 0, 746, 17, - 0, 18, 19, 0, 0, 1090, 0, 21, 0, 673, - 754, 755, 22, 756, 0, 142, 24, 0, 576, 103, - 0, 0, 673, 0, 673, 27, 673, 28, 29, 8, - 9, 0, 103, 12, 13, 0, 0, 0, 0, 14, - 0, 1086, 0, 0, 103, 0, 0, 0, 0, 142, - 0, 1087, 0, 0, 17, 0, 18, 1142, 0, 33, - 0, 579, 21, 0, 1088, 581, 0, 79, 680, 673, - 0, 24, 0, 0, 0, 0, 0, 103, 0, 103, - 27, 0, 129, 130, 560, 0, 0, 229, 142, 0, - 692, 693, 433, 435, 439, 198, 199, 200, 703, 0, - 0, 0, 14, 0, 673, 850, 851, 0, 0, 0, - 850, 490, 490, 0, 490, 433, 435, 439, 0, 561, - 19, 0, 673, 0, 0, 21, 0, 0, 0, 0, - 0, 229, 0, 0, 24, 575, 0, 142, 142, 591, - 0, 0, 0, 0, 599, 1238, 0, 0, 82, 650, - 0, 0, 0, 0, 0, 0, 187, 187, 187, 187, - 1090, 0, 0, 375, 187, 0, 0, 198, 199, 200, - 7, 8, 9, 10, 14, 0, 227, 0, 0, 0, - 0, 1090, 1090, 1090, 0, 0, 0, 0, 0, 0, - 229, 0, 19, 142, 229, 0, 0, 21, 692, 693, - 0, 703, 0, 0, 142, 0, 24, 142, 0, 22, - 0, 187, 142, 0, 0, 576, 141, 0, 79, 0, - 0, 868, 27, 0, 28, 29, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 891, 0, - 0, 142, 0, 142, 0, 142, 142, 142, 892, 0, - 0, 0, 142, 0, 0, 0, 33, 142, 579, 0, - 142, 893, 581, 0, 187, 187, 0, 187, 0, 0, - 1004, 0, 1006, 0, 0, 720, 82, 0, 568, 0, - 281, 369, 370, 10, 0, 569, 0, 103, 0, 673, - 0, 673, 721, 673, 7, 8, 722, 10, 382, 12, - 13, 0, 0, 0, 0, 14, 0, 0, 0, 0, - 0, 0, 640, 229, 229, 229, 229, 0, 0, 22, - 17, 0, 18, 19, 20, 0, 232, 0, 21, -493, - 0, 0, 27, 22, 28, 299, 0, 24, 723, 0, - 633, 0, 0, 0, 1039, 1040, 27, 1042, 28, 29, - 0, 0, 724, 0, 725, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 570, 187, 898, 187, - 0, 229, 32, 142, 1059, 0, 0, 0, 673, 439, - 33, 0, 0, 0, 0, 34, 142, 142, 0, 591, - 0, 0, 7, 8, 9, 10, 862, 0, 13, 0, - 0, 0, -493, 0, 0, 0, 0, 0, 599, 0, - 0, 0, 0, 0, 142, 0, 0, 1092, 0, 433, - 435, 439, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 22, 0, 0, 0, 0, 0, 576, 0, 0, - 0, 125, 0, 0, 27, 1090, 28, 29, 0, 142, - 591, 142, 142, 221, 591, 0, 0, 0, 0, 0, - 1086, 0, 7, 8, 9, 10, 0, 0, 478, 0, - 1087, 0, 720, 0, 0, 0, 0, 0, 33, 0, - 579, 1129, 0, 1088, 581, 1090, 1090, 1090, 0, 0, - 0, 0, 142, 1133, 0, 0, 591, 0, 0, 0, - 103, 22, 0, 142, 142, 0, 142, 576, 0, 0, - 0, 0, 0, 0, 27, 187, 28, 29, 0, 7, - 126, 127, 10, 0, 0, 227, 0, 0, 0, 0, - 891, 0, 133, 0, 0, 82, 0, 82, 0, 0, - 892, 0, 985, 82, 82, 0, 0, 0, 33, 0, - 579, 229, 0, 893, 581, 0, 229, 0, 22, 0, - 0, 0, 673, 142, 142, 142, 0, 0, 582, 582, - 582, 27, 0, 28, 29, 142, 1182, 0, 0, 0, - 0, 0, 0, 281, 8, 9, 10, 31, 0, 0, - 8, 9, 0, 382, 12, 13, 0, 32, 679, 0, - 14, 0, 0, 0, 0, 33, 0, 0, 0, 0, - 34, 0, 0, 1195, 0, 17, 0, 18, 19, 0, - 0, 0, 22, 21, 0, 229, 0, 0, 0, 232, - 0, 0, 24, 0, 576, 0, 0, 28, 299, 0, - 0, 27, 0, 129, 130, 0, 0, 142, 0, 142, - 0, 0, 0, 0, 0, 50, 229, 577, 0, 0, - 142, 481, 229, 0, 862, 862, 862, 578, 0, 33, - 1247, 599, 0, 0, 1248, 0, 0, 579, 0, 0, - 580, 581, 50, 50, 680, 149, 0, 50, 0, 0, - 0, 0, 50, 0, 0, 0, 229, 0, 229, 0, - 142, 142, 591, 0, 0, 50, 1262, 50, 0, 7, - 8, 9, 10, 382, 12, 13, 0, 0, 939, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 235, 0, 0, 0, 0, 17, 0, 18, 19, 0, - 0, 0, 862, 21, 0, 1310, 0, 0, 22, 1311, - 0, 0, 24, 0, 0, 0, 229, 0, 0, 0, - 0, 27, 0, 28, 29, 0, 0, 720, 0, 229, - 0, 1329, 1330, 0, 0, 0, 0, 31, 0, 372, - 0, 229, 0, 372, 372, 0, 50, 32, 0, 0, - 50, 0, 235, 0, 50, 33, 0, 149, 149, 149, - 34, 0, 0, 0, 82, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 229, 0, 229, 582, 582, 0, - 582, 0, 0, 0, 0, 0, 0, 859, 50, 50, - 149, 0, 0, 0, 0, 0, 0, 77, 235, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 142, 142, - 0, 142, 0, 0, 0, 0, 0, 50, 0, 0, - 7, 126, 127, 10, 77, 77, 13, 77, 0, 77, - 281, 8, 9, 10, 77, 0, 0, 0, 0, 0, - 582, 0, 582, 582, 0, 582, 0, 77, 0, 77, - 0, 50, 0, 142, 142, 142, 142, 591, 0, 22, - 0, 142, 0, 281, 126, 127, 10, 720, 0, 22, - 0, 0, 27, 0, 28, 29, 232, 0, 862, 862, - 862, 0, 0, 582, 28, 299, 0, 0, 146, 0, - 0, 0, 0, 0, 720, 0, 0, 0, 147, 0, - 0, 0, 22, 0, 0, 0, 33, 0, 142, 232, - 0, 148, 0, 142, 0, 82, 33, 28, 299, 0, - 518, 0, 0, 0, 0, 126, 127, 0, 77, 199, - 200, 0, 77, 0, 0, 14, 77, 372, 0, 77, - 77, 77, 0, 0, 0, 235, 0, 0, 0, 33, - 50, 0, 0, 77, 0, 0, 0, 0, 21, 0, - 0, 142, 142, 0, 142, 372, 582, 24, 0, 576, - 77, 77, 77, 0, 0, 0, 27, 0, 129, 130, - 0, 0, 0, 0, 229, 0, 372, 0, 0, 0, - 0, 0, 577, 0, 0, 50, 0, 0, 0, 77, - 0, 0, 578, 0, 0, 0, 50, 0, 0, 50, - 0, 0, 579, 0, 50, 587, 581, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 585, 589, 592, 0, - 0, 0, 0, 77, 0, 0, 0, 0, 582, 0, - 582, 0, 0, 50, 0, 50, 0, 149, 149, 149, - 0, 582, 0, 0, 50, 859, 859, 859, 0, 50, - 0, 0, 50, 0, 142, 591, 142, 721, 0, 7, - 8, 722, 10, 382, 12, 13, 0, 0, 50, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 582, 582, 582, 0, 17, 0, 18, 19, 0, - 0, 0, 0, 21, 0, 0, 0, 518, 22, 0, - 518, 0, 24, 723, 0, 633, 0, 0, 0, 0, - 0, 27, 0, 28, 29, 518, 518, 518, 598, 725, - 0, 0, 77, 859, 0, 0, 0, 31, 0, 0, - 518, 0, 862, 0, 0, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 33, 7, 8, 9, 10, - 34, 0, 13, 0, 319, 0, 319, 0, 319, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, - 0, 0, 862, 862, 862, 235, 0, 0, 77, 0, - 0, 77, 0, 0, 0, 22, 77, 229, 518, 0, - 0, 0, 0, 0, 1232, 1233, 9, 10, 27, 0, - 28, 29, 142, 319, 0, 319, 50, 0, 0, 0, - 0, 0, 0, 0, 177, 77, 0, 77, 0, 77, - 77, 77, 0, 0, 178, 0, 77, 0, 0, 0, - 0, 77, 33, 22, 77, 0, 0, 179, 0, 0, - 0, 50, 50, 50, 50, 0, 27, 0, 28, 29, - 77, 0, 0, 0, 1234, 0, 0, 0, 0, 0, - 0, 0, 177, 0, 0, 839, 841, 0, 0, 0, - 0, 0, 178, 0, 582, 582, 582, 582, 582, 0, - 33, 0, 582, 0, 50, 179, 0, 0, 50, 0, - 0, 0, 0, 0, 0, 50, 50, 0, 50, 859, - 859, 859, 0, 0, 0, 0, 0, 0, 0, 6, - 0, 7, 8, 9, 10, 11, 12, 13, 0, 0, - 0, 0, 14, 7, 8, 9, 10, 50, 896, 50, - 585, 589, 0, 592, 50, 50, 50, 17, 0, 18, + 396, 399, 36, 404, 121, 37, 588, 921, 597, 646, + 450, 196, 237, 204, 647, 41, 718, 644, 701, 368, + 180, 71, 453, 909, 475, 497, 500, 56, 279, 776, + 336, 58, 337, 901, 36, 1341, 58, 37, 626, 36, + 376, 1106, 37, 208, 466, 469, 102, 41, 139, 143, + 1035, 193, 41, 71, 449, 470, 45, 530, 71, 56, + 455, 458, 100, 457, 56, 1460, 228, 54, 174, 377, + 378, 114, 166, 1203, 237, 374, 844, 388, 277, 1440, + 379, 1364, 329, 844, 329, 567, 329, 739, 45, 1483, + 567, 567, 1511, 45, 487, 1451, 1379, 1457, 672, 54, + 278, 329, 329, 1382, 54, 576, 88, 962, 192, 964, + 1107, -90, 217, 523, 241, 524, 991, 668, 1225, 1226, + 237, 412, 1462, 90, 665, -1, 89, 600, 929, 907, + 386, 329, 1246, 329, 1480, -90, -2, 343, 150, 1512, + 87, 1528, 1470, 91, 601, 602, 487, 414, 204, 1473, + 1204, 760, 71, 1506, 846, 58, 456, 204, 385, 205, + 740, 1108, 478, 395, 398, 1507, 174, 1172, 1483, -90, + -275, 366, 234, -90, 935, 761, 930, 71, 208, 931, + 158, 85, 666, 56, 658, 1515, 208, 383, 1529, 1471, + 910, 1438, 57, 393, 432, 434, 652, 653, 384, 174, + 137, 1530, 956, 1447, 878, -326, -90, -326, -126, 415, + 92, 415, 45, 919, 932, 690, -275, -275, 1315, 429, + 774, 159, 936, 54, 57, 937, 775, 1321, 1322, 57, + 1323, 86, -268, 957, 571, 1341, 992, 106, 281, 369, + 370, 10, 416, 1468, 416, 281, 369, 370, 10, 199, + 200, 397, 400, 998, 879, 14, 353, 662, 1003, 93, + 938, 241, 354, 572, 1190, 430, 1169, 564, 461, 463, + 886, 276, 597, 228, 151, 1080, 1216, 22, 21, 603, + 474, 421, 1344, 150, 22, 107, 993, 24, 1509, 576, + 396, 399, 28, 299, 205, 1344, -549, 27, 422, 28, + 299, 374, 205, 205, 329, 8, 480, 1536, 455, 458, + 153, 704, 630, 882, 1191, 646, 455, 277, 126, 127, + 942, 289, 631, 57, 33, 228, 1217, 423, 458, 205, + 699, 33, 1345, 329, 606, 760, 482, 27, 705, 278, + 196, 204, -549, 173, 1067, 1418, 458, 1070, 57, 509, + 649, 206, 207, 844, 126, 127, 71, 1537, 129, 130, + 588, 137, 385, -44, 1060, 922, 108, 241, -44, 27, + 356, 129, 130, 134, 1422, 1423, 643, 136, 205, -44, + 193, 138, 481, 1094, 1095, 822, 151, 151, 151, 844, + 89, 604, 634, 1083, 208, 823, 412, -589, 645, 622, + 1353, 357, 605, 1259, 456, 204, -125, 129, 130, 824, + -277, 865, 456, 519, -335, 818, 15, 16, 136, 151, + 156, 91, 153, 153, 153, 683, 967, 1062, 929, 844, + 205, 481, 819, 887, 757, 15, 16, 1370, 208, 1375, + -385, 443, 444, -589, -589, 39, 818, 645, -335, 888, + 476, 239, -335, 694, 695, 153, -277, -277, 1395, -589, + 968, 820, 58, 819, 969, 726, 1136, 1397, 1398, -385, + 157, 1130, -271, -385, 163, 239, 930, 39, 87, 931, + 593, -789, 39, 1135, 71, -335, 706, 205, 329, 167, + 734, 329, 820, 1168, 329, 1036, 477, 970, 329, 766, + 766, 766, 766, 171, 239, 172, -549, 564, 718, 750, + 276, 329, 707, 239, 932, 646, 1155, 88, 1157, -385, + 647, 329, 471, 644, 329, -123, 594, 57, 991, 90, + 733, 952, 19, 954, 576, 597, 1316, 89, 958, 852, + 223, 397, 400, 225, 832, 834, 1187, 1188, 87, 91, + 205, 205, -549, 445, 280, 751, 329, 277, 205, 239, + 732, 204, 137, 455, 836, 1011, 340, 946, 472, 642, + 205, 867, 911, 708, 709, 643, 783, 8, 9, 278, + 760, 1488, 683, 487, 844, 853, 854, 342, 205, 1484, + 833, 835, 239, 971, 838, 840, 196, 645, 204, 530, + 519, 1497, 351, 519, 645, 1099, 894, 844, 899, 900, + 837, 1501, 121, 947, 368, 239, 1177, 912, 642, 397, + 771, 1105, 1101, 241, 27, 748, 913, 914, 1514, 1362, + 129, 130, 90, 519, 126, 127, 193, 1103, 204, 972, + 228, 136, 355, 920, 380, 90, 359, 1525, 919, 900, + 1431, 1100, 91, -124, 600, 57, 526, 345, 349, 456, + 360, 412, 1485, 915, -336, 91, 15, 16, 1102, -268, + 1542, 749, 523, 401, 524, 718, 151, 151, 151, 173, + 885, 402, 643, 1104, 999, 1000, 1001, 129, 130, 196, + 959, 860, 902, 126, 127, 412, 1432, 90, -336, 977, + 1163, 1165, -336, -584, 645, 358, 239, 205, 1486, 451, + 452, 233, 153, 153, 153, 761, 284, 91, 783, 8, + 9, 58, -7, 58, 726, 136, 726, 15, 16, 193, + 58, 410, -385, 726, 413, -336, 960, 643, 329, 329, + 329, 425, 643, 71, 205, 71, 129, 130, 155, 734, + 276, 734, 71, 162, 88, 483, 965, 966, 734, 645, + -385, -385, 1137, 239, 645, 994, 15, 16, 642, 94, + 109, 110, 129, 130, 89, 642, 1125, 1126, 1127, 88, + 8, 9, 426, 1165, 205, 976, 986, 1317, 484, 733, + 1453, 963, 1212, 1214, 486, 1474, 233, 1218, 733, 89, + 485, 7, 8, 9, 10, 205, 88, 1150, 1151, 1152, + 90, 766, 8, 9, 1347, 1038, 12, 13, 1348, 732, + 494, 732, 14, 111, 112, 504, 89, 732, 732, 503, + 91, 237, 505, 129, 130, 506, 239, 17, 1256, 18, + 22, 526, 766, 551, 552, 21, 576, 1360, 643, 1008, + 1009, 1010, 683, 27, 24, 28, 29, 481, 1173, 1174, + 517, 1176, 239, 27, 860, 129, 130, 205, 507, 891, + 645, 567, 838, 840, 645, 642, 198, 199, 200, 892, + 1342, 1343, 643, 14, 766, 329, 611, 33, 643, 579, + 443, 1412, 893, 581, 241, 1310, 451, 1413, 634, 443, + 1417, 19, 816, 614, 645, 613, 21, 616, 1084, 1085, + 645, 361, 362, 363, 57, 24, 57, 237, 126, 127, + 412, 412, 617, 57, 618, 629, 622, 656, 683, 977, + 642, 677, -6, 1336, 885, 642, 659, 115, 116, 117, + 396, 399, 766, 696, 700, 743, 239, 744, 329, 412, + 645, 745, 770, 126, 127, 643, 666, 752, 478, 753, + 397, 771, 239, 396, 399, 364, 365, 643, 772, 27, + 830, 129, 130, 773, 831, 761, 775, 645, 676, 847, + 281, 369, 370, 10, 845, 488, 849, 870, 871, 645, + 58, 118, 119, 726, 880, 489, 883, 150, 881, 21, + 643, 889, 643, 1139, 27, 890, 129, 130, 903, 1141, + 1142, -271, 71, 1139, 1144, 976, 908, 1142, 734, 22, + 822, 415, 645, 237, 645, -788, 232, 926, 501, 502, + 823, 927, 126, 1243, 28, 299, -102, 1113, 15, 16, + 928, 642, 934, 510, 824, 642, 511, 517, 944, 512, + 517, 1400, 522, 948, 763, 949, 527, 646, 733, 953, + 698, 955, 1455, 1410, 566, 995, 33, 517, 1017, 1012, + -102, 1013, 1018, 1164, -102, 642, 1019, 234, 920, 1014, + 517, 642, 1015, 643, 790, 129, 130, -122, 732, 115, + 116, 117, 553, 412, 412, 1016, 412, 412, 1020, 412, + 1021, 1022, 1024, 1193, 1194, 645, 683, -102, 1025, 481, + 812, 1030, 1028, 1027, -277, -100, 829, 15, 16, 1400, + 761, 642, 281, 8, 9, 10, 1193, 1194, 645, -277, + -277, 554, 555, 151, -277, 1029, 556, 557, 558, 559, + 1031, 27, 58, 118, 119, 726, 1032, 1033, 642, -100, + -277, 1043, 1046, -100, 1045, 1164, 1478, 1047, 1400, 1055, + 642, 22, -277, -277, 71, -277, 1061, -277, 232, 153, + 734, 126, 127, 151, 668, 1053, 28, 299, 548, 549, + 550, 551, 552, 57, 412, 412, -100, 1054, 1063, 1400, + 1064, 397, 400, 642, 1066, 642, -277, -277, 453, 1073, + -277, 1298, 1531, 1076, 1292, 1079, 1098, 1293, 33, 153, + 733, 766, -277, 1116, 397, 1210, 1122, 94, 109, 110, + 1140, 1145, 27, 71, 129, 130, 1149, 1153, 1158, 1297, + 1159, 1160, 1161, 239, 1166, 239, 482, 1170, 1171, 1175, + 732, 94, 109, 110, 1179, 619, 620, 621, 94, 95, + 96, 1271, 196, 204, 1180, 510, 511, 1181, 1450, 1182, + 487, 1189, 1369, 1185, 1369, 1186, 1319, 1320, 396, 399, + 239, 111, 112, 412, 412, 412, 642, 422, 94, 95, + 96, 1192, 209, 210, 211, 1197, 1211, 1298, 1220, 1221, + 1292, 1224, 193, 1228, 1298, 111, 112, 1292, 1250, 642, + 1293, 1298, 97, 98, 1292, 1251, 1257, 1293, 1261, 71, + 1260, 1265, 212, 1266, 1267, 1297, 71, 94, 109, 110, + 1268, 1203, 1297, 71, 1337, 951, 151, 151, 151, 1297, + 27, 1308, 97, 98, 213, 57, 1361, 1332, 126, 127, + 412, 412, 1333, 478, 1334, 1335, 1346, 1339, 1355, 151, + 151, 151, 1356, 1357, 1365, 1367, 239, 1380, 1402, 996, + 1403, 1407, 153, 153, 153, 1409, 1411, 281, 126, 127, + 10, 111, 112, 113, 1424, 1041, 1426, 1436, 1429, 1448, + 214, 215, 216, 240, 1464, 153, 153, 153, 1465, 27, + 1396, 129, 130, 1492, 57, 1510, 1476, 1298, 1443, 205, + 1292, 1298, 1513, 1477, 1292, 488, 22, 1293, 517, 1479, + 1466, 329, 1496, 232, 1503, 489, 94, 95, 96, 71, + 278, 28, 299, 71, 643, 1297, 1516, 1443, 1517, 1297, + 1298, 694, 695, 1292, 1519, 950, 1293, 239, 1522, 1527, + 1532, 1298, 1534, 1535, 1292, 412, 645, 1293, 1539, 278, + 1540, 1544, 71, 33, 1298, 1545, 403, 1292, 1297, 1, + 1293, 661, 239, 71, 5, 628, 1081, 408, 27, 1297, + 97, 98, 99, 1452, 997, 409, 71, 431, 1113, 1002, + 57, 987, 1297, 1443, 1198, 339, 1298, 57, 389, 1292, + 448, 1541, 1293, 1490, 57, 1434, 493, 79, 1372, 1075, + 1074, 465, 925, 1222, 1123, 278, 1128, 103, 71, 1147, + 873, 361, 362, 363, 1297, 239, 989, 1072, 132, 397, + 1210, 1245, 446, 367, 141, 141, 817, 141, 573, 79, + 1378, 1307, 1498, 1298, 79, 1475, 1292, 1469, 1523, 1293, + 15, 16, 1521, 1115, 205, -385, 1309, 187, 0, 79, + 115, 708, 709, 640, 0, 71, 0, 220, 0, 0, + 0, 1297, 0, 27, 103, 364, 365, 0, 0, 1044, + 595, 8, 9, -385, -385, 243, 103, 0, -385, 0, + 0, 1056, 0, 1057, 1132, 1133, 0, 0, 0, 0, + 57, 276, -545, 0, 57, -545, 510, 511, 103, 0, + 0, 0, 640, 0, 118, 119, 289, 596, 0, 22, + 0, 0, 673, 1146, 151, 0, 0, 642, 0, 673, + 276, 132, 27, 57, 129, 130, 132, 0, 79, 0, + 0, 849, 141, 0, 57, 391, 141, 0, 0, 141, + 141, 141, 0, -545, 0, -545, -545, 57, -545, 0, + 153, 199, 200, 79, 151, 151, 151, 14, 0, -545, + 0, -545, 517, 0, 126, 127, 0, 0, 199, 200, + 187, 187, 187, 0, 14, 0, 276, -545, -545, 57, + 21, -545, 0, 673, 0, 0, 0, 0, 0, 24, + 153, 153, 153, -545, 0, 0, 0, 21, 0, 187, + 0, 0, 0, 0, 0, 0, 24, 0, 576, 1252, + 1253, 1254, 1255, 0, 464, 27, 0, 129, 130, 1258, + 0, 0, 103, 0, 0, 0, 57, 94, 109, 110, + 473, 577, 0, 141, 0, 0, 0, 1154, 0, 1156, + 0, 578, 697, 126, 127, 0, 0, 673, 702, 673, + 673, 579, 640, 0, 587, 581, 0, 1231, 1232, 640, + 1241, 1242, 0, 1244, 0, 0, 22, 0, 0, 0, + 0, 103, 490, 741, 0, 0, 673, 0, 746, 0, + 0, 111, 112, 673, 128, 0, 1178, 0, 0, 0, + 754, 755, 1184, 756, 27, 0, 129, 130, 0, 0, + 0, 8, 9, 0, 382, 12, 13, 0, 0, 679, + 0, 14, 126, 127, 0, 103, 0, 13, 0, 574, + 0, 490, 490, 590, 0, 0, 17, 0, 18, 19, + 0, 0, 79, 0, 21, 0, 0, 0, 1359, 0, + 0, 0, 0, 24, 0, 0, 0, 132, 1313, 1314, + 510, 511, 27, 0, 129, 130, 576, 0, 0, 640, + 0, 0, 1223, 27, 0, 129, 130, 1227, 132, 115, + 708, 709, 0, 710, 103, 0, 0, 187, 103, 577, + 0, 0, 0, 0, 0, 850, 851, 0, 141, 578, + 850, 141, 0, 0, 0, 680, 141, 711, 0, 579, + 0, 0, 580, 581, 712, 0, 0, 433, 435, 439, + 0, 1408, 0, 0, 640, 0, 1262, 0, 0, 640, + 0, 27, 0, 118, 119, 187, 0, 187, 0, 187, + 187, 187, 0, 0, 0, 0, 187, 1387, 1388, 1389, + 0, 187, 0, 0, 187, 454, 199, 200, 0, 673, + 674, 0, 14, 790, 1441, 0, 0, 681, 0, 0, + 79, 0, 0, 7, 126, 127, 10, 517, 0, 13, 19, 0, 0, 0, 0, 21, 0, 0, 0, 0, - 22, 0, 0, 0, 24, 0, 0, 407, 598, 0, - 0, 518, 22, 27, 0, 28, 29, 508, 0, 30, - 0, 589, 0, 0, 0, 27, 0, 28, 29, 31, - 0, 1367, 582, 582, 0, 582, 0, 0, 77, 32, - 0, 177, 0, 0, 8, 9, 0, 33, 12, 227, - 0, 178, 34, 0, 14, 319, 0, 0, 0, 33, - 0, 0, 0, 0, 179, 0, 0, 0, 0, 17, - 0, 18, 0, 77, 77, 77, 77, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 576, 0, - 0, 0, 0, 0, 0, 27, 0, 129, 130, 0, - 0, 0, 0, 0, 589, 0, 518, 518, 518, 0, - 0, 577, 235, 0, 0, 0, 77, 0, 0, 0, - 77, 578, 0, 0, 0, 0, 0, 77, 77, 0, - 77, 579, 0, 0, 580, 581, 0, 0, 0, 671, - 675, 0, 50, 50, 149, 0, 0, 675, 0, 235, - 8, 9, 0, 0, 12, 13, 0, 0, 0, 77, - 14, 77, 0, 0, 0, 0, 77, 77, 77, 0, - 0, 0, 0, 0, 0, 17, 1051, 18, 1052, 0, - 0, 0, 0, 21, 1112, 0, 0, 0, 0, 1058, - 0, 0, 24, 839, 841, 0, 0, 0, 0, 0, - 0, 27, 0, 129, 130, 0, 0, 0, 0, 0, - 319, 675, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 839, - 841, 7, 126, 127, 10, 235, 0, 478, 0, 0, - 816, 0, 0, 319, 0, 671, 50, 0, 787, 788, - 0, 792, 793, 794, 795, 796, 797, 798, 799, 800, - 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, - 22, 0, 0, 0, 0, 675, 0, 675, 675, 0, - 0, 0, 0, 27, 0, 28, 29, 0, 0, 0, - 7, 8, 9, 10, 0, 598, 227, 0, 0, 31, - 0, 0, 0, 0, 675, 0, 0, 0, 0, 32, - 0, 675, 0, 0, 0, 0, 235, 33, 1232, 126, - 127, 10, 34, 0, 77, 77, 77, 0, 0, 22, - 0, 875, 877, 0, 0, 50, 50, 149, 149, 149, - 0, 235, 27, 50, 28, 29, 0, 0, 0, 126, - 127, 154, 0, 199, 200, 0, 0, 22, 177, 14, - 1112, 1112, 1112, 0, 0, 0, 1114, 0, 178, 0, - 27, 188, 28, 29, 0, 0, 33, 0, 1234, 0, - 0, 179, 21, 0, 0, 0, 31, 671, 0, 0, - 50, 24, 0, 576, 0, 50, 32, 50, 0, 0, - 27, 0, 129, 130, 33, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, - 0, 0, 1051, 1052, 839, 841, 578, 0, 77, 0, - 1058, 0, 0, 0, 0, 0, 579, 0, 0, 580, - 581, 0, 961, 50, 50, 0, 50, 839, 841, 8, - 9, 0, 0, 12, 227, 0, 0, 0, 0, 14, - 319, 319, 319, 154, 154, 154, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 18, 675, 0, 0, - 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 24, 0, 0, 188, 188, 440, 0, 0, 1023, - 27, 0, 129, 130, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 77, 77, 77, - 77, 77, 0, 188, 0, 77, 7, 8, 9, 10, - 1051, 1052, 13, 1058, 0, 0, 671, 675, 0, 0, - 0, 0, 1114, 1114, 1114, 0, 50, 50, 50, 0, - 675, 0, 675, 0, 675, 0, 0, 8, 9, 0, - 382, 12, 13, 0, 0, 22, 0, 14, 0, 0, - 0, 0, 77, 0, 0, 0, 0, 77, 27, 77, - 28, 29, 17, 0, 18, 19, 0, 1071, 8, 9, - 21, 189, 12, 190, 436, 0, 491, 675, 14, 632, - 0, 0, 633, 0, 437, 0, 0, 319, 27, 0, - 129, 130, 33, 17, 0, 18, 19, 438, 0, 0, - 1093, 21, 0, 0, 1112, 77, 77, 0, 77, 0, - 24, 0, 675, 0, 0, 0, 0, 0, 0, 27, - 0, 129, 130, 0, 0, 584, 584, 584, 0, 0, - 675, 0, 0, 0, 0, 0, 0, 7, 8, 9, - 10, 198, 199, 200, 1112, 1112, 1112, 0, 14, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 186, 19, 0, 0, 0, - 0, 21, 1137, 0, 50, 0, 22, 0, 0, 0, - 24, 188, 576, 0, 348, 350, 0, 0, 0, 27, - 238, 28, 29, 242, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 177, 0, 0, 77, 77, - 77, 0, 0, 0, 238, 178, 344, 0, 0, 0, - 0, 671, 671, 33, 0, 1166, 0, 0, 1373, 188, - 0, 188, 0, 440, 440, 440, 0, 0, 0, 0, - 188, 0, 0, 0, 0, 188, 0, 0, 188, 0, - 0, 0, 0, 7, 8, 9, 10, 189, 12, 190, - 0, 0, 0, 0, 14, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 17, - 0, 18, 19, 0, 0, 0, 1114, 21, 186, 186, - 186, 0, 22, 0, 0, 0, 24, 675, 447, 675, - 0, 675, 0, 0, 671, 27, 0, 28, 29, 0, - 0, 191, 0, 671, 671, 0, 0, 186, 671, 0, - 0, 31, 0, 0, 0, 0, 1114, 1114, 1114, 0, - 0, 32, 1228, 1229, 0, 0, 0, 0, 0, 33, - 242, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 238, 0, 77, 0, 671, 0, - 0, 825, 0, 721, 0, 7, 8, 722, 10, 382, - 12, 13, 0, 0, 584, 584, 14, 584, 0, 0, - 0, 0, 0, 0, 584, 0, 675, 521, 0, 0, - 0, 17, 0, 18, 19, 20, 0, 0, 0, 21, - -494, 0, 188, 0, 22, 0, 0, 0, 24, 723, - 0, 633, 0, 0, 0, 671, 0, 27, 0, 28, - 29, 0, 0, 724, 0, 725, 0, 0, 0, 0, - 0, 1317, 0, 31, 0, 0, 0, 895, 0, 895, - 895, 0, 584, 32, 0, 238, 242, 7, 126, 127, - 10, 33, 0, 671, 0, 0, 34, 0, 0, 639, + 0, 1328, 1329, 1441, 24, 0, 0, 0, 973, 974, + 9, 10, 0, 0, 0, 0, 1338, 103, 103, 103, + 103, 0, 22, 0, 1420, 1421, 0, 0, 0, 673, + 0, 0, 0, 0, 0, 27, 0, 28, 29, 0, + 0, 758, 673, 0, 673, 640, 673, 22, 0, 640, + 0, 31, 0, 522, 0, 0, 0, 1502, 0, 1441, + 27, 32, 28, 29, 1383, 1384, 1131, 0, 975, 33, + 1004, 0, 1006, 0, 34, 103, 177, 490, 0, 640, + 0, 1520, 0, 1393, 1394, 640, 178, 0, 574, 673, + 490, 490, 0, 590, 33, 790, 0, 0, 0, 179, + 861, 0, 0, 0, 863, 811, 0, 813, 814, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 187, 0, + 0, 0, 0, 0, 673, 640, 94, 109, 110, 1508, + 209, 210, 211, 0, 348, 350, 0, 0, 0, 126, + 127, 864, 673, 0, 1039, 1040, 0, 1042, 0, 115, + 708, 709, 640, 187, 898, 187, 187, 220, 590, 0, + 212, 0, 0, 0, 640, 0, 7, 8, 9, 10, + 0, 0, 13, 0, 1059, 510, 511, 711, 0, 0, + 111, 112, 692, 576, 693, 0, 433, 435, 439, 0, + 27, 0, 129, 130, 0, 0, 187, 640, 703, 640, + 898, 27, 0, 118, 119, 22, 577, 187, 187, 0, + 187, 576, 198, 199, 200, 0, 578, 1092, 27, 14, + 28, 29, 0, 0, 0, 0, 579, 0, 0, 580, + 581, 198, 199, 200, 891, 0, 132, 19, 14, 79, + 0, 79, 21, 0, 892, 0, 984, 79, 79, 0, + 0, 24, 33, 0, 579, 103, 19, 893, 581, 0, + 103, 21, 7, 8, 231, 10, 650, 490, 490, 490, + 24, 568, 0, 281, 369, 370, 10, 0, 569, 490, + 640, 1129, 0, 0, 0, 868, 546, 547, 548, 549, + 550, 551, 552, 1134, 82, 0, 0, 0, 0, 0, + 0, 22, 0, 640, 105, 0, 0, 0, 232, 673, + 0, 673, 22, 673, 125, 133, 28, 29, 0, 232, + 0, 142, 142, 0, 142, 27, 82, 28, 299, 103, + 0, 82, 0, 0, 0, 0, 0, 521, 0, 0, + 233, 0, 0, 0, 142, 0, 82, 0, 33, 0, + 0, 490, 0, 490, 221, 0, 0, 0, 0, 570, + 103, 229, 0, 0, 490, 0, 103, 1037, 861, 861, + 861, 0, 0, 229, 0, 1065, 1183, 0, 0, 0, + 1048, 0, 1049, 0, 1050, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 673, + 103, 0, 103, 0, 187, 187, 1090, 0, 0, 639, + 126, 127, 0, 1196, 199, 200, 0, 0, 375, 0, + 14, 0, 0, 0, 0, 82, 0, 1078, 0, 142, + 0, 0, 0, 142, 0, 0, 142, 142, 142, 0, + 0, 0, 0, 21, 692, 693, 1090, 703, 0, 0, + 82, 0, 24, 0, 576, 0, 0, 0, 682, 0, + 103, 27, 1096, 129, 130, 0, 0, 142, 142, 142, + 0, 1248, 0, 103, 0, 1249, 984, 577, 0, 0, + 0, 0, 0, 982, 0, 103, 0, 578, 0, 0, + 0, 0, 0, 0, 0, 0, 142, 579, 1143, 0, + 580, 581, 0, 0, 0, 0, 0, 1263, 79, 0, + 0, 0, 8, 9, 0, 0, 12, 13, 103, 0, + 103, 0, 14, 0, 759, 0, 0, 762, 0, 0, + 142, 764, 765, 767, 768, 769, 0, 17, 0, 18, + 0, 0, 0, 0, 521, 21, 1311, 0, 0, 0, + 1312, 0, 490, 490, 24, 490, 0, 786, 0, 0, + 0, 0, 0, 27, 0, 129, 130, 560, 229, 142, + 0, 0, 1330, 1331, 0, 0, 0, 0, 7, 8, + 9, 10, 0, 673, 0, 0, 0, 0, 0, 815, + 0, 0, 0, 0, 0, 0, 0, 187, 187, 187, + 187, 1090, 561, 0, 0, 187, 0, 0, 842, 0, + 0, 0, 229, 0, 0, 842, 575, 22, 142, 142, + 591, 640, 1090, 1090, 1090, 599, 0, 0, 0, 82, + 27, 0, 28, 29, 0, 0, 176, 0, 0, 0, + 0, 433, 435, 439, 375, 0, 177, 1199, 0, 1200, + 0, 1201, 0, 187, 0, 0, 178, 0, 141, 0, + 79, 0, 0, 0, 33, 0, 0, 0, 0, 179, + 0, 229, 0, 0, 142, 229, 0, 7, 126, 127, + 10, 0, 0, 439, 0, 142, 0, 0, 142, 0, + 0, 0, 0, 142, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 187, 187, 0, 187, + 0, 0, 0, 982, 0, 639, 22, 0, 0, 0, + 0, 0, 142, 232, 142, 0, 142, 142, 142, 103, + 0, 28, 29, 142, 0, 0, 0, 1264, 142, 8, + 9, 142, 382, 12, 13, 0, 0, 679, 0, 14, + 0, 0, 0, 0, 0, 233, 720, 82, 0, 0, + 0, 0, 0, 33, 17, 0, 18, 19, 0, 0, + 682, 0, 21, 0, 0, 682, 0, 0, 0, 0, + 0, 24, 0, 576, 0, 7, 8, 9, 10, 0, + 27, 0, 129, 130, 229, 229, 229, 229, 0, 0, + 0, 0, 281, 8, 9, 10, 577, 0, 0, 187, + 898, 187, 0, 0, 0, 0, 578, 0, 0, 281, + 8, 9, 10, 0, 22, 0, 579, 0, 0, 580, + 581, 232, 0, 680, 692, 693, 433, 435, 439, 28, + 29, 22, 703, 0, 1034, 0, 0, 0, 232, 0, + 0, 0, 229, 0, 142, 0, 28, 299, 22, 433, + 435, 439, 0, 233, 0, 232, 0, 142, 142, 0, + 591, 33, 0, 28, 299, 786, 0, 862, 0, 0, + 233, 682, 0, 0, 0, 842, 0, 1090, 33, 599, + 1239, 0, 0, 0, 0, 142, 0, 481, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 7, 126, + 127, 10, 0, 0, 227, 639, 0, 1082, 0, 0, + 0, 842, 125, 0, 0, 0, 0, 1090, 1090, 1090, + 142, 591, 142, 142, 221, 591, 0, 0, 0, 0, + 0, 0, 103, 692, 693, 0, 703, 22, 0, 0, + 0, 0, 0, 720, 0, 0, 0, 187, 0, 0, + 27, 842, 28, 29, 0, 0, 582, 582, 582, 0, + 0, 0, 0, 142, 0, 1118, 31, 591, 0, 0, + 0, 1124, 0, 0, 142, 142, 32, 142, 682, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 34, + 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 82, 0, 82, 7, + 126, 127, 10, 985, 82, 82, 0, 0, 0, 0, + 0, 0, 229, 682, 0, 682, 0, 229, 0, 0, + 0, 0, 0, 0, 142, 142, 142, 721, 0, 7, + 8, 722, 10, 382, 12, 13, 142, 0, 22, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 0, 28, 29, 17, 0, 18, 19, 20, + 0, 0, 0, 21, -492, 0, 0, 146, 22, 0, + 0, 0, 24, 723, 0, 633, 0, 147, 0, 0, + 0, 27, 0, 28, 29, 33, 229, 724, 0, 725, + 148, 0, 0, 0, 0, 0, 842, 31, 0, 0, + 0, 0, 0, 0, 439, 0, 0, 32, 142, 0, + 142, 0, 0, 0, 0, 33, 0, 229, 0, 842, + 34, 142, 0, 229, 0, 862, 862, 862, 0, 0, + 0, 0, 599, 0, 0, 0, 0, -492, 0, 0, + 0, 0, 0, 0, 433, 435, 439, 0, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 229, 0, 229, + 0, 142, 142, 591, 0, 0, 0, 0, 7, 126, + 127, 10, 0, 0, 13, 0, 0, 50, 50, 0, + 149, 0, 50, 0, 585, 589, 592, 50, 0, 0, + 0, 0, 0, 0, 0, 582, 582, 0, 582, 0, + 50, 0, 50, 862, 0, 859, 0, 22, 0, 0, + 0, 0, 7, 8, 9, 10, 0, 229, 227, 0, + 27, 0, 28, 29, 1118, 235, 0, 0, 720, 0, + 229, 0, 0, 985, 0, 0, 146, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 147, 0, 0, 0, + 0, 22, 0, 0, 33, 0, 0, 576, 582, 148, + 582, 582, 0, 582, 27, 82, 28, 29, 0, 0, + 0, 0, 0, 0, 372, 229, 0, 229, 372, 372, + 891, 50, 0, 0, 0, 50, 0, 235, 0, 50, + 892, 0, 149, 149, 149, 0, 0, 0, 33, 0, + 579, 582, 0, 893, 581, 0, 50, 0, 0, 142, + 142, 0, 142, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 50, 149, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 10, 0, 0, - 478, 0, 0, -494, 0, 0, 0, 0, 0, 1353, - 895, 0, 0, 0, 0, 0, 22, 0, 0, 0, - 0, 188, 188, 0, 188, 186, 0, 0, 0, 27, - 0, 28, 29, 22, 0, 0, 0, 0, 682, 0, - 0, 0, 1384, 1385, 0, 146, 27, 0, 28, 29, - 0, 1390, 0, 0, 0, 147, 0, 0, 0, 0, - 188, 0, 177, 33, 0, 0, 0, 0, 148, 0, - 0, 0, 178, 186, 0, 186, 0, 186, 186, 186, - 33, 491, 491, 491, 186, 179, 0, 0, 0, 186, - 0, 0, 186, 584, 0, 7, 8, 9, 10, 0, - 675, 0, 0, 0, 759, 0, 0, 762, 0, 0, - 0, 764, 765, 767, 768, 769, 75, 0, 0, 0, - 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, - 1444, 0, 0, 0, 22, 0, 0, 786, 0, 0, - 0, 0, 0, 140, 144, 0, 0, 27, 75, 28, - 29, 0, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 436, 0, 584, 0, 584, 197, 815, - 0, 0, 0, 437, 0, 0, 0, 0, 584, 0, - 0, 33, 584, 584, 584, 0, 438, 0, 842, 0, - 0, 0, 0, 0, 0, 842, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 721, 0, - 7, 8, 722, 10, 382, 12, 13, 0, 895, 895, - 1091, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 242, 0, 0, 0, 17, 0, 18, 19, - 20, 0, 0, 0, 21, -496, 186, 387, 0, 22, - 0, 390, 671, 24, 723, 392, 633, 0, 0, 0, - 1091, 0, 27, 0, 28, 29, 0, 0, 724, 0, - 725, 0, 75, 7, 8, 9, 10, 0, 31, 0, - 0, 186, 0, 186, 186, 0, 0, 0, 32, 140, - 144, 0, 0, 0, 0, 639, 33, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 22, 0, 0, 0, 0, 0, -496, 0, - 0, 0, 0, 0, 186, 27, 0, 28, 29, 0, - 0, 0, 0, 0, 0, 186, 186, 0, 186, 0, - 721, 177, 7, 8, 722, 10, 382, 12, 13, 0, - 682, 178, 479, 14, 0, 682, 0, 0, 0, 33, - 0, 242, 0, 0, 179, 0, 825, 825, 17, 825, - 18, 19, 20, 0, 186, 0, 21, -495, 0, 0, - 0, 22, 0, 0, 0, 24, 723, 0, 633, 0, + 13, 0, 50, 0, 142, 142, 142, 142, 591, 0, + 8, 9, 142, 382, 12, 13, 0, 0, 720, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 862, + 862, 862, 0, 22, 582, 17, 50, 18, 19, 576, + 0, 0, 0, 21, 0, 720, 27, 0, 28, 29, + 0, 0, 632, 0, 0, 633, 0, 0, 0, 0, + 142, 27, 1086, 129, 130, 142, 0, 82, 0, 0, + 0, 0, 1087, 0, 521, 0, 0, 0, 0, 0, + 33, 0, 579, 839, 841, 1088, 581, 639, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 7, 8, 9, 10, 518, 582, 13, 582, 0, + 0, 0, 0, 142, 142, 77, 142, 0, 0, 582, + 0, 0, 372, 859, 859, 859, 0, 0, 0, 0, + 235, 0, 0, 0, 0, 50, 229, 0, 0, 0, + 22, 0, 77, 77, 0, 77, 896, 77, 585, 589, + 372, 592, 77, 27, 0, 28, 29, 0, 0, 582, + 582, 582, 0, 0, 0, 77, 0, 77, 0, 177, + 0, 372, 0, 0, 0, 0, 0, 0, 0, 178, + 50, 0, 0, 973, 974, 9, 10, 33, 0, 589, + 0, 50, 179, 0, 50, 0, 0, 0, 0, 50, + 0, 859, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 142, 591, 142, 0, + 0, 0, 22, 7, 126, 127, 10, 0, 50, 478, + 50, 0, 149, 149, 149, 27, 0, 28, 29, 50, + 0, 0, 0, 975, 50, 0, 77, 50, 0, 0, + 77, 177, 0, 0, 77, 0, 0, 77, 77, 77, + 0, 178, 22, 50, 0, 0, 0, 0, 0, 33, + 0, 77, 589, 0, 179, 27, 0, 28, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 77, + 77, 31, 518, 0, 862, 518, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 33, + 518, 518, 518, 0, 34, 0, 0, 77, 0, 0, + 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, + 0, 0, 0, 0, 862, 862, 862, 0, 0, 0, + 0, 0, 0, 0, 1051, 0, 1052, 0, 0, 229, + 0, 77, 582, 582, 582, 582, 582, 1058, 0, 0, + 582, 839, 841, 0, 142, 0, 0, 0, 0, 0, + 235, 0, 0, 0, 0, 0, 0, 859, 859, 859, + 0, 0, 0, 518, 0, 0, 0, 721, 0, 7, + 8, 722, 10, 382, 12, 13, 0, 839, 841, 0, + 14, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 0, 0, 21, -493, 0, 0, 0, 22, 0, + 0, 0, 24, 723, 0, 633, 50, 50, 50, 50, + 0, 27, 0, 28, 29, 0, 598, 724, 0, 725, + 77, 0, 0, 0, 0, 0, 0, 31, 0, 0, + 0, 582, 582, 0, 582, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 50, + 34, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 50, 50, 0, 50, 0, 77, 0, -493, 0, 0, + 0, 0, 0, 0, 0, 0, 77, 0, 0, 77, + 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 50, 0, 0, 0, 0, 50, + 50, 50, 7, 8, 9, 10, 0, 0, 478, 0, + 0, 0, 0, 77, 0, 77, 0, 77, 77, 77, + 0, 0, 0, 0, 77, 0, 518, 0, 0, 77, + 0, 0, 77, 0, 0, 0, 0, 0, 319, 0, + 319, 22, 319, 0, 1404, 0, 0, 576, 77, 0, 0, 0, 0, 0, 27, 0, 28, 29, 0, 0, - 724, 0, 725, 0, 0, 0, 0, 0, 0, 0, - 31, 895, 895, 1091, 1091, 1091, 1403, 0, 0, 895, - 32, 0, 0, 0, 1034, 0, 0, 0, 33, 0, - 0, 0, 0, 34, 0, 0, 1091, 1091, 1091, 0, + 1051, 1052, 839, 841, 0, 0, 0, 0, 1058, 0, + 891, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 892, 0, 0, 0, 0, 839, 841, 319, 33, 319, + 579, 0, 0, 893, 581, 1405, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 0, 0, + 0, 518, 518, 518, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -495, 607, 0, 0, 0, 786, 0, 0, 0, 0, - 0, 682, 0, 0, 0, 842, 188, 1404, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 0, 0, 0, 0, 0, 639, 0, 1082, 0, 0, - 0, 842, 238, 242, 238, 0, 0, 654, 0, 0, - 655, 0, 0, 0, 0, 657, 0, 0, 0, 895, - 895, 0, 895, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 186, 186, 1089, 0, 0, 0, 0, 238, - 0, 842, 0, 0, 390, 0, 392, 0, 8, 9, - 0, 0, 12, 13, 0, 1118, 0, 0, 14, 0, - 479, 1124, 0, 0, 0, 0, 0, 0, 682, 0, - 0, 0, 0, 17, 1089, 18, 101, 0, 0, 738, - 682, 21, 0, 0, 0, 0, 120, 101, 0, 0, - 24, 0, 0, 101, 101, 0, 101, 0, 0, 27, - 0, 129, 130, 0, 721, 0, 7, 8, 722, 10, - 382, 12, 13, 682, 0, 682, 0, 14, 0, 0, - 0, 0, 188, 0, 188, 447, 219, 0, 0, 0, - 0, 0, 17, 0, 18, 19, 20, 0, 0, 0, - 21, 0, 0, 0, 0, 22, 0, 0, 0, 24, - 723, 0, 633, 0, 0, 0, 0, 0, 27, 0, - 28, 29, 0, 0, 724, 0, 725, 0, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 120, 0, 120, 0, 0, - 101, 0, 33, 0, 101, 101, 842, 34, 0, 0, - 440, 101, 0, 101, 101, 101, 238, 0, 101, 101, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 842, - 0, 0, 0, 0, 0, 186, 186, 186, 186, 1089, - 0, 1194, 0, 186, 0, 0, 0, 0, 0, 0, - 440, 440, 440, 0, 0, 0, 0, 0, 0, 0, - 1089, 1089, 1089, 897, 0, 0, 0, 0, 0, 8, - 9, 0, 382, 12, 13, 0, 0, 1453, 0, 14, - 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 186, 0, 462, 101, 17, 0, 18, 19, 0, 0, - 0, 0, 21, 0, 0, 0, 0, 0, 0, 940, - 0, 24, 101, 0, 0, 0, 654, 655, 0, 657, - 27, 0, 129, 130, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 1118, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 186, 186, 14, 186, 0, 738, 0, - 738, 101, 0, 0, 0, 983, 990, 738, 15, 16, - 17, 0, 18, 19, 20, 0, 0, 0, 21, 0, - 0, 0, 0, 22, 0, 0, 23, 24, 25, 0, - 26, 0, 0, 0, 0, 0, 27, 0, 28, 29, - 0, 0, 30, 0, 0, 0, 0, 0, 101, 0, - 101, 101, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 244, 0, 0, 8, 9, - 33, 0, 12, 13, 0, 34, 101, 0, 14, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 18, 186, 101, 186, 0, - 0, 21, 0, 245, 246, 0, 0, 0, 0, 0, - 24, 0, 247, 101, 0, 0, 0, 101, 0, 27, - 101, 129, 130, 0, 248, 101, 0, 0, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 0, - 0, 270, 271, 272, 0, 0, 273, 0, 0, 274, - 0, 0, 0, 140, 144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1089, 0, 275, 0, 0, 0, - 0, 0, 0, 521, 0, 0, 101, 0, 713, 0, - 0, 0, 0, 0, 0, 0, 639, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 101, 0, 1089, 1089, 1089, 0, 0, 0, - 0, 0, 0, 513, 0, 281, 8, 9, 10, 382, - 12, 282, 283, 284, 679, 285, 14, 0, 0, 0, - 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, + 0, 0, 7, 8, 9, 10, 0, 721, 227, 7, + 8, 722, 10, 382, 12, 13, 598, 50, 50, 149, + 14, 0, 0, 0, 235, 0, 0, 0, 0, 1051, + 1052, 0, 1058, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 21, -495, 0, 77, 0, 22, 0, + 0, 0, 24, 723, 27, 633, 28, 29, 0, 1112, + 0, 27, 0, 28, 29, 0, 0, 724, 0, 725, + 177, 0, 0, 0, 0, 0, 0, 31, 0, 0, + 178, 77, 77, 77, 77, 0, 0, 32, 33, 50, + 0, 0, 0, 179, 0, 33, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 508, 0, 0, 0, 0, 0, -495, 0, 0, + 0, 50, 0, 0, 77, 0, 0, 0, 77, 0, + 0, 0, 0, 0, 0, 77, 77, 0, 77, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, + 0, 0, 0, 0, 7, 8, 9, 10, 382, 12, + 13, 0, 0, 679, 0, 14, 0, 77, 0, 77, + 0, 0, 0, 0, 77, 77, 77, 0, 0, 0, + 17, 0, 18, 19, 0, 0, 0, 0, 21, 0, + 0, 235, 0, 22, 0, 0, 0, 24, 0, 576, + 0, 0, 0, 0, 0, 0, 27, 0, 28, 29, + 50, 50, 149, 149, 149, 0, 235, 0, 50, 0, + 0, 0, 1086, 7, 8, 9, 10, 0, 0, 13, + 0, 0, 1087, 671, 675, 1112, 1112, 1112, 0, 0, + 33, 675, 579, 8, 9, 1088, 581, 12, 227, 680, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 154, 0, 0, 50, 0, 17, 0, + 18, 50, 0, 50, 0, 27, 21, 28, 29, 0, + 0, 0, 0, 188, 0, 24, 0, 0, 0, 0, + 0, 436, 0, 0, 27, 0, 129, 130, 0, 0, + 0, 437, 0, 598, 319, 675, 0, 0, 0, 33, + 0, 0, 0, 0, 438, 0, 0, 0, 0, 50, + 50, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 77, 77, 77, 0, 0, 319, 0, 671, + 0, 0, 787, 788, 0, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, + 807, 808, 809, 810, 0, 0, 0, 0, 0, 675, + 0, 675, 675, 0, 1114, 154, 154, 154, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 9, 0, 382, + 12, 13, 0, 0, 1454, 0, 14, 0, 675, 0, + 0, 0, 0, 0, 77, 675, 188, 188, 440, 0, + 0, 17, 0, 18, 19, 0, 0, 0, 0, 21, + 0, 0, 50, 50, 50, 875, 877, 0, 24, 0, + 0, 0, 0, 0, 0, 188, 77, 27, 0, 129, + 130, 0, 721, 0, 7, 8, 722, 10, 382, 12, + 13, 0, 8, 9, 0, 14, 12, 13, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 18, 19, 20, 0, 0, 17, 21, 18, + 0, 671, 0, 22, 0, 21, 0, 24, 723, 0, + 633, 0, 0, 0, 24, 0, 27, 0, 28, 29, + 1112, 0, 724, 27, 725, 129, 130, 0, 491, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 77, 77, 77, 77, 77, + 33, 0, 0, 77, 0, 34, 961, 0, 0, 0, + 1112, 1112, 1112, 0, 0, 0, 0, 0, 0, 0, + 1114, 1114, 1114, 0, 319, 319, 319, 584, 584, 584, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 50, 675, 0, 7, 8, 9, 10, 382, 12, 13, + 0, 77, 939, 0, 14, 0, 77, 0, 77, 0, + 0, 0, 0, 1023, 0, 0, 0, 0, 0, 17, + 0, 18, 19, 0, 0, 0, 0, 21, 0, 0, + 0, 0, 22, 188, 0, 0, 24, 0, 0, 0, + 0, 0, 186, 0, 0, 27, 0, 28, 29, 0, + 671, 675, 0, 0, 77, 77, 0, 77, 0, 0, + 0, 31, 0, 0, 675, 0, 675, 238, 675, 0, + 242, 32, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 188, 0, 188, 34, 440, 440, 440, 0, 0, + 0, 238, 188, 344, 0, 0, 0, 188, 0, 0, + 188, 1071, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 675, 0, 0, 0, 0, 0, 0, 8, 9, + 0, 319, 12, 227, 7, 8, 9, 10, 14, 0, + 478, 0, 0, 0, 1093, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 18, 675, 126, 127, 0, + 0, 21, 227, 0, 0, 0, 0, 77, 77, 77, + 24, 0, 576, 22, 675, 186, 186, 186, 0, 27, + 0, 129, 130, 0, 0, 447, 27, 0, 28, 29, + 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, + 0, 576, 177, 0, 186, 578, 0, 0, 27, 0, + 129, 130, 178, 0, 0, 579, 1138, 0, 580, 581, + 33, 0, 0, 825, 577, 179, 0, 242, 1233, 1234, + 9, 10, 0, 0, 578, 0, 584, 584, 0, 584, + 0, 238, 0, 0, 579, 1114, 584, 580, 581, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 188, 671, 671, 22, 0, 1167, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 0, 1114, 1114, 1114, 1235, 0, + 0, 0, 0, 0, 0, 0, 177, 0, 0, 895, + 0, 895, 895, 0, 584, 0, 178, 0, 0, 0, + 0, 0, 75, 0, 33, 77, 0, 0, 0, 179, + 1233, 126, 127, 10, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 242, 0, 0, 0, 0, 0, 140, + 144, 675, 895, 675, 75, 675, 0, 0, 671, 75, + 0, 0, 0, 188, 188, 0, 188, 671, 671, 22, + 0, 0, 671, 0, 197, 0, 8, 9, 0, 189, + 12, 190, 27, 0, 28, 29, 14, 1229, 1230, 0, + 1235, 0, 186, 0, 0, 0, 0, 0, 31, 0, + 0, 17, 188, 18, 19, 0, 0, 0, 32, 21, + 0, 0, 0, 671, 0, 0, 33, 0, 24, 0, + 0, 34, 0, 491, 491, 491, 0, 27, 0, 129, + 130, 0, 0, 0, 0, 584, 0, 0, 0, 0, + 186, 675, 186, 0, 186, 186, 186, 0, 0, 0, + 0, 186, 0, 387, 0, 0, 186, 390, 0, 186, + 0, 392, 0, 7, 8, 9, 10, 189, 12, 190, + 671, 0, 0, 0, 14, 0, 0, 0, 75, 126, + 127, 0, 0, 0, 478, 0, 1318, 0, 0, 17, + 0, 18, 19, 0, 0, 140, 144, 21, 0, 0, + 0, 0, 22, 0, 0, 0, 24, 584, 671, 584, + 0, 0, 0, 0, 0, 27, 0, 28, 29, 0, + 584, 191, 0, 576, 584, 584, 584, 0, 0, 0, + 27, 31, 129, 130, 1354, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 0, 577, 0, 0, 33, + 0, 0, 0, 0, 34, 0, 578, 0, 479, 0, + 895, 895, 1091, 0, 0, 0, 579, 1385, 1386, 580, + 581, 0, 0, 0, 0, 0, 1391, 0, 0, 6, + 0, 7, 8, 9, 10, 11, 12, 13, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 238, 242, + 0, 0, 1091, 0, 0, 0, 0, 17, 0, 18, + 19, 0, 0, 186, 0, 21, 0, 0, 0, 0, + 22, 0, 0, 0, 24, 675, 0, 407, 0, 0, + 0, 0, 188, 27, 0, 28, 29, 0, 0, 30, + 0, 0, 0, 0, 0, 0, 0, 0, 186, 31, + 186, 186, 0, 0, 0, 1445, 0, 607, 0, 32, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 101, + 0, 7, 8, 9, 10, 198, 199, 200, 0, 120, + 101, 186, 14, 0, 0, 0, 101, 101, 0, 101, + 0, 0, 186, 186, 0, 186, 0, 0, 825, 825, + 19, 825, 0, 654, 0, 21, 655, 0, 0, 0, + 22, 657, 0, 0, 24, 0, 576, 0, 242, 219, + 0, 0, 0, 27, 0, 28, 29, 7, 8, 9, + 10, 186, 0, 0, 0, 0, 0, 0, 0, 891, + 390, 0, 392, 895, 895, 1091, 1091, 1091, 0, 892, + 0, 895, 0, 0, 0, 0, 479, 33, 0, 579, + 0, 0, 893, 581, 0, 0, 22, 671, 1091, 1091, + 1091, 7, 8, 9, 10, 738, 0, 0, 120, 27, + 120, 28, 29, 101, 0, 1368, 0, 101, 101, 0, + 0, 0, 0, 0, 101, 177, 101, 101, 101, 188, + 0, 101, 101, 101, 0, 178, 0, 0, 0, 0, + 22, 0, 0, 33, 0, 0, 0, 0, 179, 0, + 0, 0, 0, 27, 0, 28, 29, 0, 0, 7, + 8, 9, 10, 198, 199, 200, 0, 0, 0, 436, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 437, + 0, 0, 895, 895, 0, 895, 0, 33, 19, 238, + 242, 238, 438, 21, 0, 0, 0, 0, 22, 0, + 0, 0, 24, 0, 576, 462, 101, 0, 0, 0, + 0, 27, 0, 28, 29, 0, 0, 0, 0, 186, + 186, 1089, 0, 0, 0, 101, 238, 891, 0, -357, + 8, 9, -357, -357, 12, 227, 0, 892, 0, 0, + 14, 0, 0, 0, 0, 33, 0, 579, 0, 0, + 933, 581, 0, 0, 0, 17, 0, 18, -357, 0, + 0, 1089, 0, 21, 101, 0, 0, 0, -357, 0, + 0, 0, 24, 0, 576, 0, 0, 0, 0, 897, + 0, 27, 0, 129, 130, 188, 0, 188, 0, 0, + 0, 186, 0, 0, 0, 0, 0, 577, 0, 7, + 8, 9, 10, 0, 0, 0, 0, 578, 0, 0, + 0, 101, 447, 101, 101, -357, 0, 579, 0, 0, + 580, 581, 0, 0, 0, 940, 0, 0, 0, 0, + 0, 0, 654, 655, 0, 657, 0, 0, 22, 101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 0, 28, 29, 0, 0, 0, 0, 0, + 101, 0, 0, 440, 738, 0, 738, 177, 0, 0, + 0, 983, 990, 738, 0, 0, 101, 178, 0, 0, + 101, 0, 0, 101, 0, 33, 0, 0, 101, 0, + 179, 0, 0, 238, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 440, 440, 440, 0, 0, 0, 0, + 0, 0, 186, 186, 186, 186, 1089, 0, 1195, 0, + 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 0, 0, 0, 1089, 1089, 1089, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 0, 713, 0, 513, 0, 281, 8, 9, 10, 382, + 12, 282, 283, 284, 679, 285, 14, 0, 186, 0, + 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 17, 286, 18, 19, 20, 0, 287, 288, 21, - 0, 289, 290, 291, 22, 292, 293, 738, 24, 0, + 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 576, 0, 294, 295, 296, 297, 298, 27, 0, 28, - 299, -286, 0, 0, 300, 0, 101, 0, 0, 0, - 301, 0, 0, 855, 0, 0, 101, 101, 0, 101, - 101, 303, 304, 856, 0, 0, 0, 0, 0, 306, - 307, 308, 0, 579, 0, 0, 857, 581, 0, 0, - 680, 0, 0, 0, 973, 8, 722, 10, 189, 12, - 190, 0, 0, 0, 310, 14, 0, 0, 0, 0, + 299, -285, 0, 0, 300, 0, 0, 0, 0, 0, + 301, 186, 186, 855, 186, 0, 0, 0, 0, 140, + 144, 303, 304, 856, 0, 0, 0, 0, 0, 306, + 307, 308, 0, 579, 0, 0, 857, 581, 0, 101, + 680, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 101, 0, 101, 101, 310, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 1324, 0, -449, + -449, -449, -449, -449, -449, -449, 0, 0, -449, 0, + -449, 983, 0, 0, 0, 0, 0, 0, 0, 0, + 1425, -449, 0, -449, -449, 0, 0, 120, -449, 0, + 0, 0, 0, -449, 186, 0, 186, 0, -449, 219, + 0, 0, -449, 738, -449, 0, 0, 0, 0, 0, + 0, -449, 0, -449, -449, -449, -449, -449, 713, -449, + -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, + -449, -449, -449, -449, -449, -449, -449, -449, -449, -449, + -449, -449, 0, -449, -449, -449, 0, -449, -449, -449, + -449, -449, -449, 0, -449, -449, 0, 0, 0, 0, + 1325, 0, 0, 0, 0, -449, -449, -449, 0, -449, + 0, 0, 1089, 0, 0, 713, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 18, 19, 120, 0, 390, 392, 21, 0, - 0, 0, 0, 22, 479, 0, 219, 24, 0, -358, - 8, 9, -358, -358, 12, 227, 27, 0, 28, 29, - 14, 0, 0, 0, 975, 713, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 17, 0, 18, -358, 0, - 0, 0, 32, 21, 0, 0, 0, 0, -358, 0, - 33, 1239, 24, 0, 576, 34, 1239, 0, 738, 0, - 0, 27, 0, 129, 130, 0, 0, 1323, 0, -450, - -450, -450, -450, -450, -450, -450, 0, 577, -450, 0, - -450, 0, 713, 0, 0, 101, 0, 578, 0, 0, - 0, -450, 0, -450, -450, -358, 0, 579, -450, 0, - 580, 581, 0, -450, 654, 655, 0, 657, -450, 0, - 0, 0, -450, 0, -450, 0, 101, 101, 101, 0, - 0, -450, 0, -450, -450, -450, -450, -450, 101, -450, - -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, - -450, -450, -450, -450, -450, -450, -450, -450, -450, -450, - -450, -450, 0, -450, -450, -450, 0, -450, -450, -450, - -450, -450, -450, 0, -450, -450, 0, 0, 0, 0, - 1324, 0, 0, 0, 0, -450, -450, -450, 0, -450, + 0, 0, 390, 392, 0, 0, 0, 0, 0, 0, + 479, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 101, 101, 1089, 1089, 1089, 0, 0, 0, 0, 0, + 0, 101, 0, 0, 19, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 186, 0, 0, 0, 0, 0, 1240, 0, + 0, 0, 0, 1240, 0, 738, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 0, 0, - 101, 0, 101, 0, 0, 0, 0, 0, 1372, 0, - 0, 0, 1375, 101, 1274, 1275, 1276, 10, 382, 12, - 282, 283, 284, 0, 285, 14, 1277, 0, 1278, 1279, - 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 15, 16, - 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, - 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 1288, 299, - 666, 0, 1289, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 1290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 713, 0, 1376, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1273, 0, 1274, 1275, - 1276, 10, 382, 12, 282, 283, 284, 101, 285, 14, - 1277, 0, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, - 1286, 1287, 15, 16, 17, 286, 18, 19, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 1288, 299, 666, 0, 1289, 300, 0, 0, - 0, 101, 101, 301, 101, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 0, 309, - 19, 1290, 0, 0, 0, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 310, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 0, 0, 0, - 713, 0, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 0, 0, 513, 713, 7, 8, - 9, 10, 382, 12, 282, 283, 284, 679, 285, 14, - 0, 0, 0, 0, 101, 0, 101, 0, 0, 0, - 0, 0, 0, 0, 17, 286, 18, 19, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 576, 0, 294, 295, 296, 297, 298, - 27, 0, 28, 29, -286, 0, 0, 300, 0, 0, - 0, 0, 0, 301, 0, 0, 1109, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 1110, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 579, 0, 0, 1111, - 581, 0, 678, 680, 281, 8, 9, 10, 382, 12, - 282, 283, 284, 679, 285, 14, 0, 310, 0, 0, + 0, 0, 0, 101, 0, 101, 0, 0, 0, 0, + 0, 654, 655, 0, 657, 1376, 101, 1275, 1276, 1277, + 10, 382, 12, 282, 283, 284, 0, 285, 14, 1278, + 0, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 15, 16, 17, 286, 18, 19, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 1289, 299, 666, 0, 1290, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, + 0, 306, 307, 308, 0, 0, 0, 0, 309, 0, + 1291, 0, 0, 0, 0, 1373, 0, 0, 0, 0, + 0, 0, 0, 713, 0, 1377, 310, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1274, + 0, 1275, 1276, 1277, 10, 382, 12, 282, 283, 284, + 101, 285, 14, 1278, 0, 1279, 1280, 1281, 1282, 1283, + 1284, 1285, 1286, 1287, 1288, 15, 16, 17, 286, 18, + 19, 20, 0, 287, 288, 21, 0, 289, 290, 291, + 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, + 296, 297, 298, 27, 0, 1289, 299, 666, 0, 1290, + 300, 0, 0, 0, 101, 101, 301, 101, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, + 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, + 0, 0, 309, 0, 1291, 0, 0, 0, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 310, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 0, 0, 0, 713, 513, 0, 7, 8, 9, 10, + 382, 12, 282, 283, 284, 679, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, + 713, 0, 17, 286, 18, 19, 20, 0, 287, 288, + 21, 0, 289, 290, 291, 22, 292, 293, 101, 24, + 101, 576, 0, 294, 295, 296, 297, 298, 27, 0, + 28, 29, -285, 0, 0, 300, 0, 0, 0, 0, + 0, 301, 0, 0, 1109, 0, 0, 0, 0, 0, + 0, 0, 303, 304, 1110, 0, 0, 0, 0, 0, + 306, 307, 308, 0, 579, 0, 0, 1111, 581, 0, + 678, 680, 281, 8, 9, 10, 382, 12, 282, 283, + 284, 679, 285, 14, 0, 310, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, + 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, + 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, + 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, + 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, + 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, + 0, 0, 0, 309, 0, 0, 0, 680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -756, + 789, 310, 281, 8, 9, 10, 382, 12, 282, 283, + 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, + 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, + 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, + 295, 296, 297, 298, 27, 0, 28, 299, 1437, 0, + -746, 300, 0, 0, 0, 0, 0, 301, 0, 0, + 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, + 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, + 0, 0, 669, 309, 777, 778, 779, 10, 0, 12, + 495, 283, 284, 0, 285, 14, 0, 0, 0, 0, + 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, + 0, 294, 295, 296, 297, 298, 27, 0, 780, 781, + 670, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 0, 309, 0, 0, 0, 680, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -756, 789, 310, 281, 8, 9, 10, 382, 12, - 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, + 308, 0, 0, 0, 0, 309, 782, 669, 0, 777, + 778, 779, 10, 0, 12, 495, 283, 284, 0, 285, + 14, 0, 924, 310, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, + 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, + 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, + 298, 27, 0, 780, 781, 670, 0, 0, 300, 0, + 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, + 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, + 0, 0, 0, 306, 307, 308, 0, 0, 0, 0, + 309, 782, 669, 0, 777, 778, 779, 10, 0, 12, + 495, 283, 284, 0, 285, 14, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, + 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, - 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - 1436, 0, -746, 300, 0, 0, 0, 0, 0, 301, + 0, 294, 295, 296, 297, 298, 27, 0, 780, 781, + 670, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, 669, 309, 777, 778, 779, 10, 0, 12, 495, 283, 284, 0, 285, 14, 0, 0, - 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, - 780, 781, 670, 0, 0, 300, 0, 0, 0, 0, - 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 0, 309, 782, 669, - 0, 777, 778, 779, 10, 0, 12, 495, 283, 284, - 0, 285, 14, 0, 924, 310, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, - 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, - 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, - 296, 297, 298, 27, 0, 780, 781, 670, 0, 0, - 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, - 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, - 0, 0, 309, 782, 669, 0, 777, 778, 779, 10, - 0, 12, 495, 283, 284, 0, 285, 14, 0, 0, - 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -453, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 780, 781, 670, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 669, 309, 777, 778, - 779, 10, 0, 12, 495, 283, 284, 0, 285, 14, - 0, 0, 0, 0, -454, 310, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, - 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, - 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 780, 781, 670, 0, 0, 300, 0, 0, - 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 669, 309, - 281, 8, 9, 10, 0, 12, 495, 283, 284, 0, - 285, 14, 0, 0, 0, 0, 1208, 310, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, - 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, - 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 28, 299, 670, 0, 0, 300, - 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, - 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 0, 513, 0, 281, 8, 9, 10, - 1212, 12, 282, 283, 284, 0, 285, 14, 0, 310, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, - 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, - 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, - 28, 299, -286, 0, 0, 300, 0, 0, 0, 0, - 0, 301, 0, 0, 514, 0, 0, 0, 0, 0, - 0, 0, 303, 304, 515, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 669, 516, 281, 8, + 306, 307, 308, 0, 0, 0, 669, 309, 281, 8, 9, 10, 0, 12, 495, 283, 284, 0, 285, 14, - 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, + 0, 0, 0, 0, 1209, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, 670, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 789, 309, - 281, 8, 9, 10, 0, 12, 495, 283, 284, 0, - 285, 14, 0, 0, 0, 0, 0, 310, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, - 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, - 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 28, 299, 0, 0, 0, 300, - -746, 0, 0, 0, 0, 301, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, - 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, - 513, 309, 7, 8, 9, 10, 0, 12, 282, 283, - 284, 0, 285, 14, 0, 0, 0, 0, 0, 310, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, - 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, - 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 28, 29, -286, 0, - 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, - 1413, 0, 0, 0, 0, 0, 0, 0, 303, 304, - 1414, 0, 0, 0, 0, 0, 306, 307, 308, 0, - 0, 0, 1503, 1415, 281, 8, 9, 10, 0, 12, - 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, - 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 306, 307, 308, 0, 0, 0, 0, 309, + 0, 0, 513, 0, 281, 8, 9, 10, 1213, 12, + 282, 283, 284, 0, 285, 14, 0, 310, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - 0, 0, -175, 300, 0, 0, 0, 0, 0, 301, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, - 308, 0, 0, 0, 789, 309, 281, 8, 9, 10, + -285, 0, 0, 300, 0, 0, 0, 0, 0, 301, + 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, + 303, 304, 515, 0, 0, 0, 0, 0, 306, 307, + 308, 0, 0, 0, 669, 516, 281, 8, 9, 10, 0, 12, 495, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, - 28, 299, 0, 0, 0, 300, 0, 0, 0, 0, + 28, 299, 670, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 874, 309, 281, 8, + 306, 307, 308, 0, 0, 0, 789, 309, 281, 8, 9, 10, 0, 12, 495, 283, 284, 0, 285, 14, - 0, 0, 0, -746, 0, 310, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, - 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, + 27, 0, 28, 299, 0, 0, 0, 300, -746, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, - 0, 0, 306, 307, 308, 0, 0, 0, 876, 309, - 281, 8, 9, 10, 0, 12, 495, 283, 284, 0, + 0, 0, 306, 307, 308, 0, 0, 0, 513, 309, + 7, 8, 9, 10, 0, 12, 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 28, 299, 0, 0, 0, 300, - 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, + 297, 298, 27, 0, 28, 29, -285, 0, 0, 300, + 0, 0, 0, 0, 0, 301, 0, 0, 1414, 0, + 0, 0, 0, 0, 0, 0, 303, 304, 1415, 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, - 1389, 309, 281, 8, 9, 10, 0, 12, 495, 283, + 1504, 1416, 281, 8, 9, 10, 0, 12, 282, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, - 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, + -174, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, - 305, 0, 0, 0, 0, 0, 306, 307, 308, 281, - 8, 9, 10, 309, 12, 495, 283, 284, 0, 285, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, + 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, + 0, 0, 789, 309, 281, 8, 9, 10, 0, 12, + 495, 283, 284, 0, 285, 14, 0, 0, 0, 0, + 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, + 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, + 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, + 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, + 244, 0, 302, 8, 9, 0, 0, 12, 13, 0, + 303, 304, 305, 14, 0, 0, 0, 0, 306, 307, + 308, 0, 0, 0, 0, 309, 0, 0, 17, 0, + 18, 0, 0, 0, 0, 0, 21, 0, 245, 246, + 0, -746, 0, 310, 0, 24, 0, 247, 0, 0, + 0, 0, 0, 0, 27, 0, 129, 130, 0, 248, + 0, 0, 0, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 0, 0, 270, 271, 272, 0, + 0, 273, 0, 874, 274, 281, 8, 9, 10, 0, + 12, 495, 283, 284, 0, 285, 14, 0, 0, 0, + 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, + 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, + 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, + 299, 0, 0, 0, 300, 0, 0, 0, 0, 0, + 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, + 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, + 307, 308, 0, 0, 0, 876, 309, 281, 8, 9, + 10, 0, 12, 495, 283, 284, 0, 285, 14, 0, + 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, + 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, + 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, + 0, 28, 299, 0, 0, 0, 300, 0, 0, 0, + 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, + 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, + 0, 306, 307, 308, 0, 0, 0, 1390, 309, 281, + 8, 9, 10, 0, 12, 495, 283, 284, 0, 285, + 14, 0, 0, 0, 0, 0, 310, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, - 0, 0, 0, 306, 307, 308, 0, 0, 0, 0, - 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 310, 828, - 1274, 1275, 1276, 10, 382, 12, 282, 283, 284, 0, - 285, 14, 1277, 0, 1278, 1279, 1280, 1281, 1282, 1283, - 1284, 1285, 1286, 1287, 15, 16, 17, 286, 18, 19, + 0, 0, 0, 306, 307, 308, 281, 8, 9, 10, + 309, 12, 495, 283, 284, 0, 285, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, + 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, + 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, + 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, + 28, 299, 0, 0, 0, 300, 0, 0, 0, 0, + 0, 301, 0, 721, 302, 7, 8, 722, 10, 382, + 12, 13, 303, 304, 305, 0, 14, 0, 0, 0, + 306, 307, 308, 0, 0, 0, 0, 309, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 0, 0, 21, + -494, 0, 0, 0, 22, 310, 828, 0, 24, 723, + 0, 633, 0, 0, 0, 0, 0, 27, 0, 28, + 29, 0, 0, 724, 0, 725, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 34, 0, 0, 0, + 1275, 1276, 1277, 10, 382, 12, 282, 283, 284, 0, + 285, 14, 1278, -494, 1279, 1280, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1288, 15, 16, 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 1288, 299, 666, 0, 1289, 300, + 297, 298, 27, 0, 1289, 299, 666, 0, 1290, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 1290, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1380, 310, - 1274, 1275, 1276, 10, 382, 12, 282, 283, 284, 0, - 285, 14, 1277, 0, 1278, 1279, 1280, 1281, 1282, 1283, - 1284, 1285, 1286, 1287, 15, 16, 17, 286, 18, 19, + 0, 309, 0, 1291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1381, 310, + 1275, 1276, 1277, 10, 382, 12, 282, 283, 284, 0, + 285, 14, 1278, 0, 1279, 1280, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1288, 15, 16, 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, - 297, 298, 27, 0, 1288, 299, 666, 0, 1289, 300, + 297, 298, 27, 0, 1289, 299, 666, 0, 1290, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, - 0, 309, 0, 1290, 0, 0, 1274, 1275, 1276, 10, - 382, 12, 282, 283, 284, 0, 285, 14, 1277, 310, - 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 0, 309, 0, 1291, 0, 0, 1275, 1276, 1277, 10, + 382, 12, 282, 283, 284, 0, 285, 14, 1278, 310, + 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 15, 16, 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, - 1288, 299, 1480, 0, 1289, 300, 0, 0, 0, 0, + 1289, 299, 1481, 0, 1290, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 0, 309, 0, 1290, - 0, 0, 1274, 1275, 1276, 10, 382, 12, 282, 283, - 284, 0, 285, 14, 1277, 310, 1278, 1279, 1280, 1281, - 1282, 1283, 1284, 1285, 1286, 1287, 15, 16, 17, 286, + 306, 307, 308, 0, 0, 0, 0, 309, 0, 1291, + 0, 0, 1275, 1276, 1277, 10, 382, 12, 282, 283, + 284, 0, 285, 14, 1278, 310, 1279, 1280, 1281, 1282, + 1283, 1284, 1285, 1286, 1287, 1288, 15, 16, 17, 286, 18, 19, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, - 295, 296, 297, 298, 27, 0, 1288, 299, 0, 0, - 1289, 300, 0, 0, 0, 0, 0, 301, 0, 0, + 295, 296, 297, 298, 27, 0, 1289, 299, 0, 0, + 1290, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, - 0, 0, 0, 309, 0, 1290, 281, 8, 9, 10, + 0, 0, 0, 309, 0, 1291, 281, 8, 9, 10, 382, 12, 282, 283, 284, 679, 285, 14, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 286, 18, 19, 20, 0, 287, 288, @@ -2245,7 +2242,7 @@ static const short yytable[] = { 58, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 299, - 0, 0, 1357, 300, 0, 0, 0, 0, 0, 301, + 0, 0, 1358, 300, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 303, 304, 305, 0, 0, 0, 0, 0, 306, 307, 308, 0, 0, 0, 0, 309, 281, 8, 9, 10, @@ -2316,10 +2313,10 @@ static const short yytable[] = { 58, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 29, 0, 0, 0, - 300, 0, 0, 0, 0, 0, 301, 0, 0, 1413, - 0, 0, 0, 0, 0, 0, 0, 303, 304, 1414, + 300, 0, 0, 0, 0, 0, 301, 0, 0, 1414, + 0, 0, 0, 0, 0, 0, 0, 303, 304, 1415, 0, 0, 0, 0, 0, 306, 307, 308, 281, 8, - 9, 10, 1415, 12, 495, 283, 284, 0, 285, 14, + 9, 10, 1416, 12, 495, 283, 284, 0, 285, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 17, 286, 18, 0, 20, 0, 287, 288, 21, 0, 289, 290, 291, 22, 292, 293, @@ -2360,761 +2357,759 @@ static const short yytable[] = { 58, 21, 0, 289, 290, 291, 22, 292, 293, 0, 24, 0, 0, 0, 294, 295, 296, 297, 298, 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 301, 0, 161, 1413, 7, 8, 9, 10, 11, - 12, 13, 303, 304, 1414, 0, 14, 0, 0, 0, - 306, 307, 308, 0, 0, 0, 0, 1415, 0, 15, + 0, 301, 0, 6, 1414, 7, 8, 9, 10, 11, + 12, 13, 303, 304, 1415, 0, 14, 0, 0, 0, + 306, 307, 308, 0, 0, 0, 0, 1416, 0, 15, 16, 17, 0, 18, 19, 20, 0, 0, 0, 21, 0, 0, 0, 0, 22, 310, 0, 23, 24, 25, 0, 26, 0, 0, 0, 0, 0, 27, 0, 28, - 29, 0, 0, 30, 7, 8, 9, 10, 198, 199, - 200, 0, 0, 31, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 19, 0, 0, 34, 0, 21, 0, - 0, 0, 35, 22, 0, 0, 0, 24, 0, 576, - 0, 0, 0, 0, 0, 0, 27, 0, 28, 29, - 7, 8, 9, 10, 198, 199, 200, 0, 0, 0, - 0, 14, 891, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 892, 0, 0, 0, 0, 0, 0, 19, - 33, 0, 579, 0, 21, 893, 581, 0, 0, 22, - 0, 0, 0, 24, 0, 576, 0, 0, 0, 0, - 0, 0, 27, 0, 28, 29, 7, 8, 9, 10, - 189, 12, 190, 0, 0, 0, 0, 14, 891, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 892, 0, - 0, 0, 17, 0, 18, 19, 33, 0, 579, 0, - 21, 933, 581, 0, 0, 22, 0, 0, 0, 24, - 0, 7, 8, 9, 10, 382, 12, 13, 27, 0, - 28, 29, 14, 0, 1370, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 17, 0, 18, - 19, 0, 0, 0, 32, 21, 0, 0, 0, 0, - 22, 0, 33, 0, 24, 0, 0, 34, 0, 0, - 0, 0, 0, 27, 0, 28, 29, 7, 8, 9, - 10, 189, 12, 190, 0, 0, 0, 0, 14, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, - 0, 0, 0, 17, 0, 18, 19, 33, 0, 0, - 0, 21, 34, 0, 0, 0, 22, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 27, - 0, 28, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 34, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 0, 0, 0, 0, 0, 1161, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 615, 0, 0, 1424, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 1466, + 29, 0, 161, 30, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 31, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 32, 0, 0, 0, 0, 15, 16, + 17, 33, 18, 19, 20, 0, 34, 0, 21, 0, + 0, 0, 35, 22, 0, 0, 23, 24, 25, 0, + 26, 0, 0, 0, 0, 0, 27, 0, 28, 29, + 0, 0, 30, 973, 8, 722, 10, 189, 12, 190, + 0, 0, 31, 0, 14, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 17, + 33, 18, 19, 0, 0, 34, 0, 21, 0, 0, + 0, 35, 22, 0, 0, 0, 24, 0, 7, 8, + 9, 10, 189, 12, 190, 27, 0, 28, 29, 14, + 0, 0, 0, 975, 0, 0, 0, 0, 0, 0, + 0, 31, 0, 0, 17, 0, 18, 19, 0, 0, + 0, 32, 21, 0, 0, 0, 0, 22, 0, 33, + 0, 24, 0, 0, 34, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 0, 0, 1371, 7, 8, 9, + 10, 382, 12, 13, 0, 0, 31, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 17, 33, 18, 19, 0, 0, 34, + 0, 21, 0, 0, 0, 0, 22, 0, 0, 0, + 24, 0, 7, 8, 9, 10, 189, 12, 190, 27, + 0, 28, 29, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 0, 0, 17, 0, + 18, 19, 0, 0, 0, 32, 21, 0, 0, 0, + 0, 22, 0, 33, 0, 24, 0, 0, 34, 0, + 0, 0, 0, 0, 27, 0, 28, 29, 7, 8, + 9, 10, 198, 199, 200, 0, 0, 0, 0, 14, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 19, 33, 0, + 0, 0, 21, 34, 0, 0, 0, 22, 0, 0, + 0, 24, 0, 576, 0, 0, 0, 0, 0, 0, + 27, 0, 28, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 1374, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552 + 551, 552, 615, 0, 0, 0, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 0, 1162, + 1467, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552 }; static const short yycheck[] = { 4, - 54, 156, 4, 193, 197, 664, 329, 14, 24, 232, - 4, 661, 445, 125, 417, 45, 923, 422, 4, 79, - 381, 4, 466, 526, 4, 335, 817, 4, 285, 286, - 381, 36, 726, 89, 36, 91, 41, 230, 228, 41, - 4, 735, 36, 61, 352, 146, 147, 41, 31, 32, - 36, 56, 381, 36, 223, 41, 36, 644, 41, 36, - 317, 41, 1401, 83, 41, 132, 71, 193, 1268, 128, - 1291, 79, 36, 11, 133, 82, 202, 41, 83, 14, - 136, 141, 87, 53, 89, 34, 91, 277, 23, 48, - 580, 11, 56, 1131, 1132, 38, 1434, 587, 105, 11, - 83, 106, 107, 201, 202, 59, 1418, 1145, 36, 1, - 61, 1298, 335, 41, 742, 60, 25, 520, 1305, 747, - 1458, 58, 7, 1431, 60, 63, 1436, 187, 651, 64, - 135, 136, 55, 138, 12, 94, 95, 0, 9, 329, - 63, 135, 1, 132, 133, 1457, 100, 0, 581, 1, - 59, 110, 135, 38, 63, 160, 336, 337, 135, 1, - 111, 34, 111, 146, 147, 110, 160, 59, 111, 48, - 75, 135, 110, 25, 110, 498, 1488, 160, 196, 1487, - 1401, 151, 60, 160, 1523, 63, 204, 96, 123, 1499, - 110, 62, 4, 1231, 177, 178, 160, 34, 110, 1537, - 59, 12, 1240, 1241, 63, 1243, 60, 59, 388, 389, - 145, 63, 287, 288, 184, 94, 95, 59, 1405, 663, - 98, 63, 229, 49, 36, 853, 48, 302, 12, 41, - 305, 110, 110, 308, 48, 243, 311, 96, 94, 63, - 315, 55, 1033, 63, 96, 443, 48, 63, 323, 60, - 60, 75, 63, 451, 96, 410, 193, 111, 1445, 326, - 79, 75, 665, 94, 201, 202, 48, 25, 1468, 27, - 28, 83, 94, 278, 147, 148, 60, 60, 55, 63, - 94, 65, 338, 634, 103, 220, 221, 98, 110, 599, - 110, 228, 94, 95, 110, 354, 75, 232, 75, 886, - 110, 59, 322, 1490, 309, 63, 179, 61, 110, 146, - 147, 148, 94, 132, 98, 48, 375, 322, 1295, 627, - 1297, 94, 141, 135, 450, 330, 687, 110, 335, 75, - 384, 61, 960, 338, 339, 436, 437, 326, 96, 322, - 277, 61, 179, 866, 972, 339, 869, 39, 160, 1387, - 1388, 449, 450, 4, 60, 61, 339, 111, 687, 457, - 683, 94, 339, 55, 8, 9, 301, 857, 187, 48, - 14, 469, 60, 61, 1281, 339, 381, 1005, 1169, 1007, - 385, 111, 905, 906, 48, 36, 375, 890, 48, 487, - 41, 111, 329, 37, 412, 381, 94, 25, 381, 27, - 28, 220, 46, 893, 48, 65, 60, 9, 55, 48, - 12, 65, 60, 61, 819, 94, 351, 75, 4, 5, - 61, 854, 76, 603, 243, 430, 65, 109, 75, 459, - 94, 59, 1339, 48, 94, 63, 309, 493, 456, 514, - 515, 1348, 1349, 933, 55, 25, 48, 430, 61, 386, - 94, 48, 1146, 436, 437, 94, 95, 48, 60, 467, - 62, 63, 467, 65, 75, 467, 27, 28, 96, 55, - 48, 57, 58, 467, 76, 32, 78, 48, 55, 94, - 3, 4, 5, 6, 467, 71, 4, 5, 493, 63, - 467, 496, 94, 95, 499, 81, 98, 94, 503, 504, - 505, 506, 507, 94, 95, 3, 4, 5, 110, 95, - 322, 516, 449, 450, 958, 334, 94, 95, 921, 42, - 457, 526, 48, 94, 529, 59, 887, 339, 56, 464, - 58, 65, 469, 60, 57, 58, 887, 55, 59, 57, - 58, 710, 562, 712, 48, 1068, 1069, 55, 717, 76, - 487, 605, 862, 71, 55, 1462, 561, 562, 887, 57, - 58, 55, 75, 81, 437, 438, 89, 75, 94, 381, - 84, 85, 391, 27, 28, 580, 766, 757, 32, 562, - 63, 75, 587, 81, 591, 59, 640, 48, 642, 643, - 94, 95, 75, 528, 577, 578, 111, 580, 1088, 436, - 437, 438, 859, 48, 587, 1459, 704, 61, 720, 94, - 1043, 65, 48, 106, 107, 48, 632, 1471, 430, 1024, - 1025, 1111, 48, 496, 4, 5, 499, 1481, 55, 683, - 4, 5, 25, 94, 27, 28, 641, 55, 166, 862, - 645, 63, 515, 516, 1498, 464, 48, 663, 75, 94, - 48, 55, 55, 75, 1098, 467, 529, 111, 94, 55, - 63, 94, 76, 1517, 48, 193, 59, 65, 94, 606, - 63, 490, 75, 201, 202, 60, 61, 57, 58, 733, - 110, 1125, 687, 57, 58, 34, 1540, 743, 744, 745, - 60, 61, 94, 3, 4, 5, 94, 632, 48, 729, - 730, 81, 1107, 96, 687, 55, 643, 81, 738, 644, - 94, 1116, 1117, 110, 587, 1038, 1121, 95, 726, 63, - 728, 726, 110, 728, 726, 75, 734, 735, 110, 734, - 735, 75, 726, 735, 728, 670, 11, 742, 743, 744, - 745, 735, 747, 726, 94, 728, 683, 57, 58, 726, - 562, 728, 735, 828, 111, 574, 1161, 94, 735, 742, - 1039, 1040, 61, 1042, 747, 60, 61, 704, 580, 733, - 734, 590, 113, 4, 5, 587, 55, 1427, 9, 3, - 855, 856, 4, 5, 63, 63, 955, 956, 957, 3, - 4, 5, 1451, 7, 8, 9, 75, 146, 147, 148, - 4, 5, 754, 755, 756, 95, 3, 4, 5, 95, - 48, 816, 113, 1218, 55, 820, 309, 55, 94, 999, - 1000, 1001, 63, 37, 55, 94, 57, 58, 75, 766, - 179, 76, 75, 78, 75, 57, 58, 75, 898, 75, - 71, 55, 847, 57, 58, 59, 4, 5, 853, 75, - 81, 1256, 857, 57, 58, 862, 94, 385, 386, 81, - 57, 58, 59, 3, 4, 5, 6, 60, 61, 9, - 853, 60, 855, 856, 857, 687, 11, 81, 3, 4, - 5, 111, 887, 110, 889, 890, 55, 760, 893, 60, - 60, 105, 106, 107, 63, 110, 61, 55, 110, 57, - 58, 887, 42, 110, 887, 76, 75, 78, 891, 892, - 893, 110, 113, 441, 726, 55, 728, 57, 58, 4, - 5, 449, 450, 735, 984, 3, 4, 5, 933, 457, - 742, 71, 57, 58, 427, 747, 111, 3, 4, 5, - 113, 81, 947, 878, 4, 5, 976, 1350, 953, 89, - 933, 886, 982, 983, 94, 960, 986, 987, 55, 1362, - 990, 55, 3, 4, 5, 111, 63, 972, 110, 63, - 1045, 75, 57, 58, 1297, 75, 984, 960, 75, 57, - 58, 75, 75, 856, 857, 1086, 1087, 995, 110, 972, - 995, 57, 58, 995, 27, 28, 81, 57, 58, 32, - 1005, 995, 1007, 496, 4, 5, 499, 48, 1109, 1110, - 503, 113, 995, 59, 55, 1418, 57, 58, 995, 110, - 893, 81, 1005, 516, 1007, 113, 110, 60, 61, 110, - 1090, 55, 65, 8, 1109, 1110, 529, 3, 4, 5, - 533, 853, 861, 113, 863, 857, 94, 3, 4, 5, - 6, 48, 1455, 94, 1457, 65, 893, 57, 58, 60, - 933, 111, 94, 4, 5, 61, 559, 1428, 9, 37, - 1473, 65, 565, 65, 25, 887, 27, 28, 606, 898, - 65, 893, 1098, 1088, 110, 1488, 42, 436, 437, 438, - 1025, 57, 58, 49, 61, 110, 933, 110, 63, 1428, - 60, 57, 58, 1086, 1087, 1088, 1111, 48, 59, 113, - 65, 110, 63, 641, 55, 643, 57, 58, 65, 1442, - 1525, 933, 110, 65, 94, 81, 1109, 1110, 1111, 63, - 71, 4, 5, 89, 1142, 3, 4, 5, 1146, 110, - 81, 1146, 63, 76, 1146, 96, 110, 110, 960, 110, - 91, 110, 1146, 94, 95, 683, 76, 76, 76, 63, - 972, 110, 110, 1146, 60, 984, 4, 5, 63, 1146, - 110, 110, 1107, 95, 111, 113, 704, 113, 706, 1372, - 110, 110, 12, 995, 57, 58, 89, 55, 48, 57, - 58, 59, 94, 1005, 110, 1007, 110, 27, 28, 110, - 1205, 113, 32, 1205, 113, 110, 734, 45, 1238, 1239, - 1215, 110, 740, 111, 1087, 1088, 1291, 55, 48, 57, - 58, 110, 1205, 111, 60, 1205, 65, 110, 1205, 60, - 60, 61, 65, 63, 60, 65, 110, 1110, 1111, 94, - 94, 1295, 94, 1297, 111, 110, 1065, 110, 8, 1086, - 1087, 1088, 1442, 110, 113, 1410, 3, 4, 5, 6, - 110, 110, 110, 65, 94, 95, 113, 1202, 98, 8, - 9, 1090, 1109, 1110, 1111, 14, 1088, 111, 110, 63, - 110, 3, 4, 5, 6, 110, 1291, 441, 110, 1291, - 110, 1296, 110, 1298, 110, 42, 1298, 110, 37, 1111, - 1305, 110, 49, 1305, 4, 5, 110, 46, 1291, 9, - 57, 58, 1413, 1414, 1291, 1298, 113, 48, 1298, 110, - 42, 1298, 1305, 1142, 110, 1305, 48, 110, 1305, 97, - 34, 824, 110, 55, 1146, 57, 58, 110, 1413, 1414, - 48, 110, 89, 81, 82, 83, 84, 85, 48, 71, - 113, 110, 1287, 110, 110, 55, 63, 57, 58, 81, - 1297, 3, 4, 5, 857, 63, 61, 89, 61, 91, - 9, 71, 94, 95, 61, 16, 94, 94, 61, 87, - 88, 81, 61, 94, 92, 93, 94, 95, 109, 1443, - 99, 91, 94, 1205, 94, 95, 1401, 1402, 17, 1401, - 1405, 61, 61, 1405, 110, 110, 1341, 110, 11, 110, - 1415, 61, 61, 55, 94, 57, 58, 60, 1401, 1402, - 702, 110, 1405, 1428, 1401, 1405, 1431, 61, 1405, 1434, - 1413, 1414, 1434, 65, 61, 1465, 110, 965, 966, 11, - 1445, 61, 110, 1445, 11, 1428, 61, 0, 1431, 0, - 0, 1434, 409, 1458, 1434, 2, 1458, 1434, 887, 741, - 953, 354, 1445, 160, 746, 1445, 994, 734, 1445, 7, - 8, 9, 160, 1426, 728, 1458, 14, 1098, 1458, 1291, - 93, 1458, 1487, 138, 1397, 1490, 1298, 1537, 1490, 1296, - 7, 8, 9, 1305, 32, 280, 4, 14, 670, 37, - 1373, 878, 873, 222, 1487, 1442, 14, 1490, 46, 1125, - 1490, 958, 728, 1490, 995, 32, 734, 25, 1144, 871, - 37, 184, 612, 31, 32, 562, 34, 326, 36, 46, - 123, 1298, 1537, 41, 1206, 1537, 1373, 1451, 1448, 1473, - 1512, 1414, 1415, 1510, 893, 1215, 54, 942, 56, -1, - -1, -1, 706, -1, 1537, -1, 64, 1537, -1, -1, - 1537, -1, -1, 71, -1, -1, 848, -1, 850, 3, - 4, 5, 6, -1, 82, 83, 1413, 1414, 1415, -1, - -1, -1, -1, -1, 933, -1, 740, -1, -1, 1401, - 1402, 4, 5, 1405, -1, -1, 9, 105, -1, 3, - 4, 5, -1, 177, 178, 179, 4, 5, 42, 1137, - 1138, 9, 1140, 1141, -1, 1143, 1428, -1, 1111, 1431, - 128, -1, 1434, 57, 58, 133, -1, 135, -1, -1, - -1, 139, -1, 1445, 142, 143, -1, -1, 146, 147, - 148, -1, 55, -1, 57, 58, 1458, -1, 423, -1, - 48, 55, 160, 57, 58, 430, -1, 55, 71, 57, - 58, -1, -1, -1, 1157, 1158, 1159, 1160, 81, 177, - 178, 179, -1, 71, 1167, 1487, -1, -1, 1490, -1, - -1, -1, 95, 81, -1, 381, -1, 3, 4, 5, - 6, -1, -1, 91, -1, -1, 94, 95, 206, -1, - 1228, 1229, 4, 5, -1, 7, 8, 9, -1, -1, - 12, -1, 14, 221, -1, -1, -1, -1, -1, 494, - -1, 229, 1004, -1, 1006, 1537, 42, 29, -1, 31, - 32, -1, 240, 49, 430, 37, -1, 1086, 1087, 1088, - -1, 57, 58, -1, 46, 27, 28, -1, 4, 5, - 32, -1, -1, 55, -1, 57, 58, -1, -1, -1, - 1109, 1110, 1111, -1, -1, 81, -1, -1, 1296, 1297, - 278, 279, -1, 89, -1, -1, -1, 1059, 60, 61, - -1, -1, -1, 558, -1, 560, 561, -1, -1, 1317, - 1318, 1319, 48, 1286, -1, -1, 98, -1, -1, 55, - -1, 57, 58, 79, 80, 81, 82, 83, 84, 85, - -1, 965, 966, -1, 322, 71, -1, -1, 326, 594, - 328, 329, 330, -1, -1, 81, 3, 4, 5, 6, - -1, 339, 9, -1, -1, 91, -1, -1, 94, 95, - 994, -1, -1, -1, -1, -1, 354, 1129, 3, 4, - 5, 1133, 7, 8, 9, -1, 1384, 1385, 432, -1, - 434, -1, 436, 437, 438, 42, 1359, 375, -1, -1, - -1, 48, -1, 381, 448, -1, 384, 385, 55, -1, - 57, 58, 37, -1, 580, -1, -1, 395, -1, -1, - 398, 587, -1, -1, 71, 403, -1, -1, -1, -1, - 1182, -1, 57, 58, 81, -1, -1, -1, 1401, 1402, - -1, -1, 89, -1, 91, -1, -1, 94, 95, 3, - 4, 5, 1415, -1, 432, -1, 434, -1, 436, 437, - 438, -1, -1, -1, -1, 443, -1, -1, 1431, -1, - 448, -1, -1, 451, -1, -1, -1, -1, -1, 3, - 4, 5, 6, -1, -1, 39, 40, -1, 42, 467, - -1, 1489, -1, -1, -1, 1247, 1248, 3, 4, 5, - 6, 55, -1, 57, 58, -1, -1, -1, -1, -1, - 1262, -1, -1, 1137, 1138, -1, 1140, 1141, 42, 1143, - -1, 687, 1485, -1, 1487, -1, 504, 505, 506, 507, - -1, 55, -1, 57, 58, -1, 42, 61, -1, -1, - -1, -1, -1, -1, -1, -1, 1509, 71, -1, 55, - -1, 57, 58, 81, 1373, -1, -1, 81, 1310, 1311, - 1523, -1, 423, -1, -1, 89, -1, -1, -1, 430, - 94, -1, -1, -1, -1, 820, 742, 1329, 1330, -1, - -1, 747, -1, 89, 562, -1, 564, -1, 833, -1, - 835, -1, 837, -1, 1413, 1414, 1415, 575, -1, 577, - 578, -1, 580, -1, 1228, 1229, -1, -1, -1, 587, - -1, -1, -1, 591, -1, -1, -1, -1, -1, -1, - 3, 4, 5, 6, -1, -1, 154, 605, -1, 3, - 4, 5, -1, 494, -1, 880, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, -1, 175, -1, -1, - 694, 695, -1, 697, -1, -1, -1, 31, -1, 42, - 188, -1, 640, 641, 642, 643, 644, 645, -1, -1, - 915, -1, 55, -1, 57, 58, 3, 4, 5, 6, - 63, 55, -1, 57, 58, -1, -1, 853, 71, 733, - -1, 857, -1, 1317, 1318, 1319, -1, 558, 81, 560, - 561, -1, -1, -1, -1, 683, 89, -1, -1, 687, - -1, 94, -1, -1, -1, 42, 694, 695, -1, 697, - -1, 887, 49, -1, -1, -1, 587, 893, -1, -1, - 57, 58, -1, 594, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 723, -1, -1, 726, -1, - 728, -1, -1, -1, 81, 733, 734, 735, -1, -1, - 1384, 1385, 89, 4, 742, -1, -1, 933, -1, 747, - 3, 4, 5, 14, 7, -1, 754, 755, 756, -1, - -1, -1, -1, 24, 25, -1, -1, -1, 766, -1, - 31, 32, -1, 34, 960, 36, -1, -1, 31, -1, - 41, -1, -1, -1, -1, 38, 972, -1, -1, -1, - -1, -1, -1, 54, -1, 56, -1, 3, 4, 5, - 6, -1, 55, 64, 57, 58, -1, 3, 4, 5, - 71, 7, 8, 9, -1, -1, -1, -1, 816, 1005, - -1, 1007, 83, -1, -1, -1, -1, 891, 892, 893, - -1, -1, -1, -1, -1, 1100, 42, 1102, -1, 1104, - 838, -1, 840, 49, -1, 1489, -1, -1, -1, 847, - -1, 57, 58, 851, -1, 853, -1, 855, 856, 857, - -1, 57, 58, -1, 862, -1, -1, 128, -1, 933, - -1, -1, -1, -1, 135, 81, -1, -1, 139, 760, - -1, -1, 143, 89, -1, 146, 147, 148, -1, 887, - -1, 889, 440, 891, 892, 893, -1, -1, 446, 160, - -1, -1, 1088, 3, 4, 5, 6, 7, 8, 9, - -1, -1, 12, -1, 14, -1, 177, 178, 179, -1, - -1, -1, -1, 471, 1189, 1111, -1, -1, 476, 29, - -1, 31, 32, -1, -1, 933, -1, 37, -1, 820, - 488, 489, 42, 491, -1, 206, 46, -1, 48, 947, - -1, -1, 833, -1, 835, 55, 837, 57, 58, 4, - 5, -1, 960, 8, 9, -1, -1, -1, -1, 14, - -1, 71, -1, -1, 972, -1, -1, -1, -1, 240, - -1, 81, -1, -1, 29, -1, 31, 985, -1, 89, - -1, 91, 37, -1, 94, 95, -1, 995, 98, 880, - -1, 46, -1, -1, -1, -1, -1, 1005, -1, 1007, - 55, -1, 57, 58, 59, -1, -1, 278, 279, -1, - 1084, 1085, 1086, 1087, 1088, 7, 8, 9, 1092, -1, - -1, -1, 14, -1, 915, 583, 584, -1, -1, -1, - 588, 1039, 1040, -1, 1042, 1109, 1110, 1111, -1, 94, - 32, -1, 933, -1, -1, 37, -1, -1, -1, -1, - -1, 322, -1, -1, 46, 326, -1, 328, 329, 330, - -1, -1, -1, -1, 335, 1139, -1, -1, 339, 61, - -1, -1, -1, -1, -1, -1, 1084, 1085, 1086, 1087, - 1088, -1, -1, 354, 1092, -1, -1, 7, 8, 9, - 3, 4, 5, 6, 14, -1, 9, -1, -1, -1, - -1, 1109, 1110, 1111, -1, -1, -1, -1, -1, -1, - 381, -1, 32, 384, 385, -1, -1, 37, 1192, 1193, - -1, 1195, -1, -1, 395, -1, 46, 398, -1, 42, - -1, 1139, 403, -1, -1, 48, 1144, -1, 1146, -1, - -1, 61, 55, -1, 57, 58, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 71, -1, - -1, 432, -1, 434, -1, 436, 437, 438, 81, -1, - -1, -1, 443, -1, -1, -1, 89, 448, 91, -1, - 451, 94, 95, -1, 1192, 1193, -1, 1195, -1, -1, - 748, -1, 750, -1, -1, 466, 467, -1, 1, -1, - 3, 4, 5, 6, -1, 8, -1, 1215, -1, 1100, - -1, 1102, 1, 1104, 3, 4, 5, 6, 7, 8, - 9, -1, -1, -1, -1, 14, -1, -1, -1, -1, - -1, -1, 1428, 504, 505, 506, 507, -1, -1, 42, - 29, -1, 31, 32, 33, -1, 49, -1, 37, 38, - -1, -1, 55, 42, 57, 58, -1, 46, 47, -1, - 49, -1, -1, -1, 822, 823, 55, 825, 57, 58, - -1, -1, 61, -1, 63, -1, -1, -1, -1, -1, - -1, -1, 71, -1, -1, -1, 89, 1295, 1296, 1297, - -1, 562, 81, 564, 852, -1, -1, -1, 1189, 1373, - 89, -1, -1, -1, -1, 94, 577, 578, -1, 580, - -1, -1, 3, 4, 5, 6, 587, -1, 9, -1, - -1, -1, 111, -1, -1, -1, -1, -1, 599, -1, - -1, -1, -1, -1, 605, -1, -1, 895, -1, 1413, - 1414, 1415, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, - -1, 632, -1, -1, 55, 1373, 57, 58, -1, 640, - 641, 642, 643, 644, 645, -1, -1, -1, -1, -1, - 71, -1, 3, 4, 5, 6, -1, -1, 9, -1, - 81, -1, 663, -1, -1, -1, -1, -1, 89, -1, - 91, 959, -1, 94, 95, 1413, 1414, 1415, -1, -1, - -1, -1, 683, 971, -1, -1, 687, -1, -1, -1, - 1428, 42, -1, 694, 695, -1, 697, 48, -1, -1, - -1, -1, -1, -1, 55, 1443, 57, 58, -1, 3, - 4, 5, 6, -1, -1, 9, -1, -1, -1, -1, - 71, -1, 723, -1, -1, 726, -1, 728, -1, -1, - 81, -1, 733, 734, 735, -1, -1, -1, 89, -1, - 91, 742, -1, 94, 95, -1, 747, -1, 42, -1, - -1, -1, 1373, 754, 755, 756, -1, -1, 328, 329, - 330, 55, -1, 57, 58, 766, 1054, -1, -1, -1, - -1, -1, -1, 3, 4, 5, 6, 71, -1, -1, - 4, 5, -1, 7, 8, 9, -1, 81, 12, -1, - 14, -1, -1, -1, -1, 89, -1, -1, -1, -1, - 94, -1, -1, 1091, -1, 29, -1, 31, 32, -1, - -1, -1, 42, 37, -1, 816, -1, -1, -1, 49, - -1, -1, 46, -1, 48, -1, -1, 57, 58, -1, - -1, 55, -1, 57, 58, -1, -1, 838, -1, 840, - -1, -1, -1, -1, -1, 4, 847, 71, -1, -1, - 851, 81, 853, -1, 855, 856, 857, 81, -1, 89, - 1148, 862, -1, -1, 1152, -1, -1, 91, -1, -1, - 94, 95, 31, 32, 98, 34, -1, 36, -1, -1, - -1, -1, 41, -1, -1, -1, 887, -1, 889, -1, - 891, 892, 893, -1, -1, 54, 1184, 56, -1, 3, - 4, 5, 6, 7, 8, 9, -1, -1, 12, -1, - 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, -1, -1, -1, 29, -1, 31, 32, -1, - -1, -1, 933, 37, -1, 1223, -1, -1, 42, 1227, - -1, -1, 46, -1, -1, -1, 947, -1, -1, -1, - -1, 55, -1, 57, 58, -1, -1, 958, -1, 960, - -1, 1249, 1250, -1, -1, -1, -1, 71, -1, 128, - -1, 972, -1, 132, 133, -1, 135, 81, -1, -1, - 139, -1, 141, -1, 143, 89, -1, 146, 147, 148, - 94, -1, -1, -1, 995, -1, -1, -1, -1, -1, - -1, 160, -1, -1, 1005, -1, 1007, 577, 578, -1, - 580, -1, -1, -1, -1, -1, -1, 587, 177, 178, - 179, -1, -1, -1, -1, -1, -1, 4, 187, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1039, 1040, - -1, 1042, -1, -1, -1, -1, -1, 206, -1, -1, - 3, 4, 5, 6, 31, 32, 9, 34, -1, 36, - 3, 4, 5, 6, 41, -1, -1, -1, -1, -1, - 640, -1, 642, 643, -1, 645, -1, 54, -1, 56, - -1, 240, -1, 1084, 1085, 1086, 1087, 1088, -1, 42, - -1, 1092, -1, 3, 4, 5, 6, 1098, -1, 42, - -1, -1, 55, -1, 57, 58, 49, -1, 1109, 1110, - 1111, -1, -1, 683, 57, 58, -1, -1, 71, -1, - -1, -1, -1, -1, 1125, -1, -1, -1, 81, -1, - -1, -1, 42, -1, -1, -1, 89, -1, 1139, 49, - -1, 94, -1, 1144, -1, 1146, 89, 57, 58, -1, - 309, -1, -1, -1, -1, 4, 5, -1, 135, 8, - 9, -1, 139, -1, -1, 14, 143, 326, -1, 146, - 147, 148, -1, -1, -1, 334, -1, -1, -1, 89, - 339, -1, -1, 160, -1, -1, -1, -1, 37, -1, - -1, 1192, 1193, -1, 1195, 354, 766, 46, -1, 48, - 177, 178, 179, -1, -1, -1, 55, -1, 57, 58, - -1, -1, -1, -1, 1215, -1, 375, -1, -1, -1, - -1, -1, 71, -1, -1, 384, -1, -1, -1, 206, - -1, -1, 81, -1, -1, -1, 395, -1, -1, 398, - -1, -1, 91, -1, 403, 94, 95, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 328, 329, 330, -1, - -1, -1, -1, 240, -1, -1, -1, -1, 838, -1, - 840, -1, -1, 432, -1, 434, -1, 436, 437, 438, - -1, 851, -1, -1, 443, 855, 856, 857, -1, 448, - -1, -1, 451, -1, 1295, 1296, 1297, 1, -1, 3, - 4, 5, 6, 7, 8, 9, -1, -1, 467, -1, - 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 891, 892, 893, -1, 29, -1, 31, 32, -1, - -1, -1, -1, 37, -1, -1, -1, 496, 42, -1, - 499, -1, 46, 47, -1, 49, -1, -1, -1, -1, - -1, 55, -1, 57, 58, 514, 515, 516, 335, 63, - -1, -1, 339, 933, -1, -1, -1, 71, -1, -1, - 529, -1, 1373, -1, -1, -1, -1, 81, -1, -1, - -1, -1, -1, -1, -1, 89, 3, 4, 5, 6, - 94, -1, 9, -1, 87, -1, 89, -1, 91, -1, - -1, -1, -1, -1, -1, -1, -1, 384, -1, -1, - -1, -1, 1413, 1414, 1415, 574, -1, -1, 395, -1, - -1, 398, -1, -1, -1, 42, 403, 1428, 587, -1, - -1, -1, -1, -1, 3, 4, 5, 6, 55, -1, - 57, 58, 1443, 136, -1, 138, 605, -1, -1, -1, - -1, -1, -1, -1, 71, 432, -1, 434, -1, 436, - 437, 438, -1, -1, 81, -1, 443, -1, -1, -1, - -1, 448, 89, 42, 451, -1, -1, 94, -1, -1, - -1, 640, 641, 642, 643, -1, 55, -1, 57, 58, - 467, -1, -1, -1, 63, -1, -1, -1, -1, -1, - -1, -1, 71, -1, -1, 577, 578, -1, -1, -1, - -1, -1, 81, -1, 1084, 1085, 1086, 1087, 1088, -1, - 89, -1, 1092, -1, 683, 94, -1, -1, 687, -1, - -1, -1, -1, -1, -1, 694, 695, -1, 697, 1109, - 1110, 1111, -1, -1, -1, -1, -1, -1, -1, 1, - -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, - -1, -1, 14, 3, 4, 5, 6, 726, 640, 728, - 642, 643, -1, 645, 733, 734, 735, 29, -1, 31, + 146, 147, 4, 156, 24, 4, 329, 664, 335, 381, + 193, 56, 79, 58, 381, 4, 466, 381, 445, 125, + 54, 4, 197, 661, 232, 285, 286, 4, 83, 526, + 89, 36, 91, 644, 36, 1269, 41, 36, 352, 41, + 132, 923, 41, 61, 223, 228, 14, 36, 31, 32, + 817, 56, 41, 36, 193, 230, 4, 317, 41, 36, + 201, 202, 14, 202, 41, 1435, 71, 4, 53, 132, + 133, 23, 45, 34, 141, 128, 580, 136, 83, 1402, + 133, 1292, 87, 587, 89, 11, 91, 38, 36, 1459, + 11, 11, 63, 41, 277, 1419, 1299, 1432, 422, 36, + 83, 106, 107, 1306, 41, 48, 55, 726, 56, 728, + 60, 1, 64, 76, 82, 78, 735, 417, 1132, 1133, + 187, 166, 1437, 55, 1, 0, 75, 335, 12, 651, + 135, 136, 1146, 138, 1458, 25, 0, 105, 34, 110, + 75, 63, 63, 75, 336, 337, 329, 1, 193, 1, + 111, 94, 135, 1488, 581, 160, 201, 202, 135, 58, + 111, 111, 9, 146, 147, 1489, 151, 110, 1538, 59, + 48, 123, 79, 63, 12, 498, 60, 160, 196, 63, + 59, 61, 59, 160, 110, 1500, 204, 135, 110, 110, + 110, 1402, 4, 145, 177, 178, 388, 389, 135, 184, + 55, 1524, 7, 1406, 60, 59, 96, 59, 63, 63, + 75, 63, 160, 663, 98, 62, 94, 95, 1232, 48, + 520, 100, 60, 160, 36, 63, 110, 1241, 1242, 41, + 1244, 111, 110, 38, 326, 1469, 61, 94, 3, 4, + 5, 6, 96, 1446, 96, 3, 4, 5, 6, 8, + 9, 147, 148, 742, 110, 14, 59, 410, 747, 49, + 98, 229, 65, 326, 60, 94, 1033, 322, 220, 221, + 634, 83, 599, 278, 34, 886, 60, 42, 37, 338, + 232, 48, 61, 179, 42, 94, 111, 46, 1491, 48, + 436, 437, 57, 58, 193, 61, 48, 55, 65, 57, + 58, 354, 201, 202, 309, 4, 5, 60, 449, 450, + 34, 450, 375, 627, 110, 687, 457, 322, 4, 5, + 687, 39, 375, 135, 89, 330, 110, 94, 469, 228, + 443, 89, 111, 338, 339, 94, 243, 55, 451, 322, + 385, 386, 94, 95, 866, 111, 487, 869, 160, 301, + 384, 60, 61, 857, 4, 5, 339, 110, 57, 58, + 683, 55, 339, 60, 853, 665, 94, 335, 65, 55, + 55, 57, 58, 75, 1388, 1389, 381, 75, 277, 76, + 385, 75, 81, 905, 906, 71, 146, 147, 148, 893, + 75, 339, 381, 890, 412, 81, 441, 48, 381, 351, + 1282, 55, 339, 1170, 449, 450, 63, 57, 58, 95, + 48, 603, 457, 309, 25, 48, 27, 28, 75, 179, + 94, 75, 146, 147, 148, 430, 25, 854, 12, 933, + 329, 81, 65, 60, 493, 27, 28, 1296, 456, 1298, + 32, 60, 61, 94, 95, 4, 48, 430, 59, 76, + 48, 79, 63, 436, 437, 179, 94, 95, 1340, 110, + 59, 94, 467, 65, 63, 467, 63, 1349, 1350, 61, + 61, 960, 110, 65, 109, 103, 60, 36, 75, 63, + 48, 65, 41, 972, 467, 96, 459, 386, 493, 25, + 467, 496, 94, 95, 499, 819, 94, 96, 503, 504, + 505, 506, 507, 61, 132, 55, 48, 562, 958, 48, + 322, 516, 464, 141, 98, 887, 1005, 55, 1007, 111, + 887, 526, 48, 887, 529, 63, 94, 339, 1147, 55, + 467, 710, 32, 712, 48, 862, 63, 75, 717, 48, + 63, 437, 438, 59, 48, 48, 1068, 1069, 75, 75, + 449, 450, 94, 95, 75, 94, 561, 562, 457, 187, + 467, 606, 55, 704, 48, 757, 111, 48, 94, 381, + 469, 605, 3, 4, 5, 580, 528, 4, 5, 562, + 94, 1463, 587, 766, 1088, 94, 95, 59, 487, 1460, + 94, 94, 220, 48, 577, 578, 641, 580, 643, 859, + 496, 1472, 94, 499, 587, 48, 640, 1111, 642, 643, + 94, 1482, 632, 94, 720, 243, 1043, 48, 430, 515, + 516, 921, 48, 591, 55, 48, 57, 58, 1499, 63, + 57, 58, 55, 529, 4, 5, 641, 48, 683, 94, + 645, 75, 55, 663, 76, 55, 55, 1518, 1098, 683, + 48, 94, 75, 63, 862, 467, 60, 106, 107, 704, + 55, 706, 48, 94, 25, 75, 27, 28, 94, 110, + 1541, 94, 76, 110, 78, 1125, 436, 437, 438, 95, + 632, 110, 687, 94, 743, 744, 745, 57, 58, 734, + 48, 587, 644, 4, 5, 740, 94, 55, 59, 733, + 1024, 1025, 63, 110, 687, 55, 334, 606, 94, 60, + 61, 81, 436, 437, 438, 1038, 11, 75, 670, 4, + 5, 726, 111, 728, 726, 75, 728, 27, 28, 734, + 735, 94, 32, 735, 3, 96, 94, 742, 743, 744, + 745, 61, 747, 726, 643, 728, 57, 58, 36, 726, + 562, 728, 735, 41, 55, 95, 729, 730, 735, 742, + 60, 61, 63, 391, 747, 738, 27, 28, 580, 3, + 4, 5, 57, 58, 75, 587, 955, 956, 957, 55, + 4, 5, 113, 1107, 683, 733, 734, 63, 95, 726, + 1428, 728, 1116, 1117, 113, 1452, 81, 1121, 735, 75, + 63, 3, 4, 5, 6, 704, 55, 999, 1000, 1001, + 55, 816, 4, 5, 63, 820, 8, 9, 63, 726, + 94, 728, 14, 57, 58, 75, 75, 734, 735, 94, + 75, 898, 75, 57, 58, 75, 464, 29, 1162, 31, + 42, 60, 847, 84, 85, 37, 48, 81, 853, 754, + 755, 756, 857, 55, 46, 57, 58, 81, 1039, 1040, + 309, 1042, 490, 55, 760, 57, 58, 766, 75, 71, + 853, 11, 855, 856, 857, 687, 7, 8, 9, 81, + 60, 61, 887, 14, 889, 890, 111, 89, 893, 91, + 60, 61, 94, 95, 862, 1219, 60, 61, 887, 60, + 61, 32, 94, 60, 887, 110, 37, 110, 891, 892, + 893, 3, 4, 5, 726, 46, 728, 984, 4, 5, + 965, 966, 110, 735, 110, 61, 878, 110, 933, 963, + 742, 113, 111, 1257, 886, 747, 111, 3, 4, 5, + 1086, 1087, 947, 110, 113, 75, 574, 75, 953, 994, + 933, 75, 110, 4, 5, 960, 59, 113, 9, 113, + 856, 857, 590, 1109, 1110, 57, 58, 972, 110, 55, + 55, 57, 58, 110, 8, 1298, 110, 960, 427, 94, + 3, 4, 5, 6, 113, 71, 48, 65, 60, 972, + 995, 57, 58, 995, 94, 81, 61, 893, 111, 37, + 1005, 65, 1007, 976, 55, 65, 57, 58, 65, 982, + 983, 110, 995, 986, 987, 963, 61, 990, 995, 42, + 71, 63, 1005, 1090, 1007, 65, 49, 110, 287, 288, + 81, 110, 4, 5, 57, 58, 25, 933, 27, 28, + 110, 853, 110, 302, 95, 857, 305, 496, 65, 308, + 499, 1351, 311, 65, 503, 113, 315, 1429, 995, 94, + 441, 60, 1429, 1363, 323, 63, 89, 516, 76, 110, + 59, 110, 76, 1025, 63, 887, 76, 984, 1098, 110, + 529, 893, 110, 1088, 533, 57, 58, 63, 995, 3, + 4, 5, 48, 1138, 1139, 110, 1141, 1142, 76, 1144, + 110, 110, 63, 1086, 1087, 1088, 1111, 96, 60, 81, + 559, 113, 63, 110, 12, 25, 565, 27, 28, 1419, + 1443, 933, 3, 4, 5, 6, 1109, 1110, 1111, 27, + 28, 87, 88, 893, 32, 110, 92, 93, 94, 95, + 111, 55, 1147, 57, 58, 1147, 110, 110, 960, 59, + 48, 95, 89, 63, 113, 1107, 1456, 48, 1458, 113, + 972, 42, 60, 61, 1147, 63, 113, 65, 49, 893, + 1147, 4, 5, 933, 1474, 110, 57, 58, 81, 82, + 83, 84, 85, 995, 1229, 1230, 96, 110, 110, 1489, + 110, 1087, 1088, 1005, 110, 1007, 94, 95, 1373, 111, + 98, 1206, 1526, 110, 1206, 111, 60, 1206, 89, 933, + 1147, 1216, 110, 65, 1110, 1111, 65, 3, 4, 5, + 60, 60, 55, 1206, 57, 58, 110, 110, 94, 1206, + 94, 94, 94, 861, 111, 863, 1143, 110, 110, 113, + 1147, 3, 4, 5, 8, 7, 8, 9, 3, 4, + 5, 1203, 1297, 1298, 110, 514, 515, 110, 1411, 110, + 1443, 111, 1296, 110, 1298, 113, 1239, 1240, 1414, 1415, + 898, 57, 58, 1318, 1319, 1320, 1088, 65, 3, 4, + 5, 110, 7, 8, 9, 110, 110, 1292, 110, 110, + 1292, 110, 1297, 110, 1299, 57, 58, 1299, 110, 1111, + 1299, 1306, 57, 58, 1306, 110, 63, 1306, 48, 1292, + 113, 110, 37, 110, 110, 1292, 1299, 3, 4, 5, + 97, 34, 1299, 1306, 113, 706, 1086, 1087, 1088, 1306, + 55, 110, 57, 58, 59, 1147, 1288, 110, 4, 5, + 1385, 1386, 110, 9, 110, 110, 63, 110, 63, 1109, + 1110, 1111, 61, 61, 9, 61, 984, 16, 94, 740, + 94, 61, 1086, 1087, 1088, 61, 94, 3, 4, 5, + 6, 57, 58, 59, 109, 824, 99, 17, 94, 61, + 105, 106, 107, 81, 61, 1109, 1110, 1111, 110, 55, + 1342, 57, 58, 11, 1206, 94, 110, 1402, 1403, 1298, + 1402, 1406, 60, 110, 1406, 71, 42, 1406, 857, 110, + 1444, 1416, 61, 49, 61, 81, 3, 4, 5, 1402, + 1403, 57, 58, 1406, 1429, 1402, 110, 1432, 61, 1406, + 1435, 1414, 1415, 1435, 65, 702, 1435, 1065, 61, 110, + 11, 1446, 61, 110, 1446, 1490, 1429, 1446, 11, 1432, + 61, 0, 1435, 89, 1459, 0, 154, 1459, 1435, 0, + 1459, 409, 1090, 1446, 2, 354, 887, 160, 55, 1446, + 57, 58, 59, 1427, 741, 160, 1459, 175, 1374, 746, + 1292, 734, 1459, 1488, 1098, 93, 1491, 1299, 138, 1491, + 188, 1538, 1491, 1466, 1306, 1398, 280, 4, 1297, 878, + 873, 222, 670, 1125, 953, 1488, 958, 14, 1491, 995, + 612, 3, 4, 5, 1491, 1143, 734, 871, 25, 1415, + 1416, 1145, 184, 123, 31, 32, 562, 34, 326, 36, + 1299, 1207, 1474, 1538, 41, 1452, 1538, 1449, 1513, 1538, + 27, 28, 1511, 942, 1443, 32, 1216, 54, -1, 56, + 3, 4, 5, 381, -1, 1538, -1, 64, -1, -1, + -1, 1538, -1, 55, 71, 57, 58, -1, -1, 828, + 3, 4, 5, 60, 61, 82, 83, -1, 65, -1, + -1, 848, -1, 850, 965, 966, -1, -1, -1, -1, + 1402, 1403, 9, -1, 1406, 12, 855, 856, 105, -1, + -1, -1, 430, -1, 57, 58, 39, 40, -1, 42, + -1, -1, 423, 994, 1374, -1, -1, 1429, -1, 430, + 1432, 128, 55, 1435, 57, 58, 133, -1, 135, -1, + -1, 48, 139, -1, 1446, 142, 143, -1, -1, 146, + 147, 148, -1, 60, -1, 62, 63, 1459, 65, -1, + 1374, 8, 9, 160, 1414, 1415, 1416, 14, -1, 76, + -1, 78, 1111, -1, 4, 5, -1, -1, 8, 9, + 177, 178, 179, -1, 14, -1, 1488, 94, 95, 1491, + 37, 98, -1, 494, -1, -1, -1, -1, -1, 46, + 1414, 1415, 1416, 110, -1, -1, -1, 37, -1, 206, + -1, -1, -1, -1, -1, -1, 46, -1, 48, 1158, + 1159, 1160, 1161, -1, 221, 55, -1, 57, 58, 1168, + -1, -1, 229, -1, -1, -1, 1538, 3, 4, 5, + 6, 71, -1, 240, -1, -1, -1, 1004, -1, 1006, + -1, 81, 440, 4, 5, -1, -1, 558, 446, 560, + 561, 91, 580, -1, 94, 95, -1, 1138, 1139, 587, + 1141, 1142, -1, 1144, -1, -1, 42, -1, -1, -1, + -1, 278, 279, 471, -1, -1, 587, -1, 476, -1, + -1, 57, 58, 594, 45, -1, 1045, -1, -1, -1, + 488, 489, 1059, 491, 55, -1, 57, 58, -1, -1, + -1, 4, 5, -1, 7, 8, 9, -1, -1, 12, + -1, 14, 4, 5, -1, 322, -1, 9, -1, 326, + -1, 328, 329, 330, -1, -1, 29, -1, 31, 32, + -1, -1, 339, -1, 37, -1, -1, -1, 1287, -1, + -1, -1, -1, 46, -1, -1, -1, 354, 1229, 1230, + 1109, 1110, 55, -1, 57, 58, 48, -1, -1, 687, + -1, -1, 1129, 55, -1, 57, 58, 1134, 375, 3, + 4, 5, -1, 7, 381, -1, -1, 384, 385, 71, + -1, -1, -1, -1, -1, 583, 584, -1, 395, 81, + 588, 398, -1, -1, -1, 98, 403, 31, -1, 91, + -1, -1, 94, 95, 38, -1, -1, 177, 178, 179, + -1, 1360, -1, -1, 742, -1, 1183, -1, -1, 747, + -1, 55, -1, 57, 58, 432, -1, 434, -1, 436, + 437, 438, -1, -1, -1, -1, 443, 1318, 1319, 1320, + -1, 448, -1, -1, 451, 7, 8, 9, -1, 760, + 423, -1, 14, 1402, 1403, -1, -1, 430, -1, -1, + 467, -1, -1, 3, 4, 5, 6, 1416, -1, 9, 32, -1, -1, -1, -1, 37, -1, -1, -1, -1, - 42, -1, -1, -1, 46, -1, -1, 49, 575, -1, - -1, 760, 42, 55, -1, 57, 58, 300, -1, 61, - -1, 683, -1, -1, -1, 55, -1, 57, 58, 71, - -1, 61, 1192, 1193, -1, 1195, -1, -1, 605, 81, - -1, 71, -1, -1, 4, 5, -1, 89, 8, 9, - -1, 81, 94, -1, 14, 338, -1, -1, -1, 89, - -1, -1, -1, -1, 94, -1, -1, -1, -1, 29, - -1, 31, -1, 640, 641, 642, 643, 37, -1, -1, - -1, -1, -1, -1, -1, -1, 46, -1, 48, -1, + -1, 1248, 1249, 1432, 46, -1, -1, -1, 3, 4, + 5, 6, -1, -1, -1, -1, 1263, 504, 505, 506, + 507, -1, 42, -1, 1385, 1386, -1, -1, -1, 820, -1, -1, -1, -1, -1, 55, -1, 57, 58, -1, - -1, -1, -1, -1, 766, -1, 855, 856, 857, -1, - -1, 71, 861, -1, -1, -1, 683, -1, -1, -1, - 687, 81, -1, -1, -1, -1, -1, 694, 695, -1, - 697, 91, -1, -1, 94, 95, -1, -1, -1, 422, - 423, -1, 891, 892, 893, -1, -1, 430, -1, 898, - 4, 5, -1, -1, 8, 9, -1, -1, -1, 726, - 14, 728, -1, -1, -1, -1, 733, 734, 735, -1, - -1, -1, -1, -1, -1, 29, 838, 31, 840, -1, - -1, -1, -1, 37, 933, -1, -1, -1, -1, 851, - -1, -1, 46, 855, 856, -1, -1, -1, -1, -1, - -1, 55, -1, 57, 58, -1, -1, -1, -1, -1, - 493, 494, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 891, - 892, 3, 4, 5, 6, 984, -1, 9, -1, -1, - 94, -1, -1, 526, -1, 528, 995, -1, 531, 532, - -1, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 42, -1, -1, -1, -1, 558, -1, 560, 561, -1, - -1, -1, -1, 55, -1, 57, 58, -1, -1, -1, - 3, 4, 5, 6, -1, 862, 9, -1, -1, 71, - -1, -1, -1, -1, 587, -1, -1, -1, -1, 81, - -1, 594, -1, -1, -1, -1, 1065, 89, 3, 4, - 5, 6, 94, -1, 891, 892, 893, -1, -1, 42, - -1, 614, 615, -1, -1, 1084, 1085, 1086, 1087, 1088, - -1, 1090, 55, 1092, 57, 58, -1, -1, -1, 4, - 5, 34, -1, 8, 9, -1, -1, 42, 71, 14, - 1109, 1110, 1111, -1, -1, -1, 933, -1, 81, -1, - 55, 54, 57, 58, -1, -1, 89, -1, 63, -1, - -1, 94, 37, -1, -1, -1, 71, 670, -1, -1, - 1139, 46, -1, 48, -1, 1144, 81, 1146, -1, -1, - 55, -1, 57, 58, 89, -1, -1, -1, -1, 94, - -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, - -1, -1, 1084, 1085, 1086, 1087, 81, -1, 995, -1, - 1092, -1, -1, -1, -1, -1, 91, -1, -1, 94, - 95, -1, 725, 1192, 1193, -1, 1195, 1109, 1110, 4, - 5, -1, -1, 8, 9, -1, -1, -1, -1, 14, - 743, 744, 745, 146, 147, 148, -1, -1, -1, -1, - -1, -1, -1, -1, 29, -1, 31, 760, -1, -1, - -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, - -1, 46, -1, -1, 177, 178, 179, -1, -1, 782, - 55, -1, 57, 58, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 1084, 1085, 1086, - 1087, 1088, -1, 206, -1, 1092, 3, 4, 5, 6, - 1192, 1193, 9, 1195, -1, -1, 819, 820, -1, -1, - -1, -1, 1109, 1110, 1111, -1, 1295, 1296, 1297, -1, - 833, -1, 835, -1, 837, -1, -1, 4, 5, -1, - 7, 8, 9, -1, -1, 42, -1, 14, -1, -1, - -1, -1, 1139, -1, -1, -1, -1, 1144, 55, 1146, - 57, 58, 29, -1, 31, 32, -1, 870, 4, 5, - 37, 7, 8, 9, 71, -1, 279, 880, 14, 46, - -1, -1, 49, -1, 81, -1, -1, 890, 55, -1, - 57, 58, 89, 29, -1, 31, 32, 94, -1, -1, - 903, 37, -1, -1, 1373, 1192, 1193, -1, 1195, -1, - 46, -1, 915, -1, -1, -1, -1, -1, -1, 55, - -1, 57, 58, -1, -1, 328, 329, 330, -1, -1, - 933, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, 8, 9, 1413, 1414, 1415, -1, 14, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 54, 32, -1, -1, -1, - -1, 37, 975, -1, 1443, -1, 42, -1, -1, -1, - 46, 384, 48, -1, 106, 107, -1, -1, -1, 55, - 79, 57, 58, 82, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 71, -1, -1, 1295, 1296, - 1297, -1, -1, -1, 103, 81, 105, -1, -1, -1, - -1, 1024, 1025, 89, -1, 1028, -1, -1, 94, 432, - -1, 434, -1, 436, 437, 438, -1, -1, -1, -1, - 443, -1, -1, -1, -1, 448, -1, -1, 451, -1, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - -1, -1, -1, -1, 14, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 29, - -1, 31, 32, -1, -1, -1, 1373, 37, 177, 178, - 179, -1, 42, -1, -1, -1, 46, 1100, 187, 1102, - -1, 1104, -1, -1, 1107, 55, -1, 57, 58, -1, - -1, 61, -1, 1116, 1117, -1, -1, 206, 1121, -1, - -1, 71, -1, -1, -1, -1, 1413, 1414, 1415, -1, - -1, 81, 1135, 1136, -1, -1, -1, -1, -1, 89, - 229, -1, -1, -1, 94, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 243, -1, 1443, -1, 1161, -1, - -1, 564, -1, 1, -1, 3, 4, 5, 6, 7, - 8, 9, -1, -1, 577, 578, 14, 580, -1, -1, - -1, -1, -1, -1, 587, -1, 1189, 309, -1, -1, - -1, 29, -1, 31, 32, 33, -1, -1, -1, 37, - 38, -1, 605, -1, 42, -1, -1, -1, 46, 47, - -1, 49, -1, -1, -1, 1218, -1, 55, -1, 57, - 58, -1, -1, 61, -1, 63, -1, -1, -1, -1, - -1, 1234, -1, 71, -1, -1, -1, 640, -1, 642, - 643, -1, 645, 81, -1, 334, 335, 3, 4, 5, - 6, 89, -1, 1256, -1, -1, 94, -1, -1, 381, + -1, 494, 833, -1, 835, 853, 837, 42, -1, 857, + -1, 71, -1, 1292, -1, -1, -1, 1486, -1, 1488, + 55, 81, 57, 58, 1311, 1312, 61, -1, 63, 89, + 748, -1, 750, -1, 94, 562, 71, 564, -1, 887, + -1, 1510, -1, 1330, 1331, 893, 81, -1, 575, 880, + 577, 578, -1, 580, 89, 1524, -1, -1, -1, 94, + 587, -1, -1, -1, 591, 558, -1, 560, 561, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 605, -1, + -1, -1, -1, -1, 915, 933, 3, 4, 5, 1490, + 7, 8, 9, -1, 106, 107, -1, -1, -1, 4, + 5, 594, 933, -1, 822, 823, -1, 825, -1, 3, + 4, 5, 960, 640, 641, 642, 643, 644, 645, -1, + 37, -1, -1, -1, 972, -1, 3, 4, 5, 6, + -1, -1, 9, -1, 852, 1414, 1415, 31, -1, -1, + 57, 58, 432, 48, 434, -1, 436, 437, 438, -1, + 55, -1, 57, 58, -1, -1, 683, 1005, 448, 1007, + 687, 55, -1, 57, 58, 42, 71, 694, 695, -1, + 697, 48, 7, 8, 9, -1, 81, 895, 55, 14, + 57, 58, -1, -1, -1, -1, 91, -1, -1, 94, + 95, 7, 8, 9, 71, -1, 723, 32, 14, 726, + -1, 728, 37, -1, 81, -1, 733, 734, 735, -1, + -1, 46, 89, -1, 91, 742, 32, 94, 95, -1, + 747, 37, 3, 4, 5, 6, 61, 754, 755, 756, + 46, 1, -1, 3, 4, 5, 6, -1, 8, 766, + 1088, 959, -1, -1, -1, 61, 79, 80, 81, 82, + 83, 84, 85, 971, 4, -1, -1, -1, -1, -1, + -1, 42, -1, 1111, 14, -1, -1, -1, 49, 1100, + -1, 1102, 42, 1104, 24, 25, 57, 58, -1, 49, + -1, 31, 32, -1, 34, 55, 36, 57, 58, 816, + -1, 41, -1, -1, -1, -1, -1, 309, -1, -1, + 81, -1, -1, -1, 54, -1, 56, -1, 89, -1, + -1, 838, -1, 840, 64, -1, -1, -1, -1, 89, + 847, 71, -1, -1, 851, -1, 853, 820, 855, 856, + 857, -1, -1, 83, -1, 862, 1054, -1, -1, -1, + 833, -1, 835, -1, 837, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 1190, + 887, -1, 889, -1, 891, 892, 893, -1, -1, 381, + 4, 5, -1, 1091, 8, 9, -1, -1, 128, -1, + 14, -1, -1, -1, -1, 135, -1, 880, -1, 139, + -1, -1, -1, 143, -1, -1, 146, 147, 148, -1, + -1, -1, -1, 37, 694, 695, 933, 697, -1, -1, + 160, -1, 46, -1, 48, -1, -1, -1, 430, -1, + 947, 55, 915, 57, 58, -1, -1, 177, 178, 179, + -1, 1149, -1, 960, -1, 1153, 963, 71, -1, -1, + -1, -1, -1, 733, -1, 972, -1, 81, -1, -1, + -1, -1, -1, -1, -1, -1, 206, 91, 985, -1, + 94, 95, -1, -1, -1, -1, -1, 1185, 995, -1, + -1, -1, 4, 5, -1, -1, 8, 9, 1005, -1, + 1007, -1, 14, -1, 496, -1, -1, 499, -1, -1, + 240, 503, 504, 505, 506, 507, -1, 29, -1, 31, + -1, -1, -1, -1, 516, 37, 1224, -1, -1, -1, + 1228, -1, 1039, 1040, 46, 1042, -1, 529, -1, -1, + -1, -1, -1, 55, -1, 57, 58, 59, 278, 279, + -1, -1, 1250, 1251, -1, -1, -1, -1, 3, 4, + 5, 6, -1, 1374, -1, -1, -1, -1, -1, 561, + -1, -1, -1, -1, -1, -1, -1, 1084, 1085, 1086, + 1087, 1088, 94, -1, -1, 1092, -1, -1, 580, -1, + -1, -1, 322, -1, -1, 587, 326, 42, 328, 329, + 330, 1429, 1109, 1110, 1111, 335, -1, -1, -1, 339, + 55, -1, 57, 58, -1, -1, 61, -1, -1, -1, + -1, 891, 892, 893, 354, -1, 71, 1100, -1, 1102, + -1, 1104, -1, 1140, -1, -1, 81, -1, 1145, -1, + 1147, -1, -1, -1, 89, -1, -1, -1, -1, 94, + -1, 381, -1, -1, 384, 385, -1, 3, 4, 5, + 6, -1, -1, 933, -1, 395, -1, -1, 398, -1, + -1, -1, -1, 403, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 1193, 1194, -1, 1196, + -1, -1, -1, 963, -1, 687, 42, -1, -1, -1, + -1, -1, 432, 49, 434, -1, 436, 437, 438, 1216, + -1, 57, 58, 443, -1, -1, -1, 1190, 448, 4, + 5, 451, 7, 8, 9, -1, -1, 12, -1, 14, + -1, -1, -1, -1, -1, 81, 466, 467, -1, -1, + -1, -1, -1, 89, 29, -1, 31, 32, -1, -1, + 742, -1, 37, -1, -1, 747, -1, -1, -1, -1, + -1, 46, -1, 48, -1, 3, 4, 5, 6, -1, + 55, -1, 57, 58, 504, 505, 506, 507, -1, -1, + -1, -1, 3, 4, 5, 6, 71, -1, -1, 1296, + 1297, 1298, -1, -1, -1, -1, 81, -1, -1, 3, + 4, 5, 6, -1, 42, -1, 91, -1, -1, 94, + 95, 49, -1, 98, 1084, 1085, 1086, 1087, 1088, 57, + 58, 42, 1092, -1, 816, -1, -1, -1, 49, -1, + -1, -1, 562, -1, 564, -1, 57, 58, 42, 1109, + 1110, 1111, -1, 81, -1, 49, -1, 577, 578, -1, + 580, 89, -1, 57, 58, 847, -1, 587, -1, -1, + 81, 853, -1, -1, -1, 857, -1, 1374, 89, 599, + 1140, -1, -1, -1, -1, 605, -1, 81, -1, -1, + -1, -1, -1, -1, -1, 89, -1, -1, 3, 4, + 5, 6, -1, -1, 9, 887, -1, 889, -1, -1, + -1, 893, 632, -1, -1, -1, -1, 1414, 1415, 1416, + 640, 641, 642, 643, 644, 645, -1, -1, -1, -1, + -1, -1, 1429, 1193, 1194, -1, 1196, 42, -1, -1, + -1, -1, -1, 663, -1, -1, -1, 1444, -1, -1, + 55, 933, 57, 58, -1, -1, 328, 329, 330, -1, + -1, -1, -1, 683, -1, 947, 71, 687, -1, -1, + -1, 953, -1, -1, 694, 695, 81, 697, 960, -1, + -1, -1, -1, -1, 89, -1, -1, -1, -1, 94, + 972, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 723, -1, -1, 726, -1, 728, 3, + 4, 5, 6, 733, 734, 735, -1, -1, -1, -1, + -1, -1, 742, 1005, -1, 1007, -1, 747, -1, -1, + -1, -1, -1, -1, 754, 755, 756, 1, -1, 3, + 4, 5, 6, 7, 8, 9, 766, -1, 42, -1, + 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 55, -1, 57, 58, 29, -1, 31, 32, 33, + -1, -1, -1, 37, 38, -1, -1, 71, 42, -1, + -1, -1, 46, 47, -1, 49, -1, 81, -1, -1, + -1, 55, -1, 57, 58, 89, 816, 61, -1, 63, + 94, -1, -1, -1, -1, -1, 1088, 71, -1, -1, + -1, -1, -1, -1, 1374, -1, -1, 81, 838, -1, + 840, -1, -1, -1, -1, 89, -1, 847, -1, 1111, + 94, 851, -1, 853, -1, 855, 856, 857, -1, -1, + -1, -1, 862, -1, -1, -1, -1, 111, -1, -1, + -1, -1, -1, -1, 1414, 1415, 1416, -1, -1, -1, + 4, -1, -1, -1, -1, -1, -1, 887, -1, 889, + -1, 891, 892, 893, -1, -1, -1, -1, 3, 4, + 5, 6, -1, -1, 9, -1, -1, 31, 32, -1, + 34, -1, 36, -1, 328, 329, 330, 41, -1, -1, + -1, -1, -1, -1, -1, 577, 578, -1, 580, -1, + 54, -1, 56, 933, -1, 587, -1, 42, -1, -1, + -1, -1, 3, 4, 5, 6, -1, 947, 9, -1, + 55, -1, 57, 58, 1216, 79, -1, -1, 958, -1, + 960, -1, -1, 963, -1, -1, 71, -1, -1, -1, + -1, -1, 972, -1, -1, -1, 81, -1, -1, -1, + -1, 42, -1, -1, 89, -1, -1, 48, 640, 94, + 642, 643, -1, 645, 55, 995, 57, 58, -1, -1, + -1, -1, -1, -1, 128, 1005, -1, 1007, 132, 133, + 71, 135, -1, -1, -1, 139, -1, 141, -1, 143, + 81, -1, 146, 147, 148, -1, -1, -1, 89, -1, + 91, 683, -1, 94, 95, -1, 160, -1, -1, 1039, + 1040, -1, 1042, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 177, 178, 179, -1, -1, -1, -1, + -1, -1, -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, -1, -1, - 9, -1, -1, 111, -1, -1, -1, -1, -1, 1282, - 683, -1, -1, -1, -1, -1, 42, -1, -1, -1, - -1, 694, 695, -1, 697, 384, -1, -1, -1, 55, - -1, 57, 58, 42, -1, -1, -1, -1, 430, -1, - -1, -1, 1315, 1316, -1, 71, 55, -1, 57, 58, - -1, 1324, -1, -1, -1, 81, -1, -1, -1, -1, - 733, -1, 71, 89, -1, -1, -1, -1, 94, -1, - -1, -1, 81, 432, -1, 434, -1, 436, 437, 438, - 89, 754, 755, 756, 443, 94, -1, -1, -1, 448, - -1, -1, 451, 766, -1, 3, 4, 5, 6, -1, - 1373, -1, -1, -1, 496, -1, -1, 499, -1, -1, - -1, 503, 504, 505, 506, 507, 4, -1, -1, -1, - -1, -1, -1, -1, 516, -1, -1, -1, -1, -1, - 1403, -1, -1, -1, 42, -1, -1, 529, -1, -1, - -1, -1, -1, 31, 32, -1, -1, 55, 36, 57, - 58, -1, -1, 41, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 71, -1, 838, -1, 840, 56, 561, - -1, -1, -1, 81, -1, -1, -1, -1, 851, -1, - -1, 89, 855, 856, 857, -1, 94, -1, 580, -1, - -1, -1, -1, -1, -1, 587, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, - 3, 4, 5, 6, 7, 8, 9, -1, 891, 892, - 893, 14, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 590, 591, -1, -1, -1, 29, -1, 31, 32, - 33, -1, -1, -1, 37, 38, 605, 135, -1, 42, - -1, 139, 1525, 46, 47, 143, 49, -1, -1, -1, - 933, -1, 55, -1, 57, 58, -1, -1, 61, -1, - 63, -1, 160, 3, 4, 5, 6, -1, 71, -1, - -1, 640, -1, 642, 643, -1, -1, -1, 81, 177, - 178, -1, -1, -1, -1, 687, 89, -1, -1, -1, - -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 42, -1, -1, -1, -1, -1, 111, -1, - -1, -1, -1, -1, 683, 55, -1, 57, 58, -1, - -1, -1, -1, -1, -1, 694, 695, -1, 697, -1, - 1, 71, 3, 4, 5, 6, 7, 8, 9, -1, - 742, 81, 240, 14, -1, 747, -1, -1, -1, 89, - -1, 720, -1, -1, 94, -1, 1039, 1040, 29, 1042, - 31, 32, 33, -1, 733, -1, 37, 38, -1, -1, - -1, 42, -1, -1, -1, 46, 47, -1, 49, -1, + 9, -1, 206, -1, 1084, 1085, 1086, 1087, 1088, -1, + 4, 5, 1092, 7, 8, 9, -1, -1, 1098, -1, + 14, -1, -1, -1, -1, -1, -1, -1, -1, 1109, + 1110, 1111, -1, 42, 766, 29, 240, 31, 32, 48, + -1, -1, -1, 37, -1, 1125, 55, -1, 57, 58, + -1, -1, 46, -1, -1, 49, -1, -1, -1, -1, + 1140, 55, 71, 57, 58, 1145, -1, 1147, -1, -1, + -1, -1, 81, -1, 1416, -1, -1, -1, -1, -1, + 89, -1, 91, 577, 578, 94, 95, 1429, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 3, 4, 5, 6, 309, 838, 9, 840, -1, + -1, -1, -1, 1193, 1194, 4, 1196, -1, -1, 851, + -1, -1, 326, 855, 856, 857, -1, -1, -1, -1, + 334, -1, -1, -1, -1, 339, 1216, -1, -1, -1, + 42, -1, 31, 32, -1, 34, 640, 36, 642, 643, + 354, 645, 41, 55, -1, 57, 58, -1, -1, 891, + 892, 893, -1, -1, -1, 54, -1, 56, -1, 71, + -1, 375, -1, -1, -1, -1, -1, -1, -1, 81, + 384, -1, -1, 3, 4, 5, 6, 89, -1, 683, + -1, 395, 94, -1, 398, -1, -1, -1, -1, 403, + -1, 933, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1296, 1297, 1298, -1, + -1, -1, 42, 3, 4, 5, 6, -1, 432, 9, + 434, -1, 436, 437, 438, 55, -1, 57, 58, 443, + -1, -1, -1, 63, 448, -1, 135, 451, -1, -1, + 139, 71, -1, -1, 143, -1, -1, 146, 147, 148, + -1, 81, 42, 467, -1, -1, -1, -1, -1, 89, + -1, 160, 766, -1, 94, 55, -1, 57, 58, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 177, 178, + 179, 71, 496, -1, 1374, 499, -1, -1, -1, -1, + -1, 81, -1, -1, -1, -1, -1, -1, -1, 89, + 514, 515, 516, -1, 94, -1, -1, 206, -1, -1, + -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, + -1, -1, -1, -1, 1414, 1415, 1416, -1, -1, -1, + -1, -1, -1, -1, 838, -1, 840, -1, -1, 1429, + -1, 240, 1084, 1085, 1086, 1087, 1088, 851, -1, -1, + 1092, 855, 856, -1, 1444, -1, -1, -1, -1, -1, + 574, -1, -1, -1, -1, -1, -1, 1109, 1110, 1111, + -1, -1, -1, 587, -1, -1, -1, 1, -1, 3, + 4, 5, 6, 7, 8, 9, -1, 891, 892, -1, + 14, 605, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 29, -1, 31, 32, 33, + -1, -1, -1, 37, 38, -1, -1, -1, 42, -1, + -1, -1, 46, 47, -1, 49, 640, 641, 642, 643, + -1, 55, -1, 57, 58, -1, 335, 61, -1, 63, + 339, -1, -1, -1, -1, -1, -1, 71, -1, -1, + -1, 1193, 1194, -1, 1196, -1, -1, 81, -1, -1, + -1, -1, -1, -1, -1, 89, -1, -1, -1, 683, + 94, -1, -1, 687, -1, -1, -1, -1, -1, -1, + 694, 695, -1, 697, -1, 384, -1, 111, -1, -1, + -1, -1, -1, -1, -1, -1, 395, -1, -1, 398, + -1, -1, -1, -1, 403, -1, -1, -1, -1, -1, + -1, -1, 726, -1, 728, -1, -1, -1, -1, 733, + 734, 735, 3, 4, 5, 6, -1, -1, 9, -1, + -1, -1, -1, 432, -1, 434, -1, 436, 437, 438, + -1, -1, -1, -1, 443, -1, 760, -1, -1, 448, + -1, -1, 451, -1, -1, -1, -1, -1, 87, -1, + 89, 42, 91, -1, 12, -1, -1, 48, 467, -1, -1, -1, -1, -1, 55, -1, 57, 58, -1, -1, - 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, - 71, 1084, 1085, 1086, 1087, 1088, 12, -1, -1, 1092, - 81, -1, -1, -1, 816, -1, -1, -1, 89, -1, - -1, -1, -1, 94, -1, -1, 1109, 1110, 1111, -1, + 1084, 1085, 1086, 1087, -1, -1, -1, -1, 1092, -1, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 81, -1, -1, -1, -1, 1109, 1110, 136, 89, 138, + 91, -1, -1, 94, 95, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, -1, + -1, 855, 856, 857, -1, -1, -1, 861, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 111, 339, -1, -1, -1, 847, -1, -1, -1, -1, - -1, 853, -1, -1, -1, 857, 1139, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - -1, -1, -1, -1, -1, 887, -1, 889, -1, -1, - -1, 893, 861, 862, 863, -1, -1, 395, -1, -1, - 398, -1, -1, -1, -1, 403, -1, -1, -1, 1192, - 1193, -1, 1195, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 891, 892, 893, -1, -1, -1, -1, 898, - -1, 933, -1, -1, 432, -1, 434, -1, 4, 5, - -1, -1, 8, 9, -1, 947, -1, -1, 14, -1, - 448, 953, -1, -1, -1, -1, -1, -1, 960, -1, - -1, -1, -1, 29, 933, 31, 14, -1, -1, 467, - 972, 37, -1, -1, -1, -1, 24, 25, -1, -1, - 46, -1, -1, 31, 32, -1, 34, -1, -1, 55, - -1, 57, 58, -1, 1, -1, 3, 4, 5, 6, - 7, 8, 9, 1005, -1, 1007, -1, 14, -1, -1, - -1, -1, 1295, -1, 1297, 984, 64, -1, -1, -1, - -1, -1, 29, -1, 31, 32, 33, -1, -1, -1, - 37, -1, -1, -1, -1, 42, -1, -1, -1, 46, - 47, -1, 49, -1, -1, -1, -1, -1, 55, -1, - 57, 58, -1, -1, 61, -1, 63, -1, -1, -1, - -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, 123, -1, 125, -1, -1, - 128, -1, 89, -1, 132, 133, 1088, 94, -1, -1, - 1373, 139, -1, 141, 142, 143, 1065, -1, 146, 147, - 148, -1, -1, -1, -1, -1, -1, -1, -1, 1111, - -1, -1, -1, -1, -1, 1084, 1085, 1086, 1087, 1088, - -1, 1090, -1, 1092, -1, -1, -1, -1, -1, -1, - 1413, 1414, 1415, -1, -1, -1, -1, -1, -1, -1, - 1109, 1110, 1111, 641, -1, -1, -1, -1, -1, 4, - 5, -1, 7, 8, 9, -1, -1, 12, -1, 14, - 1443, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1139, -1, 220, 221, 29, -1, 31, 32, -1, -1, - -1, -1, 37, -1, -1, -1, -1, -1, -1, 687, - -1, 46, 240, -1, -1, -1, 694, 695, -1, 697, - 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 1215, 3, 4, 5, 6, 7, 8, - 9, -1, -1, 1192, 1193, 14, 1195, -1, 726, -1, - 728, 279, -1, -1, -1, 733, 734, 735, 27, 28, - 29, -1, 31, 32, 33, -1, -1, -1, 37, -1, - -1, -1, -1, 42, -1, -1, 45, 46, 47, -1, - 49, -1, -1, -1, -1, -1, 55, -1, 57, 58, - -1, -1, 61, -1, -1, -1, -1, -1, 326, -1, - 328, 329, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, -1, -1, 1, -1, -1, 4, 5, - 89, -1, 8, 9, -1, 94, 354, -1, 14, -1, - -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 29, -1, 31, 1295, 375, 1297, -1, - -1, 37, -1, 39, 40, -1, -1, -1, -1, -1, - 46, -1, 48, 391, -1, -1, -1, 395, -1, 55, - 398, 57, 58, -1, 60, 403, -1, -1, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, - -1, 87, 88, 89, -1, -1, 92, -1, -1, 95, - -1, -1, -1, 891, 892, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1373, -1, 112, -1, -1, -1, - -1, -1, -1, 1415, -1, -1, 464, -1, 466, -1, - -1, -1, -1, -1, -1, -1, 1428, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 490, -1, 1413, 1414, 1415, -1, -1, -1, - -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, - -1, -1, -1, -1, 1443, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 6, -1, 1, 9, 3, + 4, 5, 6, 7, 8, 9, 575, 891, 892, 893, + 14, -1, -1, -1, 898, -1, -1, -1, -1, 1193, + 1194, -1, 1196, -1, -1, 29, -1, 31, 32, 33, + -1, 42, -1, 37, 38, -1, 605, -1, 42, -1, + -1, -1, 46, 47, 55, 49, 57, 58, -1, 933, + -1, 55, -1, 57, 58, -1, -1, 61, -1, 63, + 71, -1, -1, -1, -1, -1, -1, 71, -1, -1, + 81, 640, 641, 642, 643, -1, -1, 81, 89, 963, + -1, -1, -1, 94, -1, 89, -1, -1, -1, -1, + 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 984, 300, -1, -1, -1, -1, -1, 111, -1, -1, + -1, 995, -1, -1, 683, -1, -1, -1, 687, -1, + -1, -1, -1, -1, -1, 694, 695, -1, 697, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, + 9, -1, -1, 12, -1, 14, -1, 726, -1, 728, + -1, -1, -1, -1, 733, 734, 735, -1, -1, -1, + 29, -1, 31, 32, -1, -1, -1, -1, 37, -1, + -1, 1065, -1, 42, -1, -1, -1, 46, -1, 48, + -1, -1, -1, -1, -1, -1, 55, -1, 57, 58, + 1084, 1085, 1086, 1087, 1088, -1, 1090, -1, 1092, -1, + -1, -1, 71, 3, 4, 5, 6, -1, -1, 9, + -1, -1, 81, 422, 423, 1109, 1110, 1111, -1, -1, + 89, 430, 91, 4, 5, 94, 95, 8, 9, 98, + -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, + -1, -1, 42, 34, -1, -1, 1140, -1, 29, -1, + 31, 1145, -1, 1147, -1, 55, 37, 57, 58, -1, + -1, -1, -1, 54, -1, 46, -1, -1, -1, -1, + -1, 71, -1, -1, 55, -1, 57, 58, -1, -1, + -1, 81, -1, 862, 493, 494, -1, -1, -1, 89, + -1, -1, -1, -1, 94, -1, -1, -1, -1, 1193, + 1194, -1, 1196, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 891, 892, 893, -1, -1, 526, -1, 528, + -1, -1, 531, 532, -1, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, -1, -1, -1, -1, -1, 558, + -1, 560, 561, -1, 933, 146, 147, 148, -1, -1, + -1, -1, -1, -1, -1, -1, 4, 5, -1, 7, + 8, 9, -1, -1, 12, -1, 14, -1, 587, -1, + -1, -1, -1, -1, 963, 594, 177, 178, 179, -1, + -1, 29, -1, 31, 32, -1, -1, -1, -1, 37, + -1, -1, 1296, 1297, 1298, 614, 615, -1, 46, -1, + -1, -1, -1, -1, -1, 206, 995, 55, -1, 57, + 58, -1, 1, -1, 3, 4, 5, 6, 7, 8, + 9, -1, 4, 5, -1, 14, 8, 9, -1, -1, + -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, + 29, -1, 31, 32, 33, -1, -1, 29, 37, 31, + -1, 670, -1, 42, -1, 37, -1, 46, 47, -1, + 49, -1, -1, -1, 46, -1, 55, -1, 57, 58, + 1374, -1, 61, 55, 63, 57, 58, -1, 279, -1, + -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 81, -1, -1, 1084, 1085, 1086, 1087, 1088, + 89, -1, -1, 1092, -1, 94, 725, -1, -1, -1, + 1414, 1415, 1416, -1, -1, -1, -1, -1, -1, -1, + 1109, 1110, 1111, -1, 743, 744, 745, 328, 329, 330, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1444, 760, -1, 3, 4, 5, 6, 7, 8, 9, + -1, 1140, 12, -1, 14, -1, 1145, -1, 1147, -1, + -1, -1, -1, 782, -1, -1, -1, -1, -1, 29, + -1, 31, 32, -1, -1, -1, -1, 37, -1, -1, + -1, -1, 42, 384, -1, -1, 46, -1, -1, -1, + -1, -1, 54, -1, -1, 55, -1, 57, 58, -1, + 819, 820, -1, -1, 1193, 1194, -1, 1196, -1, -1, + -1, 71, -1, -1, 833, -1, 835, 79, 837, -1, + 82, 81, -1, -1, -1, -1, -1, -1, -1, 89, + -1, 432, -1, 434, 94, 436, 437, 438, -1, -1, + -1, 103, 443, 105, -1, -1, -1, 448, -1, -1, + 451, 870, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 880, -1, -1, -1, -1, -1, -1, 4, 5, + -1, 890, 8, 9, 3, 4, 5, 6, 14, -1, + 9, -1, -1, -1, 903, -1, -1, -1, -1, -1, + -1, -1, -1, 29, -1, 31, 915, 4, 5, -1, + -1, 37, 9, -1, -1, -1, -1, 1296, 1297, 1298, + 46, -1, 48, 42, 933, 177, 178, 179, -1, 55, + -1, 57, 58, -1, -1, 187, 55, -1, 57, 58, + -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, + -1, 48, 71, -1, 206, 81, -1, -1, 55, -1, + 57, 58, 81, -1, -1, 91, 975, -1, 94, 95, + 89, -1, -1, 564, 71, 94, -1, 229, 3, 4, + 5, 6, -1, -1, 81, -1, 577, 578, -1, 580, + -1, 243, -1, -1, 91, 1374, 587, 94, 95, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 605, 1024, 1025, 42, -1, 1028, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, 57, 58, -1, 1414, 1415, 1416, 63, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, 640, + -1, 642, 643, -1, 645, -1, 81, -1, -1, -1, + -1, -1, 4, -1, 89, 1444, -1, -1, -1, 94, + 3, 4, 5, 6, -1, -1, -1, -1, -1, -1, + -1, -1, 334, 335, -1, -1, -1, -1, -1, 31, + 32, 1100, 683, 1102, 36, 1104, -1, -1, 1107, 41, + -1, -1, -1, 694, 695, -1, 697, 1116, 1117, 42, + -1, -1, 1121, -1, 56, -1, 4, 5, -1, 7, + 8, 9, 55, -1, 57, 58, 14, 1136, 1137, -1, + 63, -1, 384, -1, -1, -1, -1, -1, 71, -1, + -1, 29, 733, 31, 32, -1, -1, -1, 81, 37, + -1, -1, -1, 1162, -1, -1, 89, -1, 46, -1, + -1, 94, -1, 754, 755, 756, -1, 55, -1, 57, + 58, -1, -1, -1, -1, 766, -1, -1, -1, -1, + 432, 1190, 434, -1, 436, 437, 438, -1, -1, -1, + -1, 443, -1, 135, -1, -1, 448, 139, -1, 451, + -1, 143, -1, 3, 4, 5, 6, 7, 8, 9, + 1219, -1, -1, -1, 14, -1, -1, -1, 160, 4, + 5, -1, -1, -1, 9, -1, 1235, -1, -1, 29, + -1, 31, 32, -1, -1, 177, 178, 37, -1, -1, + -1, -1, 42, -1, -1, -1, 46, 838, 1257, 840, + -1, -1, -1, -1, -1, 55, -1, 57, 58, -1, + 851, 61, -1, 48, 855, 856, 857, -1, -1, -1, + 55, 71, 57, 58, 1283, -1, -1, -1, -1, -1, + -1, 81, -1, -1, -1, -1, 71, -1, -1, 89, + -1, -1, -1, -1, 94, -1, 81, -1, 240, -1, + 891, 892, 893, -1, -1, -1, 91, 1316, 1317, 94, + 95, -1, -1, -1, -1, -1, 1325, -1, -1, 1, + -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, + -1, -1, 14, -1, -1, -1, -1, -1, 590, 591, + -1, -1, 933, -1, -1, -1, -1, 29, -1, 31, + 32, -1, -1, 605, -1, 37, -1, -1, -1, -1, + 42, -1, -1, -1, 46, 1374, -1, 49, -1, -1, + -1, -1, 963, 55, -1, 57, 58, -1, -1, 61, + -1, -1, -1, -1, -1, -1, -1, -1, 640, 71, + 642, 643, -1, -1, -1, 1404, -1, 339, -1, 81, + -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, + -1, -1, 94, -1, -1, -1, -1, -1, -1, 14, + -1, 3, 4, 5, 6, 7, 8, 9, -1, 24, + 25, 683, 14, -1, -1, -1, 31, 32, -1, 34, + -1, -1, 694, 695, -1, 697, -1, -1, 1039, 1040, + 32, 1042, -1, 395, -1, 37, 398, -1, -1, -1, + 42, 403, -1, -1, 46, -1, 48, -1, 720, 64, + -1, -1, -1, 55, -1, 57, 58, 3, 4, 5, + 6, 733, -1, -1, -1, -1, -1, -1, -1, 71, + 432, -1, 434, 1084, 1085, 1086, 1087, 1088, -1, 81, + -1, 1092, -1, -1, -1, -1, 448, 89, -1, 91, + -1, -1, 94, 95, -1, -1, 42, 1526, 1109, 1110, + 1111, 3, 4, 5, 6, 467, -1, -1, 123, 55, + 125, 57, 58, 128, -1, 61, -1, 132, 133, -1, + -1, -1, -1, -1, 139, 71, 141, 142, 143, 1140, + -1, 146, 147, 148, -1, 81, -1, -1, -1, -1, + 42, -1, -1, 89, -1, -1, -1, -1, 94, -1, + -1, -1, -1, 55, -1, 57, 58, -1, -1, 3, + 4, 5, 6, 7, 8, 9, -1, -1, -1, 71, + 14, -1, -1, -1, -1, -1, -1, -1, -1, 81, + -1, -1, 1193, 1194, -1, 1196, -1, 89, 32, 861, + 862, 863, 94, 37, -1, -1, -1, -1, 42, -1, + -1, -1, 46, -1, 48, 220, 221, -1, -1, -1, + -1, 55, -1, 57, 58, -1, -1, -1, -1, 891, + 892, 893, -1, -1, -1, 240, 898, 71, -1, 3, + 4, 5, 6, 7, 8, 9, -1, 81, -1, -1, + 14, -1, -1, -1, -1, 89, -1, 91, -1, -1, + 94, 95, -1, -1, -1, 29, -1, 31, 32, -1, + -1, 933, -1, 37, 279, -1, -1, -1, 42, -1, + -1, -1, 46, -1, 48, -1, -1, -1, -1, 641, + -1, 55, -1, 57, 58, 1296, -1, 1298, -1, -1, + -1, 963, -1, -1, -1, -1, -1, 71, -1, 3, + 4, 5, 6, -1, -1, -1, -1, 81, -1, -1, + -1, 326, 984, 328, 329, 89, -1, 91, -1, -1, + 94, 95, -1, -1, -1, 687, -1, -1, -1, -1, + -1, -1, 694, 695, -1, 697, -1, -1, 42, 354, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 55, -1, 57, 58, -1, -1, -1, -1, -1, + 375, -1, -1, 1374, 726, -1, 728, 71, -1, -1, + -1, 733, 734, 735, -1, -1, 391, 81, -1, -1, + 395, -1, -1, 398, -1, 89, -1, -1, 403, -1, + 94, -1, -1, 1065, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1414, 1415, 1416, -1, -1, -1, -1, + -1, -1, 1084, 1085, 1086, 1087, 1088, -1, 1090, -1, + 1092, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1444, -1, -1, -1, 1109, 1110, 1111, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 464, + -1, 466, -1, 1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, -1, 1140, -1, + -1, -1, -1, -1, -1, 490, -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, 35, 36, 37, - -1, 39, 40, 41, 42, 43, 44, 995, 46, -1, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, 54, 55, -1, 57, - 58, 59, -1, -1, 62, -1, 564, -1, -1, -1, - 68, -1, -1, 71, -1, -1, 574, 575, -1, 577, - 578, 79, 80, 81, -1, -1, -1, -1, -1, 87, - 88, 89, -1, 91, -1, -1, 94, 95, -1, -1, - 98, -1, -1, -1, 3, 4, 5, 6, 7, 8, - 9, -1, -1, -1, 112, 14, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, -1, 31, 32, 632, -1, 1084, 1085, 37, -1, - -1, -1, -1, 42, 1092, -1, 644, 46, -1, 3, - 4, 5, 6, 7, 8, 9, 55, -1, 57, 58, - 14, -1, -1, -1, 63, 663, -1, -1, -1, -1, - -1, -1, 71, -1, -1, 29, -1, 31, 32, -1, - -1, -1, 81, 37, -1, -1, -1, -1, 42, -1, - 89, 1139, 46, -1, 48, 94, 1144, -1, 1146, -1, - -1, 55, -1, 57, 58, -1, -1, 1, -1, 3, - 4, 5, 6, 7, 8, 9, -1, 71, 12, -1, - 14, -1, 720, -1, -1, 723, -1, 81, -1, -1, - -1, 25, -1, 27, 28, 89, -1, 91, 32, -1, - 94, 95, -1, 37, 1192, 1193, -1, 1195, 42, -1, - -1, -1, 46, -1, 48, -1, 754, 755, 756, -1, - -1, 55, -1, 57, 58, 59, 60, 61, 766, 63, + 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, + 68, 1193, 1194, 71, 1196, -1, -1, -1, -1, 891, + 892, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, -1, 91, -1, -1, 94, 95, -1, 564, + 98, -1, -1, -1, -1, -1, -1, -1, -1, 574, + 575, -1, 577, 578, 112, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 1, -1, 3, + 4, 5, 6, 7, 8, 9, -1, -1, 12, -1, + 14, 963, -1, -1, -1, -1, -1, -1, -1, -1, + 109, 25, -1, 27, 28, -1, -1, 632, 32, -1, + -1, -1, -1, 37, 1296, -1, 1298, -1, 42, 644, + -1, -1, 46, 995, 48, -1, -1, -1, -1, -1, + -1, 55, -1, 57, 58, 59, 60, 61, 663, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, -1, 98, 99, -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, 110, 111, -1, 113, + -1, -1, 1374, -1, -1, 720, -1, -1, 723, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1084, 1085, -1, -1, -1, -1, -1, -1, + 1092, -1, -1, -1, -1, -1, -1, -1, -1, 754, + 755, 756, 1414, 1415, 1416, -1, -1, -1, -1, -1, + -1, 766, -1, -1, 32, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 1444, -1, -1, -1, -1, -1, 1140, -1, + -1, -1, -1, 1145, -1, 1147, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, -1, - 838, -1, 840, -1, -1, -1, -1, -1, 1296, -1, - -1, -1, 1, 851, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, 13, 14, 15, -1, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, - 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, - -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, 61, 62, -1, -1, -1, -1, -1, 68, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 958, -1, 111, 112, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 985, 13, 14, - 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, 61, 62, -1, -1, - -1, 1039, 1040, 68, 1042, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, - 32, 96, -1, -1, -1, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 112, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, -1, -1, - 1098, -1, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, -1, -1, 1, 1125, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - -1, -1, -1, -1, 1142, -1, 1144, -1, -1, -1, - -1, -1, -1, -1, 29, 30, 31, 32, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, 48, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, 91, -1, -1, 94, - 95, -1, 1, 98, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, -1, 112, -1, -1, + -1, -1, -1, 838, -1, 840, -1, -1, -1, -1, + -1, 1193, 1194, -1, 1196, 1, 851, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, + -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, -1, 61, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, -1, -1, -1, 94, -1, + 96, -1, -1, -1, -1, 1297, -1, -1, -1, -1, + -1, -1, -1, 958, -1, 111, 112, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 985, 13, 14, 15, -1, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, + 52, 53, 54, 55, -1, 57, 58, 59, -1, 61, + 62, -1, -1, -1, 1039, 1040, 68, 1042, -1, 71, + -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, + -1, -1, 94, -1, 96, -1, -1, -1, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 112, 77, 78, 79, 80, 81, 82, 83, 84, 85, + -1, -1, -1, 1098, 1, -1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, + 1125, -1, 29, 30, 31, 32, 33, -1, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 1143, 46, + 1145, 48, -1, 50, 51, 52, 53, 54, 55, -1, + 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, + -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, + -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, + 87, 88, 89, -1, 91, -1, -1, 94, 95, -1, + 1, 98, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, -1, 112, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, + 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, + 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, + -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, + 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, + -1, -1, -1, 94, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, + 1, 112, 3, 4, 5, 6, 7, 8, 9, 10, + 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, + 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, + 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, + 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, + 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, + -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, + 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, - 89, -1, -1, -1, -1, 94, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 110, 1, 112, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, + 89, -1, -1, -1, -1, 94, 95, 1, -1, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, + 14, -1, 111, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, + -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, + 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, + -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, + 94, 95, 1, -1, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, 13, 14, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, + 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - 59, -1, 61, 62, -1, -1, -1, -1, -1, 68, + 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, -1, 94, 95, 1, - -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, - -1, 13, 14, -1, 111, 112, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, - -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, - 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, 59, -1, -1, - 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, - -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, - -1, -1, 94, 95, 1, -1, 3, 4, 5, 6, - -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, - 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, @@ -3130,60 +3125,14 @@ static const short yycheck[] = { 4, 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, - 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, - 13, 14, -1, -1, -1, -1, 111, 112, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, - 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, - -1, 94, -1, -1, 1, -1, 3, 4, 5, 6, - 103, 8, 9, 10, 11, -1, 13, 14, -1, 112, + -1, -1, 87, 88, 89, -1, -1, -1, -1, 94, + -1, -1, 1, -1, 3, 4, 5, 6, 103, 8, + 9, 10, 11, -1, 13, 14, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, - 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, - -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, - -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, - -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, - 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, - -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, - 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, - -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, - -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, - -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, - 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, - 13, 14, -1, -1, -1, -1, -1, 112, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, - 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, - 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, - 63, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, - 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, 13, 14, -1, -1, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, - 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, - 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, - 51, 52, 53, 54, 55, -1, 57, 58, 59, -1, - -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, - -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, - 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, - -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, - -1, -1, 61, 62, -1, -1, -1, -1, -1, 68, + 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, @@ -3192,16 +3141,16 @@ static const short yycheck[] = { 4, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, - 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, + 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, - -1, -1, -1, 110, -1, 112, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, - 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, + 55, -1, 57, 58, -1, -1, -1, 62, 63, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, 1, 94, @@ -3210,7 +3159,7 @@ static const short yycheck[] = { 4, -1, -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, - 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, + 53, 54, 55, -1, 57, 58, 59, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, -1, -1, @@ -3220,22 +3169,71 @@ static const short yycheck[] = { 4, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, - -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, + 61, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 87, 88, 89, 3, - 4, 5, 6, 94, 8, 9, 10, 11, -1, 13, - 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 112, -1, -1, -1, 29, 30, 31, -1, 33, + 81, -1, -1, -1, -1, -1, 87, 88, 89, -1, + -1, -1, 1, 94, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, + -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, + -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, + 1, -1, 71, 4, 5, -1, -1, 8, 9, -1, + 79, 80, 81, 14, -1, -1, -1, -1, 87, 88, + 89, -1, -1, -1, -1, 94, -1, -1, 29, -1, + 31, -1, -1, -1, -1, -1, 37, -1, 39, 40, + -1, 110, -1, 112, -1, 46, -1, 48, -1, -1, + -1, -1, -1, -1, 55, -1, 57, 58, -1, 60, + -1, -1, -1, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, -1, -1, 87, 88, 89, -1, + -1, 92, -1, 1, 95, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, + -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, + 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, -1, 87, + 88, 89, -1, -1, -1, 1, 94, 3, 4, 5, + 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, + -1, -1, -1, -1, 112, -1, -1, -1, -1, -1, + -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, + -1, 87, 88, 89, -1, -1, -1, 1, 94, 3, + 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, + 14, -1, -1, -1, -1, -1, 112, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 87, 88, 89, -1, -1, -1, -1, - 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 112, 113, + -1, -1, -1, 87, 88, 89, 3, 4, 5, 6, + 94, 8, 9, 10, 11, -1, 13, 14, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 112, -1, + -1, -1, 29, 30, 31, -1, 33, -1, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, + -1, -1, -1, 50, 51, 52, 53, 54, 55, -1, + 57, 58, -1, -1, -1, 62, -1, -1, -1, -1, + -1, 68, -1, 1, 71, 3, 4, 5, 6, 7, + 8, 9, 79, 80, 81, -1, 14, -1, -1, -1, + 87, 88, 89, -1, -1, -1, -1, 94, -1, -1, + -1, 29, -1, 31, 32, 33, -1, -1, -1, 37, + 38, -1, -1, -1, 42, 112, 113, -1, 46, 47, + -1, 49, -1, -1, -1, -1, -1, 55, -1, 57, + 58, -1, -1, 61, -1, 63, -1, -1, -1, -1, + -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, + -1, 89, -1, -1, -1, -1, 94, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, - 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, + 13, 14, 15, 111, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, -1, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, -1, 46, -1, -1, -1, 50, 51, 52, @@ -3438,51 +3436,55 @@ static const short yycheck[] = { 4, 28, 29, -1, 31, 32, 33, -1, -1, -1, 37, -1, -1, -1, -1, 42, 112, -1, 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, 55, -1, 57, - 58, -1, -1, 61, 3, 4, 5, 6, 7, 8, + 58, -1, 1, 61, 3, 4, 5, 6, 7, 8, 9, -1, -1, 71, -1, 14, -1, -1, -1, -1, - -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, - -1, 89, -1, 32, -1, -1, 94, -1, 37, -1, - -1, -1, 100, 42, -1, -1, -1, 46, -1, 48, - -1, -1, -1, -1, -1, -1, 55, -1, 57, 58, - 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, - -1, 14, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, -1, -1, -1, -1, -1, -1, 32, - 89, -1, 91, -1, 37, 94, 95, -1, -1, 42, - -1, -1, -1, 46, -1, 48, -1, -1, -1, -1, - -1, -1, 55, -1, 57, 58, 3, 4, 5, 6, - 7, 8, 9, -1, -1, -1, -1, 14, 71, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, - -1, -1, 29, -1, 31, 32, 89, -1, 91, -1, - 37, 94, 95, -1, -1, 42, -1, -1, -1, 46, - -1, 3, 4, 5, 6, 7, 8, 9, 55, -1, - 57, 58, 14, -1, 61, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 71, -1, -1, 29, -1, 31, - 32, -1, -1, -1, 81, 37, -1, -1, -1, -1, - 42, -1, 89, -1, 46, -1, -1, 94, -1, -1, - -1, -1, -1, 55, -1, 57, 58, 3, 4, 5, - 6, 7, 8, 9, -1, -1, -1, -1, 14, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - -1, -1, -1, 29, -1, 31, 32, 89, -1, -1, - -1, 37, 94, -1, -1, -1, 42, -1, -1, -1, - 46, -1, -1, -1, -1, -1, -1, -1, -1, 55, - -1, 57, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, - -1, -1, -1, 89, -1, -1, -1, -1, 94, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, -1, -1, -1, -1, -1, 113, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 109, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 63, + -1, -1, -1, 81, -1, -1, -1, -1, 27, 28, + 29, 89, 31, 32, 33, -1, 94, -1, 37, -1, + -1, -1, 100, 42, -1, -1, 45, 46, 47, -1, + 49, -1, -1, -1, -1, -1, 55, -1, 57, 58, + -1, -1, 61, 3, 4, 5, 6, 7, 8, 9, + -1, -1, 71, -1, 14, -1, -1, -1, -1, -1, + -1, -1, 81, -1, -1, -1, -1, -1, -1, 29, + 89, 31, 32, -1, -1, 94, -1, 37, -1, -1, + -1, 100, 42, -1, -1, -1, 46, -1, 3, 4, + 5, 6, 7, 8, 9, 55, -1, 57, 58, 14, + -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, + -1, 71, -1, -1, 29, -1, 31, 32, -1, -1, + -1, 81, 37, -1, -1, -1, -1, 42, -1, 89, + -1, 46, -1, -1, 94, -1, -1, -1, -1, -1, + 55, -1, 57, 58, -1, -1, 61, 3, 4, 5, + 6, 7, 8, 9, -1, -1, 71, -1, 14, -1, + -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, + -1, -1, -1, 29, 89, 31, 32, -1, -1, 94, + -1, 37, -1, -1, -1, -1, 42, -1, -1, -1, + 46, -1, 3, 4, 5, 6, 7, 8, 9, 55, + -1, 57, 58, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 71, -1, -1, 29, -1, + 31, 32, -1, -1, -1, 81, 37, -1, -1, -1, + -1, 42, -1, 89, -1, 46, -1, -1, 94, -1, + -1, -1, -1, -1, 55, -1, 57, 58, 3, 4, + 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 81, -1, -1, -1, -1, -1, -1, 32, 89, -1, + -1, -1, 37, 94, -1, -1, -1, 42, -1, -1, + -1, 46, -1, 48, -1, -1, -1, -1, -1, -1, + 55, -1, 57, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, + -1, -1, -1, -1, 89, -1, -1, -1, -1, 94, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85 + 84, 85, 60, -1, -1, -1, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, -1, 113, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" @@ -4486,31 +4488,27 @@ case 103: { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ; break;} case 104: -#line 773 "parse.y" -{ yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ; - break;} -case 105: -#line 778 "parse.y" +#line 776 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); yyval.ttype = yyvsp[0].ttype; ; break;} +case 105: +#line 785 "parse.y" +{ store_return_init (yyval.ttype, yyvsp[0].ttype); ; + break;} case 106: #line 787 "parse.y" -{ store_return_init (yyval.ttype, yyvsp[0].ttype); ; +{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ; break;} case 107: #line 789 "parse.y" -{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ; - break;} -case 108: -#line 791 "parse.y" { store_return_init (yyval.ttype, NULL_TREE); ; break;} -case 109: -#line 796 "parse.y" +case 108: +#line 794 "parse.y" { if (yyvsp[0].itype == 0) error ("no base initializers given following ':'"); @@ -4521,8 +4519,8 @@ case 109: keep_next_level (); ; break;} -case 110: -#line 809 "parse.y" +case 109: +#line 807 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); @@ -4540,206 +4538,206 @@ case 110: error ("only constructors take base initializers"); ; break;} -case 111: -#line 829 "parse.y" +case 110: +#line 827 "parse.y" { yyval.itype = 0; ; break;} -case 112: -#line 831 "parse.y" +case 111: +#line 829 "parse.y" { yyval.itype = 1; ; break;} -case 115: -#line 838 "parse.y" +case 114: +#line 836 "parse.y" { if (current_class_name) pedwarn ("anachronistic old style base class initializer"); expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype); ; break;} -case 116: -#line 844 "parse.y" +case 115: +#line 842 "parse.y" { if (current_class_name) pedwarn ("anachronistic old style base class initializer"); expand_member_init (current_class_ref, NULL_TREE, void_type_node); ; break;} +case 116: +#line 848 "parse.y" +{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; + break;} case 117: #line 850 "parse.y" -{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; +{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ; break;} case 118: #line 852 "parse.y" -{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ; +{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 119: #line 854 "parse.y" -{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; +{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ; break;} case 120: #line 856 "parse.y" -{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ; - break;} -case 121: -#line 858 "parse.y" { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} -case 122: -#line 861 "parse.y" +case 121: +#line 859 "parse.y" { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype), void_type_node); ; break;} -case 134: -#line 887 "parse.y" +case 133: +#line 885 "parse.y" { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE); yyungetc (';', 1); ; break;} -case 136: -#line 891 "parse.y" +case 135: +#line 889 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ; break;} -case 138: -#line 895 "parse.y" +case 137: +#line 893 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} -case 140: -#line 898 "parse.y" +case 139: +#line 896 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} -case 142: -#line 901 "parse.y" +case 141: +#line 899 "parse.y" { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype); yyungetc (';', 1); ; break;} -case 144: -#line 906 "parse.y" +case 143: +#line 904 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} -case 146: -#line 910 "parse.y" +case 145: +#line 908 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} -case 148: -#line 913 "parse.y" +case 147: +#line 911 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} -case 150: -#line 918 "parse.y" +case 149: +#line 916 "parse.y" { begin_explicit_instantiation(); ; break;} -case 151: -#line 921 "parse.y" +case 150: +#line 919 "parse.y" { end_explicit_instantiation(); ; break;} -case 152: -#line 929 "parse.y" +case 151: +#line 927 "parse.y" { yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_STUB_DECL (yyval.ttype); ; break;} -case 153: -#line 935 "parse.y" +case 152: +#line 933 "parse.y" { yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_STUB_DECL (yyval.ttype); ; break;} -case 155: -#line 945 "parse.y" +case 154: +#line 943 "parse.y" { yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_STUB_DECL (yyval.ttype); ; break;} -case 157: -#line 955 "parse.y" +case 156: +#line 953 "parse.y" { /* Handle `Class>' without space in the `>>' */ pedwarn ("`>>' should be `> >' in template class name"); yyungetc ('>', 1); ; break;} -case 158: -#line 964 "parse.y" +case 157: +#line 962 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 160: -#line 970 "parse.y" +case 159: +#line 968 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} -case 161: -#line 972 "parse.y" +case 160: +#line 970 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} -case 162: -#line 977 "parse.y" +case 161: +#line 975 "parse.y" { yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} +case 163: +#line 981 "parse.y" +{ yyval.code = NEGATE_EXPR; ; + break;} case 164: #line 983 "parse.y" -{ yyval.code = NEGATE_EXPR; ; +{ yyval.code = CONVERT_EXPR; ; break;} case 165: #line 985 "parse.y" -{ yyval.code = CONVERT_EXPR; ; +{ yyval.code = PREINCREMENT_EXPR; ; break;} case 166: #line 987 "parse.y" -{ yyval.code = PREINCREMENT_EXPR; ; +{ yyval.code = PREDECREMENT_EXPR; ; break;} case 167: #line 989 "parse.y" -{ yyval.code = PREDECREMENT_EXPR; ; - break;} -case 168: -#line 991 "parse.y" { yyval.code = TRUTH_NOT_EXPR; ; break;} -case 169: -#line 996 "parse.y" +case 168: +#line 994 "parse.y" { yyval.ttype = build_x_compound_expr (yyval.ttype); ; break;} -case 171: -#line 1002 "parse.y" +case 170: +#line 1000 "parse.y" { error ("ANSI C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} -case 172: -#line 1006 "parse.y" +case 171: +#line 1004 "parse.y" { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ; break;} -case 173: -#line 1011 "parse.y" +case 172: +#line 1009 "parse.y" { error ("ANSI C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} -case 174: -#line 1015 "parse.y" +case 173: +#line 1013 "parse.y" { yyval.ttype = condition_conversion (yyvsp[-1].ttype); ; break;} +case 174: +#line 1018 "parse.y" +{ yyval.ttype = NULL_TREE; ; + break;} case 175: #line 1020 "parse.y" -{ yyval.ttype = NULL_TREE; ; +{ yyval.ttype = condition_conversion (yyval.ttype); ; break;} case 176: #line 1022 "parse.y" -{ yyval.ttype = condition_conversion (yyval.ttype); ; - break;} -case 177: -#line 1024 "parse.y" { yyval.ttype = NULL_TREE; ; break;} -case 178: -#line 1029 "parse.y" +case 177: +#line 1027 "parse.y" { { tree d; for (d = getdecls (); d; d = TREE_CHAIN (d)) @@ -4758,8 +4756,8 @@ case 178: /*prefix_attributes*/ NULL_TREE); ; break;} -case 179: -#line 1047 "parse.y" +case 178: +#line 1045 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING); resume_momentary (yyvsp[-2].itype); @@ -4768,8 +4766,8 @@ case 179: cp_error ("definition of array `%#D' in condition", yyval.ttype); ; break;} -case 185: -#line 1066 "parse.y" +case 184: +#line 1064 "parse.y" { if (processing_template_decl) { @@ -4779,8 +4777,8 @@ case 185: } ; break;} -case 186: -#line 1075 "parse.y" +case 185: +#line 1073 "parse.y" { if (processing_template_decl) { @@ -4791,59 +4789,59 @@ case 186: finish_stmt (); ; break;} -case 188: -#line 1090 "parse.y" +case 187: +#line 1088 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ; break;} -case 189: -#line 1093 "parse.y" +case 188: +#line 1091 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ; break;} -case 190: -#line 1096 "parse.y" +case 189: +#line 1094 "parse.y" { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ; break;} -case 191: -#line 1098 "parse.y" +case 190: +#line 1096 "parse.y" { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ; break;} -case 192: -#line 1103 "parse.y" +case 191: +#line 1101 "parse.y" { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ; break;} -case 194: -#line 1109 "parse.y" +case 193: +#line 1107 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 195: -#line 1112 "parse.y" +case 194: +#line 1110 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} +case 195: +#line 1113 "parse.y" +{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; + break;} case 196: #line 1115 "parse.y" -{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; +{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 197: #line 1117 "parse.y" -{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 198: #line 1119 "parse.y" -{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; - break;} -case 199: -#line 1121 "parse.y" { yyval.ttype = build_x_unary_op (yyvsp[-1].code, yyvsp[0].ttype); if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST) TREE_NEGATED_INT (yyval.ttype) = 1; overflow_warning (yyval.ttype); ; break;} -case 200: -#line 1128 "parse.y" +case 199: +#line 1126 "parse.y" { tree label = lookup_label (yyvsp[0].ttype); if (pedantic) pedwarn ("ANSI C++ forbids `&&'"); @@ -4857,142 +4855,142 @@ case 200: } ; break;} +case 200: +#line 1139 "parse.y" +{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ; + break;} case 201: #line 1141 "parse.y" -{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ; +{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ; break;} case 202: #line 1143 "parse.y" -{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ; +{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ; break;} case 203: #line 1145 "parse.y" -{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ; - break;} -case 204: -#line 1147 "parse.y" { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); check_for_new_type ("alignof", yyvsp[-1].ftype); ; break;} -case 205: -#line 1153 "parse.y" +case 204: +#line 1151 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} -case 206: -#line 1156 "parse.y" +case 205: +#line 1154 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} -case 207: -#line 1159 "parse.y" +case 206: +#line 1157 "parse.y" { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} -case 208: -#line 1162 "parse.y" +case 207: +#line 1160 "parse.y" { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} -case 209: -#line 1165 "parse.y" +case 208: +#line 1163 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} -case 210: -#line 1169 "parse.y" +case 209: +#line 1167 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} -case 211: -#line 1172 "parse.y" +case 210: +#line 1170 "parse.y" { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} -case 212: -#line 1175 "parse.y" +case 211: +#line 1173 "parse.y" { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} -case 213: -#line 1179 "parse.y" +case 212: +#line 1177 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ; break;} -case 214: -#line 1181 "parse.y" +case 213: +#line 1179 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} -case 215: -#line 1185 "parse.y" +case 214: +#line 1183 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} +case 215: +#line 1187 "parse.y" +{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ; + break;} case 216: #line 1189 "parse.y" -{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ; break;} case 217: -#line 1191 "parse.y" -{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ; +#line 1194 "parse.y" +{ yyval.ttype = yyvsp[-1].ttype; ; break;} case 218: #line 1196 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; - break;} -case 219: -#line 1198 "parse.y" { yyval.ttype = yyvsp[-1].ttype; pedwarn ("old style placement syntax, use () instead"); ; break;} +case 219: +#line 1204 "parse.y" +{ yyval.ttype = yyvsp[-1].ttype; ; + break;} case 220: #line 1206 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; +{ yyval.ttype = NULL_TREE; ; break;} case 221: #line 1208 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 222: -#line 1210 "parse.y" { cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t); yyval.ttype = error_mark_node; ; break;} -case 223: -#line 1218 "parse.y" +case 222: +#line 1216 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids initialization of new expression with `='"); yyval.ttype = yyvsp[0].ttype; ; break;} -case 224: -#line 1228 "parse.y" +case 223: +#line 1226 "parse.y" { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node); TREE_PARMLIST (yyvsp[-1].ftype.t) = 1; yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} -case 225: -#line 1233 "parse.y" +case 224: +#line 1231 "parse.y" { yyvsp[-1].ftype.t = tree_cons (NULL_TREE, yyvsp[-1].ftype.t, void_list_node); TREE_PARMLIST (yyvsp[-1].ftype.t) = 1; yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} -case 227: -#line 1242 "parse.y" +case 226: +#line 1240 "parse.y" { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ; break;} -case 228: -#line 1244 "parse.y" +case 227: +#line 1242 "parse.y" { tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); @@ -5004,13 +5002,17 @@ case 228: yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init); ; break;} +case 229: +#line 1258 "parse.y" +{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; + break;} case 230: #line 1260 "parse.y" -{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; break;} case 231: #line 1262 "parse.y" -{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 232: #line 1264 "parse.y" @@ -5042,15 +5044,15 @@ case 238: break;} case 239: #line 1278 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 240: #line 1280 "parse.y" -{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 241: #line 1282 "parse.y" -{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 242: #line 1284 "parse.y" @@ -5070,92 +5072,88 @@ case 245: break;} case 246: #line 1292 "parse.y" -{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 247: #line 1294 "parse.y" -{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 248: #line 1296 "parse.y" -{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 249: #line 1298 "parse.y" -{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; - break;} -case 250: -#line 1300 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); if (yyval.ttype != error_mark_node) C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} +case 250: +#line 1302 "parse.y" +{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; + break;} case 251: #line 1304 "parse.y" -{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; +{ yyval.ttype = build_throw (NULL_TREE); ; break;} case 252: #line 1306 "parse.y" -{ yyval.ttype = build_throw (NULL_TREE); ; - break;} -case 253: -#line 1308 "parse.y" { yyval.ttype = build_throw (yyvsp[0].ttype); ; break;} -case 254: -#line 1326 "parse.y" +case 253: +#line 1324 "parse.y" { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} -case 260: -#line 1335 "parse.y" +case 259: +#line 1333 "parse.y" { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ; break;} +case 260: +#line 1337 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; + break;} case 261: #line 1339 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 262: -#line 1341 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; +#line 1344 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 263: #line 1346 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 264: -#line 1348 "parse.y" +#line 1349 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} -case 265: -#line 1351 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; +case 269: +#line 1361 "parse.y" +{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ; break;} case 270: #line 1363 "parse.y" -{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ; +{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 271: #line 1365 "parse.y" -{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ; +{ yyval.ttype = yyvsp[-1].ttype; ; break;} case 272: -#line 1367 "parse.y" -{ yyval.ttype = yyvsp[-1].ttype; ; +#line 1370 "parse.y" +{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 273: #line 1372 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} -case 274: -#line 1374 "parse.y" -{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; - break;} -case 278: -#line 1382 "parse.y" +case 277: +#line 1380 "parse.y" { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; break;} -case 279: -#line 1387 "parse.y" +case 278: +#line 1385 "parse.y" { if (TREE_CODE (yyval.ttype) == BIT_NOT_EXPR) yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyval.ttype, 0)); @@ -5163,8 +5161,8 @@ case 279: yyval.ttype = do_identifier (yyval.ttype, 1); ; break;} -case 282: -#line 1396 "parse.y" +case 281: +#line 1394 "parse.y" { if (processing_template_decl) push_obstacks (&permanent_obstack, &permanent_obstack); @@ -5173,8 +5171,8 @@ case 282: pop_obstacks (); ; break;} -case 283: -#line 1404 "parse.y" +case 282: +#line 1402 "parse.y" { char class; yyval.ttype = yyvsp[-1].ttype; class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); @@ -5183,8 +5181,8 @@ case 283: /* This inhibits warnings in truthvalue_conversion. */ C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} -case 284: -#line 1412 "parse.y" +case 283: +#line 1410 "parse.y" { char class; yyval.ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype); class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype)); @@ -5193,12 +5191,12 @@ case 284: /* This inhibits warnings in truthvalue_conversion. */ C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ; break;} -case 285: -#line 1420 "parse.y" +case 284: +#line 1418 "parse.y" { yyval.ttype = error_mark_node; ; break;} -case 286: -#line 1422 "parse.y" +case 285: +#line 1420 "parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); @@ -5211,8 +5209,8 @@ case 286: yyval.ttype = NULL_TREE; ; break;} -case 287: -#line 1434 "parse.y" +case 286: +#line 1432 "parse.y" { tree rtl_exp; if (pedantic) pedwarn ("ANSI C++ forbids braced-groups within expressions"); @@ -5243,8 +5241,8 @@ case 287: yyval.ttype = yyvsp[-1].ttype; ; break;} -case 288: -#line 1464 "parse.y" +case 287: +#line 1462 "parse.y" { yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_ref); if (TREE_CODE (yyval.ttype) == CALL_EXPR @@ -5252,8 +5250,8 @@ case 288: yyval.ttype = require_complete_type (yyval.ttype); ; break;} -case 289: -#line 1471 "parse.y" +case 288: +#line 1469 "parse.y" { yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_ref); if (TREE_CODE (yyval.ttype) == CALL_EXPR @@ -5261,12 +5259,12 @@ case 289: yyval.ttype = require_complete_type (yyval.ttype); ; break;} -case 290: -#line 1478 "parse.y" +case 289: +#line 1476 "parse.y" { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ; break;} -case 291: -#line 1480 "parse.y" +case 290: +#line 1478 "parse.y" { /* If we get an OFFSET_REF, turn it into what it really means (e.g., a COMPONENT_REF). This way if we've got, say, a reference to a static member that's being operated @@ -5276,14 +5274,14 @@ case 291: yyval.ttype = resolve_offset_ref (yyval.ttype); yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ; break;} -case 292: -#line 1489 "parse.y" +case 291: +#line 1487 "parse.y" { if (TREE_CODE (yyval.ttype) == OFFSET_REF) yyval.ttype = resolve_offset_ref (yyval.ttype); yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ; break;} -case 293: -#line 1494 "parse.y" +case 292: +#line 1492 "parse.y" { if (current_class_ptr) { #ifdef WARNING_ABOUT_CCD @@ -5307,8 +5305,8 @@ case 293: } ; break;} -case 294: -#line 1517 "parse.y" +case 293: +#line 1515 "parse.y" { tree type = NULL_TREE; tree id = yyval.ttype; @@ -5353,46 +5351,46 @@ case 294: } ; break;} -case 296: -#line 1562 "parse.y" +case 295: +#line 1560 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("dynamic_cast", yyvsp[-4].ftype); yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ; break;} -case 297: -#line 1566 "parse.y" +case 296: +#line 1564 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("static_cast", yyvsp[-4].ftype); yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ; break;} -case 298: -#line 1570 "parse.y" +case 297: +#line 1568 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype); yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ; break;} -case 299: -#line 1574 "parse.y" +case 298: +#line 1572 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("const_cast", yyvsp[-4].ftype); yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ; break;} -case 300: -#line 1578 "parse.y" +case 299: +#line 1576 "parse.y" { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ; break;} -case 301: -#line 1580 "parse.y" +case 300: +#line 1578 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); check_for_new_type ("typeid", yyvsp[-1].ftype); yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ; break;} -case 302: -#line 1584 "parse.y" +case 301: +#line 1582 "parse.y" { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ; break;} -case 303: -#line 1586 "parse.y" +case 302: +#line 1584 "parse.y" { got_scope = NULL_TREE; if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) @@ -5401,58 +5399,58 @@ case 303: yyval.ttype = yyvsp[0].ttype; ; break;} -case 304: -#line 1594 "parse.y" +case 303: +#line 1592 "parse.y" { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ; break;} -case 305: -#line 1596 "parse.y" +case 304: +#line 1594 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-3].ttype), yyvsp[-1].ttype, NULL_TREE); else yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), yyvsp[-1].ttype); ; break;} -case 306: -#line 1601 "parse.y" +case 305: +#line 1599 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (CALL_EXPR, copy_to_permanent (yyvsp[-1].ttype), NULL_TREE, NULL_TREE); else yyval.ttype = build_member_call (OP0 (yyval.ttype), OP1 (yyval.ttype), NULL_TREE); ; break;} -case 307: -#line 1607 "parse.y" +case 306: +#line 1605 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} -case 308: -#line 1611 "parse.y" +case 307: +#line 1609 "parse.y" { yyval.ttype = build_method_call (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, LOOKUP_NORMAL); ; break;} -case 309: -#line 1616 "parse.y" +case 308: +#line 1614 "parse.y" { yyval.ttype = build_method_call (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE, LOOKUP_NORMAL); ; break;} -case 310: -#line 1621 "parse.y" +case 309: +#line 1619 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} -case 311: -#line 1623 "parse.y" +case 310: +#line 1621 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype)); else yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ; break;} -case 312: -#line 1628 "parse.y" +case 311: +#line 1626 "parse.y" { #if 0 /* This is a future direction of this code, but because @@ -5468,8 +5466,8 @@ case 312: #endif ; break;} -case 313: -#line 1643 "parse.y" +case 312: +#line 1641 "parse.y" { #if 0 /* This is a future direction of this code, but because @@ -5485,8 +5483,8 @@ case 313: #endif ; break;} -case 314: -#line 1658 "parse.y" +case 313: +#line 1656 "parse.y" { if (IS_SIGNATURE (OP0 (yyvsp[-3].ttype))) { @@ -5498,8 +5496,8 @@ case 314: yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-3].ttype), OP1 (yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} -case 315: -#line 1669 "parse.y" +case 314: +#line 1667 "parse.y" { if (IS_SIGNATURE (OP0 (yyvsp[-1].ttype))) { @@ -5511,8 +5509,8 @@ case 315: yyval.ttype = build_scoped_method_call (yyval.ttype, OP0 (yyvsp[-1].ttype), OP1 (yyvsp[-1].ttype), NULL_TREE); ; break;} -case 316: -#line 1681 "parse.y" +case 315: +#line 1679 "parse.y" { if (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype) && (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) @@ -5521,8 +5519,8 @@ case 316: yyval.ttype = cp_convert (void_type_node, yyvsp[-3].ttype); ; break;} -case 317: -#line 1689 "parse.y" +case 316: +#line 1687 "parse.y" { if (yyvsp[-4].ttype != yyvsp[-1].ttype) cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype); @@ -5532,42 +5530,42 @@ case 317: yyval.ttype = cp_convert (void_type_node, yyvsp[-5].ttype); ; break;} -case 318: -#line 1698 "parse.y" +case 317: +#line 1696 "parse.y" { yyval.ttype = error_mark_node; ; break;} +case 318: +#line 1741 "parse.y" +{ yyval.itype = 0; ; + break;} case 319: #line 1743 "parse.y" -{ yyval.itype = 0; ; +{ got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 320: -#line 1745 "parse.y" -{ got_scope = NULL_TREE; yyval.itype = 1; ; +#line 1748 "parse.y" +{ yyval.itype = 0; ; break;} case 321: #line 1750 "parse.y" -{ yyval.itype = 0; ; +{ got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 322: -#line 1752 "parse.y" -{ got_scope = NULL_TREE; yyval.itype = 1; ; +#line 1755 "parse.y" +{ yyval.ttype = boolean_true_node; ; break;} case 323: #line 1757 "parse.y" -{ yyval.ttype = boolean_true_node; ; - break;} -case 324: -#line 1759 "parse.y" { yyval.ttype = boolean_false_node; ; break;} -case 326: -#line 1766 "parse.y" +case 325: +#line 1764 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 327: -#line 1771 "parse.y" +case 326: +#line 1769 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); @@ -5578,220 +5576,220 @@ case 327: keep_next_level (); ; break;} -case 328: -#line 1784 "parse.y" +case 327: +#line 1782 "parse.y" { got_object = TREE_TYPE (yyval.ttype); ; break;} -case 329: -#line 1786 "parse.y" +case 328: +#line 1784 "parse.y" { yyval.ttype = build_x_arrow (yyval.ttype); got_object = TREE_TYPE (yyval.ttype); ; break;} -case 330: -#line 1794 "parse.y" +case 329: +#line 1792 "parse.y" { resume_momentary (yyvsp[-1].itype); if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t))) note_got_semicolon (yyvsp[-2].ftype.t); ; break;} -case 331: -#line 1800 "parse.y" +case 330: +#line 1798 "parse.y" { resume_momentary (yyvsp[-1].itype); note_list_got_semicolon (yyvsp[-2].ftype.t); ; break;} -case 332: -#line 1805 "parse.y" +case 331: +#line 1803 "parse.y" { resume_momentary (yyvsp[-1].itype); ; break;} -case 333: -#line 1807 "parse.y" +case 332: +#line 1805 "parse.y" { shadow_tag (yyvsp[-1].ftype.t); note_list_got_semicolon (yyvsp[-1].ftype.t); ; break;} -case 334: -#line 1812 "parse.y" +case 333: +#line 1810 "parse.y" { warning ("empty declaration"); ; break;} -case 335: -#line 1814 "parse.y" +case 334: +#line 1812 "parse.y" { pedantic = yyvsp[-1].itype; ; break;} -case 338: -#line 1828 "parse.y" +case 337: +#line 1826 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (), NULL_TREE, NULL_TREE); ; break;} -case 339: -#line 1831 "parse.y" +case 338: +#line 1829 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE, NULL_TREE); ; break;} -case 340: -#line 1838 "parse.y" +case 339: +#line 1836 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 341: -#line 1841 "parse.y" +case 340: +#line 1839 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 342: -#line 1844 "parse.y" +case 341: +#line 1842 "parse.y" { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 343: -#line 1847 "parse.y" +case 342: +#line 1845 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 344: -#line 1850 "parse.y" +case 343: +#line 1848 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 347: -#line 1866 "parse.y" +case 346: +#line 1864 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 348: -#line 1869 "parse.y" +case 347: +#line 1867 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 349: -#line 1872 "parse.y" +case 348: +#line 1870 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} -case 350: -#line 1875 "parse.y" +case 349: +#line 1873 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 351: -#line 1878 "parse.y" +case 350: +#line 1876 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 352: -#line 1881 "parse.y" +case 351: +#line 1879 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} -case 353: -#line 1888 "parse.y" +case 352: +#line 1886 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; break;} -case 354: -#line 1893 "parse.y" +case 353: +#line 1891 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ; break;} -case 355: -#line 1895 "parse.y" +case 354: +#line 1893 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} +case 355: +#line 1898 "parse.y" +{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; + break;} case 356: #line 1900 "parse.y" -{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; +{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} case 357: -#line 1902 "parse.y" -{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; +#line 1910 "parse.y" +{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ; break;} case 358: #line 1912 "parse.y" -{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ; +{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; break;} case 359: #line 1914 "parse.y" -{ yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; - break;} -case 360: -#line 1916 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} -case 361: -#line 1919 "parse.y" +case 360: +#line 1917 "parse.y" { if (extra_warnings && TREE_STATIC (yyval.ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} -case 362: -#line 1925 "parse.y" +case 361: +#line 1923 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} -case 363: -#line 1927 "parse.y" +case 362: +#line 1925 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} -case 364: -#line 1938 "parse.y" +case 363: +#line 1936 "parse.y" { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 365: -#line 1941 "parse.y" +case 364: +#line 1939 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} -case 366: -#line 1944 "parse.y" +case 365: +#line 1942 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} -case 367: -#line 1947 "parse.y" +case 366: +#line 1945 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} -case 368: -#line 1953 "parse.y" +case 367: +#line 1951 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} -case 369: -#line 1955 "parse.y" +case 368: +#line 1953 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ; break;} +case 370: +#line 1963 "parse.y" +{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; + break;} case 371: #line 1965 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 372: #line 1967 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; - break;} -case 373: -#line 1969 "parse.y" { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; ; break;} -case 374: -#line 1972 "parse.y" +case 373: +#line 1970 "parse.y" { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; ; break;} -case 375: -#line 1975 "parse.y" +case 374: +#line 1973 "parse.y" { tree type = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; @@ -5807,8 +5805,8 @@ case 375: } ; break;} -case 376: -#line 1990 "parse.y" +case 375: +#line 1988 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; @@ -5824,187 +5822,187 @@ case 376: } ; break;} +case 376: +#line 2008 "parse.y" +{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; + break;} case 377: #line 2010 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} -case 378: -#line 2012 "parse.y" -{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; +case 385: +#line 2031 "parse.y" +{ yyval.ttype = NULL_TREE; ; break;} case 386: #line 2033 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 387: -#line 2035 "parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} -case 388: -#line 2040 "parse.y" +case 387: +#line 2038 "parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1); cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype, prefix_attributes); ; break;} -case 389: -#line 2044 "parse.y" +case 388: +#line 2042 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ; break;} -case 390: -#line 2046 "parse.y" +case 389: +#line 2044 "parse.y" { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} -case 391: -#line 2058 "parse.y" +case 390: +#line 2056 "parse.y" { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype, 1, &yyval.ttype); ; break;} -case 392: -#line 2063 "parse.y" +case 391: +#line 2061 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); yyval.itype = yyvsp[-2].itype; ; break;} -case 393: -#line 2066 "parse.y" +case 392: +#line 2064 "parse.y" { tree d; yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} -case 394: -#line 2073 "parse.y" +case 393: +#line 2071 "parse.y" { yyval.itype = yyvsp[0].itype; ; break;} -case 395: -#line 2077 "parse.y" +case 394: +#line 2075 "parse.y" { yyval.itype = yyvsp[0].itype; ; break;} -case 396: -#line 2082 "parse.y" +case 395: +#line 2080 "parse.y" { /* Set things up as initdcl0_innards expects. */ yyval.ttype = yyvsp[0].ttype; yyvsp[0].ttype = NULL_TREE; ; break;} -case 397: -#line 2086 "parse.y" +case 396: +#line 2084 "parse.y" {; break;} -case 398: -#line 2088 "parse.y" +case 397: +#line 2086 "parse.y" { tree d; parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d); ; break;} +case 398: +#line 2094 "parse.y" +{ yyval.ttype = NULL_TREE; ; + break;} case 399: #line 2096 "parse.y" -{ yyval.ttype = NULL_TREE; ; +{ yyval.ttype = yyvsp[0].ttype; ; break;} case 400: -#line 2098 "parse.y" +#line 2101 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 401: #line 2103 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; +{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 402: -#line 2105 "parse.y" -{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; +#line 2108 "parse.y" +{ yyval.ttype = yyvsp[-2].ttype; ; break;} case 403: -#line 2110 "parse.y" -{ yyval.ttype = yyvsp[-2].ttype; ; +#line 2113 "parse.y" +{ yyval.ttype = yyvsp[0].ttype; ; break;} case 404: #line 2115 "parse.y" -{ yyval.ttype = yyvsp[0].ttype; ; +{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 405: -#line 2117 "parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; +#line 2120 "parse.y" +{ yyval.ttype = NULL_TREE; ; break;} case 406: #line 2122 "parse.y" -{ yyval.ttype = NULL_TREE; ; +{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 407: #line 2124 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; +{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 408: #line 2126 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; +{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; break;} case 409: #line 2128 "parse.y" -{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; - break;} -case 410: -#line 2130 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} +case 414: +#line 2144 "parse.y" +{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; + break;} case 415: #line 2146 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; +{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 416: -#line 2148 "parse.y" -{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; +#line 2151 "parse.y" +{ yyval.ttype = NULL_TREE; ; break;} case 417: #line 2153 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 418: -#line 2155 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 420: -#line 2163 "parse.y" +case 419: +#line 2161 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} -case 421: -#line 2166 "parse.y" +case 420: +#line 2164 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} -case 422: -#line 2169 "parse.y" +case 421: +#line 2167 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} -case 423: -#line 2172 "parse.y" +case 422: +#line 2170 "parse.y" { yyval.ttype = NULL_TREE; ; break;} +case 423: +#line 2177 "parse.y" +{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; + break;} case 424: #line 2179 "parse.y" -{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; +{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 425: -#line 2181 "parse.y" -{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; +#line 2182 "parse.y" +{ yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 426: #line 2184 "parse.y" -{ yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; +{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ; break;} case 427: #line 2186 "parse.y" -{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ; - break;} -case 428: -#line 2188 "parse.y" { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; break;} -case 429: -#line 2193 "parse.y" +case 428: +#line 2191 "parse.y" { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype), NULL_TREE, 1); reinit_parse_for_function (); ; break;} -case 430: -#line 2199 "parse.y" +case 429: +#line 2197 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); @@ -6012,83 +6010,83 @@ case 430: process_next_inline (yyvsp[-3].ttype); ; break;} +case 430: +#line 2204 "parse.y" +{ process_next_inline (yyvsp[-2].ttype); ; + break;} case 431: #line 2206 "parse.y" { process_next_inline (yyvsp[-2].ttype); ; break;} -case 432: -#line 2208 "parse.y" -{ process_next_inline (yyvsp[-2].ttype); ; +case 434: +#line 2218 "parse.y" +{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 435: #line 2220 "parse.y" -{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; - break;} -case 436: -#line 2222 "parse.y" { replace_defarg (yyvsp[-2].ttype, error_mark_node); ; break;} +case 437: +#line 2225 "parse.y" +{ do_pending_defargs (); ; + break;} case 438: #line 2227 "parse.y" { do_pending_defargs (); ; break;} case 439: -#line 2229 "parse.y" -{ do_pending_defargs (); ; - break;} -case 440: -#line 2234 "parse.y" +#line 2232 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} -case 441: -#line 2237 "parse.y" +case 440: +#line 2235 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); yyval.ftype.new_type_flag = 1; resume_momentary ((int) yyvsp[-4].itype); check_for_missing_semicolon (yyvsp[-3].ttype); ; break;} -case 442: -#line 2242 "parse.y" +case 441: +#line 2240 "parse.y" { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} -case 443: -#line 2246 "parse.y" +case 442: +#line 2244 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (make_anon_name ()); ; break;} -case 444: -#line 2249 "parse.y" +case 443: +#line 2247 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); resume_momentary ((int) yyvsp[-5].itype); check_for_missing_semicolon (yyvsp[-3].ttype); yyval.ftype.new_type_flag = 1; ; break;} -case 445: -#line 2254 "parse.y" +case 444: +#line 2252 "parse.y" { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} -case 446: -#line 2258 "parse.y" +case 445: +#line 2256 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} -case 447: -#line 2261 "parse.y" +case 446: +#line 2259 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} -case 448: -#line 2264 "parse.y" +case 447: +#line 2262 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} -case 449: -#line 2269 "parse.y" +case 448: +#line 2267 "parse.y" { int semi; @@ -6122,16 +6120,16 @@ case 449: do_pending_defargs (); ; break;} -case 450: -#line 2302 "parse.y" +case 449: +#line 2300 "parse.y" { if (pending_inlines && current_scope () == current_function_decl) do_pending_inlines (); ; break;} -case 451: -#line 2308 "parse.y" +case 450: +#line 2306 "parse.y" { yyval.ftype.t = yyvsp[-3].ttype; yyval.ftype.new_type_flag = 1; @@ -6142,8 +6140,8 @@ case 451: end_tree (); ; break;} -case 452: -#line 2318 "parse.y" +case 451: +#line 2316 "parse.y" { yyval.ftype.new_type_flag = 0; if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE) @@ -6162,82 +6160,82 @@ case 452: } ; break;} -case 456: -#line 2345 "parse.y" +case 455: +#line 2343 "parse.y" { if (pedantic && !in_system_header) pedwarn ("comma at end of enumerator list"); ; break;} +case 457: +#line 2350 "parse.y" +{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; + break;} case 458: #line 2352 "parse.y" -{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; +{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 459: #line 2354 "parse.y" -{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; +{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 460: #line 2356 "parse.y" -{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; +{ error ("no body nor ';' separates two class, struct or union declarations"); ; break;} case 461: -#line 2358 "parse.y" -{ error ("no body nor ';' separates two class, struct or union declarations"); ; +#line 2361 "parse.y" +{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 462: -#line 2363 "parse.y" +#line 2366 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 463: -#line 2368 "parse.y" -{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; - break;} -case 464: -#line 2373 "parse.y" +#line 2371 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 465: -#line 2378 "parse.y" +case 464: +#line 2376 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 466: -#line 2383 "parse.y" +case 465: +#line 2381 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ; break;} -case 467: -#line 2388 "parse.y" +case 466: +#line 2386 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} -case 468: -#line 2390 "parse.y" +case 467: +#line 2388 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} -case 469: -#line 2395 "parse.y" +case 468: +#line 2393 "parse.y" { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ; break;} -case 470: -#line 2400 "parse.y" +case 469: +#line 2398 "parse.y" { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ; break;} -case 471: -#line 2403 "parse.y" +case 470: +#line 2401 "parse.y" { yyval.ttype = yyvsp[-1].ttype; if (yyvsp[0].ttype) xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} -case 472: -#line 2409 "parse.y" +case 471: +#line 2407 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); if (TREE_INT_CST_LOW (current_aggr) == union_type @@ -6264,29 +6262,29 @@ case 472: } ; break;} -case 473: -#line 2438 "parse.y" +case 472: +#line 2436 "parse.y" { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0); yyungetc ('{', 1); ; break;} +case 475: +#line 2447 "parse.y" +{ yyval.ttype = NULL_TREE; ; + break;} case 476: #line 2449 "parse.y" -{ yyval.ttype = NULL_TREE; ; +{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ; break;} case 477: #line 2451 "parse.y" -{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ; - break;} -case 478: -#line 2453 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} -case 480: -#line 2459 "parse.y" +case 479: +#line 2457 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} -case 481: -#line 2464 "parse.y" +case 480: +#line 2462 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (! is_aggr_type (type, 1)) @@ -6312,8 +6310,8 @@ case 481: yyval.ttype = build_tree_list (access_default_node, type); ; break;} -case 482: -#line 2489 "parse.y" +case 481: +#line 2487 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (current_aggr == signature_type_node) @@ -6341,12 +6339,12 @@ case 482: yyval.ttype = build_tree_list (yyval.ttype, type); ; break;} -case 483: -#line 2519 "parse.y" +case 482: +#line 2517 "parse.y" { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ; break;} -case 485: -#line 2522 "parse.y" +case 484: +#line 2520 "parse.y" { if (current_aggr == signature_type_node) { @@ -6368,8 +6366,8 @@ case 485: } ; break;} -case 486: -#line 2543 "parse.y" +case 485: +#line 2541 "parse.y" { if (current_aggr == signature_type_node) { @@ -6391,14 +6389,14 @@ case 486: } ; break;} -case 488: -#line 2568 "parse.y" +case 487: +#line 2566 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) cp_error ("`%D' access", yyvsp[-1].ttype); yyval.ttype = access_default_virtual_node; ; break;} -case 489: -#line 2572 "parse.y" +case 488: +#line 2570 "parse.y" { if (yyvsp[-2].ttype != access_default_virtual_node) error ("multiple access specifiers"); @@ -6410,8 +6408,8 @@ case 489: yyval.ttype = access_private_virtual_node; ; break;} -case 490: -#line 2583 "parse.y" +case 489: +#line 2581 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) cp_error ("`%D' access", yyvsp[-1].ttype); else if (yyval.ttype == access_public_node) @@ -6424,8 +6422,8 @@ case 490: error ("multiple `virtual' specifiers"); ; break;} -case 491: -#line 2598 "parse.y" +case 490: +#line 2596 "parse.y" { tree t = yyvsp[-1].ttype; push_obstacks_nochange (); end_temporary_allocation (); @@ -6512,18 +6510,18 @@ case 491: begin_tree (); ; break;} -case 492: -#line 2687 "parse.y" +case 491: +#line 2685 "parse.y" { yyval.ttype = build_self_reference (); ; break;} -case 493: -#line 2694 "parse.y" +case 492: +#line 2692 "parse.y" { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ; break;} -case 494: -#line 2696 "parse.y" +case 493: +#line 2694 "parse.y" { if (current_aggr == signature_type_node) yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype); @@ -6532,8 +6530,8 @@ case 494: if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype); ; break;} -case 495: -#line 2704 "parse.y" +case 494: +#line 2702 "parse.y" { tree visspec = yyvsp[-2].ttype; @@ -6545,20 +6543,20 @@ case 495: yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype)); ; break;} -case 496: -#line 2715 "parse.y" +case 495: +#line 2713 "parse.y" { if (current_aggr == signature_type_node) error ("access specifier not allowed in signature"); ; break;} -case 497: -#line 2725 "parse.y" +case 496: +#line 2723 "parse.y" { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ; break;} -case 498: -#line 2728 "parse.y" +case 497: +#line 2726 "parse.y" { /* In pushdecl, we created a reverse list of names in this binding level. Make sure that the chain of what we're trying to add isn't the item itself @@ -6572,15 +6570,19 @@ case 498: } ; break;} -case 499: -#line 2744 "parse.y" +case 498: +#line 2742 "parse.y" { ; break;} -case 500: -#line 2746 "parse.y" +case 499: +#line 2744 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} +case 500: +#line 2749 "parse.y" +{ yyval.ttype = finish_method (yyval.ttype); ; + break;} case 501: #line 2751 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; @@ -6595,69 +6597,73 @@ case 503: break;} case 504: #line 2757 "parse.y" -{ yyval.ttype = finish_method (yyval.ttype); ; +{ yyval.ttype = NULL_TREE; ; break;} case 505: #line 2759 "parse.y" -{ yyval.ttype = NULL_TREE; ; - break;} -case 506: -#line 2761 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} +case 506: +#line 2762 "parse.y" +{ yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ; + break;} case 507: -#line 2770 "parse.y" -{ yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; +#line 2764 "parse.y" +{ + shadow_tag (yyvsp[-1].ftype.t); + note_list_got_semicolon (yyvsp[-1].ftype.t); + yyval.ttype = finish_member_template_decl (yyvsp[-2].ttype, yyvsp[-1].ftype.t); + ; break;} case 508: -#line 2772 "parse.y" -{ yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ; +#line 2776 "parse.y" +{ yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 509: -#line 2774 "parse.y" -{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, - build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; +#line 2778 "parse.y" +{ yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 510: -#line 2777 "parse.y" +#line 2780 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 511: -#line 2780 "parse.y" -{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; +#line 2783 "parse.y" +{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, + build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 512: -#line 2782 "parse.y" -{ yyval.ttype = NULL_TREE; ; +#line 2786 "parse.y" +{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} case 513: -#line 2793 "parse.y" +#line 2788 "parse.y" +{ yyval.ttype = NULL_TREE; ; + break;} +case 514: +#line 2799 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, attrs)); ; break;} -case 514: -#line 2798 "parse.y" +case 515: +#line 2804 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} -case 515: -#line 2801 "parse.y" -{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; - break;} case 516: -#line 2803 "parse.y" -{ yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ; +#line 2807 "parse.y" +{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} case 517: -#line 2809 "parse.y" +#line 2813 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 519: -#line 2812 "parse.y" +#line 2816 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ @@ -6668,11 +6674,11 @@ case 519: ; break;} case 520: -#line 2824 "parse.y" +#line 2828 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 522: -#line 2827 "parse.y" +#line 2831 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ @@ -6683,7 +6689,7 @@ case 522: ; break;} case 527: -#line 2849 "parse.y" +#line 2853 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6691,7 +6697,7 @@ case 527: build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 528: -#line 2855 "parse.y" +#line 2859 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6699,7 +6705,7 @@ case 528: cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 529: -#line 2864 "parse.y" +#line 2868 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6707,7 +6713,7 @@ case 529: build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 530: -#line 2870 "parse.y" +#line 2874 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6715,7 +6721,7 @@ case 530: build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 531: -#line 2876 "parse.y" +#line 2880 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; @@ -6723,7 +6729,7 @@ case 531: cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 532: -#line 2882 "parse.y" +#line 2886 "parse.y" { split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-3].ttype = current_declspecs; @@ -6731,54 +6737,54 @@ case 532: cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 533: -#line 2891 "parse.y" +#line 2895 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 534: -#line 2894 "parse.y" +#line 2898 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 535: -#line 2900 "parse.y" +#line 2904 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 536: -#line 2903 "parse.y" +#line 2907 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 537: -#line 2906 "parse.y" +#line 2910 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 539: -#line 2917 "parse.y" +#line 2921 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 540: -#line 2922 "parse.y" +#line 2926 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ; break;} case 541: -#line 2924 "parse.y" +#line 2928 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ; break;} case 542: -#line 2930 "parse.y" +#line 2934 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 543: -#line 2933 "parse.y" +#line 2937 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 544: -#line 2938 "parse.y" +#line 2942 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new"); @@ -6788,71 +6794,71 @@ case 544: ; break;} case 545: -#line 2949 "parse.y" +#line 2953 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 546: -#line 2951 "parse.y" +#line 2955 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 547: -#line 2956 "parse.y" +#line 2960 "parse.y" { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 548: -#line 2959 "parse.y" +#line 2963 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 549: -#line 2968 "parse.y" +#line 2972 "parse.y" { yyval.itype = suspend_momentary (); ; break;} case 550: -#line 2973 "parse.y" +#line 2977 "parse.y" { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ; break;} case 551: -#line 2979 "parse.y" +#line 2983 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 552: -#line 2981 "parse.y" +#line 2985 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 553: -#line 2983 "parse.y" +#line 2987 "parse.y" { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ; break;} case 554: -#line 2985 "parse.y" +#line 2989 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ; break;} case 555: -#line 2992 "parse.y" +#line 2996 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 556: -#line 2994 "parse.y" +#line 2998 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 557: -#line 2996 "parse.y" +#line 3000 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 558: -#line 2998 "parse.y" +#line 3002 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 559: -#line 3000 "parse.y" +#line 3004 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 561: -#line 3008 "parse.y" +#line 3012 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { @@ -6871,7 +6877,7 @@ case 561: ; break;} case 562: -#line 3025 "parse.y" +#line 3029 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); @@ -6881,97 +6887,97 @@ case 562: ; break;} case 565: -#line 3038 "parse.y" +#line 3042 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 566: -#line 3043 "parse.y" +#line 3047 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} case 567: -#line 3048 "parse.y" +#line 3052 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 568: -#line 3050 "parse.y" +#line 3054 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 569: -#line 3052 "parse.y" +#line 3056 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 570: -#line 3054 "parse.y" +#line 3058 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 571: -#line 3056 "parse.y" +#line 3060 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} case 573: -#line 3067 "parse.y" +#line 3071 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 574: -#line 3069 "parse.y" +#line 3073 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 575: -#line 3071 "parse.y" +#line 3075 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 576: -#line 3073 "parse.y" +#line 3077 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 577: -#line 3075 "parse.y" +#line 3079 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 579: -#line 3083 "parse.y" +#line 3087 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 580: -#line 3085 "parse.y" +#line 3089 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 581: -#line 3087 "parse.y" +#line 3091 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 582: -#line 3089 "parse.y" +#line 3093 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 583: -#line 3091 "parse.y" +#line 3095 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 585: -#line 3099 "parse.y" +#line 3103 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 586: -#line 3101 "parse.y" +#line 3105 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 587: -#line 3103 "parse.y" +#line 3107 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 588: -#line 3105 "parse.y" +#line 3109 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 589: -#line 3107 "parse.y" +#line 3111 "parse.y" { if (OP0 (yyval.ttype) != current_class_type) { push_nested_class (OP0 (yyval.ttype), 3); @@ -6980,7 +6986,7 @@ case 589: ; break;} case 590: -#line 3114 "parse.y" +#line 3118 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); if (yyvsp[-1].ttype != current_class_type) @@ -6991,47 +6997,47 @@ case 590: ; break;} case 591: -#line 3126 "parse.y" +#line 3130 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 592: -#line 3129 "parse.y" +#line 3133 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 593: -#line 3135 "parse.y" +#line 3139 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 594: -#line 3138 "parse.y" +#line 3142 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 596: -#line 3145 "parse.y" +#line 3149 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 597: -#line 3150 "parse.y" +#line 3154 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 598: -#line 3152 "parse.y" +#line 3156 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 599: -#line 3154 "parse.y" +#line 3158 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 604: -#line 3166 "parse.y" +#line 3170 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 605: -#line 3173 "parse.y" +#line 3177 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { @@ -7047,7 +7053,7 @@ case 605: ; break;} case 606: -#line 3187 "parse.y" +#line 3191 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7055,7 +7061,7 @@ case 606: ; break;} case 607: -#line 3193 "parse.y" +#line 3197 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7063,15 +7069,15 @@ case 607: ; break;} case 608: -#line 3199 "parse.y" +#line 3203 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} case 610: -#line 3215 "parse.y" +#line 3219 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 611: -#line 3220 "parse.y" +#line 3224 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); @@ -7086,14 +7092,14 @@ case 611: ; break;} case 612: -#line 3236 "parse.y" +#line 3240 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); ; break;} case 613: -#line 3241 "parse.y" +#line 3245 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); @@ -7108,7 +7114,7 @@ case 613: ; break;} case 614: -#line 3257 "parse.y" +#line 3261 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyvsp[-1].ttype = lastiddecl; @@ -7120,7 +7126,7 @@ case 614: ; break;} case 615: -#line 3267 "parse.y" +#line 3271 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7128,11 +7134,11 @@ case 615: ; break;} case 616: -#line 3273 "parse.y" +#line 3277 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} case 619: -#line 3277 "parse.y" +#line 3281 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; @@ -7140,7 +7146,7 @@ case 619: ; break;} case 620: -#line 3286 "parse.y" +#line 3290 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); @@ -7150,156 +7156,156 @@ case 620: ; break;} case 622: -#line 3295 "parse.y" +#line 3299 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 623: -#line 3300 "parse.y" +#line 3304 "parse.y" { got_scope = NULL_TREE; ; break;} case 624: -#line 3302 "parse.y" +#line 3306 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} case 625: -#line 3309 "parse.y" +#line 3313 "parse.y" { got_scope = void_type_node; ; break;} case 626: -#line 3315 "parse.y" +#line 3319 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 627: -#line 3317 "parse.y" +#line 3321 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 628: -#line 3319 "parse.y" +#line 3323 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 629: -#line 3321 "parse.y" +#line 3325 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 630: -#line 3323 "parse.y" +#line 3327 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 631: -#line 3327 "parse.y" +#line 3331 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 633: -#line 3336 "parse.y" +#line 3340 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 634: -#line 3338 "parse.y" +#line 3342 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 635: -#line 3344 "parse.y" +#line 3348 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 636: -#line 3346 "parse.y" +#line 3350 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 637: -#line 3348 "parse.y" +#line 3352 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 638: -#line 3350 "parse.y" +#line 3354 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} case 639: -#line 3352 "parse.y" +#line 3356 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 640: -#line 3354 "parse.y" +#line 3358 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 641: -#line 3356 "parse.y" +#line 3360 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 642: -#line 3358 "parse.y" +#line 3362 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} case 643: -#line 3360 "parse.y" +#line 3364 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 644: -#line 3364 "parse.y" +#line 3368 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 646: -#line 3373 "parse.y" +#line 3377 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 648: -#line 3377 "parse.y" +#line 3381 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 649: -#line 3379 "parse.y" +#line 3383 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 650: -#line 3381 "parse.y" +#line 3385 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 651: -#line 3383 "parse.y" +#line 3387 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 652: -#line 3385 "parse.y" +#line 3389 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 653: -#line 3387 "parse.y" +#line 3391 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 654: -#line 3389 "parse.y" +#line 3393 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 655: -#line 3391 "parse.y" +#line 3395 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 656: -#line 3393 "parse.y" +#line 3397 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} case 662: -#line 3417 "parse.y" +#line 3421 "parse.y" { do_pushlevel (); ; break;} case 663: -#line 3422 "parse.y" +#line 3426 "parse.y" { yyval.ttype = do_poplevel (); ; break;} case 665: -#line 3430 "parse.y" +#line 3434 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids label declarations"); ; break;} case 668: -#line 3441 "parse.y" +#line 3445 "parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { @@ -7310,11 +7316,11 @@ case 668: ; break;} case 669: -#line 3455 "parse.y" +#line 3459 "parse.y" {; break;} case 671: -#line 3461 "parse.y" +#line 3465 "parse.y" { if (processing_template_decl) { @@ -7324,7 +7330,7 @@ case 671: ; break;} case 672: -#line 3469 "parse.y" +#line 3473 "parse.y" { if (processing_template_decl) { @@ -7336,7 +7342,7 @@ case 672: ; break;} case 673: -#line 3482 "parse.y" +#line 3486 "parse.y" { if (processing_template_decl) { @@ -7348,7 +7354,7 @@ case 673: ; break;} case 674: -#line 3492 "parse.y" +#line 3496 "parse.y" { if (processing_template_decl) { @@ -7369,7 +7375,7 @@ case 674: ; break;} case 675: -#line 3511 "parse.y" +#line 3515 "parse.y" { if (processing_template_decl) { @@ -7380,11 +7386,11 @@ case 675: ; break;} case 676: -#line 3523 "parse.y" +#line 3527 "parse.y" { finish_stmt (); ; break;} case 677: -#line 3525 "parse.y" +#line 3529 "parse.y" { if (processing_template_decl) { @@ -7394,7 +7400,7 @@ case 677: ; break;} case 678: -#line 3533 "parse.y" +#line 3537 "parse.y" { if (processing_template_decl) { @@ -7406,15 +7412,15 @@ case 678: ; break;} case 679: -#line 3546 "parse.y" +#line 3550 "parse.y" { finish_stmt (); ; break;} case 681: -#line 3552 "parse.y" +#line 3556 "parse.y" { finish_stmt (); ; break;} case 682: -#line 3554 "parse.y" +#line 3558 "parse.y" { tree expr = yyvsp[-1].ttype; if (! processing_template_decl) @@ -7432,11 +7438,11 @@ case 682: finish_stmt (); ; break;} case 683: -#line 3570 "parse.y" +#line 3574 "parse.y" { if (! processing_template_decl) expand_start_else (); ; break;} case 684: -#line 3572 "parse.y" +#line 3576 "parse.y" { if (processing_template_decl) { @@ -7449,17 +7455,17 @@ case 684: ; break;} case 685: -#line 3583 "parse.y" +#line 3587 "parse.y" { finish_stmt (); ; break;} case 686: -#line 3585 "parse.y" +#line 3589 "parse.y" { if (! processing_template_decl) expand_end_cond (); do_poplevel (); finish_stmt (); ; break;} case 687: -#line 3589 "parse.y" +#line 3593 "parse.y" { if (processing_template_decl) { @@ -7476,7 +7482,7 @@ case 687: ; break;} case 688: -#line 3604 "parse.y" +#line 3608 "parse.y" { if (processing_template_decl) { @@ -7506,7 +7512,7 @@ case 688: ; break;} case 689: -#line 3632 "parse.y" +#line 3636 "parse.y" { if (processing_template_decl) { @@ -7520,7 +7526,7 @@ case 689: ; break;} case 690: -#line 3644 "parse.y" +#line 3648 "parse.y" { if (processing_template_decl) { @@ -7536,7 +7542,7 @@ case 690: ; break;} case 691: -#line 3658 "parse.y" +#line 3662 "parse.y" { if (processing_template_decl) { @@ -7552,7 +7558,7 @@ case 691: ; break;} case 692: -#line 3672 "parse.y" +#line 3676 "parse.y" { if (processing_template_decl) TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype; @@ -7567,7 +7573,7 @@ case 692: ; break;} case 693: -#line 3685 "parse.y" +#line 3689 "parse.y" { if (processing_template_decl) { yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, @@ -7588,7 +7594,7 @@ case 693: ; break;} case 694: -#line 3704 "parse.y" +#line 3708 "parse.y" { if (processing_template_decl) { @@ -7608,7 +7614,7 @@ case 694: ; break;} case 695: -#line 3722 "parse.y" +#line 3726 "parse.y" { if (processing_template_decl) { @@ -7638,7 +7644,7 @@ case 695: ; break;} case 696: -#line 3752 "parse.y" +#line 3756 "parse.y" { if (processing_template_decl) TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype; @@ -7646,7 +7652,7 @@ case 696: ; break;} case 697: -#line 3758 "parse.y" +#line 3762 "parse.y" { if (processing_template_decl) { @@ -7669,7 +7675,7 @@ case 697: finish_stmt (); ; break;} case 698: -#line 3779 "parse.y" +#line 3783 "parse.y" { if (processing_template_decl) { @@ -7688,7 +7694,7 @@ case 698: ; break;} case 699: -#line 3796 "parse.y" +#line 3800 "parse.y" { if (processing_template_decl) { @@ -7703,23 +7709,23 @@ case 699: ; break;} case 700: -#line 3809 "parse.y" +#line 3813 "parse.y" { finish_stmt (); ; break;} case 701: -#line 3811 "parse.y" +#line 3815 "parse.y" { do_case (yyvsp[-1].ttype, NULL_TREE); ; break;} case 703: -#line 3814 "parse.y" +#line 3818 "parse.y" { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 705: -#line 3817 "parse.y" +#line 3821 "parse.y" { do_case (NULL_TREE, NULL_TREE); ; break;} case 707: -#line 3820 "parse.y" +#line 3824 "parse.y" { emit_line_note (input_filename, lineno); if (processing_template_decl) add_tree (build_min_nt (BREAK_STMT)); @@ -7727,7 +7733,7 @@ case 707: error ("break statement not within loop or switch"); ; break;} case 708: -#line 3826 "parse.y" +#line 3830 "parse.y" { emit_line_note (input_filename, lineno); if (processing_template_decl) add_tree (build_min_nt (CONTINUE_STMT)); @@ -7735,19 +7741,19 @@ case 708: error ("continue statement not within a loop"); ; break;} case 709: -#line 3832 "parse.y" +#line 3836 "parse.y" { emit_line_note (input_filename, lineno); c_expand_return (NULL_TREE); ; break;} case 710: -#line 3835 "parse.y" +#line 3839 "parse.y" { emit_line_note (input_filename, lineno); c_expand_return (yyvsp[-1].ttype); finish_stmt (); ; break;} case 711: -#line 3840 "parse.y" +#line 3844 "parse.y" { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); emit_line_note (input_filename, lineno); expand_asm (yyvsp[-2].ttype); @@ -7755,7 +7761,7 @@ case 711: ; break;} case 712: -#line 3847 "parse.y" +#line 3851 "parse.y" { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype); emit_line_note (input_filename, lineno); c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, @@ -7765,7 +7771,7 @@ case 712: ; break;} case 713: -#line 3856 "parse.y" +#line 3860 "parse.y" { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype); emit_line_note (input_filename, lineno); c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, @@ -7775,7 +7781,7 @@ case 713: ; break;} case 714: -#line 3866 "parse.y" +#line 3870 "parse.y" { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype); emit_line_note (input_filename, lineno); c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, @@ -7785,7 +7791,7 @@ case 714: ; break;} case 715: -#line 3874 "parse.y" +#line 3878 "parse.y" { if (processing_template_decl) add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); @@ -7795,7 +7801,7 @@ case 715: ; break;} case 716: -#line 3882 "parse.y" +#line 3886 "parse.y" { if (processing_template_decl) add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); @@ -7810,21 +7816,21 @@ case 716: ; break;} case 717: -#line 3895 "parse.y" +#line 3899 "parse.y" { finish_stmt (); ; break;} case 718: -#line 3897 "parse.y" +#line 3901 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); finish_stmt (); ; break;} case 719: -#line 3901 "parse.y" +#line 3905 "parse.y" { finish_stmt (); ; break;} case 721: -#line 3907 "parse.y" +#line 3911 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); @@ -7832,11 +7838,11 @@ case 721: ; break;} case 722: -#line 3913 "parse.y" +#line 3917 "parse.y" { expand_start_all_catch (); ; break;} case 723: -#line 3915 "parse.y" +#line 3919 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); @@ -7845,7 +7851,7 @@ case 723: ; break;} case 724: -#line 3925 "parse.y" +#line 3929 "parse.y" { if (processing_template_decl) { @@ -7861,7 +7867,7 @@ case 724: ; break;} case 725: -#line 3939 "parse.y" +#line 3943 "parse.y" { if (processing_template_decl) { @@ -7874,7 +7880,7 @@ case 725: ; break;} case 726: -#line 3950 "parse.y" +#line 3954 "parse.y" { if (processing_template_decl) { @@ -7887,7 +7893,7 @@ case 726: ; break;} case 729: -#line 3969 "parse.y" +#line 3973 "parse.y" { if (processing_template_decl) { @@ -7898,7 +7904,7 @@ case 729: ; break;} case 730: -#line 3978 "parse.y" +#line 3982 "parse.y" { if (processing_template_decl) { @@ -7909,7 +7915,7 @@ case 730: ; break;} case 731: -#line 3987 "parse.y" +#line 3991 "parse.y" { if (processing_template_decl) { @@ -7922,17 +7928,17 @@ case 731: ; break;} case 735: -#line 4007 "parse.y" +#line 4011 "parse.y" { expand_start_catch_block (NULL_TREE, NULL_TREE); ; break;} case 736: -#line 4023 "parse.y" +#line 4027 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t), TREE_VALUE (yyvsp[-1].ftype.t)); ; break;} case 737: -#line 4030 "parse.y" +#line 4034 "parse.y" { tree label; do_label: label = define_label (input_filename, lineno, yyvsp[-1].ttype); @@ -7941,129 +7947,129 @@ case 737: ; break;} case 738: -#line 4037 "parse.y" +#line 4041 "parse.y" { goto do_label; ; break;} case 739: -#line 4039 "parse.y" +#line 4043 "parse.y" { goto do_label; ; break;} case 740: -#line 4041 "parse.y" +#line 4045 "parse.y" { goto do_label; ; break;} case 741: -#line 4046 "parse.y" +#line 4050 "parse.y" { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ; break;} case 743: -#line 4049 "parse.y" +#line 4053 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids compound statements inside for initializations"); ; break;} case 744: -#line 4058 "parse.y" +#line 4062 "parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} case 745: -#line 4061 "parse.y" +#line 4065 "parse.y" { emit_line_note (input_filename, lineno); ; break;} case 746: -#line 4066 "parse.y" +#line 4070 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 748: -#line 4069 "parse.y" +#line 4073 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 749: -#line 4076 "parse.y" +#line 4080 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 752: -#line 4083 "parse.y" +#line 4087 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 753: -#line 4088 "parse.y" +#line 4092 "parse.y" { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ; break;} case 754: -#line 4093 "parse.y" +#line 4097 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ; break;} case 755: -#line 4095 "parse.y" +#line 4099 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 756: -#line 4106 "parse.y" +#line 4110 "parse.y" { yyval.ttype = empty_parms(); ; break;} case 758: -#line 4111 "parse.y" +#line 4115 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node); TREE_PARMLIST (yyval.ttype) = 1; check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} case 759: -#line 4120 "parse.y" +#line 4124 "parse.y" { yyval.ttype = chainon (yyval.ttype, void_list_node); TREE_PARMLIST (yyval.ttype) = 1; ; break;} case 760: -#line 4125 "parse.y" +#line 4129 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} case 761: -#line 4130 "parse.y" +#line 4134 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} case 762: -#line 4134 "parse.y" +#line 4138 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); TREE_PARMLIST (yyval.ttype) = 1; ; break;} case 763: -#line 4139 "parse.y" +#line 4143 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 764: -#line 4143 "parse.y" +#line 4147 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} case 765: -#line 4147 "parse.y" +#line 4151 "parse.y" { TREE_PARMLIST (yyval.ttype) = 1; ; break;} case 766: -#line 4151 "parse.y" +#line 4155 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); TREE_PARMLIST (yyval.ttype) = 1; ; break;} case 767: -#line 4156 "parse.y" +#line 4160 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right @@ -8076,7 +8082,7 @@ case 767: ; break;} case 768: -#line 4167 "parse.y" +#line 4171 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right @@ -8089,98 +8095,98 @@ case 768: ; break;} case 769: -#line 4182 "parse.y" +#line 4186 "parse.y" { maybe_snarf_defarg (); ; break;} case 770: -#line 4184 "parse.y" +#line 4188 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 773: -#line 4195 "parse.y" +#line 4199 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 774: -#line 4198 "parse.y" +#line 4202 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} case 775: -#line 4201 "parse.y" +#line 4205 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} case 776: -#line 4204 "parse.y" +#line 4208 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 777: -#line 4206 "parse.y" +#line 4210 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} case 779: -#line 4212 "parse.y" +#line 4216 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} case 780: -#line 4222 "parse.y" +#line 4226 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ; break;} case 781: -#line 4226 "parse.y" +#line 4230 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 782: -#line 4229 "parse.y" +#line 4233 "parse.y" { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 783: -#line 4232 "parse.y" +#line 4236 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 784: -#line 4236 "parse.y" +#line 4240 "parse.y" { tree specs = strip_attrs (yyvsp[0].ftype.t); yyval.ftype.t = build_tree_list (specs, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 785: -#line 4240 "parse.y" +#line 4244 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ttype); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 786: -#line 4247 "parse.y" +#line 4251 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 787: -#line 4250 "parse.y" +#line 4254 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 790: -#line 4261 "parse.y" +#line 4265 "parse.y" { see_typename (); ; break;} case 791: -#line 4266 "parse.y" +#line 4270 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} case 792: -#line 4271 "parse.y" +#line 4275 "parse.y" { error ("type specifier omitted for parameter"); if (TREE_CODE (yyval.ttype) == SCOPE_REF @@ -8191,188 +8197,188 @@ case 792: ; break;} case 793: -#line 4283 "parse.y" +#line 4287 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 794: -#line 4285 "parse.y" +#line 4289 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 795: -#line 4287 "parse.y" +#line 4291 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ; break;} case 796: -#line 4292 "parse.y" +#line 4296 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ; break;} case 798: -#line 4298 "parse.y" +#line 4302 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 799: -#line 4306 "parse.y" +#line 4310 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 800: -#line 4308 "parse.y" +#line 4312 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 801: -#line 4310 "parse.y" +#line 4314 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 802: -#line 4312 "parse.y" +#line 4316 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 803: -#line 4319 "parse.y" +#line 4323 "parse.y" { got_scope = NULL_TREE; ; break;} case 804: -#line 4324 "parse.y" +#line 4328 "parse.y" { yyval.ttype = ansi_opname[MULT_EXPR]; ; break;} case 805: -#line 4326 "parse.y" +#line 4330 "parse.y" { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ; break;} case 806: -#line 4328 "parse.y" +#line 4332 "parse.y" { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ; break;} case 807: -#line 4330 "parse.y" +#line 4334 "parse.y" { yyval.ttype = ansi_opname[PLUS_EXPR]; ; break;} case 808: -#line 4332 "parse.y" +#line 4336 "parse.y" { yyval.ttype = ansi_opname[MINUS_EXPR]; ; break;} case 809: -#line 4334 "parse.y" +#line 4338 "parse.y" { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ; break;} case 810: -#line 4336 "parse.y" +#line 4340 "parse.y" { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ; break;} case 811: -#line 4338 "parse.y" +#line 4342 "parse.y" { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ; break;} case 812: -#line 4340 "parse.y" +#line 4344 "parse.y" { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ; break;} case 813: -#line 4342 "parse.y" +#line 4346 "parse.y" { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ; break;} case 814: -#line 4344 "parse.y" +#line 4348 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 815: -#line 4346 "parse.y" +#line 4350 "parse.y" { yyval.ttype = ansi_opname[LT_EXPR]; ; break;} case 816: -#line 4348 "parse.y" +#line 4352 "parse.y" { yyval.ttype = ansi_opname[GT_EXPR]; ; break;} case 817: -#line 4350 "parse.y" +#line 4354 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 818: -#line 4352 "parse.y" +#line 4356 "parse.y" { yyval.ttype = ansi_assopname[yyvsp[0].code]; ; break;} case 819: -#line 4354 "parse.y" +#line 4358 "parse.y" { yyval.ttype = ansi_opname [MODIFY_EXPR]; ; break;} case 820: -#line 4356 "parse.y" +#line 4360 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 821: -#line 4358 "parse.y" +#line 4362 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 822: -#line 4360 "parse.y" +#line 4364 "parse.y" { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ; break;} case 823: -#line 4362 "parse.y" +#line 4366 "parse.y" { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ; break;} case 824: -#line 4364 "parse.y" +#line 4368 "parse.y" { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ; break;} case 825: -#line 4366 "parse.y" +#line 4370 "parse.y" { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ; break;} case 826: -#line 4368 "parse.y" +#line 4372 "parse.y" { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ; break;} case 827: -#line 4370 "parse.y" +#line 4374 "parse.y" { yyval.ttype = ansi_opname[COND_EXPR]; ; break;} case 828: -#line 4372 "parse.y" +#line 4376 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 829: -#line 4374 "parse.y" +#line 4378 "parse.y" { yyval.ttype = ansi_opname[COMPONENT_REF]; ; break;} case 830: -#line 4376 "parse.y" +#line 4380 "parse.y" { yyval.ttype = ansi_opname[MEMBER_REF]; ; break;} case 831: -#line 4378 "parse.y" +#line 4382 "parse.y" { yyval.ttype = ansi_opname[CALL_EXPR]; ; break;} case 832: -#line 4380 "parse.y" +#line 4384 "parse.y" { yyval.ttype = ansi_opname[ARRAY_REF]; ; break;} case 833: -#line 4382 "parse.y" +#line 4386 "parse.y" { yyval.ttype = ansi_opname[NEW_EXPR]; ; break;} case 834: -#line 4384 "parse.y" +#line 4388 "parse.y" { yyval.ttype = ansi_opname[DELETE_EXPR]; ; break;} case 835: -#line 4386 "parse.y" +#line 4390 "parse.y" { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ; break;} case 836: -#line 4388 "parse.y" +#line 4392 "parse.y" { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ; break;} case 837: -#line 4391 "parse.y" +#line 4395 "parse.y" { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 838: -#line 4393 "parse.y" +#line 4397 "parse.y" { yyval.ttype = ansi_opname[ERROR_MARK]; ; break;} } @@ -8573,7 +8579,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 4396 "parse.y" +#line 4400 "parse.y" #ifdef SPEW_DEBUG diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y index 4df861ebd08..71a59a19b01 100644 --- a/gcc/cp/parse.y +++ b/gcc/cp/parse.y @@ -769,8 +769,6 @@ fn.def2: $$ = start_method (specs, $2); goto rest_of_mdef; } | constructor_declarator { $$ = start_method (NULL_TREE, $$); goto rest_of_mdef; } - | template_header fn.def2 - { $$ = finish_member_template_decl ($1, $2); } ; return_id: @@ -2760,6 +2758,14 @@ component_decl: | extension component_decl { $$ = $2; pedantic = $1; } + | template_header component_decl + { $$ = finish_member_template_decl ($1, $2); } + | template_header typed_declspecs ';' + { + shadow_tag ($2.t); + note_list_got_semicolon ($2.t); + $$ = finish_member_template_decl ($1, $2.t); + } ; component_decl_1: @@ -2799,8 +2805,6 @@ component_decl_1: build_tree_list ($3, NULL_TREE)); } | using_decl { $$ = do_class_using_decl ($1); } - | template_header component_decl_1 - { $$ = finish_member_template_decl ($1, $2); } /* The case of exactly one component is handled directly by component_decl. */ /* ??? Huh? ^^^ */ diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 6783b12dbf8..a64fe4cc5a6 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -99,12 +99,24 @@ finish_member_template_decl (template_parameters, decl) tree decl; { if (template_parameters) - end_template_decl(); + end_template_decl (); else - end_specialization(); + end_specialization (); - if (decl && DECL_TEMPLATE_INFO (decl) && - !DECL_TEMPLATE_SPECIALIZATION (decl)) + if (decl == NULL_TREE || decl == void_type_node) + return NULL_TREE; + else if (TREE_CODE (decl) == TREE_LIST) + { + decl = TREE_VALUE (decl); + if (IS_AGGR_TYPE (decl) && CLASSTYPE_TEMPLATE_INFO (decl)) + { + tree tmpl = CLASSTYPE_TI_TEMPLATE (decl); + check_member_template (tmpl); + return tmpl; + } + } + else if (DECL_TEMPLATE_INFO (decl) && + !DECL_TEMPLATE_SPECIALIZATION (decl)) { check_member_template (DECL_TI_TEMPLATE (decl)); return DECL_TI_TEMPLATE (decl); @@ -130,14 +142,14 @@ int template_class_depth (type) tree type; { - int depth = 0; + int depth; - /* Note: this implementation will be broken when we have nested - template classes. Presumably we will have to wrap this if - statement a loop. */ - if (CLASSTYPE_TEMPLATE_INFO (type) - && uses_template_parms (CLASSTYPE_TI_ARGS (type))) - ++depth; + for (depth = 0; type && TREE_CODE (type) != FUNCTION_DECL; + type = TYPE_CONTEXT (type)) + if (CLASSTYPE_TEMPLATE_INFO (type) + && PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (type)) + && uses_template_parms (CLASSTYPE_TI_ARGS (type))) + ++depth; return depth; } @@ -1047,18 +1059,19 @@ build_template_parm_index (index, level, orig_level, decl, type) /* Return a TEMPLATE_PARM_INDEX, similar to INDEX, but whose - TEMPLATE_PARM_LEVEL has been decreased by one. If such a + TEMPLATE_PARM_LEVEL has been decreased by LEVELS. If such a TEMPLATE_PARM_INDEX already exists, it is returned; otherwise, a new one is created. */ static tree -reduce_template_parm_level (index, type) +reduce_template_parm_level (index, type, levels) tree index; tree type; + int levels; { if (TEMPLATE_PARM_DESCENDANTS (index) == NULL_TREE || (TEMPLATE_PARM_LEVEL (TEMPLATE_PARM_DESCENDANTS (index)) - != TEMPLATE_PARM_LEVEL (index) - 1)) + != TEMPLATE_PARM_LEVEL (index) - levels)) { tree decl = build_decl (TREE_CODE (TEMPLATE_PARM_DECL (index)), @@ -1066,7 +1079,7 @@ reduce_template_parm_level (index, type) type); tree t = build_template_parm_index (TEMPLATE_PARM_IDX (index), - TEMPLATE_PARM_LEVEL (index) - 1, + TEMPLATE_PARM_LEVEL (index) - levels, TEMPLATE_PARM_ORIG_LEVEL (index), decl, type); TEMPLATE_PARM_DESCENDANTS (index) = t; @@ -1313,16 +1326,19 @@ push_template_decl (decl) is assumed to be a member of the class. */ ctx = current_class_type; - if ((! ctx - || (TREE_CODE_CLASS (TREE_CODE (ctx)) == 't' - && template_class_depth (ctx) == 0)) - /* At this point, we know that the DECL is not a member of some - template class. However, a friend function declared in a - template class is still not primary, since, in general it can - depend on the template parameters of the enclosing class. */ - && !(is_friend - && DECL_CLASS_CONTEXT (decl) - && template_class_depth (DECL_CLASS_CONTEXT (decl)) > 0)) + /* For determining whether this is a primary template or not, we're really + interested in the lexical context, not the true context. */ + if (is_friend) + info = DECL_CLASS_CONTEXT (decl); + else + info = ctx; + + if (info && TREE_CODE (info) == FUNCTION_DECL) + primary = 0; + else if (! info + || (TYPE_BEING_DEFINED (info) && template_header_count + && ! processing_specialization) + || (template_header_count > template_class_depth (info))) primary = 1; else primary = 0; @@ -2376,6 +2392,13 @@ lookup_template_class (d1, arglist, in_decl, context) template = CLASSTYPE_TI_TEMPLATE (d1); d1 = DECL_NAME (template); } + else if (TREE_CODE (d1) == TEMPLATE_DECL + && TREE_CODE (DECL_RESULT (d1)) == TYPE_DECL) + { + template = d1; + d1 = DECL_NAME (template); + context = DECL_CONTEXT (template); + } else my_friendly_abort (272); @@ -2928,6 +2951,13 @@ instantiate_class_template (type) my_friendly_assert (TREE_CODE (template) == TEMPLATE_DECL, 279); args = TI_ARGS (template_info); + if (DECL_TEMPLATE_INFO (template)) + { + args = add_to_template_args (DECL_TI_ARGS (template), args); + while (DECL_TEMPLATE_INFO (template)) + template = DECL_TI_TEMPLATE (template); + } + t = most_specialized_class (DECL_TEMPLATE_SPECIALIZATIONS (template), args); @@ -3391,6 +3421,7 @@ tsubst (t, args, in_decl) { int idx; int level; + int levels; tree r = NULL_TREE; if (TREE_CODE (t) == TEMPLATE_TYPE_PARM @@ -3411,12 +3442,17 @@ tsubst (t, args, in_decl) if (TREE_CODE (TREE_VEC_ELT (args, 0)) == TREE_VEC) { - if (TREE_VEC_LENGTH (args) >= level - 1) + levels = TREE_VEC_LENGTH (args); + if (level <= levels) arg = TREE_VEC_ELT (TREE_VEC_ELT (args, level - 1), idx); } - else if (level == 1) - arg = TREE_VEC_ELT (args, idx); + else + { + levels = 1; + if (level == 1) + arg = TREE_VEC_ELT (args, idx); + } if (arg != NULL_TREE) { @@ -3470,14 +3506,14 @@ tsubst (t, args, in_decl) r = copy_node (t); TEMPLATE_TYPE_PARM_INDEX (r) = reduce_template_parm_level (TEMPLATE_TYPE_PARM_INDEX (t), - r); + r, levels); TYPE_STUB_DECL (r) = TYPE_NAME (r) = TEMPLATE_TYPE_DECL (r); TYPE_MAIN_VARIANT (r) = r; TYPE_POINTER_TO (r) = NULL_TREE; break; case TEMPLATE_PARM_INDEX: - r = reduce_template_parm_level (t, TREE_TYPE (t)); + r = reduce_template_parm_level (t, TREE_TYPE (t), levels); break; default: @@ -3493,23 +3529,15 @@ tsubst (t, args, in_decl) of a template class. */ tree tmpl; tree decl = DECL_TEMPLATE_RESULT (t); - tree new_decl; tree parms; tree* new_parms; tree spec; - if (TREE_CODE (decl) == TYPE_DECL) - { - if (TREE_CODE (TREE_TYPE (decl)) == TEMPLATE_TEMPLATE_PARM) - /* There is no tsubst'ing to be done in a template template - parameter. */ - return t; - - /* This must be a member template class. We don't handle - this case yet. */ - sorry ("member template classes"); - return t; - } + if (TREE_CODE (decl) == TYPE_DECL + && TREE_CODE (TREE_TYPE (decl)) == TEMPLATE_TEMPLATE_PARM) + /* There is no tsubst'ing to be done in a template template + parameter. */ + return t; /* We might already have an instance of this template. */ spec = retrieve_specialization (t, args); @@ -3531,10 +3559,22 @@ tsubst (t, args, in_decl) DECL_CLASS_CONTEXT (tmpl) = tsubst (DECL_CLASS_CONTEXT (t), args, in_decl); DECL_TEMPLATE_INFO (tmpl) = build_tree_list (t, args); - new_decl = tsubst (decl, args, in_decl); - DECL_RESULT (tmpl) = new_decl; - DECL_TI_TEMPLATE (new_decl) = tmpl; - TREE_TYPE (tmpl) = TREE_TYPE (new_decl); + + if (TREE_CODE (decl) == TYPE_DECL) + { + tree new_type = tsubst (TREE_TYPE (t), args, in_decl); + TREE_TYPE (tmpl) = new_type; + CLASSTYPE_TI_TEMPLATE (new_type) = tmpl; + DECL_RESULT (tmpl) = TYPE_MAIN_DECL (new_type); + } + else + { + tree new_decl = tsubst (decl, args, in_decl); + DECL_RESULT (tmpl) = new_decl; + DECL_TI_TEMPLATE (new_decl) = tmpl; + TREE_TYPE (tmpl) = TREE_TYPE (new_decl); + } + DECL_TEMPLATE_INSTANTIATIONS (tmpl) = NULL_TREE; SET_DECL_IMPLICIT_INSTANTIATION (tmpl); @@ -3572,6 +3612,12 @@ tsubst (t, args, in_decl) NULL_TREE); } + if (PRIMARY_TEMPLATE_P (t)) + TREE_TYPE (DECL_INNERMOST_TEMPLATE_PARMS (tmpl)) = tmpl; + + if (TREE_CODE (decl) == TYPE_DECL) + return tmpl; + /* What should we do with the specializations of this member template? Are they specializations of this new template, or instantiations of the templates they previously were? diff --git a/gcc/cp/spew.c b/gcc/cp/spew.c index b4799d42e68..2112e23cf27 100644 --- a/gcc/cp/spew.c +++ b/gcc/cp/spew.c @@ -313,6 +313,7 @@ yylex () case TYPENAME: case SELFNAME: case NSNAME: + case PTYPENAME: lastiddecl = trrr; if (got_scope) tmp_token.yylval.ttype = trrr; @@ -320,7 +321,6 @@ yylex () case PFUNCNAME: case IDENTIFIER: - case PTYPENAME: lastiddecl = trrr; break; diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index fa5ee5a2a1b..ce695e0b44d 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -6304,8 +6304,16 @@ get_delta_difference (from, to, force) return delta; } binfo = get_binfo (to, from, 1); - if (binfo == 0 || binfo == error_mark_node || TREE_VIA_VIRTUAL (binfo)) + if (binfo == 0 || binfo == error_mark_node) return delta; + if (TREE_VIA_VIRTUAL (binfo)) + { + binfo = binfo_member (BINFO_TYPE (binfo), + CLASSTYPE_VBASECLASSES (from)); + cp_warning ("pointer to member cast to virtual base `%T'", + BINFO_TYPE (binfo)); + warning (" will only work if you are very careful"); + } delta = BINFO_OFFSET (binfo); delta = cp_convert (ptrdiff_type_node, delta); @@ -6325,7 +6333,6 @@ get_delta_difference (from, to, force) else cp_error ("pointer to member conversion from virtual base `%T'", BINFO_TYPE (binfo)); - return delta; } return BINFO_OFFSET (binfo); -- 2.30.2