diff --git a/Geo/GModelIO_GEO.cpp b/Geo/GModelIO_GEO.cpp index e84447b192f87219c59c2738262b1ed02437b031..b4006a3958f1fa88bcd12519716911c45b39f292 100644 --- a/Geo/GModelIO_GEO.cpp +++ b/Geo/GModelIO_GEO.cpp @@ -105,21 +105,6 @@ void GEO_Internals::addLine(int num, std::vector<int> vertexTags) List_Delete(temp); } -void GEO_Internals::addSpline(int num, std::vector<int> vertexTags) -{ - if(FindCurve(num)){ - Msg::Error("GEO edge with tag %d already exists", num); - return; - } - List_T *temp = List_Create(2, 2, sizeof(int)); - for(unsigned int i = 0; i < vertexTags.size(); i++) - List_Add(temp, &vertexTags[i]); - Curve *c = Create_Curve(num, MSH_SEGM_SPLN, 3, temp, NULL, -1, -1, 0., 1.); - Tree_Add(Curves, &c); - CreateReversedCurve(c); - List_Delete(temp); -} - void GEO_Internals::addCircleArc(int num, int startTag, int centerTag, int endTag, double nx, double ny, double nz) { @@ -179,6 +164,107 @@ void GEO_Internals::addEllipseArc(int num, int startTag, int centerTag, int majo List_Delete(temp); } +void GEO_Internals::addSpline(int num, std::vector<int> vertexTags) +{ + if(FindCurve(num)){ + Msg::Error("GEO edge with tag %d already exists", num); + return; + } + List_T *temp = List_Create(2, 2, sizeof(int)); + for(unsigned int i = 0; i < vertexTags.size(); i++) + List_Add(temp, &vertexTags[i]); + Curve *c = Create_Curve(num, MSH_SEGM_SPLN, 3, temp, NULL, -1, -1, 0., 1.); + Tree_Add(Curves, &c); + CreateReversedCurve(c); + List_Delete(temp); +} + +void GEO_Internals::addBSpline(int num, std::vector<int> vertexTags) +{ + if(FindCurve(num)){ + Msg::Error("GEO edge with tag %d already exists", num); + return; + } + List_T *temp = List_Create(2, 2, sizeof(int)); + for(unsigned int i = 0; i < vertexTags.size(); i++) + List_Add(temp, &vertexTags[i]); + Curve *c = Create_Curve(num, MSH_SEGM_BSPLN, 2, temp, NULL, -1, -1, 0., 1.); + Tree_Add(Curves, &c); + CreateReversedCurve(c); + List_Delete(temp); +} + +void GEO_Internals::addBezier(int num, std::vector<int> vertexTags) +{ + if(FindCurve(num)){ + Msg::Error("GEO edge with tag %d already exists", num); + return; + } + List_T *temp = List_Create(2, 2, sizeof(int)); + for(unsigned int i = 0; i < vertexTags.size(); i++) + List_Add(temp, &vertexTags[i]); + Curve *c = Create_Curve(num, MSH_SEGM_BEZIER, 2, temp, NULL, -1, -1, 0., 1.); + Tree_Add(Curves, &c); + CreateReversedCurve(c); + List_Delete(temp); +} + +void GEO_Internals::addNurbs(int num, std::vector<int> vertexTags, + std::vector<double> knots) +{ + if(FindCurve(num)){ + Msg::Error("GEO edge with tag %d already exists", num); + return; + } + int order = knots.size() - vertexTags.size() - 1; + List_T *temp = List_Create(2, 2, sizeof(int)); + for(unsigned int i = 0; i < vertexTags.size(); i++) + List_Add(temp, &vertexTags[i]); + List_T *knotsList = List_Create(2, 2, sizeof(double)); + for(unsigned int i = 0; i < knots.size(); i++) + List_Add(knotsList, &knots[i]); + Curve *c = Create_Curve(num, MSH_SEGM_NURBS, order, temp, knotsList, -1, -1, 0., 1.); + Tree_Add(Curves, &c); + CreateReversedCurve(c); + List_Delete(temp); +} + +void GEO_Internals::addCompoundLine(int num, std::vector<int> edgeTags) +{ + if(FindCurve(num)){ + Msg::Error("GEO edge with tag %d already exists", num); + return; + } + + Curve *c = Create_Curve(num, MSH_SEGM_COMPOUND, 1, NULL, NULL, -1, -1, 0., 1.); + c->compound = edgeTags; + End_Curve(c); + Tree_Add(Curves, &c); + CreateReversedCurve(c); +} + +void GEO_Internals::addLineLoop(int num, std::vector<int> edgeTags) +{ + if(FindEdgeLoop(num)){ + Msg::Error("GEO line loop with tag %d already exists", num); + return; + } + List_T *temp = List_Create(2, 2, sizeof(int)); + for(unsigned int i = 0; i < edgeTags.size(); i++) + List_Add(temp, &edgeTags[i]); + sortEdgesInLoop(num, temp); + EdgeLoop *l = Create_EdgeLoop(num, temp); + Tree_Add(EdgeLoops, &l); + List_Delete(temp); +} + + + +void GEO_Internals::addCompoundMesh(int dim, std::vector<int> tags) +{ + meshCompounds.insert(std::make_pair(dim, tags)); +} + void GEO_Internals::synchronize(GModel *model) { if(Tree_Nbr(Points)) { diff --git a/Geo/GModelIO_GEO.h b/Geo/GModelIO_GEO.h index 21116d461352979cae87a57242a91ddc28555921..bd2e6eebe92426c18fa6c3acab492523ca82add9 100644 --- a/Geo/GModelIO_GEO.h +++ b/Geo/GModelIO_GEO.h @@ -47,13 +47,6 @@ class GEO_Internals{ ~GEO_Internals(){ _freeAll(); } void destroy(){ _freeAll(); _allocateAll(); } void resetPhysicalGroups(); - void addCompoundMesh(int dim, List_T *_list) - { - std::vector<int> compound; - for(int i = 0; i < List_Nbr(_list); i++) - compound.push_back((int)*(double*)List_Pointer(_list, i)); - meshCompounds.insert(std::make_pair(dim, compound)); - } // get maximum tag number for each dimension int getMaxTag(int dim) const @@ -74,11 +67,19 @@ class GEO_Internals{ void addVertex(int num, double x, double y, gmshSurface *s, double lc); void addLine(int num, int startTag, int endTag); void addLine(int num, std::vector<int> vertexTags); - void addSpline(int num, std::vector<int> vertexTags); void addCircleArc(int num, int startTag, int centerTag, int EndTag, double nx=0., double ny=0., double nz=0.); void addEllipseArc(int num, int startTag, int centerTag, int majorTag, int endTag, double nx=0., double ny=0., double nz=0.); + void addSpline(int num, std::vector<int> vertexTags); + void addBSpline(int num, std::vector<int> vertexTags); + void addBezier(int num, std::vector<int> vertexTags); + void addNurbs(int num, std::vector<int> vertexTags, std::vector<double> knots); + void addCompoundLine(int num, std::vector<int> edgeTags); + void addLineLoop(int num, std::vector<int> edgeTags); + + + void addCompoundMesh(int dim, std::vector<int> tags); // synchronize internal CAD data with the given GModel void synchronize(GModel *model); diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index 84ea777f0b5887dc3d474d799176370fae67f013..71d160b232efa997a9a035f43bbc8d8243e58aa6 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -597,7 +597,7 @@ Curve *Create_Curve(int Num, int Typ, int Order, List_T *Liste, pC->ubeg = u1; pC->uend = u2; - if(Knots) { + if(Knots && List_Nbr(Knots)) { pC->k = new float[List_Nbr(Knots)]; double kmin = .0, kmax = 1.; List_Read(Knots, 0, &kmin); diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 3851054ba8b475d7e9712373e8fed8d362ab2e88..8bcff42d0911a5be40c966d3ef9c45c9bef2df3a 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -890,7 +890,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 14950 +#define YYLAST 15024 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 238 @@ -899,7 +899,7 @@ union yyalloc /* YYNRULES -- Number of rules. */ #define YYNRULES 599 /* YYNRULES -- Number of states. */ -#define YYNSTATES 2249 +#define YYNSTATES 2262 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -967,45 +967,45 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 8, 9, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, - 40, 42, 44, 46, 48, 50, 52, 55, 61, 67, - 75, 83, 91, 101, 108, 115, 122, 131, 132, 135, - 138, 141, 144, 147, 149, 153, 155, 159, 160, 161, - 172, 174, 178, 179, 193, 195, 199, 200, 216, 225, - 240, 241, 248, 250, 252, 254, 256, 258, 260, 262, - 264, 266, 268, 270, 276, 282, 290, 298, 303, 307, - 314, 321, 329, 337, 344, 351, 361, 371, 378, 385, - 393, 401, 408, 415, 420, 429, 438, 448, 458, 468, - 478, 487, 496, 506, 516, 526, 536, 543, 553, 560, - 570, 576, 585, 594, 606, 613, 623, 629, 637, 647, - 657, 669, 677, 687, 697, 698, 700, 701, 705, 711, - 712, 722, 723, 735, 736, 748, 754, 755, 765, 766, - 770, 774, 780, 786, 787, 790, 794, 800, 804, 805, - 808, 812, 816, 820, 826, 828, 830, 834, 836, 838, - 842, 844, 846, 850, 852, 854, 858, 859, 865, 866, - 869, 875, 883, 892, 899, 907, 912, 920, 929, 938, - 946, 954, 966, 975, 983, 988, 997, 1006, 1015, 1024, - 1034, 1038, 1043, 1054, 1062, 1070, 1078, 1086, 1094, 1102, - 1110, 1118, 1126, 1134, 1143, 1148, 1157, 1170, 1179, 1188, - 1196, 1204, 1213, 1218, 1227, 1236, 1242, 1254, 1260, 1270, - 1280, 1285, 1295, 1305, 1307, 1309, 1310, 1313, 1320, 1327, - 1334, 1341, 1350, 1361, 1376, 1393, 1406, 1421, 1436, 1451, - 1466, 1475, 1484, 1491, 1496, 1503, 1510, 1514, 1519, 1525, - 1532, 1538, 1542, 1546, 1551, 1557, 1562, 1568, 1572, 1578, - 1586, 1594, 1598, 1606, 1610, 1613, 1616, 1619, 1622, 1625, - 1641, 1644, 1647, 1650, 1653, 1656, 1673, 1685, 1692, 1701, - 1710, 1721, 1723, 1726, 1729, 1731, 1735, 1739, 1744, 1749, - 1751, 1753, 1759, 1771, 1785, 1786, 1794, 1795, 1809, 1810, - 1826, 1827, 1834, 1844, 1847, 1851, 1862, 1871, 1880, 1889, - 1902, 1915, 1928, 1943, 1958, 1973, 1974, 1987, 1988, 2001, - 2002, 2015, 2016, 2033, 2034, 2051, 2052, 2069, 2070, 2089, - 2090, 2109, 2110, 2129, 2131, 2134, 2140, 2148, 2158, 2161, - 2164, 2168, 2171, 2175, 2178, 2182, 2185, 2189, 2192, 2196, - 2206, 2213, 2215, 2217, 2219, 2221, 2223, 2224, 2227, 2231, - 2241, 2246, 2261, 2262, 2266, 2267, 2269, 2270, 2273, 2274, - 2277, 2278, 2281, 2289, 2296, 2305, 2311, 2315, 2324, 2330, - 2335, 2342, 2354, 2366, 2385, 2404, 2417, 2430, 2443, 2454, - 2465, 2476, 2487, 2498, 2503, 2508, 2513, 2518, 2523, 2526, + 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, + 44, 46, 48, 50, 52, 54, 56, 58, 61, 67, + 73, 81, 89, 97, 107, 114, 121, 128, 137, 138, + 141, 144, 147, 150, 153, 155, 159, 161, 165, 166, + 167, 178, 180, 184, 185, 199, 201, 205, 206, 222, + 231, 246, 247, 254, 256, 258, 260, 262, 264, 266, + 268, 270, 272, 274, 276, 282, 288, 296, 304, 309, + 313, 320, 327, 335, 343, 350, 357, 367, 377, 384, + 391, 399, 407, 414, 421, 426, 435, 444, 454, 464, + 474, 484, 493, 502, 512, 522, 532, 542, 549, 559, + 566, 576, 582, 591, 600, 612, 619, 629, 635, 643, + 653, 663, 675, 683, 693, 703, 704, 706, 707, 711, + 717, 718, 728, 729, 741, 742, 754, 760, 761, 771, + 772, 776, 780, 786, 792, 793, 796, 800, 806, 810, + 811, 814, 818, 822, 826, 832, 834, 836, 840, 842, + 844, 848, 850, 852, 856, 858, 860, 864, 865, 871, + 872, 875, 883, 891, 896, 904, 913, 922, 930, 938, + 950, 959, 967, 976, 985, 994, 1004, 1008, 1013, 1024, + 1032, 1040, 1048, 1056, 1064, 1072, 1080, 1088, 1096, 1104, + 1113, 1122, 1135, 1144, 1152, 1160, 1169, 1178, 1187, 1196, + 1205, 1214, 1220, 1232, 1238, 1248, 1258, 1263, 1273, 1283, + 1285, 1287, 1288, 1291, 1298, 1305, 1312, 1319, 1328, 1339, + 1354, 1371, 1384, 1399, 1414, 1429, 1444, 1453, 1462, 1469, + 1474, 1481, 1488, 1492, 1497, 1503, 1510, 1516, 1520, 1524, + 1529, 1535, 1540, 1546, 1550, 1556, 1564, 1572, 1576, 1584, + 1588, 1591, 1594, 1597, 1600, 1603, 1619, 1622, 1625, 1628, + 1631, 1634, 1651, 1663, 1670, 1679, 1688, 1699, 1701, 1704, + 1707, 1709, 1713, 1717, 1722, 1727, 1729, 1731, 1737, 1749, + 1763, 1764, 1772, 1773, 1787, 1788, 1804, 1805, 1812, 1822, + 1825, 1829, 1840, 1849, 1858, 1867, 1880, 1893, 1906, 1921, + 1936, 1951, 1952, 1965, 1966, 1979, 1980, 1993, 1994, 2011, + 2012, 2029, 2030, 2047, 2048, 2067, 2068, 2087, 2088, 2107, + 2109, 2112, 2118, 2126, 2136, 2139, 2142, 2146, 2149, 2153, + 2156, 2160, 2163, 2167, 2170, 2174, 2184, 2191, 2193, 2195, + 2197, 2199, 2201, 2202, 2205, 2209, 2219, 2224, 2239, 2240, + 2244, 2245, 2247, 2248, 2251, 2252, 2255, 2256, 2259, 2266, + 2274, 2281, 2290, 2296, 2300, 2309, 2315, 2320, 2327, 2339, + 2351, 2370, 2389, 2402, 2415, 2428, 2439, 2450, 2461, 2472, + 2483, 2488, 2493, 2498, 2503, 2508, 2513, 2518, 2523, 2526, 2530, 2537, 2539, 2541, 2543, 2546, 2552, 2560, 2571, 2573, 2577, 2580, 2583, 2586, 2590, 2594, 2598, 2602, 2606, 2610, 2614, 2618, 2622, 2626, 2630, 2634, 2638, 2642, 2648, 2653, @@ -1032,106 +1032,103 @@ static const yytype_uint16 yyprhs[] = static const yytype_int16 yyrhs[] = { 239, 0, -1, 240, -1, 1, 6, -1, -1, 240, - 241, -1, 244, -1, 243, -1, 264, -1, 283, -1, - 284, -1, 288, -1, 289, -1, 290, -1, 291, -1, - 295, -1, 313, -1, 314, -1, 320, -1, 321, -1, - 294, -1, 293, -1, 292, -1, 287, -1, 323, -1, - 215, -1, 215, 215, -1, 42, 228, 337, 229, 6, - -1, 43, 228, 337, 229, 6, -1, 42, 228, 337, - 229, 242, 337, 6, -1, 42, 228, 337, 234, 333, - 229, 6, -1, 43, 228, 337, 234, 333, 229, 6, - -1, 42, 228, 337, 234, 333, 229, 242, 337, 6, - -1, 4, 337, 235, 245, 236, 6, -1, 150, 4, - 230, 324, 231, 6, -1, 151, 4, 230, 324, 231, - 6, -1, 152, 4, 230, 324, 234, 324, 231, 6, - -1, -1, 245, 248, -1, 245, 252, -1, 245, 255, - -1, 245, 257, -1, 245, 258, -1, 324, -1, 246, - 234, 324, -1, 324, -1, 247, 234, 324, -1, -1, - -1, 4, 249, 228, 246, 229, 250, 235, 247, 236, - 6, -1, 337, -1, 251, 234, 337, -1, -1, 159, - 228, 324, 234, 324, 234, 324, 229, 253, 235, 251, - 236, 6, -1, 337, -1, 254, 234, 337, -1, -1, - 160, 228, 324, 234, 324, 234, 324, 234, 324, 229, - 256, 235, 254, 236, 6, -1, 161, 235, 329, 236, - 235, 329, 236, 6, -1, 161, 235, 329, 236, 235, - 329, 236, 235, 329, 236, 235, 329, 236, 6, -1, - -1, 162, 259, 235, 247, 236, 6, -1, 7, -1, - 208, -1, 207, -1, 206, -1, 205, -1, 226, -1, - 225, -1, 228, -1, 230, -1, 229, -1, 231, -1, - 78, 230, 266, 231, 6, -1, 79, 230, 271, 231, - 6, -1, 82, 262, 338, 234, 324, 263, 6, -1, - 83, 262, 342, 234, 338, 263, 6, -1, 342, 260, - 330, 6, -1, 342, 261, 6, -1, 4, 230, 231, - 260, 330, 6, -1, 341, 230, 231, 260, 330, 6, - -1, 4, 230, 324, 231, 260, 324, 6, -1, 341, - 230, 324, 231, 260, 324, 6, -1, 4, 230, 324, - 231, 261, 6, -1, 341, 230, 324, 231, 261, 6, - -1, 4, 262, 235, 333, 236, 263, 260, 330, 6, - -1, 341, 262, 235, 333, 236, 263, 260, 330, 6, - -1, 4, 228, 229, 260, 330, 6, -1, 341, 228, - 229, 260, 330, 6, -1, 4, 228, 324, 229, 260, - 324, 6, -1, 341, 228, 324, 229, 260, 324, 6, - -1, 4, 228, 324, 229, 261, 6, -1, 341, 228, - 324, 229, 261, 6, -1, 342, 7, 338, 6, -1, - 4, 230, 231, 7, 44, 262, 263, 6, -1, 341, - 230, 231, 7, 44, 262, 263, 6, -1, 4, 230, - 231, 7, 44, 262, 340, 263, 6, -1, 341, 230, - 231, 7, 44, 262, 340, 263, 6, -1, 4, 230, - 231, 208, 44, 262, 340, 263, 6, -1, 341, 230, - 231, 208, 44, 262, 340, 263, 6, -1, 4, 228, - 229, 7, 44, 262, 263, 6, -1, 341, 228, 229, - 7, 44, 262, 263, 6, -1, 4, 228, 229, 7, - 44, 262, 340, 263, 6, -1, 341, 228, 229, 7, - 44, 262, 340, 263, 6, -1, 4, 228, 229, 208, - 44, 262, 340, 263, 6, -1, 341, 228, 229, 208, - 44, 262, 340, 263, 6, -1, 4, 232, 4, 7, - 338, 6, -1, 4, 230, 324, 231, 232, 4, 7, - 338, 6, -1, 4, 232, 4, 260, 324, 6, -1, - 4, 230, 324, 231, 232, 4, 260, 324, 6, -1, - 4, 232, 4, 261, 6, -1, 4, 230, 324, 231, - 232, 4, 261, 6, -1, 4, 232, 169, 232, 4, - 7, 334, 6, -1, 4, 230, 324, 231, 232, 169, - 232, 4, 7, 334, 6, -1, 4, 232, 170, 7, - 335, 6, -1, 4, 230, 324, 231, 232, 170, 7, - 335, 6, -1, 4, 180, 7, 324, 6, -1, 180, - 230, 324, 231, 7, 4, 6, -1, 180, 230, 324, - 231, 232, 4, 7, 324, 6, -1, 180, 230, 324, - 231, 232, 4, 7, 338, 6, -1, 180, 230, 324, - 231, 232, 4, 7, 235, 333, 236, 6, -1, 180, - 230, 324, 231, 232, 4, 6, -1, 123, 228, 4, - 229, 232, 4, 7, 324, 6, -1, 123, 228, 4, - 229, 232, 4, 7, 338, 6, -1, -1, 234, -1, - -1, 266, 265, 342, -1, 266, 265, 342, 7, 324, - -1, -1, 266, 265, 342, 7, 235, 330, 267, 273, - 236, -1, -1, 266, 265, 342, 230, 231, 7, 235, - 330, 268, 273, 236, -1, -1, 266, 265, 342, 228, - 229, 7, 235, 330, 269, 273, 236, -1, 266, 265, - 342, 7, 338, -1, -1, 266, 265, 342, 7, 235, - 338, 270, 275, 236, -1, -1, 271, 265, 337, -1, - 324, 7, 338, -1, 272, 234, 324, 7, 338, -1, - 332, 7, 342, 228, 229, -1, -1, 273, 274, -1, - 234, 4, 330, -1, 234, 4, 235, 272, 236, -1, - 234, 4, 338, -1, -1, 275, 276, -1, 234, 4, - 324, -1, 234, 4, 338, -1, 234, 184, 338, -1, - 234, 4, 235, 340, 236, -1, 324, -1, 338, -1, - 338, 234, 324, -1, 324, -1, 338, -1, 338, 234, - 324, -1, 324, -1, 338, -1, 338, 234, 324, -1, - 324, -1, 338, -1, 338, 234, 324, -1, -1, 172, - 88, 235, 324, 236, -1, -1, 115, 327, -1, 110, - 228, 337, 229, 6, -1, 84, 228, 324, 229, 7, - 327, 6, -1, 119, 84, 228, 277, 229, 260, 330, - 6, -1, 103, 104, 330, 7, 324, 6, -1, 87, - 228, 324, 229, 7, 330, 6, -1, 124, 87, 330, - 6, -1, 91, 228, 324, 229, 7, 330, 6, -1, - 85, 228, 324, 229, 7, 330, 282, 6, -1, 86, - 228, 324, 229, 7, 330, 282, 6, -1, 164, 228, - 324, 229, 7, 330, 6, -1, 165, 228, 324, 229, - 7, 330, 6, -1, 166, 228, 324, 229, 7, 330, - 168, 330, 167, 324, 6, -1, 87, 4, 228, 324, - 229, 7, 330, 6, -1, 102, 228, 324, 229, 7, - 330, 6, -1, 120, 87, 330, 6, -1, 120, 87, - 228, 324, 229, 7, 330, 6, -1, 119, 87, 228, - 278, 229, 260, 330, 6, -1, 115, 90, 228, 324, + 241, -1, 243, -1, 244, -1, 264, -1, 110, 228, + 337, 229, 6, -1, 283, -1, 284, -1, 288, -1, + 289, -1, 290, -1, 291, -1, 295, -1, 313, -1, + 314, -1, 320, -1, 321, -1, 294, -1, 293, -1, + 292, -1, 287, -1, 323, -1, 215, -1, 215, 215, + -1, 42, 228, 337, 229, 6, -1, 43, 228, 337, + 229, 6, -1, 42, 228, 337, 229, 242, 337, 6, + -1, 42, 228, 337, 234, 333, 229, 6, -1, 43, + 228, 337, 234, 333, 229, 6, -1, 42, 228, 337, + 234, 333, 229, 242, 337, 6, -1, 4, 337, 235, + 245, 236, 6, -1, 150, 4, 230, 324, 231, 6, + -1, 151, 4, 230, 324, 231, 6, -1, 152, 4, + 230, 324, 234, 324, 231, 6, -1, -1, 245, 248, + -1, 245, 252, -1, 245, 255, -1, 245, 257, -1, + 245, 258, -1, 324, -1, 246, 234, 324, -1, 324, + -1, 247, 234, 324, -1, -1, -1, 4, 249, 228, + 246, 229, 250, 235, 247, 236, 6, -1, 337, -1, + 251, 234, 337, -1, -1, 159, 228, 324, 234, 324, + 234, 324, 229, 253, 235, 251, 236, 6, -1, 337, + -1, 254, 234, 337, -1, -1, 160, 228, 324, 234, + 324, 234, 324, 234, 324, 229, 256, 235, 254, 236, + 6, -1, 161, 235, 329, 236, 235, 329, 236, 6, + -1, 161, 235, 329, 236, 235, 329, 236, 235, 329, + 236, 235, 329, 236, 6, -1, -1, 162, 259, 235, + 247, 236, 6, -1, 7, -1, 208, -1, 207, -1, + 206, -1, 205, -1, 226, -1, 225, -1, 228, -1, + 230, -1, 229, -1, 231, -1, 78, 230, 266, 231, + 6, -1, 79, 230, 271, 231, 6, -1, 82, 262, + 338, 234, 324, 263, 6, -1, 83, 262, 342, 234, + 338, 263, 6, -1, 342, 260, 330, 6, -1, 342, + 261, 6, -1, 4, 230, 231, 260, 330, 6, -1, + 341, 230, 231, 260, 330, 6, -1, 4, 230, 324, + 231, 260, 324, 6, -1, 341, 230, 324, 231, 260, + 324, 6, -1, 4, 230, 324, 231, 261, 6, -1, + 341, 230, 324, 231, 261, 6, -1, 4, 262, 235, + 333, 236, 263, 260, 330, 6, -1, 341, 262, 235, + 333, 236, 263, 260, 330, 6, -1, 4, 228, 229, + 260, 330, 6, -1, 341, 228, 229, 260, 330, 6, + -1, 4, 228, 324, 229, 260, 324, 6, -1, 341, + 228, 324, 229, 260, 324, 6, -1, 4, 228, 324, + 229, 261, 6, -1, 341, 228, 324, 229, 261, 6, + -1, 342, 7, 338, 6, -1, 4, 230, 231, 7, + 44, 262, 263, 6, -1, 341, 230, 231, 7, 44, + 262, 263, 6, -1, 4, 230, 231, 7, 44, 262, + 340, 263, 6, -1, 341, 230, 231, 7, 44, 262, + 340, 263, 6, -1, 4, 230, 231, 208, 44, 262, + 340, 263, 6, -1, 341, 230, 231, 208, 44, 262, + 340, 263, 6, -1, 4, 228, 229, 7, 44, 262, + 263, 6, -1, 341, 228, 229, 7, 44, 262, 263, + 6, -1, 4, 228, 229, 7, 44, 262, 340, 263, + 6, -1, 341, 228, 229, 7, 44, 262, 340, 263, + 6, -1, 4, 228, 229, 208, 44, 262, 340, 263, + 6, -1, 341, 228, 229, 208, 44, 262, 340, 263, + 6, -1, 4, 232, 4, 7, 338, 6, -1, 4, + 230, 324, 231, 232, 4, 7, 338, 6, -1, 4, + 232, 4, 260, 324, 6, -1, 4, 230, 324, 231, + 232, 4, 260, 324, 6, -1, 4, 232, 4, 261, + 6, -1, 4, 230, 324, 231, 232, 4, 261, 6, + -1, 4, 232, 169, 232, 4, 7, 334, 6, -1, + 4, 230, 324, 231, 232, 169, 232, 4, 7, 334, + 6, -1, 4, 232, 170, 7, 335, 6, -1, 4, + 230, 324, 231, 232, 170, 7, 335, 6, -1, 4, + 180, 7, 324, 6, -1, 180, 230, 324, 231, 7, + 4, 6, -1, 180, 230, 324, 231, 232, 4, 7, + 324, 6, -1, 180, 230, 324, 231, 232, 4, 7, + 338, 6, -1, 180, 230, 324, 231, 232, 4, 7, + 235, 333, 236, 6, -1, 180, 230, 324, 231, 232, + 4, 6, -1, 123, 228, 4, 229, 232, 4, 7, + 324, 6, -1, 123, 228, 4, 229, 232, 4, 7, + 338, 6, -1, -1, 234, -1, -1, 266, 265, 342, + -1, 266, 265, 342, 7, 324, -1, -1, 266, 265, + 342, 7, 235, 330, 267, 273, 236, -1, -1, 266, + 265, 342, 230, 231, 7, 235, 330, 268, 273, 236, + -1, -1, 266, 265, 342, 228, 229, 7, 235, 330, + 269, 273, 236, -1, 266, 265, 342, 7, 338, -1, + -1, 266, 265, 342, 7, 235, 338, 270, 275, 236, + -1, -1, 271, 265, 337, -1, 324, 7, 338, -1, + 272, 234, 324, 7, 338, -1, 332, 7, 342, 228, + 229, -1, -1, 273, 274, -1, 234, 4, 330, -1, + 234, 4, 235, 272, 236, -1, 234, 4, 338, -1, + -1, 275, 276, -1, 234, 4, 324, -1, 234, 4, + 338, -1, 234, 184, 338, -1, 234, 4, 235, 340, + 236, -1, 324, -1, 338, -1, 338, 234, 324, -1, + 324, -1, 338, -1, 338, 234, 324, -1, 324, -1, + 338, -1, 338, 234, 324, -1, 324, -1, 338, -1, + 338, 234, 324, -1, -1, 172, 88, 235, 324, 236, + -1, -1, 115, 327, -1, 84, 228, 324, 229, 7, + 327, 6, -1, 87, 228, 324, 229, 7, 330, 6, + -1, 124, 87, 330, 6, -1, 91, 228, 324, 229, + 7, 330, 6, -1, 85, 228, 324, 229, 7, 330, + 282, 6, -1, 86, 228, 324, 229, 7, 330, 282, + 6, -1, 164, 228, 324, 229, 7, 330, 6, -1, + 165, 228, 324, 229, 7, 330, 6, -1, 166, 228, + 324, 229, 7, 330, 168, 330, 167, 324, 6, -1, + 120, 87, 228, 324, 229, 7, 330, 6, -1, 102, + 228, 324, 229, 7, 330, 6, -1, 87, 4, 228, + 324, 229, 7, 330, 6, -1, 115, 90, 228, 324, 229, 7, 330, 6, -1, 90, 228, 324, 229, 7, 330, 281, 6, -1, 116, 90, 228, 324, 229, 7, 330, 281, 6, -1, 12, 13, 6, -1, 13, 90, @@ -1145,145 +1142,148 @@ static const yytype_int16 yyrhs[] = 95, 228, 324, 229, 7, 330, 6, -1, 112, 228, 324, 229, 7, 330, 6, -1, 138, 228, 324, 229, 7, 330, 6, -1, 90, 4, 228, 324, 229, 7, - 330, 6, -1, 120, 90, 330, 6, -1, 120, 90, - 228, 324, 229, 7, 330, 6, -1, 120, 90, 228, - 324, 229, 7, 330, 4, 235, 329, 236, 6, -1, - 119, 90, 228, 279, 229, 260, 330, 6, -1, 118, - 92, 228, 324, 229, 7, 330, 6, -1, 92, 228, - 324, 229, 7, 330, 6, -1, 111, 228, 324, 229, - 7, 330, 6, -1, 116, 111, 228, 324, 229, 7, - 330, 6, -1, 120, 92, 330, 6, -1, 120, 92, - 228, 324, 229, 7, 330, 6, -1, 119, 92, 228, - 280, 229, 260, 330, 6, -1, 127, 327, 235, 285, - 236, -1, 126, 235, 327, 234, 327, 234, 324, 236, - 235, 285, 236, -1, 128, 327, 235, 285, 236, -1, - 129, 235, 327, 234, 324, 236, 235, 285, 236, -1, - 129, 235, 327, 234, 327, 236, 235, 285, 236, -1, - 4, 235, 285, 236, -1, 144, 87, 235, 333, 236, - 90, 235, 324, 236, -1, 141, 87, 228, 324, 229, - 235, 333, 236, 6, -1, 286, -1, 284, -1, -1, - 286, 283, -1, 286, 84, 235, 333, 236, 6, -1, - 286, 87, 235, 333, 236, 6, -1, 286, 90, 235, - 333, 236, 6, -1, 286, 92, 235, 333, 236, 6, - -1, 131, 115, 228, 324, 229, 7, 330, 6, -1, - 131, 84, 228, 324, 229, 7, 235, 329, 236, 6, - -1, 131, 115, 228, 324, 229, 7, 235, 327, 234, - 327, 234, 333, 236, 6, -1, 131, 115, 228, 324, - 229, 7, 235, 327, 234, 327, 234, 327, 234, 333, - 236, 6, -1, 131, 88, 228, 324, 229, 7, 235, - 327, 234, 333, 236, 6, -1, 131, 94, 228, 324, - 229, 7, 235, 327, 234, 327, 234, 333, 236, 6, - -1, 131, 95, 228, 324, 229, 7, 235, 327, 234, - 327, 234, 333, 236, 6, -1, 131, 97, 228, 324, - 229, 7, 235, 327, 234, 327, 234, 333, 236, 6, - -1, 131, 98, 228, 324, 229, 7, 235, 327, 234, - 327, 234, 333, 236, 6, -1, 131, 4, 228, 324, - 229, 7, 330, 6, -1, 131, 4, 228, 324, 229, - 7, 5, 6, -1, 131, 4, 235, 324, 236, 6, - -1, 142, 235, 286, 236, -1, 142, 180, 230, 324, - 231, 6, -1, 142, 4, 230, 324, 231, 6, -1, - 142, 342, 6, -1, 142, 4, 4, 6, -1, 169, - 334, 235, 286, 236, -1, 125, 169, 334, 235, 286, - 236, -1, 202, 324, 235, 286, 236, -1, 185, 5, - 6, -1, 186, 5, 6, -1, 185, 235, 286, 236, - -1, 125, 185, 235, 286, 236, -1, 186, 235, 286, - 236, -1, 125, 186, 235, 286, 236, -1, 4, 338, - 6, -1, 71, 228, 340, 229, 6, -1, 4, 4, - 230, 324, 231, 337, 6, -1, 4, 4, 4, 230, - 324, 231, 6, -1, 4, 324, 6, -1, 123, 228, - 4, 229, 232, 4, 6, -1, 163, 4, 6, -1, - 178, 6, -1, 179, 6, -1, 68, 6, -1, 69, - 6, -1, 62, 6, -1, 62, 235, 324, 234, 324, - 234, 324, 234, 324, 234, 324, 234, 324, 236, 6, - -1, 63, 6, -1, 64, 6, -1, 75, 6, -1, - 76, 6, -1, 107, 6, -1, 108, 235, 333, 236, - 235, 333, 236, 235, 329, 236, 235, 324, 234, 324, - 236, 6, -1, 183, 228, 235, 333, 236, 234, 338, - 234, 338, 229, 6, -1, 171, 228, 324, 8, 324, - 229, -1, 171, 228, 324, 8, 324, 8, 324, 229, - -1, 171, 4, 172, 235, 324, 8, 324, 236, -1, - 171, 4, 172, 235, 324, 8, 324, 8, 324, 236, - -1, 173, -1, 184, 4, -1, 184, 338, -1, 181, - -1, 182, 342, 6, -1, 182, 338, 6, -1, 174, - 228, 324, 229, -1, 175, 228, 324, 229, -1, 176, - -1, 177, -1, 130, 327, 235, 286, 236, -1, 130, - 235, 327, 234, 327, 234, 324, 236, 235, 286, 236, - -1, 130, 235, 327, 234, 327, 234, 327, 234, 324, - 236, 235, 286, 236, -1, -1, 130, 327, 235, 286, - 296, 309, 236, -1, -1, 130, 235, 327, 234, 327, - 234, 324, 236, 235, 286, 297, 309, 236, -1, -1, - 130, 235, 327, 234, 327, 234, 327, 234, 324, 236, - 235, 286, 298, 309, 236, -1, -1, 130, 235, 286, - 299, 309, 236, -1, 130, 235, 286, 236, 122, 102, - 235, 324, 236, -1, 111, 330, -1, 116, 111, 330, - -1, 113, 235, 333, 236, 235, 333, 236, 235, 324, - 236, -1, 130, 84, 235, 324, 234, 327, 236, 6, - -1, 130, 87, 235, 324, 234, 327, 236, 6, -1, - 130, 90, 235, 324, 234, 327, 236, 6, -1, 130, - 84, 235, 324, 234, 327, 234, 327, 234, 324, 236, - 6, -1, 130, 87, 235, 324, 234, 327, 234, 327, - 234, 324, 236, 6, -1, 130, 90, 235, 324, 234, - 327, 234, 327, 234, 324, 236, 6, -1, 130, 84, + 330, 6, -1, 120, 90, 228, 324, 229, 7, 330, + 6, -1, 120, 90, 228, 324, 229, 7, 330, 4, + 235, 329, 236, 6, -1, 118, 92, 228, 324, 229, + 7, 330, 6, -1, 92, 228, 324, 229, 7, 330, + 6, -1, 111, 228, 324, 229, 7, 330, 6, -1, + 116, 111, 228, 324, 229, 7, 330, 6, -1, 120, + 92, 228, 324, 229, 7, 330, 6, -1, 119, 84, + 228, 277, 229, 260, 330, 6, -1, 119, 87, 228, + 278, 229, 260, 330, 6, -1, 119, 90, 228, 279, + 229, 260, 330, 6, -1, 119, 92, 228, 280, 229, + 260, 330, 6, -1, 127, 327, 235, 285, 236, -1, + 126, 235, 327, 234, 327, 234, 324, 236, 235, 285, + 236, -1, 128, 327, 235, 285, 236, -1, 129, 235, + 327, 234, 324, 236, 235, 285, 236, -1, 129, 235, + 327, 234, 327, 236, 235, 285, 236, -1, 4, 235, + 285, 236, -1, 144, 87, 235, 333, 236, 90, 235, + 324, 236, -1, 141, 87, 228, 324, 229, 235, 333, + 236, 6, -1, 286, -1, 284, -1, -1, 286, 283, + -1, 286, 84, 235, 333, 236, 6, -1, 286, 87, + 235, 333, 236, 6, -1, 286, 90, 235, 333, 236, + 6, -1, 286, 92, 235, 333, 236, 6, -1, 131, + 115, 228, 324, 229, 7, 330, 6, -1, 131, 84, + 228, 324, 229, 7, 235, 329, 236, 6, -1, 131, + 115, 228, 324, 229, 7, 235, 327, 234, 327, 234, + 333, 236, 6, -1, 131, 115, 228, 324, 229, 7, + 235, 327, 234, 327, 234, 327, 234, 333, 236, 6, + -1, 131, 88, 228, 324, 229, 7, 235, 327, 234, + 333, 236, 6, -1, 131, 94, 228, 324, 229, 7, + 235, 327, 234, 327, 234, 333, 236, 6, -1, 131, + 95, 228, 324, 229, 7, 235, 327, 234, 327, 234, + 333, 236, 6, -1, 131, 97, 228, 324, 229, 7, + 235, 327, 234, 327, 234, 333, 236, 6, -1, 131, + 98, 228, 324, 229, 7, 235, 327, 234, 327, 234, + 333, 236, 6, -1, 131, 4, 228, 324, 229, 7, + 330, 6, -1, 131, 4, 228, 324, 229, 7, 5, + 6, -1, 131, 4, 235, 324, 236, 6, -1, 142, + 235, 286, 236, -1, 142, 180, 230, 324, 231, 6, + -1, 142, 4, 230, 324, 231, 6, -1, 142, 342, + 6, -1, 142, 4, 4, 6, -1, 169, 334, 235, + 286, 236, -1, 125, 169, 334, 235, 286, 236, -1, + 202, 324, 235, 286, 236, -1, 185, 5, 6, -1, + 186, 5, 6, -1, 185, 235, 286, 236, -1, 125, + 185, 235, 286, 236, -1, 186, 235, 286, 236, -1, + 125, 186, 235, 286, 236, -1, 4, 338, 6, -1, + 71, 228, 340, 229, 6, -1, 4, 4, 230, 324, + 231, 337, 6, -1, 4, 4, 4, 230, 324, 231, + 6, -1, 4, 324, 6, -1, 123, 228, 4, 229, + 232, 4, 6, -1, 163, 4, 6, -1, 178, 6, + -1, 179, 6, -1, 68, 6, -1, 69, 6, -1, + 62, 6, -1, 62, 235, 324, 234, 324, 234, 324, + 234, 324, 234, 324, 234, 324, 236, 6, -1, 63, + 6, -1, 64, 6, -1, 75, 6, -1, 76, 6, + -1, 107, 6, -1, 108, 235, 333, 236, 235, 333, + 236, 235, 329, 236, 235, 324, 234, 324, 236, 6, + -1, 183, 228, 235, 333, 236, 234, 338, 234, 338, + 229, 6, -1, 171, 228, 324, 8, 324, 229, -1, + 171, 228, 324, 8, 324, 8, 324, 229, -1, 171, + 4, 172, 235, 324, 8, 324, 236, -1, 171, 4, + 172, 235, 324, 8, 324, 8, 324, 236, -1, 173, + -1, 184, 4, -1, 184, 338, -1, 181, -1, 182, + 342, 6, -1, 182, 338, 6, -1, 174, 228, 324, + 229, -1, 175, 228, 324, 229, -1, 176, -1, 177, + -1, 130, 327, 235, 286, 236, -1, 130, 235, 327, + 234, 327, 234, 324, 236, 235, 286, 236, -1, 130, + 235, 327, 234, 327, 234, 327, 234, 324, 236, 235, + 286, 236, -1, -1, 130, 327, 235, 286, 296, 309, + 236, -1, -1, 130, 235, 327, 234, 327, 234, 324, + 236, 235, 286, 297, 309, 236, -1, -1, 130, 235, + 327, 234, 327, 234, 327, 234, 324, 236, 235, 286, + 298, 309, 236, -1, -1, 130, 235, 286, 299, 309, + 236, -1, 130, 235, 286, 236, 122, 102, 235, 324, + 236, -1, 111, 330, -1, 116, 111, 330, -1, 113, + 235, 333, 236, 235, 333, 236, 235, 324, 236, -1, + 130, 84, 235, 324, 234, 327, 236, 6, -1, 130, + 87, 235, 324, 234, 327, 236, 6, -1, 130, 90, + 235, 324, 234, 327, 236, 6, -1, 130, 84, 235, + 324, 234, 327, 234, 327, 234, 324, 236, 6, -1, + 130, 87, 235, 324, 234, 327, 234, 327, 234, 324, + 236, 6, -1, 130, 90, 235, 324, 234, 327, 234, + 327, 234, 324, 236, 6, -1, 130, 84, 235, 324, + 234, 327, 234, 327, 234, 327, 234, 324, 236, 6, + -1, 130, 87, 235, 324, 234, 327, 234, 327, 234, + 327, 234, 324, 236, 6, -1, 130, 90, 235, 324, + 234, 327, 234, 327, 234, 327, 234, 324, 236, 6, + -1, -1, 130, 84, 235, 324, 234, 327, 236, 300, + 235, 309, 236, 6, -1, -1, 130, 87, 235, 324, + 234, 327, 236, 301, 235, 309, 236, 6, -1, -1, + 130, 90, 235, 324, 234, 327, 236, 302, 235, 309, + 236, 6, -1, -1, 130, 84, 235, 324, 234, 327, + 234, 327, 234, 324, 236, 303, 235, 309, 236, 6, + -1, -1, 130, 87, 235, 324, 234, 327, 234, 327, + 234, 324, 236, 304, 235, 309, 236, 6, -1, -1, + 130, 90, 235, 324, 234, 327, 234, 327, 234, 324, + 236, 305, 235, 309, 236, 6, -1, -1, 130, 84, 235, 324, 234, 327, 234, 327, 234, 327, 234, 324, - 236, 6, -1, 130, 87, 235, 324, 234, 327, 234, - 327, 234, 327, 234, 324, 236, 6, -1, 130, 90, + 236, 306, 235, 309, 236, 6, -1, -1, 130, 87, 235, 324, 234, 327, 234, 327, 234, 327, 234, 324, - 236, 6, -1, -1, 130, 84, 235, 324, 234, 327, - 236, 300, 235, 309, 236, 6, -1, -1, 130, 87, - 235, 324, 234, 327, 236, 301, 235, 309, 236, 6, - -1, -1, 130, 90, 235, 324, 234, 327, 236, 302, - 235, 309, 236, 6, -1, -1, 130, 84, 235, 324, - 234, 327, 234, 327, 234, 324, 236, 303, 235, 309, - 236, 6, -1, -1, 130, 87, 235, 324, 234, 327, - 234, 327, 234, 324, 236, 304, 235, 309, 236, 6, - -1, -1, 130, 90, 235, 324, 234, 327, 234, 327, - 234, 324, 236, 305, 235, 309, 236, 6, -1, -1, - 130, 84, 235, 324, 234, 327, 234, 327, 234, 327, - 234, 324, 236, 306, 235, 309, 236, 6, -1, -1, - 130, 87, 235, 324, 234, 327, 234, 327, 234, 327, - 234, 324, 236, 307, 235, 309, 236, 6, -1, -1, - 130, 90, 235, 324, 234, 327, 234, 327, 234, 327, - 234, 324, 236, 308, 235, 309, 236, 6, -1, 310, - -1, 309, 310, -1, 147, 235, 324, 236, 6, -1, - 147, 235, 330, 234, 330, 236, 6, -1, 147, 235, - 330, 234, 330, 234, 330, 236, 6, -1, 148, 6, - -1, 139, 6, -1, 139, 324, 6, -1, 155, 6, - -1, 155, 157, 6, -1, 156, 6, -1, 156, 157, - 6, -1, 153, 6, -1, 153, 157, 6, -1, 154, - 6, -1, 154, 157, 6, -1, 149, 228, 324, 229, - 7, 330, 122, 324, 6, -1, 122, 4, 230, 324, - 231, 6, -1, 133, -1, 134, -1, 135, -1, 136, - -1, 137, -1, -1, 142, 6, -1, 142, 324, 6, - -1, 311, 235, 286, 312, 236, 235, 286, 312, 236, - -1, 99, 228, 337, 229, -1, 311, 228, 324, 229, - 7, 235, 286, 312, 236, 235, 286, 312, 236, 6, - -1, -1, 122, 4, 324, -1, -1, 4, -1, -1, - 7, 330, -1, -1, 7, 324, -1, -1, 132, 330, - -1, 117, 87, 331, 7, 324, 315, 6, -1, 117, - 90, 331, 317, 316, 6, -1, 106, 90, 235, 324, - 236, 7, 330, 6, -1, 117, 92, 331, 317, 6, - -1, 158, 331, 6, -1, 145, 90, 235, 333, 236, - 7, 324, 6, -1, 139, 90, 331, 318, 6, -1, - 139, 92, 331, 6, -1, 140, 90, 330, 7, 324, - 6, -1, 121, 87, 235, 333, 236, 7, 235, 333, - 236, 319, 6, -1, 121, 90, 235, 333, 236, 7, - 235, 333, 236, 319, 6, -1, 121, 87, 235, 333, - 236, 7, 235, 333, 236, 126, 235, 327, 234, 327, - 234, 324, 236, 6, -1, 121, 90, 235, 333, 236, - 7, 235, 333, 236, 126, 235, 327, 234, 327, 234, - 324, 236, 6, -1, 121, 87, 235, 333, 236, 7, - 235, 333, 236, 127, 327, 6, -1, 121, 90, 235, - 333, 236, 7, 235, 333, 236, 127, 327, 6, -1, - 121, 90, 324, 235, 333, 236, 7, 324, 235, 333, - 236, 6, -1, 84, 235, 333, 236, 172, 90, 235, - 324, 236, 6, -1, 87, 235, 333, 236, 172, 90, - 235, 324, 236, 6, -1, 84, 235, 333, 236, 172, - 92, 235, 324, 236, 6, -1, 87, 235, 333, 236, - 172, 92, 235, 324, 236, 6, -1, 90, 235, 333, - 236, 172, 92, 235, 324, 236, 6, -1, 146, 90, - 331, 6, -1, 146, 87, 331, 6, -1, 109, 84, - 331, 6, -1, 109, 87, 331, 6, -1, 109, 90, - 331, 6, -1, 143, 6, -1, 143, 4, 6, -1, + 236, 307, 235, 309, 236, 6, -1, -1, 130, 90, + 235, 324, 234, 327, 234, 327, 234, 327, 234, 324, + 236, 308, 235, 309, 236, 6, -1, 310, -1, 309, + 310, -1, 147, 235, 324, 236, 6, -1, 147, 235, + 330, 234, 330, 236, 6, -1, 147, 235, 330, 234, + 330, 234, 330, 236, 6, -1, 148, 6, -1, 139, + 6, -1, 139, 324, 6, -1, 155, 6, -1, 155, + 157, 6, -1, 156, 6, -1, 156, 157, 6, -1, + 153, 6, -1, 153, 157, 6, -1, 154, 6, -1, + 154, 157, 6, -1, 149, 228, 324, 229, 7, 330, + 122, 324, 6, -1, 122, 4, 230, 324, 231, 6, + -1, 133, -1, 134, -1, 135, -1, 136, -1, 137, + -1, -1, 142, 6, -1, 142, 324, 6, -1, 311, + 235, 286, 312, 236, 235, 286, 312, 236, -1, 99, + 228, 337, 229, -1, 311, 228, 324, 229, 7, 235, + 286, 312, 236, 235, 286, 312, 236, 6, -1, -1, + 122, 4, 324, -1, -1, 4, -1, -1, 7, 330, + -1, -1, 7, 324, -1, -1, 132, 330, -1, 103, + 104, 330, 7, 324, 6, -1, 117, 87, 331, 7, + 324, 315, 6, -1, 117, 90, 331, 317, 316, 6, + -1, 106, 90, 235, 324, 236, 7, 330, 6, -1, + 117, 92, 331, 317, 6, -1, 158, 331, 6, -1, + 145, 90, 235, 333, 236, 7, 324, 6, -1, 139, + 90, 331, 318, 6, -1, 139, 92, 331, 6, -1, + 140, 90, 330, 7, 324, 6, -1, 121, 87, 235, + 333, 236, 7, 235, 333, 236, 319, 6, -1, 121, + 90, 235, 333, 236, 7, 235, 333, 236, 319, 6, + -1, 121, 87, 235, 333, 236, 7, 235, 333, 236, + 126, 235, 327, 234, 327, 234, 324, 236, 6, -1, + 121, 90, 235, 333, 236, 7, 235, 333, 236, 126, + 235, 327, 234, 327, 234, 324, 236, 6, -1, 121, + 87, 235, 333, 236, 7, 235, 333, 236, 127, 327, + 6, -1, 121, 90, 235, 333, 236, 7, 235, 333, + 236, 127, 327, 6, -1, 121, 90, 324, 235, 333, + 236, 7, 324, 235, 333, 236, 6, -1, 84, 235, + 333, 236, 172, 90, 235, 324, 236, 6, -1, 87, + 235, 333, 236, 172, 90, 235, 324, 236, 6, -1, + 84, 235, 333, 236, 172, 92, 235, 324, 236, 6, + -1, 87, 235, 333, 236, 172, 92, 235, 324, 236, + 6, -1, 90, 235, 333, 236, 172, 92, 235, 324, + 236, 6, -1, 146, 90, 331, 6, -1, 146, 87, + 331, 6, -1, 109, 84, 331, 6, -1, 109, 87, + 331, 6, -1, 109, 90, 331, 6, -1, 120, 87, + 330, 6, -1, 120, 90, 330, 6, -1, 120, 92, + 330, 6, -1, 143, 6, -1, 143, 4, 6, -1, 143, 84, 235, 333, 236, 6, -1, 193, -1, 194, -1, 195, -1, 322, 6, -1, 322, 235, 330, 236, 6, -1, 322, 235, 330, 234, 330, 236, 6, -1, @@ -1390,65 +1390,65 @@ static const yytype_int16 yyrhs[] = static const yytype_uint16 yyrline[] = { 0, 212, 212, 213, 218, 220, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 246, 250, 257, 262, 267, - 281, 294, 307, 335, 349, 362, 375, 394, 399, 400, - 401, 402, 403, 407, 409, 414, 416, 422, 526, 421, - 544, 551, 562, 561, 579, 586, 597, 596, 613, 630, - 653, 652, 666, 667, 668, 669, 670, 674, 675, 681, - 681, 682, 682, 688, 689, 690, 695, 701, 763, 780, - 809, 838, 843, 848, 853, 858, 865, 875, 904, 933, - 938, 943, 948, 956, 965, 971, 977, 990, 1003, 1018, - 1035, 1041, 1047, 1060, 1073, 1088, 1105, 1111, 1120, 1138, - 1156, 1165, 1177, 1182, 1190, 1210, 1233, 1244, 1252, 1274, - 1297, 1335, 1356, 1368, 1382, 1382, 1384, 1386, 1395, 1405, - 1404, 1425, 1424, 1443, 1442, 1460, 1470, 1469, 1483, 1485, - 1493, 1499, 1504, 1530, 1531, 1535, 1546, 1561, 1571, 1572, - 1577, 1585, 1594, 1602, 1620, 1624, 1630, 1638, 1642, 1648, - 1656, 1660, 1666, 1674, 1678, 1684, 1693, 1696, 1709, 1712, - 1720, 1730, 1751, 1794, 1817, 1831, 1852, 1866, 1900, 1937, - 1961, 1985, 2012, 2036, 2050, 2054, 2072, 2118, 2142, 2199, - 2244, 2250, 2256, 2263, 2305, 2331, 2355, 2379, 2405, 2428, - 2455, 2483, 2508, 2528, 2551, 2555, 2574, 2608, 2655, 2673, - 2696, 2711, 2726, 2730, 2746, 2794, 2811, 2829, 2839, 2849, - 2859, 2922, 2933, 2949, 2950, 2955, 2958, 2962, 2991, 3020, - 3049, 3083, 3105, 3131, 3153, 3176, 3197, 3253, 3277, 3302, - 3328, 3441, 3460, 3503, 3524, 3530, 3545, 3573, 3590, 3599, - 3613, 3627, 3633, 3639, 3648, 3657, 3666, 3680, 3742, 3760, - 3777, 3792, 3821, 3833, 3857, 3861, 3866, 3874, 3879, 3885, - 3890, 3896, 3904, 3908, 3912, 3917, 3977, 3993, 4010, 4027, - 4049, 4071, 4106, 4114, 4122, 4128, 4135, 4142, 4162, 4188, - 4200, 4212, 4242, 4273, 4282, 4281, 4296, 4295, 4310, 4309, - 4324, 4323, 4336, 4363, 4382, 4401, 4427, 4434, 4441, 4448, - 4455, 4462, 4469, 4476, 4483, 4491, 4490, 4504, 4503, 4517, - 4516, 4530, 4529, 4543, 4542, 4556, 4555, 4569, 4568, 4582, - 4581, 4595, 4594, 4611, 4614, 4620, 4632, 4652, 4676, 4680, - 4684, 4688, 4692, 4696, 4702, 4708, 4712, 4716, 4720, 4724, - 4743, 4756, 4757, 4758, 4759, 4760, 4764, 4765, 4766, 4769, - 4803, 4829, 4853, 4856, 4872, 4875, 4892, 4895, 4901, 4904, - 4911, 4914, 4921, 4977, 5047, 5052, 5119, 5155, 5163, 5206, - 5245, 5265, 5297, 5324, 5350, 5376, 5402, 5428, 5450, 5478, - 5506, 5534, 5562, 5590, 5629, 5668, 5689, 5710, 5737, 5741, - 5751, 5786, 5787, 5788, 5792, 5798, 5810, 5828, 5856, 5857, - 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5871, 5872, 5873, - 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, - 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, - 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, - 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, - 5922, 5927, 5926, 5934, 5939, 5944, 5961, 5979, 5997, 6015, - 6033, 6038, 6044, 6059, 6078, 6098, 6118, 6138, 6161, 6166, - 6171, 6181, 6191, 6196, 6207, 6216, 6221, 6226, 6253, 6257, - 6261, 6265, 6269, 6276, 6280, 6284, 6288, 6295, 6300, 6307, - 6312, 6316, 6321, 6325, 6333, 6344, 6348, 6360, 6368, 6376, - 6383, 6393, 6422, 6426, 6430, 6434, 6438, 6442, 6446, 6450, - 6454, 6483, 6512, 6541, 6570, 6583, 6596, 6609, 6622, 6632, - 6642, 6652, 6664, 6677, 6689, 6693, 6697, 6701, 6705, 6723, - 6741, 6749, 6757, 6786, 6796, 6815, 6820, 6824, 6828, 6840, - 6844, 6856, 6873, 6883, 6887, 6902, 6907, 6914, 6918, 6931, - 6945, 6959, 6973, 6987, 6995, 7006, 7010, 7014, 7022, 7028, - 7034, 7042, 7050, 7057, 7065, 7080, 7094, 7108, 7120, 7136, - 7145, 7154, 7164, 7175, 7183, 7191, 7195, 7214, 7221, 7227, - 7234, 7242, 7241, 7254, 7259, 7265, 7274, 7287, 7290, 7294 + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 253, 257, 264, 269, + 274, 288, 301, 314, 342, 356, 369, 382, 401, 406, + 407, 408, 409, 410, 414, 416, 421, 423, 429, 533, + 428, 551, 558, 569, 568, 586, 593, 604, 603, 620, + 637, 660, 659, 673, 674, 675, 676, 677, 681, 682, + 688, 688, 689, 689, 695, 696, 697, 702, 708, 770, + 787, 816, 845, 850, 855, 860, 865, 872, 882, 911, + 940, 945, 950, 955, 963, 972, 978, 984, 997, 1010, + 1025, 1042, 1048, 1054, 1067, 1080, 1095, 1112, 1118, 1127, + 1145, 1163, 1172, 1184, 1189, 1197, 1217, 1240, 1251, 1259, + 1281, 1304, 1342, 1363, 1375, 1389, 1389, 1391, 1393, 1402, + 1412, 1411, 1432, 1431, 1450, 1449, 1467, 1477, 1476, 1490, + 1492, 1500, 1506, 1511, 1537, 1538, 1542, 1553, 1568, 1578, + 1579, 1584, 1592, 1601, 1609, 1627, 1631, 1637, 1645, 1649, + 1655, 1663, 1667, 1673, 1681, 1685, 1691, 1700, 1703, 1716, + 1719, 1726, 1747, 1761, 1782, 1796, 1830, 1867, 1881, 1895, + 1915, 1924, 1938, 1953, 1977, 2034, 2079, 2085, 2091, 2098, + 2140, 2166, 2190, 2214, 2240, 2263, 2290, 2318, 2343, 2363, + 2386, 2405, 2439, 2457, 2480, 2495, 2510, 2526, 2569, 2612, + 2655, 2703, 2720, 2738, 2748, 2758, 2768, 2831, 2842, 2858, + 2859, 2864, 2867, 2871, 2900, 2929, 2958, 2992, 3014, 3040, + 3062, 3085, 3106, 3162, 3186, 3211, 3237, 3350, 3369, 3412, + 3433, 3439, 3454, 3482, 3499, 3508, 3522, 3536, 3542, 3548, + 3557, 3566, 3575, 3589, 3651, 3669, 3686, 3701, 3730, 3742, + 3766, 3770, 3775, 3783, 3788, 3794, 3799, 3805, 3813, 3817, + 3821, 3826, 3886, 3902, 3919, 3936, 3958, 3980, 4015, 4023, + 4031, 4037, 4044, 4051, 4071, 4097, 4109, 4121, 4151, 4182, + 4191, 4190, 4205, 4204, 4219, 4218, 4233, 4232, 4245, 4272, + 4291, 4310, 4336, 4343, 4350, 4357, 4364, 4371, 4378, 4385, + 4392, 4400, 4399, 4413, 4412, 4426, 4425, 4439, 4438, 4452, + 4451, 4465, 4464, 4478, 4477, 4491, 4490, 4504, 4503, 4520, + 4523, 4529, 4541, 4561, 4585, 4589, 4593, 4597, 4601, 4605, + 4611, 4617, 4621, 4625, 4629, 4633, 4652, 4665, 4666, 4667, + 4668, 4669, 4673, 4674, 4675, 4678, 4712, 4738, 4762, 4765, + 4781, 4784, 4801, 4804, 4810, 4813, 4820, 4823, 4830, 4847, + 4903, 4973, 4978, 5045, 5081, 5089, 5132, 5171, 5191, 5223, + 5250, 5276, 5302, 5328, 5354, 5376, 5404, 5432, 5460, 5488, + 5516, 5555, 5594, 5615, 5636, 5657, 5663, 5669, 5681, 5685, + 5695, 5730, 5731, 5732, 5736, 5742, 5754, 5772, 5800, 5801, + 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5815, 5816, 5817, + 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, + 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, + 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, + 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, + 5866, 5871, 5870, 5878, 5883, 5888, 5905, 5923, 5941, 5959, + 5977, 5982, 5988, 6003, 6022, 6042, 6062, 6082, 6105, 6110, + 6115, 6125, 6135, 6140, 6151, 6160, 6165, 6170, 6197, 6201, + 6205, 6209, 6213, 6220, 6224, 6228, 6232, 6239, 6244, 6251, + 6256, 6260, 6265, 6269, 6277, 6288, 6292, 6304, 6312, 6320, + 6327, 6337, 6366, 6370, 6374, 6378, 6382, 6386, 6390, 6394, + 6398, 6427, 6456, 6485, 6514, 6527, 6540, 6553, 6566, 6576, + 6586, 6596, 6608, 6621, 6633, 6637, 6641, 6645, 6649, 6667, + 6685, 6693, 6701, 6730, 6740, 6759, 6764, 6768, 6772, 6784, + 6788, 6800, 6817, 6827, 6831, 6846, 6851, 6858, 6862, 6875, + 6889, 6903, 6917, 6931, 6939, 6950, 6954, 6958, 6966, 6972, + 6978, 6986, 6994, 7001, 7009, 7024, 7038, 7052, 7064, 7080, + 7089, 7098, 7108, 7119, 7127, 7135, 7139, 7158, 7165, 7171, + 7178, 7186, 7185, 7198, 7203, 7209, 7218, 7231, 7234, 7238 }; #endif @@ -1562,42 +1562,42 @@ static const yytype_uint16 yyr1[] = { 0, 238, 239, 239, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 242, 242, 243, 243, 243, - 243, 243, 243, 244, 244, 244, 244, 245, 245, 245, - 245, 245, 245, 246, 246, 247, 247, 249, 250, 248, - 251, 251, 253, 252, 254, 254, 256, 255, 257, 257, - 259, 258, 260, 260, 260, 260, 260, 261, 261, 262, - 262, 263, 263, 264, 264, 264, 264, 264, 264, 264, + 241, 241, 241, 241, 241, 241, 242, 242, 243, 243, + 243, 243, 243, 243, 244, 244, 244, 244, 245, 245, + 245, 245, 245, 245, 246, 246, 247, 247, 249, 250, + 248, 251, 251, 253, 252, 254, 254, 256, 255, 257, + 257, 259, 258, 260, 260, 260, 260, 260, 261, 261, + 262, 262, 263, 263, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 265, 265, 266, 266, 266, 267, - 266, 268, 266, 269, 266, 266, 270, 266, 271, 271, - 272, 272, 272, 273, 273, 274, 274, 274, 275, 275, - 276, 276, 276, 276, 277, 277, 277, 278, 278, 278, - 279, 279, 279, 280, 280, 280, 281, 281, 282, 282, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 264, 264, 264, 264, 264, 265, 265, 266, 266, 266, + 267, 266, 268, 266, 269, 266, 266, 270, 266, 271, + 271, 272, 272, 272, 273, 273, 274, 274, 274, 275, + 275, 276, 276, 276, 276, 277, 277, 277, 278, 278, + 278, 279, 279, 279, 280, 280, 280, 281, 281, 282, + 282, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 284, 284, 284, 284, 284, - 284, 284, 284, 285, 285, 286, 286, 286, 286, 286, - 286, 287, 287, 287, 287, 287, 287, 287, 287, 287, - 287, 287, 287, 288, 288, 288, 288, 288, 289, 289, - 290, 291, 291, 291, 291, 291, 291, 292, 292, 292, + 283, 284, 284, 284, 284, 284, 284, 284, 284, 285, + 285, 286, 286, 286, 286, 286, 286, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 287, 288, + 288, 288, 288, 288, 289, 289, 290, 291, 291, 291, + 291, 291, 291, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, - 292, 292, 292, 292, 292, 292, 293, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, - 294, 295, 295, 295, 296, 295, 297, 295, 298, 295, - 299, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 300, 295, 301, 295, 302, - 295, 303, 295, 304, 295, 305, 295, 306, 295, 307, - 295, 308, 295, 309, 309, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 311, 311, 311, 311, 311, 312, 312, 312, 313, - 313, 314, 315, 315, 316, 316, 317, 317, 318, 318, - 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, + 292, 292, 293, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 295, 295, 295, + 296, 295, 297, 295, 298, 295, 299, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 300, 295, 301, 295, 302, 295, 303, 295, 304, + 295, 305, 295, 306, 295, 307, 295, 308, 295, 309, + 309, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 310, 311, 311, 311, + 311, 311, 312, 312, 312, 313, 313, 314, 315, 315, + 316, 316, 317, 317, 318, 318, 319, 319, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 321, 321, 321, 322, 322, 322, 323, 323, 323, 323, 324, 324, @@ -1625,46 +1625,46 @@ static const yytype_uint16 yyr1[] = /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 1, 2, 0, 2, 1, 1, 1, 1, + 0, 2, 1, 2, 0, 2, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 5, 5, 7, - 7, 7, 9, 6, 6, 6, 8, 0, 2, 2, - 2, 2, 2, 1, 3, 1, 3, 0, 0, 10, - 1, 3, 0, 13, 1, 3, 0, 15, 8, 14, - 0, 6, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 5, 5, 7, 7, 4, 3, 6, - 6, 7, 7, 6, 6, 9, 9, 6, 6, 7, - 7, 6, 6, 4, 8, 8, 9, 9, 9, 9, - 8, 8, 9, 9, 9, 9, 6, 9, 6, 9, - 5, 8, 8, 11, 6, 9, 5, 7, 9, 9, - 11, 7, 9, 9, 0, 1, 0, 3, 5, 0, - 9, 0, 11, 0, 11, 5, 0, 9, 0, 3, - 3, 5, 5, 0, 2, 3, 5, 3, 0, 2, - 3, 3, 3, 5, 1, 1, 3, 1, 1, 3, - 1, 1, 3, 1, 1, 3, 0, 5, 0, 2, - 5, 7, 8, 6, 7, 4, 7, 8, 8, 7, - 7, 11, 8, 7, 4, 8, 8, 8, 8, 9, - 3, 4, 10, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 8, 4, 8, 12, 8, 8, 7, - 7, 8, 4, 8, 8, 5, 11, 5, 9, 9, - 4, 9, 9, 1, 1, 0, 2, 6, 6, 6, - 6, 8, 10, 14, 16, 12, 14, 14, 14, 14, - 8, 8, 6, 4, 6, 6, 3, 4, 5, 6, - 5, 3, 3, 4, 5, 4, 5, 3, 5, 7, - 7, 3, 7, 3, 2, 2, 2, 2, 2, 15, - 2, 2, 2, 2, 2, 16, 11, 6, 8, 8, - 10, 1, 2, 2, 1, 3, 3, 4, 4, 1, - 1, 5, 11, 13, 0, 7, 0, 13, 0, 15, - 0, 6, 9, 2, 3, 10, 8, 8, 8, 12, - 12, 12, 14, 14, 14, 0, 12, 0, 12, 0, - 12, 0, 16, 0, 16, 0, 16, 0, 18, 0, - 18, 0, 18, 1, 2, 5, 7, 9, 2, 2, - 3, 2, 3, 2, 3, 2, 3, 2, 3, 9, - 6, 1, 1, 1, 1, 1, 0, 2, 3, 9, - 4, 14, 0, 3, 0, 1, 0, 2, 0, 2, - 0, 2, 7, 6, 8, 5, 3, 8, 5, 4, - 6, 11, 11, 18, 18, 12, 12, 12, 10, 10, - 10, 10, 10, 4, 4, 4, 4, 4, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 2, 5, 5, + 7, 7, 7, 9, 6, 6, 6, 8, 0, 2, + 2, 2, 2, 2, 1, 3, 1, 3, 0, 0, + 10, 1, 3, 0, 13, 1, 3, 0, 15, 8, + 14, 0, 6, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 5, 5, 7, 7, 4, 3, + 6, 6, 7, 7, 6, 6, 9, 9, 6, 6, + 7, 7, 6, 6, 4, 8, 8, 9, 9, 9, + 9, 8, 8, 9, 9, 9, 9, 6, 9, 6, + 9, 5, 8, 8, 11, 6, 9, 5, 7, 9, + 9, 11, 7, 9, 9, 0, 1, 0, 3, 5, + 0, 9, 0, 11, 0, 11, 5, 0, 9, 0, + 3, 3, 5, 5, 0, 2, 3, 5, 3, 0, + 2, 3, 3, 3, 5, 1, 1, 3, 1, 1, + 3, 1, 1, 3, 1, 1, 3, 0, 5, 0, + 2, 7, 7, 4, 7, 8, 8, 7, 7, 11, + 8, 7, 8, 8, 8, 9, 3, 4, 10, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, + 8, 12, 8, 7, 7, 8, 8, 8, 8, 8, + 8, 5, 11, 5, 9, 9, 4, 9, 9, 1, + 1, 0, 2, 6, 6, 6, 6, 8, 10, 14, + 16, 12, 14, 14, 14, 14, 8, 8, 6, 4, + 6, 6, 3, 4, 5, 6, 5, 3, 3, 4, + 5, 4, 5, 3, 5, 7, 7, 3, 7, 3, + 2, 2, 2, 2, 2, 15, 2, 2, 2, 2, + 2, 16, 11, 6, 8, 8, 10, 1, 2, 2, + 1, 3, 3, 4, 4, 1, 1, 5, 11, 13, + 0, 7, 0, 13, 0, 15, 0, 6, 9, 2, + 3, 10, 8, 8, 8, 12, 12, 12, 14, 14, + 14, 0, 12, 0, 12, 0, 12, 0, 16, 0, + 16, 0, 16, 0, 18, 0, 18, 0, 18, 1, + 2, 5, 7, 9, 2, 2, 3, 2, 3, 2, + 3, 2, 3, 2, 3, 9, 6, 1, 1, 1, + 1, 1, 0, 2, 3, 9, 4, 14, 0, 3, + 0, 1, 0, 2, 0, 2, 0, 2, 6, 7, + 6, 8, 5, 3, 8, 5, 4, 6, 11, 11, + 18, 18, 12, 12, 12, 10, 10, 10, 10, 10, + 4, 4, 4, 4, 4, 4, 4, 4, 2, 3, 6, 1, 1, 1, 2, 5, 7, 10, 1, 3, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, @@ -1698,489 +1698,493 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 351, 352, 353, 354, - 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 347, 348, 349, 350, + 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 281, 0, 0, 289, 290, 0, 0, 0, 284, 0, + 277, 0, 0, 285, 286, 0, 0, 0, 280, 0, 0, 0, 0, 0, 401, 402, 403, 0, 0, 5, - 7, 6, 8, 9, 10, 23, 11, 12, 13, 14, - 22, 21, 20, 15, 0, 16, 17, 18, 19, 0, - 24, 598, 0, 450, 597, 565, 451, 453, 454, 452, + 6, 7, 8, 10, 11, 24, 12, 13, 14, 15, + 23, 22, 21, 16, 0, 17, 18, 19, 20, 0, + 25, 598, 0, 450, 597, 565, 451, 453, 454, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 588, 569, 458, 459, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 455, 456, 457, - 568, 0, 0, 0, 0, 69, 70, 0, 0, 225, + 568, 0, 0, 0, 0, 70, 71, 0, 0, 221, 0, 0, 0, 408, 0, 557, 598, 465, 0, 0, - 0, 0, 268, 0, 270, 271, 266, 267, 0, 272, - 273, 126, 138, 69, 70, 0, 0, 0, 0, 0, + 0, 0, 264, 0, 266, 267, 262, 263, 0, 268, + 269, 127, 139, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 0, 0, 0, 0, 597, 0, + 0, 0, 270, 0, 0, 0, 0, 0, 597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 529, 0, 530, 499, - 303, 500, 598, 465, 0, 0, 0, 0, 0, 0, + 299, 500, 598, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 488, 0, 0, 0, 0, 0, 225, + 0, 0, 0, 488, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 597, 0, 225, 598, 0, 0, + 0, 0, 0, 0, 597, 0, 221, 598, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 506, 0, 505, 0, 0, 0, 0, 0, 597, 0, 0, - 551, 0, 0, 0, 0, 264, 265, 0, 597, 0, - 0, 0, 282, 283, 0, 225, 0, 225, 597, 0, - 598, 0, 0, 225, 404, 0, 0, 69, 70, 0, - 0, 62, 66, 65, 64, 63, 68, 67, 0, 0, + 551, 0, 0, 0, 0, 260, 261, 0, 597, 0, + 0, 0, 278, 279, 0, 221, 0, 221, 597, 0, + 598, 0, 0, 221, 404, 0, 0, 70, 71, 0, + 0, 63, 67, 66, 65, 64, 69, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 410, 412, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 223, 0, 0, 261, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - 257, 0, 0, 473, 190, 0, 597, 0, 557, 598, - 558, 0, 0, 593, 0, 124, 124, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, + 219, 0, 0, 257, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, + 253, 0, 0, 473, 186, 0, 597, 0, 557, 598, + 558, 0, 0, 593, 0, 125, 125, 0, 0, 0, 0, 545, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 512, 0, 0, 513, 0, 514, 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, 410, 507, - 0, 501, 0, 0, 0, 69, 70, 0, 0, 0, - 0, 0, 0, 304, 0, 366, 366, 0, 0, 0, + 0, 501, 0, 0, 0, 70, 71, 0, 0, 0, + 0, 0, 0, 300, 0, 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 225, 0, 490, 489, 0, - 0, 0, 0, 225, 225, 0, 0, 0, 0, 0, - 0, 0, 300, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 368, 0, 0, 0, 0, - 0, 0, 0, 246, 399, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 376, 263, 0, 0, 0, 0, - 0, 225, 0, 0, 0, 0, 0, 286, 285, 0, - 251, 0, 252, 0, 0, 0, 225, 0, 0, 0, - 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 78, 0, 0, 0, 478, 0, 0, 0, + 0, 0, 0, 0, 221, 221, 0, 490, 489, 0, + 0, 0, 0, 221, 221, 0, 0, 0, 0, 0, + 0, 0, 296, 0, 221, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, + 0, 0, 0, 242, 399, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 373, 259, 0, 0, 0, 0, + 0, 221, 0, 0, 0, 0, 0, 282, 281, 0, + 247, 0, 248, 0, 0, 0, 221, 0, 0, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 79, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 461, 591, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 63, 0, 409, 62, 63, 0, 0, 62, 0, 0, - 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, - 226, 0, 0, 0, 426, 425, 424, 423, 419, 420, - 422, 421, 414, 413, 415, 416, 417, 418, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, + 64, 0, 409, 63, 64, 0, 0, 63, 0, 0, + 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 222, 0, 0, 0, 426, 425, 424, 423, 419, + 420, 422, 421, 414, 413, 415, 416, 417, 418, 0, + 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, + 392, 393, 394, 0, 0, 0, 478, 72, 73, 0, + 531, 0, 0, 0, 0, 0, 465, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 516, 0, 517, 0, + 518, 0, 519, 0, 0, 0, 409, 502, 509, 0, + 415, 508, 0, 0, 0, 532, 0, 0, 0, 0, + 0, 0, 0, 360, 0, 0, 0, 155, 156, 0, + 158, 159, 0, 161, 162, 0, 164, 165, 0, 395, + 0, 396, 0, 397, 0, 0, 0, 0, 173, 221, + 0, 0, 0, 0, 0, 492, 491, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 376, 0, 0, 243, 0, 0, 239, 0, 0, 0, + 391, 390, 0, 0, 0, 409, 0, 0, 0, 0, + 0, 0, 0, 0, 283, 284, 0, 0, 249, 251, + 0, 599, 0, 0, 0, 0, 0, 0, 63, 64, + 0, 0, 63, 64, 0, 0, 0, 0, 94, 78, + 0, 467, 466, 480, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 449, 437, 0, 439, 440, 441, 442, + 443, 444, 445, 0, 0, 0, 578, 0, 585, 574, + 575, 576, 0, 590, 589, 0, 485, 0, 0, 0, + 0, 579, 580, 581, 487, 587, 144, 149, 117, 0, + 0, 570, 0, 572, 0, 463, 470, 471, 566, 0, + 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 111, 0, 0, 0, 0, 472, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, + 0, 48, 0, 0, 0, 61, 0, 39, 40, 41, + 42, 43, 469, 468, 0, 0, 563, 28, 26, 0, + 0, 0, 0, 29, 0, 0, 254, 594, 74, 128, + 75, 140, 0, 0, 0, 547, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 360, 0, 0, 0, 0, 0, 0, 0, 395, - 396, 397, 0, 0, 0, 478, 71, 72, 0, 531, - 0, 0, 0, 0, 0, 465, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 516, 0, 517, 0, 518, - 0, 519, 0, 0, 0, 409, 502, 509, 0, 415, - 508, 0, 0, 0, 532, 0, 0, 0, 0, 0, - 0, 0, 364, 0, 0, 0, 154, 155, 0, 157, - 158, 0, 160, 161, 0, 163, 164, 0, 184, 0, - 204, 0, 212, 0, 0, 0, 0, 175, 225, 0, - 0, 0, 0, 0, 492, 491, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, - 0, 0, 247, 0, 0, 243, 0, 0, 0, 394, - 393, 0, 0, 0, 409, 0, 0, 0, 0, 0, - 0, 0, 0, 287, 288, 0, 0, 253, 255, 0, - 599, 0, 0, 0, 0, 0, 0, 62, 63, 0, - 0, 62, 63, 0, 0, 0, 0, 93, 77, 0, - 467, 466, 480, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 449, 437, 0, 439, 440, 441, 442, 443, - 444, 445, 0, 0, 0, 578, 0, 585, 574, 575, - 576, 0, 590, 589, 0, 485, 0, 0, 0, 0, - 579, 580, 581, 487, 587, 143, 148, 116, 0, 0, - 570, 0, 572, 0, 463, 470, 471, 566, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 110, 0, 0, 0, 0, 472, 0, 0, - 0, 0, 0, 0, 595, 0, 0, 47, 0, 0, - 0, 60, 0, 38, 39, 40, 41, 42, 469, 468, - 0, 0, 563, 27, 25, 0, 0, 0, 0, 28, - 0, 0, 258, 594, 73, 127, 74, 139, 0, 0, - 0, 547, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 467, 466, - 0, 0, 535, 0, 534, 533, 0, 0, 542, 0, - 0, 511, 0, 0, 0, 0, 0, 0, 0, 544, - 503, 0, 0, 0, 469, 468, 0, 0, 0, 0, - 0, 409, 362, 367, 365, 0, 375, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 409, 409, 409, 0, - 0, 0, 0, 0, 254, 256, 0, 0, 0, 215, - 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 333, 0, 291, + 0, 9, 467, 466, 0, 0, 535, 0, 534, 533, + 0, 0, 542, 0, 0, 511, 0, 0, 0, 0, + 0, 0, 0, 544, 503, 0, 0, 0, 469, 468, + 0, 0, 0, 0, 0, 409, 358, 363, 361, 0, + 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 409, 409, 409, 0, 0, 0, 0, 0, 250, 252, + 0, 0, 0, 211, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 369, 378, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 248, 0, - 0, 0, 0, 0, 250, 0, 357, 0, 0, 0, - 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 475, 0, 474, 0, 0, + 0, 329, 0, 287, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 365, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, - 91, 0, 0, 79, 0, 0, 0, 0, 83, 106, - 108, 0, 0, 555, 0, 114, 0, 0, 0, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 33, - 477, 476, 561, 559, 26, 0, 0, 562, 560, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, - 168, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 0, 0, 244, 0, 0, 0, 0, 0, 246, 0, + 353, 0, 0, 0, 0, 405, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 596, 0, 0, 475, + 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 520, 521, 522, 523, 0, 510, - 504, 0, 0, 0, 0, 0, 0, 0, 0, 373, - 0, 0, 156, 0, 159, 0, 162, 0, 165, 0, - 0, 0, 0, 0, 0, 0, 249, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, - 338, 0, 345, 0, 347, 0, 341, 0, 343, 0, - 301, 334, 0, 0, 0, 242, 0, 0, 0, 0, - 0, 0, 0, 0, 380, 0, 245, 244, 400, 0, - 0, 34, 35, 0, 0, 0, 0, 552, 0, 0, - 0, 277, 0, 0, 0, 225, 358, 225, 0, 0, - 0, 0, 88, 0, 92, 0, 0, 80, 0, 84, - 0, 260, 479, 259, 438, 446, 447, 448, 586, 0, - 0, 584, 483, 484, 486, 0, 0, 462, 144, 0, - 592, 149, 482, 571, 573, 464, 0, 0, 0, 89, - 0, 0, 0, 62, 0, 0, 0, 0, 81, 0, - 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 497, 0, 0, 29, 30, 0, - 31, 0, 0, 128, 135, 0, 0, 75, 76, 171, - 0, 0, 0, 0, 0, 0, 174, 0, 0, 193, - 194, 0, 0, 0, 0, 176, 209, 195, 199, 200, - 196, 197, 198, 183, 0, 0, 0, 479, 538, 537, - 536, 0, 0, 0, 0, 0, 0, 0, 210, 539, - 201, 0, 0, 166, 0, 0, 372, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, - 0, 0, 0, 225, 225, 0, 315, 0, 317, 0, - 319, 0, 0, 340, 499, 0, 0, 346, 348, 342, - 344, 0, 0, 295, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 202, 0, 0, 0, 0, 179, - 180, 0, 0, 0, 0, 117, 121, 0, 0, 356, - 356, 0, 406, 0, 0, 0, 90, 0, 0, 0, - 82, 0, 481, 0, 0, 0, 0, 0, 0, 100, - 0, 0, 94, 0, 0, 0, 0, 111, 0, 0, - 112, 0, 556, 227, 228, 229, 230, 0, 0, 0, - 43, 0, 0, 0, 0, 0, 45, 564, 0, 0, - 129, 136, 0, 0, 0, 0, 169, 177, 178, 182, - 0, 0, 203, 0, 188, 0, 0, 374, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 0, 211, - 363, 208, 172, 186, 207, 214, 185, 0, 205, 213, - 0, 0, 0, 0, 0, 0, 496, 0, 495, 0, - 0, 0, 306, 0, 0, 307, 0, 0, 308, 0, - 0, 0, 0, 0, 0, 0, 0, 241, 240, 0, - 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, - 377, 36, 0, 0, 550, 0, 279, 278, 0, 0, - 0, 0, 0, 0, 0, 101, 0, 0, 95, 0, - 0, 0, 577, 583, 582, 0, 145, 147, 0, 150, - 151, 152, 102, 104, 96, 98, 107, 109, 0, 115, - 0, 85, 48, 0, 0, 0, 498, 0, 0, 0, - 32, 0, 143, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 540, 541, 0, 0, 0, 0, - 0, 0, 189, 0, 370, 370, 0, 122, 123, 225, - 0, 218, 219, 0, 0, 0, 0, 0, 0, 302, - 0, 335, 0, 0, 225, 0, 0, 0, 0, 0, - 0, 0, 0, 222, 221, 0, 0, 0, 0, 118, - 119, 0, 0, 359, 0, 103, 105, 97, 99, 86, - 0, 545, 546, 0, 0, 554, 0, 44, 0, 0, - 0, 46, 61, 0, 0, 0, 133, 131, 388, 390, - 389, 391, 0, 392, 192, 0, 0, 0, 0, 0, - 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 0, 0, 0, 296, 0, 232, - 0, 0, 0, 0, 0, 0, 0, 549, 280, 0, - 0, 225, 407, 0, 146, 0, 0, 153, 113, 0, - 0, 0, 0, 0, 130, 137, 143, 143, 167, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 371, 381, - 0, 0, 382, 0, 216, 0, 321, 0, 0, 323, - 0, 0, 325, 0, 0, 0, 336, 0, 292, 0, - 225, 0, 0, 0, 0, 0, 0, 181, 120, 276, - 356, 0, 140, 0, 0, 52, 0, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, - 385, 0, 386, 387, 493, 309, 0, 0, 316, 310, - 0, 0, 318, 311, 0, 0, 320, 0, 0, 0, - 298, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 134, 132, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 329, - 0, 331, 337, 349, 297, 293, 0, 0, 0, 0, - 0, 0, 0, 0, 141, 142, 49, 0, 56, 0, + 0, 0, 88, 0, 92, 0, 0, 80, 0, 0, + 0, 0, 84, 107, 109, 0, 0, 555, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 312, 0, 0, 313, 0, 0, 314, 0, 0, 236, - 237, 238, 239, 0, 233, 361, 0, 50, 0, 0, - 269, 0, 543, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 275, 0, 0, 0, 0, 0, 0, 322, 0, - 324, 0, 326, 0, 234, 51, 53, 0, 54, 0, - 524, 525, 526, 527, 0, 0, 0, 0, 0, 0, - 0, 59, 383, 384, 328, 330, 332, 55, 57 + 427, 0, 0, 0, 0, 0, 34, 477, 476, 561, + 559, 27, 0, 0, 562, 560, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 169, 169, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 520, 521, 522, 523, 0, 510, 504, 0, 0, + 0, 0, 0, 0, 0, 0, 370, 0, 0, 157, + 0, 160, 0, 163, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 335, 0, 0, 334, 0, 341, + 0, 343, 0, 337, 0, 339, 0, 297, 330, 0, + 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, + 0, 377, 0, 241, 240, 400, 0, 0, 35, 36, + 0, 0, 0, 0, 552, 0, 0, 0, 273, 0, + 0, 0, 221, 354, 221, 0, 0, 0, 0, 89, + 0, 93, 0, 0, 81, 0, 85, 0, 256, 479, + 255, 438, 446, 447, 448, 586, 0, 0, 584, 483, + 484, 486, 0, 0, 462, 145, 0, 592, 150, 482, + 571, 573, 464, 0, 0, 0, 90, 0, 0, 0, + 63, 0, 0, 0, 0, 82, 0, 0, 0, 553, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 497, 0, 0, 30, 31, 0, + 32, 0, 0, 129, 136, 0, 0, 76, 77, 171, + 0, 0, 0, 0, 0, 0, 172, 0, 0, 189, + 190, 0, 0, 0, 0, 174, 203, 191, 195, 196, + 192, 193, 194, 181, 0, 0, 0, 479, 538, 537, + 536, 0, 0, 0, 0, 0, 0, 0, 204, 539, + 197, 0, 0, 167, 0, 0, 369, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, + 0, 0, 0, 221, 221, 0, 311, 0, 313, 0, + 315, 0, 0, 336, 499, 0, 0, 342, 344, 338, + 340, 0, 0, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 0, 0, 0, 177, + 178, 0, 0, 0, 0, 118, 122, 0, 0, 352, + 352, 0, 406, 0, 0, 0, 91, 0, 0, 0, + 83, 0, 481, 0, 0, 0, 0, 0, 0, 101, + 0, 0, 95, 0, 0, 0, 0, 112, 0, 0, + 113, 0, 556, 223, 224, 225, 226, 0, 0, 0, + 0, 0, 0, 44, 0, 0, 0, 0, 0, 46, + 564, 0, 0, 130, 137, 0, 0, 0, 0, 170, + 175, 176, 182, 0, 0, 199, 0, 184, 0, 0, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 183, 0, 205, 359, 202, 207, 208, 209, 210, 180, + 0, 200, 206, 0, 0, 0, 0, 0, 0, 496, + 0, 495, 0, 0, 0, 302, 0, 0, 303, 0, + 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, + 237, 236, 0, 0, 0, 0, 0, 0, 0, 0, + 227, 0, 0, 374, 37, 0, 0, 550, 0, 275, + 274, 0, 0, 0, 0, 0, 0, 0, 102, 0, + 0, 96, 0, 0, 0, 577, 583, 582, 0, 146, + 148, 0, 151, 152, 153, 103, 105, 97, 99, 108, + 110, 0, 116, 0, 86, 49, 0, 0, 0, 498, + 0, 0, 0, 33, 0, 144, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 540, 541, 0, + 0, 0, 0, 0, 0, 185, 0, 366, 366, 0, + 123, 124, 221, 0, 214, 215, 0, 0, 0, 0, + 0, 0, 298, 0, 331, 0, 0, 221, 0, 0, + 0, 0, 0, 0, 0, 0, 218, 217, 0, 0, + 0, 0, 119, 120, 0, 0, 355, 0, 104, 106, + 98, 100, 87, 0, 545, 546, 0, 0, 554, 0, + 45, 0, 0, 0, 47, 62, 0, 0, 0, 134, + 132, 385, 387, 386, 388, 0, 389, 188, 0, 0, + 0, 0, 0, 0, 301, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, + 292, 0, 228, 0, 0, 0, 0, 0, 0, 0, + 549, 276, 0, 0, 221, 407, 0, 147, 0, 0, + 154, 114, 0, 0, 0, 0, 0, 131, 138, 144, + 144, 168, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 367, 378, 0, 0, 379, 0, 212, 0, 317, + 0, 0, 319, 0, 0, 321, 0, 0, 0, 332, + 0, 288, 0, 221, 0, 0, 0, 0, 0, 0, + 179, 121, 272, 352, 0, 141, 0, 0, 53, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 201, 0, 382, 0, 383, 384, 493, 305, 0, + 0, 312, 306, 0, 0, 314, 307, 0, 0, 316, + 0, 0, 0, 294, 231, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 323, 0, 325, 0, 327, 333, 345, 293, 289, 0, + 0, 0, 0, 0, 0, 0, 0, 142, 143, 50, + 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 308, 0, 0, 309, 0, 0, 310, + 0, 0, 232, 233, 234, 235, 0, 229, 357, 0, + 51, 0, 0, 265, 0, 543, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, + 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, + 0, 318, 0, 320, 0, 322, 0, 230, 52, 54, + 0, 55, 0, 524, 525, 526, 527, 0, 0, 0, + 0, 0, 0, 0, 60, 380, 381, 324, 326, 328, + 56, 58 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 109, 1115, 110, 111, 798, 1729, 1735, - 1103, 1344, 1946, 2186, 1104, 2122, 2227, 1105, 2188, 1106, - 1107, 1348, 408, 503, 211, 859, 112, 816, 515, 1872, - 2027, 2026, 1873, 516, 1940, 1310, 1528, 1311, 1531, 905, - 908, 911, 914, 1593, 1583, 780, 285, 479, 480, 115, - 116, 117, 118, 119, 120, 121, 122, 286, 1240, 2059, - 2146, 944, 1793, 1796, 1799, 2096, 2100, 2104, 2171, 2174, - 2177, 1236, 1237, 287, 993, 288, 126, 1418, 1195, 902, - 958, 1976, 127, 128, 129, 130, 289, 213, 1055, 618, - 323, 1563, 361, 362, 291, 582, 369, 1086, 1334, 513, - 508, 1056, 514, 390, 293 + -1, 2, 3, 109, 1119, 110, 111, 799, 1742, 1748, + 1107, 1351, 1959, 2199, 1108, 2135, 2240, 1109, 2201, 1110, + 1111, 1355, 408, 503, 211, 860, 112, 817, 515, 1885, + 2040, 2039, 1886, 516, 1953, 1314, 1535, 1315, 1538, 906, + 909, 912, 915, 1603, 1593, 781, 285, 479, 480, 115, + 116, 117, 118, 119, 120, 121, 122, 286, 1244, 2072, + 2159, 945, 1806, 1809, 1812, 2109, 2113, 2117, 2184, 2187, + 2190, 1240, 1241, 287, 994, 288, 126, 1425, 1199, 903, + 959, 1989, 127, 128, 129, 130, 289, 213, 1056, 618, + 323, 1573, 361, 362, 291, 582, 369, 1087, 1338, 513, + 508, 1057, 514, 390, 293 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1837 +#define YYPACT_NINF -1827 static const yytype_int16 yypact[] = { - 11606, 69, 32, 11755, -1837, -1837, 4720, 87, -68, -164, - -105, 23, 158, 186, 194, 210, 1, 238, 302, 96, - 119, 84, 84, -130, 156, 171, 31, 218, 226, 43, - 233, 249, 288, 308, 370, 376, 410, 428, 457, 472, - 314, 313, 455, 463, 416, 391, 489, 6437, 507, 479, - 588, -42, 764, 660, 692, 833, 76, 528, 673, -118, - 536, -97, -97, 540, 431, 56, -1837, -1837, -1837, -1837, - -1837, 550, 284, 678, 694, 22, 53, 714, 728, 285, - 832, 855, 858, 5983, 865, 648, 656, 663, 15, 2, - -1837, 687, 698, -1837, -1837, 905, 910, 707, -1837, 4165, - 710, 5857, 7, 16, -1837, -1837, -1837, 10924, 741, -1837, - -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, - -1837, -1837, -1837, -1837, -96, -1837, -1837, -1837, -1837, 3, - -1837, -110, 140, -1837, 37, -1837, -1837, -1837, -1837, -1837, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 726, 736, 751, 84, 84, - 84, 84, 763, 84, 84, 84, 84, 84, 84, 766, - -1837, 84, -1837, -1837, -1837, -1837, -1837, 84, 84, 975, - 778, 827, 845, 84, 84, 846, 856, -1837, -1837, -1837, - -1837, 859, 10924, 10924, 10924, 10055, 10276, 51, 11, 385, - 864, 875, 577, -1837, 879, 992, 311, -90, 1084, 10924, - 5630, 5630, -1837, 10924, -1837, -1837, -1837, -1837, 5630, -1837, - -1837, -1837, -1837, -1837, -1837, 4777, 11, 10924, 9761, 10924, - 10924, 901, 10924, 9761, 10924, 10924, 902, 10924, 9761, 10924, - 10924, 10924, 10924, 10924, 10924, 5630, 10924, 10924, 10924, 6664, - 907, 923, -1837, 9761, 5983, 5983, 5983, 5630, 518, 354, - 84, 84, 84, 84, 12, 26, 29, 41, 6664, 1040, - 724, 84, 6891, 10924, 5289, -1837, -1837, 924, -1837, 3200, - -1837, -1837, 409, 203, 10924, 9761, 963, 998, 7118, 5983, - 5983, 5983, 1004, 1007, 1012, 1041, 1046, 7345, 7572, 7799, - 1073, 2752, 1170, 6664, 15, 1076, 1092, -97, -97, -97, - 10924, 10924, -94, -1837, -89, -97, 1107, 1123, 1131, 9534, - -70, -24, 1047, 1053, 1088, 1093, 1119, 1141, 1149, 10924, - 5983, 5983, 6664, 1153, 9, 1154, -1837, 1148, 1377, 1381, - -1837, 1156, 1157, 1158, 5983, 5983, 1164, 1165, 1166, -1837, - 10924, -1837, 1395, 1396, 10924, 10924, 10924, -153, 10924, 1168, - -1837, 1236, 10924, 10924, 10924, -1837, -1837, 10924, 1172, 1404, - 1408, 1180, -1837, -1837, 1413, -1837, 1415, -1837, 529, 2180, - 537, 5630, 10924, -1837, -1837, 6664, 6664, 10343, 10564, 1188, - 1190, 4777, -1837, -1837, -1837, -1837, -1837, -1837, 6664, 1424, - 1201, 10924, 10924, 1428, 10924, 10924, 10924, 10924, 10924, 10924, - 10924, 10924, 10924, 10924, 10924, 10924, 10924, 10924, 10924, 10924, - 10924, 10924, 10924, 10924, 10924, 10924, 5630, 5630, 5630, 5630, - 5630, 5630, 5630, 5630, 5630, 5630, 6664, 5630, 5630, 10924, - 5630, 5630, 5630, 5630, 5630, 10924, 4777, 10924, 5630, 5630, - 5630, 5630, 5630, 11, 4777, 11, 1207, 1207, 1207, 190, - 13442, 215, 13051, 175, 1203, 1429, 84, 1202, -1837, 1208, - 5354, 10924, 9761, -1837, 10924, 10924, 10924, 10924, 10924, 10924, - 10924, 10924, 10924, 10924, 10924, 10924, 10924, 10924, 10924, -1837, - -1837, 10924, 10924, -1837, -1837, 731, 613, 124, -1837, 572, - -1837, 139, 10687, -1837, 275, -144, 477, 1204, 1205, 13463, - 9761, 3341, -1837, 379, 13484, 13505, 10924, 13526, 610, 13547, - 13568, 10924, 13589, 646, 13610, 13631, 13652, 13673, 13694, 13715, - 1216, 13736, 13757, 13778, 1445, 10924, 10924, 647, 1447, 1448, - 1449, 1227, 10924, 10924, 1453, 618, 8026, 8253, 10924, 10924, - 5630, 10924, -1837, 1398, 10924, -1837, 1400, -1837, 1401, -1837, - 1402, 6664, 20, 33, 38, 45, 9761, 9761, 1207, -1837, - 13799, -1837, 665, 10924, 8480, 10924, 10924, 639, 13820, 700, - 10924, 10924, 10924, -1837, 1451, 1452, 1452, 10924, 9982, 9982, - 9982, 9982, 10924, 1461, 10924, 1467, 10924, 1468, 9761, 9761, - 2800, 1246, 1473, 1253, -1837, -1837, -76, -1837, -1837, 10754, - 10796, -97, -97, 385, 385, -62, 10924, 10924, 10924, 9534, - 9534, 10924, 1703, -51, -1837, 10924, 10924, 10924, 10924, 10924, - 10924, 10924, 10924, 10924, 13841, 1474, 1480, 1482, 10924, 1484, - 10924, 10924, 3268, -1837, -1837, 9761, 9761, 9761, 1485, 1486, - 10924, 10924, 10924, 13862, -1837, -1837, 13883, 13904, 13925, 1327, - 10882, -1837, 1264, 3364, 13946, 13967, 13074, -1837, -1837, 9761, - -1837, 3727, -1837, 4446, 10924, 10924, -1837, 10924, 10924, 1269, - 13988, 5080, 1272, 723, 265, 14009, 292, 13097, 10924, 9761, - 1499, 1501, -1837, 10924, 14030, 13120, 189, 11414, 11414, 11414, - 11414, 11414, 11414, 11414, 11414, 11414, 11414, 11414, 11445, 11414, - 11414, 11414, 11414, 11414, 11414, 11414, 11751, 11777, 11803, 436, - 606, 436, 1281, 1282, 1279, 770, 770, 1280, 770, 1283, - 1284, 1285, 11829, 770, 770, 770, 298, 770, 14723, -1837, - 906, 1286, 1287, 1296, 701, 743, 1297, 1298, 1292, 1471, - 1487, 6664, 201, 1488, 1489, 6664, 95, 4777, 10924, 1523, - 1531, 35, 770, -1837, 108, 48, 49, 197, 1309, -25, - -1837, 3944, 734, 3488, 413, 949, 1118, 1118, 645, 645, - 645, 645, 683, 683, 1207, 1207, 1207, 1207, 0, 14051, - 13143, -1837, 10924, 10924, 1534, 8, 9761, 10924, 10924, 1533, - 9761, 10924, 1535, 5630, 1536, -1837, 11, 1537, 5630, 10924, - 4777, 1538, 9761, 9761, 1368, 1540, 1542, 14072, 1543, 1372, - 1544, 1545, 14093, 1546, 1382, 1548, 1550, 1551, 1552, 1553, - 1555, -1837, 1556, 1557, 1560, 10924, 14114, 4183, 1333, -1837, - -1837, -1837, 1578, 14135, 13166, 203, -1837, -1837, 9761, -1837, - 9761, 3341, 1356, 9761, 1355, 671, 11855, 11881, 770, 11907, - 1352, 4224, 1354, 1371, 1373, -1837, 9761, -1837, 9761, -1837, - 9761, -1837, 9761, 770, 768, 1584, -1837, 3761, 9761, 1207, - -1837, 14156, 13189, 9761, -1837, 1600, 1374, 14177, 14198, 14219, - 10924, 6664, 1607, 1606, 14240, 1384, 14723, 1380, 1386, 14723, - 1385, 1387, 14723, 1389, 1388, 14723, 1391, 14261, -1837, 14282, - -1837, 14303, -1837, 769, 777, 9761, 1394, -1837, -1837, 11074, - 11132, -97, 10924, 10924, -1837, -1837, 1392, 1393, 9534, 11933, - 11959, 11985, 10590, 1496, -40, -97, 11189, 14324, 4377, 14345, - 14366, 14387, 14408, 14429, 14450, 14471, 1613, 10924, 1615, -1837, - 10924, 14492, -1837, 13212, 13235, -1837, 784, 795, 796, -1837, - -1837, 13258, 13281, 12011, -1837, 1620, 1624, 1627, 1405, 10924, - 11246, 10924, 10924, -1837, -1837, 54, 800, -1837, -1837, 11303, - -1837, 1629, 10636, 1407, 1403, 6664, 1638, 1586, 1602, 6664, - 201, 1603, 1604, 6664, 201, 4419, 801, -1837, -1837, 13304, - 241, 129, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, - -1837, -1837, -1837, -1837, 10924, -1837, -1837, -1837, -1837, -1837, - -1837, -1837, 10924, 10924, 10924, -1837, 9761, -1837, -1837, -1837, - -1837, 5630, -1837, -1837, 10924, -1837, 6664, 5630, 5630, 5630, - -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, 10924, 5630, - -1837, 5630, -1837, 10924, -1837, -1837, -1837, -1837, 84, 84, - 1645, -1837, 10924, 1646, 84, 84, 1647, 58, 10924, 1652, - 1653, 1003, -1837, 1654, 1432, 15, 1661, -1837, 9761, 9761, - 9761, 9761, 10924, 1454, -1837, 770, 10924, -1837, 1455, 1456, - 1440, -1837, 1670, -1837, -1837, -1837, -1837, -1837, 299, 317, - 14513, 13327, -1837, -1837, 1462, 5630, 414, 14534, 13350, -1837, - 464, 12037, -1837, -1837, -1837, 59, -1837, -1837, 11414, 770, - -97, 3341, -1837, 950, 6664, 6664, 1673, 6664, 957, 6664, - 6664, 1678, 6664, 1594, 6664, 6664, 6664, 6664, 6664, 6664, - 6664, 6664, 6664, 1085, 1683, 1686, 9761, -1837, 203, 538, - 805, 814, -1837, 817, -1837, -1837, 10924, 10924, -1837, 10924, - 10924, -1837, 10924, 10924, 10924, 818, 844, 847, 860, -1837, - -1837, 6664, 10924, 869, 203, 203, 872, 6664, 9761, 1687, - 1688, 1689, 2500, -1837, -1837, 1691, -1837, 1692, 300, 10924, - 300, 10924, 300, 10924, 300, 10924, 1694, 1695, 1697, 1699, - 1700, 873, 1704, 11360, -1837, -1837, -49, 12063, 12089, -1837, - -1837, 4786, -148, -97, -97, -97, 1618, 1717, 10857, 1492, - 1716, 1495, 36, 52, 57, 77, 411, -1837, 97, -1837, - -40, 1721, 1723, 1739, 1740, 1741, 1743, 1744, 1745, 1747, - 6664, 14723, -1837, 1361, 1521, 1751, 1752, 1753, 1671, 1756, - 1754, 1758, 10924, 6664, 6664, 6664, 1761, 12115, -1837, 3796, - 850, 1762, 1763, 1539, -1837, 1547, -1837, 1383, 1549, 6664, - 1566, -1837, 84, 84, 1768, 10924, 1769, 84, 84, 1774, - 10924, 1775, -1837, 770, 1777, -1837, 1765, -1837, 1779, 11414, - 11414, 11414, 11414, 747, 1575, 10508, 1581, 770, 770, 1577, - 754, 755, 14555, 1587, 770, 11414, 1305, 5630, -1837, 1522, - -1837, 1305, 5630, -1837, 205, 1554, 1810, 1711, -1837, -1837, - -1837, 15, 10924, -1837, 877, -1837, 904, 916, 920, 921, - 14576, 10924, 300, 14723, 1592, 10924, 10924, 6664, 1589, -1837, - -1837, -1837, -1837, 1596, -1837, 1820, 34, -1837, -1837, 1823, - 10924, 9161, 1601, 1605, 1825, 1826, 72, 1598, 1599, 1720, - 1720, 6664, 1831, 1608, 1609, 1832, 1833, 6664, 1668, 1611, - 1841, 1842, 1844, 1846, 1848, 1850, 1851, 1852, 1854, -1837, - 1856, 6664, 939, 1849, 770, 1633, 1632, 12141, 12167, 12193, - 12219, 12245, 12271, 12297, -1837, -1837, -1837, -1837, 1859, 14723, - -1837, 770, 1860, 943, 6664, 6664, 6664, 1866, 1867, -1837, - 6664, 6664, 14723, 6664, 14723, 6664, 14723, 6664, 14723, 6664, - 6664, 6664, 1639, 1640, 1869, 549, -1837, 10924, 10924, 10924, - 1642, 1643, -145, -142, -108, 1648, 1650, -1837, 1900, 6664, - -1837, 10924, -1837, 1875, -1837, 1876, -1837, 1878, -1837, 1879, - -1837, -1837, 9534, 422, 6210, -1837, 1651, 1656, 1657, 1659, - 1660, 1663, 8707, 1881, -1837, 9761, -1837, -1837, -1837, 1667, - 10924, -1837, -1837, 13373, 1882, 1883, 1728, -1837, 10924, 10924, - 10924, -1837, 1897, 799, 4777, -1837, -1837, -1837, 1674, 1898, - 1305, 5630, -1837, 1978, -1837, 1305, 5630, -1837, 2012, -1837, - 300, -1837, 337, -1837, -1837, -1837, -1837, -1837, -1837, 5630, - 10924, -1837, -1837, -1837, -1837, 5630, 1901, -1837, -1837, 19, - -1837, -1837, -1837, -1837, -1837, -1837, 1903, 436, 436, -1837, - 1905, 436, 436, 4777, 10924, 1906, 1909, 35, -1837, 1910, - 13396, 15, -1837, 1912, 1913, 1931, 1934, 1584, 14597, 6664, - 10924, 12323, 12349, 946, -1837, 10924, 1911, -1837, -1837, 5630, - -1837, 12375, 5529, 14723, -1837, 1935, 1936, -1837, -1837, -1837, - 10924, 10924, -97, 1938, 1940, 1942, -1837, 10924, 10924, -1837, - -1837, 1944, 1819, 1945, 10924, -1837, -1837, -1837, -1837, -1837, - -1837, -1837, -1837, -1837, 1947, 1949, 1706, 203, -1837, -1837, - -1837, 10924, 10924, 10924, 10924, 10924, 10924, 10924, -1837, -1837, - -1837, 1722, 1950, 1668, 1952, 10924, -1837, 1953, 1959, 1960, - 1961, 1962, 1964, 1177, 1965, 9761, 9761, 10924, -1837, 9982, - 5044, 14618, 2664, 385, 385, -97, 1971, -97, 1972, -97, - 1973, 10924, 10924, -1837, 274, 1746, 14639, -1837, -1837, -1837, - -1837, 5919, 110, -1837, 1976, 1977, 6664, -97, -97, -97, - -97, -97, 5015, 1979, -1837, 952, 10924, 2132, 1981, -1837, - -1837, 6664, 3401, 612, 14660, -1837, -1837, 9234, 1759, 5080, - 5080, 6664, -1837, 1982, 436, 436, -1837, 1986, 436, 436, - -1837, 6664, -1837, 1770, 11414, 770, 5756, 9461, 4777, -1837, - 1992, 1998, -1837, 2002, 2003, 2004, 2293, -1837, 2005, 2008, - -1837, 1783, -1837, -1837, -1837, -1837, -1837, 1689, 2011, 583, - 14723, 10924, 10924, 6664, 1776, 953, 14723, -1837, 2013, 10924, - -1837, -1837, 1786, 1787, 6146, 6373, 688, -1837, -1837, -1837, - 6600, 6827, -1837, 1788, -1837, 7054, 2019, -1837, 6664, 11414, - 11414, 12401, 12427, 12453, 12479, 12505, 10924, -1837, 2020, -1837, - 14723, -1837, -1837, -1837, -1837, -1837, -1837, 1790, -1837, -1837, - 958, 959, 10466, 2582, 2021, 1793, -1837, 10924, -1837, 1794, - 1795, 116, -1837, 1797, 122, -1837, 1799, 144, -1837, 1800, - 7281, 13419, 2023, 6664, 2029, 1802, 10924, -1837, -1837, 965, - 168, 234, 246, 301, 304, 8934, 312, -1837, 2032, 7508, - -1837, -1837, 1872, 10924, -1837, 10924, -1837, -1837, 9761, 2839, - 2034, 4777, 1805, 1806, 1807, -1837, 2038, 2039, -1837, 2040, - 2041, 2042, -1837, -1837, -1837, 5289, -1837, -1837, 5630, 14723, - -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, 15, -1837, - 1885, -1837, -1837, 10924, 12531, 12557, -1837, 6664, 10924, 2043, - -1837, 12583, -1837, -1837, 6664, 6664, 2045, 2050, 2051, 2052, - 10924, 2058, 2059, 966, -1837, -1837, 10924, 10924, 10924, 10924, - 10924, 7735, -1837, 6664, 792, 829, 9761, -1837, -1837, 385, - 3822, -1837, -1837, 9534, -40, 9534, -40, 9534, -40, -1837, - 2060, -1837, 970, 6664, -1837, 7962, 2061, 9761, -97, -97, - -97, -97, -97, -1837, -1837, 10924, 8189, 8416, 973, -1837, - -1837, 1839, 1834, -1837, 2064, -1837, -1837, -1837, -1837, -1837, - 993, 2976, 2065, 997, 2067, -1837, 1836, 14723, 10924, 10924, - 1014, 14723, -1837, 10924, 1015, 1018, -1837, -1837, -1837, -1837, - -1837, -1837, 8643, -1837, -1837, 1845, 12609, 12635, 12661, 12687, - 12713, -1837, 1019, 1853, -97, 6664, 2068, 1855, -97, 2071, - 1022, 1843, 10924, -1837, 8870, 361, 533, 9107, 423, 739, - 9190, 426, 868, -1837, 6664, 2075, 1963, 11417, 1857, -1837, - 1023, 443, 450, 456, 473, 476, 2932, -1837, -1837, 2078, - 2080, -1837, -1837, 10924, -1837, 4777, 11, -1837, -1837, 10924, - 14681, 12739, 50, 12765, -1837, -1837, -1837, -1837, -1837, 10924, - 10924, 10924, 10924, 10924, 10924, 2081, -97, 75, -1837, -1837, - -97, 106, -1837, 2083, -1837, 9364, 2085, 10924, 2087, 2088, - 10924, 2089, 2091, 10924, 2092, 1863, -1837, 10924, -1837, -40, - -1837, 2094, 9761, 9761, 9761, 9761, 8934, -1837, -1837, -1837, - 5080, 3106, -1837, 1873, 1034, -1837, 10924, -1837, 6664, 10924, - 1048, 1051, 12791, 12817, 12843, 12869, 12895, 12921, -1837, 484, - -1837, 486, -1837, -1837, -1837, -1837, 1868, 9406, -1837, -1837, - 1870, 9488, -1837, -1837, 1871, 9697, -1837, 2096, 2953, 1089, - 11474, -1837, 1052, 1055, 1056, 1081, 494, 1086, 1887, 4777, - 1895, 2098, 1890, 14702, 1090, 9885, -1837, -1837, 10924, 10924, - 10924, 10924, 10924, 10924, -97, -97, -40, 2101, -40, 2120, - -40, 2122, -1837, -1837, -1837, -1837, -40, 2123, 2124, 2125, - 2126, 9761, 2127, 2128, -1837, -1837, -1837, 5630, -1837, 1904, - 2129, 9927, 11414, 12947, 12973, 12999, 13025, 497, 520, 1124, - -1837, 1907, 1251, -1837, 1908, 1294, -1837, 1914, 1329, -1837, - -1837, -1837, -1837, 1112, -1837, -1837, 1125, -1837, 1915, 6664, - -1837, 2130, -1837, 10924, 10924, 10924, 10924, 10924, 10924, 2134, - -40, 2135, -40, 2138, -40, -1837, 2139, 5630, 2140, 5630, - 1142, -1837, 10007, 10106, 10173, 10215, 10301, 10394, -1837, 1517, - -1837, 1623, -1837, 1847, -1837, -1837, -1837, 1146, -1837, 2141, - -1837, -1837, -1837, -1837, 2146, 2147, 2149, 2150, 2151, 5630, - 2152, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837 + 11338, 52, 86, 11487, -1827, -1827, 4967, 56, -62, -196, + -121, 49, 188, 209, 240, 294, -115, 397, 440, -77, + -14, 190, 190, 132, 244, 257, 14, 282, 295, 15, + 311, 317, 318, 330, 352, 367, 370, 385, 392, 445, + 128, 72, 476, 563, 456, 432, 471, 6652, 475, 492, + 638, -57, 559, 658, -11, 817, 96, 542, 691, -29, + 546, 290, 290, 594, 296, 70, -1827, -1827, -1827, -1827, + -1827, 585, 547, 733, 743, 19, 61, 753, 765, 204, + 856, 862, 883, 6198, 897, 697, 701, 702, 16, 59, + -1827, 706, 726, -1827, -1827, 899, 951, 731, -1827, 3724, + 736, 4165, 33, 35, -1827, -1827, -1827, 10716, 737, -1827, + -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, + -1827, -1827, -1827, -1827, 143, -1827, -1827, -1827, -1827, 3, + -1827, 117, 201, -1827, 39, -1827, -1827, -1827, -1827, -1827, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 757, 763, 767, 190, 190, + 190, 190, 771, 190, 190, 190, 190, 190, 190, 787, + -1827, 190, -1827, -1827, -1827, -1827, -1827, 190, 190, 1009, + 792, 803, 804, 190, 190, 814, 827, -1827, -1827, -1827, + -1827, 797, 10716, 10716, 10716, 4585, 4875, 147, 23, 349, + 808, 838, 578, -1827, 839, 1073, 138, -66, 1078, 10716, + 3792, 3792, -1827, 10716, -1827, -1827, -1827, -1827, 3792, -1827, + -1827, -1827, -1827, -1827, -1827, 5065, 23, 10716, 9903, 10716, + 10716, 868, 10716, 9903, 10716, 10716, 871, 10716, 9903, 10716, + 10716, 10716, 10716, 10716, 10716, 3792, 10716, 10716, 10716, 6879, + 906, 879, -1827, 9903, 6198, 6198, 6198, 3792, 768, 410, + 190, 190, 190, 190, 20, 26, 32, 34, 6879, 1028, + 28, 190, 7106, 10716, 5510, -1827, -1827, 952, -1827, 2120, + -1827, -1827, 187, -180, 10716, 9903, 931, 934, 7333, 6198, + 6198, 6198, 967, 973, 1002, 1017, 1030, 7560, 7787, 8014, + 998, 1935, 1258, 6879, 16, 1032, 1046, 290, 290, 290, + 10716, 10716, 154, -1827, 179, 290, 1062, 1063, 1077, 4482, + 234, 156, 1035, 1064, 1088, 1102, 1106, 1107, 1128, 10716, + 6198, 6198, 6879, 1129, 4, 1041, -1827, 1136, 1373, 1382, + -1827, 1188, 1191, 1197, 6198, 6198, 1163, 1186, 1192, -1827, + 10716, -1827, 1439, 1445, 10716, 10716, 10716, -111, 10716, 1242, + -1827, 1310, 10716, 10716, 10716, -1827, -1827, 10716, 1249, 1481, + 1496, 1268, -1827, -1827, 1501, -1827, 1502, -1827, 587, 5024, + 195, 3792, 10716, -1827, -1827, 6879, 6879, 9782, 10197, 1276, + 1277, 5065, -1827, -1827, -1827, -1827, -1827, -1827, 6879, 1507, + 1284, 10716, 10716, 1511, 10716, 10716, 10716, 10716, 10716, 10716, + 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, + 10716, 10716, 10716, 10716, 10716, 10716, 3792, 3792, 3792, 3792, + 3792, 3792, 3792, 3792, 3792, 3792, 6879, 3792, 3792, 10716, + 3792, 3792, 3792, 3792, 3792, 10716, 5065, 10716, 3792, 3792, + 3792, 3792, 3792, 23, 5065, 23, 1289, 1289, 1289, 107, + 13453, 120, 13062, 205, 1285, 1513, 190, 1283, -1827, 1288, + 4641, 10716, 9903, -1827, 10716, 10716, 10716, 10716, 10716, 10716, + 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, -1827, + -1827, 10716, 10716, -1827, -1827, 760, 703, 161, -1827, 283, + -1827, 237, 11609, -1827, 343, 239, 250, 1291, 1293, 13474, + 9903, 3314, -1827, 425, 13495, 13516, 10716, 13537, 490, 13558, + 13579, 10716, 13600, 527, 13621, 13642, 13663, 13684, 13705, 13726, + 1299, 13747, 13768, 13789, 1523, 10716, 10716, 602, 1526, 1527, + 1528, 1306, 10716, 10716, 1532, 347, 8241, 8468, 10716, 10716, + 3792, 10716, -1827, 1475, 10716, -1827, 1476, -1827, 1477, -1827, + 1478, 6879, 43, 45, 47, 48, 9903, 9903, 1289, -1827, + 13810, -1827, 641, 10716, 8695, 10716, 10716, 522, 13831, 645, + 10716, 10716, 10716, -1827, 1536, 1537, 1537, 10716, 10124, 10124, + 10124, 10124, 10716, 1539, 10716, 1541, 10716, 1544, 9903, 9903, + 11147, 1322, 1546, 1318, -1827, -1827, 246, -1827, -1827, 11635, + 11661, 290, 290, 349, 349, 249, 10716, 10716, 10716, 4482, + 4482, 10716, 2900, 331, -1827, 10716, 10716, 10716, 10716, 10716, + 10716, 10716, 10716, 10716, 13852, 1553, 1548, 1554, 10716, 1561, + 10716, 10716, 3019, -1827, -1827, 9903, 9903, 9903, 1563, 1564, + 10716, 10716, 10716, 13873, -1827, -1827, 13894, 13915, 13936, 1402, + 11687, -1827, 1337, 3334, 13957, 13978, 13085, -1827, -1827, 9903, + -1827, 3283, -1827, 5334, 10716, 10716, -1827, 10716, 10716, 1344, + 13999, 11622, 1348, 683, 194, 14020, 281, 13108, 10716, 9903, + 1588, 1590, -1827, 10716, 14041, 13131, 431, 13039, 13039, 13039, + 13039, 13039, 13039, 13039, 13039, 13039, 13039, 13039, 11713, 13039, + 13039, 13039, 13039, 13039, 13039, 13039, 11739, 11765, 11791, -147, + -68, -147, 1368, 1370, 1367, 710, 710, 1372, 710, 1374, + 1379, 1380, 11817, 710, 710, 710, 450, 710, 14797, -1827, + 891, 1381, 1383, 1378, 101, 773, 1387, 1389, 1388, 1593, + 1594, 6879, 322, 1595, 1596, 6879, 116, 5065, 10716, 1640, + 1643, 22, 710, -1827, 159, 30, 31, 226, 1420, -54, + 927, -1827, 2285, 758, 3355, 2213, 848, 1222, 1222, 728, + 728, 728, 728, 626, 626, 1289, 1289, 1289, 1289, 11, + 14062, 13154, -1827, 10716, 10716, 1645, 24, 9903, 10716, 10716, + 1644, 9903, 10716, 1647, 3792, 1648, -1827, 23, 1649, 3792, + 10716, 5065, 1651, 9903, 9903, 1487, 1653, 1656, 14083, 1658, + 1494, 1661, 1663, 14104, 1664, 1500, 1667, 1669, 1670, 1671, + 1673, 1675, -1827, 1676, 1677, 1678, 10716, 14125, 3721, 1452, + -1827, -1827, -1827, 1683, 14146, 13177, -180, -1827, -1827, 9903, + -1827, 9903, 3314, 1461, 9903, 1460, 727, 11843, 11869, 710, + 11895, 1462, 4181, 1469, 1470, 1474, -1827, 9903, -1827, 9903, + -1827, 9903, -1827, 9903, 710, 801, 1704, -1827, 3442, 9903, + 1289, -1827, 14167, 13200, 9903, -1827, 1705, 1479, 14188, 14209, + 14230, 10716, 6879, 1712, 1711, 14251, 1492, 14797, 1488, 1512, + 14797, 1495, 1515, 14797, 1508, 1516, 14797, 1529, 14272, -1827, + 14293, -1827, 14314, -1827, 802, 815, 9903, 1498, -1827, -1827, + 10744, 10866, 290, 10716, 10716, -1827, -1827, 1510, 1530, 4482, + 11921, 11947, 11973, 10677, 1625, -56, 290, 10924, 14335, 4705, + 14356, 14377, 14398, 14419, 14440, 14461, 14482, 1757, 10716, 1759, + -1827, 10716, 14503, -1827, 13223, 13246, -1827, 818, 822, 844, + -1827, -1827, 13269, 13292, 11999, -1827, 1762, 1763, 1764, 1542, + 10716, 10980, 10716, 10716, -1827, -1827, 54, 858, -1827, -1827, + 11037, -1827, 1766, 10423, 1543, 1545, 6879, 1769, 1733, 1734, + 6879, 322, 1737, 1738, 6879, 322, 4996, 881, -1827, -1827, + 13315, 439, 130, -1827, -1827, -1827, -1827, -1827, -1827, -1827, + -1827, -1827, -1827, -1827, -1827, 10716, -1827, -1827, -1827, -1827, + -1827, -1827, -1827, 10716, 10716, 10716, -1827, 9903, -1827, -1827, + -1827, -1827, 3792, -1827, -1827, 10716, -1827, 6879, 3792, 3792, + 3792, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, 10716, + 3792, -1827, 3792, -1827, 10716, -1827, -1827, -1827, -1827, 190, + 190, 1778, -1827, 10716, 1779, 190, 190, 1780, 180, 10716, + 1781, 1784, 910, -1827, 1785, 1565, 16, 1787, -1827, 9903, + 9903, 9903, 9903, 10716, 1566, 1568, 1570, 1572, -1827, 710, + 10716, -1827, 1573, 1574, 1556, -1827, 1793, -1827, -1827, -1827, + -1827, -1827, 472, 577, 14524, 13338, -1827, -1827, 1589, 3792, + 466, 14545, 13361, -1827, 543, 12025, -1827, -1827, -1827, 71, + -1827, -1827, 13039, 710, 290, 3314, -1827, 1001, 6879, 6879, + 1798, 6879, 1052, 6879, 6879, 1799, 6879, 1716, 6879, 6879, + 6879, 6879, 6879, 6879, 6879, 6879, 6879, 954, 1802, 1803, + 9903, -1827, -180, 338, 920, 924, -1827, 944, -1827, -1827, + 10716, 10716, -1827, 10716, 10716, -1827, 10716, 10716, 10716, 949, + 950, 956, 960, -1827, -1827, 6879, 10716, 966, -180, -180, + 970, 6879, 9903, 1804, 1805, 1807, 2688, -1827, -1827, 1809, + -1827, 1810, 329, 10716, 329, 10716, 329, 10716, 329, 10716, + 1811, 1812, 1814, 1815, 1816, 971, 1824, 11093, -1827, -1827, + 333, 12051, 12077, -1827, -1827, 5446, -130, 290, 290, 290, + 1714, 1826, 10495, 1597, 1825, 1605, 36, 64, 65, 69, + -45, -1827, 337, -1827, -56, 1827, 1829, 1830, 1832, 1833, + 1834, 1836, 1838, 1840, 6879, 14797, -1827, 1005, 1601, 1843, + 1845, 1846, 1767, 1849, 1847, 1854, 10716, 6879, 6879, 6879, + 1857, 12103, -1827, 3479, 525, 1859, 1860, 1631, -1827, 1632, + -1827, 1127, 1634, 6879, 1630, -1827, 190, 190, 1864, 10716, + 1865, 190, 190, 1866, 10716, 1867, -1827, 710, 1868, -1827, + 1871, -1827, 1870, 13039, 13039, 13039, 13039, 795, 1646, 11583, + 1650, 710, 710, 1652, 799, 819, 14566, 1654, 710, 13039, + 2650, 3792, -1827, 1149, -1827, 2650, 3792, -1827, 336, 1655, + 1874, 1187, -1827, -1827, -1827, 16, 10716, -1827, 976, -1827, + 995, 1000, 1007, 1008, 14587, 10716, 10716, 10716, 10716, 329, + 14797, 1660, 10716, 10716, 6879, 1662, -1827, -1827, -1827, -1827, + 1657, -1827, 1872, 58, -1827, -1827, 1876, 10716, 9376, 1672, + 1659, 1890, 1892, 10, 1665, 1674, 1789, 1789, 6879, 1893, + 1679, 1680, 1896, 1899, 6879, 1735, 1681, 1902, 1905, 1906, + 1907, 1911, 1912, 1913, 1914, 1915, -1827, 1917, 6879, 1014, + 1920, 710, 1696, 1695, 12129, 12155, 12181, 12207, 12233, 12259, + 12285, -1827, -1827, -1827, -1827, 1922, 14797, -1827, 710, 1923, + 1020, 6879, 6879, 6879, 1926, 1925, -1827, 6879, 6879, 14797, + 6879, 14797, 6879, 14797, 6879, 14797, 6879, 6879, 6879, 1697, + 1698, 1927, 118, -1827, 10716, 10716, 10716, 1700, 1701, -90, + 140, 145, 1702, 1710, -1827, 1279, 6879, -1827, 10716, -1827, + 1936, -1827, 1937, -1827, 1941, -1827, 1942, -1827, -1827, 4482, + -17, 6425, -1827, 1706, 1739, 1740, 1741, 1742, 1743, 8922, + 1966, -1827, 9903, -1827, -1827, -1827, 1744, 10716, -1827, -1827, + 13384, 1967, 1974, 1813, -1827, 10716, 10716, 10716, -1827, 1976, + 196, 5065, -1827, -1827, -1827, 1749, 1978, 2650, 3792, -1827, + 1371, -1827, 2650, 3792, -1827, 1540, -1827, 329, -1827, 677, + -1827, -1827, -1827, -1827, -1827, -1827, 3792, 10716, -1827, -1827, + -1827, -1827, 3792, 1982, -1827, -1827, 25, -1827, -1827, -1827, + -1827, -1827, -1827, 1981, -147, -147, -1827, 1986, -147, -147, + 5065, 10716, 1987, 1991, 22, -1827, 1992, 13407, 16, -1827, + 1993, 1994, 1995, 1997, 1704, 14608, 14629, 14650, 14671, 6879, + 10716, 12311, 12337, 1021, -1827, 10716, 2001, -1827, -1827, 3792, + -1827, 12363, 5744, 14797, -1827, 1990, 1999, -1827, -1827, -1827, + 10716, 10716, 290, 2005, 2006, 2007, -1827, 10716, 10716, -1827, + -1827, 2008, 1928, 2011, 10716, -1827, -1827, -1827, -1827, -1827, + -1827, -1827, -1827, -1827, 2013, 2015, 1788, -180, -1827, -1827, + -1827, 10716, 10716, 10716, 10716, 10716, 10716, 10716, -1827, -1827, + -1827, 1790, 2016, 1735, 2018, 10716, -1827, 2021, 2022, 2023, + 2038, 2039, 2041, 1255, 2043, 9903, 9903, 10716, -1827, 10124, + 5680, 14692, 3750, 349, 349, 290, 2044, 290, 2045, 290, + 2047, 10716, 10716, -1827, 285, 1828, 14713, -1827, -1827, -1827, + -1827, 5907, 341, -1827, 2052, 2053, 6879, 290, 290, 290, + 290, 290, 5269, 2054, -1827, 1036, 10716, 1821, 2055, -1827, + -1827, 6879, 3901, 414, 14734, -1827, -1827, 9449, 1835, 11622, + 11622, 6879, -1827, 2057, -147, -147, -1827, 2058, -147, -147, + -1827, 6879, -1827, 1837, 13039, 710, 5971, 9676, 5065, -1827, + 2059, 2061, -1827, 2062, 2064, 2065, 1888, -1827, 2012, 2071, + -1827, 1848, -1827, -1827, -1827, -1827, -1827, 1807, 1811, 1812, + 1814, 2072, 684, 14797, 10716, 10716, 6879, 1844, 1042, 14797, + -1827, 2076, 10716, -1827, -1827, 1850, 1851, 6134, 6361, 210, + -1827, -1827, -1827, 6588, 6815, -1827, 1852, -1827, 7042, 2078, + -1827, 6879, 13039, 13039, 12389, 12415, 12441, 12467, 12493, 10716, + -1827, 2083, -1827, 14797, -1827, -1827, -1827, -1827, -1827, -1827, + 1855, -1827, -1827, 1043, 1048, 11556, 2046, 2085, 1858, -1827, + 10716, -1827, 1856, 1875, 424, -1827, 1861, 426, -1827, 1877, + 429, -1827, 1878, 7269, 13430, 2088, 6879, 2077, 1879, 10716, + -1827, -1827, 1053, 449, 451, 459, 483, 486, 9149, 530, + -1827, 2110, 7496, -1827, -1827, 1950, 10716, -1827, 10716, -1827, + -1827, 9903, 2075, 2112, 5065, 1883, 1884, 1885, -1827, 2117, + 2118, -1827, 2121, 2123, 2124, -1827, -1827, -1827, 5510, -1827, + -1827, 3792, 14797, -1827, -1827, -1827, -1827, -1827, -1827, -1827, + -1827, 16, -1827, 1968, -1827, -1827, 10716, 12519, 12545, -1827, + 6879, 10716, 2130, -1827, 12571, -1827, -1827, 6879, 6879, 2131, + 2134, 2135, 2136, 10716, 2137, 2138, 1054, -1827, -1827, 10716, + 10716, 10716, 10716, 10716, 7723, -1827, 6879, 857, 886, 9903, + -1827, -1827, 349, 3966, -1827, -1827, 4482, -56, 4482, -56, + 4482, -56, -1827, 2139, -1827, 1057, 6879, -1827, 7950, 2140, + 9903, 290, 290, 290, 290, 290, -1827, -1827, 10716, 8177, + 8404, 1070, -1827, -1827, 1918, 1916, -1827, 2146, -1827, -1827, + -1827, -1827, -1827, 1071, 1245, 2148, 1074, 2153, -1827, 1929, + 14797, 10716, 10716, 1075, 14797, -1827, 10716, 1090, 1091, -1827, + -1827, -1827, -1827, -1827, -1827, 8631, -1827, -1827, 1930, 12597, + 12623, 12649, 12675, 12701, -1827, 1116, 1931, 290, 6879, 2156, + 1934, 290, 2165, 1119, 1938, 10716, -1827, 8858, 537, -6, + 9085, 541, 533, 9322, 549, 679, -1827, 6879, 2166, 2051, + 11150, 1940, -1827, 1138, 588, 591, 623, 625, 631, 2530, + -1827, -1827, 2170, 2171, -1827, -1827, 10716, -1827, 5065, 23, + -1827, -1827, 10716, 14755, 12727, 50, 12753, -1827, -1827, -1827, + -1827, -1827, 10716, 10716, 10716, 10716, 10716, 10716, 2173, 290, + 84, -1827, -1827, 290, 89, -1827, 2174, -1827, 9405, 2175, + 10716, 2176, 2177, 10716, 2178, 2179, 10716, 2180, 1951, -1827, + 10716, -1827, -56, -1827, 2182, 9903, 9903, 9903, 9903, 9149, + -1827, -1827, -1827, 11622, 1414, -1827, 1961, 1144, -1827, 10716, + -1827, 6879, 10716, 1148, 1151, 12779, 12805, 12831, 12857, 12883, + 12909, -1827, 633, -1827, 654, -1827, -1827, -1827, -1827, 1960, + 9551, -1827, -1827, 1962, 9612, -1827, -1827, 1963, 9839, -1827, + 2190, 3092, 715, 11206, -1827, 1155, 1158, 1176, 1177, 664, + 1181, 1964, 5065, 1972, 2196, 1969, 14776, 1212, 10027, -1827, + -1827, 10716, 10716, 10716, 10716, 10716, 10716, 290, 290, -56, + 2197, -56, 2199, -56, 2200, -1827, -1827, -1827, -1827, -56, + 2202, 2203, 2204, 2206, 9903, 2207, 2208, -1827, -1827, -1827, + 3792, -1827, 1980, 2210, 10069, 13039, 12935, 12961, 12987, 13013, + 666, 674, 789, -1827, 1983, 1147, -1827, 1985, 1409, -1827, + 1989, 1456, -1827, -1827, -1827, -1827, 1216, -1827, -1827, 1237, + -1827, 2017, 6879, -1827, 2215, -1827, 10716, 10716, 10716, 10716, + 10716, 10716, 2216, -56, 2217, -56, 2223, -56, -1827, 2228, + 3792, 2237, 3792, 1244, -1827, 10149, 10253, 10325, 10367, 10448, + 10588, -1827, 1547, -1827, 1571, -1827, 1584, -1827, -1827, -1827, + 1247, -1827, 2241, -1827, -1827, -1827, -1827, 2242, 2244, 2247, + 2248, 2263, 3792, 2268, -1827, -1827, -1827, -1827, -1827, -1827, + -1827, -1827 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1837, -1837, -1837, -1837, 803, -1837, -1837, -1837, -1837, 141, - -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, - -1837, -1837, -453, -83, 4335, 3580, -1837, 1655, -1837, -1837, - -1837, -1837, -1837, -1837, -1837, -1836, -1837, 289, -1837, -1837, - -1837, -1837, -1837, 541, 791, 2160, -2, -616, -292, -1837, - -1837, -1837, -1837, -1837, -1837, -1837, -1837, 2163, -1837, -1837, - -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, -1837, - -1837, -1207, -1209, 2164, -1679, 2165, -1837, -1837, -1837, 1573, - -1837, 277, -1837, -1837, -1837, -1837, 2044, -1837, -1837, 42, - -1837, -1661, 3000, 1635, 1397, 2866, -312, 623, -1837, 282, - 18, -1837, -408, -3, 149 + -1827, -1827, -1827, -1827, 912, -1827, -1827, -1827, -1827, 245, + -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, + -1827, -1827, -422, -91, 4301, 3556, -1827, 1760, -1827, -1827, + -1827, -1827, -1827, -1827, -1827, -1826, -1827, 393, -1827, -1827, + -1827, -1827, -1827, 647, 901, 2278, -2, -613, -325, -1827, + -1827, -1827, -1827, -1827, -1827, -1827, -1827, 2295, -1827, -1827, + -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, + -1827, -1227, -1226, 2297, -1687, 2298, -1827, -1827, -1827, 1707, + -1827, 396, -1827, -1827, -1827, -1827, 1988, -1827, -1827, 1831, + -1827, -1670, 2951, 974, 965, 2080, -312, 751, -1827, 271, + 18, -1827, -431, -3, 149 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -2190,636 +2194,566 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -565 static const yytype_int16 yytable[] = { - 131, 114, 613, 216, 1097, 1809, 371, 936, 937, 394, - 1832, 1833, 384, 649, 1113, 378, 761, 562, 765, 367, - 768, 386, 219, 1707, 215, 875, 344, 1461, 729, 222, - 731, 565, 5, 1463, 567, 241, 1954, 632, 877, 1084, - 1568, 410, 1452, 879, 292, 746, 569, 246, 297, 409, - 881, 314, 241, 246, 652, 473, 2077, 349, 1454, 350, - 331, 1271, 1324, 1456, 220, 297, 1361, 315, 316, 298, - 621, 622, 347, 621, 622, 4, 621, 622, 1579, 669, - 292, 2090, 1227, 1458, 210, 347, 1093, 814, 1441, 1645, - 815, 1646, 1647, 681, 1648, 683, 347, 1883, 237, 1228, - 218, 691, 1071, 322, 324, 238, 330, 1229, 1230, 1231, - 621, 622, 2092, 1232, 1233, 1234, 1235, 379, 397, 383, - 398, 318, 319, 221, 621, 622, 1649, 399, 1650, 621, - 622, 320, 392, 506, 135, 406, 407, 351, 321, 393, - 332, 623, 621, 622, 333, -558, 624, 401, 621, 622, - 334, 335, 132, 336, 337, 217, 621, 622, 931, 1098, - 1099, 1100, 1101, 310, 224, 634, 311, 621, 622, 621, - 622, 338, 938, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 767, 945, 563, 1437, 175, 176, 177, 178, - 2080, 2081, 225, 1453, 180, 181, 182, 759, 566, 183, - 226, 568, 345, 1708, 635, 347, 1950, 478, 1071, 1455, - 188, 636, 1543, 570, 1457, 108, 227, 509, 509, 108, - 474, 475, 763, 1114, 348, 509, 108, 1325, 1326, 228, - 372, 395, 1972, 347, 1459, 292, 1102, 370, 396, 650, - 292, 999, 385, 1003, 229, 292, 210, 564, 380, 1114, - 368, 387, 509, 517, 1461, 876, 292, 346, 223, 242, - 292, 292, 292, 292, 509, 411, 243, 412, 878, 413, - 1085, 247, 997, 880, 210, 292, 242, 247, 248, 292, - 882, 292, 583, 1089, 1090, 2078, 1272, 1362, 214, 1363, - 621, 622, 292, 621, 622, 292, 292, 292, 292, 1001, - 402, 403, 404, 405, 292, 292, 292, 1071, 230, 1072, - 292, 347, 233, 1078, 234, 621, 622, 191, 192, 193, - 406, 407, 929, 930, 621, 622, 231, 1077, 621, 622, - 200, 1462, 201, 108, 621, 622, 237, 292, 292, 292, - 621, 622, 946, 1088, 1806, 402, 403, 404, 405, 232, - 1903, 292, 292, 805, 406, 407, 1905, 476, 806, 616, - 617, 1296, 621, 622, -559, 406, 407, 625, 809, 510, - 510, 633, 354, 810, 340, 355, 341, 510, 1907, 980, - 402, 403, 404, 405, 239, 518, 621, 622, 509, 477, - 769, 2118, 292, 292, 989, 402, 403, 404, 760, 240, - 406, 407, 1917, 260, 510, 292, 402, 403, 404, 405, - 402, 403, 404, 405, 406, 407, 510, 2124, 259, 700, - 402, 403, 404, 764, -563, 250, 406, 407, 406, 407, - 406, 407, 1091, 509, 509, 509, 509, 509, 509, 509, - 509, 509, 509, 292, 509, 509, 244, 509, 509, 509, - 509, 509, 621, 622, 245, 509, 509, 509, 509, 509, - 347, 249, 347, 370, 621, 622, 406, 407, 1918, 262, - 402, 403, 404, 998, 749, 264, -561, 250, 265, 292, - 1919, 266, 757, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 584, 496, 497, 402, 403, 404, - 1002, 498, 507, 511, 812, 402, 403, 404, 405, 813, - 1802, 60, 61, 62, 63, 326, 251, 292, 327, 621, - 622, 328, 621, 622, 406, 407, 74, 1053, 2210, 77, - 621, 622, 813, 1227, -562, 1920, 252, 540, 1921, 501, - 510, 502, 406, 407, 1227, 261, 1922, 1285, 399, 551, - 1228, 1290, -560, 292, 292, 1638, 1639, 509, 1229, 1230, - 1231, 1228, 406, 407, 1232, 1233, 1234, 1235, 292, 1229, - 1230, 1231, -564, 292, 292, 1232, 1233, 1234, 1235, 621, - 622, 292, 556, 483, 557, 510, 510, 510, 510, 510, - 510, 510, 510, 510, 510, 2047, 510, 510, 253, 510, - 510, 510, 510, 510, 254, 292, 292, 510, 510, 510, - 510, 510, 756, 823, 758, 824, 907, 910, 913, 916, - 1825, 478, 478, 1012, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 1213, 585, 255, 586, - 498, 621, 622, 1356, 621, 622, 399, 1460, 823, 318, - 319, 263, 292, 292, 292, 1227, 256, 2050, 1663, 320, - 2053, 621, 622, 934, 935, 856, 329, 857, 621, 622, - 813, 617, 1228, 689, 621, 622, 292, 2062, 296, 1073, - 1229, 1230, 1231, 1079, 2063, 257, 1232, 1233, 1234, 1235, - 2064, 621, 622, 1359, 621, 622, 292, 1986, 823, 1989, - 258, 1992, 621, 622, 621, 622, 865, 2065, 817, 510, - 2066, 815, 621, 622, 295, 621, 622, 267, 2134, 730, - 2135, 732, 733, 734, 735, 736, 737, 738, 2151, 740, - 741, 2197, 743, 744, 745, 294, 747, 801, 621, 622, - 751, 752, 753, 754, 755, 1421, 552, 1423, 553, 1425, - 554, 1427, 302, 209, 2198, 210, 312, 684, 292, 685, - 313, 554, 292, 406, 407, 687, 210, 688, 342, 2048, - 1393, 317, 1012, 1333, 399, 325, 303, 1461, 339, 304, - 1461, 343, 305, 1461, 306, 1080, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 807, 352, 808, 292, 498, 1686, 1687, 292, 572, 399, - 509, 573, 1862, 347, 574, 509, 575, 1863, 353, 292, - 292, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 856, 356, 857, 1129, 498, - 1036, 802, 868, 803, 823, 804, 829, 856, 1826, 857, - 210, 299, 2109, 858, 300, 292, 301, 292, 1490, 357, - 292, 1227, 358, 493, 494, 495, 496, 497, 856, 363, - 857, 1544, 498, 292, 893, 292, 364, 292, 1228, 292, - 823, 823, 834, 848, 365, 292, 1229, 1230, 1231, 1559, - 292, 366, 1232, 1233, 1234, 1235, 406, 407, 292, 823, - 1461, 886, 1165, 495, 496, 497, 621, 622, 1537, 1538, - 498, 375, 1057, 1541, 1542, 373, 376, 1286, 1973, 1974, - 307, 1291, 292, 308, 1975, 309, 374, 1295, 1297, 2169, - 856, 2172, 857, 2175, 823, 1061, 896, 377, 381, 2178, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 439, 1977, 1978, 995, 498, 996, - 1461, 1975, 510, 1461, 440, 1125, 1461, 510, 823, 1461, - 1095, 391, 856, 1216, 857, 2051, 856, 1063, 857, 441, - 1222, 823, 457, 856, 856, 857, 857, 1238, 1526, 1529, - 1227, 446, 292, 2219, 453, 2221, 292, 2223, 500, 856, - 292, 857, 823, 823, 1180, 1209, 458, 1228, 509, 1330, - 1461, 823, 1461, 1210, 1461, 1229, 1230, 1231, 823, 1549, - 1257, 1232, 1233, 1234, 1235, 1350, 1351, 1789, 1790, 823, - 823, 1258, 1259, 292, 823, 823, 1273, 1293, 509, 823, - 1367, 1394, 1368, 292, 509, 509, 509, 1373, 823, 1374, - 1395, 823, 823, 1396, 1404, 459, 509, 1701, 509, 484, + 131, 114, 613, 216, 632, 729, 1822, 731, 649, 394, + 937, 938, 1845, 1846, 1468, 1101, 1589, 1470, 241, 246, + 367, 652, 746, 344, 215, 562, 1085, 378, 219, 1717, + 1117, 565, 220, 297, 241, 246, 297, 567, 384, 569, + 386, 409, 1459, 410, 292, 406, 407, 761, 876, 765, + 878, 768, 880, 882, 298, 222, 2090, 1094, 4, 1967, + 681, 1275, 683, 371, 1578, 349, 1231, 350, 691, 218, + 1461, 1463, 347, 303, 331, 1465, 304, 1231, 1368, 305, + 292, 306, 857, 1232, 858, 347, 5, 814, 621, 622, + 2103, 1233, 1234, 1235, 1232, 2105, 347, 1236, 1237, 1238, + 1239, 1896, 1233, 1234, 1235, 1231, 1448, 221, 1236, 1237, + 1238, 1239, 572, 228, 759, 573, 1231, 379, 574, 383, + 575, 669, 1232, 1072, 1648, 1649, 210, 763, 621, 622, + 1233, 1234, 1235, 1232, 506, 135, 1236, 1237, 1238, 1239, + 314, 1233, 1234, 1235, 1655, 351, 1656, 1236, 1237, 1238, + 1239, 473, 132, 231, 332, 217, 315, 316, 333, 406, + 407, 857, 260, 858, 334, 335, 1037, 336, 337, -558, + 1102, 1103, 1104, 1105, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 310, 1328, 338, 311, 175, 176, 177, + 178, 1467, 563, 1460, 224, 180, 181, 182, 566, 345, + 183, 998, 1696, 1697, 568, 347, 570, 478, 401, 1718, + 1963, 188, 767, 2093, 2094, 225, 232, 509, 509, 1673, + 108, 1462, 1464, 108, 348, 509, 1466, 108, 621, 622, + 2061, 395, 259, 347, 650, 292, 1985, 370, 396, 1118, + 292, 210, 242, 247, 1468, 292, 226, 1106, 380, 243, + 248, 368, 509, 517, 346, 564, 292, 1086, 242, 247, + 292, 292, 292, 292, 509, 1090, 1091, 411, 385, 412, + 387, 413, 1000, 1118, 1004, 292, 210, 214, 877, 292, + 879, 292, 881, 883, 223, 2091, 1276, 372, 1002, 930, + 931, 354, 292, 583, 355, 292, 292, 292, 292, 1369, + 227, 1370, 621, 622, 292, 292, 292, 621, 622, 947, + 292, 347, 402, 403, 404, 760, 474, 475, 191, 192, + 193, 402, 403, 404, 405, 402, 403, 404, 764, 1072, + 857, 200, 858, 201, 108, 1062, 1072, 292, 292, 292, + 1073, 406, 407, 1550, 1079, 397, 981, 398, 1078, 1329, + 1330, 292, 292, 477, 399, 406, 407, 476, 621, 622, + 237, 990, 1300, 621, 622, -559, 501, 238, 502, 510, + 510, 392, 621, 622, 1657, 399, 1658, 510, 393, 1659, + 326, 1660, 769, 327, 635, 518, 328, 237, 509, 623, + 806, 636, 292, 292, 1089, 807, 2131, 621, 622, 402, + 403, 404, 999, 229, 510, 292, 402, 403, 404, 405, + 402, 403, 404, 405, 624, 585, 510, 586, 233, 700, + 234, 2137, 1838, 687, 399, 688, 406, 407, 621, 622, + 406, 407, 399, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 292, 509, 509, 230, 509, 509, 509, + 509, 509, 621, 622, 250, 509, 509, 509, 509, 509, + 347, 1092, 347, 370, 621, 622, 810, 621, 622, 634, + 815, 811, 239, 816, 749, 60, 61, 62, 63, 292, + 932, 818, 757, 939, 816, 240, 402, 403, 404, 1003, + 74, 507, 511, 77, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 584, 496, 497, 318, 319, + 244, 808, 498, 809, 318, 319, 264, 292, 320, 265, + 399, 1815, 266, 245, 320, 321, 540, 402, 403, 404, + 405, 329, 2223, 1497, 402, 403, 404, 405, 551, 249, + 510, 402, 403, 404, 405, 250, 251, 406, 407, 621, + 622, 621, 622, 292, 292, 621, 622, 509, 252, 621, + 622, 406, 407, 406, 407, 946, 261, 1444, 292, 262, + 1400, 1469, 813, 292, 292, 1819, 857, 814, 858, 1289, + 253, 292, 859, 1294, 483, 510, 510, 510, 510, 510, + 510, 510, 510, 510, 510, 254, 510, 510, 255, 510, + 510, 510, 510, 510, 1217, 292, 292, 510, 510, 510, + 510, 510, 756, 256, 758, 1013, 908, 911, 914, 917, + 257, 478, 478, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 340, 556, 341, + 557, 498, 621, 622, 621, 622, 299, 621, 622, 300, + 1839, 301, 292, 292, 292, 1231, 406, 407, 1916, 824, + 1918, 825, 689, 1920, 406, 407, -563, 621, 622, 621, + 622, 1074, 1232, 258, -561, 1080, 292, 621, 622, 1054, + 1233, 1234, 1235, 1930, 814, 1931, 1236, 1237, 1238, 1239, + 1999, 263, 2002, 1932, 2005, 1363, 292, 406, 407, 267, + 824, 621, 622, 294, 621, 622, 866, -562, 730, 510, + 732, 733, 734, 735, 736, 737, 738, 1933, 740, 741, + 1934, 743, 744, 745, 824, 747, 830, 295, 296, 751, + 752, 753, 754, 755, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 621, 622, + 302, 857, 498, 858, 1498, 621, 622, 894, 292, 621, + 622, 824, 292, 835, 1935, 1013, 802, 621, 622, 2064, + 312, 2060, 1366, 1468, 1337, 2063, 1468, 824, 313, 1468, + 1428, 317, 1430, 2066, 1432, 1081, 1434, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 1231, 406, 407, 292, 498, 621, 622, 292, 621, + 622, 509, -560, 339, 347, 684, 509, 685, 1232, 554, + 292, 292, 2075, 342, 210, 2076, 1233, 1234, 1235, 325, + 343, 869, 1236, 1237, 1238, 1239, 824, 1231, 849, 1133, + 352, 621, 622, 621, 622, 2122, 495, 496, 497, 621, + 622, 621, 622, 498, 1232, 353, 292, 2077, 292, 2078, + 356, 292, 1233, 1234, 1235, 2079, 357, 2147, 1236, 1237, + 1238, 1239, 621, 622, 292, 824, 292, 887, 292, 824, + 292, 897, 621, 622, 621, 622, 292, 358, 2148, 1544, + 1545, 292, 621, 622, 1548, 1549, 1468, 1058, 2164, 292, + 2210, 363, 406, 407, 307, 375, 1551, 308, 2211, 309, + 1290, 1231, -564, 1875, 1295, 2067, 1334, 996, 1876, 997, + 1299, 1301, 2182, 292, 2185, 364, 2188, 1569, 1232, 365, + 366, 803, 2191, 804, 373, 805, 1233, 1234, 1235, 857, + 210, 858, 1236, 1237, 1238, 1239, 493, 494, 495, 496, + 497, 2157, 406, 407, 374, 498, 1468, 376, 1169, 1468, + 1396, 377, 1468, 510, 381, 1468, 1129, 391, 510, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 460, 463, 1295, 1297, 498, 823, 1491, - 1405, 823, 347, 1406, 464, 292, 292, 292, 292, 465, - 504, 1389, 1694, 1695, 823, 1123, 1407, 1698, 1699, 481, - 1127, 1350, 1351, 823, 2054, 1410, 823, 823, 1411, 1434, - 482, 1551, 509, 1552, 499, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 526, - 531, 292, 292, 498, 292, 545, 292, 292, 823, 292, - 1553, 292, 292, 292, 292, 292, 292, 292, 292, 292, - 823, 571, 1554, 292, 823, 823, 1555, 1556, 546, 393, - 510, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 1366, 823, 611, 1606, 498, 823, 292, 1621, - 1733, 1777, 1734, 1778, 292, 292, 823, 1868, 1818, 1869, - 510, 590, 823, 823, 1894, 1895, 510, 510, 510, 1733, - 1733, 1916, 1965, 1689, 1994, 1690, 1995, 823, 510, 2009, - 510, 1227, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 591, 2013, 1228, 2014, - 498, 813, 597, 2017, 370, 598, 1229, 1230, 1231, 1722, - 599, 1545, 1232, 1233, 1234, 1235, 1227, 292, 1733, 1526, - 2022, 2024, 1529, 1733, 2025, 2035, 823, 823, 2043, 2061, - 292, 292, 292, 1228, 510, 1442, 1443, 1444, 1868, 600, - 2121, 1229, 1230, 1231, 601, 637, 292, 1232, 1233, 1234, - 1235, 638, 1526, 1981, 2126, 1526, 823, 2127, 2147, 823, - 823, 2148, 2149, 1298, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 608, 506, - 135, 614, 498, 509, 509, 823, 639, 2150, 509, 509, - 823, 640, 2152, 1304, 1733, 2144, 2159, 615, 347, 1307, - 1308, 1309, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 1313, 626, 1314, 292, 498, 823, 641, 2206, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 627, 2207, - 2199, 2208, 175, 176, 177, 178, 628, 1474, 292, 642, - 180, 181, 182, 1227, 292, 183, 1733, 643, 2229, 1574, - 2239, 648, 2240, 653, 651, 399, 188, 654, 292, 1496, - 1228, 655, 656, 657, 660, 661, 662, 1355, 1229, 1230, - 1231, 664, 665, 671, 1232, 1233, 1234, 1235, 672, 210, - 677, 292, 292, 292, 678, 679, 1227, 292, 292, 680, - 292, 682, 292, 698, 292, 699, 292, 292, 292, 1702, - 702, 703, 706, 1228, 498, 770, 771, 209, 819, 820, - 1943, 1229, 1230, 1231, 773, 841, 292, 1232, 1233, 1234, - 1235, 1227, 845, 849, 850, 851, 852, 855, 900, 901, - 870, 292, 872, 873, 874, 510, 510, 918, 1228, 292, - 510, 510, 292, 920, 922, 926, 1229, 1230, 1231, 927, - 370, 957, 1232, 1233, 1234, 1235, 959, 2201, 928, 960, - 962, 969, 970, 191, 192, 193, 978, 509, 509, 981, - 990, 994, 509, 509, 1662, 1007, 200, 1008, 201, 108, - 1039, 1040, 1688, 1041, 1044, 1068, 509, 1046, 1047, 1048, - 1058, 1059, 509, 1067, 1702, 1060, 1065, 1066, 1539, 1082, - 2203, 1069, 1074, 1075, 856, 1083, 857, 1092, 1112, 1119, - 1133, 1122, 1124, 1126, 1138, 1130, 1944, 1134, 347, 1135, - 1137, 1139, 1140, 1142, 1143, 1144, 292, 1145, 1146, 1147, - 1148, 1715, 1149, 1150, 1151, 2205, 509, 1152, 1156, 292, + 495, 496, 497, 1986, 1987, 439, 2232, 498, 2234, 1988, + 2236, 440, 824, 292, 1099, 441, 552, 292, 553, 446, + 554, 292, 857, 209, 858, 210, 1468, 1064, 1468, 509, + 1468, 1481, 1990, 1991, 1095, 453, 457, 1096, 1988, 1097, + 458, 1357, 1358, 1556, 857, 2212, 858, 465, 857, 824, + 858, 459, 460, 1533, 292, 824, 824, 1184, 1213, 509, + 1802, 1803, 463, 481, 292, 509, 509, 509, 857, 824, + 858, 1214, 824, 1536, 1261, 464, 824, 509, 1262, 509, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 1299, 1301, 482, 499, 498, 1704, 1705, 824, 500, + 1263, 1708, 1709, 347, 504, 1127, 292, 292, 292, 292, + 1131, 1374, 824, 1375, 1277, 1711, 526, 1357, 1358, 531, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 1157, 1162, 1164, 1170, 498, 1172, - 1741, 1181, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 1173, 1187, 1174, 1188, - 498, 1194, 1196, 1198, 1199, 1200, 1202, 1204, 1226, 1201, - 1250, 1252, 1997, 1203, 1746, 1205, 1212, 1263, 1219, 1220, - 1282, 1264, 292, 292, 1265, 522, 1275, 1266, 1279, 1227, - 522, 478, 478, 1278, 1281, 522, 1283, 1287, 1288, 510, - 510, 1318, 1320, 1323, 510, 510, 1228, 1784, 1328, 1329, - 522, 1331, 1332, 292, 1229, 1230, 1231, 1335, 510, 292, - 1232, 1233, 1234, 1235, 510, 1347, 1349, 1354, 292, 579, - 1371, 522, 1341, 1345, 1346, 1377, 1379, 1791, 292, 1794, - 1390, 1797, 522, 1391, 1414, 1415, 1416, 1419, 292, 1420, - 370, 1429, 1430, 292, 1431, 1830, 1432, 1433, 1435, 1810, - 1811, 1812, 1813, 1814, 1816, 7, 8, 1548, 510, 2070, - 1445, 1446, 1450, 1451, 1847, 1850, 1851, 1449, 1464, 1465, - 292, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 1227, 1466, 1467, 1468, 498, - 1469, 1470, 1471, 2236, 1472, 292, 1475, 1476, 1477, 1478, - 1481, 1479, 1228, 1480, 1482, 1487, 1492, 1493, 2110, 1512, - 1229, 1230, 1231, 1494, 1502, 1504, 1232, 1233, 1234, 1235, - 1507, 1509, 1495, 1511, 1497, 1513, 1546, 774, 24, 25, - 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, - 292, 1703, 1499, 37, 38, 39, 40, 1705, 41, 1519, - 1522, 1525, 292, 46, 778, 48, 1533, 1547, 50, 779, - 1560, 53, 54, 55, 1565, 292, 1567, 58, 1566, 1570, - 1575, 1577, 1578, 1580, 1581, 1582, 1576, 1586, 1589, 1590, - 1592, 71, 292, 1587, 1588, 509, 1594, 1595, 1596, 1931, - 1597, 1738, 1598, 1607, 1599, 347, 1600, 1601, 1602, 2237, - 1603, 1604, 1609, 1610, 292, 1618, 1620, 85, 86, 87, - 1625, 292, 292, 1626, 1635, 1636, 1637, 1643, 1644, 522, - 1652, 1657, 1658, 1651, 1659, 1660, 1666, 1674, 1679, 1680, - 292, 1667, 1668, 292, 1669, 1670, 1681, 478, 1671, 548, - 549, 550, 1676, 1685, 1692, 1706, 1653, 1753, 1691, 1709, - 292, 1712, 1717, 1718, 292, 1737, 1720, 579, 1723, 1724, + 494, 495, 496, 497, 546, 824, 509, 1297, 498, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 1503, 545, 292, 292, 498, 292, 571, + 292, 292, 1380, 292, 1381, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 824, 1546, 1401, 292, 824, 590, + 1402, 510, 591, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 1699, 824, 1700, + 1403, 498, 292, 824, 824, 1411, 1412, 393, 292, 292, + 824, 510, 1413, 1555, 824, 597, 1414, 510, 510, 510, + 824, 598, 1417, 522, 824, 824, 1418, 1441, 522, 510, + 1558, 510, 1559, 522, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 522, 824, + 599, 1560, 498, 608, 824, 370, 1561, 1552, 548, 549, + 550, 824, 824, 1562, 1563, 600, 1732, 579, 824, 522, + 1616, 292, 2028, 583, 824, 1746, 1631, 1747, 601, 1790, + 522, 1791, 611, 637, 292, 292, 292, 614, 510, 1231, + 824, 651, 1831, 594, 595, 596, 1881, 824, 1882, 1907, + 292, 615, 824, 1302, 1908, 1663, 1232, 1746, 1746, 1929, + 1978, 2007, 638, 2008, 1233, 1234, 1235, 626, 627, 1994, + 1236, 1237, 1238, 1239, 824, 2026, 2022, 2027, 814, 1746, + 2030, 2035, 628, 1308, 645, 646, 639, 509, 509, 1311, + 1312, 1313, 509, 509, 1533, 1536, 2037, 2038, 658, 659, + 640, 1317, 347, 1318, 641, 642, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 1746, 292, 2048, 824, 498, 2056, 643, 648, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 824, 399, 2074, 292, 498, 1706, 1881, 653, + 2134, 292, 1533, 2214, 2139, 1533, 1584, 2140, 654, 824, + 1362, 2160, 824, 660, 2161, 292, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 824, 824, 2162, 2163, 498, 824, 661, 2165, 292, 292, + 292, 2132, 662, 655, 292, 292, 656, 292, 1712, 292, + 1956, 292, 657, 292, 292, 292, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 664, 1746, 522, 2172, 498, + 824, 665, 2219, 292, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 823, 496, 497, 292, 510, + 510, 2220, 498, 2221, 510, 510, 292, 671, 1746, 292, + 2242, 2252, 672, 2253, 370, 579, 210, 677, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 678, 679, 509, 509, 498, 680, 682, 509, + 509, 698, 699, 702, 703, 706, 498, 770, 209, 1698, + 771, 863, 865, 509, 773, 820, 1712, 821, 842, 509, + 846, 1231, 850, 851, 852, 853, 856, 871, 873, 874, + 875, 884, 522, 901, 902, 919, 1710, 921, 1232, 891, + 923, 927, 928, 929, 960, 347, 1233, 1234, 1235, 1957, + 958, 961, 1236, 1237, 1238, 1239, 292, 963, 1725, 970, + 971, 979, 982, 522, 522, 991, 509, 995, 1231, 292, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 594, 595, 596, 1725, 498, 943, - 1726, 1758, 1742, 1743, 1747, 1985, 1748, 1988, 1749, 1991, - 1752, 1754, 1756, 862, 864, 1757, 1767, 1766, 1769, 1771, - 2001, 2002, 2003, 2004, 2005, 1772, 1773, 1774, 1775, 1227, - 1776, 1779, 292, 883, 522, 645, 646, 1792, 1795, 1798, - 1803, 890, 1807, 1808, 1696, 1817, 1228, 1821, 1835, 658, - 659, 292, 1838, 1831, 1229, 1230, 1231, 510, 1852, 1842, - 1232, 1233, 1234, 1235, 1853, 522, 522, 370, 1854, 1855, - 1856, 1867, 1858, 347, 1859, 1860, 2037, 1861, 1700, 1870, - 2041, 1874, 1875, 1880, 1882, 1893, 1892, 1898, 1899, 1911, - 1901, 1902, 1904, 2072, 1906, 1908, 1913, 1914, 1923, 1925, - 1930, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1952, - 212, 1958, 522, 522, 522, 1945, 1959, 1960, 1961, 292, - 292, 292, 292, 292, 1963, 1964, 1993, 1999, 2010, 2011, - 2012, 2019, 2016, 2018, 2039, 292, 522, 2042, 2089, 2044, - 2029, 2056, 2091, 2238, 2068, 2057, 2069, 2088, 2036, 2093, - 2040, 2095, 2060, 2098, 2099, 2102, 522, 2103, 2106, 2107, - 2111, 2120, 2142, 2136, 2156, 2138, 2140, 2170, 2116, 484, + 494, 495, 496, 497, 1008, 1232, 1009, 1040, 498, 1041, + 1754, 1042, 2010, 1233, 1234, 1235, 1045, 1061, 1047, 1236, + 1237, 1238, 1239, 1048, 1049, 1059, 1066, 1060, 1067, 1068, + 522, 522, 522, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 1069, 1070, 1075, + 1076, 498, 292, 292, 522, 2216, 1083, 1084, 1093, 1116, + 1123, 478, 478, 1126, 1128, 1130, 510, 510, 1134, 1137, + 1138, 510, 510, 1139, 522, 1141, 1142, 1797, 1143, 1231, + 1144, 1146, 1147, 292, 1148, 510, 1149, 1150, 1151, 292, + 1152, 510, 1153, 1154, 1155, 1156, 1232, 1160, 292, 1161, + 1166, 1168, 2218, 1231, 1233, 1234, 1235, 1174, 292, 2083, + 1236, 1237, 1238, 1239, 1176, 1177, 1231, 370, 292, 1178, + 1232, 1185, 1191, 292, 1192, 1843, 1198, 1200, 1233, 1234, + 1235, 1202, 1203, 1232, 1236, 1237, 1238, 1239, 510, 1205, + 1216, 1233, 1234, 1235, 1860, 1863, 1864, 1236, 1237, 1238, + 1239, 1204, 1207, 292, 1206, 1208, 1223, 1230, 2123, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 2153, 2155, 2157, 2173, 498, 2176, 2179, - 2180, 2181, 2182, 2184, 2185, 2190, 2211, 2154, 1820, 2189, - 2218, 2220, 2200, 2202, 2222, 2224, 2226, 2241, 292, 2204, - 2209, 389, 2242, 2243, 509, 2244, 2245, 2246, 2248, 1569, - 2074, 1584, 1955, 113, 1768, 2073, 123, 124, 125, 903, - 1719, 818, 1979, 0, 0, 0, 2167, 2168, 0, 0, - 0, 0, 0, 0, 0, 0, 292, 484, 485, 486, + 495, 496, 497, 1209, 1254, 1256, 1224, 498, 292, 1267, + 1268, 1269, 522, 1279, 1270, 1285, 522, 1286, 1287, 1282, + 1283, 1291, 1292, 2249, 1322, 1324, 1327, 1332, 891, 1136, + 1333, 1354, 1335, 1339, 1345, 1336, 1346, 1713, 1347, 1356, + 1348, 1352, 1353, 1715, 1361, 1378, 1384, 2250, 1386, 1397, + 1398, 1421, 1422, 292, 1423, 1426, 1452, 1427, 1436, 1437, + 2251, 1438, 1439, 1440, 522, 292, 522, 1833, 1442, 522, + 1453, 1457, 1456, 1458, 1471, 1472, 1482, 1473, 292, 1474, + 1475, 1476, 522, 1477, 522, 1478, 522, 1479, 522, 1483, + 1751, 1484, 1485, 1488, 522, 292, 1487, 1486, 509, 522, + 1489, 1494, 1944, 1499, 1500, 1501, 1506, 1502, 347, 1504, + 1509, 1511, 1514, 1516, 1518, 1519, 1520, 292, 1577, 1529, + 1526, 1554, 1580, 1540, 292, 292, 1532, 1553, 1570, 1576, + 1586, 522, 322, 324, 1870, 330, 1587, 1575, 1588, 1596, + 1590, 1585, 1599, 292, 1592, 1600, 292, 1602, 1605, 1591, + 478, 1606, 1607, 1608, 1597, 1598, 1604, 1609, 1610, 1611, + 1612, 1613, 1614, 292, 1617, 1619, 1620, 292, 1628, 1630, + 1635, 1636, 1645, 1646, 1647, 1653, 1654, 1661, 133, 388, + 1662, 1676, 1667, 1668, 136, 137, 138, 1669, 1670, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 1684, 1689, 1677, 1678, 1679, 1680, 1681, 1686, + 1690, 1691, 1695, 1701, 1702, 292, 1716, 1719, 171, 172, + 173, 174, 1722, 1727, 212, 1728, 179, 1755, 1730, 1733, + 1734, 1735, 522, 1736, 292, 1750, 1756, 184, 185, 186, + 510, 1760, 1761, 1762, 1765, 187, 1766, 1767, 1769, 1871, + 370, 1770, 1780, 1771, 1782, 1779, 347, 1784, 1785, 1786, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 1787, 1788, 2085, 1789, 498, 1792, + 1805, 1808, 1910, 1811, 522, 522, 522, 522, 1820, 1821, + 1830, 1834, 1816, 1848, 1851, 1865, 1855, 1866, 1867, 1844, + 1868, 1869, 292, 292, 292, 292, 292, 1872, 1874, 1880, + 1873, 1942, 1883, 1895, 1926, 1887, 1888, 1893, 292, 1905, + 1906, 1911, 1914, 1912, 1924, 389, 1917, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 522, 509, 498, 509, 522, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 890, - 1132, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 0, 509, 0, 0, 498, - 0, 0, 0, 0, 0, 0, 466, 467, 468, 470, - 472, 0, 0, 0, 0, 522, 0, 522, 0, 0, - 522, 0, 0, 505, 0, 0, 0, 512, 0, 0, - 0, 0, 0, 522, 0, 522, 0, 522, 0, 522, - 0, 519, 521, 524, 525, 522, 527, 521, 529, 530, - 522, 532, 521, 534, 535, 536, 537, 538, 539, 1857, - 541, 542, 543, 0, 0, 0, 510, 521, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 522, 0, 0, 0, 578, 580, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 588, 521, - 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 610, 510, 0, 510, 498, - 0, 0, 0, 0, 619, 620, 0, 0, 0, 0, - 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 644, 0, 0, 0, 0, 510, 484, + 497, 1915, 1919, 1921, 1927, 498, 1936, 1938, 1943, 1945, + 1946, 1947, 190, 1948, 1949, 522, 194, 1950, 583, 1951, + 1952, 195, 196, 197, 198, 199, 1965, 1971, 1958, 108, + 1972, 1973, 1974, 1976, 1977, 2006, 2012, 2023, 616, 617, + 2167, 2024, 2025, 202, 203, 2029, 625, 522, 204, 2031, + 633, 292, 2052, 360, 2032, 2042, 2049, 509, 208, 2053, + 609, 2055, 2069, 2070, 2057, 2073, 2081, 2082, 2086, 2101, + 2106, 2108, 2111, 2112, 2115, 2116, 2119, 2120, 2124, 2133, + 466, 467, 468, 470, 472, 2149, 2155, 2151, 2153, 292, + 2166, 2168, 2169, 2183, 2170, 2186, 2189, 505, 2192, 2193, + 2194, 512, 2195, 2197, 2198, 2202, 2203, 509, 2213, 509, + 2215, 2224, 2231, 2233, 2217, 519, 521, 524, 525, 2235, + 527, 521, 529, 530, 2237, 532, 521, 534, 535, 536, + 537, 538, 539, 2239, 541, 542, 543, 2254, 2255, 509, + 2256, 521, 2222, 2257, 2258, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 2259, + 578, 580, 521, 498, 2261, 1579, 819, 2087, 1594, 1968, + 1781, 113, 588, 521, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 123, 610, + 124, 125, 498, 904, 1992, 1729, 0, 0, 619, 620, + 0, 0, 0, 0, 0, 0, 0, 620, 523, 510, + 0, 0, 0, 528, 0, 0, 0, 644, 533, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 663, 0, 0, 498, 666, 667, - 668, 0, 670, 0, 0, 686, 673, 674, 675, 0, - 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 522, 0, 0, 690, 0, 0, 2187, - 0, 695, 697, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 0, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 0, 0, 0, 0, 0, 522, 522, 522, 522, 2225, - 0, 2228, 0, 742, 0, 0, 0, 0, 0, 748, - 0, 750, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 2247, 0, 0, 0, 781, 521, 0, 783, 784, - 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, - 795, 796, 797, 0, 0, 799, 800, 0, 0, 0, - 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 578, 0, 0, 0, 0, 0, - 827, 0, 0, 0, 0, 832, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 522, 0, 0, 1897, 846, - 847, 0, 0, 0, 0, 0, 853, 854, 0, 0, - 861, 861, 866, 867, 0, 869, 0, 0, 871, 0, + 584, 496, 497, 547, 0, 0, 0, 498, 663, 0, + 0, 0, 666, 667, 668, 0, 670, 0, 0, 0, + 673, 674, 675, 0, 0, 676, 0, 0, 0, 510, + 0, 510, 0, 0, 0, 589, 0, 0, 0, 0, + 690, 0, 0, 0, 0, 695, 697, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, + 705, 510, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 0, 742, 0, 0, + 498, 2200, 0, 748, 0, 750, 0, 522, 0, 0, + 0, 0, 935, 936, 0, 0, 0, 0, 0, 0, + 617, 0, 0, 0, 0, 0, 0, 0, 0, 782, + 521, 0, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 0, 0, 800, + 801, 2238, 0, 2241, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 578, 0, + 0, 0, 498, 0, 828, 0, 0, 0, 0, 833, + 0, 1098, 0, 2260, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 847, 848, 0, 2080, 0, 0, 0, + 854, 855, 0, 0, 862, 862, 867, 868, 0, 870, + 0, 0, 872, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 783, 0, 862, 521, 0, 0, 0, 0, + 0, 888, 890, 892, 893, 0, 0, 0, 898, 899, + 900, 0, 0, 0, 0, 905, 907, 910, 913, 916, + 918, 0, 920, 0, 922, 0, 521, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 861, 521, 1417, 0, 0, 0, 0, 887, 889, 891, - 892, 0, 0, 0, 897, 898, 899, 0, 0, 0, - 0, 904, 906, 909, 912, 915, 917, 0, 919, 0, - 921, 0, 521, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 939, 940, 941, 466, 467, 942, 0, 0, 0, 947, - 948, 949, 950, 951, 952, 953, 954, 955, 0, 0, - 0, 0, 961, 0, 963, 964, 0, 0, 0, 521, - 521, 521, 0, 0, 971, 972, 973, 0, 0, 484, + 522, 522, 0, 0, 940, 941, 942, 466, 467, 943, + 0, 0, 0, 948, 949, 950, 951, 952, 953, 954, + 955, 956, 0, 0, 0, 0, 962, 0, 964, 965, + 0, 0, 0, 521, 521, 521, 0, 522, 972, 973, + 974, 0, 0, 0, 506, 135, 0, 885, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, + 0, 0, 854, 855, 0, 892, 893, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1006, 521, 924, 925, + 0, 1010, 0, 0, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 0, 0, 0, 0, 175, 176, 177, + 178, 0, 0, 0, 0, 180, 181, 182, 0, 0, + 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 188, 0, 0, 0, 967, 968, 969, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 521, 0, 0, 0, 498, 853, 854, - 0, 891, 892, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1005, 521, 0, 0, 0, 1009, 0, 0, - 0, 0, 0, 0, 0, 133, 388, 0, 0, 0, - 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, - 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 171, 172, 173, 174, 498, - 0, 0, 1081, 179, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, - 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1929, 1110, 1111, 0, 0, - 521, 1117, 1118, 0, 521, 1121, 0, 0, 0, 0, - 0, 0, 0, 1128, 0, 0, 889, 1131, 0, 0, - 0, 0, 522, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 0, 0, 1153, - 0, 498, 0, 0, 0, 0, 0, 0, 1787, 0, - 1788, 0, 521, 0, 521, 0, 0, 521, 0, 0, + 495, 496, 497, 0, 0, 0, 1082, 498, 0, 987, + 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, + 1226, 0, 0, 0, 0, 0, 0, 1242, 0, 1007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 521, 0, 521, 0, 521, 0, 521, 0, 0, 0, - 0, 0, 521, 0, 0, 0, 0, 521, 2067, 190, - 0, 0, 0, 194, 1192, 0, 0, 0, 195, 196, - 197, 198, 199, 0, 0, 0, 108, 0, 0, 2143, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, - 202, 203, 0, 0, 0, 204, 1217, 1218, 0, 0, - 360, 0, 1221, 2015, 583, 208, 0, 609, 0, 0, + 0, 1114, 1115, 579, 0, 521, 1121, 1122, 0, 521, + 1125, 0, 0, 0, 0, 0, 522, 0, 1132, 0, + 1424, 890, 1135, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1955, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1157, 0, 0, 0, 191, 192, + 193, 0, 0, 0, 0, 0, 0, 521, 0, 521, + 0, 200, 521, 201, 108, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 521, 0, 521, 0, 521, + 0, 521, 0, 0, 522, 0, 0, 521, 0, 857, + 0, 858, 521, 0, 0, 0, 0, 1120, 0, 1196, + 0, 1124, 0, 0, 0, 522, 0, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 7, 8, 521, 498, 0, 0, 0, 0, + 0, 1221, 1222, 0, 0, 0, 0, 1225, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1164, + 0, 1165, 0, 0, 1167, 0, 1255, 0, 0, 1257, + 0, 0, 0, 0, 0, 0, 0, 1179, 0, 1180, + 0, 1181, 0, 1182, 0, 1373, 0, 0, 1271, 1187, + 1273, 1274, 0, 0, 1190, 0, 0, 0, 0, 0, + 0, 1281, 0, 0, 774, 24, 25, 775, 27, 28, + 776, 30, 777, 32, 33, 34, 35, 0, 290, 0, + 37, 38, 39, 0, 0, 41, 1215, 0, 0, 0, + 0, 778, 48, 1303, 0, 50, 779, 0, 53, 54, + 780, 1304, 1305, 1306, 58, 521, 0, 0, 0, 0, + 0, 7, 8, 1309, 0, 0, 0, 0, 71, 0, + 522, 522, 522, 522, 522, 0, 0, 1316, 0, 0, + 0, 0, 1319, 0, 0, 0, 0, 0, 1449, 1450, + 1451, 1323, 0, 0, 85, 86, 87, 1331, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 521, 521, 521, + 521, 1344, 0, 0, 0, 0, 0, 0, 1350, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2156, 0, + 0, 0, 0, 774, 24, 25, 775, 27, 28, 776, + 30, 777, 32, 33, 34, 35, 0, 1307, 0, 37, + 38, 39, 0, 0, 41, 0, 0, 0, 0, 522, + 778, 48, 0, 0, 50, 779, 944, 53, 54, 780, + 0, 0, 0, 58, 0, 0, 0, 0, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 1404, 1405, + 0, 1406, 1407, 0, 1408, 1409, 1410, 0, 0, 1340, + 1341, 1342, 1343, 0, 1416, 0, 0, 0, 0, 0, + 521, 0, 0, 85, 86, 87, 0, 0, 0, 0, + 0, 1429, 0, 1431, 0, 1433, 0, 1435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1251, 0, 0, 1253, 0, 0, 0, 0, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 1267, 0, 1269, 1270, 498, 0, 0, - 0, 0, 522, 522, 0, 925, 1277, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 290, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1299, 522, - 0, 0, 0, 0, 0, 0, 1300, 1301, 1302, 0, - 521, 0, 0, 0, 0, 0, 0, 0, 1305, 0, + 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1455, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1312, 0, 523, 0, 0, 1315, 0, 528, - 0, 0, 0, 2119, 533, 0, 1319, 0, 0, 0, - 0, 0, 1327, 0, 0, 0, 0, 0, 0, 547, - 0, 0, 521, 521, 521, 521, 1340, 0, 0, 0, - 1343, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1399, 0, 0, 0, 0, 0, 0, 0, 0, 593, + 0, 0, 0, 0, 1490, 966, 0, 0, 603, 605, + 607, 0, 0, 0, 612, 0, 0, 0, 0, 0, + 0, 0, 1420, 0, 0, 0, 0, 1510, 0, 0, + 0, 0, 1515, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 647, 0, 7, 8, 0, 0, 0, + 1672, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 589, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 822, 496, 497, 0, - 521, 0, 0, 498, 0, 0, 0, 0, 583, 0, - 1397, 1398, 579, 1399, 1400, 0, 1401, 1402, 1403, 0, - 0, 0, 0, 0, 0, 522, 1409, 0, 0, 0, - 0, 0, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1942, 1422, 0, 1424, 0, 1426, 0, 1428, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 544, + 0, 0, 583, 0, 1557, 0, 0, 0, 0, 0, + 0, 0, 0, 1565, 1566, 1567, 1568, 0, 0, 0, + 1571, 1572, 983, 0, 0, 0, 692, 693, 0, 0, + 0, 0, 0, 0, 0, 1581, 1583, 0, 0, 701, + 0, 0, 0, 1100, 0, 0, 0, 774, 24, 25, + 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, + 0, 0, 0, 37, 38, 39, 0, 0, 41, 0, + 0, 0, 0, 0, 778, 48, 0, 739, 50, 779, + 0, 53, 54, 780, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1448, 0, 0, 0, 0, 0, 290, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 522, 0, 0, 0, 0, 593, 0, - 0, 0, 0, 0, 0, 0, 1483, 603, 605, 607, - 0, 0, 0, 612, 522, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 1503, - 0, 0, 0, 498, 1508, 0, 0, 0, 0, 0, - 0, 0, 647, 0, 0, 0, 0, 0, 782, 583, - 0, 0, 774, 24, 25, 775, 27, 28, 776, 30, - 777, 32, 33, 34, 35, 0, 0, 0, 37, 38, - 39, 40, 982, 41, 0, 0, 1550, 0, 46, 778, - 48, 0, 0, 50, 779, 1558, 53, 54, 55, 1561, - 1562, 0, 58, 0, 0, 692, 693, 0, 0, 0, - 0, 0, 0, 0, 1571, 1573, 71, 0, 701, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 584, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 0, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 884, 0, 0, 739, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, - 522, 522, 522, 522, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 923, 924, 0, 0, 0, 0, - 0, 1640, 1641, 1642, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1654, 0, 1656, 1096, 0, 0, 0, - 0, 0, 0, 0, 965, 0, 1661, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, - 0, 966, 967, 968, 1677, 0, 0, 0, 0, 0, - 0, 0, 1682, 1683, 1684, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 986, 0, 0, 522, 0, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 822, 496, 497, 1704, 1006, 0, 0, 498, 0, - 0, 593, 0, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 0, 1716, 0, - 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1730, 0, 0, 0, 0, 1736, + 0, 71, 0, 1759, 0, 0, 0, 0, 0, 0, + 0, 0, 1650, 1651, 1652, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1664, 0, 1666, 85, 86, 87, + 1186, 0, 0, 0, 0, 0, 0, 1671, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 521, 0, 0, 0, 0, 1687, 0, 0, 0, 0, + 0, 0, 0, 1692, 1693, 1694, 1804, 1496, 1807, 0, + 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1823, 1824, + 1825, 1826, 1827, 1829, 0, 1714, 0, 0, 0, 988, + 0, 0, 593, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 823, 496, 497, 0, 0, 1726, + 0, 498, 0, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 1743, 0, + 0, 498, 1685, 1749, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 1757, 1758, + 0, 0, 498, 0, 0, 1763, 1764, 0, 0, 0, + 0, 0, 1768, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1772, + 1773, 1774, 1775, 1776, 1777, 1778, 0, 0, 0, 0, + 0, 0, 0, 1783, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 521, 521, 1795, 0, 1796, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813, + 1814, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, + 521, 0, 0, 0, 1832, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1842, 0, 0, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 0, 0, 1862, 498, 0, 0, 0, + 0, 0, 1071, 0, 0, 0, 1077, 0, 0, 0, + 0, 0, 0, 0, 0, 1793, 1794, 0, 378, 135, + 0, 0, 1877, 1878, 0, 0, 0, 0, 0, 0, + 1884, 0, 0, 0, 0, 0, 0, 1998, 0, 2001, + 0, 2004, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2014, 2015, 2016, 2017, 2018, 1904, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 0, 0, 0, + 0, 175, 176, 177, 178, 0, 0, 0, 1913, 180, + 181, 182, 0, 0, 183, 0, 506, 135, 0, 0, + 0, 0, 0, 0, 0, 188, 0, 1928, 0, 0, + 0, 0, 0, 0, 0, 0, 578, 0, 2050, 0, + 0, 0, 2054, 0, 1939, 0, 1940, 0, 0, 521, + 0, 0, 0, 0, 0, 0, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 0, 1954, 0, 0, 175, + 176, 177, 178, 1197, 0, 0, 0, 180, 181, 182, + 0, 0, 183, 0, 1960, 0, 0, 0, 0, 1964, + 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, + 2102, 1975, 0, 0, 2104, 0, 0, 1979, 1980, 1981, + 1982, 1983, 0, 0, 0, 0, 0, 521, 0, 0, + 0, 0, 0, 0, 1997, 0, 2000, 0, 2003, 0, + 2129, 0, 191, 192, 193, 0, 0, 0, 521, 0, + 0, 1941, 0, 0, 0, 200, 2019, 201, 108, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 1744, 1745, 0, 0, 498, 0, - 0, 1750, 1751, 0, 0, 1823, 0, 1824, 1755, 0, + 494, 495, 496, 497, 0, 0, 0, 1284, 498, 2033, + 2034, 1288, 0, 0, 2036, 1293, 0, 1159, 0, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 0, 0, 0, 0, 498, 2180, 2181, + 191, 192, 193, 2058, 1800, 0, 1801, 0, 0, 1993, + 0, 0, 0, 200, 0, 201, 108, 0, 1310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1759, 1760, 1761, 1762, 1763, - 1764, 1765, 0, 0, 0, 0, 0, 0, 0, 1770, - 0, 0, 1116, 0, 0, 0, 1120, 0, 0, 521, - 521, 1782, 0, 1783, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1800, 1801, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 521, 0, 0, 0, - 1819, 0, 0, 0, 1160, 0, 1161, 0, 0, 1163, - 0, 1829, 0, 0, 0, 0, 0, 0, 0, 7, - 8, 0, 1175, 0, 1176, 0, 1177, 0, 1178, 0, - 0, 1849, 0, 0, 1183, 0, 0, 0, 0, 1186, - 0, 1070, 0, 0, 0, 1076, 0, 0, 0, 1182, - 0, 0, 0, 0, 0, 1864, 1865, 0, 0, 0, - 0, 0, 0, 1871, 0, 0, 0, 0, 0, 0, - 0, 1211, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1489, 0, 0, 0, 0, 0, - 1891, 774, 24, 25, 775, 27, 28, 776, 30, 777, - 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, - 40, 1900, 41, 0, 0, 0, 0, 46, 778, 48, - 0, 0, 50, 779, 0, 53, 54, 55, 0, 0, - 1915, 58, 0, 0, 0, 0, 0, 0, 0, 578, - 0, 0, 0, 0, 0, 71, 0, 1926, 0, 1927, - 0, 0, 521, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1941, - 0, 85, 86, 87, 0, 0, 0, 0, 0, 0, - 0, 1193, 1303, 0, 0, 0, 0, 1947, 0, 0, - 0, 0, 1951, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1962, 0, 0, 0, 0, 0, - 1966, 1967, 1968, 1969, 1970, 0, 0, 0, 0, 0, - 521, 0, 0, 0, 0, 0, 0, 1984, 0, 1987, - 0, 1990, 0, 0, 1336, 1337, 1338, 1339, 0, 0, - 0, 521, 0, 987, 0, 0, 0, 0, 0, 2006, + 2013, 0, 0, 0, 2084, 0, 0, 0, 0, 0, + 1749, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2095, 2096, 2097, 2098, 2099, 2100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2110, 0, + 0, 2114, 0, 0, 2118, 0, 0, 0, 2121, 0, + 0, 0, 0, 521, 521, 521, 521, 521, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2136, 0, 0, + 2138, 0, 0, 0, 0, 0, 0, 0, 0, 1376, + 1377, 0, 1379, 0, 1382, 1383, 0, 1385, 0, 1387, + 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 2020, 2021, 0, 1280, 0, 2023, 0, 1284, - 0, 0, 0, 1289, 0, 484, 485, 486, 487, 488, + 494, 495, 496, 497, 0, 0, 0, 0, 498, 2174, + 2175, 2176, 2177, 2178, 2179, 1836, 1415, 1837, 0, 0, + 0, 0, 1419, 895, 0, 0, 0, 0, 0, 0, + 0, 0, 521, 0, 0, 2125, 2126, 2127, 2128, 2130, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, + 135, 0, 0, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 1392, 498, 0, 0, 2045, 0, 0, 0, - 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 0, 1306, 0, 0, 498, - 0, 0, 0, 0, 1413, 0, 1982, 2071, 1983, 0, - 0, 0, 0, 1736, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2082, 2083, 2084, 2085, 2086, 2087, 0, + 0, 0, 0, 498, 2225, 2226, 2227, 2228, 2229, 2230, + 1995, 0, 1996, 0, 0, 1480, 0, 0, 0, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 1491, 1492, + 1493, 0, 175, 176, 177, 178, 0, 0, 0, 0, + 180, 181, 182, 0, 1505, 183, 0, 0, 0, 0, + 0, 0, 0, 0, 2196, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2097, 0, 0, 2101, 0, 0, 2105, 0, 0, - 0, 2108, 0, 0, 0, 0, 521, 521, 521, 521, - 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2123, 0, 0, 2125, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1369, 1370, 0, 1372, 0, 1375, - 1376, 0, 1378, 0, 1380, 1381, 1382, 1383, 1384, 1385, - 1386, 1387, 1388, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 894, 0, 378, - 135, 498, 2161, 2162, 2163, 2164, 2165, 2166, 0, 0, - 1094, 1408, 0, 0, 0, 0, 0, 1412, 0, 0, - 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 0, 0, - 0, 0, 175, 176, 177, 178, 0, 0, 0, 0, - 180, 181, 182, 0, 0, 183, 0, 2212, 2213, 2214, - 2215, 2216, 2217, 0, 0, 0, 188, 0, 0, 0, - 1473, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1484, 1485, 1486, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1498, - 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 0, 1025, - 1026, 1027, 1028, 1029, 1030, 1031, 0, 0, 0, 1035, - 1037, 1038, 0, 0, 0, 1042, 1043, 0, 1045, 0, - 0, 0, 0, 1050, 1051, 1052, 0, 1054, 0, 0, - 0, 0, 0, 0, 1062, 1064, 0, 0, 0, 0, - 0, 1675, 0, 0, 0, 0, 0, 1564, 0, 0, - 0, 0, 1087, 191, 192, 193, 235, 236, 0, 0, - 0, 0, 0, 0, 0, 0, 200, 0, 201, 108, - 0, 1585, 0, 0, 0, 0, 0, 1591, 0, 0, + 0, 0, 0, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 1024, 0, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 0, 0, 0, 1036, 1038, 1039, 0, 0, + 0, 1043, 1044, 0, 1046, 0, 0, 0, 0, 1051, + 1052, 1053, 0, 1055, 0, 1574, 0, 0, 0, 0, + 1063, 1065, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 235, 236, 0, 0, 0, 0, 1088, 1595, + 0, 0, 0, 0, 0, 1601, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1615, + 0, 0, 0, 191, 192, 193, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 200, 0, 201, 0, + 0, 0, 1632, 1633, 1634, 0, 0, 0, 1637, 1638, + 0, 1639, 0, 1640, 0, 1641, 0, 1642, 1643, 1644, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 0, 0, 0, 1665, 498, 0, + 0, 0, 0, 0, 0, 0, 0, 1175, 0, 0, + 0, 0, 1675, 0, 0, 1172, 0, 0, 0, 0, + 1683, 0, 400, 0, 0, 0, 0, 0, 0, 0, + 1183, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 0, 0, 0, 442, + 443, 444, 445, 0, 447, 448, 449, 450, 451, 452, + 0, 0, 454, 0, 0, 133, 388, 0, 455, 456, + 0, 136, 137, 138, 461, 462, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, + 1741, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1753, 0, 171, 172, 173, 174, 0, + 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 0, 0, 555, + 0, 558, 559, 560, 561, 0, 0, 0, 0, 0, + 0, 0, 576, 0, 0, 0, 0, 0, 133, 388, + 0, 0, 0, 587, 136, 137, 138, 0, 0, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 0, 0, 0, 0, 0, 1574, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, + 173, 174, 1835, 0, 0, 0, 179, 0, 0, 0, + 0, 0, 1847, 7, 8, 1349, 0, 184, 185, 186, + 0, 0, 1854, 0, 0, 187, 0, 1859, 0, 190, + 0, 0, 0, 194, 0, 0, 0, 0, 195, 196, + 197, 198, 199, 0, 0, 0, 108, 0, 1371, 1372, + 0, 0, 0, 0, 0, 0, 0, 1879, 0, 0, + 629, 630, 0, 0, 0, 204, 0, 0, 0, 0, + 631, 0, 0, 0, 0, 208, 0, 321, 0, 0, + 0, 0, 1574, 0, 0, 774, 24, 25, 775, 27, + 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, + 0, 37, 38, 39, 0, 0, 41, 0, 0, 0, + 0, 0, 778, 48, 0, 0, 50, 779, 0, 53, + 54, 780, 0, 0, 0, 58, 0, 1925, 0, 0, + 0, 0, 190, 0, 0, 0, 194, 772, 0, 71, + 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1605, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 1622, 1623, 1624, 0, 0, 1155, - 1627, 1628, 0, 1629, 0, 1630, 0, 1631, 0, 1632, - 1633, 1634, 0, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 0, 1168, 1655, - 0, 498, 0, 0, 0, 0, 0, 0, 7, 8, - 1171, 0, 0, 1179, 1665, 0, 400, 0, 0, 0, - 0, 0, 1673, 0, 0, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 0, 1780, 1781, 442, 443, 444, 445, 0, 447, 448, - 449, 450, 451, 452, 0, 0, 454, 0, 0, 0, - 0, 0, 455, 456, 0, 0, 0, 0, 461, 462, - 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, - 33, 34, 35, 0, 0, 0, 37, 38, 39, 40, - 0, 41, 0, 0, 0, 0, 46, 778, 48, 1728, - 0, 50, 779, 0, 53, 54, 55, 0, 0, 0, - 58, 0, 1740, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 555, 498, 558, 559, 560, 561, 0, - 85, 86, 87, 1242, 0, 0, 576, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 587, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 0, 1292, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1564, 0, 0, 0, - 0, 0, 0, 0, 0, 1342, 0, 0, 0, 0, - 0, 1822, 988, 0, 0, 0, 0, 0, 0, 0, - 0, 1834, 0, 0, 1928, 0, 0, 0, 0, 0, - 0, 1841, 0, 0, 0, 0, 1846, 0, 1364, 1365, + 0, 0, 0, 202, 203, 85, 86, 87, 204, 0, + 0, 0, 0, 360, 469, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 133, 134, 135, 0, 0, 0, 136, - 137, 138, 0, 1866, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 0, 1564, 0, - 0, 0, 1980, 0, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 135, 2000, 0, 180, 181, 182, 0, 0, - 183, 0, 184, 185, 186, 0, 0, 0, 0, 0, - 187, 188, 0, 1912, 0, 0, 0, 0, 0, 0, - 0, 772, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 0, 0, 0, 0, 175, 176, 177, 178, 0, 0, - 0, 0, 180, 181, 182, 0, 0, 183, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, - 0, 0, 0, 0, 0, 0, 0, 1564, 0, 0, - 0, 0, 0, 1510, 1956, 1957, 0, 0, 0, 1514, - 1515, 1516, 1517, 1518, 0, 1521, 0, 1523, 1524, 0, - 1527, 1530, 0, 1564, 1534, 1535, 1536, 0, 0, 0, - 189, 1540, 0, 0, 0, 0, 0, 190, 191, 192, - 193, 194, 0, 1996, 0, 0, 195, 196, 197, 198, - 199, 200, 0, 201, 108, 0, 0, 0, 2112, 2113, - 2114, 2115, 2117, 0, 0, 0, 0, 0, 202, 203, - 0, 0, 0, 204, 0, 0, 0, 0, 205, 0, - 206, 0, 207, 208, 0, 209, 0, 210, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 0, 0, - 0, 0, 0, 0, 1608, 2038, 0, 0, 200, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1619, 0, 0, 2055, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 0, 0, 2183, 133, 268, - 0, 0, 1440, 0, 136, 137, 138, 0, 0, 139, + 0, 1574, 0, 0, 0, 0, 0, 0, 1969, 1970, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1517, 0, 0, 0, 1574, 0, 1521, + 1522, 1523, 1524, 1525, 0, 1528, 0, 1530, 1531, 0, + 1534, 1537, 0, 0, 1541, 1542, 1543, 2009, 133, 388, + 0, 1547, 0, 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, - 173, 174, 0, 0, 0, 0, 179, 0, 1564, 0, - 1693, 0, 0, 0, 0, 1697, 0, 184, 185, 186, - 0, 0, 7, 8, 0, 187, 0, 0, 0, 274, - 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, - 0, 0, 0, 0, 36, 0, 0, 1710, 1711, 0, - 0, 1713, 1714, 0, 0, 0, 278, 0, 49, 0, - 0, 279, 0, 0, 280, 0, 0, 0, 0, 0, - 0, 60, 61, 62, 63, 64, 0, 0, 66, 67, - 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, - 0, 0, 0, 0, 774, 24, 25, 775, 27, 28, - 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, - 37, 38, 39, 40, 0, 41, 0, 0, 0, 1564, - 46, 778, 48, 0, 0, 50, 779, 0, 53, 54, - 55, 0, 190, 0, 58, 0, 194, 281, 0, 0, - 0, 195, 196, 197, 198, 199, 0, 0, 71, 108, - 0, 0, 992, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 629, 1815, 0, 0, 0, 204, 0, - 0, 0, 0, 631, 85, 86, 87, 0, 208, 0, - 321, 581, 0, 484, 485, 486, 487, 488, 489, 490, + 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, + 173, 174, 498, 0, 0, 0, 179, 0, 0, 2051, + 0, 1246, 0, 0, 0, 0, 0, 184, 185, 186, + 0, 0, 0, 0, 0, 187, 0, 1618, 2068, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 133, 134, 135, 0, 1629, 0, 136, 137, 138, 0, + 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 0, 0, 0, 0, 0, 0, + 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 0, + 0, 0, 180, 181, 182, 0, 0, 183, 0, 184, + 185, 186, 1574, 0, 0, 0, 0, 187, 188, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 190, 1703, 0, 0, 194, 0, 1707, 0, + 135, 195, 196, 197, 198, 199, 0, 0, 0, 108, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 203, 0, 0, 0, 204, 0, + 1720, 1721, 0, 360, 1723, 1724, 471, 0, 208, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 0, + 0, 0, 175, 176, 177, 178, 0, 0, 0, 0, + 180, 181, 182, 0, 0, 183, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 189, 0, 0, + 0, 0, 0, 1574, 190, 191, 192, 193, 194, 0, + 0, 0, 0, 195, 196, 197, 198, 199, 200, 0, + 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 202, 203, 0, 0, 0, + 204, 0, 0, 0, 0, 205, 0, 206, 0, 207, + 208, 0, 209, 0, 210, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, + 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, + 0, 0, 1296, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 0, 1836, 1837, 0, 0, 1839, 1840, - 1785, 0, 0, 0, 1843, 1844, 0, 0, 0, 0, - 0, 0, 133, 268, 0, 0, 0, 0, 136, 137, + 0, 498, 0, 191, 192, 193, 0, 0, 0, 686, + 1849, 1850, 0, 0, 1852, 1853, 200, 0, 201, 0, + 1856, 1857, 133, 268, 0, 0, 0, 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, - 273, 0, 0, 0, 0, 0, 0, 0, 0, 1884, - 1885, 0, 171, 172, 173, 174, 0, 0, 0, 0, + 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 171, 172, 173, 174, 0, 0, 1897, 1898, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 7, 8, 0, 187, 0, 0, 0, 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, 0, 36, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 278, 0, 49, 1316, 1317, 279, 0, 0, 280, 1321, - 1322, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 1320, 1321, 0, 0, 0, 0, 1325, 1326, 0, 0, + 278, 0, 49, 0, 0, 279, 0, 0, 280, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, 0, 0, 66, 67, 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 0, 0, 0, 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, - 35, 0, 0, 0, 37, 38, 39, 40, 0, 41, - 0, 0, 0, 0, 46, 778, 48, 0, 0, 50, - 779, 0, 53, 54, 55, 0, 190, 0, 58, 0, + 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, + 0, 0, 0, 0, 0, 778, 48, 0, 0, 50, + 779, 0, 53, 54, 780, 0, 190, 0, 58, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 71, 108, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 202, 520, 0, - 0, 0, 204, 0, 0, 0, 0, 360, 85, 86, - 87, 0, 208, 0, 0, 581, 0, 0, 0, 0, - 0, 0, 133, 268, 135, 0, 0, 0, 136, 137, - 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, - 273, 0, 0, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 0, 0, 0, 180, 181, 182, 0, 0, 183, - 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, - 188, 0, 0, 274, 0, 0, 275, 1500, 1501, 276, - 0, 277, 1505, 1506, 0, 0, 0, 0, 36, 0, - 0, 0, 0, 0, 506, 135, 0, 0, 0, 0, - 278, 0, 49, 0, 0, 279, 0, 0, 280, 0, - 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, - 0, 0, 66, 67, 68, 69, 70, 0, 0, 0, - 74, 0, 0, 77, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 0, 0, 0, 0, 175, 176, 177, - 178, 0, 0, 0, 0, 180, 181, 182, 0, 0, - 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 0, 0, 0, 0, 190, 191, 192, 193, - 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, - 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, - 0, 0, 2192, 0, 0, 0, 0, 202, 282, 0, - 0, 0, 204, 0, 0, 0, 0, 360, 0, 133, - 268, 135, 208, 0, 284, 136, 137, 138, 0, 0, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 191, 192, - 193, 180, 181, 182, 0, 0, 183, 0, 184, 185, - 186, 200, 0, 201, 108, 0, 187, 188, 0, 0, - 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, - 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, - 0, 382, 135, 0, 0, 0, 0, 278, 0, 49, - 0, 0, 279, 0, 0, 280, 0, 0, 0, 0, - 0, 0, 60, 61, 62, 63, 64, 0, 0, 66, - 67, 68, 69, 70, 0, 0, 0, 74, 0, 0, - 77, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 0, 0, 0, 0, 175, 176, 177, 178, 0, 0, - 0, 0, 180, 181, 182, 0, 0, 183, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, - 0, 0, 0, 190, 191, 192, 193, 194, 281, 0, - 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, - 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 202, 282, 0, 0, 0, 204, - 0, 0, 0, 0, 360, 0, 133, 268, 359, 208, - 0, 1845, 136, 137, 138, 0, 0, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 269, 270, 271, 272, 273, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 172, 173, 174, - 0, 0, 0, 0, 179, 191, 192, 193, 0, 0, - 0, 0, 0, 0, 0, 184, 185, 186, 200, 0, - 201, 0, 0, 187, 0, 0, 0, 274, 0, 0, - 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, - 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 278, 0, 49, 0, 0, 279, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 60, - 61, 62, 63, 64, 0, 0, 66, 67, 68, 69, - 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 0, 1805, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, - 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 202, 282, 0, 0, 0, 204, 0, 0, 0, - 0, 360, 0, 133, 268, 1664, 208, 0, 284, 136, + 0, 0, 0, 0, 0, 0, 0, 629, 1828, 0, + 0, 0, 204, 0, 0, 0, 0, 631, 85, 86, + 87, 0, 208, 0, 321, 581, 0, 0, 0, 0, + 0, 0, 0, 133, 268, 0, 0, 0, 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, 173, 174, 0, 0, 0, - 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 184, 185, 186, 0, 0, 0, 0, 0, - 187, 0, 0, 0, 274, 0, 0, 275, 0, 0, + 989, 179, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 184, 185, 186, 0, 0, 1507, 1508, 0, + 187, 0, 1512, 1513, 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 49, 0, 0, 279, 0, 0, 280, @@ -2828,43 +2762,21 @@ static const yytype_int16 yytable[] = 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, - 0, 0, 1876, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, - 0, 0, 0, 204, 0, 0, 0, 0, 360, 0, - 133, 268, 0, 208, 0, 284, 136, 137, 138, 0, - 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 171, 172, 173, 174, 0, 0, 0, 0, 179, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 185, 186, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 274, 0, 0, 275, 0, 0, 276, 0, 277, - 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, - 49, 0, 0, 279, 0, 0, 280, 0, 0, 0, - 0, 0, 0, 60, 61, 62, 63, 64, 0, 0, - 66, 67, 68, 69, 70, 0, 0, 0, 74, 0, - 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 0, 0, 1877, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, - 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, - 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 202, 282, 0, 0, 0, - 204, 0, 0, 0, 0, 283, 0, 133, 268, 0, - 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, + 0, 0, 0, 0, 0, 0, 0, 0, 202, 520, + 0, 2205, 0, 204, 0, 0, 0, 0, 360, 0, + 0, 0, 0, 208, 0, 0, 581, 133, 268, 135, + 0, 0, 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 269, 270, 271, 272, 273, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 171, 172, 173, - 174, 0, 0, 0, 0, 179, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 185, 186, 0, - 0, 0, 0, 0, 187, 0, 0, 0, 274, 0, + 161, 269, 270, 271, 272, 273, 0, 0, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 0, 0, 0, 180, + 181, 182, 0, 0, 183, 0, 184, 185, 186, 0, + 0, 0, 0, 0, 187, 188, 0, 0, 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 49, 0, 0, @@ -2873,21 +2785,21 @@ static const yytype_int16 yytable[] = 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 0, 0, 0, 0, 0, 1878, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, - 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, + 0, 190, 191, 192, 193, 194, 281, 0, 0, 0, + 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, 0, 0, 0, 204, 0, 0, - 0, 0, 360, 0, 133, 268, 0, 208, 0, 284, + 0, 0, 360, 0, 133, 268, 135, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, - 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 171, 172, 173, 174, 0, 0, - 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 274, 0, 0, 275, 0, + 271, 272, 273, 0, 0, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 0, 0, 0, 180, 181, 182, 0, + 0, 183, 0, 184, 185, 186, 0, 0, 0, 0, + 0, 187, 188, 0, 0, 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 49, 0, 0, 279, 0, 0, @@ -2896,13 +2808,13 @@ static const yytype_int16 yytable[] = 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 1879, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, - 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, - 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, + 0, 0, 0, 1818, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 190, 191, + 192, 193, 194, 281, 0, 0, 0, 195, 196, 197, + 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, - 520, 0, 0, 0, 204, 0, 0, 0, 0, 360, - 0, 133, 268, 0, 208, 0, 577, 136, 137, 138, + 282, 0, 0, 0, 204, 0, 0, 0, 0, 360, + 0, 133, 268, 359, 208, 0, 1858, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, @@ -2919,13 +2831,13 @@ static const yytype_int16 yytable[] = 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, - 1881, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, 0, 0, - 0, 204, 0, 0, 0, 0, 592, 0, 133, 268, - 0, 208, 0, 284, 136, 137, 138, 0, 0, 139, + 0, 204, 0, 0, 0, 0, 360, 0, 133, 268, + 1674, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, @@ -2941,13 +2853,13 @@ static const yytype_int16 yytable[] = 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 1909, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, 0, 0, 0, 204, 0, - 0, 0, 0, 602, 0, 133, 268, 0, 208, 0, + 0, 0, 0, 360, 0, 133, 268, 0, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, @@ -2964,13 +2876,13 @@ static const yytype_int16 yytable[] = 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, - 0, 0, 0, 0, 1924, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, 0, 0, 0, 204, 0, 0, 0, 0, - 604, 0, 133, 268, 0, 208, 0, 284, 136, 137, + 283, 0, 133, 268, 0, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, @@ -2987,12 +2899,12 @@ static const yytype_int16 yytable[] = 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, - 0, 1971, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, 0, - 0, 0, 204, 0, 0, 0, 0, 606, 0, 133, + 0, 0, 204, 0, 0, 0, 0, 360, 0, 133, 268, 0, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, @@ -3009,14 +2921,14 @@ static const yytype_int16 yytable[] = 67, 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 0, 0, 0, 0, 0, 0, 0, 1998, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 520, 0, 0, 0, 204, 0, 0, 0, 0, 360, 0, 133, 268, 0, 208, - 0, 860, 136, 137, 138, 0, 0, 139, 140, 141, + 0, 577, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, 0, 0, @@ -3032,13 +2944,13 @@ static const yytype_int16 yytable[] = 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 0, 2007, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 202, 520, 0, 0, 0, 204, 0, 0, 0, - 0, 360, 0, 133, 268, 0, 208, 0, 863, 136, + 0, 202, 282, 0, 0, 0, 204, 0, 0, 0, + 0, 592, 0, 133, 268, 0, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, @@ -3055,13 +2967,13 @@ static const yytype_int16 yytable[] = 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, - 0, 0, 2008, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 202, 520, - 0, 0, 0, 204, 0, 0, 0, 0, 360, 0, - 133, 268, 0, 208, 0, 888, 136, 137, 138, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, + 0, 0, 0, 204, 0, 0, 0, 0, 602, 0, + 133, 268, 0, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, @@ -3077,14 +2989,14 @@ static const yytype_int16 yytable[] = 66, 67, 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 0, 0, 2028, + 498, 0, 0, 0, 0, 0, 0, 0, 0, 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 282, 0, 0, 0, - 204, 0, 0, 0, 0, 360, 0, 133, 268, 0, - 208, 0, 1672, 136, 137, 138, 0, 0, 139, 140, + 204, 0, 0, 0, 0, 604, 0, 133, 268, 0, + 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, 0, @@ -3100,73 +3012,13 @@ static const yytype_int16 yytable[] = 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 0, 0, 0, 0, 0, 2046, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 629, 1815, 0, 0, 0, 204, 0, 0, - 0, 0, 631, 0, 133, 388, 135, 208, 0, 321, - 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 0, 0, - 0, 0, 0, 0, 0, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 0, 0, 0, 180, 181, 182, 0, - 0, 183, 0, 184, 185, 186, 0, 133, 388, 135, - 0, 187, 188, 136, 137, 138, 0, 0, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 0, 0, 0, 0, 0, 0, 0, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 0, 0, 0, 180, - 181, 182, 0, 0, 183, 0, 184, 185, 186, 0, - 0, 0, 0, 0, 187, 188, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 2049, 0, 0, 0, 0, 190, 191, - 192, 193, 194, 0, 0, 0, 0, 195, 196, 197, - 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, - 203, 0, 0, 0, 204, 0, 0, 0, 0, 360, - 0, 0, 0, 0, 208, 0, 1572, 0, 0, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 190, 191, 192, 193, 194, 2052, 0, 0, 0, - 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 202, 203, 0, 0, 0, 204, 0, 0, - 0, 0, 360, 0, 133, 388, 135, 208, 0, 1828, - 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 0, 0, - 0, 0, 0, 0, 0, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 0, 0, 0, 180, 181, 182, 0, - 0, 183, 0, 184, 185, 186, 0, 133, 388, 0, - 0, 187, 188, 136, 137, 138, 0, 0, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, - 174, 498, 0, 0, 0, 179, 0, 0, 0, 0, - 2094, 0, 0, 0, 0, 0, 184, 185, 186, 0, - 0, 0, 0, 0, 187, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, - 0, 0, 2137, 0, 0, 0, 0, 0, 190, 191, - 192, 193, 194, 0, 0, 0, 0, 195, 196, 197, - 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, - 203, 0, 0, 0, 204, 0, 0, 0, 0, 360, - 0, 0, 0, 0, 208, 0, 1848, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, - 0, 190, 0, 0, 2139, 194, 0, 0, 0, 0, - 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 629, 630, 0, 0, 0, 204, 0, 0, - 0, 0, 631, 0, 133, 268, 0, 208, 0, 321, + 0, 0, 202, 282, 0, 0, 0, 204, 0, 0, + 0, 0, 606, 0, 133, 268, 0, 208, 0, 284, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, @@ -3183,397 +3035,548 @@ static const yytype_int16 yytable[] = 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 2141, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, - 520, 0, 0, 0, 204, 133, 388, 135, 0, 360, - 0, 136, 137, 138, 208, 0, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, - 0, 0, 0, 0, 0, 0, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 0, 0, 0, 180, 181, 182, - 0, 0, 183, 0, 184, 185, 186, 0, 133, 388, - 0, 0, 187, 188, 136, 137, 138, 0, 0, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, - 173, 174, 498, 0, 0, 0, 179, 0, 0, 0, - 0, 2160, 0, 0, 0, 0, 0, 184, 185, 186, - 0, 0, 0, 0, 0, 187, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 2191, 0, 0, 0, 0, 0, 190, - 191, 192, 193, 194, 0, 0, 0, 0, 195, 196, - 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, + 520, 0, 0, 0, 204, 0, 0, 0, 0, 360, + 0, 133, 268, 0, 208, 0, 861, 136, 137, 138, + 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 202, 203, 0, 0, 0, 204, 0, 0, 0, 0, - 360, 0, 0, 0, 0, 208, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 190, 2230, 0, 0, 194, 0, 0, 0, - 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, + 0, 171, 172, 173, 174, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 202, 203, 0, 0, 0, 204, 133, - 388, 0, 0, 360, 469, 136, 137, 138, 208, 0, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 0, 0, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, - 172, 173, 174, 498, 0, 0, 0, 179, 0, 0, - 0, 0, 2231, 0, 0, 0, 133, 388, 184, 185, - 186, 0, 136, 137, 138, 0, 187, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, - 498, 0, 0, 0, 179, 0, 0, 0, 0, 2232, - 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, - 0, 0, 0, 187, 484, 485, 486, 487, 488, 489, + 184, 185, 186, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 274, 0, 0, 275, 0, 0, 276, 0, + 277, 0, 0, 0, 0, 0, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, + 0, 49, 0, 0, 279, 0, 0, 280, 0, 0, + 0, 0, 0, 0, 60, 61, 62, 63, 64, 0, + 0, 66, 67, 68, 69, 70, 0, 0, 0, 74, + 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, + 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, + 2021, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, + 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, + 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 202, 520, 0, 0, + 0, 204, 0, 0, 0, 0, 360, 0, 133, 268, + 0, 208, 0, 864, 136, 137, 138, 0, 0, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, + 173, 174, 0, 0, 0, 0, 179, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 274, + 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, + 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 278, 0, 49, 0, + 0, 279, 0, 0, 280, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 0, 0, 66, 67, + 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, + 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, + 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 520, 0, 0, 0, 204, 0, + 0, 0, 0, 360, 0, 133, 268, 0, 208, 0, + 889, 136, 137, 138, 0, 0, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 269, + 270, 271, 272, 273, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 171, 172, 173, 174, 0, + 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 274, 0, 0, 275, + 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, + 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 278, 0, 49, 0, 0, 279, 0, + 0, 280, 0, 0, 0, 0, 0, 0, 60, 61, + 62, 63, 64, 0, 0, 66, 67, 68, 69, 70, + 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, + 0, 0, 0, 0, 2059, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, + 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, + 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 202, 282, 0, 0, 0, 204, 0, 0, 0, 0, + 360, 0, 133, 268, 0, 208, 0, 1682, 136, 137, + 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, + 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 171, 172, 173, 174, 0, 0, 0, 0, + 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, + 0, 0, 0, 274, 0, 0, 275, 0, 0, 276, + 0, 277, 0, 0, 0, 0, 0, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 278, 0, 49, 0, 0, 279, 0, 0, 280, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 0, 0, 66, 67, 68, 69, 70, 0, 0, 0, + 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, - 0, 2233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 0, 0, 0, 194, 0, 0, - 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, + 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, + 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, + 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 629, 1828, 0, + 0, 0, 204, 0, 0, 0, 0, 631, 0, 133, + 388, 135, 208, 0, 321, 136, 137, 138, 0, 0, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 0, 0, + 0, 180, 181, 182, 0, 0, 183, 0, 184, 185, + 186, 0, 133, 388, 135, 0, 187, 188, 136, 137, + 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 0, 0, 0, 0, + 0, 0, 0, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 0, 0, 0, 180, 181, 182, 0, 0, 183, + 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, + 188, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, + 0, 0, 0, 0, 0, 0, 0, 0, 2065, 0, + 0, 0, 0, 190, 191, 192, 193, 194, 0, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, 0, 0, 204, - 0, 0, 0, 0, 360, 0, 0, 471, 0, 208, + 0, 0, 0, 0, 360, 0, 0, 0, 0, 208, + 0, 1582, 0, 0, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, + 0, 0, 498, 0, 0, 0, 190, 191, 192, 193, + 194, 2107, 0, 0, 0, 195, 196, 197, 198, 199, + 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, + 0, 0, 204, 0, 0, 0, 0, 360, 0, 133, + 388, 135, 208, 0, 1841, 136, 137, 138, 0, 0, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 0, 0, 0, 0, 0, 0, 0, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 0, 0, + 0, 180, 181, 182, 0, 0, 183, 0, 184, 185, + 186, 0, 0, 0, 0, 0, 187, 188, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 190, 0, 0, 0, 194, 0, 0, 2234, 0, 195, + 0, 0, 0, 0, 0, 133, 388, 2150, 0, 0, + 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, + 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 171, 172, 173, 174, 498, + 0, 0, 0, 179, 0, 0, 0, 0, 2152, 0, + 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, + 0, 0, 187, 190, 191, 192, 193, 194, 0, 0, + 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 202, 203, 0, 0, 0, 204, + 0, 0, 0, 0, 360, 0, 133, 268, 0, 208, + 0, 1861, 136, 137, 138, 0, 0, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 269, 270, 271, 272, 273, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 172, 173, 174, + 0, 0, 0, 0, 179, 0, 0, 0, 0, 190, + 0, 0, 0, 194, 0, 184, 185, 186, 195, 196, + 197, 198, 199, 187, 0, 0, 108, 274, 0, 0, + 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, + 202, 203, 36, 0, 0, 204, 0, 0, 0, 0, + 360, 694, 0, 0, 278, 208, 49, 0, 0, 279, + 0, 0, 280, 0, 0, 0, 0, 0, 0, 60, + 61, 62, 63, 64, 0, 0, 66, 67, 68, 69, + 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, + 0, 0, 0, 0, 0, 2154, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 202, 203, 0, 0, 0, 204, 133, 388, 0, - 0, 360, 694, 136, 137, 138, 208, 0, 139, 140, + 0, 202, 520, 0, 0, 0, 204, 133, 388, 135, + 0, 360, 0, 136, 137, 138, 208, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, - 174, 498, 0, 0, 0, 179, 0, 0, 0, 0, - 2235, 0, 0, 0, 0, 0, 184, 185, 186, 133, - 388, 0, 1276, 0, 187, 136, 137, 138, 0, 0, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 0, 0, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, - 172, 173, 174, 498, 0, 0, 0, 179, 0, 0, - 0, 1896, 0, 0, 0, 0, 0, 0, 184, 185, - 186, 0, 0, 0, 0, 0, 187, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 856, 0, 857, - 0, 0, 1520, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 0, 0, 0, 194, 0, 0, 0, 0, - 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 202, 203, 0, 0, 0, 204, 0, 0, - 0, 0, 360, 0, 0, 696, 0, 208, 0, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 974, - 0, 0, 0, 190, 932, 0, 0, 194, 0, 0, - 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, - 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 202, 203, 0, 0, 0, 204, - 133, 388, 0, 1447, 360, 0, 136, 137, 138, 208, + 161, 0, 0, 0, 0, 0, 0, 0, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 0, 0, 0, 180, + 181, 182, 0, 0, 183, 0, 184, 185, 186, 0, + 133, 388, 0, 0, 187, 188, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, 498, 0, 0, 0, 179, 0, - 0, 811, 0, 0, 0, 0, 0, 133, 388, 184, - 185, 186, 0, 136, 137, 138, 0, 187, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, - 174, 498, 0, 0, 0, 179, 0, 0, 932, 0, - 0, 0, 0, 0, 0, 0, 184, 185, 186, 0, - 0, 0, 0, 0, 187, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, - 933, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 0, 0, 0, 194, 0, + 0, 0, 0, 2173, 0, 0, 0, 0, 0, 184, + 185, 186, 0, 0, 0, 0, 0, 187, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, + 0, 0, 0, 0, 0, 2204, 0, 0, 0, 0, + 0, 190, 191, 192, 193, 194, 0, 0, 0, 0, + 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 202, 203, 0, 0, 0, 204, 0, 0, + 0, 0, 360, 0, 0, 0, 0, 208, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, + 0, 0, 0, 0, 190, 2243, 0, 0, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, 0, 0, - 204, 0, 0, 0, 0, 360, 7, 8, 0, 0, - 208, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 190, 0, 0, 0, 194, 979, 0, 0, 0, - 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, + 204, 0, 0, 0, 0, 360, 133, 388, 696, 1280, + 208, 0, 136, 137, 138, 0, 0, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, + 498, 0, 0, 0, 179, 0, 0, 0, 0, 2244, + 0, 0, 0, 0, 0, 184, 185, 186, 133, 388, + 0, 1454, 0, 187, 136, 137, 138, 0, 0, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, + 173, 174, 498, 0, 0, 0, 179, 0, 0, 0, + 0, 2245, 0, 0, 0, 0, 0, 184, 185, 186, + 0, 0, 0, 0, 0, 187, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, + 0, 0, 0, 2246, 0, 0, 0, 0, 0, 0, + 190, 0, 0, 0, 194, 0, 0, 0, 0, 195, + 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 202, 203, 7, 8, 0, 204, 0, 0, - 0, 0, 360, 0, 0, 0, 0, 208, 774, 24, - 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, - 35, 0, 0, 0, 37, 38, 39, 40, 0, 41, - 0, 0, 0, 0, 46, 778, 48, 0, 0, 50, - 779, 0, 53, 54, 55, 0, 0, 0, 58, 0, - 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 71, 0, 0, 0, 774, 24, 25, 775, - 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, - 0, 0, 37, 38, 39, 40, 0, 41, 85, 86, - 87, 0, 46, 778, 48, 0, 0, 50, 779, 0, - 53, 54, 55, 0, 0, 0, 58, 0, 7, 8, + 0, 202, 203, 0, 0, 0, 204, 0, 0, 0, + 0, 360, 0, 0, 0, 0, 208, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, + 0, 0, 190, 0, 2247, 0, 194, 0, 0, 0, + 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 0, 0, 774, 24, 25, 775, 27, 28, 776, - 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, - 38, 39, 40, 0, 41, 0, 85, 86, 87, 46, - 778, 48, 0, 0, 50, 779, 0, 53, 54, 55, - 1214, 0, 0, 58, 0, 7, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, + 0, 0, 0, 202, 203, 0, 0, 0, 204, 133, + 388, 0, 0, 360, 0, 136, 137, 138, 208, 0, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 0, 0, 0, 7, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, + 172, 173, 174, 0, 0, 0, 0, 179, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, + 186, 0, 0, 0, 0, 0, 187, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, + 0, 0, 0, 0, 2248, 0, 0, 0, 774, 24, + 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, + 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, + 0, 0, 0, 0, 0, 778, 48, 0, 0, 50, + 779, 0, 53, 54, 780, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, + 0, 0, 71, 0, 0, 0, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 0, 0, 0, 190, 498, 0, 975, 194, 85, 86, + 87, 933, 195, 196, 197, 198, 199, 0, 0, 0, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 202, 203, 7, 8, 0, 204, + 0, 0, 0, 0, 360, 0, 0, 0, 0, 208, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, - 33, 34, 35, 0, 0, 0, 37, 38, 39, 40, - 0, 41, 0, 85, 86, 87, 46, 778, 48, 0, - 0, 50, 779, 0, 53, 54, 55, 0, 1215, 0, + 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, + 0, 41, 0, 0, 0, 0, 0, 778, 48, 0, + 1218, 50, 779, 0, 53, 54, 780, 0, 0, 0, 58, 0, 7, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 0, 774, 24, 25, - 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, - 0, 0, 0, 37, 38, 39, 40, 0, 41, 0, - 85, 86, 87, 46, 778, 48, 0, 0, 50, 779, - 0, 53, 54, 55, 0, 1239, 0, 58, 0, 7, + 0, 0, 0, 0, 71, 0, 0, 0, 774, 24, + 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, + 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, + 85, 86, 87, 0, 0, 778, 48, 0, 0, 50, + 779, 0, 53, 54, 780, 0, 0, 0, 58, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 71, 0, 0, 774, 24, 25, 775, 27, 28, + 0, 0, 71, 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, - 37, 38, 39, 40, 0, 41, 0, 85, 86, 87, - 46, 778, 48, 0, 0, 50, 779, 0, 53, 54, - 55, 0, 1268, 0, 58, 0, 7, 8, 0, 0, + 37, 38, 39, 0, 0, 41, 0, 0, 85, 86, + 87, 778, 48, 0, 0, 50, 779, 0, 53, 54, + 780, 0, 1219, 0, 58, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, - 40, 0, 41, 0, 85, 86, 87, 46, 778, 48, - 0, 0, 50, 779, 0, 53, 54, 55, 0, 1274, - 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 0, 0, 774, 24, - 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, - 35, 0, 0, 0, 37, 38, 39, 40, 0, 41, - 0, 85, 86, 87, 46, 778, 48, 0, 0, 50, - 779, 0, 53, 54, 55, 0, 1436, 0, 58, 0, - 0, 0, 0, 0, 0, 0, -4, 1, 0, 0, - -4, 0, 71, 0, 0, 0, 0, 0, -4, -4, - 0, 0, 0, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 0, 85, 86, - 87, 498, 0, 856, 0, 857, 0, 0, -4, -4, - 0, 0, 0, 2058, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, -4, -4, - -4, 0, 498, 0, -4, -4, 0, -4, 0, 1024, - 0, -4, -4, 0, -4, -4, 0, 0, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, 0, 0, -4, -4, -4, -4, -4, - 2145, -4, -4, -4, -4, -4, -4, -4, -4, -4, - 0, -4, -4, -4, -4, -4, -4, -4, 0, -4, - -4, -4, -4, -4, -4, -4, -4, -4, 0, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, 0, 0, 0, -4, -4, -4, 6, - 0, 0, 0, 0, -4, 0, 0, 7, 8, -4, - -4, -4, -4, 0, 0, -4, 0, -4, 0, -4, + 0, 0, 41, 0, 85, 86, 87, 0, 778, 48, + 0, 0, 50, 779, 0, 53, 54, 780, 0, 0, + 1243, 58, 7, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 71, 0, 774, 24, 25, + 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, + 0, 0, 0, 37, 38, 39, 0, 0, 41, 0, + 0, 85, 86, 87, 778, 48, 0, 0, 50, 779, + 0, 53, 54, 780, 0, 0, 1272, 58, 7, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 71, 0, 0, 774, 24, 25, 775, 27, 28, + 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, + 37, 38, 39, 0, 0, 41, 0, 85, 86, 87, + 0, 778, 48, 0, 0, 50, 779, 0, 53, 54, + 780, 0, 0, 1278, 58, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, + 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, + 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, + 0, 41, 0, 0, 85, 86, 87, 778, 48, 0, + 0, 50, 779, 0, 53, 54, 780, 0, 0, 1443, + 58, 0, 0, 0, 0, 0, 0, 0, -4, 1, + 0, 0, -4, 0, 71, 0, 0, 0, 0, 0, + -4, -4, 0, 0, 0, 0, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 85, 86, 87, 0, 498, 0, 0, 0, 0, 0, + -4, -4, 926, 0, 0, 0, 2071, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -4, -4, -4, 0, 0, 0, -4, -4, 0, -4, + 0, 0, 0, -4, -4, 0, -4, -4, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, 0, 0, 0, 0, 9, 10, -4, - -4, -4, 0, 0, 0, 0, 0, 0, -4, 0, - -4, 0, 0, 0, 0, 0, 0, 11, 12, 13, - 0, 0, 0, 14, 15, 0, 16, 0, 0, 0, - 17, 18, 0, 19, 20, 0, 0, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 0, 0, 36, 37, 38, 39, 40, 0, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, - 50, 51, 52, 53, 54, 55, 56, 0, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 0, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 0, 0, 0, 80, 81, 82, 0, 0, - 0, 0, 0, 83, 0, 0, 0, 0, 84, 85, - 86, 87, 0, 0, 88, 0, 89, 0, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 104, 105, - 106, 0, 0, 0, 0, 0, 0, 107, 0, 108, + -4, -4, -4, -4, -4, 0, 0, -4, -4, -4, + -4, -4, 2158, -4, -4, -4, -4, -4, -4, -4, + -4, -4, 0, -4, -4, -4, -4, -4, -4, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, -4, -4, -4, 0, 0, 0, -4, -4, + -4, 6, 0, 0, 0, 0, -4, 0, 0, 7, + 8, -4, -4, -4, -4, 0, 0, -4, 0, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, -4, -4, -4, 0, 0, 0, 0, 9, + 10, -4, -4, -4, 0, 0, 0, 0, 0, 0, + -4, 0, -4, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 0, 0, 0, 14, 15, 0, 16, 0, + 0, 0, 17, 18, 0, 19, 20, 0, 0, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 0, 0, 36, 37, 38, 39, + 40, 0, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 0, 50, 51, 52, 53, 54, 55, 56, 0, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 7, 8, 0, 80, 81, 82, + 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, + 84, 85, 86, 87, 0, 0, 88, 0, 89, 0, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 0, 0, 0, 0, 0, 0, + 104, 105, 106, 0, 0, 0, 0, 0, 0, 107, + 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 774, 24, 25, 775, + 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, + 0, 0, 37, 38, 39, 0, 0, 41, 0, 0, + 0, 0, 0, 778, 48, 0, 0, 50, 779, 0, + 53, 54, 780, 0, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 0, 0, 0, 993, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, + 0, 0, 0, 498, 0, 0, 85, 86, 87, 0, + 0, 1909, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, + 498, 0, 857, 0, 858, 0, 0, 1527, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, + 0, 0, 0, 812, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 933, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1032, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 934, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1033, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 980, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1034, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1025, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1049, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1033, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1166, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1034, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1167, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1035, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1169, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1050, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1223, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1170, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1224, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1171, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1225, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1173, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1262, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1227, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1360, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1228, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1438, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1229, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1439, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1266, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1488, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1367, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1611, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1445, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1612, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1446, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1613, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1495, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1614, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1621, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1615, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1622, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1616, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1623, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1617, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1624, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1731, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1625, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1732, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1626, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1739, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1627, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1886, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1744, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1887, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1745, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1888, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1752, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1889, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1899, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1890, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1900, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1948, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1901, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1949, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1902, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1953, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1903, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 2030, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1961, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 2031, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1962, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 2032, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1966, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2033, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 2043, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 2034, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2044, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 2076, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 2045, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 2079, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 2046, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 2128, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 2047, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2129, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 2089, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 2130, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2092, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 2131, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 2141, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 2132, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 2142, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 2133, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 2143, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2193, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 2144, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 2194, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2145, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 2195, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 2146, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 2196, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 2206, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 766, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 0, 0, 985, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 2207, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 1004, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 1011, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, + 0, 2208, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 1109, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 0, 0, 1159, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2209, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 1185, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 496, 497, 0, 0, 0, 0, 498, 0, 857, 0, + 858, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 0, 0, 1255, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 766, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 1256, 484, 485, 486, + 0, 0, 498, 0, 0, 0, 986, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 0, 0, 1260, + 497, 0, 0, 0, 0, 498, 0, 0, 0, 1005, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 1261, 484, 485, 486, 487, 488, 489, 490, + 0, 0, 1012, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 0, 0, 1294, 484, 485, 486, 487, + 0, 498, 0, 0, 0, 1113, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 1353, 484, + 0, 0, 0, 0, 498, 0, 0, 0, 1163, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 1358, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1189, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 1678, 484, 485, 486, 487, 488, + 498, 0, 0, 0, 1259, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 0, 0, 1721, 484, 485, + 0, 0, 0, 498, 0, 0, 0, 1260, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 1910, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1264, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 762, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 0, 0, 1265, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, + 0, 0, 498, 0, 0, 0, 1298, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 0, 0, 1360, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, + 0, 0, 1365, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, + 0, 498, 0, 0, 0, 1688, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 0, 0, 0, 0, 498, 0, 0, 0, 1731, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, + 0, 1923, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 821, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 762, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 825, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 822, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 826, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 828, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 827, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 830, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 829, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 831, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 833, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 832, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 835, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 834, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 836, 484, 485, 486, 487, 488, 489, 490, 491, 492, @@ -3586,20 +3589,20 @@ static const yytype_int16 yytable[] = 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 840, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 842, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 841, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 843, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 844, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 885, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 845, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 895, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 886, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 956, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 896, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 974, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 957, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 975, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, @@ -3607,719 +3610,657 @@ static const yytype_int16 yytable[] = 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 977, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 983, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 978, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 984, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 991, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 985, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1000, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 992, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1010, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 1001, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 1108, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1011, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 1136, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1112, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 1141, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 1140, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 1154, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 1145, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 1158, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 1184, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 1162, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 1189, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 1188, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 1190, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 1193, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1191, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 1194, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1197, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 1195, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 1206, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1201, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 1207, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1210, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 1208, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 1211, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 1241, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 1212, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 1243, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 1245, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 1244, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 1247, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 1245, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 1248, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 1246, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 1249, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1247, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 1250, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1248, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 1251, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 1249, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1252, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 1254, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1253, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 1352, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 1258, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 1357, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 1359, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 1532, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 1364, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 1557, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 1539, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 1727, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 1564, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 1786, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 1737, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1804, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 1738, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1827, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 1739, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 2075, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1740, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 2158, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1799, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498 + 498, 0, 1817, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, + 0, 498, 0, 1840, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, + 0, 0, 498, 0, 2088, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, + 0, 0, 0, 498, 0, 2171, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 0, 0, 0, 0, 498 }; static const yytype_int16 yycheck[] = { - 3, 3, 314, 6, 4, 1666, 4, 623, 624, 6, - 1689, 1690, 5, 4, 6, 4, 469, 5, 471, 4, - 473, 5, 90, 4, 6, 5, 4, 1236, 436, 6, - 438, 5, 0, 1240, 5, 4, 1872, 329, 5, 4, - 6, 4, 6, 5, 47, 453, 5, 4, 90, 132, - 5, 169, 4, 4, 346, 4, 6, 4, 6, 6, - 4, 7, 4, 6, 228, 90, 7, 185, 186, 111, - 218, 219, 75, 218, 219, 6, 218, 219, 6, 232, - 83, 6, 122, 6, 237, 88, 111, 231, 236, 234, - 234, 236, 234, 385, 236, 387, 99, 1758, 228, 139, - 13, 393, 7, 61, 62, 235, 64, 147, 148, 149, - 218, 219, 6, 153, 154, 155, 156, 99, 228, 101, - 230, 218, 219, 228, 218, 219, 234, 237, 236, 218, - 219, 228, 228, 4, 5, 225, 226, 84, 235, 235, - 84, 235, 218, 219, 88, 235, 235, 7, 218, 219, - 94, 95, 3, 97, 98, 6, 218, 219, 234, 159, - 160, 161, 162, 87, 6, 235, 90, 218, 219, 218, - 219, 115, 234, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 7, 234, 172, 234, 57, 58, 59, 60, - 2026, 2027, 6, 157, 65, 66, 67, 7, 172, 70, - 6, 172, 180, 184, 228, 208, 1867, 209, 7, 157, - 81, 235, 7, 172, 157, 204, 6, 220, 221, 204, - 169, 170, 7, 215, 75, 228, 204, 169, 170, 228, - 228, 228, 1893, 236, 157, 238, 236, 88, 235, 230, - 243, 694, 235, 696, 6, 248, 237, 235, 99, 215, - 235, 235, 255, 235, 1463, 235, 259, 235, 235, 228, - 263, 264, 265, 266, 267, 228, 235, 230, 235, 232, - 235, 228, 7, 235, 237, 278, 228, 228, 235, 282, - 235, 284, 8, 235, 235, 235, 232, 228, 6, 230, - 218, 219, 295, 218, 219, 298, 299, 300, 301, 7, - 205, 206, 207, 208, 307, 308, 309, 7, 6, 762, - 313, 314, 228, 766, 230, 218, 219, 188, 189, 190, - 225, 226, 614, 615, 218, 219, 230, 232, 218, 219, - 201, 234, 203, 204, 218, 219, 228, 340, 341, 342, - 218, 219, 634, 235, 234, 205, 206, 207, 208, 230, - 234, 354, 355, 229, 225, 226, 234, 208, 234, 317, - 318, 232, 218, 219, 235, 225, 226, 325, 229, 220, - 221, 329, 87, 234, 90, 90, 92, 228, 234, 671, - 205, 206, 207, 208, 228, 236, 218, 219, 391, 4, - 473, 2070, 395, 396, 686, 205, 206, 207, 208, 228, - 225, 226, 234, 90, 255, 408, 205, 206, 207, 208, - 205, 206, 207, 208, 225, 226, 267, 2078, 104, 401, - 205, 206, 207, 208, 235, 228, 225, 226, 225, 226, - 225, 226, 235, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 228, 450, 451, 452, + 3, 3, 314, 6, 329, 436, 1676, 438, 4, 6, + 623, 624, 1699, 1700, 1240, 4, 6, 1244, 4, 4, + 4, 346, 453, 4, 6, 5, 4, 4, 90, 4, + 6, 5, 228, 90, 4, 4, 90, 5, 5, 5, + 5, 132, 6, 4, 47, 225, 226, 469, 5, 471, + 5, 473, 5, 5, 111, 6, 6, 111, 6, 1885, + 385, 7, 387, 4, 6, 4, 122, 6, 393, 13, + 6, 6, 75, 84, 4, 6, 87, 122, 7, 90, + 83, 92, 229, 139, 231, 88, 0, 234, 218, 219, + 6, 147, 148, 149, 139, 6, 99, 153, 154, 155, + 156, 1771, 147, 148, 149, 122, 236, 228, 153, 154, + 155, 156, 84, 228, 7, 87, 122, 99, 90, 101, + 92, 232, 139, 7, 6, 7, 237, 7, 218, 219, + 147, 148, 149, 139, 4, 5, 153, 154, 155, 156, + 169, 147, 148, 149, 234, 84, 236, 153, 154, 155, + 156, 4, 3, 230, 84, 6, 185, 186, 88, 225, + 226, 229, 90, 231, 94, 95, 234, 97, 98, 235, + 159, 160, 161, 162, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 87, 4, 115, 90, 57, 58, 59, + 60, 236, 172, 157, 6, 65, 66, 67, 172, 180, + 70, 7, 6, 7, 172, 208, 172, 209, 7, 184, + 1880, 81, 7, 2039, 2040, 6, 230, 220, 221, 236, + 204, 157, 157, 204, 75, 228, 157, 204, 218, 219, + 236, 228, 104, 236, 230, 238, 1906, 88, 235, 215, + 243, 237, 228, 228, 1470, 248, 6, 236, 99, 235, + 235, 235, 255, 235, 235, 235, 259, 235, 228, 228, + 263, 264, 265, 266, 267, 235, 235, 228, 235, 230, + 235, 232, 694, 215, 696, 278, 237, 6, 235, 282, + 235, 284, 235, 235, 235, 235, 232, 228, 7, 614, + 615, 87, 295, 8, 90, 298, 299, 300, 301, 228, + 6, 230, 218, 219, 307, 308, 309, 218, 219, 634, + 313, 314, 205, 206, 207, 208, 169, 170, 188, 189, + 190, 205, 206, 207, 208, 205, 206, 207, 208, 7, + 229, 201, 231, 203, 204, 234, 7, 340, 341, 342, + 762, 225, 226, 7, 766, 228, 671, 230, 232, 169, + 170, 354, 355, 4, 237, 225, 226, 208, 218, 219, + 228, 686, 232, 218, 219, 235, 228, 235, 230, 220, + 221, 228, 218, 219, 234, 237, 236, 228, 235, 234, + 84, 236, 473, 87, 228, 236, 90, 228, 391, 235, + 229, 235, 395, 396, 235, 234, 2083, 218, 219, 205, + 206, 207, 208, 6, 255, 408, 205, 206, 207, 208, + 205, 206, 207, 208, 235, 228, 267, 230, 228, 401, + 230, 2091, 8, 228, 237, 230, 225, 226, 218, 219, + 225, 226, 237, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 6, 450, 451, 452, 453, 454, 218, 219, 228, 458, 459, 460, 461, 462, - 463, 228, 465, 314, 218, 219, 225, 226, 234, 6, - 205, 206, 207, 208, 456, 84, 235, 228, 87, 482, - 234, 90, 464, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 205, 206, 207, - 208, 227, 220, 221, 229, 205, 206, 207, 208, 234, - 236, 126, 127, 128, 129, 84, 228, 520, 87, 218, - 219, 90, 218, 219, 225, 226, 141, 229, 2189, 144, - 218, 219, 234, 122, 235, 234, 228, 255, 234, 228, - 391, 230, 225, 226, 122, 90, 234, 1000, 237, 267, - 139, 1004, 235, 556, 557, 6, 7, 560, 147, 148, - 149, 139, 225, 226, 153, 154, 155, 156, 571, 147, - 148, 149, 235, 576, 577, 153, 154, 155, 156, 218, - 219, 584, 228, 6, 230, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 234, 447, 448, 228, 450, - 451, 452, 453, 454, 228, 608, 609, 458, 459, 460, - 461, 462, 463, 234, 465, 236, 598, 599, 600, 601, - 8, 623, 624, 706, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 928, 228, 228, 230, - 227, 218, 219, 229, 218, 219, 237, 236, 234, 218, - 219, 235, 655, 656, 657, 122, 228, 234, 236, 228, - 234, 218, 219, 621, 622, 229, 235, 231, 218, 219, - 234, 629, 139, 391, 218, 219, 679, 234, 90, 762, - 147, 148, 149, 766, 234, 228, 153, 154, 155, 156, - 234, 218, 219, 229, 218, 219, 699, 1904, 234, 1906, - 228, 1908, 218, 219, 218, 219, 557, 234, 231, 560, - 234, 234, 218, 219, 235, 218, 219, 228, 234, 437, - 234, 439, 440, 441, 442, 443, 444, 445, 234, 447, - 448, 234, 450, 451, 452, 228, 454, 6, 218, 219, - 458, 459, 460, 461, 462, 1198, 228, 1200, 230, 1202, - 232, 1204, 92, 235, 234, 237, 228, 228, 761, 230, - 87, 232, 765, 225, 226, 228, 237, 230, 90, 236, - 232, 235, 855, 1085, 237, 235, 84, 1986, 228, 87, - 1989, 87, 90, 1992, 92, 767, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 228, 87, 230, 806, 227, 6, 7, 810, 84, 237, - 813, 87, 229, 816, 90, 818, 92, 234, 90, 822, - 823, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 229, 4, 231, 820, 227, - 234, 228, 560, 230, 234, 232, 236, 229, 236, 231, - 237, 87, 2059, 235, 90, 858, 92, 860, 8, 4, - 863, 122, 4, 218, 219, 220, 221, 222, 229, 4, - 231, 1324, 227, 876, 235, 878, 228, 880, 139, 882, - 234, 234, 236, 236, 228, 888, 147, 148, 149, 1342, - 893, 228, 153, 154, 155, 156, 225, 226, 901, 234, - 2109, 236, 231, 220, 221, 222, 218, 219, 1316, 1317, - 227, 6, 6, 1321, 1322, 228, 6, 1000, 126, 127, - 87, 1004, 925, 90, 132, 92, 228, 1010, 1011, 2136, - 229, 2138, 231, 2140, 234, 234, 236, 230, 228, 2146, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 228, 126, 127, 234, 227, 236, - 2169, 132, 813, 2172, 228, 816, 2175, 818, 234, 2178, - 236, 230, 229, 931, 231, 236, 229, 234, 231, 228, - 938, 234, 7, 229, 229, 231, 231, 945, 234, 234, - 122, 228, 995, 2200, 228, 2202, 999, 2204, 6, 229, - 1003, 231, 234, 234, 236, 236, 228, 139, 1011, 6, - 2219, 234, 2221, 236, 2223, 147, 148, 149, 234, 1331, - 236, 153, 154, 155, 156, 1108, 1109, 1643, 1644, 234, - 234, 236, 236, 1036, 234, 234, 236, 236, 1041, 234, - 90, 236, 92, 1046, 1047, 1048, 1049, 90, 234, 92, - 236, 234, 234, 236, 236, 228, 1059, 1510, 1061, 209, + 463, 235, 465, 314, 218, 219, 229, 218, 219, 235, + 231, 234, 228, 234, 456, 126, 127, 128, 129, 482, + 234, 231, 464, 234, 234, 228, 205, 206, 207, 208, + 141, 220, 221, 144, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 218, 219, + 228, 228, 227, 230, 218, 219, 84, 520, 228, 87, + 237, 236, 90, 228, 228, 235, 255, 205, 206, 207, + 208, 235, 2202, 8, 205, 206, 207, 208, 267, 228, + 391, 205, 206, 207, 208, 228, 228, 225, 226, 218, + 219, 218, 219, 556, 557, 218, 219, 560, 228, 218, + 219, 225, 226, 225, 226, 234, 90, 234, 571, 6, + 232, 234, 229, 576, 577, 234, 229, 234, 231, 1001, + 228, 584, 235, 1005, 6, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 228, 447, 448, 228, 450, + 451, 452, 453, 454, 929, 608, 609, 458, 459, 460, + 461, 462, 463, 228, 465, 706, 598, 599, 600, 601, + 228, 623, 624, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 90, 228, 92, + 230, 227, 218, 219, 218, 219, 87, 218, 219, 90, + 236, 92, 655, 656, 657, 122, 225, 226, 234, 234, + 234, 236, 391, 234, 225, 226, 235, 218, 219, 218, + 219, 762, 139, 228, 235, 766, 679, 218, 219, 229, + 147, 148, 149, 234, 234, 234, 153, 154, 155, 156, + 1917, 235, 1919, 234, 1921, 229, 699, 225, 226, 228, + 234, 218, 219, 228, 218, 219, 557, 235, 437, 560, + 439, 440, 441, 442, 443, 444, 445, 234, 447, 448, + 234, 450, 451, 452, 234, 454, 236, 235, 90, 458, + 459, 460, 461, 462, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 218, 219, + 92, 229, 227, 231, 229, 218, 219, 235, 761, 218, + 219, 234, 765, 236, 234, 856, 6, 218, 219, 236, + 228, 234, 229, 1999, 1086, 234, 2002, 234, 87, 2005, + 1202, 235, 1204, 234, 1206, 767, 1208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 122, 225, 226, 807, 227, 218, 219, 811, 218, + 219, 814, 235, 228, 817, 228, 819, 230, 139, 232, + 823, 824, 234, 90, 237, 234, 147, 148, 149, 235, + 87, 560, 153, 154, 155, 156, 234, 122, 236, 821, + 87, 218, 219, 218, 219, 2072, 220, 221, 222, 218, + 219, 218, 219, 227, 139, 90, 859, 234, 861, 234, + 4, 864, 147, 148, 149, 234, 4, 234, 153, 154, + 155, 156, 218, 219, 877, 234, 879, 236, 881, 234, + 883, 236, 218, 219, 218, 219, 889, 4, 234, 1320, + 1321, 894, 218, 219, 1325, 1326, 2122, 6, 234, 902, + 234, 4, 225, 226, 87, 6, 1328, 90, 234, 92, + 1001, 122, 235, 229, 1005, 236, 6, 234, 234, 236, + 1011, 1012, 2149, 926, 2151, 228, 2153, 1349, 139, 228, + 228, 228, 2159, 230, 228, 232, 147, 148, 149, 229, + 237, 231, 153, 154, 155, 156, 218, 219, 220, 221, + 222, 236, 225, 226, 228, 227, 2182, 6, 231, 2185, + 6, 230, 2188, 814, 228, 2191, 817, 230, 819, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 228, 228, 1158, 1159, 227, 234, 229, - 236, 234, 1085, 236, 228, 1088, 1089, 1090, 1091, 230, - 6, 6, 1500, 1501, 234, 813, 236, 1505, 1506, 235, - 818, 1184, 1185, 234, 236, 236, 234, 234, 236, 236, - 235, 234, 1115, 236, 235, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 228, - 228, 1134, 1135, 227, 1137, 228, 1139, 1140, 234, 1142, - 236, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 234, 111, 236, 1156, 234, 234, 236, 236, 235, 235, - 1011, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 1130, 234, 4, 236, 227, 234, 1181, 236, - 234, 4, 236, 6, 1187, 1188, 234, 234, 236, 236, - 1041, 228, 234, 234, 236, 236, 1047, 1048, 1049, 234, - 234, 236, 236, 1495, 234, 1497, 236, 234, 1059, 236, - 1061, 122, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 228, 234, 139, 236, - 227, 234, 228, 236, 1085, 228, 147, 148, 149, 1551, - 228, 1324, 153, 154, 155, 156, 122, 1250, 234, 234, - 236, 236, 234, 234, 236, 236, 234, 234, 236, 236, - 1263, 1264, 1265, 139, 1115, 1223, 1224, 1225, 234, 228, - 236, 147, 148, 149, 228, 228, 1279, 153, 154, 155, - 156, 228, 234, 1899, 236, 234, 234, 236, 236, 234, - 234, 236, 236, 1011, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 235, 4, - 5, 235, 227, 1316, 1317, 234, 228, 236, 1321, 1322, - 234, 228, 236, 1041, 234, 236, 236, 235, 1331, 1047, - 1048, 1049, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 1059, 235, 1061, 1347, 227, 234, 228, 236, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 235, 234, - 236, 236, 57, 58, 59, 60, 235, 6, 1371, 228, - 65, 66, 67, 122, 1377, 70, 234, 228, 236, 1361, - 234, 228, 236, 6, 230, 237, 81, 6, 1391, 6, - 139, 235, 235, 235, 230, 230, 230, 1115, 147, 148, - 149, 6, 6, 235, 153, 154, 155, 156, 172, 237, - 6, 1414, 1415, 1416, 6, 235, 122, 1420, 1421, 6, - 1423, 6, 1425, 235, 1427, 235, 1429, 1430, 1431, 1512, - 6, 230, 4, 139, 227, 232, 7, 235, 234, 234, - 1848, 147, 148, 149, 236, 229, 1449, 153, 154, 155, - 156, 122, 7, 6, 6, 6, 229, 4, 7, 7, - 62, 1464, 62, 62, 62, 1316, 1317, 6, 139, 1472, - 1321, 1322, 1475, 6, 6, 229, 147, 148, 149, 6, - 1331, 7, 153, 154, 155, 156, 6, 236, 235, 7, - 6, 6, 6, 188, 189, 190, 169, 1500, 1501, 235, - 231, 229, 1505, 1506, 1462, 6, 201, 6, 203, 204, - 229, 229, 1494, 234, 234, 44, 1519, 234, 234, 234, - 234, 234, 1525, 231, 1607, 229, 229, 229, 6, 6, - 236, 44, 44, 44, 229, 4, 231, 228, 4, 6, - 172, 6, 6, 6, 172, 7, 1858, 7, 1551, 7, - 7, 7, 7, 7, 172, 7, 1559, 7, 7, 7, - 7, 1543, 7, 7, 7, 236, 1569, 7, 235, 1572, + 220, 221, 222, 126, 127, 228, 2213, 227, 2215, 132, + 2217, 228, 234, 996, 236, 228, 228, 1000, 230, 228, + 232, 1004, 229, 235, 231, 237, 2232, 234, 2234, 1012, + 2236, 6, 126, 127, 87, 228, 7, 90, 132, 92, + 228, 1112, 1113, 1335, 229, 236, 231, 230, 229, 234, + 231, 228, 228, 234, 1037, 234, 234, 236, 236, 1042, + 1653, 1654, 228, 235, 1047, 1048, 1049, 1050, 229, 234, + 231, 236, 234, 234, 236, 228, 234, 1060, 236, 1062, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 1162, 1163, 235, 235, 227, 1507, 1508, 234, 6, + 236, 1512, 1513, 1086, 6, 814, 1089, 1090, 1091, 1092, + 819, 90, 234, 92, 236, 1517, 228, 1188, 1189, 228, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 6, 229, 231, 235, 227, 235, - 1572, 7, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 235, 7, 235, 235, - 227, 4, 6, 229, 234, 229, 229, 229, 122, 234, - 7, 6, 1914, 234, 1582, 234, 232, 7, 236, 236, - 44, 7, 1635, 1636, 7, 238, 7, 232, 235, 122, - 243, 1643, 1644, 236, 6, 248, 44, 44, 44, 1500, - 1501, 6, 6, 6, 1505, 1506, 139, 1639, 6, 6, - 263, 7, 230, 1666, 147, 148, 149, 6, 1519, 1672, - 153, 154, 155, 156, 1525, 235, 6, 215, 1681, 282, - 7, 284, 228, 228, 228, 7, 92, 1645, 1691, 1647, - 7, 1649, 295, 7, 7, 7, 7, 6, 1701, 7, - 1551, 7, 7, 1706, 7, 1687, 7, 7, 4, 1667, - 1668, 1669, 1670, 1671, 1672, 12, 13, 6, 1569, 2011, - 102, 4, 6, 228, 1706, 1707, 1708, 235, 7, 6, - 1733, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 122, 7, 7, 7, 227, - 7, 7, 7, 236, 7, 1758, 235, 6, 6, 6, - 6, 90, 139, 7, 6, 4, 4, 4, 2060, 4, - 147, 148, 149, 234, 6, 6, 153, 154, 155, 156, - 6, 6, 235, 6, 235, 6, 232, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 1803, 1519, 236, 100, 101, 102, 103, 1525, 105, 234, - 229, 234, 1815, 110, 111, 112, 229, 7, 115, 116, - 228, 118, 119, 120, 235, 1828, 6, 124, 232, 6, - 229, 6, 6, 235, 235, 115, 231, 6, 6, 6, - 172, 138, 1845, 235, 235, 1848, 235, 6, 6, 1831, - 6, 1569, 6, 4, 6, 1858, 6, 6, 6, 236, - 6, 5, 229, 231, 1867, 6, 6, 164, 165, 166, - 4, 1874, 1875, 6, 235, 235, 7, 235, 235, 482, - 230, 6, 6, 235, 6, 6, 235, 6, 6, 6, - 1893, 235, 235, 1896, 235, 235, 168, 1899, 235, 264, - 265, 266, 235, 6, 6, 4, 6, 88, 234, 6, - 1913, 6, 6, 4, 1917, 4, 6, 520, 6, 6, + 219, 220, 221, 222, 235, 234, 1119, 236, 227, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 6, 228, 1138, 1139, 227, 1141, 111, + 1143, 1144, 90, 1146, 92, 1148, 1149, 1150, 1151, 1152, + 1153, 1154, 1155, 1156, 234, 6, 236, 1160, 234, 228, + 236, 1012, 228, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 1502, 234, 1504, + 236, 227, 1185, 234, 234, 236, 236, 235, 1191, 1192, + 234, 1042, 236, 6, 234, 228, 236, 1048, 1049, 1050, + 234, 228, 236, 238, 234, 234, 236, 236, 243, 1060, + 234, 1062, 236, 248, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 263, 234, + 228, 236, 227, 235, 234, 1086, 236, 1328, 264, 265, + 266, 234, 234, 236, 236, 228, 1558, 282, 234, 284, + 236, 1254, 7, 8, 234, 234, 236, 236, 228, 4, + 295, 6, 4, 228, 1267, 1268, 1269, 235, 1119, 122, + 234, 230, 236, 299, 300, 301, 234, 234, 236, 236, + 1283, 235, 234, 1012, 236, 6, 139, 234, 234, 236, + 236, 234, 228, 236, 147, 148, 149, 235, 235, 1912, + 153, 154, 155, 156, 234, 234, 236, 236, 234, 234, + 236, 236, 235, 1042, 340, 341, 228, 1320, 1321, 1048, + 1049, 1050, 1325, 1326, 234, 234, 236, 236, 354, 355, + 228, 1060, 1335, 1062, 228, 228, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 234, 1354, 236, 234, 227, 236, 228, 228, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 234, 237, 236, 1378, 227, 6, 234, 6, + 236, 1384, 234, 236, 236, 234, 1368, 236, 6, 234, + 1119, 236, 234, 230, 236, 1398, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 234, 234, 236, 236, 227, 234, 230, 236, 1421, 1422, + 1423, 7, 230, 235, 1427, 1428, 235, 1430, 1519, 1432, + 1861, 1434, 235, 1436, 1437, 1438, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 6, 234, 482, 236, 227, + 234, 6, 236, 1456, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 1471, 1320, + 1321, 234, 227, 236, 1325, 1326, 1479, 235, 234, 1482, + 236, 234, 172, 236, 1335, 520, 237, 6, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 6, 235, 1507, 1508, 227, 6, 6, 1512, + 1513, 235, 235, 6, 230, 4, 227, 232, 235, 1501, + 7, 556, 557, 1526, 236, 234, 1617, 234, 229, 1532, + 7, 122, 6, 6, 6, 229, 4, 62, 62, 62, + 62, 576, 577, 7, 7, 6, 6, 6, 139, 584, + 6, 229, 6, 235, 6, 1558, 147, 148, 149, 1871, + 7, 7, 153, 154, 155, 156, 1569, 6, 1550, 6, + 6, 169, 235, 608, 609, 231, 1579, 229, 122, 1582, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 299, 300, 301, 6, 227, 236, - 6, 235, 7, 7, 6, 1903, 6, 1905, 6, 1907, - 6, 6, 5, 556, 557, 6, 6, 235, 6, 6, - 1918, 1919, 1920, 1921, 1922, 6, 6, 6, 6, 122, - 6, 6, 1975, 576, 577, 340, 341, 6, 6, 6, - 234, 584, 6, 6, 6, 6, 139, 6, 6, 354, - 355, 1994, 6, 234, 147, 148, 149, 1848, 6, 229, - 153, 154, 155, 156, 6, 608, 609, 1858, 6, 6, - 6, 235, 7, 2016, 6, 232, 1974, 6, 6, 6, - 1978, 235, 235, 235, 5, 235, 6, 6, 235, 6, - 236, 236, 235, 2015, 235, 235, 7, 235, 6, 167, - 6, 236, 236, 236, 6, 6, 6, 6, 6, 6, - 6, 6, 655, 656, 657, 170, 6, 6, 6, 2062, - 2063, 2064, 2065, 2066, 6, 6, 6, 6, 229, 235, - 6, 235, 7, 6, 6, 2078, 679, 6, 2036, 236, - 235, 6, 2040, 236, 6, 122, 6, 6, 235, 6, - 235, 6, 235, 6, 6, 6, 699, 6, 6, 236, - 6, 228, 6, 235, 6, 235, 235, 6, 2066, 209, + 219, 220, 221, 222, 6, 139, 6, 229, 227, 229, + 1582, 234, 1927, 147, 148, 149, 234, 229, 234, 153, + 154, 155, 156, 234, 234, 234, 229, 234, 229, 231, + 655, 656, 657, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 44, 44, 44, + 44, 227, 1645, 1646, 679, 236, 6, 4, 228, 4, + 6, 1653, 1654, 6, 6, 6, 1507, 1508, 7, 172, + 7, 1512, 1513, 7, 699, 7, 172, 1649, 7, 122, + 7, 7, 172, 1676, 7, 1526, 7, 7, 7, 1682, + 7, 1532, 7, 7, 7, 7, 139, 235, 1691, 6, + 229, 231, 236, 122, 147, 148, 149, 235, 1701, 2024, + 153, 154, 155, 156, 235, 235, 122, 1558, 1711, 235, + 139, 7, 7, 1716, 235, 1697, 4, 6, 147, 148, + 149, 229, 234, 139, 153, 154, 155, 156, 1579, 234, + 232, 147, 148, 149, 1716, 1717, 1718, 153, 154, 155, + 156, 229, 234, 1746, 229, 229, 236, 122, 2073, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 236, 229, 235, 6, 227, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 2119, 6, 235, - 6, 6, 235, 235, 6, 6, 6, 6, 2151, 235, - 235, 107, 6, 6, 2157, 6, 6, 6, 6, 1356, - 2019, 1370, 1873, 3, 1623, 2016, 3, 3, 3, 596, - 1547, 516, 1895, -1, -1, -1, 2134, 2135, -1, -1, - -1, -1, -1, -1, -1, -1, 2189, 209, 210, 211, + 220, 221, 222, 234, 7, 6, 236, 227, 1771, 7, + 7, 7, 807, 7, 232, 6, 811, 44, 44, 236, + 235, 44, 44, 236, 6, 6, 6, 6, 823, 824, + 6, 235, 7, 6, 228, 230, 228, 1526, 228, 6, + 228, 228, 228, 1532, 215, 7, 7, 236, 92, 7, + 7, 7, 7, 1816, 7, 6, 102, 7, 7, 7, + 236, 7, 7, 7, 859, 1828, 861, 6, 4, 864, + 4, 6, 235, 228, 7, 6, 235, 7, 1841, 7, + 7, 7, 877, 7, 879, 7, 881, 7, 883, 6, + 1579, 6, 6, 6, 889, 1858, 7, 90, 1861, 894, + 6, 4, 1844, 4, 4, 234, 236, 235, 1871, 235, + 6, 6, 6, 6, 6, 4, 6, 1880, 6, 229, + 234, 7, 6, 229, 1887, 1888, 234, 232, 228, 232, + 231, 926, 61, 62, 6, 64, 6, 235, 6, 6, + 235, 229, 6, 1906, 115, 6, 1909, 172, 6, 235, + 1912, 6, 6, 6, 235, 235, 235, 6, 6, 6, + 6, 6, 5, 1926, 4, 229, 231, 1930, 6, 6, + 4, 6, 235, 235, 7, 235, 235, 235, 3, 4, + 230, 235, 6, 6, 9, 10, 11, 6, 6, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 6, 6, 235, 235, 235, 235, 235, 235, + 6, 168, 6, 234, 6, 1988, 4, 6, 53, 54, + 55, 56, 6, 6, 6, 4, 61, 7, 6, 6, + 6, 6, 1037, 6, 2007, 4, 7, 72, 73, 74, + 1861, 6, 6, 6, 6, 80, 88, 6, 5, 7, + 1871, 6, 6, 235, 6, 235, 2029, 6, 6, 6, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 6, 6, 2028, 6, 227, 6, + 6, 6, 6, 6, 1089, 1090, 1091, 1092, 6, 6, + 6, 6, 234, 6, 6, 6, 229, 6, 6, 234, + 6, 6, 2075, 2076, 2077, 2078, 2079, 6, 6, 235, + 232, 6, 6, 5, 7, 235, 235, 235, 2091, 6, + 235, 6, 236, 235, 6, 107, 235, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, -1, 806, 2207, 227, 2209, 810, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 822, - 823, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, 2239, -1, -1, 227, - -1, -1, -1, -1, -1, -1, 202, 203, 204, 205, - 206, -1, -1, -1, -1, 858, -1, 860, -1, -1, - 863, -1, -1, 219, -1, -1, -1, 223, -1, -1, - -1, -1, -1, 876, -1, 878, -1, 880, -1, 882, - -1, 237, 238, 239, 240, 888, 242, 243, 244, 245, - 893, 247, 248, 249, 250, 251, 252, 253, 254, 6, - 256, 257, 258, -1, -1, -1, 2157, 263, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 925, -1, -1, -1, 282, 283, 284, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 294, 295, - -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 311, 2207, -1, 2209, 227, - -1, -1, -1, -1, 320, 321, -1, -1, -1, -1, - -1, -1, -1, 329, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 339, -1, -1, -1, -1, 2239, 209, + 222, 236, 235, 235, 235, 227, 6, 167, 6, 236, + 236, 236, 187, 6, 6, 1160, 191, 6, 8, 6, + 6, 196, 197, 198, 199, 200, 6, 6, 170, 204, + 6, 6, 6, 6, 6, 6, 6, 229, 317, 318, + 2132, 235, 6, 218, 219, 7, 325, 1192, 223, 6, + 329, 2164, 6, 228, 235, 235, 235, 2170, 233, 235, + 235, 6, 6, 122, 236, 235, 6, 6, 2029, 6, + 6, 6, 6, 6, 6, 6, 6, 236, 6, 228, + 202, 203, 204, 205, 206, 235, 6, 235, 235, 2202, + 236, 229, 6, 6, 235, 6, 6, 219, 6, 6, + 6, 223, 6, 6, 6, 235, 6, 2220, 235, 2222, + 235, 6, 6, 6, 235, 237, 238, 239, 240, 6, + 242, 243, 244, 245, 6, 247, 248, 249, 250, 251, + 252, 253, 254, 6, 256, 257, 258, 6, 6, 2252, + 6, 263, 235, 6, 6, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 6, + 282, 283, 284, 227, 6, 1363, 516, 2032, 1377, 1886, + 1633, 3, 294, 295, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 3, 311, + 3, 3, 227, 596, 1908, 1554, -1, -1, 320, 321, + -1, -1, -1, -1, -1, -1, -1, 329, 238, 2170, + -1, -1, -1, 243, -1, -1, -1, 339, 248, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, 360, -1, -1, 227, 364, 365, - 366, -1, 368, -1, -1, 235, 372, 373, 374, -1, - -1, 377, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1036, -1, -1, 392, -1, -1, 2157, - -1, 397, 398, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 411, 412, -1, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, - -1, -1, -1, -1, -1, 1088, 1089, 1090, 1091, 2207, - -1, 2209, -1, 449, -1, -1, -1, -1, -1, 455, - -1, 457, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, 2239, -1, -1, -1, 481, 482, -1, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, -1, -1, 501, 502, -1, -1, -1, - -1, -1, -1, 1156, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 520, -1, -1, -1, -1, -1, - 526, -1, -1, -1, -1, 531, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1188, -1, -1, 6, 545, - 546, -1, -1, -1, -1, -1, 552, 553, -1, -1, - 556, 557, 558, 559, -1, 561, -1, -1, 564, -1, + 220, 221, 222, 263, -1, -1, -1, 227, 360, -1, + -1, -1, 364, 365, 366, -1, 368, -1, -1, -1, + 372, 373, 374, -1, -1, 377, -1, -1, -1, 2220, + -1, 2222, -1, -1, -1, 295, -1, -1, -1, -1, + 392, -1, -1, -1, -1, 397, 398, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 411, + 412, 2252, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, -1, 449, -1, -1, + 227, 2170, -1, 455, -1, 457, -1, 1482, -1, -1, + -1, -1, 621, 622, -1, -1, -1, -1, -1, -1, + 629, -1, -1, -1, -1, -1, -1, -1, -1, 481, + 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, -1, -1, 501, + 502, 2220, -1, 2222, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 520, -1, + -1, -1, 227, -1, 526, -1, -1, -1, -1, 531, + -1, 236, -1, 2252, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 545, 546, -1, 6, -1, -1, -1, + 552, 553, -1, -1, 556, 557, 558, 559, -1, 561, + -1, -1, 564, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 482, -1, 576, 577, -1, -1, -1, -1, + -1, 583, 584, 585, 586, -1, -1, -1, 590, 591, + 592, -1, -1, -1, -1, 597, 598, 599, 600, 601, + 602, -1, 604, -1, 606, -1, 608, 609, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 576, 577, 122, -1, -1, -1, -1, 583, 584, 585, - 586, -1, -1, -1, 590, 591, 592, -1, -1, -1, - -1, 597, 598, 599, 600, 601, 602, -1, 604, -1, - 606, -1, 608, 609, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 626, 627, 628, 629, 630, 631, -1, -1, -1, 635, - 636, 637, 638, 639, 640, 641, 642, 643, -1, -1, - -1, -1, 648, -1, 650, 651, -1, -1, -1, 655, - 656, 657, -1, -1, 660, 661, 662, -1, -1, 209, + 1645, 1646, -1, -1, 626, 627, 628, 629, 630, 631, + -1, -1, -1, 635, 636, 637, 638, 639, 640, 641, + 642, 643, -1, -1, -1, -1, 648, -1, 650, 651, + -1, -1, -1, 655, 656, 657, -1, 1682, 660, 661, + 662, -1, -1, -1, 4, 5, -1, 577, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 679, -1, -1, + -1, -1, 684, 685, -1, 687, 688, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 698, 699, 608, 609, + -1, 703, -1, -1, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, -1, -1, -1, 57, 58, 59, + 60, -1, -1, -1, -1, 65, 66, 67, -1, -1, + 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 81, -1, -1, -1, 655, 656, 657, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 679, -1, -1, -1, 227, 684, 685, - -1, 687, 688, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 698, 699, -1, -1, -1, 703, -1, -1, - -1, -1, -1, -1, -1, 3, 4, -1, -1, -1, - -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, - -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 53, 54, 55, 56, 227, - -1, -1, 768, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, - -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 6, 802, 803, -1, -1, - 806, 807, 808, -1, 810, 811, -1, -1, -1, -1, - -1, -1, -1, 819, -1, -1, 822, 823, -1, -1, - -1, -1, 1475, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, -1, 845, - -1, 227, -1, -1, -1, -1, -1, -1, 234, -1, - 236, -1, 858, -1, 860, -1, -1, 863, -1, -1, + 220, 221, 222, -1, -1, -1, 768, 227, -1, 679, + -1, -1, -1, 932, -1, -1, -1, -1, -1, -1, + 939, -1, -1, -1, -1, -1, -1, 946, -1, 699, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 876, -1, 878, -1, 880, -1, 882, -1, -1, -1, - -1, -1, 888, -1, -1, -1, -1, 893, 6, 187, - -1, -1, -1, 191, 900, -1, -1, -1, 196, 197, - 198, 199, 200, -1, -1, -1, 204, -1, -1, 6, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 925, - 218, 219, -1, -1, -1, 223, 932, 933, -1, -1, - 228, -1, 938, 7, 8, 233, -1, 235, -1, -1, + -1, 803, 804, 1828, -1, 807, 808, 809, -1, 811, + 812, -1, -1, -1, -1, -1, 1841, -1, 820, -1, + 122, 823, 824, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1858, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 846, -1, -1, -1, 188, 189, + 190, -1, -1, -1, -1, -1, -1, 859, -1, 861, + -1, 201, 864, 203, 204, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 877, -1, 879, -1, 881, + -1, 883, -1, -1, 1909, -1, -1, 889, -1, 229, + -1, 231, 894, -1, -1, -1, -1, 807, -1, 901, + -1, 811, -1, -1, -1, 1930, -1, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 12, 13, 926, 227, -1, -1, -1, -1, + -1, 933, 934, -1, -1, -1, -1, 939, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 859, + -1, 861, -1, -1, 864, -1, 958, -1, -1, 961, + -1, -1, -1, -1, -1, -1, -1, 877, -1, 879, + -1, 881, -1, 883, -1, 1134, -1, -1, 980, 889, + 982, 983, -1, -1, 894, -1, -1, -1, -1, -1, + -1, 993, -1, -1, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, -1, 47, -1, + 100, 101, 102, -1, -1, 105, 926, -1, -1, -1, + -1, 111, 112, 1025, -1, 115, 116, -1, 118, 119, + 120, 1033, 1034, 1035, 124, 1037, -1, -1, -1, -1, + -1, 12, 13, 1045, -1, -1, -1, -1, 138, -1, + 2075, 2076, 2077, 2078, 2079, -1, -1, 1059, -1, -1, + -1, -1, 1064, -1, -1, -1, -1, -1, 1227, 1228, + 1229, 1073, -1, -1, 164, 165, 166, 1079, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1089, 1090, 1091, + 1092, 1093, -1, -1, -1, -1, -1, -1, 1100, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, -1, 1037, -1, 100, + 101, 102, -1, -1, 105, -1, -1, -1, -1, 2164, + 111, 112, -1, -1, 115, 116, 236, 118, 119, 120, + -1, -1, -1, 124, -1, -1, -1, -1, 1160, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 1170, 1171, + -1, 1173, 1174, -1, 1176, 1177, 1178, -1, -1, 1089, + 1090, 1091, 1092, -1, 1186, -1, -1, -1, -1, -1, + 1192, -1, -1, 164, 165, 166, -1, -1, -1, -1, + -1, 1203, -1, 1205, -1, 1207, -1, 1209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 957, -1, -1, 960, -1, -1, -1, -1, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 979, -1, 981, 982, 227, -1, -1, - -1, -1, 1635, 1636, -1, 235, 992, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 47, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, -1, 227, -1, 1024, 1672, - -1, -1, -1, -1, -1, -1, 1032, 1033, 1034, -1, - 1036, -1, -1, -1, -1, -1, -1, -1, 1044, -1, + 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1232, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1058, -1, 238, -1, -1, 1063, -1, 243, - -1, -1, -1, 7, 248, -1, 1072, -1, -1, -1, - -1, -1, 1078, -1, -1, -1, -1, -1, -1, 263, - -1, -1, 1088, 1089, 1090, 1091, 1092, -1, -1, -1, - 1096, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 1160, -1, -1, -1, -1, -1, -1, -1, -1, 298, + -1, -1, -1, -1, 1266, 236, -1, -1, 307, 308, + 309, -1, -1, -1, 313, -1, -1, -1, -1, -1, + -1, -1, 1192, -1, -1, -1, -1, 1289, -1, -1, + -1, -1, 1294, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 342, -1, 12, 13, -1, -1, -1, + 1469, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, - -1, 295, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, -1, -1, -1, -1, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - 1156, -1, -1, 227, -1, -1, -1, -1, 8, -1, - 1166, 1167, 1815, 1169, 1170, -1, 1172, 1173, 1174, -1, - -1, -1, -1, -1, -1, 1828, 1182, -1, -1, -1, - -1, -1, 1188, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1845, 1199, -1, 1201, -1, 1203, -1, 1205, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, + -1, -1, 8, -1, 1336, -1, -1, -1, -1, -1, + -1, -1, -1, 1345, 1346, 1347, 1348, -1, -1, -1, + 1352, 1353, 8, -1, -1, -1, 395, 396, -1, -1, + -1, -1, -1, -1, -1, 1367, 1368, -1, -1, 408, + -1, -1, -1, 8, -1, -1, -1, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 100, 101, 102, -1, -1, 105, -1, + -1, -1, -1, -1, 111, 112, -1, 446, 115, 116, + -1, 118, 119, 120, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1228, -1, -1, -1, -1, -1, 278, -1, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1896, -1, -1, -1, -1, 298, -1, - -1, -1, -1, -1, -1, -1, 1262, 307, 308, 309, - -1, -1, -1, 313, 1917, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 1285, - -1, -1, -1, 227, 1290, -1, -1, -1, -1, -1, - -1, -1, 342, -1, -1, -1, -1, -1, 482, 8, - -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, -1, -1, -1, 100, 101, - 102, 103, 8, 105, -1, -1, 1332, -1, 110, 111, - 112, -1, -1, 115, 116, 1341, 118, 119, 120, 1345, - 1346, -1, 124, -1, -1, 395, 396, -1, -1, -1, - -1, -1, -1, -1, 1360, 1361, 138, -1, 408, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, - -1, -1, 164, 165, 166, -1, -1, -1, -1, -1, - -1, -1, -1, 577, -1, -1, 446, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2062, - 2063, 2064, 2065, 2066, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 608, 609, -1, -1, -1, -1, - -1, 1437, 1438, 1439, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1449, -1, 1451, 8, -1, -1, -1, - -1, -1, -1, -1, 236, -1, 1462, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1475, - -1, 655, 656, 657, 1480, -1, -1, -1, -1, -1, - -1, -1, 1488, 1489, 1490, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 679, -1, -1, 2151, -1, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 1520, 699, -1, -1, 227, -1, - -1, 571, -1, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, 1544, -1, - -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1560, -1, -1, -1, -1, 1565, + -1, 138, -1, 1592, -1, -1, -1, -1, -1, -1, + -1, -1, 1444, 1445, 1446, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1456, -1, 1458, 164, 165, 166, + 8, -1, -1, -1, -1, -1, -1, 1469, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1482, -1, -1, -1, -1, 1487, -1, -1, -1, -1, + -1, -1, -1, 1495, 1496, 1497, 1655, 8, 1657, -1, + 1659, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1677, 1678, + 1679, 1680, 1681, 1682, -1, 1527, -1, -1, -1, 236, + -1, -1, 571, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, 1551, + -1, 227, -1, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, 1570, -1, + -1, 227, 1482, 1575, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 1590, 1591, + -1, -1, 227, -1, -1, 1597, 1598, -1, -1, -1, + -1, -1, 1604, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1621, + 1622, 1623, 1624, 1625, 1626, 1627, -1, -1, -1, -1, + -1, -1, -1, 1635, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1645, 1646, 1647, -1, 1649, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1661, + 1662, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, + 1682, -1, -1, -1, 1686, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1697, -1, -1, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, -1, 1717, 227, -1, -1, -1, + -1, -1, 761, -1, -1, -1, 765, -1, -1, -1, + -1, -1, -1, -1, -1, 1645, 1646, -1, 4, 5, + -1, -1, 1744, 1745, -1, -1, -1, -1, -1, -1, + 1752, -1, -1, -1, -1, -1, -1, 1916, -1, 1918, + -1, 1920, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1931, 1932, 1933, 1934, 1935, 1779, 44, 45, + 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, + -1, 57, 58, 59, 60, -1, -1, -1, 1800, 65, + 66, 67, -1, -1, 70, -1, 4, 5, -1, -1, + -1, -1, -1, -1, -1, 81, -1, 1819, -1, -1, + -1, -1, -1, -1, -1, -1, 1828, -1, 1987, -1, + -1, -1, 1991, -1, 1836, -1, 1838, -1, -1, 1841, + -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, 1858, -1, -1, 57, + 58, 59, 60, 902, -1, -1, -1, 65, 66, 67, + -1, -1, 70, -1, 1876, -1, -1, -1, -1, 1881, + -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, + 2049, 1893, -1, -1, 2053, -1, -1, 1899, 1900, 1901, + 1902, 1903, -1, -1, -1, -1, -1, 1909, -1, -1, + -1, -1, -1, -1, 1916, -1, 1918, -1, 1920, -1, + 2079, -1, 188, 189, 190, -1, -1, -1, 1930, -1, + -1, 1841, -1, -1, -1, 201, 1938, 203, 204, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 1580, 1581, -1, -1, 227, -1, - -1, 1587, 1588, -1, -1, 234, -1, 236, 1594, -1, + 219, 220, 221, 222, -1, -1, -1, 996, 227, 1961, + 1962, 1000, -1, -1, 1966, 1004, -1, 236, -1, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, -1, -1, -1, 227, 2147, 2148, + 188, 189, 190, 1995, 234, -1, 236, -1, -1, 1909, + -1, -1, -1, 201, -1, 203, 204, -1, 1047, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1611, 1612, 1613, 1614, 1615, - 1616, 1617, -1, -1, -1, -1, -1, -1, -1, 1625, - -1, -1, 806, -1, -1, -1, 810, -1, -1, 1635, - 1636, 1637, -1, 1639, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1651, 1652, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, -1, -1, -1, 227, 1672, -1, -1, -1, - 1676, -1, -1, -1, 858, -1, 860, -1, -1, 863, - -1, 1687, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, 876, -1, 878, -1, 880, -1, 882, -1, - -1, 1707, -1, -1, 888, -1, -1, -1, -1, 893, - -1, 761, -1, -1, -1, 765, -1, -1, -1, 8, - -1, -1, -1, -1, -1, 1731, 1732, -1, -1, -1, - -1, -1, -1, 1739, -1, -1, -1, -1, -1, -1, - -1, 925, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, - 1766, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, - 103, 1787, 105, -1, -1, -1, -1, 110, 111, 112, - -1, -1, 115, 116, -1, 118, 119, 120, -1, -1, - 1806, 124, -1, -1, -1, -1, -1, -1, -1, 1815, - -1, -1, -1, -1, -1, 138, -1, 1823, -1, 1825, - -1, -1, 1828, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1845, - -1, 164, 165, 166, -1, -1, -1, -1, -1, -1, - -1, 901, 1036, -1, -1, -1, -1, 1863, -1, -1, - -1, -1, 1868, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1880, -1, -1, -1, -1, -1, - 1886, 1887, 1888, 1889, 1890, -1, -1, -1, -1, -1, - 1896, -1, -1, -1, -1, -1, -1, 1903, -1, 1905, - -1, 1907, -1, -1, 1088, 1089, 1090, 1091, -1, -1, - -1, 1917, -1, 236, -1, -1, -1, -1, -1, 1925, + 1930, -1, -1, -1, 2026, -1, -1, -1, -1, -1, + 2032, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2042, 2043, 2044, 2045, 2046, 2047, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2060, -1, + -1, 2063, -1, -1, 2066, -1, -1, -1, 2070, -1, + -1, -1, -1, 2075, 2076, 2077, 2078, 2079, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2089, -1, -1, + 2092, -1, -1, -1, -1, -1, -1, -1, -1, 1138, + 1139, -1, 1141, -1, 1143, 1144, -1, 1146, -1, 1148, + 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, - -1, -1, 1948, 1949, -1, 995, -1, 1953, -1, 999, - -1, -1, -1, 1003, -1, 209, 210, 211, 212, 213, + 219, 220, 221, 222, -1, -1, -1, -1, 227, 2141, + 2142, 2143, 2144, 2145, 2146, 234, 1185, 236, -1, -1, + -1, -1, 1191, 587, -1, -1, -1, -1, -1, -1, + -1, -1, 2164, -1, -1, 2075, 2076, 2077, 2078, 2079, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, + 5, -1, -1, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - -1, -1, 1156, 227, -1, -1, 1982, -1, -1, -1, - -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, 1046, -1, -1, 227, - -1, -1, -1, -1, 1188, -1, 234, 2013, 236, -1, - -1, -1, -1, 2019, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2029, 2030, 2031, 2032, 2033, 2034, -1, + -1, -1, -1, 227, 2206, 2207, 2208, 2209, 2210, 2211, + 234, -1, 236, -1, -1, 1254, -1, -1, -1, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 1267, 1268, + 1269, -1, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, 67, -1, 1283, 70, -1, -1, -1, -1, + -1, -1, -1, -1, 2164, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2047, -1, -1, 2050, -1, -1, 2053, -1, -1, - -1, 2057, -1, -1, -1, -1, 2062, 2063, 2064, 2065, - 2066, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2076, -1, -1, 2079, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1134, 1135, -1, 1137, -1, 1139, - 1140, -1, 1142, -1, 1144, 1145, 1146, 1147, 1148, 1149, - 1150, 1151, 1152, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 587, -1, 4, - 5, 227, 2128, 2129, 2130, 2131, 2132, 2133, -1, -1, - 236, 1181, -1, -1, -1, -1, -1, 1187, -1, -1, - -1, -1, -1, -1, -1, 2151, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, - 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, - -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, - 65, 66, 67, -1, -1, 70, -1, 2193, 2194, 2195, - 2196, 2197, 2198, -1, -1, -1, 81, -1, -1, -1, - 1250, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1263, 1264, 1265, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1279, - -1, -1, -1, -1, -1, -1, -1, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, -1, 719, - 720, 721, 722, 723, 724, 725, -1, -1, -1, 729, - 730, 731, -1, -1, -1, 735, 736, -1, 738, -1, - -1, -1, -1, 743, 744, 745, -1, 747, -1, -1, - -1, -1, -1, -1, 754, 755, -1, -1, -1, -1, - -1, 1475, -1, -1, -1, -1, -1, 1347, -1, -1, - -1, -1, 772, 188, 189, 190, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, 201, -1, 203, 204, - -1, 1371, -1, -1, -1, -1, -1, 1377, -1, -1, + -1, -1, -1, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, -1, 719, 720, 721, 722, 723, + 724, 725, -1, -1, -1, 729, 730, 731, -1, -1, + -1, 735, 736, -1, 738, -1, -1, -1, -1, 743, + 744, 745, -1, 747, -1, 1354, -1, -1, -1, -1, + 754, 755, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 21, 22, -1, -1, -1, -1, 772, 1378, + -1, -1, -1, -1, -1, 1384, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1398, + -1, -1, -1, 188, 189, 190, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 201, -1, 203, -1, + -1, -1, 1421, 1422, 1423, -1, -1, -1, 1427, 1428, + -1, 1430, -1, 1432, -1, 1434, -1, 1436, 1437, 1438, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, -1, -1, -1, 1456, 227, -1, + -1, -1, -1, -1, -1, -1, -1, 236, -1, -1, + -1, -1, 1471, -1, -1, 869, -1, -1, -1, -1, + 1479, -1, 131, -1, -1, -1, -1, -1, -1, -1, + 884, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, -1, -1, -1, 168, + 169, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, -1, 181, -1, -1, 3, 4, -1, 187, 188, + -1, 9, 10, 11, 193, 194, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, + 1569, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1582, -1, 53, 54, 55, 56, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, -1, -1, -1, -1, -1, -1, 268, + -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, + -1, -1, 281, -1, -1, -1, -1, -1, 3, 4, + -1, -1, -1, 292, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, -1, -1, -1, -1, -1, 1676, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, + 55, 56, 1691, -1, -1, -1, 61, -1, -1, -1, + -1, -1, 1701, 12, 13, 1099, -1, 72, 73, 74, + -1, -1, 1711, -1, -1, 80, -1, 1716, -1, 187, + -1, -1, -1, 191, -1, -1, -1, -1, 196, 197, + 198, 199, 200, -1, -1, -1, 204, -1, 1132, 1133, + -1, -1, -1, -1, -1, -1, -1, 1746, -1, -1, + 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, + 228, -1, -1, -1, -1, 233, -1, 235, -1, -1, + -1, -1, 1771, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, + -1, 100, 101, 102, -1, -1, 105, -1, -1, -1, + -1, -1, 111, 112, -1, -1, 115, 116, -1, 118, + 119, 120, -1, -1, -1, 124, -1, 1816, -1, -1, + -1, -1, 187, -1, -1, -1, 191, 476, -1, 138, + -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1391, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, -1, -1, -1, 1414, 1415, 1416, -1, -1, 236, - 1420, 1421, -1, 1423, -1, 1425, -1, 1427, -1, 1429, - 1430, 1431, -1, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, 868, 1449, - -1, 227, -1, -1, -1, -1, -1, -1, 12, 13, - 236, -1, -1, 883, 1464, -1, 131, -1, -1, -1, - -1, -1, 1472, -1, -1, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - -1, 1635, 1636, 168, 169, 170, 171, -1, 173, 174, - 175, 176, 177, 178, -1, -1, 181, -1, -1, -1, - -1, -1, 187, 188, -1, -1, -1, -1, 193, 194, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, -1, -1, -1, 100, 101, 102, 103, - -1, 105, -1, -1, -1, -1, 110, 111, 112, 1559, - -1, 115, 116, -1, 118, 119, 120, -1, -1, -1, - 124, -1, 1572, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - -1, -1, -1, 268, 227, 270, 271, 272, 273, -1, - 164, 165, 166, 236, -1, -1, 281, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 292, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, - -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1666, -1, -1, -1, - -1, -1, -1, -1, -1, 1095, -1, -1, -1, -1, - -1, 1681, 236, -1, -1, -1, -1, -1, -1, -1, - -1, 1691, -1, -1, 1828, -1, -1, -1, -1, -1, - -1, 1701, -1, -1, -1, -1, 1706, -1, 1128, 1129, + -1, -1, -1, 218, 219, 164, 165, 166, 223, -1, + -1, -1, -1, 228, 229, -1, -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3, 4, 5, -1, -1, -1, 9, - 10, 11, -1, 1733, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, -1, 1758, -1, - -1, -1, 1896, -1, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 5, 1917, -1, 65, 66, 67, -1, -1, - 70, -1, 72, 73, 74, -1, -1, -1, -1, -1, - 80, 81, -1, 1803, -1, -1, -1, -1, -1, -1, - -1, 476, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, - -1, -1, -1, -1, -1, -1, -1, 1867, -1, -1, - -1, -1, -1, 1293, 1874, 1875, -1, -1, -1, 1299, - 1300, 1301, 1302, 1303, -1, 1305, -1, 1307, 1308, -1, - 1310, 1311, -1, 1893, 1314, 1315, 1316, -1, -1, -1, - 180, 1321, -1, -1, -1, -1, -1, 187, 188, 189, - 190, 191, -1, 1913, -1, -1, 196, 197, 198, 199, - 200, 201, -1, 203, 204, -1, -1, -1, 2062, 2063, - 2064, 2065, 2066, -1, -1, -1, -1, -1, 218, 219, - -1, -1, -1, 223, -1, -1, -1, -1, 228, -1, - 230, -1, 232, 233, -1, 235, -1, 237, -1, -1, - -1, -1, -1, -1, -1, 188, 189, 190, -1, -1, - -1, -1, -1, -1, 1394, 1975, -1, -1, 201, -1, - 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1411, -1, -1, 1994, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - -1, -1, -1, 227, -1, -1, -1, 2151, 3, 4, - -1, -1, 236, -1, 9, 10, 11, -1, -1, 14, + -1, 1880, -1, -1, -1, -1, -1, -1, 1887, 1888, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1297, -1, -1, -1, 1906, -1, 1303, + 1304, 1305, 1306, 1307, -1, 1309, -1, 1311, 1312, -1, + 1314, 1315, -1, -1, 1318, 1319, 1320, 1926, 3, 4, + -1, 1325, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, - 55, 56, -1, -1, -1, -1, 61, -1, 2078, -1, - 1500, -1, -1, -1, -1, 1505, -1, 72, 73, 74, - -1, -1, 12, 13, -1, 80, -1, -1, -1, 84, - -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, - -1, -1, -1, -1, 99, -1, -1, 1537, 1538, -1, - -1, 1541, 1542, -1, -1, -1, 111, -1, 113, -1, - -1, 116, -1, -1, 119, -1, -1, -1, -1, -1, - -1, 126, 127, 128, 129, 130, -1, -1, 133, 134, - 135, 136, 137, -1, -1, -1, 141, -1, -1, 144, - -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, - 100, 101, 102, 103, -1, 105, -1, -1, -1, 2189, - 110, 111, 112, -1, -1, 115, 116, -1, 118, 119, - 120, -1, 187, -1, 124, -1, 191, 192, -1, -1, - -1, 196, 197, 198, 199, 200, -1, -1, 138, 204, - -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, + 35, 36, -1, -1, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 53, 54, + 55, 56, 227, -1, -1, -1, 61, -1, -1, 1988, + -1, 236, -1, -1, -1, -1, -1, 72, 73, 74, + -1, -1, -1, -1, -1, 80, -1, 1401, 2007, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3, 4, 5, -1, 1418, -1, 9, 10, 11, -1, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, -1, -1, -1, -1, -1, -1, + -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, + -1, -1, 65, 66, 67, -1, -1, 70, -1, 72, + 73, 74, 2091, -1, -1, -1, -1, 80, 81, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 187, 1507, -1, -1, 191, -1, 1512, -1, + 5, 196, 197, 198, 199, 200, -1, -1, -1, 204, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, - -1, -1, -1, 228, 164, 165, 166, -1, 233, -1, - 235, 236, -1, 209, 210, 211, 212, 213, 214, 215, + 1544, 1545, -1, 228, 1548, 1549, 231, -1, 233, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, + -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, 67, -1, -1, 70, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, 180, -1, -1, + -1, -1, -1, 2202, 187, 188, 189, 190, 191, -1, + -1, -1, -1, 196, 197, 198, 199, 200, 201, -1, + 203, 204, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, + 223, -1, -1, -1, -1, 228, -1, 230, -1, 232, + 233, -1, 235, -1, 237, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, + -1, -1, 236, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, - -1, 227, -1, -1, 1694, 1695, -1, -1, 1698, 1699, - 236, -1, -1, -1, 1704, 1705, -1, -1, -1, -1, - -1, -1, 3, 4, -1, -1, -1, -1, 9, 10, + -1, 227, -1, 188, 189, 190, -1, -1, -1, 235, + 1704, 1705, -1, -1, 1708, 1709, 201, -1, 203, -1, + 1714, 1715, 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, -1, -1, -1, -1, -1, -1, -1, -1, 1759, - 1760, -1, 53, 54, 55, 56, -1, -1, -1, -1, + 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 53, 54, 55, 56, -1, -1, 1772, 1773, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, 12, 13, -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, -1, 99, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 111, -1, 113, 1068, 1069, 116, -1, -1, 119, 1074, - 1075, -1, -1, -1, -1, 126, 127, 128, 129, 130, + 1069, 1070, -1, -1, -1, -1, 1075, 1076, -1, -1, + 111, -1, 113, -1, -1, 116, -1, -1, 119, -1, + -1, -1, -1, -1, -1, 126, 127, 128, 129, 130, -1, -1, 133, 134, 135, 136, 137, -1, -1, -1, 141, -1, -1, 144, -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, -1, -1, -1, 100, 101, 102, 103, -1, 105, - -1, -1, -1, -1, 110, 111, 112, -1, -1, 115, + 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, + -1, -1, -1, -1, -1, 111, 112, -1, -1, 115, 116, -1, 118, 119, 120, -1, 187, -1, 124, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, 138, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, 164, 165, - 166, -1, 233, -1, -1, 236, -1, -1, -1, -1, - -1, -1, 3, 4, 5, -1, -1, -1, 9, 10, - 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, -1, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, -1, -1, -1, 65, 66, 67, -1, -1, 70, - -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, - 81, -1, -1, 84, -1, -1, 87, 1282, 1283, 90, - -1, 92, 1287, 1288, -1, -1, -1, -1, 99, -1, - -1, -1, -1, -1, 4, 5, -1, -1, -1, -1, - 111, -1, 113, -1, -1, 116, -1, -1, 119, -1, - -1, -1, -1, -1, -1, 126, 127, 128, 129, 130, - -1, -1, 133, 134, 135, 136, 137, -1, -1, -1, - 141, -1, -1, 144, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, -1, -1, -1, 57, 58, 59, - 60, -1, -1, -1, -1, 65, 66, 67, -1, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 81, -1, -1, -1, -1, 187, 188, 189, 190, - 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, - 201, -1, 203, 204, -1, -1, -1, -1, -1, -1, - -1, -1, 2162, -1, -1, -1, -1, 218, 219, -1, - -1, -1, 223, -1, -1, -1, -1, 228, -1, 3, - 4, 5, 233, -1, 235, 9, 10, 11, -1, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 188, 189, - 190, 65, 66, 67, -1, -1, 70, -1, 72, 73, - 74, 201, -1, 203, 204, -1, 80, 81, -1, -1, - 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, - -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, - -1, 4, 5, -1, -1, -1, -1, 111, -1, 113, - -1, -1, 116, -1, -1, 119, -1, -1, -1, -1, - -1, -1, 126, 127, 128, 129, 130, -1, -1, 133, - 134, 135, 136, 137, -1, -1, -1, 141, -1, -1, - 144, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, -1, -1, -1, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, - -1, -1, -1, 187, 188, 189, 190, 191, 192, -1, - -1, -1, 196, 197, 198, 199, 200, 201, -1, 203, - 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, - -1, -1, -1, -1, 228, -1, 3, 4, 5, 233, - -1, 235, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, - -1, -1, -1, -1, 61, 188, 189, 190, -1, -1, - -1, -1, -1, -1, -1, 72, 73, 74, 201, -1, - 203, -1, -1, 80, -1, -1, -1, 84, -1, -1, - 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, - -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 111, -1, 113, -1, -1, 116, - -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, - 127, 128, 129, 130, -1, -1, 133, 134, 135, 136, - 137, -1, -1, -1, 141, -1, -1, 144, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, - -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 187, -1, -1, -1, 191, 192, -1, -1, -1, 196, - 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, - -1, 228, -1, 3, 4, 5, 233, -1, 235, 9, + 166, -1, 233, -1, 235, 236, -1, -1, -1, -1, + -1, -1, -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, - 80, -1, -1, -1, 84, -1, -1, 87, -1, -1, + 236, 61, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 72, 73, 74, -1, -1, 1286, 1287, -1, + 80, -1, 1291, 1292, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 113, -1, -1, 116, -1, -1, 119, @@ -4333,38 +4274,16 @@ static const yytype_int16 yycheck[] = -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, - -1, -1, -1, 223, -1, -1, -1, -1, 228, -1, - 3, 4, -1, 233, -1, 235, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 53, 54, 55, 56, -1, -1, -1, -1, 61, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, - 73, 74, -1, -1, -1, -1, -1, 80, -1, -1, - -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, - -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, - 113, -1, -1, 116, -1, -1, 119, -1, -1, -1, - -1, -1, -1, 126, 127, 128, 129, 130, -1, -1, - 133, 134, 135, 136, 137, -1, -1, -1, 141, -1, - -1, 144, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, -1, -1, -1, -1, -1, -1, -1, -1, 236, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 187, -1, -1, -1, 191, 192, - -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, - -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, - 223, -1, -1, -1, -1, 228, -1, 3, 4, -1, - 233, -1, 235, 9, 10, 11, -1, -1, 14, 15, + -1, 2175, -1, 223, -1, -1, -1, -1, 228, -1, + -1, -1, -1, 233, -1, -1, 236, 3, 4, 5, + -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 53, 54, 55, - 56, -1, -1, -1, -1, 61, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, - -1, -1, -1, -1, 80, -1, -1, -1, 84, -1, + 36, 37, 38, 39, 40, 41, -1, -1, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, -1, -1, -1, 65, + 66, 67, -1, -1, 70, -1, 72, 73, 74, -1, + -1, -1, -1, -1, 80, 81, -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 113, -1, -1, @@ -4375,19 +4294,19 @@ static const yytype_int16 yycheck[] = 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 187, -1, -1, -1, 191, 192, -1, -1, -1, - 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, + -1, 187, 188, 189, 190, 191, 192, -1, -1, -1, + 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, - -1, -1, 228, -1, 3, 4, -1, 233, -1, 235, + -1, -1, 228, -1, 3, 4, 5, 233, -1, 235, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 53, 54, 55, 56, -1, -1, - -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, - -1, 80, -1, -1, -1, 84, -1, -1, 87, -1, + 39, 40, 41, -1, -1, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, -1, -1, -1, 65, 66, 67, -1, + -1, 70, -1, 72, 73, 74, -1, -1, -1, -1, + -1, 80, 81, -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 113, -1, -1, 116, -1, -1, @@ -4397,12 +4316,12 @@ static const yytype_int16 yycheck[] = 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 187, -1, - -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, - 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 187, 188, + 189, 190, 191, 192, -1, -1, -1, 196, 197, 198, + 199, 200, 201, -1, 203, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, - -1, 3, 4, -1, 233, -1, 235, 9, 10, 11, + -1, 3, 4, 5, 233, -1, 235, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, @@ -4425,7 +4344,7 @@ static const yytype_int16 yycheck[] = -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, -1, 3, 4, - -1, 233, -1, 235, 9, 10, 11, -1, -1, 14, + 5, 233, -1, 235, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, @@ -4603,66 +4522,6 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, -1, -1, -1, 191, 192, -1, -1, -1, - 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, - -1, -1, 228, -1, 3, 4, 5, 233, -1, 235, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, -1, -1, - -1, -1, -1, -1, -1, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, -1, -1, -1, 65, 66, 67, -1, - -1, 70, -1, 72, 73, 74, -1, 3, 4, 5, - -1, 80, 81, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, -1, -1, -1, -1, -1, -1, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, -1, -1, -1, 65, - 66, 67, -1, -1, 70, -1, 72, 73, 74, -1, - -1, -1, -1, -1, 80, 81, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, - -1, -1, -1, 236, -1, -1, -1, -1, 187, 188, - 189, 190, 191, -1, -1, -1, -1, 196, 197, 198, - 199, 200, 201, -1, 203, 204, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, - 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, - -1, -1, -1, -1, 233, -1, 235, -1, -1, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, - -1, 187, 188, 189, 190, 191, 236, -1, -1, -1, - 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, - -1, -1, 228, -1, 3, 4, 5, 233, -1, 235, - 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, -1, -1, - -1, -1, -1, -1, -1, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, -1, -1, -1, 65, 66, 67, -1, - -1, 70, -1, 72, 73, 74, -1, 3, 4, -1, - -1, 80, 81, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 53, 54, 55, - 56, 227, -1, -1, -1, 61, -1, -1, -1, -1, - 236, -1, -1, -1, -1, -1, 72, 73, 74, -1, - -1, -1, -1, -1, 80, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, - -1, -1, 236, -1, -1, -1, -1, -1, 187, 188, - 189, 190, 191, -1, -1, -1, -1, 196, 197, 198, - 199, 200, 201, -1, 203, 204, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, - 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, - -1, -1, -1, -1, 233, -1, 235, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, - -1, 187, -1, -1, 236, 191, -1, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, @@ -4688,204 +4547,360 @@ static const yytype_int16 yycheck[] = -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, - 219, -1, -1, -1, 223, 3, 4, 5, -1, 228, - -1, 9, 10, 11, 233, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, - -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, -1, -1, -1, 65, 66, 67, - -1, -1, 70, -1, 72, 73, 74, -1, 3, 4, - -1, -1, 80, 81, 9, 10, 11, -1, -1, 14, + 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, + -1, 3, 4, -1, 233, -1, 235, 9, 10, 11, + -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 53, 54, 55, 56, -1, -1, -1, -1, 61, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 72, 73, 74, -1, -1, -1, -1, -1, 80, -1, + -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, + 92, -1, -1, -1, -1, -1, -1, 99, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, + -1, 113, -1, -1, 116, -1, -1, 119, -1, -1, + -1, -1, -1, -1, 126, 127, 128, 129, 130, -1, + -1, 133, 134, 135, 136, 137, -1, -1, -1, 141, + -1, -1, 144, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, + -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, + 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 187, -1, -1, -1, 191, + 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, + -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, + -1, 223, -1, -1, -1, -1, 228, -1, 3, 4, + -1, 233, -1, 235, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, -1, -1, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 53, 54, - 55, 56, 227, -1, -1, -1, 61, -1, -1, -1, - -1, 236, -1, -1, -1, -1, -1, 72, 73, 74, - -1, -1, -1, -1, -1, 80, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, - -1, -1, -1, 236, -1, -1, -1, -1, -1, 187, - 188, 189, 190, 191, -1, -1, -1, -1, 196, 197, - 198, 199, 200, 201, -1, 203, 204, -1, -1, -1, + 35, 36, 37, 38, 39, 40, 41, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, + 55, 56, -1, -1, -1, -1, 61, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, + -1, -1, -1, -1, -1, 80, -1, -1, -1, 84, + -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, + -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 111, -1, 113, -1, + -1, 116, -1, -1, 119, -1, -1, -1, -1, -1, + -1, 126, 127, 128, 129, 130, -1, -1, 133, 134, + 135, 136, 137, -1, -1, -1, 141, -1, -1, 144, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, + -1, -1, -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, - 228, -1, -1, -1, -1, 233, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, - -1, -1, 187, 236, -1, -1, 191, -1, -1, -1, + -1, -1, 187, -1, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 218, 219, -1, -1, -1, 223, 3, - 4, -1, -1, 228, 229, 9, 10, 11, 233, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 53, - 54, 55, 56, 227, -1, -1, -1, 61, -1, -1, - -1, -1, 236, -1, -1, -1, 3, 4, 72, 73, - 74, -1, 9, 10, 11, -1, 80, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 53, 54, 55, 56, - 227, -1, -1, -1, 61, -1, -1, -1, -1, 236, - -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, - -1, -1, -1, 80, 209, 210, 211, 212, 213, 214, + -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, + -1, -1, -1, 228, -1, 3, 4, -1, 233, -1, + 235, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, 54, 55, 56, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, -1, -1, -1, 84, -1, -1, 87, + -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, + -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, 113, -1, -1, 116, -1, + -1, 119, -1, -1, -1, -1, -1, -1, 126, 127, + 128, 129, 130, -1, -1, 133, 134, 135, 136, 137, + -1, -1, -1, 141, -1, -1, 144, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, 236, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 187, + -1, -1, -1, 191, 192, -1, -1, -1, 196, 197, + 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, + 228, -1, 3, 4, -1, 233, -1, 235, 9, 10, + 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 53, 54, 55, 56, -1, -1, -1, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, + -1, -1, -1, 84, -1, -1, 87, -1, -1, 90, + -1, 92, -1, -1, -1, -1, -1, -1, 99, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 111, -1, 113, -1, -1, 116, -1, -1, 119, -1, + -1, -1, -1, -1, -1, 126, 127, 128, 129, 130, + -1, -1, 133, 134, 135, 136, 137, -1, -1, -1, + 141, -1, -1, 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 187, -1, -1, -1, 191, -1, -1, - -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 187, -1, -1, -1, + 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, + -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, + -1, -1, 223, -1, -1, -1, -1, 228, -1, 3, + 4, 5, 233, -1, 235, 9, 10, 11, -1, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, -1, -1, -1, -1, -1, -1, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, + -1, 65, 66, 67, -1, -1, 70, -1, 72, 73, + 74, -1, 3, 4, 5, -1, 80, 81, 9, 10, + 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, -1, -1, -1, -1, + -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, -1, -1, -1, 65, 66, 67, -1, -1, 70, + -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, + 81, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, + -1, -1, -1, -1, -1, -1, -1, -1, 236, -1, + -1, -1, -1, 187, 188, 189, 190, 191, -1, -1, + -1, -1, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, - -1, -1, -1, -1, 228, -1, -1, 231, -1, 233, + -1, -1, -1, -1, 228, -1, -1, -1, -1, 233, + -1, 235, -1, -1, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, + -1, -1, 227, -1, -1, -1, 187, 188, 189, 190, + 191, 236, -1, -1, -1, 196, 197, 198, 199, 200, + 201, -1, 203, 204, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, + -1, -1, 223, -1, -1, -1, -1, 228, -1, 3, + 4, 5, 233, -1, 235, 9, 10, 11, -1, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, -1, -1, -1, -1, -1, -1, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, + -1, 65, 66, 67, -1, -1, 70, -1, 72, 73, + 74, -1, -1, -1, -1, -1, 80, 81, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, - 187, -1, -1, -1, 191, -1, -1, 236, -1, 196, + -1, -1, -1, -1, -1, 3, 4, 236, -1, -1, + -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 53, 54, 55, 56, 227, + -1, -1, -1, 61, -1, -1, -1, -1, 236, -1, + -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, + -1, -1, 80, 187, 188, 189, 190, 191, -1, -1, + -1, -1, 196, 197, 198, 199, 200, 201, -1, 203, + 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, + -1, -1, -1, -1, 228, -1, 3, 4, -1, 233, + -1, 235, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, + -1, -1, -1, -1, 61, -1, -1, -1, -1, 187, + -1, -1, -1, 191, -1, 72, 73, 74, 196, 197, + 198, 199, 200, 80, -1, -1, 204, 84, -1, -1, + 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, + 218, 219, 99, -1, -1, 223, -1, -1, -1, -1, + 228, 229, -1, -1, 111, 233, 113, -1, -1, 116, + -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, + 127, 128, 129, 130, -1, -1, 133, 134, 135, 136, + 137, -1, -1, -1, 141, -1, -1, 144, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, + -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 187, -1, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 218, 219, -1, -1, -1, 223, 3, 4, -1, - -1, 228, 229, 9, 10, 11, 233, -1, 14, 15, + -1, 218, 219, -1, -1, -1, 223, 3, 4, 5, + -1, 228, -1, 9, 10, 11, 233, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 53, 54, 55, - 56, 227, -1, -1, -1, 61, -1, -1, -1, -1, - 236, -1, -1, -1, -1, -1, 72, 73, 74, 3, - 4, -1, 6, -1, 80, 9, 10, 11, -1, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, -1, -1, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 53, - 54, 55, 56, 227, -1, -1, -1, 61, -1, -1, - -1, 235, -1, -1, -1, -1, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, 80, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, -1, -1, -1, 227, -1, 229, -1, 231, - -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, - -1, 187, -1, -1, -1, 191, -1, -1, -1, -1, - 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, - -1, -1, 228, -1, -1, 231, -1, 233, -1, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, -1, -1, -1, 227, -1, 229, - -1, -1, -1, 187, 234, -1, -1, 191, -1, -1, - -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, - 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, - 3, 4, -1, 6, 228, -1, 9, 10, 11, 233, + 36, -1, -1, -1, -1, -1, -1, -1, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, -1, -1, -1, 65, + 66, 67, -1, -1, 70, -1, 72, 73, 74, -1, + 3, 4, -1, -1, 80, 81, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 53, 54, 55, 56, 227, -1, -1, -1, 61, -1, - -1, 234, -1, -1, -1, -1, -1, 3, 4, 72, - 73, 74, -1, 9, 10, 11, -1, 80, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, -1, -1, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 53, 54, 55, - 56, 227, -1, -1, -1, 61, -1, -1, 234, -1, - -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, - -1, -1, -1, -1, 80, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, - 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 187, -1, -1, -1, 191, -1, + -1, -1, -1, 236, -1, -1, -1, -1, -1, 72, + 73, 74, -1, -1, -1, -1, -1, 80, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, + -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, + -1, 187, 188, 189, 190, 191, -1, -1, -1, -1, + 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, + -1, -1, 228, -1, -1, -1, -1, 233, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, + -1, -1, -1, -1, 187, 236, -1, -1, 191, -1, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, - 223, -1, -1, -1, -1, 228, 12, 13, -1, -1, - 233, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, - -1, 187, -1, -1, -1, 191, 234, -1, -1, -1, - 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, + 223, -1, -1, -1, -1, 228, 3, 4, 231, 6, + 233, -1, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 53, 54, 55, 56, + 227, -1, -1, -1, 61, -1, -1, -1, -1, 236, + -1, -1, -1, -1, -1, 72, 73, 74, 3, 4, + -1, 6, -1, 80, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 53, 54, + 55, 56, 227, -1, -1, -1, 61, -1, -1, -1, + -1, 236, -1, -1, -1, -1, -1, 72, 73, 74, + -1, -1, -1, -1, -1, 80, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, + -1, -1, -1, 236, -1, -1, -1, -1, -1, -1, + 187, -1, -1, -1, 191, -1, -1, -1, -1, 196, + 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, + -1, 228, -1, -1, -1, -1, 233, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, + -1, -1, 187, -1, 236, -1, 191, -1, -1, -1, + -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 218, 219, 12, 13, -1, 223, -1, -1, - -1, -1, 228, -1, -1, -1, -1, 233, 84, 85, + -1, -1, -1, 218, 219, -1, -1, -1, 223, 3, + 4, -1, -1, 228, -1, 9, 10, 11, 233, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, -1, -1, -1, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, + 54, 55, 56, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, + 74, -1, -1, -1, -1, -1, 80, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, 236, -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, -1, -1, -1, 100, 101, 102, 103, -1, 105, - -1, -1, -1, -1, 110, 111, 112, -1, -1, 115, + 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, + -1, -1, -1, -1, -1, 111, 112, -1, -1, 115, 116, -1, 118, 119, 120, -1, -1, -1, 124, -1, - -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 138, -1, -1, -1, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, - -1, -1, 100, 101, 102, 103, -1, 105, 164, 165, - 166, -1, 110, 111, 112, -1, -1, 115, 116, -1, - 118, 119, 120, -1, -1, -1, 124, -1, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 138, -1, -1, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, - 101, 102, 103, -1, 105, -1, 164, 165, 166, 110, - 111, 112, -1, -1, 115, 116, -1, 118, 119, 120, - 236, -1, -1, 124, -1, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 12, 13, + -1, -1, 138, -1, -1, -1, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + -1, -1, -1, 187, 227, -1, 229, 191, 164, 165, + 166, 234, 196, 197, 198, 199, 200, -1, -1, -1, + 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 218, 219, 12, 13, -1, 223, + -1, -1, -1, -1, 228, -1, -1, -1, -1, 233, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, -1, -1, -1, 100, 101, 102, 103, - -1, 105, -1, 164, 165, 166, 110, 111, 112, -1, - -1, 115, 116, -1, 118, 119, 120, -1, 236, -1, + 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, + -1, 105, -1, -1, -1, -1, -1, 111, 112, -1, + 236, 115, 116, -1, 118, 119, 120, -1, -1, -1, 124, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, -1, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - -1, -1, -1, 100, 101, 102, 103, -1, 105, -1, - 164, 165, 166, 110, 111, 112, -1, -1, 115, 116, - -1, 118, 119, 120, -1, 236, -1, 124, -1, 12, + -1, -1, -1, -1, 138, -1, -1, -1, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, + 164, 165, 166, -1, -1, 111, 112, -1, -1, 115, + 116, -1, 118, 119, 120, -1, -1, -1, 124, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 138, -1, -1, 84, 85, 86, 87, 88, 89, + -1, -1, 138, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, - 100, 101, 102, 103, -1, 105, -1, 164, 165, 166, - 110, 111, 112, -1, -1, 115, 116, -1, 118, 119, - 120, -1, 236, -1, 124, -1, 12, 13, -1, -1, + 100, 101, 102, -1, -1, 105, -1, -1, 164, 165, + 166, 111, 112, -1, -1, 115, 116, -1, 118, 119, + 120, -1, 236, -1, 124, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, - 103, -1, 105, -1, 164, 165, 166, 110, 111, 112, - -1, -1, 115, 116, -1, 118, 119, 120, -1, 236, - -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, -1, -1, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, -1, -1, -1, 100, 101, 102, 103, -1, 105, - -1, 164, 165, 166, 110, 111, 112, -1, -1, 115, - 116, -1, 118, 119, 120, -1, 236, -1, 124, -1, - -1, -1, -1, -1, -1, -1, 0, 1, -1, -1, - 4, -1, 138, -1, -1, -1, -1, -1, 12, 13, - -1, -1, -1, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, 164, 165, - 166, 227, -1, 229, -1, 231, -1, -1, 42, 43, - -1, -1, -1, 236, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 62, 63, - 64, -1, 227, -1, 68, 69, -1, 71, -1, 234, - -1, 75, 76, -1, 78, 79, -1, -1, 82, 83, + -1, -1, 105, -1, 164, 165, 166, -1, 111, 112, + -1, -1, 115, 116, -1, 118, 119, 120, -1, -1, + 236, 124, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 138, -1, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 100, 101, 102, -1, -1, 105, -1, + -1, 164, 165, 166, 111, 112, -1, -1, 115, 116, + -1, 118, 119, 120, -1, -1, 236, 124, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 138, -1, -1, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, + 100, 101, 102, -1, -1, 105, -1, 164, 165, 166, + -1, 111, 112, -1, -1, 115, 116, -1, 118, 119, + 120, -1, -1, 236, 124, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, -1, -1, 99, 100, 101, 102, 103, - 236, 105, 106, 107, 108, 109, 110, 111, 112, 113, - -1, 115, 116, 117, 118, 119, 120, 121, -1, 123, - 124, 125, 126, 127, 128, 129, 130, 131, -1, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, -1, -1, -1, 150, 151, 152, 4, - -1, -1, -1, -1, 158, -1, -1, 12, 13, 163, - 164, 165, 166, -1, -1, 169, -1, 171, -1, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, -1, -1, -1, -1, 42, 43, 193, - 194, 195, -1, -1, -1, -1, -1, -1, 202, -1, - 204, -1, -1, -1, -1, -1, -1, 62, 63, 64, - -1, -1, -1, 68, 69, -1, 71, -1, -1, -1, - 75, 76, -1, 78, 79, -1, -1, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, -1, -1, 99, 100, 101, 102, 103, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, -1, -1, -1, 150, 151, 152, -1, -1, - -1, -1, -1, 158, -1, -1, -1, -1, 163, 164, - 165, 166, -1, -1, 169, -1, 171, -1, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, -1, -1, -1, -1, -1, -1, 193, 194, - 195, -1, -1, -1, -1, -1, -1, 202, -1, 204, + 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, + -1, 105, -1, -1, 164, 165, 166, 111, 112, -1, + -1, 115, 116, -1, 118, 119, 120, -1, -1, 236, + 124, -1, -1, -1, -1, -1, -1, -1, 0, 1, + -1, -1, 4, -1, 138, -1, -1, -1, -1, -1, + 12, 13, -1, -1, -1, -1, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 164, 165, 166, -1, 227, -1, -1, -1, -1, -1, + 42, 43, 235, -1, -1, -1, 236, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 62, 63, 64, -1, -1, -1, 68, 69, -1, 71, + -1, -1, -1, 75, 76, -1, 78, 79, -1, -1, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, -1, -1, 99, 100, 101, + 102, 103, 236, 105, 106, 107, 108, 109, 110, 111, + 112, 113, -1, 115, 116, 117, 118, 119, 120, 121, + -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, -1, -1, -1, 150, 151, + 152, 4, -1, -1, -1, -1, 158, -1, -1, 12, + 13, 163, 164, 165, 166, -1, -1, 169, -1, 171, + -1, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, -1, -1, -1, -1, 42, + 43, 193, 194, 195, -1, -1, -1, -1, -1, -1, + 202, -1, 204, -1, -1, -1, -1, -1, -1, 62, + 63, 64, -1, -1, -1, 68, 69, -1, 71, -1, + -1, -1, 75, 76, -1, 78, 79, -1, -1, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, -1, -1, 99, 100, 101, 102, + 103, -1, 105, 106, 107, 108, 109, 110, 111, 112, + 113, -1, 115, 116, 117, 118, 119, 120, 121, -1, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 12, 13, -1, 150, 151, 152, + -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, + 163, 164, 165, 166, -1, -1, 169, -1, 171, -1, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, -1, -1, -1, -1, -1, -1, + 193, 194, 195, -1, -1, -1, -1, -1, -1, 202, + -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, + -1, -1, 100, 101, 102, -1, -1, 105, -1, -1, + -1, -1, -1, 111, 112, -1, -1, 115, 116, -1, + 118, 119, 120, -1, -1, -1, 124, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 138, -1, -1, -1, 142, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + -1, -1, -1, 227, -1, -1, 164, 165, 166, -1, + -1, 235, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, + 227, -1, 229, -1, 231, -1, -1, 234, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, + -1, -1, -1, 234, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, + -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, + -1, -1, -1, -1, -1, 234, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, + -1, 234, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, + 227, -1, -1, -1, -1, -1, -1, 234, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, + -1, -1, -1, 234, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, + -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, 209, 210, 211, 212, @@ -5012,10 +5027,14 @@ static const yytype_int16 yycheck[] = 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, - -1, -1, -1, 234, 209, 210, 211, 212, 213, 214, + 221, 222, -1, -1, -1, -1, 227, -1, 229, -1, + 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, + -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, - -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, + -1, -1, 227, -1, -1, -1, 231, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, @@ -5050,15 +5069,6 @@ static const yytype_int16 yycheck[] = 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, -1, -1, -1, 231, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - -1, -1, -1, 227, -1, -1, -1, 231, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, - 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, - -1, 229, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, 229, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, 229, 209, 210, 211, 212, 213, 214, @@ -5185,7 +5195,15 @@ static const yytype_int16 yycheck[] = 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, 229, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227 + 227, -1, 229, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, + -1, 227, -1, 229, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, + -1, -1, 227, -1, 229, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + -1, -1, -1, 227, -1, 229, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + -1, -1, -1, -1, 227 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -5270,84 +5288,85 @@ static const yytype_uint16 yystos[] = 324, 337, 337, 337, 337, 337, 342, 338, 342, 7, 208, 260, 229, 7, 208, 260, 231, 7, 260, 261, 232, 7, 262, 236, 84, 87, 90, 92, 111, 116, - 283, 324, 333, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 245, 324, - 324, 6, 228, 230, 232, 229, 234, 228, 230, 229, - 234, 234, 229, 234, 231, 234, 265, 231, 265, 234, - 234, 229, 220, 234, 236, 229, 229, 324, 229, 236, - 229, 229, 324, 229, 236, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 7, 324, 324, 236, 6, - 6, 6, 229, 324, 324, 4, 229, 231, 235, 263, - 235, 324, 332, 235, 332, 342, 324, 324, 337, 324, - 62, 324, 62, 62, 62, 5, 235, 5, 235, 5, - 235, 5, 235, 332, 333, 229, 236, 324, 235, 324, - 332, 324, 324, 235, 263, 229, 236, 324, 324, 324, - 7, 7, 317, 317, 324, 277, 324, 338, 278, 324, - 338, 279, 324, 338, 280, 324, 338, 324, 6, 324, - 6, 324, 6, 333, 333, 235, 229, 6, 235, 286, - 286, 234, 234, 234, 327, 327, 285, 285, 234, 324, - 324, 324, 324, 236, 299, 234, 286, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 229, 7, 318, 6, - 7, 324, 6, 324, 324, 236, 333, 333, 333, 6, - 6, 324, 324, 324, 229, 229, 229, 229, 169, 234, - 286, 235, 8, 229, 229, 231, 333, 236, 236, 286, - 231, 229, 142, 312, 229, 234, 236, 7, 208, 260, - 229, 7, 208, 260, 231, 324, 333, 6, 6, 324, - 229, 231, 261, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 234, 263, 263, 263, 263, 263, - 263, 263, 234, 234, 234, 263, 234, 263, 263, 229, - 229, 234, 263, 263, 234, 263, 234, 234, 234, 234, - 263, 263, 263, 229, 263, 326, 339, 6, 234, 234, - 229, 234, 263, 234, 263, 229, 229, 231, 44, 44, - 330, 7, 260, 261, 44, 44, 330, 232, 260, 261, - 338, 324, 6, 4, 4, 235, 335, 263, 235, 235, - 235, 235, 228, 111, 236, 236, 8, 4, 159, 160, - 161, 162, 236, 248, 252, 255, 257, 258, 229, 231, - 324, 324, 4, 6, 215, 242, 333, 324, 324, 6, - 333, 324, 6, 337, 6, 342, 6, 337, 324, 338, - 7, 324, 332, 172, 7, 7, 229, 7, 172, 7, - 7, 229, 7, 172, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 324, 229, 236, 235, 6, 229, 231, - 333, 333, 229, 333, 231, 231, 234, 234, 263, 234, - 235, 236, 235, 235, 235, 333, 333, 333, 333, 263, - 236, 7, 8, 333, 229, 231, 333, 7, 235, 229, - 229, 229, 324, 330, 4, 316, 6, 229, 229, 234, - 229, 234, 229, 234, 229, 234, 229, 229, 229, 236, - 236, 333, 232, 286, 236, 236, 327, 324, 324, 236, - 236, 324, 327, 234, 234, 234, 122, 122, 139, 147, - 148, 149, 153, 154, 155, 156, 309, 310, 327, 236, - 296, 229, 236, 229, 229, 229, 229, 229, 229, 229, - 7, 324, 6, 324, 229, 231, 231, 236, 236, 236, - 231, 231, 234, 7, 7, 7, 232, 324, 236, 324, - 324, 7, 232, 236, 236, 7, 6, 324, 236, 235, - 330, 6, 44, 44, 330, 260, 261, 44, 44, 330, - 260, 261, 236, 236, 231, 261, 232, 261, 337, 324, - 324, 324, 324, 333, 337, 324, 330, 337, 337, 337, - 273, 275, 324, 337, 337, 324, 262, 262, 6, 324, - 6, 262, 262, 6, 4, 169, 170, 324, 6, 6, - 6, 7, 230, 334, 336, 6, 333, 333, 333, 333, - 324, 228, 263, 324, 249, 228, 228, 235, 259, 6, - 261, 261, 229, 231, 215, 337, 229, 229, 231, 229, - 234, 7, 228, 230, 263, 263, 327, 90, 92, 330, - 330, 7, 330, 90, 92, 330, 330, 7, 330, 92, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 6, - 7, 7, 333, 232, 236, 236, 236, 324, 324, 324, - 324, 324, 324, 324, 236, 236, 236, 236, 330, 324, - 236, 236, 330, 333, 7, 7, 7, 122, 315, 6, - 7, 260, 324, 260, 324, 260, 324, 260, 324, 7, - 7, 7, 7, 7, 236, 4, 236, 234, 234, 234, - 236, 236, 327, 327, 327, 102, 4, 6, 324, 235, - 6, 228, 6, 157, 6, 157, 6, 157, 6, 157, - 236, 310, 234, 309, 7, 6, 7, 7, 7, 7, - 7, 7, 7, 330, 6, 235, 6, 6, 6, 90, - 7, 6, 6, 324, 330, 330, 330, 4, 234, 8, - 8, 229, 4, 4, 234, 235, 6, 235, 330, 236, - 262, 262, 6, 324, 6, 262, 262, 6, 324, 6, - 263, 6, 4, 6, 263, 263, 263, 263, 263, 234, - 234, 263, 229, 263, 263, 234, 234, 263, 274, 234, - 263, 276, 229, 229, 263, 263, 263, 340, 340, 6, - 263, 340, 340, 7, 260, 261, 232, 7, 6, 334, - 324, 234, 236, 236, 236, 236, 236, 229, 324, 260, + 120, 283, 324, 333, 324, 324, 324, 324, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 245, + 324, 324, 6, 228, 230, 232, 229, 234, 228, 230, + 229, 234, 234, 229, 234, 231, 234, 265, 231, 265, + 234, 234, 229, 220, 234, 236, 229, 229, 324, 229, + 236, 229, 229, 324, 229, 236, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 7, 324, 324, 236, + 6, 6, 6, 229, 324, 324, 4, 229, 231, 235, + 263, 235, 324, 332, 235, 332, 342, 324, 324, 337, + 324, 62, 324, 62, 62, 62, 5, 235, 5, 235, + 5, 235, 5, 235, 332, 333, 229, 236, 324, 235, + 324, 332, 324, 324, 235, 263, 229, 236, 324, 324, + 324, 7, 7, 317, 317, 324, 277, 324, 338, 278, + 324, 338, 279, 324, 338, 280, 324, 338, 324, 6, + 324, 6, 324, 6, 333, 333, 235, 229, 6, 235, + 286, 286, 234, 234, 234, 327, 327, 285, 285, 234, + 324, 324, 324, 324, 236, 299, 234, 286, 324, 324, + 324, 324, 324, 324, 324, 324, 324, 229, 7, 318, + 6, 7, 324, 6, 324, 324, 236, 333, 333, 333, + 6, 6, 324, 324, 324, 229, 229, 229, 229, 169, + 234, 286, 235, 8, 229, 229, 231, 333, 236, 236, + 286, 231, 229, 142, 312, 229, 234, 236, 7, 208, + 260, 229, 7, 208, 260, 231, 324, 333, 6, 6, + 324, 229, 231, 261, 263, 263, 263, 263, 263, 263, + 263, 263, 263, 263, 263, 234, 263, 263, 263, 263, + 263, 263, 263, 234, 234, 234, 263, 234, 263, 263, + 229, 229, 234, 263, 263, 234, 263, 234, 234, 234, + 234, 263, 263, 263, 229, 263, 326, 339, 6, 234, + 234, 229, 234, 263, 234, 263, 229, 229, 231, 44, + 44, 330, 7, 260, 261, 44, 44, 330, 232, 260, + 261, 338, 324, 6, 4, 4, 235, 335, 263, 235, + 235, 235, 235, 228, 111, 87, 90, 92, 236, 236, + 8, 4, 159, 160, 161, 162, 236, 248, 252, 255, + 257, 258, 229, 231, 324, 324, 4, 6, 215, 242, + 333, 324, 324, 6, 333, 324, 6, 337, 6, 342, + 6, 337, 324, 338, 7, 324, 332, 172, 7, 7, + 229, 7, 172, 7, 7, 229, 7, 172, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 324, 229, 236, + 235, 6, 229, 231, 333, 333, 229, 333, 231, 231, + 234, 234, 263, 234, 235, 236, 235, 235, 235, 333, + 333, 333, 333, 263, 236, 7, 8, 333, 229, 231, + 333, 7, 235, 229, 229, 229, 324, 330, 4, 316, + 6, 229, 229, 234, 229, 234, 229, 234, 229, 234, + 229, 229, 229, 236, 236, 333, 232, 286, 236, 236, + 327, 324, 324, 236, 236, 324, 327, 234, 234, 234, + 122, 122, 139, 147, 148, 149, 153, 154, 155, 156, + 309, 310, 327, 236, 296, 229, 236, 229, 229, 229, + 229, 229, 229, 229, 7, 324, 6, 324, 229, 231, + 231, 236, 236, 236, 231, 231, 234, 7, 7, 7, + 232, 324, 236, 324, 324, 7, 232, 236, 236, 7, + 6, 324, 236, 235, 330, 6, 44, 44, 330, 260, + 261, 44, 44, 330, 260, 261, 236, 236, 231, 261, + 232, 261, 337, 324, 324, 324, 324, 333, 337, 324, + 330, 337, 337, 337, 273, 275, 324, 337, 337, 324, + 262, 262, 6, 324, 6, 262, 262, 6, 4, 169, + 170, 324, 6, 6, 6, 7, 230, 334, 336, 6, + 333, 333, 333, 333, 324, 228, 228, 228, 228, 263, + 324, 249, 228, 228, 235, 259, 6, 261, 261, 229, + 231, 215, 337, 229, 229, 231, 229, 234, 7, 228, + 230, 263, 263, 327, 90, 92, 330, 330, 7, 330, + 90, 92, 330, 330, 7, 330, 92, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 6, 7, 7, 333, + 232, 236, 236, 236, 324, 324, 324, 324, 324, 324, + 324, 236, 236, 236, 236, 330, 324, 236, 236, 330, + 333, 7, 7, 7, 122, 315, 6, 7, 260, 324, + 260, 324, 260, 324, 260, 324, 7, 7, 7, 7, + 7, 236, 4, 236, 234, 234, 234, 236, 236, 327, + 327, 327, 102, 4, 6, 324, 235, 6, 228, 6, + 157, 6, 157, 6, 157, 6, 157, 236, 310, 234, + 309, 7, 6, 7, 7, 7, 7, 7, 7, 7, + 330, 6, 235, 6, 6, 6, 90, 7, 6, 6, + 324, 330, 330, 330, 4, 234, 8, 8, 229, 4, + 4, 234, 235, 6, 235, 330, 236, 262, 262, 6, + 324, 6, 262, 262, 6, 324, 6, 263, 6, 4, + 6, 263, 263, 263, 263, 263, 234, 234, 263, 229, + 263, 263, 234, 234, 263, 274, 234, 263, 276, 229, + 229, 263, 263, 263, 340, 340, 6, 263, 340, 340, + 7, 260, 261, 232, 7, 6, 334, 324, 234, 236, + 236, 236, 236, 236, 229, 324, 324, 324, 324, 260, 228, 324, 324, 329, 330, 235, 232, 6, 6, 242, 6, 324, 235, 324, 338, 229, 231, 6, 6, 6, 235, 235, 115, 282, 282, 330, 6, 235, 235, 6, @@ -5364,59 +5383,60 @@ static const yytype_uint16 yystos[] = 286, 234, 6, 263, 340, 340, 6, 263, 340, 340, 6, 260, 261, 337, 324, 337, 4, 4, 184, 6, 263, 263, 6, 263, 263, 338, 324, 6, 4, 335, - 6, 231, 334, 6, 6, 6, 6, 229, 330, 246, - 324, 234, 234, 234, 236, 247, 324, 4, 337, 234, - 330, 338, 7, 7, 324, 324, 327, 6, 6, 6, - 324, 324, 6, 88, 6, 324, 5, 6, 235, 324, - 324, 324, 324, 324, 324, 324, 235, 6, 281, 6, - 324, 6, 6, 6, 6, 6, 6, 4, 6, 6, - 333, 333, 324, 324, 338, 236, 229, 234, 236, 285, - 285, 327, 6, 300, 327, 6, 301, 327, 6, 302, - 324, 324, 236, 234, 229, 236, 234, 6, 6, 329, - 327, 327, 327, 327, 327, 219, 327, 6, 236, 324, - 6, 6, 330, 234, 236, 8, 236, 229, 235, 324, - 338, 234, 312, 312, 330, 6, 263, 263, 6, 263, - 263, 330, 229, 263, 263, 235, 330, 338, 235, 324, - 338, 338, 6, 6, 6, 6, 6, 6, 7, 6, - 232, 6, 229, 234, 324, 324, 330, 235, 234, 236, - 6, 324, 267, 270, 235, 235, 236, 236, 236, 236, - 235, 236, 5, 329, 263, 263, 234, 234, 234, 234, - 234, 324, 6, 235, 236, 236, 235, 6, 6, 235, - 324, 236, 236, 234, 235, 234, 235, 234, 235, 236, - 231, 6, 330, 7, 235, 324, 236, 234, 234, 234, - 234, 234, 234, 6, 236, 167, 324, 324, 333, 6, - 6, 338, 236, 236, 236, 6, 6, 6, 6, 6, - 272, 324, 332, 340, 334, 170, 250, 324, 234, 234, - 329, 324, 6, 234, 273, 275, 330, 330, 6, 6, - 6, 6, 324, 6, 6, 236, 324, 324, 324, 324, - 324, 236, 329, 126, 127, 132, 319, 126, 127, 319, - 333, 285, 234, 236, 324, 327, 309, 324, 327, 309, - 324, 327, 309, 6, 234, 236, 330, 286, 236, 6, - 333, 327, 327, 327, 327, 327, 324, 236, 236, 236, - 229, 235, 6, 234, 236, 7, 7, 236, 6, 235, - 324, 324, 236, 324, 236, 236, 269, 268, 236, 235, - 234, 234, 234, 234, 234, 236, 235, 327, 330, 6, - 235, 327, 6, 236, 236, 324, 236, 234, 236, 236, - 234, 236, 236, 234, 236, 330, 6, 122, 236, 297, - 235, 236, 234, 234, 234, 234, 234, 6, 6, 6, - 286, 324, 338, 342, 247, 229, 234, 6, 235, 234, - 273, 273, 324, 324, 324, 324, 324, 324, 6, 327, - 6, 327, 6, 6, 236, 6, 303, 324, 6, 6, - 304, 324, 6, 6, 305, 324, 6, 236, 324, 309, - 286, 6, 333, 333, 333, 333, 327, 333, 312, 7, - 228, 236, 253, 324, 329, 324, 236, 236, 234, 234, - 234, 234, 234, 234, 234, 234, 235, 236, 235, 236, - 235, 236, 6, 6, 236, 236, 298, 236, 236, 236, - 236, 234, 236, 236, 338, 229, 6, 235, 229, 236, - 236, 324, 324, 324, 324, 324, 324, 327, 327, 309, - 6, 306, 309, 6, 307, 309, 6, 308, 309, 6, - 6, 6, 6, 333, 6, 6, 251, 337, 256, 235, - 6, 236, 263, 234, 234, 234, 234, 234, 234, 236, - 235, 236, 235, 236, 235, 236, 236, 234, 236, 235, - 329, 6, 324, 324, 324, 324, 324, 324, 6, 309, - 6, 309, 6, 309, 6, 337, 6, 254, 337, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 236, 234, - 236, 6, 6, 6, 6, 6, 6, 337, 6 + 6, 231, 334, 6, 6, 6, 6, 229, 229, 229, + 229, 330, 246, 324, 234, 234, 234, 236, 247, 324, + 4, 337, 234, 330, 338, 7, 7, 324, 324, 327, + 6, 6, 6, 324, 324, 6, 88, 6, 324, 5, + 6, 235, 324, 324, 324, 324, 324, 324, 324, 235, + 6, 281, 6, 324, 6, 6, 6, 6, 6, 6, + 4, 6, 6, 333, 333, 324, 324, 338, 236, 229, + 234, 236, 285, 285, 327, 6, 300, 327, 6, 301, + 327, 6, 302, 324, 324, 236, 234, 229, 236, 234, + 6, 6, 329, 327, 327, 327, 327, 327, 219, 327, + 6, 236, 324, 6, 6, 330, 234, 236, 8, 236, + 229, 235, 324, 338, 234, 312, 312, 330, 6, 263, + 263, 6, 263, 263, 330, 229, 263, 263, 235, 330, + 338, 235, 324, 338, 338, 6, 6, 6, 6, 6, + 6, 7, 6, 232, 6, 229, 234, 324, 324, 330, + 235, 234, 236, 6, 324, 267, 270, 235, 235, 236, + 236, 236, 236, 235, 236, 5, 329, 263, 263, 234, + 234, 234, 234, 234, 324, 6, 235, 236, 236, 235, + 6, 6, 235, 324, 236, 236, 234, 235, 234, 235, + 234, 235, 236, 231, 6, 330, 7, 235, 324, 236, + 234, 234, 234, 234, 234, 234, 6, 236, 167, 324, + 324, 333, 6, 6, 338, 236, 236, 236, 6, 6, + 6, 6, 6, 272, 324, 332, 340, 334, 170, 250, + 324, 234, 234, 329, 324, 6, 234, 273, 275, 330, + 330, 6, 6, 6, 6, 324, 6, 6, 236, 324, + 324, 324, 324, 324, 236, 329, 126, 127, 132, 319, + 126, 127, 319, 333, 285, 234, 236, 324, 327, 309, + 324, 327, 309, 324, 327, 309, 6, 234, 236, 330, + 286, 236, 6, 333, 327, 327, 327, 327, 327, 324, + 236, 236, 236, 229, 235, 6, 234, 236, 7, 7, + 236, 6, 235, 324, 324, 236, 324, 236, 236, 269, + 268, 236, 235, 234, 234, 234, 234, 234, 236, 235, + 327, 330, 6, 235, 327, 6, 236, 236, 324, 236, + 234, 236, 236, 234, 236, 236, 234, 236, 330, 6, + 122, 236, 297, 235, 236, 234, 234, 234, 234, 234, + 6, 6, 6, 286, 324, 338, 342, 247, 229, 234, + 6, 235, 234, 273, 273, 324, 324, 324, 324, 324, + 324, 6, 327, 6, 327, 6, 6, 236, 6, 303, + 324, 6, 6, 304, 324, 6, 6, 305, 324, 6, + 236, 324, 309, 286, 6, 333, 333, 333, 333, 327, + 333, 312, 7, 228, 236, 253, 324, 329, 324, 236, + 236, 234, 234, 234, 234, 234, 234, 234, 234, 235, + 236, 235, 236, 235, 236, 6, 6, 236, 236, 298, + 236, 236, 236, 236, 234, 236, 236, 338, 229, 6, + 235, 229, 236, 236, 324, 324, 324, 324, 324, 324, + 327, 327, 309, 6, 306, 309, 6, 307, 309, 6, + 308, 309, 6, 6, 6, 6, 333, 6, 6, 251, + 337, 256, 235, 6, 236, 263, 234, 234, 234, 234, + 234, 234, 236, 235, 236, 235, 236, 235, 236, 236, + 234, 236, 235, 329, 6, 324, 324, 324, 324, 324, + 324, 6, 309, 6, 309, 6, 309, 6, 337, 6, + 254, 337, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 234, 236, 6, 6, 6, 6, 6, 6, + 337, 6 }; #define yyerrok (yyerrstatus = 0) @@ -6251,117 +6271,127 @@ yyreduce: break; case 9: -#line 227 "Gmsh.y" - { return 1; ;} +#line 228 "Gmsh.y" + { + // FIXME: when changing to OpenCASCADE, get maxTags from GEO_Internals and + // add that info in OCC_Internals - same in the other direction + factory = (yyvsp[(3) - (5)].c); + Free((yyvsp[(3) - (5)].c)); + ;} break; case 10: -#line 228 "Gmsh.y" - { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} +#line 234 "Gmsh.y" + { return 1; ;} break; case 11: -#line 229 "Gmsh.y" - { return 1; ;} +#line 235 "Gmsh.y" + { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 12: -#line 230 "Gmsh.y" +#line 236 "Gmsh.y" { return 1; ;} break; case 13: -#line 231 "Gmsh.y" +#line 237 "Gmsh.y" { return 1; ;} break; case 14: -#line 232 "Gmsh.y" +#line 238 "Gmsh.y" { return 1; ;} break; case 15: -#line 233 "Gmsh.y" - { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} +#line 239 "Gmsh.y" + { return 1; ;} break; case 16: -#line 234 "Gmsh.y" +#line 240 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 17: -#line 235 "Gmsh.y" - { return 1; ;} +#line 241 "Gmsh.y" + { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 18: -#line 236 "Gmsh.y" +#line 242 "Gmsh.y" { return 1; ;} break; case 19: -#line 237 "Gmsh.y" +#line 243 "Gmsh.y" { return 1; ;} break; case 20: -#line 238 "Gmsh.y" +#line 244 "Gmsh.y" { return 1; ;} break; case 21: -#line 239 "Gmsh.y" +#line 245 "Gmsh.y" { return 1; ;} break; case 22: -#line 240 "Gmsh.y" +#line 246 "Gmsh.y" { return 1; ;} break; case 23: -#line 241 "Gmsh.y" +#line 247 "Gmsh.y" { return 1; ;} break; case 24: -#line 242 "Gmsh.y" +#line 248 "Gmsh.y" { return 1; ;} break; case 25: -#line 247 "Gmsh.y" +#line 249 "Gmsh.y" + { return 1; ;} + break; + + case 26: +#line 254 "Gmsh.y" { (yyval.c) = (char*)"w"; ;} break; - case 26: -#line 251 "Gmsh.y" + case 27: +#line 258 "Gmsh.y" { (yyval.c) = (char*)"a"; ;} break; - case 27: -#line 258 "Gmsh.y" + case 28: +#line 265 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); ;} break; - case 28: -#line 263 "Gmsh.y" + case 29: +#line 270 "Gmsh.y" { Msg::Error((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); ;} break; - case 29: -#line 268 "Gmsh.y" + case 30: +#line 275 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c)); FILE *fp = Fopen(tmp.c_str(), (yyvsp[(5) - (7)].c)); @@ -6377,8 +6407,8 @@ yyreduce: ;} break; - case 30: -#line 282 "Gmsh.y" + case 31: +#line 289 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -6393,8 +6423,8 @@ yyreduce: ;} break; - case 31: -#line 295 "Gmsh.y" + case 32: +#line 302 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -6409,8 +6439,8 @@ yyreduce: ;} break; - case 32: -#line 308 "Gmsh.y" + case 33: +#line 315 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring); @@ -6435,8 +6465,8 @@ yyreduce: ;} break; - case 33: -#line 336 "Gmsh.y" + case 34: +#line 343 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){ @@ -6452,8 +6482,8 @@ yyreduce: ;} break; - case 34: -#line 350 "Gmsh.y" + case 35: +#line 357 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6468,8 +6498,8 @@ yyreduce: ;} break; - case 35: -#line 363 "Gmsh.y" + case 36: +#line 370 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6484,8 +6514,8 @@ yyreduce: ;} break; - case 36: -#line 376 "Gmsh.y" + case 37: +#line 383 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (8)].c), "View")){ @@ -6502,8 +6532,8 @@ yyreduce: ;} break; - case 37: -#line 394 "Gmsh.y" + case 38: +#line 401 "Gmsh.y" { #if defined(HAVE_POST) ViewData = new PViewDataList(); @@ -6511,28 +6541,28 @@ yyreduce: ;} break; - case 43: -#line 408 "Gmsh.y" + case 44: +#line 415 "Gmsh.y" { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; - case 44: -#line 410 "Gmsh.y" + case 45: +#line 417 "Gmsh.y" { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; - case 45: -#line 415 "Gmsh.y" + case 46: +#line 422 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;} break; - case 46: -#line 417 "Gmsh.y" + case 47: +#line 424 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;} break; - case 47: -#line 422 "Gmsh.y" + case 48: +#line 429 "Gmsh.y" { #if defined(HAVE_POST) if(!strncmp((yyvsp[(1) - (1)].c), "SP", 2)){ @@ -6638,8 +6668,8 @@ yyreduce: ;} break; - case 48: -#line 526 "Gmsh.y" + case 49: +#line 533 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList){ @@ -6651,8 +6681,8 @@ yyreduce: ;} break; - case 49: -#line 536 "Gmsh.y" + case 50: +#line 543 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList) (*ViewNumList)++; @@ -6660,8 +6690,8 @@ yyreduce: ;} break; - case 50: -#line 545 "Gmsh.y" + case 51: +#line 552 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -6670,8 +6700,8 @@ yyreduce: ;} break; - case 51: -#line 552 "Gmsh.y" + case 52: +#line 559 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -6680,8 +6710,8 @@ yyreduce: ;} break; - case 52: -#line 562 "Gmsh.y" + case 53: +#line 569 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T2D.push_back((yyvsp[(3) - (8)].d)); @@ -6692,8 +6722,8 @@ yyreduce: ;} break; - case 53: -#line 571 "Gmsh.y" + case 54: +#line 578 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT2++; @@ -6701,8 +6731,8 @@ yyreduce: ;} break; - case 54: -#line 580 "Gmsh.y" + case 55: +#line 587 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -6711,8 +6741,8 @@ yyreduce: ;} break; - case 55: -#line 587 "Gmsh.y" + case 56: +#line 594 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -6721,8 +6751,8 @@ yyreduce: ;} break; - case 56: -#line 597 "Gmsh.y" + case 57: +#line 604 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T3D.push_back((yyvsp[(3) - (10)].d)); ViewData->T3D.push_back((yyvsp[(5) - (10)].d)); @@ -6732,8 +6762,8 @@ yyreduce: ;} break; - case 57: -#line 605 "Gmsh.y" + case 58: +#line 612 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT3++; @@ -6741,8 +6771,8 @@ yyreduce: ;} break; - case 58: -#line 615 "Gmsh.y" + case 59: +#line 622 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6760,8 +6790,8 @@ yyreduce: ;} break; - case 59: -#line 634 "Gmsh.y" + case 60: +#line 641 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -6779,8 +6809,8 @@ yyreduce: ;} break; - case 60: -#line 653 "Gmsh.y" + case 61: +#line 660 "Gmsh.y" { #if defined(HAVE_POST) ViewValueList = &ViewData->Time; @@ -6788,77 +6818,77 @@ yyreduce: ;} break; - case 61: -#line 659 "Gmsh.y" + case 62: +#line 666 "Gmsh.y" { ;} break; - case 62: -#line 666 "Gmsh.y" + case 63: +#line 673 "Gmsh.y" { (yyval.i) = 0; ;} break; - case 63: -#line 667 "Gmsh.y" + case 64: +#line 674 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 64: -#line 668 "Gmsh.y" + case 65: +#line 675 "Gmsh.y" { (yyval.i) = 2; ;} break; - case 65: -#line 669 "Gmsh.y" + case 66: +#line 676 "Gmsh.y" { (yyval.i) = 3; ;} break; - case 66: -#line 670 "Gmsh.y" + case 67: +#line 677 "Gmsh.y" { (yyval.i) = 4; ;} break; - case 67: -#line 674 "Gmsh.y" + case 68: +#line 681 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 68: -#line 675 "Gmsh.y" + case 69: +#line 682 "Gmsh.y" { (yyval.i) = -1; ;} break; - case 69: -#line 681 "Gmsh.y" + case 70: +#line 688 "Gmsh.y" { (yyval.c) = (char*)"("; ;} break; - case 70: -#line 681 "Gmsh.y" + case 71: +#line 688 "Gmsh.y" { (yyval.c) = (char*)"["; ;} break; - case 71: -#line 682 "Gmsh.y" + case 72: +#line 689 "Gmsh.y" { (yyval.c) = (char*)")"; ;} break; - case 72: -#line 682 "Gmsh.y" + case 73: +#line 689 "Gmsh.y" { (yyval.c) = (char*)"]"; ;} break; - case 75: -#line 691 "Gmsh.y" + case 76: +#line 698 "Gmsh.y" { Msg::SetOnelabNumber((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].d)); Free((yyvsp[(3) - (7)].c)); ;} break; - case 76: -#line 696 "Gmsh.y" + case 77: +#line 703 "Gmsh.y" { Msg::SetOnelabString((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].c)); Free((yyvsp[(3) - (7)].c)); @@ -6866,8 +6896,8 @@ yyreduce: ;} break; - case 77: -#line 702 "Gmsh.y" + case 78: +#line 709 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c)) && (yyvsp[(2) - (4)].i) && List_Nbr((yyvsp[(3) - (4)].l)) == 1){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (4)].c)); @@ -6931,8 +6961,8 @@ yyreduce: ;} break; - case 78: -#line 764 "Gmsh.y" + case 79: +#line 771 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); @@ -6949,8 +6979,8 @@ yyreduce: ;} break; - case 79: -#line 781 "Gmsh.y" + case 80: +#line 788 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -6981,8 +7011,8 @@ yyreduce: ;} break; - case 80: -#line 810 "Gmsh.y" + case 81: +#line 817 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -7013,40 +7043,40 @@ yyreduce: ;} break; - case 81: -#line 839 "Gmsh.y" + case 82: +#line 846 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); ;} break; - case 82: -#line 844 "Gmsh.y" + case 83: +#line 851 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); ;} break; - case 83: -#line 849 "Gmsh.y" + case 84: +#line 856 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 84: -#line 854 "Gmsh.y" + case 85: +#line 861 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 85: -#line 859 "Gmsh.y" + case 86: +#line 866 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -7055,8 +7085,8 @@ yyreduce: ;} break; - case 86: -#line 866 "Gmsh.y" + case 87: +#line 873 "Gmsh.y" { assignVariables((yyvsp[(1) - (9)].c), (yyvsp[(4) - (9)].l), (yyvsp[(7) - (9)].i), (yyvsp[(8) - (9)].l)); Free((yyvsp[(1) - (9)].c)); @@ -7065,8 +7095,8 @@ yyreduce: ;} break; - case 87: -#line 876 "Gmsh.y" + case 88: +#line 883 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -7097,8 +7127,8 @@ yyreduce: ;} break; - case 88: -#line 905 "Gmsh.y" + case 89: +#line 912 "Gmsh.y" { gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(1) - (6)].c)]); s.list = true; @@ -7129,40 +7159,40 @@ yyreduce: ;} break; - case 89: -#line 934 "Gmsh.y" + case 90: +#line 941 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); ;} break; - case 90: -#line 939 "Gmsh.y" + case 91: +#line 946 "Gmsh.y" { assignVariable((yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(5) - (7)].i), (yyvsp[(6) - (7)].d)); Free((yyvsp[(1) - (7)].c)); ;} break; - case 91: -#line 944 "Gmsh.y" + case 92: +#line 951 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 92: -#line 949 "Gmsh.y" + case 93: +#line 956 "Gmsh.y" { incrementVariable((yyvsp[(1) - (6)].c), (yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].i)); Free((yyvsp[(1) - (6)].c)); ;} break; - case 93: -#line 957 "Gmsh.y" + case 94: +#line 964 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::vector<std::string>(1, (yyvsp[(3) - (4)].c)); Free((yyvsp[(1) - (4)].c)); @@ -7170,24 +7200,24 @@ yyreduce: ;} break; - case 94: -#line 966 "Gmsh.y" + case 95: +#line 973 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 95: -#line 972 "Gmsh.y" + case 96: +#line 979 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 96: -#line 978 "Gmsh.y" + case 97: +#line 985 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7201,8 +7231,8 @@ yyreduce: ;} break; - case 97: -#line 991 "Gmsh.y" + case 98: +#line 998 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7216,8 +7246,8 @@ yyreduce: ;} break; - case 98: -#line 1004 "Gmsh.y" + case 99: +#line 1011 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7233,8 +7263,8 @@ yyreduce: ;} break; - case 99: -#line 1019 "Gmsh.y" + case 100: +#line 1026 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7250,24 +7280,24 @@ yyreduce: ;} break; - case 100: -#line 1036 "Gmsh.y" + case 101: +#line 1043 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 101: -#line 1042 "Gmsh.y" + case 102: +#line 1049 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (8)].c)] = std::vector<std::string>(); Free((yyvsp[(1) - (8)].c)); ;} break; - case 102: -#line 1048 "Gmsh.y" + case 103: +#line 1055 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7281,8 +7311,8 @@ yyreduce: ;} break; - case 103: -#line 1061 "Gmsh.y" + case 104: +#line 1068 "Gmsh.y" { std::vector<std::string> s; for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7296,8 +7326,8 @@ yyreduce: ;} break; - case 104: -#line 1074 "Gmsh.y" + case 105: +#line 1081 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7313,8 +7343,8 @@ yyreduce: ;} break; - case 105: -#line 1089 "Gmsh.y" + case 106: +#line 1096 "Gmsh.y" { if(gmsh_yystringsymbols.count((yyvsp[(1) - (9)].c))){ for(int i = 0; i < List_Nbr((yyvsp[(7) - (9)].l)); i++){ @@ -7330,8 +7360,8 @@ yyreduce: ;} break; - case 106: -#line 1106 "Gmsh.y" + case 107: +#line 1113 "Gmsh.y" { std::string tmp((yyvsp[(5) - (6)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), tmp); @@ -7339,8 +7369,8 @@ yyreduce: ;} break; - case 107: -#line 1112 "Gmsh.y" + case 108: +#line 1119 "Gmsh.y" { std::string tmp((yyvsp[(8) - (9)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), tmp); @@ -7348,8 +7378,8 @@ yyreduce: ;} break; - case 108: -#line 1121 "Gmsh.y" + case 109: +#line 1128 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -7369,8 +7399,8 @@ yyreduce: ;} break; - case 109: -#line 1139 "Gmsh.y" + case 110: +#line 1146 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -7390,8 +7420,8 @@ yyreduce: ;} break; - case 110: -#line 1157 "Gmsh.y" + case 111: +#line 1164 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -7402,8 +7432,8 @@ yyreduce: ;} break; - case 111: -#line 1166 "Gmsh.y" + case 112: +#line 1173 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -7414,24 +7444,24 @@ yyreduce: ;} break; - case 112: -#line 1178 "Gmsh.y" + case 113: +#line 1185 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u)); Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c)); ;} break; - case 113: -#line 1183 "Gmsh.y" + case 114: +#line 1190 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u)); Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c)); ;} break; - case 114: -#line 1191 "Gmsh.y" + case 115: +#line 1198 "Gmsh.y" { GmshColorTable *ct = GetColorTable(0); if(!ct) @@ -7453,8 +7483,8 @@ yyreduce: ;} break; - case 115: -#line 1211 "Gmsh.y" + case 116: +#line 1218 "Gmsh.y" { GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -7476,8 +7506,8 @@ yyreduce: ;} break; - case 116: -#line 1234 "Gmsh.y" + case 117: +#line 1241 "Gmsh.y" { #if defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (5)].c),"Background")) @@ -7490,8 +7520,8 @@ yyreduce: ;} break; - case 117: -#line 1245 "Gmsh.y" + case 118: +#line 1252 "Gmsh.y" { #if defined(HAVE_MESH) if(!GModel::current()->getFields()->newField((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) @@ -7501,8 +7531,8 @@ yyreduce: ;} break; - case 118: -#line 1253 "Gmsh.y" + case 119: +#line 1260 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7526,8 +7556,8 @@ yyreduce: ;} break; - case 119: -#line 1275 "Gmsh.y" + case 120: +#line 1282 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -7552,8 +7582,8 @@ yyreduce: ;} break; - case 120: -#line 1298 "Gmsh.y" + case 121: +#line 1305 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); @@ -7593,8 +7623,8 @@ yyreduce: ;} break; - case 121: -#line 1336 "Gmsh.y" + case 122: +#line 1343 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (7)].d)); @@ -7614,8 +7644,8 @@ yyreduce: ;} break; - case 122: -#line 1357 "Gmsh.y" + case 123: +#line 1364 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7629,8 +7659,8 @@ yyreduce: ;} break; - case 123: -#line 1369 "Gmsh.y" + case 124: +#line 1376 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -7644,8 +7674,8 @@ yyreduce: ;} break; - case 127: -#line 1387 "Gmsh.y" + case 128: +#line 1394 "Gmsh.y" { std::string key((yyvsp[(3) - (3)].c)); std::vector<double> val(1, 0.); @@ -7656,8 +7686,8 @@ yyreduce: ;} break; - case 128: -#line 1396 "Gmsh.y" + case 129: +#line 1403 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)); std::vector<double> val(1, (yyvsp[(5) - (5)].d)); @@ -7668,13 +7698,13 @@ yyreduce: ;} break; - case 129: -#line 1405 "Gmsh.y" + case 130: +#line 1412 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 130: -#line 1407 "Gmsh.y" + case 131: +#line 1414 "Gmsh.y" { if(List_Nbr((yyvsp[(6) - (9)].l)) != 1) yymsg(1, "List notation should be used to define list '%s[]'", (yyvsp[(3) - (9)].c)); @@ -7694,13 +7724,13 @@ yyreduce: ;} break; - case 131: -#line 1425 "Gmsh.y" + case 132: +#line 1432 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 132: -#line 1427 "Gmsh.y" + case 133: +#line 1434 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7718,13 +7748,13 @@ yyreduce: ;} break; - case 133: -#line 1443 "Gmsh.y" + case 134: +#line 1450 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 134: -#line 1445 "Gmsh.y" + case 135: +#line 1452 "Gmsh.y" { std::string key((yyvsp[(3) - (11)].c)); std::vector<double> val; @@ -7742,8 +7772,8 @@ yyreduce: ;} break; - case 135: -#line 1461 "Gmsh.y" + case 136: +#line 1468 "Gmsh.y" { std::string key((yyvsp[(3) - (5)].c)), val((yyvsp[(5) - (5)].c)); if(!gmsh_yystringsymbols.count(key)){ @@ -7754,13 +7784,13 @@ yyreduce: ;} break; - case 136: -#line 1470 "Gmsh.y" + case 137: +#line 1477 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; - case 137: -#line 1472 "Gmsh.y" + case 138: +#line 1479 "Gmsh.y" { std::string key((yyvsp[(3) - (9)].c)), val((yyvsp[(6) - (9)].c)); if(!gmsh_yysymbols.count(key)){ @@ -7772,8 +7802,8 @@ yyreduce: ;} break; - case 139: -#line 1486 "Gmsh.y" + case 140: +#line 1493 "Gmsh.y" { std::string name((yyvsp[(3) - (3)].c)); Msg::UndefineOnelabParameter(name); @@ -7781,8 +7811,8 @@ yyreduce: ;} break; - case 140: -#line 1494 "Gmsh.y" + case 141: +#line 1501 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); doubleXstring v = {(yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].c)}; @@ -7790,16 +7820,16 @@ yyreduce: ;} break; - case 141: -#line 1500 "Gmsh.y" + case 142: +#line 1507 "Gmsh.y" { doubleXstring v = {(yyvsp[(3) - (5)].d), (yyvsp[(5) - (5)].c)}; List_Add((yyval.l), &v); ;} break; - case 142: -#line 1505 "Gmsh.y" + case 143: +#line 1512 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(doubleXstring)); int n = List_Nbr((yyvsp[(1) - (5)].l)); @@ -7825,8 +7855,8 @@ yyreduce: ;} break; - case 145: -#line 1536 "Gmsh.y" + case 146: +#line 1543 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ @@ -7839,8 +7869,8 @@ yyreduce: ;} break; - case 146: -#line 1547 "Gmsh.y" + case 147: +#line 1554 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7856,8 +7886,8 @@ yyreduce: ;} break; - case 147: -#line 1562 "Gmsh.y" + case 148: +#line 1569 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7867,8 +7897,8 @@ yyreduce: ;} break; - case 150: -#line 1578 "Gmsh.y" + case 151: +#line 1585 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); double val = (yyvsp[(3) - (3)].d); @@ -7877,8 +7907,8 @@ yyreduce: ;} break; - case 151: -#line 1586 "Gmsh.y" + case 152: +#line 1593 "Gmsh.y" { std::string key((yyvsp[(2) - (3)].c)); std::string val((yyvsp[(3) - (3)].c)); @@ -7888,8 +7918,8 @@ yyreduce: ;} break; - case 152: -#line 1595 "Gmsh.y" + case 153: +#line 1602 "Gmsh.y" { std::string key("Macro"); std::string val((yyvsp[(3) - (3)].c)); @@ -7898,8 +7928,8 @@ yyreduce: ;} break; - case 153: -#line 1603 "Gmsh.y" + case 154: +#line 1610 "Gmsh.y" { std::string key((yyvsp[(2) - (5)].c)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -7914,15 +7944,15 @@ yyreduce: ;} break; - case 154: -#line 1621 "Gmsh.y" + case 155: +#line 1628 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 155: -#line 1625 "Gmsh.y" + case 156: +#line 1632 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 0, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7930,23 +7960,23 @@ yyreduce: ;} break; - case 156: -#line 1631 "Gmsh.y" + case 157: +#line 1638 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 0, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 157: -#line 1639 "Gmsh.y" + case 158: +#line 1646 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 158: -#line 1643 "Gmsh.y" + case 159: +#line 1650 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 1, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7954,23 +7984,23 @@ yyreduce: ;} break; - case 159: -#line 1649 "Gmsh.y" + case 160: +#line 1656 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 1, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 160: -#line 1657 "Gmsh.y" + case 161: +#line 1664 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 161: -#line 1661 "Gmsh.y" + case 162: +#line 1668 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 2, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -7978,23 +8008,23 @@ yyreduce: ;} break; - case 162: -#line 1667 "Gmsh.y" + case 163: +#line 1674 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 2, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 163: -#line 1675 "Gmsh.y" + case 164: +#line 1682 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; - case 164: -#line 1679 "Gmsh.y" + case 165: +#line 1686 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), 3, ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -8002,23 +8032,23 @@ yyreduce: ;} break; - case 165: -#line 1685 "Gmsh.y" + case 166: +#line 1692 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName(std::string((yyvsp[(1) - (3)].c)), 3, (yyvsp[(3) - (3)].d)); Free((yyvsp[(1) - (3)].c)); ;} break; - case 166: -#line 1693 "Gmsh.y" + case 167: +#line 1700 "Gmsh.y" { (yyval.l) = 0; ;} break; - case 167: -#line 1697 "Gmsh.y" + case 168: +#line 1704 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(Vertex*)); Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d)); @@ -8030,32 +8060,22 @@ yyreduce: ;} break; - case 168: -#line 1709 "Gmsh.y" - { - for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; - ;} - break; - case 169: -#line 1713 "Gmsh.y" +#line 1716 "Gmsh.y" { - for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; + for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} break; case 170: -#line 1721 "Gmsh.y" +#line 1720 "Gmsh.y" { - // FIXME: when changing to OpenCASCADE, get maxTags from GEO_Internals and - // add that info in OCC_Internals - same in the other direction - factory = (yyvsp[(3) - (5)].c); - Free((yyvsp[(3) - (5)].c)); + for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 171: -#line 1731 "Gmsh.y" +#line 1727 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); double x = CTX::instance()->geom.scalingFactor * (yyvsp[(6) - (7)].v)[0]; @@ -8079,84 +8099,15 @@ yyreduce: break; case 172: -#line 1752 "Gmsh.y" - { - int num = (int)(yyvsp[(4) - (8)].i); - int op = (yyvsp[(6) - (8)].i); - PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_POINT); - if(p && op == 0){ - yymsg(0, "Physical point %d already exists", num); - } - else if(!p && op > 0){ - yymsg(0, "Physical point %d does not exist", num); - } - else if(op == 0){ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); - p = Create_PhysicalGroup(num, MSH_PHYSICAL_POINT, temp); - List_Delete(temp); - List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); - } - else if(op == 1){ - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - int j = (int)d; - List_Add(p->Entities, &j); - } - } - else if(op == 2){ - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - int j = (int)d; - List_Suppress(p->Entities, &j, fcmp_int); - } - if(!List_Nbr(p->Entities)){ - DeletePhysicalPoint(num); - } - } - else{ - yymsg(0, "Unsupported operation on physical point %d", num); - } - List_Delete((yyvsp[(7) - (8)].l)); - (yyval.s).Type = MSH_PHYSICAL_POINT; - (yyval.s).Num = num; - ;} - break; - - case 173: -#line 1795 "Gmsh.y" - { - for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ - double d; - List_Read((yyvsp[(3) - (6)].l), i, &d); - Vertex *v = FindPoint((int)d); - if(v){ - v->lc = (yyvsp[(5) - (6)].d); - } - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - gv->setPrescribedMeshSizeAtVertex((yyvsp[(5) - (6)].d)); - } - } - List_Delete((yyvsp[(3) - (6)].l)); - // dummy values - (yyval.s).Type = 0; - (yyval.s).Num = 0; - ;} - break; - - case 174: -#line 1818 "Gmsh.y" +#line 1748 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); - std::vector<int> points; ListOfDouble2Vector((yyvsp[(6) - (7)].l), points); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); if(factory == "OpenCASCADE"){ - GModel::current()->getOCCInternals()->addLine(num, points); + GModel::current()->getOCCInternals()->addLine(num, tags); } else{ - GModel::current()->getGEOInternals()->addLine(num, points); + GModel::current()->getGEOInternals()->addLine(num, tags); } List_Delete((yyvsp[(6) - (7)].l)); (yyval.s).Type = MSH_SEGM_LINE; @@ -8164,8 +8115,8 @@ yyreduce: ;} break; - case 175: -#line 1832 "Gmsh.y" + case 173: +#line 1762 "Gmsh.y" { for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ double dnum; @@ -8188,16 +8139,16 @@ yyreduce: ;} break; - case 176: -#line 1853 "Gmsh.y" + case 174: +#line 1783 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); - std::vector<int> points; ListOfDouble2Vector((yyvsp[(6) - (7)].l), points); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); if(factory == "OpenCASCADE"){ yymsg(0, "Spline not available with OpenCASCADE factory"); } else{ - GModel::current()->getGEOInternals()->addSpline(num, points); + GModel::current()->getGEOInternals()->addSpline(num, tags); } List_Delete((yyvsp[(6) - (7)].l)); (yyval.s).Type = MSH_SEGM_SPLN; @@ -8205,16 +8156,16 @@ yyreduce: ;} break; - case 177: -#line 1867 "Gmsh.y" + case 175: +#line 1797 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); - std::vector<int> points; ListOfDouble2Vector((yyvsp[(6) - (8)].l), points); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (8)].l), tags); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (8)].l), param); if(factory == "OpenCASCADE"){ - if(points.size() == 3){ + if(tags.size() == 3){ GModel::current()->getOCCInternals()->addCircleArc - (num, points[0], points[1], points[2]); + (num, tags[0], tags[1], tags[2]); } else if(param.size() >= 4 && param.size() <= 6){ double r = param[3]; @@ -8228,9 +8179,9 @@ yyreduce: } } else{ - if(points.size() == 3){ + if(tags.size() == 3){ GModel::current()->getGEOInternals()->addCircleArc - (num, points[0], points[1], points[2], (yyvsp[(7) - (8)].v)[0], (yyvsp[(7) - (8)].v)[1], (yyvsp[(7) - (8)].v)[2]); + (num, tags[0], tags[1], tags[2], (yyvsp[(7) - (8)].v)[0], (yyvsp[(7) - (8)].v)[1], (yyvsp[(7) - (8)].v)[2]); } else{ yymsg(0, "Circle requires 3 points"); @@ -8242,20 +8193,20 @@ yyreduce: ;} break; - case 178: -#line 1901 "Gmsh.y" + case 176: +#line 1831 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); - std::vector<int> points; ListOfDouble2Vector((yyvsp[(6) - (8)].l), points); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (8)].l), tags); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (8)].l), param); if(factory == "OpenCASCADE"){ - if(points.size() == 3){ + if(tags.size() == 3){ GModel::current()->getOCCInternals()->addEllipseArc - (num, points[0], points[1], points[2]); + (num, tags[0], tags[1], tags[2]); } - else if(points.size() == 4){ + else if(tags.size() == 4){ GModel::current()->getOCCInternals()->addEllipseArc - (num, points[0], points[1], points[3]); + (num, tags[0], tags[1], tags[3]); } else if(param.size() >= 5 && param.size() <= 7){ double a1 = (param.size() >= 6) ? param[5] : 0.; @@ -8268,9 +8219,9 @@ yyreduce: } } else{ - if(points.size() == 4){ + if(tags.size() == 4){ GModel::current()->getGEOInternals()->addEllipseArc - (num, points[0], points[1], points[2], points[3], (yyvsp[(7) - (8)].v)[0], (yyvsp[(7) - (8)].v)[1], (yyvsp[(7) - (8)].v)[2]); + (num, tags[0], tags[1], tags[2], tags[3], (yyvsp[(7) - (8)].v)[0], (yyvsp[(7) - (8)].v)[1], (yyvsp[(7) - (8)].v)[2]); } else{ yymsg(0, "Ellipse requires 4 points"); @@ -8282,26 +8233,16 @@ yyreduce: ;} break; - case 179: -#line 1938 "Gmsh.y" + case 177: +#line 1868 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); + if(factory == "OpenCASCADE"){ + GModel::current()->getOCCInternals()->addBSpline(num, tags); } else{ - if(factory == "OpenCASCADE"){ - std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); - GModel::current()->getOCCInternals()->addBSpline(num, tags); - } - else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(6) - (7)].l)); - Curve *c = Create_Curve(num, MSH_SEGM_BSPLN, 2, temp, NULL, - -1, -1, 0., 1.); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - List_Delete(temp); - } + GModel::current()->getGEOInternals()->addBSpline(num, tags); } List_Delete((yyvsp[(6) - (7)].l)); (yyval.s).Type = MSH_SEGM_BSPLN; @@ -8309,26 +8250,16 @@ yyreduce: ;} break; - case 180: -#line 1962 "Gmsh.y" + case 178: +#line 1882 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); + if(factory == "OpenCASCADE"){ + GModel::current()->getOCCInternals()->addBezier(num, tags); } else{ - if(factory == "OpenCASCADE"){ - std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); - GModel::current()->getOCCInternals()->addBezier(num, tags); - } - else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(6) - (7)].l)); - Curve *c = Create_Curve(num, MSH_SEGM_BEZIER, 2, temp, NULL, - -1, -1, 0., 1.); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - List_Delete(temp); - } + GModel::current()->getGEOInternals()->addBezier(num, tags); } List_Delete((yyvsp[(6) - (7)].l)); (yyval.s).Type = MSH_SEGM_BEZIER; @@ -8336,27 +8267,20 @@ yyreduce: ;} break; - case 181: -#line 1987 "Gmsh.y" + case 179: +#line 1897 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); - if(List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1 != List_Nbr((yyvsp[(8) - (11)].l))){ - yymsg(0, "Wrong definition of Nurbs Curve %d: " - "got %d knots, need N + D + 1 = %d + %d + 1 = %d", - (int)(yyvsp[(3) - (11)].d), List_Nbr((yyvsp[(8) - (11)].l)), List_Nbr((yyvsp[(6) - (11)].l)), (int)(yyvsp[(10) - (11)].d), List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (11)].l), tags); + std::vector<double> knots; ListOfDouble2Vector((yyvsp[(8) - (11)].l), knots); + if(factory == "OpenCASCADE"){ + yymsg(0, "Nurbs not available yet with OpenCASCADE factory"); } else{ - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); - } - else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(6) - (11)].l)); - Curve *c = Create_Curve(num, MSH_SEGM_NURBS, (int)(yyvsp[(10) - (11)].d), temp, (yyvsp[(8) - (11)].l), - -1, -1, 0., 1.); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - List_Delete(temp); - } + int order = knots.size() - tags.size() - 1; + if(order != (int)(yyvsp[(10) - (11)].d)) + yymsg(1, "Incompatible Nurbs order: using %d", order); + GModel::current()->getGEOInternals()->addNurbs(num, tags, knots); } List_Delete((yyvsp[(6) - (11)].l)); List_Delete((yyvsp[(8) - (11)].l)); @@ -8365,126 +8289,55 @@ yyreduce: ;} break; - case 182: -#line 2013 "Gmsh.y" + case 180: +#line 1916 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); - if(factory == "OpenCASCADE"){ - std::vector<int> edges; ListOfDouble2Vector((yyvsp[(7) - (8)].l), edges); - GModel::current()->getOCCInternals()->addLineLoop(num, edges); - } - else{ - if(FindEdgeLoop(num)){ - yymsg(0, "Line loop %d already exists", num); - } - else{ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); - sortEdgesInLoop(num, temp); - EdgeLoop *l = Create_EdgeLoop(num, temp); - Tree_Add(GModel::current()->getGEOInternals()->EdgeLoops, &l); - List_Delete(temp); - } - } + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); + GModel::current()->getGEOInternals()->addCompoundLine(num, tags); List_Delete((yyvsp[(7) - (8)].l)); - Free((yyvsp[(2) - (8)].c)); - (yyval.s).Type = MSH_SEGM_LOOP; + (yyval.s).Type = MSH_SEGM_COMPOUND; (yyval.s).Num = num; ;} break; - case 183: -#line 2037 "Gmsh.y" + case 181: +#line 1925 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); if(factory == "OpenCASCADE"){ - std::vector<int> edges; ListOfDouble2Vector((yyvsp[(6) - (7)].l), edges); - GModel::current()->getOCCInternals()->addWire(num, edges, false); - } - else{ - yymsg(0, "Wire only available using OpenCASCADE factory"); - } - List_Delete((yyvsp[(6) - (7)].l)); - (yyval.s).Type = MSH_SEGM_LOOP; - (yyval.s).Num = num; - ;} - break; - - case 184: -#line 2051 "Gmsh.y" - { - GModel::current()->getGEOInternals()->addCompoundMesh(1, (yyvsp[(3) - (4)].l)); - ;} - break; - - case 185: -#line 2055 "Gmsh.y" - { - int num = (int)(yyvsp[(4) - (8)].d); - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); + GModel::current()->getOCCInternals()->addWire(num, tags, false); } else{ - Curve *c = Create_Curve(num, MSH_SEGM_COMPOUND, 1, NULL, NULL, -1, -1, 0., 1.); - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++) - c->compound.push_back((int)*(double*)List_Pointer((yyvsp[(7) - (8)].l), i)); - End_Curve(c); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - } - List_Delete((yyvsp[(7) - (8)].l)); - (yyval.s).Type = MSH_SEGM_COMPOUND; - (yyval.s).Num = num; - ;} - break; - - case 186: -#line 2073 "Gmsh.y" - { - int num = (int)(yyvsp[(4) - (8)].i); - int op = (yyvsp[(6) - (8)].i); - PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_LINE); - if(p && op == 0){ - yymsg(0, "Physical line %d already exists", num); - } - else if(!p && op > 0){ - yymsg(0, "Physical line %d does not exist", num); - } - else if(op == 0){ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); - p = Create_PhysicalGroup(num, MSH_PHYSICAL_LINE, temp); - List_Delete(temp); - List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); - } - else if(op == 1){ - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - int j = (int)d; - List_Add(p->Entities, &j); - } + yymsg(0, "Wire only available using OpenCASCADE factory"); } - else if(op == 2){ - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - int j = (int)d; - List_Suppress(p->Entities, &j, fcmp_int); - } - if(!List_Nbr(p->Entities)){ - DeletePhysicalLine(num); - } + List_Delete((yyvsp[(6) - (7)].l)); + (yyval.s).Type = MSH_SEGM_LOOP; + (yyval.s).Num = num; + ;} + break; + + case 182: +#line 1939 "Gmsh.y" + { + int num = (int)(yyvsp[(4) - (8)].d); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); + if(factory == "OpenCASCADE"){ + GModel::current()->getOCCInternals()->addLineLoop(num, tags); } else{ - yymsg(0, "Unsupported operation on physical line %d", num); + GModel::current()->getGEOInternals()->addLineLoop(num, tags); } List_Delete((yyvsp[(7) - (8)].l)); - (yyval.s).Type = MSH_PHYSICAL_LINE; + Free((yyvsp[(2) - (8)].c)); + (yyval.s).Type = MSH_SEGM_LOOP; (yyval.s).Num = num; ;} break; - case 187: -#line 2119 "Gmsh.y" + case 183: +#line 1954 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -8510,8 +8363,8 @@ yyreduce: ;} break; - case 188: -#line 2143 "Gmsh.y" + case 184: +#line 1978 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d), type = 0; if(FindSurface(num)){ @@ -8524,8 +8377,8 @@ yyreduce: yymsg(0, "Surface requires a single line loop"); } else{ - std::vector<std::vector<double> > points; - GModel::current()->getOCCInternals()->addFaceFilling(num, wires[0], points); + std::vector<std::vector<double> > tags; + GModel::current()->getOCCInternals()->addFaceFilling(num, wires[0], tags); } } else{ @@ -8569,8 +8422,8 @@ yyreduce: ;} break; - case 189: -#line 2200 "Gmsh.y" + case 185: +#line 2035 "Gmsh.y" { yymsg(1, "'Ruled Surface' command is deprecated: use 'Surface' instead"); int num = (int)(yyvsp[(4) - (9)].d), type = 0; @@ -8617,8 +8470,8 @@ yyreduce: ;} break; - case 190: -#line 2245 "Gmsh.y" + case 186: +#line 2080 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -8626,8 +8479,8 @@ yyreduce: ;} break; - case 191: -#line 2251 "Gmsh.y" + case 187: +#line 2086 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -8635,8 +8488,8 @@ yyreduce: ;} break; - case 192: -#line 2257 "Gmsh.y" + case 188: +#line 2092 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -8645,8 +8498,8 @@ yyreduce: ;} break; - case 193: -#line 2264 "Gmsh.y" + case 189: +#line 2099 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 4 || List_Nbr((yyvsp[(6) - (7)].l)) == 5){ @@ -8690,8 +8543,8 @@ yyreduce: ;} break; - case 194: -#line 2306 "Gmsh.y" + case 190: +#line 2141 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -8719,8 +8572,8 @@ yyreduce: ;} break; - case 195: -#line 2332 "Gmsh.y" + case 191: +#line 2167 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 6){ @@ -8746,8 +8599,8 @@ yyreduce: ;} break; - case 196: -#line 2356 "Gmsh.y" + case 192: +#line 2191 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 5 || List_Nbr((yyvsp[(6) - (7)].l)) == 6){ @@ -8773,8 +8626,8 @@ yyreduce: ;} break; - case 197: -#line 2380 "Gmsh.y" + case 193: +#line 2215 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 6 || List_Nbr((yyvsp[(6) - (7)].l)) == 7){ @@ -8802,8 +8655,8 @@ yyreduce: ;} break; - case 198: -#line 2406 "Gmsh.y" + case 194: +#line 2241 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 4 || List_Nbr((yyvsp[(6) - (7)].l)) == 5){ @@ -8828,8 +8681,8 @@ yyreduce: ;} break; - case 199: -#line 2429 "Gmsh.y" + case 195: +#line 2264 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 7 || List_Nbr((yyvsp[(6) - (7)].l)) == 8){ @@ -8858,8 +8711,8 @@ yyreduce: ;} break; - case 200: -#line 2456 "Gmsh.y" + case 196: +#line 2291 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 8 || List_Nbr((yyvsp[(6) - (7)].l)) == 9){ @@ -8889,8 +8742,8 @@ yyreduce: ;} break; - case 201: -#line 2484 "Gmsh.y" + case 197: +#line 2319 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(List_Nbr((yyvsp[(6) - (7)].l)) == 7){ @@ -8917,8 +8770,8 @@ yyreduce: ;} break; - case 202: -#line 2509 "Gmsh.y" + case 198: +#line 2344 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(factory == "OpenCASCADE"){ @@ -8940,8 +8793,8 @@ yyreduce: ;} break; - case 203: -#line 2529 "Gmsh.y" + case 199: +#line 2364 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(factory == "OpenCASCADE"){ @@ -8966,15 +8819,8 @@ yyreduce: ;} break; - case 204: -#line 2552 "Gmsh.y" - { - GModel::current()->getGEOInternals()->addCompoundMesh ( 2 , (yyvsp[(3) - (4)].l) ); - ;} - break; - - case 205: -#line 2556 "Gmsh.y" + case 200: +#line 2387 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -8995,8 +8841,8 @@ yyreduce: ;} break; - case 206: -#line 2576 "Gmsh.y" + case 201: +#line 2407 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindSurface(num)){ @@ -9031,54 +8877,8 @@ yyreduce: ;} break; - case 207: -#line 2609 "Gmsh.y" - { - int num = (int)(yyvsp[(4) - (8)].i); - int op = (yyvsp[(6) - (8)].i); - PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE); - if(p && op == 0){ - yymsg(0, "Physical surface %d already exists", num); - } - else if(!p && op > 0){ - yymsg(0, "Physical surface %d does not exist", num); - } - else if(op == 0){ - List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); - p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp); - List_Delete(temp); - List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); - } - else if(op == 1){ - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - int j = (int)d; - List_Add(p->Entities, &j); - } - } - else if(op == 2){ - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - int j = (int)d; - List_Suppress(p->Entities, &j, fcmp_int); - } - if(!List_Nbr(p->Entities)){ - DeletePhysicalSurface(num); - } - } - else{ - yymsg(0, "Unsupported operation on physical surface %d", num); - } - List_Delete((yyvsp[(7) - (8)].l)); - (yyval.s).Type = MSH_PHYSICAL_SURFACE; - (yyval.s).Num = num; - ;} - break; - - case 208: -#line 2656 "Gmsh.y" + case 202: +#line 2440 "Gmsh.y" { yymsg(1, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -9098,8 +8898,8 @@ yyreduce: ;} break; - case 209: -#line 2674 "Gmsh.y" + case 203: +#line 2458 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -9124,8 +8924,8 @@ yyreduce: ;} break; - case 210: -#line 2697 "Gmsh.y" + case 204: +#line 2481 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(factory == "OpenCASCADE"){ @@ -9142,8 +8942,8 @@ yyreduce: ;} break; - case 211: -#line 2712 "Gmsh.y" + case 205: +#line 2496 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(factory == "OpenCASCADE"){ @@ -9160,34 +8960,165 @@ yyreduce: ;} break; - case 212: -#line 2727 "Gmsh.y" + case 206: +#line 2511 "Gmsh.y" + { + int num = (int)(yyvsp[(4) - (8)].d); + if(FindVolume(num)){ + yymsg(0, "Volume %d already exists", num); + } + else{ + Volume *v = Create_Volume(num, MSH_VOLUME_COMPOUND); + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++) + v->compound.push_back((int)*(double*)List_Pointer((yyvsp[(7) - (8)].l), i)); + Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v); + } + List_Delete((yyvsp[(7) - (8)].l)); + (yyval.s).Type = MSH_VOLUME_COMPOUND; + (yyval.s).Num = num; + ;} + break; + + case 207: +#line 2527 "Gmsh.y" { - GModel::current()->getGEOInternals()->addCompoundMesh(3, (yyvsp[(3) - (4)].l)); + int num = (int)(yyvsp[(4) - (8)].i); + int op = (yyvsp[(6) - (8)].i); + PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_POINT); + if(p && op == 0){ + yymsg(0, "Physical point %d already exists", num); + } + else if(!p && op > 0){ + yymsg(0, "Physical point %d does not exist", num); + } + else if(op == 0){ + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + p = Create_PhysicalGroup(num, MSH_PHYSICAL_POINT, temp); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + else if(op == 1){ + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; + List_Read((yyvsp[(7) - (8)].l), i, &d); + int j = (int)d; + List_Add(p->Entities, &j); + } + } + else if(op == 2){ + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; + List_Read((yyvsp[(7) - (8)].l), i, &d); + int j = (int)d; + List_Suppress(p->Entities, &j, fcmp_int); + } + if(!List_Nbr(p->Entities)){ + DeletePhysicalPoint(num); + } + } + else{ + yymsg(0, "Unsupported operation on physical point %d", num); + } + List_Delete((yyvsp[(7) - (8)].l)); + (yyval.s).Type = MSH_PHYSICAL_POINT; + (yyval.s).Num = num; ;} break; - case 213: -#line 2731 "Gmsh.y" + case 208: +#line 2570 "Gmsh.y" { - int num = (int)(yyvsp[(4) - (8)].d); - if(FindVolume(num)){ - yymsg(0, "Volume %d already exists", num); + int num = (int)(yyvsp[(4) - (8)].i); + int op = (yyvsp[(6) - (8)].i); + PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_LINE); + if(p && op == 0){ + yymsg(0, "Physical line %d already exists", num); + } + else if(!p && op > 0){ + yymsg(0, "Physical line %d does not exist", num); + } + else if(op == 0){ + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + p = Create_PhysicalGroup(num, MSH_PHYSICAL_LINE, temp); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + else if(op == 1){ + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; + List_Read((yyvsp[(7) - (8)].l), i, &d); + int j = (int)d; + List_Add(p->Entities, &j); + } + } + else if(op == 2){ + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; + List_Read((yyvsp[(7) - (8)].l), i, &d); + int j = (int)d; + List_Suppress(p->Entities, &j, fcmp_int); + } + if(!List_Nbr(p->Entities)){ + DeletePhysicalLine(num); + } + } + else{ + yymsg(0, "Unsupported operation on physical line %d", num); + } + List_Delete((yyvsp[(7) - (8)].l)); + (yyval.s).Type = MSH_PHYSICAL_LINE; + (yyval.s).Num = num; + ;} + break; + + case 209: +#line 2613 "Gmsh.y" + { + int num = (int)(yyvsp[(4) - (8)].i); + int op = (yyvsp[(6) - (8)].i); + PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE); + if(p && op == 0){ + yymsg(0, "Physical surface %d already exists", num); + } + else if(!p && op > 0){ + yymsg(0, "Physical surface %d does not exist", num); + } + else if(op == 0){ + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + else if(op == 1){ + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; + List_Read((yyvsp[(7) - (8)].l), i, &d); + int j = (int)d; + List_Add(p->Entities, &j); + } + } + else if(op == 2){ + for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++){ + double d; + List_Read((yyvsp[(7) - (8)].l), i, &d); + int j = (int)d; + List_Suppress(p->Entities, &j, fcmp_int); + } + if(!List_Nbr(p->Entities)){ + DeletePhysicalSurface(num); + } } else{ - Volume *v = Create_Volume(num, MSH_VOLUME_COMPOUND); - for(int i = 0; i < List_Nbr((yyvsp[(7) - (8)].l)); i++) - v->compound.push_back((int)*(double*)List_Pointer((yyvsp[(7) - (8)].l), i)); - Tree_Add(GModel::current()->getGEOInternals()->Volumes, &v); + yymsg(0, "Unsupported operation on physical surface %d", num); } List_Delete((yyvsp[(7) - (8)].l)); - (yyval.s).Type = MSH_VOLUME_COMPOUND; + (yyval.s).Type = MSH_PHYSICAL_SURFACE; (yyval.s).Num = num; ;} break; - case 214: -#line 2747 "Gmsh.y" + case 210: +#line 2656 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -9232,8 +9163,8 @@ yyreduce: ;} break; - case 215: -#line 2795 "Gmsh.y" + case 211: +#line 2704 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> in[4]; @@ -9252,8 +9183,8 @@ yyreduce: ;} break; - case 216: -#line 2812 "Gmsh.y" + case 212: +#line 2721 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> in[4]; @@ -9273,8 +9204,8 @@ yyreduce: ;} break; - case 217: -#line 2830 "Gmsh.y" + case 213: +#line 2739 "Gmsh.y" { if(factory == "OpenCASCADE"){ Msg::Error("TODO OCC Symmetry"); @@ -9286,8 +9217,8 @@ yyreduce: ;} break; - case 218: -#line 2840 "Gmsh.y" + case 214: +#line 2749 "Gmsh.y" { if(factory == "OpenCASCADE"){ Msg::Error("TODO OCC Dilate"); @@ -9299,8 +9230,8 @@ yyreduce: ;} break; - case 219: -#line 2850 "Gmsh.y" + case 215: +#line 2759 "Gmsh.y" { if(factory == "OpenCASCADE"){ Msg::Error("TODO OCC Dilate"); @@ -9312,8 +9243,8 @@ yyreduce: ;} break; - case 220: -#line 2860 "Gmsh.y" + case 216: +#line 2769 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -9378,8 +9309,8 @@ yyreduce: ;} break; - case 221: -#line 2923 "Gmsh.y" + case 217: +#line 2832 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -9392,8 +9323,8 @@ yyreduce: ;} break; - case 222: -#line 2934 "Gmsh.y" + case 218: +#line 2843 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); if(factory == "OpenCASCADE"){ @@ -9408,32 +9339,32 @@ yyreduce: ;} break; - case 223: -#line 2949 "Gmsh.y" + case 219: +#line 2858 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 224: -#line 2950 "Gmsh.y" + case 220: +#line 2859 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 225: -#line 2955 "Gmsh.y" + case 221: +#line 2864 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 226: -#line 2959 "Gmsh.y" + case 222: +#line 2868 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 227: -#line 2963 "Gmsh.y" + case 223: +#line 2872 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -9464,8 +9395,8 @@ yyreduce: ;} break; - case 228: -#line 2992 "Gmsh.y" + case 224: +#line 2901 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -9496,8 +9427,8 @@ yyreduce: ;} break; - case 229: -#line 3021 "Gmsh.y" + case 225: +#line 2930 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -9528,8 +9459,8 @@ yyreduce: ;} break; - case 230: -#line 3050 "Gmsh.y" + case 226: +#line 2959 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -9560,8 +9491,8 @@ yyreduce: ;} break; - case 231: -#line 3084 "Gmsh.y" + case 227: +#line 2993 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ @@ -9585,8 +9516,8 @@ yyreduce: ;} break; - case 232: -#line 3106 "Gmsh.y" + case 228: +#line 3015 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) int t = (int)(yyvsp[(4) - (10)].d); @@ -9614,8 +9545,8 @@ yyreduce: ;} break; - case 233: -#line 3133 "Gmsh.y" + case 229: +#line 3042 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 0){ @@ -9638,8 +9569,8 @@ yyreduce: ;} break; - case 234: -#line 3155 "Gmsh.y" + case 230: +#line 3064 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(14) - (16)].l)) == 0){ @@ -9663,8 +9594,8 @@ yyreduce: ;} break; - case 235: -#line 3177 "Gmsh.y" + case 231: +#line 3086 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ @@ -9687,8 +9618,8 @@ yyreduce: ;} break; - case 236: -#line 3199 "Gmsh.y" + case 232: +#line 3108 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -9745,8 +9676,8 @@ yyreduce: ;} break; - case 237: -#line 3255 "Gmsh.y" + case 233: +#line 3164 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -9771,8 +9702,8 @@ yyreduce: ;} break; - case 238: -#line 3279 "Gmsh.y" + case 234: +#line 3188 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 3){ @@ -9798,8 +9729,8 @@ yyreduce: ;} break; - case 239: -#line 3304 "Gmsh.y" + case 235: +#line 3213 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 5){ @@ -9826,8 +9757,8 @@ yyreduce: ;} break; - case 240: -#line 3329 "Gmsh.y" + case 236: +#line 3238 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ @@ -9942,8 +9873,8 @@ yyreduce: ;} break; - case 241: -#line 3442 "Gmsh.y" + case 237: +#line 3351 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ @@ -9964,8 +9895,8 @@ yyreduce: ;} break; - case 242: -#line 3461 "Gmsh.y" + case 238: +#line 3370 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ @@ -10005,8 +9936,8 @@ yyreduce: ;} break; - case 243: -#line 3504 "Gmsh.y" + case 239: +#line 3413 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> in[4]; @@ -10029,8 +9960,8 @@ yyreduce: ;} break; - case 244: -#line 3525 "Gmsh.y" + case 240: +#line 3434 "Gmsh.y" { #if defined(HAVE_MESH) GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); @@ -10038,8 +9969,8 @@ yyreduce: ;} break; - case 245: -#line 3531 "Gmsh.y" + case 241: +#line 3440 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -10056,8 +9987,8 @@ yyreduce: ;} break; - case 246: -#line 3546 "Gmsh.y" + case 242: +#line 3455 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ ClearProject(); @@ -10087,8 +10018,8 @@ yyreduce: ;} break; - case 247: -#line 3574 "Gmsh.y" + case 243: +#line 3483 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -10102,8 +10033,8 @@ yyreduce: ;} break; - case 248: -#line 3591 "Gmsh.y" + case 244: +#line 3500 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -10114,8 +10045,8 @@ yyreduce: ;} break; - case 249: -#line 3600 "Gmsh.y" + case 245: +#line 3509 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++){ Shape TheShape; @@ -10126,8 +10057,8 @@ yyreduce: ;} break; - case 250: -#line 3614 "Gmsh.y" + case 246: +#line 3523 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -10138,8 +10069,8 @@ yyreduce: ;} break; - case 251: -#line 3628 "Gmsh.y" + case 247: +#line 3537 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1, false); @@ -10147,8 +10078,8 @@ yyreduce: ;} break; - case 252: -#line 3634 "Gmsh.y" + case 248: +#line 3543 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0, false); @@ -10156,8 +10087,8 @@ yyreduce: ;} break; - case 253: -#line 3640 "Gmsh.y" + case 249: +#line 3549 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -10168,8 +10099,8 @@ yyreduce: ;} break; - case 254: -#line 3649 "Gmsh.y" + case 250: +#line 3558 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -10180,8 +10111,8 @@ yyreduce: ;} break; - case 255: -#line 3658 "Gmsh.y" + case 251: +#line 3567 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -10192,8 +10123,8 @@ yyreduce: ;} break; - case 256: -#line 3667 "Gmsh.y" + case 252: +#line 3576 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -10204,8 +10135,8 @@ yyreduce: ;} break; - case 257: -#line 3681 "Gmsh.y" + case 253: +#line 3590 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -10269,8 +10200,8 @@ yyreduce: ;} break; - case 258: -#line 3743 "Gmsh.y" + case 254: +#line 3652 "Gmsh.y" { int n = List_Nbr((yyvsp[(3) - (5)].l)); if(n == 1){ @@ -10290,8 +10221,8 @@ yyreduce: ;} break; - case 259: -#line 3761 "Gmsh.y" + case 255: +#line 3670 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -10310,8 +10241,8 @@ yyreduce: ;} break; - case 260: -#line 3778 "Gmsh.y" + case 256: +#line 3687 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -10328,8 +10259,8 @@ yyreduce: ;} break; - case 261: -#line 3793 "Gmsh.y" + case 257: +#line 3702 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -10360,8 +10291,8 @@ yyreduce: ;} break; - case 262: -#line 3822 "Gmsh.y" + case 258: +#line 3731 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -10375,8 +10306,8 @@ yyreduce: ;} break; - case 263: -#line 3834 "Gmsh.y" + case 259: +#line 3743 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -10402,23 +10333,23 @@ yyreduce: ;} break; - case 264: -#line 3858 "Gmsh.y" + case 260: +#line 3767 "Gmsh.y" { Msg::Exit(0); ;} break; - case 265: -#line 3862 "Gmsh.y" + case 261: +#line 3771 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; ;} break; - case 266: -#line 3867 "Gmsh.y" + case 262: +#line 3776 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -10428,16 +10359,16 @@ yyreduce: ;} break; - case 267: -#line 3875 "Gmsh.y" + case 263: +#line 3784 "Gmsh.y" { new GModel(); GModel::current(GModel::list.size() - 1); ;} break; - case 268: -#line 3880 "Gmsh.y" + case 264: +#line 3789 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -10445,16 +10376,16 @@ yyreduce: ;} break; - case 269: -#line 3886 "Gmsh.y" + case 265: +#line 3795 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); ;} break; - case 270: -#line 3891 "Gmsh.y" + case 266: +#line 3800 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -10462,8 +10393,8 @@ yyreduce: ;} break; - case 271: -#line 3897 "Gmsh.y" + case 267: +#line 3806 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -10473,30 +10404,30 @@ yyreduce: ;} break; - case 272: -#line 3905 "Gmsh.y" + case 268: +#line 3814 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; - case 273: -#line 3909 "Gmsh.y" + case 269: +#line 3818 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; - case 274: -#line 3913 "Gmsh.y" + case 270: +#line 3822 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); ;} break; - case 275: -#line 3919 "Gmsh.y" + case 271: +#line 3828 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -10552,8 +10483,8 @@ yyreduce: ;} break; - case 276: -#line 3978 "Gmsh.y" + case 272: +#line 3887 "Gmsh.y" { #if defined(HAVE_POPPLER) std::vector<int> is; @@ -10567,8 +10498,8 @@ yyreduce: ;} break; - case 277: -#line 3994 "Gmsh.y" + case 273: +#line 3903 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -10587,8 +10518,8 @@ yyreduce: ;} break; - case 278: -#line 4011 "Gmsh.y" + case 274: +#line 3920 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -10607,8 +10538,8 @@ yyreduce: ;} break; - case 279: -#line 4028 "Gmsh.y" + case 275: +#line 3937 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -10632,8 +10563,8 @@ yyreduce: ;} break; - case 280: -#line 4050 "Gmsh.y" + case 276: +#line 3959 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -10657,8 +10588,8 @@ yyreduce: ;} break; - case 281: -#line 4072 "Gmsh.y" + case 277: +#line 3981 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -10695,8 +10626,8 @@ yyreduce: ;} break; - case 282: -#line 4107 "Gmsh.y" + case 278: +#line 4016 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10706,8 +10637,8 @@ yyreduce: ;} break; - case 283: -#line 4115 "Gmsh.y" + case 279: +#line 4024 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10717,8 +10648,8 @@ yyreduce: ;} break; - case 284: -#line 4123 "Gmsh.y" + case 280: +#line 4032 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10726,8 +10657,8 @@ yyreduce: ;} break; - case 285: -#line 4129 "Gmsh.y" + case 281: +#line 4038 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10736,8 +10667,8 @@ yyreduce: ;} break; - case 286: -#line 4136 "Gmsh.y" + case 282: +#line 4045 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10746,8 +10677,8 @@ yyreduce: ;} break; - case 287: -#line 4143 "Gmsh.y" + case 283: +#line 4052 "Gmsh.y" { ImbricatedTest++; if(ImbricatedTest > MAX_RECUR_TESTS-1){ @@ -10769,8 +10700,8 @@ yyreduce: ;} break; - case 288: -#line 4163 "Gmsh.y" + case 284: +#line 4072 "Gmsh.y" { if(ImbricatedTest > 0){ if (statusImbricatedTests[ImbricatedTest]){ @@ -10798,8 +10729,8 @@ yyreduce: ;} break; - case 289: -#line 4189 "Gmsh.y" + case 285: +#line 4098 "Gmsh.y" { if(ImbricatedTest > 0){ if(statusImbricatedTests[ImbricatedTest]){ @@ -10813,8 +10744,8 @@ yyreduce: ;} break; - case 290: -#line 4201 "Gmsh.y" + case 286: +#line 4110 "Gmsh.y" { ImbricatedTest--; if(ImbricatedTest < 0) @@ -10822,8 +10753,8 @@ yyreduce: ;} break; - case 291: -#line 4213 "Gmsh.y" + case 287: +#line 4122 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10855,8 +10786,8 @@ yyreduce: ;} break; - case 292: -#line 4243 "Gmsh.y" + case 288: +#line 4152 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10889,8 +10820,8 @@ yyreduce: ;} break; - case 293: -#line 4274 "Gmsh.y" + case 289: +#line 4183 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -10900,8 +10831,8 @@ yyreduce: ;} break; - case 294: -#line 4282 "Gmsh.y" + case 290: +#line 4191 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10909,8 +10840,8 @@ yyreduce: ;} break; - case 295: -#line 4288 "Gmsh.y" + case 291: +#line 4197 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -10920,8 +10851,8 @@ yyreduce: ;} break; - case 296: -#line 4296 "Gmsh.y" + case 292: +#line 4205 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10929,8 +10860,8 @@ yyreduce: ;} break; - case 297: -#line 4302 "Gmsh.y" + case 293: +#line 4211 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -10940,8 +10871,8 @@ yyreduce: ;} break; - case 298: -#line 4310 "Gmsh.y" + case 294: +#line 4219 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10949,8 +10880,8 @@ yyreduce: ;} break; - case 299: -#line 4316 "Gmsh.y" + case 295: +#line 4225 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -10960,8 +10891,8 @@ yyreduce: ;} break; - case 300: -#line 4324 "Gmsh.y" + case 296: +#line 4233 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10969,8 +10900,8 @@ yyreduce: ;} break; - case 301: -#line 4330 "Gmsh.y" + case 297: +#line 4239 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -10979,8 +10910,8 @@ yyreduce: ;} break; - case 302: -#line 4337 "Gmsh.y" + case 298: +#line 4246 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11009,8 +10940,8 @@ yyreduce: ;} break; - case 303: -#line 4364 "Gmsh.y" + case 299: +#line 4273 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11031,8 +10962,8 @@ yyreduce: ;} break; - case 304: -#line 4383 "Gmsh.y" + case 300: +#line 4292 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11053,8 +10984,8 @@ yyreduce: ;} break; - case 305: -#line 4402 "Gmsh.y" + case 301: +#line 4311 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11081,8 +11012,8 @@ yyreduce: ;} break; - case 306: -#line 4428 "Gmsh.y" + case 302: +#line 4337 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -11091,8 +11022,8 @@ yyreduce: ;} break; - case 307: -#line 4435 "Gmsh.y" + case 303: +#line 4344 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -11101,8 +11032,8 @@ yyreduce: ;} break; - case 308: -#line 4442 "Gmsh.y" + case 304: +#line 4351 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -11111,8 +11042,8 @@ yyreduce: ;} break; - case 309: -#line 4449 "Gmsh.y" + case 305: +#line 4358 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -11121,8 +11052,8 @@ yyreduce: ;} break; - case 310: -#line 4456 "Gmsh.y" + case 306: +#line 4365 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -11131,8 +11062,8 @@ yyreduce: ;} break; - case 311: -#line 4463 "Gmsh.y" + case 307: +#line 4372 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -11141,8 +11072,8 @@ yyreduce: ;} break; - case 312: -#line 4470 "Gmsh.y" + case 308: +#line 4379 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -11151,8 +11082,8 @@ yyreduce: ;} break; - case 313: -#line 4477 "Gmsh.y" + case 309: +#line 4386 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -11161,8 +11092,8 @@ yyreduce: ;} break; - case 314: -#line 4484 "Gmsh.y" + case 310: +#line 4393 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -11171,8 +11102,8 @@ yyreduce: ;} break; - case 315: -#line 4491 "Gmsh.y" + case 311: +#line 4400 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11180,8 +11111,8 @@ yyreduce: ;} break; - case 316: -#line 4497 "Gmsh.y" + case 312: +#line 4406 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -11190,8 +11121,8 @@ yyreduce: ;} break; - case 317: -#line 4504 "Gmsh.y" + case 313: +#line 4413 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11199,8 +11130,8 @@ yyreduce: ;} break; - case 318: -#line 4510 "Gmsh.y" + case 314: +#line 4419 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -11209,8 +11140,8 @@ yyreduce: ;} break; - case 319: -#line 4517 "Gmsh.y" + case 315: +#line 4426 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11218,8 +11149,8 @@ yyreduce: ;} break; - case 320: -#line 4523 "Gmsh.y" + case 316: +#line 4432 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -11228,8 +11159,8 @@ yyreduce: ;} break; - case 321: -#line 4530 "Gmsh.y" + case 317: +#line 4439 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11237,8 +11168,8 @@ yyreduce: ;} break; - case 322: -#line 4536 "Gmsh.y" + case 318: +#line 4445 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -11247,8 +11178,8 @@ yyreduce: ;} break; - case 323: -#line 4543 "Gmsh.y" + case 319: +#line 4452 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11256,8 +11187,8 @@ yyreduce: ;} break; - case 324: -#line 4549 "Gmsh.y" + case 320: +#line 4458 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -11266,8 +11197,8 @@ yyreduce: ;} break; - case 325: -#line 4556 "Gmsh.y" + case 321: +#line 4465 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11275,8 +11206,8 @@ yyreduce: ;} break; - case 326: -#line 4562 "Gmsh.y" + case 322: +#line 4471 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -11285,8 +11216,8 @@ yyreduce: ;} break; - case 327: -#line 4569 "Gmsh.y" + case 323: +#line 4478 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11294,8 +11225,8 @@ yyreduce: ;} break; - case 328: -#line 4575 "Gmsh.y" + case 324: +#line 4484 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -11304,8 +11235,8 @@ yyreduce: ;} break; - case 329: -#line 4582 "Gmsh.y" + case 325: +#line 4491 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11313,8 +11244,8 @@ yyreduce: ;} break; - case 330: -#line 4588 "Gmsh.y" + case 326: +#line 4497 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -11323,8 +11254,8 @@ yyreduce: ;} break; - case 331: -#line 4595 "Gmsh.y" + case 327: +#line 4504 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11332,8 +11263,8 @@ yyreduce: ;} break; - case 332: -#line 4601 "Gmsh.y" + case 328: +#line 4510 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -11342,20 +11273,20 @@ yyreduce: ;} break; - case 333: -#line 4612 "Gmsh.y" + case 329: +#line 4521 "Gmsh.y" { ;} break; - case 334: -#line 4615 "Gmsh.y" + case 330: +#line 4524 "Gmsh.y" { ;} break; - case 335: -#line 4621 "Gmsh.y" + case 331: +#line 4530 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -11369,8 +11300,8 @@ yyreduce: ;} break; - case 336: -#line 4633 "Gmsh.y" + case 332: +#line 4542 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -11392,8 +11323,8 @@ yyreduce: ;} break; - case 337: -#line 4653 "Gmsh.y" + case 333: +#line 4562 "Gmsh.y" { yymsg(1, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -11418,43 +11349,43 @@ yyreduce: ;} break; - case 338: -#line 4677 "Gmsh.y" + case 334: +#line 4586 "Gmsh.y" { extr.mesh.ScaleLast = true; ;} break; - case 339: -#line 4681 "Gmsh.y" + case 335: +#line 4590 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 340: -#line 4685 "Gmsh.y" + case 336: +#line 4594 "Gmsh.y" { extr.mesh.Recombine = (yyvsp[(2) - (3)].d) ? true : false; ;} break; - case 341: -#line 4689 "Gmsh.y" + case 337: +#line 4598 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 342: -#line 4693 "Gmsh.y" + case 338: +#line 4602 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 343: -#line 4697 "Gmsh.y" + case 339: +#line 4606 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -11462,8 +11393,8 @@ yyreduce: ;} break; - case 344: -#line 4703 "Gmsh.y" + case 340: +#line 4612 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -11471,36 +11402,36 @@ yyreduce: ;} break; - case 345: -#line 4709 "Gmsh.y" + case 341: +#line 4618 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; ;} break; - case 346: -#line 4713 "Gmsh.y" + case 342: +#line 4622 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; ;} break; - case 347: -#line 4717 "Gmsh.y" + case 343: +#line 4626 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; ;} break; - case 348: -#line 4721 "Gmsh.y" + case 344: +#line 4630 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; ;} break; - case 349: -#line 4725 "Gmsh.y" + case 345: +#line 4634 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -11521,8 +11452,8 @@ yyreduce: ;} break; - case 350: -#line 4744 "Gmsh.y" + case 346: +#line 4653 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -11532,48 +11463,48 @@ yyreduce: ;} break; - case 351: -#line 4756 "Gmsh.y" + case 347: +#line 4665 "Gmsh.y" { (yyval.i) = OCC_Internals::Union; ;} break; - case 352: -#line 4757 "Gmsh.y" + case 348: +#line 4666 "Gmsh.y" { (yyval.i) = OCC_Internals::Intersection; ;} break; - case 353: -#line 4758 "Gmsh.y" + case 349: +#line 4667 "Gmsh.y" { (yyval.i) = OCC_Internals::Difference; ;} break; - case 354: -#line 4759 "Gmsh.y" + case 350: +#line 4668 "Gmsh.y" { (yyval.i) = OCC_Internals::Section; ;} break; - case 355: -#line 4760 "Gmsh.y" + case 351: +#line 4669 "Gmsh.y" { (yyval.i) = OCC_Internals::Fragments; ;} break; - case 356: -#line 4764 "Gmsh.y" + case 352: +#line 4673 "Gmsh.y" { (yyval.i) = 0; ;} break; - case 357: -#line 4765 "Gmsh.y" + case 353: +#line 4674 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 358: -#line 4766 "Gmsh.y" + case 354: +#line 4675 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (3)].d); ;} break; - case 359: -#line 4771 "Gmsh.y" + case 355: +#line 4680 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11608,8 +11539,8 @@ yyreduce: ;} break; - case 360: -#line 4804 "Gmsh.y" + case 356: +#line 4713 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11634,8 +11565,8 @@ yyreduce: ;} break; - case 361: -#line 4831 "Gmsh.y" + case 357: +#line 4740 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> shape[4], tool[4]; @@ -11656,15 +11587,15 @@ yyreduce: ;} break; - case 362: -#line 4853 "Gmsh.y" + case 358: +#line 4762 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 363: -#line 4857 "Gmsh.y" + case 359: +#line 4766 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -11679,15 +11610,15 @@ yyreduce: ;} break; - case 364: -#line 4872 "Gmsh.y" + case 360: +#line 4781 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 365: -#line 4876 "Gmsh.y" + case 361: +#line 4785 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -11703,50 +11634,70 @@ yyreduce: ;} break; - case 366: -#line 4892 "Gmsh.y" + case 362: +#line 4801 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 367: -#line 4896 "Gmsh.y" + case 363: +#line 4805 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 368: -#line 4901 "Gmsh.y" + case 364: +#line 4810 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 369: -#line 4905 "Gmsh.y" + case 365: +#line 4814 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 370: -#line 4911 "Gmsh.y" + case 366: +#line 4820 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 371: -#line 4915 "Gmsh.y" + case 367: +#line 4824 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 372: -#line 4922 "Gmsh.y" + case 368: +#line 4831 "Gmsh.y" + { + for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ + double d; + List_Read((yyvsp[(3) - (6)].l), i, &d); + Vertex *v = FindPoint((int)d); + if(v){ + v->lc = (yyvsp[(5) - (6)].d); + } + else{ + GVertex *gv = GModel::current()->getVertexByTag((int)d); + if(gv) + gv->setPrescribedMeshSizeAtVertex((yyvsp[(5) - (6)].d)); + } + } + List_Delete((yyvsp[(3) - (6)].l)); + ;} + break; + + case 369: +#line 4848 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -11804,8 +11755,8 @@ yyreduce: ;} break; - case 373: -#line 4978 "Gmsh.y" + case 370: +#line 4904 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -11877,16 +11828,16 @@ yyreduce: ;} break; - case 374: -#line 5048 "Gmsh.y" + case 371: +#line 4974 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 375: -#line 5053 "Gmsh.y" + case 372: +#line 4979 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -11955,8 +11906,8 @@ yyreduce: ;} break; - case 376: -#line 5120 "Gmsh.y" + case 373: +#line 5046 "Gmsh.y" { if(!(yyvsp[(2) - (3)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -11994,8 +11945,8 @@ yyreduce: ;} break; - case 377: -#line 5156 "Gmsh.y" + case 374: +#line 5082 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (8)].l)); i++){ double d; @@ -12005,8 +11956,8 @@ yyreduce: ;} break; - case 378: -#line 5164 "Gmsh.y" + case 375: +#line 5090 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -12051,8 +12002,8 @@ yyreduce: ;} break; - case 379: -#line 5207 "Gmsh.y" + case 376: +#line 5133 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -12093,8 +12044,8 @@ yyreduce: ;} break; - case 380: -#line 5246 "Gmsh.y" + case 377: +#line 5172 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -12116,8 +12067,8 @@ yyreduce: ;} break; - case 381: -#line 5267 "Gmsh.y" + case 378: +#line 5193 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master lines (%d) different from number of " @@ -12150,8 +12101,8 @@ yyreduce: ;} break; - case 382: -#line 5299 "Gmsh.y" + case 379: +#line 5225 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -12179,8 +12130,8 @@ yyreduce: ;} break; - case 383: -#line 5326 "Gmsh.y" + case 380: +#line 5252 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -12207,8 +12158,8 @@ yyreduce: ;} break; - case 384: -#line 5352 "Gmsh.y" + case 381: +#line 5278 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -12235,8 +12186,8 @@ yyreduce: ;} break; - case 385: -#line 5378 "Gmsh.y" + case 382: +#line 5304 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -12263,8 +12214,8 @@ yyreduce: ;} break; - case 386: -#line 5404 "Gmsh.y" + case 383: +#line 5330 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -12291,8 +12242,8 @@ yyreduce: ;} break; - case 387: -#line 5430 "Gmsh.y" + case 384: +#line 5356 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -12315,8 +12266,8 @@ yyreduce: ;} break; - case 388: -#line 5451 "Gmsh.y" + case 385: +#line 5377 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -12346,8 +12297,8 @@ yyreduce: ;} break; - case 389: -#line 5479 "Gmsh.y" + case 386: +#line 5405 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -12377,8 +12328,8 @@ yyreduce: ;} break; - case 390: -#line 5507 "Gmsh.y" + case 387: +#line 5433 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -12408,8 +12359,8 @@ yyreduce: ;} break; - case 391: -#line 5535 "Gmsh.y" + case 388: +#line 5461 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -12439,8 +12390,8 @@ yyreduce: ;} break; - case 392: -#line 5563 "Gmsh.y" + case 389: +#line 5489 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -12470,8 +12421,8 @@ yyreduce: ;} break; - case 393: -#line 5591 "Gmsh.y" + case 390: +#line 5517 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -12512,8 +12463,8 @@ yyreduce: ;} break; - case 394: -#line 5630 "Gmsh.y" + case 391: +#line 5556 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves); @@ -12554,8 +12505,8 @@ yyreduce: ;} break; - case 395: -#line 5669 "Gmsh.y" + case 392: +#line 5595 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -12578,8 +12529,8 @@ yyreduce: ;} break; - case 396: -#line 5690 "Gmsh.y" + case 393: +#line 5616 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -12602,8 +12553,8 @@ yyreduce: ;} break; - case 397: -#line 5711 "Gmsh.y" + case 394: +#line 5637 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -12626,15 +12577,42 @@ yyreduce: ;} break; + case 395: +#line 5658 "Gmsh.y" + { + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); + GModel::current()->getGEOInternals()->addCompoundMesh(1, tags); + List_Delete((yyvsp[(3) - (4)].l)); + ;} + break; + + case 396: +#line 5664 "Gmsh.y" + { + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); + GModel::current()->getGEOInternals()->addCompoundMesh(2, tags); + List_Delete((yyvsp[(3) - (4)].l)); + ;} + break; + + case 397: +#line 5670 "Gmsh.y" + { + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); + GModel::current()->getGEOInternals()->addCompoundMesh(3, tags); + List_Delete((yyvsp[(3) - (4)].l)); + ;} + break; + case 398: -#line 5738 "Gmsh.y" +#line 5682 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; case 399: -#line 5742 "Gmsh.y" +#line 5686 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -12647,7 +12625,7 @@ yyreduce: break; case 400: -#line 5752 "Gmsh.y" +#line 5696 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ double d; @@ -12680,22 +12658,22 @@ yyreduce: break; case 401: -#line 5786 "Gmsh.y" +#line 5730 "Gmsh.y" { (yyval.c) = (char*)"Homology"; ;} break; case 402: -#line 5787 "Gmsh.y" +#line 5731 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; ;} break; case 403: -#line 5788 "Gmsh.y" +#line 5732 "Gmsh.y" { (yyval.c) = (char*)"Betti"; ;} break; case 404: -#line 5793 "Gmsh.y" +#line 5737 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -12704,7 +12682,7 @@ yyreduce: break; case 405: -#line 5799 "Gmsh.y" +#line 5743 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -12719,7 +12697,7 @@ yyreduce: break; case 406: -#line 5811 "Gmsh.y" +#line 5755 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -12740,7 +12718,7 @@ yyreduce: break; case 407: -#line 5829 "Gmsh.y" +#line 5773 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -12766,47 +12744,47 @@ yyreduce: break; case 408: -#line 5856 "Gmsh.y" +#line 5800 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 409: -#line 5857 "Gmsh.y" +#line 5801 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 410: -#line 5858 "Gmsh.y" +#line 5802 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 411: -#line 5859 "Gmsh.y" +#line 5803 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 412: -#line 5860 "Gmsh.y" +#line 5804 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 413: -#line 5861 "Gmsh.y" +#line 5805 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 414: -#line 5862 "Gmsh.y" +#line 5806 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 415: -#line 5863 "Gmsh.y" +#line 5807 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 416: -#line 5865 "Gmsh.y" +#line 5809 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -12816,232 +12794,232 @@ yyreduce: break; case 417: -#line 5871 "Gmsh.y" +#line 5815 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 418: -#line 5872 "Gmsh.y" +#line 5816 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 419: -#line 5873 "Gmsh.y" +#line 5817 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 420: -#line 5874 "Gmsh.y" +#line 5818 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 421: -#line 5875 "Gmsh.y" +#line 5819 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 422: -#line 5876 "Gmsh.y" +#line 5820 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 423: -#line 5877 "Gmsh.y" +#line 5821 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 424: -#line 5878 "Gmsh.y" +#line 5822 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 425: -#line 5879 "Gmsh.y" +#line 5823 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 426: -#line 5880 "Gmsh.y" +#line 5824 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 427: -#line 5881 "Gmsh.y" +#line 5825 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 428: -#line 5882 "Gmsh.y" +#line 5826 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 429: -#line 5883 "Gmsh.y" +#line 5827 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 430: -#line 5884 "Gmsh.y" +#line 5828 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 431: -#line 5885 "Gmsh.y" +#line 5829 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 432: -#line 5886 "Gmsh.y" +#line 5830 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 433: -#line 5887 "Gmsh.y" +#line 5831 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 434: -#line 5888 "Gmsh.y" +#line 5832 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 435: -#line 5889 "Gmsh.y" +#line 5833 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 436: -#line 5890 "Gmsh.y" +#line 5834 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 437: -#line 5891 "Gmsh.y" +#line 5835 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 438: -#line 5892 "Gmsh.y" +#line 5836 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 439: -#line 5893 "Gmsh.y" +#line 5837 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 440: -#line 5894 "Gmsh.y" +#line 5838 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 441: -#line 5895 "Gmsh.y" +#line 5839 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 442: -#line 5896 "Gmsh.y" +#line 5840 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 443: -#line 5897 "Gmsh.y" +#line 5841 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 444: -#line 5898 "Gmsh.y" +#line 5842 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 445: -#line 5899 "Gmsh.y" +#line 5843 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;} break; case 446: -#line 5900 "Gmsh.y" +#line 5844 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 447: -#line 5901 "Gmsh.y" +#line 5845 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 448: -#line 5902 "Gmsh.y" +#line 5846 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 449: -#line 5903 "Gmsh.y" +#line 5847 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 450: -#line 5912 "Gmsh.y" +#line 5856 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 451: -#line 5913 "Gmsh.y" +#line 5857 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 452: -#line 5914 "Gmsh.y" +#line 5858 "Gmsh.y" { (yyval.d) = (double)ImbricatedTest; ;} break; case 453: -#line 5915 "Gmsh.y" +#line 5859 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 454: -#line 5916 "Gmsh.y" +#line 5860 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 455: -#line 5917 "Gmsh.y" +#line 5861 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 456: -#line 5918 "Gmsh.y" +#line 5862 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 457: -#line 5919 "Gmsh.y" +#line 5863 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 458: -#line 5920 "Gmsh.y" +#line 5864 "Gmsh.y" { (yyval.d) = Cpu(); ;} break; case 459: -#line 5921 "Gmsh.y" +#line 5865 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; ;} break; case 460: -#line 5922 "Gmsh.y" +#line 5866 "Gmsh.y" { (yyval.d) = TotalRam(); ;} break; case 461: -#line 5927 "Gmsh.y" +#line 5871 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 462: -#line 5929 "Gmsh.y" +#line 5873 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -13050,7 +13028,7 @@ yyreduce: break; case 463: -#line 5935 "Gmsh.y" +#line 5879 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -13058,7 +13036,7 @@ yyreduce: break; case 464: -#line 5940 "Gmsh.y" +#line 5884 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -13066,7 +13044,7 @@ yyreduce: break; case 465: -#line 5945 "Gmsh.y" +#line 5889 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -13086,7 +13064,7 @@ yyreduce: break; case 466: -#line 5962 "Gmsh.y" +#line 5906 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -13107,7 +13085,7 @@ yyreduce: break; case 467: -#line 5980 "Gmsh.y" +#line 5924 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -13128,7 +13106,7 @@ yyreduce: break; case 468: -#line 5998 "Gmsh.y" +#line 5942 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -13149,7 +13127,7 @@ yyreduce: break; case 469: -#line 6016 "Gmsh.y" +#line 5960 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -13170,7 +13148,7 @@ yyreduce: break; case 470: -#line 6034 "Gmsh.y" +#line 5978 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -13178,7 +13156,7 @@ yyreduce: break; case 471: -#line 6039 "Gmsh.y" +#line 5983 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -13187,7 +13165,7 @@ yyreduce: break; case 472: -#line 6045 "Gmsh.y" +#line 5989 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(2) - (4)].c)]); @@ -13205,7 +13183,7 @@ yyreduce: break; case 473: -#line 6060 "Gmsh.y" +#line 6004 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -13227,7 +13205,7 @@ yyreduce: break; case 474: -#line 6079 "Gmsh.y" +#line 6023 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13250,7 +13228,7 @@ yyreduce: break; case 475: -#line 6099 "Gmsh.y" +#line 6043 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13273,7 +13251,7 @@ yyreduce: break; case 476: -#line 6119 "Gmsh.y" +#line 6063 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13296,7 +13274,7 @@ yyreduce: break; case 477: -#line 6139 "Gmsh.y" +#line 6083 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13319,7 +13297,7 @@ yyreduce: break; case 478: -#line 6162 "Gmsh.y" +#line 6106 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -13327,7 +13305,7 @@ yyreduce: break; case 479: -#line 6167 "Gmsh.y" +#line 6111 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -13335,7 +13313,7 @@ yyreduce: break; case 480: -#line 6172 "Gmsh.y" +#line 6116 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -13348,7 +13326,7 @@ yyreduce: break; case 481: -#line 6182 "Gmsh.y" +#line 6126 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -13361,7 +13339,7 @@ yyreduce: break; case 482: -#line 6192 "Gmsh.y" +#line 6136 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -13369,7 +13347,7 @@ yyreduce: break; case 483: -#line 6197 "Gmsh.y" +#line 6141 "Gmsh.y" { int matches = 0; for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -13383,7 +13361,7 @@ yyreduce: break; case 484: -#line 6208 "Gmsh.y" +#line 6152 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -13395,7 +13373,7 @@ yyreduce: break; case 485: -#line 6217 "Gmsh.y" +#line 6161 "Gmsh.y" { (yyval.d) = strlen((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -13403,7 +13381,7 @@ yyreduce: break; case 486: -#line 6222 "Gmsh.y" +#line 6166 "Gmsh.y" { (yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c)); @@ -13411,7 +13389,7 @@ yyreduce: break; case 487: -#line 6227 "Gmsh.y" +#line 6171 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -13438,70 +13416,70 @@ yyreduce: break; case 488: -#line 6254 "Gmsh.y" +#line 6198 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 489: -#line 6258 "Gmsh.y" +#line 6202 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 490: -#line 6262 "Gmsh.y" +#line 6206 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 491: -#line 6266 "Gmsh.y" +#line 6210 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 492: -#line 6270 "Gmsh.y" +#line 6214 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 493: -#line 6277 "Gmsh.y" +#line 6221 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; case 494: -#line 6281 "Gmsh.y" +#line 6225 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; case 495: -#line 6285 "Gmsh.y" +#line 6229 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 496: -#line 6289 "Gmsh.y" +#line 6233 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 497: -#line 6296 "Gmsh.y" +#line 6240 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -13509,14 +13487,14 @@ yyreduce: break; case 498: -#line 6301 "Gmsh.y" +#line 6245 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 499: -#line 6308 "Gmsh.y" +#line 6252 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -13524,14 +13502,14 @@ yyreduce: break; case 500: -#line 6313 "Gmsh.y" +#line 6257 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 501: -#line 6317 "Gmsh.y" +#line 6261 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -13539,14 +13517,14 @@ yyreduce: break; case 502: -#line 6322 "Gmsh.y" +#line 6266 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 503: -#line 6326 "Gmsh.y" +#line 6270 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13557,7 +13535,7 @@ yyreduce: break; case 504: -#line 6334 "Gmsh.y" +#line 6278 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13568,14 +13546,14 @@ yyreduce: break; case 505: -#line 6345 "Gmsh.y" +#line 6289 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 506: -#line 6349 "Gmsh.y" +#line 6293 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -13587,7 +13565,7 @@ yyreduce: break; case 507: -#line 6361 "Gmsh.y" +#line 6305 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13598,7 +13576,7 @@ yyreduce: break; case 508: -#line 6369 "Gmsh.y" +#line 6313 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13609,7 +13587,7 @@ yyreduce: break; case 509: -#line 6377 "Gmsh.y" +#line 6321 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -13619,7 +13597,7 @@ yyreduce: break; case 510: -#line 6384 "Gmsh.y" +#line 6328 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -13632,7 +13610,7 @@ yyreduce: break; case 511: -#line 6394 "Gmsh.y" +#line 6338 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -13664,63 +13642,63 @@ yyreduce: break; case 512: -#line 6423 "Gmsh.y" +#line 6367 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(0); ;} break; case 513: -#line 6427 "Gmsh.y" +#line 6371 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(1); ;} break; case 514: -#line 6431 "Gmsh.y" +#line 6375 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(2); ;} break; case 515: -#line 6435 "Gmsh.y" +#line 6379 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(3); ;} break; case 516: -#line 6439 "Gmsh.y" +#line 6383 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(0); ;} break; case 517: -#line 6443 "Gmsh.y" +#line 6387 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(1); ;} break; case 518: -#line 6447 "Gmsh.y" +#line 6391 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(2); ;} break; case 519: -#line 6451 "Gmsh.y" +#line 6395 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(3); ;} break; case 520: -#line 6455 "Gmsh.y" +#line 6399 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13752,7 +13730,7 @@ yyreduce: break; case 521: -#line 6484 "Gmsh.y" +#line 6428 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13784,7 +13762,7 @@ yyreduce: break; case 522: -#line 6513 "Gmsh.y" +#line 6457 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13816,7 +13794,7 @@ yyreduce: break; case 523: -#line 6542 "Gmsh.y" +#line 6486 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13848,7 +13826,7 @@ yyreduce: break; case 524: -#line 6572 "Gmsh.y" +#line 6516 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13863,7 +13841,7 @@ yyreduce: break; case 525: -#line 6585 "Gmsh.y" +#line 6529 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13878,7 +13856,7 @@ yyreduce: break; case 526: -#line 6598 "Gmsh.y" +#line 6542 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13893,7 +13871,7 @@ yyreduce: break; case 527: -#line 6611 "Gmsh.y" +#line 6555 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13908,7 +13886,7 @@ yyreduce: break; case 528: -#line 6623 "Gmsh.y" +#line 6567 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13921,7 +13899,7 @@ yyreduce: break; case 529: -#line 6633 "Gmsh.y" +#line 6577 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13934,7 +13912,7 @@ yyreduce: break; case 530: -#line 6643 "Gmsh.y" +#line 6587 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13947,7 +13925,7 @@ yyreduce: break; case 531: -#line 6653 "Gmsh.y" +#line 6597 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -13962,7 +13940,7 @@ yyreduce: break; case 532: -#line 6665 "Gmsh.y" +#line 6609 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -13977,7 +13955,7 @@ yyreduce: break; case 533: -#line 6678 "Gmsh.y" +#line 6622 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -13992,35 +13970,35 @@ yyreduce: break; case 534: -#line 6690 "Gmsh.y" +#line 6634 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 535: -#line 6694 "Gmsh.y" +#line 6638 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 536: -#line 6698 "Gmsh.y" +#line 6642 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; case 537: -#line 6702 "Gmsh.y" +#line 6646 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; case 538: -#line 6706 "Gmsh.y" +#line 6650 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -14041,7 +14019,7 @@ yyreduce: break; case 539: -#line 6724 "Gmsh.y" +#line 6668 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -14062,7 +14040,7 @@ yyreduce: break; case 540: -#line 6742 "Gmsh.y" +#line 6686 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -14073,7 +14051,7 @@ yyreduce: break; case 541: -#line 6750 "Gmsh.y" +#line 6694 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -14084,7 +14062,7 @@ yyreduce: break; case 542: -#line 6758 "Gmsh.y" +#line 6702 "Gmsh.y" { Msg::Barrier(); FILE *File; @@ -14116,7 +14094,7 @@ yyreduce: break; case 543: -#line 6787 "Gmsh.y" +#line 6731 "Gmsh.y" { double x0 = (yyvsp[(3) - (14)].d), x1 = (yyvsp[(5) - (14)].d), y0 = (yyvsp[(7) - (14)].d), y1 = (yyvsp[(9) - (14)].d), ys = (yyvsp[(11) - (14)].d); int N = (int)(yyvsp[(13) - (14)].d); @@ -14129,7 +14107,7 @@ yyreduce: break; case 544: -#line 6797 "Gmsh.y" +#line 6741 "Gmsh.y" { std::vector<double> tmp; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -14148,7 +14126,7 @@ yyreduce: break; case 545: -#line 6816 "Gmsh.y" +#line 6760 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -14156,21 +14134,21 @@ yyreduce: break; case 546: -#line 6821 "Gmsh.y" +#line 6765 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 547: -#line 6825 "Gmsh.y" +#line 6769 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 548: -#line 6829 "Gmsh.y" +#line 6773 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -14182,21 +14160,21 @@ yyreduce: break; case 549: -#line 6841 "Gmsh.y" +#line 6785 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 550: -#line 6845 "Gmsh.y" +#line 6789 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 551: -#line 6857 "Gmsh.y" +#line 6801 "Gmsh.y" { int flag = 0; if(gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ @@ -14216,7 +14194,7 @@ yyreduce: break; case 552: -#line 6874 "Gmsh.y" +#line 6818 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -14226,14 +14204,14 @@ yyreduce: break; case 553: -#line 6884 "Gmsh.y" +#line 6828 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 554: -#line 6888 "Gmsh.y" +#line 6832 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -14248,7 +14226,7 @@ yyreduce: break; case 555: -#line 6903 "Gmsh.y" +#line 6847 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -14256,21 +14234,21 @@ yyreduce: break; case 556: -#line 6908 "Gmsh.y" +#line 6852 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 557: -#line 6915 "Gmsh.y" +#line 6859 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 558: -#line 6919 "Gmsh.y" +#line 6863 "Gmsh.y" { std::string val; if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))) @@ -14286,7 +14264,7 @@ yyreduce: break; case 559: -#line 6932 "Gmsh.y" +#line 6876 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14303,7 +14281,7 @@ yyreduce: break; case 560: -#line 6946 "Gmsh.y" +#line 6890 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14320,7 +14298,7 @@ yyreduce: break; case 561: -#line 6960 "Gmsh.y" +#line 6904 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14337,7 +14315,7 @@ yyreduce: break; case 562: -#line 6974 "Gmsh.y" +#line 6918 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14354,7 +14332,7 @@ yyreduce: break; case 563: -#line 6988 "Gmsh.y" +#line 6932 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -14365,7 +14343,7 @@ yyreduce: break; case 564: -#line 6996 "Gmsh.y" +#line 6940 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -14376,21 +14354,21 @@ yyreduce: break; case 565: -#line 7007 "Gmsh.y" +#line 6951 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 566: -#line 7011 "Gmsh.y" +#line 6955 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 567: -#line 7015 "Gmsh.y" +#line 6959 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -14401,7 +14379,7 @@ yyreduce: break; case 568: -#line 7023 "Gmsh.y" +#line 6967 "Gmsh.y" { std::string exe = Msg::GetExecutableName(); (yyval.c) = (char *)Malloc(exe.size() + 1); @@ -14410,7 +14388,7 @@ yyreduce: break; case 569: -#line 7029 "Gmsh.y" +#line 6973 "Gmsh.y" { std::string action = Msg::GetOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -14419,7 +14397,7 @@ yyreduce: break; case 570: -#line 7035 "Gmsh.y" +#line 6979 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -14430,7 +14408,7 @@ yyreduce: break; case 571: -#line 7043 "Gmsh.y" +#line 6987 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -14441,7 +14419,7 @@ yyreduce: break; case 572: -#line 7051 "Gmsh.y" +#line 6995 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (4)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -14451,7 +14429,7 @@ yyreduce: break; case 573: -#line 7058 "Gmsh.y" +#line 7002 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -14462,7 +14440,7 @@ yyreduce: break; case 574: -#line 7066 "Gmsh.y" +#line 7010 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -14480,7 +14458,7 @@ yyreduce: break; case 575: -#line 7081 "Gmsh.y" +#line 7025 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -14497,7 +14475,7 @@ yyreduce: break; case 576: -#line 7095 "Gmsh.y" +#line 7039 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -14514,7 +14492,7 @@ yyreduce: break; case 577: -#line 7109 "Gmsh.y" +#line 7053 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -14529,7 +14507,7 @@ yyreduce: break; case 578: -#line 7121 "Gmsh.y" +#line 7065 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -14548,7 +14526,7 @@ yyreduce: break; case 579: -#line 7137 "Gmsh.y" +#line 7081 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -14560,7 +14538,7 @@ yyreduce: break; case 580: -#line 7146 "Gmsh.y" +#line 7090 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -14572,7 +14550,7 @@ yyreduce: break; case 581: -#line 7155 "Gmsh.y" +#line 7099 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -14585,7 +14563,7 @@ yyreduce: break; case 582: -#line 7165 "Gmsh.y" +#line 7109 "Gmsh.y" { if((yyvsp[(3) - (8)].d)){ (yyval.c) = (yyvsp[(5) - (8)].c); @@ -14599,7 +14577,7 @@ yyreduce: break; case 583: -#line 7176 "Gmsh.y" +#line 7120 "Gmsh.y" { std::string in = (yyvsp[(3) - (8)].c); std::string out = in.substr((int)(yyvsp[(5) - (8)].d), (int)(yyvsp[(7) - (8)].d)); @@ -14610,7 +14588,7 @@ yyreduce: break; case 584: -#line 7184 "Gmsh.y" +#line 7128 "Gmsh.y" { std::string in = (yyvsp[(3) - (6)].c); std::string out = in.substr((int)(yyvsp[(5) - (6)].d), std::string::npos); @@ -14621,14 +14599,14 @@ yyreduce: break; case 585: -#line 7192 "Gmsh.y" +#line 7136 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 586: -#line 7196 "Gmsh.y" +#line 7140 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -14650,7 +14628,7 @@ yyreduce: break; case 587: -#line 7215 "Gmsh.y" +#line 7159 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14660,7 +14638,7 @@ yyreduce: break; case 588: -#line 7222 "Gmsh.y" +#line 7166 "Gmsh.y" { std::string tmp = SplitFileName(GetAbsolutePath(gmsh_yyname))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14669,7 +14647,7 @@ yyreduce: break; case 589: -#line 7228 "Gmsh.y" +#line 7172 "Gmsh.y" { std::string tmp = SplitFileName((yyvsp[(3) - (4)].c))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14679,7 +14657,7 @@ yyreduce: break; case 590: -#line 7235 "Gmsh.y" +#line 7179 "Gmsh.y" { std::string tmp = GetAbsolutePath((yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14689,12 +14667,12 @@ yyreduce: break; case 591: -#line 7242 "Gmsh.y" +#line 7186 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 592: -#line 7244 "Gmsh.y" +#line 7188 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -14705,7 +14683,7 @@ yyreduce: break; case 593: -#line 7255 "Gmsh.y" +#line 7199 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); @@ -14713,12 +14691,12 @@ yyreduce: break; case 594: -#line 7260 "Gmsh.y" +#line 7204 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); ;} break; case 595: -#line 7266 "Gmsh.y" +#line 7210 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -14729,7 +14707,7 @@ yyreduce: break; case 596: -#line 7275 "Gmsh.y" +#line 7219 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -14740,23 +14718,23 @@ yyreduce: break; case 597: -#line 7288 "Gmsh.y" +#line 7232 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 598: -#line 7291 "Gmsh.y" +#line 7235 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 599: -#line 7295 "Gmsh.y" +#line 7239 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; /* Line 1267 of yacc.c. */ -#line 14760 "Gmsh.tab.cpp" +#line 14738 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -14970,7 +14948,7 @@ yyreturn: } -#line 7298 "Gmsh.y" +#line 7242 "Gmsh.y" void assignVariable(const std::string &name, int index, int assignType, diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 999ce37b45982b6c1dc65ce638a1a509f3fab305..1292d6c74dad93121043377277de7675551d611d 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -221,9 +221,16 @@ GeoFormatItems : ; GeoFormatItem : - View { return 1; } - | Printf { return 1; } + Printf { return 1; } + | View { return 1; } | Affectation { return 1; } + | tSetFactory '(' StringExprVar ')' tEND + { + // FIXME: when changing to OpenCASCADE, get maxTags from GEO_Internals and + // add that info in OCC_Internals - same in the other direction + factory = $3; + Free($3); + } | Shape { return 1; } | Transform { List_Delete($1); return 1; } | Delete { return 1; } @@ -1716,18 +1723,7 @@ CircleOptions : ; Shape : - - tSetFactory '(' StringExprVar ')' tEND - { - // FIXME: when changing to OpenCASCADE, get maxTags from GEO_Internals and - // add that info in OCC_Internals - same in the other direction - factory = $3; - Free($3); - } - - // Points - - | tPoint '(' FExpr ')' tAFFECT VExpr tEND + tPoint '(' FExpr ')' tAFFECT VExpr tEND { int num = (int)$3; double x = CTX::instance()->geom.scalingFactor * $6[0]; @@ -1748,81 +1744,15 @@ Shape : $$.Type = MSH_POINT; $$.Num = num; } - | tPhysical tPoint '(' PhysicalId0 ')' NumericAffectation ListOfDouble tEND - { - int num = (int)$4; - int op = $6; - PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_POINT); - if(p && op == 0){ - yymsg(0, "Physical point %d already exists", num); - } - else if(!p && op > 0){ - yymsg(0, "Physical point %d does not exist", num); - } - else if(op == 0){ - List_T *temp = ListOfDouble2ListOfInt($7); - p = Create_PhysicalGroup(num, MSH_PHYSICAL_POINT, temp); - List_Delete(temp); - List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); - } - else if(op == 1){ - for(int i = 0; i < List_Nbr($7); i++){ - double d; - List_Read($7, i, &d); - int j = (int)d; - List_Add(p->Entities, &j); - } - } - else if(op == 2){ - for(int i = 0; i < List_Nbr($7); i++){ - double d; - List_Read($7, i, &d); - int j = (int)d; - List_Suppress(p->Entities, &j, fcmp_int); - } - if(!List_Nbr(p->Entities)){ - DeletePhysicalPoint(num); - } - } - else{ - yymsg(0, "Unsupported operation on physical point %d", num); - } - List_Delete($7); - $$.Type = MSH_PHYSICAL_POINT; - $$.Num = num; - } - | tCharacteristic tLength ListOfDouble tAFFECT FExpr tEND - { - for(int i = 0; i < List_Nbr($3); i++){ - double d; - List_Read($3, i, &d); - Vertex *v = FindPoint((int)d); - if(v){ - v->lc = $5; - } - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - gv->setPrescribedMeshSizeAtVertex($5); - } - } - List_Delete($3); - // dummy values - $$.Type = 0; - $$.Num = 0; - } - - // Lines - | tLine '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; - std::vector<int> points; ListOfDouble2Vector($6, points); + std::vector<int> tags; ListOfDouble2Vector($6, tags); if(factory == "OpenCASCADE"){ - GModel::current()->getOCCInternals()->addLine(num, points); + GModel::current()->getOCCInternals()->addLine(num, tags); } else{ - GModel::current()->getGEOInternals()->addLine(num, points); + GModel::current()->getGEOInternals()->addLine(num, tags); } List_Delete($6); $$.Type = MSH_SEGM_LINE; @@ -1852,12 +1782,12 @@ Shape : | tSpline '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; - std::vector<int> points; ListOfDouble2Vector($6, points); + std::vector<int> tags; ListOfDouble2Vector($6, tags); if(factory == "OpenCASCADE"){ yymsg(0, "Spline not available with OpenCASCADE factory"); } else{ - GModel::current()->getGEOInternals()->addSpline(num, points); + GModel::current()->getGEOInternals()->addSpline(num, tags); } List_Delete($6); $$.Type = MSH_SEGM_SPLN; @@ -1866,12 +1796,12 @@ Shape : | tCircle '(' FExpr ')' tAFFECT ListOfDouble CircleOptions tEND { int num = (int)$3; - std::vector<int> points; ListOfDouble2Vector($6, points); + std::vector<int> tags; ListOfDouble2Vector($6, tags); std::vector<double> param; ListOfDouble2Vector($6, param); if(factory == "OpenCASCADE"){ - if(points.size() == 3){ + if(tags.size() == 3){ GModel::current()->getOCCInternals()->addCircleArc - (num, points[0], points[1], points[2]); + (num, tags[0], tags[1], tags[2]); } else if(param.size() >= 4 && param.size() <= 6){ double r = param[3]; @@ -1885,9 +1815,9 @@ Shape : } } else{ - if(points.size() == 3){ + if(tags.size() == 3){ GModel::current()->getGEOInternals()->addCircleArc - (num, points[0], points[1], points[2], $7[0], $7[1], $7[2]); + (num, tags[0], tags[1], tags[2], $7[0], $7[1], $7[2]); } else{ yymsg(0, "Circle requires 3 points"); @@ -1900,16 +1830,16 @@ Shape : | tEllipse '(' FExpr ')' tAFFECT ListOfDouble CircleOptions tEND { int num = (int)$3; - std::vector<int> points; ListOfDouble2Vector($6, points); + std::vector<int> tags; ListOfDouble2Vector($6, tags); std::vector<double> param; ListOfDouble2Vector($6, param); if(factory == "OpenCASCADE"){ - if(points.size() == 3){ + if(tags.size() == 3){ GModel::current()->getOCCInternals()->addEllipseArc - (num, points[0], points[1], points[2]); + (num, tags[0], tags[1], tags[2]); } - else if(points.size() == 4){ + else if(tags.size() == 4){ GModel::current()->getOCCInternals()->addEllipseArc - (num, points[0], points[1], points[3]); + (num, tags[0], tags[1], tags[3]); } else if(param.size() >= 5 && param.size() <= 7){ double a1 = (param.size() >= 6) ? param[5] : 0.; @@ -1922,9 +1852,9 @@ Shape : } } else{ - if(points.size() == 4){ + if(tags.size() == 4){ GModel::current()->getGEOInternals()->addEllipseArc - (num, points[0], points[1], points[2], points[3], $7[0], $7[1], $7[2]); + (num, tags[0], tags[1], tags[2], tags[3], $7[0], $7[1], $7[2]); } else{ yymsg(0, "Ellipse requires 4 points"); @@ -1937,22 +1867,12 @@ Shape : | tBSpline '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); + std::vector<int> tags; ListOfDouble2Vector($6, tags); + if(factory == "OpenCASCADE"){ + GModel::current()->getOCCInternals()->addBSpline(num, tags); } else{ - if(factory == "OpenCASCADE"){ - std::vector<int> tags; ListOfDouble2Vector($6, tags); - GModel::current()->getOCCInternals()->addBSpline(num, tags); - } - else{ - List_T *temp = ListOfDouble2ListOfInt($6); - Curve *c = Create_Curve(num, MSH_SEGM_BSPLN, 2, temp, NULL, - -1, -1, 0., 1.); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - List_Delete(temp); - } + GModel::current()->getGEOInternals()->addBSpline(num, tags); } List_Delete($6); $$.Type = MSH_SEGM_BSPLN; @@ -1961,22 +1881,12 @@ Shape : | tBezier '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); + std::vector<int> tags; ListOfDouble2Vector($6, tags); + if(factory == "OpenCASCADE"){ + GModel::current()->getOCCInternals()->addBezier(num, tags); } else{ - if(factory == "OpenCASCADE"){ - std::vector<int> tags; ListOfDouble2Vector($6, tags); - GModel::current()->getOCCInternals()->addBezier(num, tags); - } - else{ - List_T *temp = ListOfDouble2ListOfInt($6); - Curve *c = Create_Curve(num, MSH_SEGM_BEZIER, 2, temp, NULL, - -1, -1, 0., 1.); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - List_Delete(temp); - } + GModel::current()->getGEOInternals()->addBezier(num, tags); } List_Delete($6); $$.Type = MSH_SEGM_BEZIER; @@ -1986,59 +1896,37 @@ Shape : tNurbsOrder FExpr tEND { int num = (int)$3; - if(List_Nbr($6) + (int)$10 + 1 != List_Nbr($8)){ - yymsg(0, "Wrong definition of Nurbs Curve %d: " - "got %d knots, need N + D + 1 = %d + %d + 1 = %d", - (int)$3, List_Nbr($8), List_Nbr($6), (int)$10, List_Nbr($6) + (int)$10 + 1); + std::vector<int> tags; ListOfDouble2Vector($6, tags); + std::vector<double> knots; ListOfDouble2Vector($8, knots); + if(factory == "OpenCASCADE"){ + yymsg(0, "Nurbs not available yet with OpenCASCADE factory"); } else{ - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); - } - else{ - List_T *temp = ListOfDouble2ListOfInt($6); - Curve *c = Create_Curve(num, MSH_SEGM_NURBS, (int)$10, temp, $8, - -1, -1, 0., 1.); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - List_Delete(temp); - } + int order = knots.size() - tags.size() - 1; + if(order != (int)$10) + yymsg(1, "Incompatible Nurbs order: using %d", order); + GModel::current()->getGEOInternals()->addNurbs(num, tags, knots); } List_Delete($6); List_Delete($8); $$.Type = MSH_SEGM_NURBS; $$.Num = num; } - | tLine tSTRING '(' FExpr ')' tAFFECT ListOfDouble tEND + | tCompound tLine '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; - if(factory == "OpenCASCADE"){ - std::vector<int> edges; ListOfDouble2Vector($7, edges); - GModel::current()->getOCCInternals()->addLineLoop(num, edges); - } - else{ - if(FindEdgeLoop(num)){ - yymsg(0, "Line loop %d already exists", num); - } - else{ - List_T *temp = ListOfDouble2ListOfInt($7); - sortEdgesInLoop(num, temp); - EdgeLoop *l = Create_EdgeLoop(num, temp); - Tree_Add(GModel::current()->getGEOInternals()->EdgeLoops, &l); - List_Delete(temp); - } - } + std::vector<int> tags; ListOfDouble2Vector($7, tags); + GModel::current()->getGEOInternals()->addCompoundLine(num, tags); List_Delete($7); - Free($2); - $$.Type = MSH_SEGM_LOOP; + $$.Type = MSH_SEGM_COMPOUND; $$.Num = num; } | tWire '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; + std::vector<int> tags; ListOfDouble2Vector($6, tags); if(factory == "OpenCASCADE"){ - std::vector<int> edges; ListOfDouble2Vector($6, edges); - GModel::current()->getOCCInternals()->addWire(num, edges, false); + GModel::current()->getOCCInternals()->addWire(num, tags, false); } else{ yymsg(0, "Wire only available using OpenCASCADE factory"); @@ -2047,74 +1935,21 @@ Shape : $$.Type = MSH_SEGM_LOOP; $$.Num = num; } - | tCompound tLine ListOfDouble tEND - { - GModel::current()->getGEOInternals()->addCompoundMesh(1, $3); - } - | tCompound tLine '(' FExpr ')' tAFFECT ListOfDouble tEND - { - int num = (int)$4; - if(FindCurve(num)){ - yymsg(0, "Curve %d already exists", num); - } - else{ - Curve *c = Create_Curve(num, MSH_SEGM_COMPOUND, 1, NULL, NULL, -1, -1, 0., 1.); - for(int i = 0; i < List_Nbr($7); i++) - c->compound.push_back((int)*(double*)List_Pointer($7, i)); - End_Curve(c); - Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); - CreateReversedCurve(c); - } - List_Delete($7); - $$.Type = MSH_SEGM_COMPOUND; - $$.Num = num; - } - | tPhysical tLine '(' PhysicalId1 ')' NumericAffectation ListOfDouble tEND + | tLine tSTRING '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; - int op = $6; - PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_LINE); - if(p && op == 0){ - yymsg(0, "Physical line %d already exists", num); - } - else if(!p && op > 0){ - yymsg(0, "Physical line %d does not exist", num); - } - else if(op == 0){ - List_T *temp = ListOfDouble2ListOfInt($7); - p = Create_PhysicalGroup(num, MSH_PHYSICAL_LINE, temp); - List_Delete(temp); - List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); - } - else if(op == 1){ - for(int i = 0; i < List_Nbr($7); i++){ - double d; - List_Read($7, i, &d); - int j = (int)d; - List_Add(p->Entities, &j); - } - } - else if(op == 2){ - for(int i = 0; i < List_Nbr($7); i++){ - double d; - List_Read($7, i, &d); - int j = (int)d; - List_Suppress(p->Entities, &j, fcmp_int); - } - if(!List_Nbr(p->Entities)){ - DeletePhysicalLine(num); - } + std::vector<int> tags; ListOfDouble2Vector($7, tags); + if(factory == "OpenCASCADE"){ + GModel::current()->getOCCInternals()->addLineLoop(num, tags); } else{ - yymsg(0, "Unsupported operation on physical line %d", num); + GModel::current()->getGEOInternals()->addLineLoop(num, tags); } List_Delete($7); - $$.Type = MSH_PHYSICAL_LINE; + Free($2); + $$.Type = MSH_SEGM_LOOP; $$.Num = num; } - - // Surfaces - | tPlane tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; @@ -2152,8 +1987,8 @@ Shape : yymsg(0, "Surface requires a single line loop"); } else{ - std::vector<std::vector<double> > points; - GModel::current()->getOCCInternals()->addFaceFilling(num, wires[0], points); + std::vector<std::vector<double> > tags; + GModel::current()->getOCCInternals()->addFaceFilling(num, wires[0], tags); } } else{ @@ -2548,10 +2383,6 @@ Shape : $$.Type = MSH_SURF_LOOP; $$.Num = num; } - | tCompound tSurface ListOfDouble tEND - { - GModel::current()->getGEOInternals()->addCompoundMesh ( 2 , $3 ); - } | tCompound tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; @@ -2605,53 +2436,6 @@ Shape : $$.Type = MSH_SURF_COMPOUND; $$.Num = num; } - | tPhysical tSurface '(' PhysicalId2 ')' NumericAffectation ListOfDouble tEND - { - int num = (int)$4; - int op = $6; - PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE); - if(p && op == 0){ - yymsg(0, "Physical surface %d already exists", num); - } - else if(!p && op > 0){ - yymsg(0, "Physical surface %d does not exist", num); - } - else if(op == 0){ - List_T *temp = ListOfDouble2ListOfInt($7); - p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp); - List_Delete(temp); - List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); - } - else if(op == 1){ - for(int i = 0; i < List_Nbr($7); i++){ - double d; - List_Read($7, i, &d); - int j = (int)d; - List_Add(p->Entities, &j); - } - } - else if(op == 2){ - for(int i = 0; i < List_Nbr($7); i++){ - double d; - List_Read($7, i, &d); - int j = (int)d; - List_Suppress(p->Entities, &j, fcmp_int); - } - if(!List_Nbr(p->Entities)){ - DeletePhysicalSurface(num); - } - } - else{ - yymsg(0, "Unsupported operation on physical surface %d", num); - } - List_Delete($7); - $$.Type = MSH_PHYSICAL_SURFACE; - $$.Num = num; - } - - // Volumes - - // for backward compatibility: | tComplex tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND { yymsg(1, "'Complex Volume' command is deprecated: use 'Volume' instead"); @@ -2723,10 +2507,6 @@ Shape : $$.Type = MSH_VOLUME; $$.Num = num; } - | tCompound tVolume ListOfDouble tEND - { - GModel::current()->getGEOInternals()->addCompoundMesh(3, $3); - } | tCompound tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; @@ -2743,6 +2523,135 @@ Shape : $$.Type = MSH_VOLUME_COMPOUND; $$.Num = num; } + | tPhysical tPoint '(' PhysicalId0 ')' NumericAffectation ListOfDouble tEND + { + int num = (int)$4; + int op = $6; + PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_POINT); + if(p && op == 0){ + yymsg(0, "Physical point %d already exists", num); + } + else if(!p && op > 0){ + yymsg(0, "Physical point %d does not exist", num); + } + else if(op == 0){ + List_T *temp = ListOfDouble2ListOfInt($7); + p = Create_PhysicalGroup(num, MSH_PHYSICAL_POINT, temp); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + else if(op == 1){ + for(int i = 0; i < List_Nbr($7); i++){ + double d; + List_Read($7, i, &d); + int j = (int)d; + List_Add(p->Entities, &j); + } + } + else if(op == 2){ + for(int i = 0; i < List_Nbr($7); i++){ + double d; + List_Read($7, i, &d); + int j = (int)d; + List_Suppress(p->Entities, &j, fcmp_int); + } + if(!List_Nbr(p->Entities)){ + DeletePhysicalPoint(num); + } + } + else{ + yymsg(0, "Unsupported operation on physical point %d", num); + } + List_Delete($7); + $$.Type = MSH_PHYSICAL_POINT; + $$.Num = num; + } + | tPhysical tLine '(' PhysicalId1 ')' NumericAffectation ListOfDouble tEND + { + int num = (int)$4; + int op = $6; + PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_LINE); + if(p && op == 0){ + yymsg(0, "Physical line %d already exists", num); + } + else if(!p && op > 0){ + yymsg(0, "Physical line %d does not exist", num); + } + else if(op == 0){ + List_T *temp = ListOfDouble2ListOfInt($7); + p = Create_PhysicalGroup(num, MSH_PHYSICAL_LINE, temp); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + else if(op == 1){ + for(int i = 0; i < List_Nbr($7); i++){ + double d; + List_Read($7, i, &d); + int j = (int)d; + List_Add(p->Entities, &j); + } + } + else if(op == 2){ + for(int i = 0; i < List_Nbr($7); i++){ + double d; + List_Read($7, i, &d); + int j = (int)d; + List_Suppress(p->Entities, &j, fcmp_int); + } + if(!List_Nbr(p->Entities)){ + DeletePhysicalLine(num); + } + } + else{ + yymsg(0, "Unsupported operation on physical line %d", num); + } + List_Delete($7); + $$.Type = MSH_PHYSICAL_LINE; + $$.Num = num; + } + | tPhysical tSurface '(' PhysicalId2 ')' NumericAffectation ListOfDouble tEND + { + int num = (int)$4; + int op = $6; + PhysicalGroup *p = FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE); + if(p && op == 0){ + yymsg(0, "Physical surface %d already exists", num); + } + else if(!p && op > 0){ + yymsg(0, "Physical surface %d does not exist", num); + } + else if(op == 0){ + List_T *temp = ListOfDouble2ListOfInt($7); + p = Create_PhysicalGroup(num, MSH_PHYSICAL_SURFACE, temp); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + else if(op == 1){ + for(int i = 0; i < List_Nbr($7); i++){ + double d; + List_Read($7, i, &d); + int j = (int)d; + List_Add(p->Entities, &j); + } + } + else if(op == 2){ + for(int i = 0; i < List_Nbr($7); i++){ + double d; + List_Read($7, i, &d); + int j = (int)d; + List_Suppress(p->Entities, &j, fcmp_int); + } + if(!List_Nbr(p->Entities)){ + DeletePhysicalSurface(num); + } + } + else{ + yymsg(0, "Unsupported operation on physical surface %d", num); + } + List_Delete($7); + $$.Type = MSH_PHYSICAL_SURFACE; + $$.Num = num; + } | tPhysical tVolume '(' PhysicalId3 ')' NumericAffectation ListOfDouble tEND { int num = (int)$4; @@ -4918,7 +4827,24 @@ PeriodicTransform : ; Constraints : - tTransfinite tLine ListOfDoubleOrAll tAFFECT FExpr TransfiniteType tEND + tCharacteristic tLength ListOfDouble tAFFECT FExpr tEND + { + for(int i = 0; i < List_Nbr($3); i++){ + double d; + List_Read($3, i, &d); + Vertex *v = FindPoint((int)d); + if(v){ + v->lc = $5; + } + else{ + GVertex *gv = GModel::current()->getVertexByTag((int)d); + if(gv) + gv->setPrescribedMeshSizeAtVertex($5); + } + } + List_Delete($3); + } + | tTransfinite tLine ListOfDoubleOrAll tAFFECT FExpr TransfiniteType tEND { int type = (int)$6[0]; double coef = fabs($6[1]); @@ -5728,6 +5654,24 @@ Constraints : List_Delete($3); } } + | tCompound tLine ListOfDouble tEND + { + std::vector<int> tags; ListOfDouble2Vector($3, tags); + GModel::current()->getGEOInternals()->addCompoundMesh(1, tags); + List_Delete($3); + } + | tCompound tSurface ListOfDouble tEND + { + std::vector<int> tags; ListOfDouble2Vector($3, tags); + GModel::current()->getGEOInternals()->addCompoundMesh(2, tags); + List_Delete($3); + } + | tCompound tVolume ListOfDouble tEND + { + std::vector<int> tags; ListOfDouble2Vector($3, tags); + GModel::current()->getGEOInternals()->addCompoundMesh(3, tags); + List_Delete($3); + } ; diff --git a/benchmarks/1d/nurbs.geo b/benchmarks/1d/nurbs.geo index 28010ddd043707b29eabb87313bb71a102cb852c..84f57ec6901c963647a66d21fdd30c725e4d4fe1 100644 --- a/benchmarks/1d/nurbs.geo +++ b/benchmarks/1d/nurbs.geo @@ -15,4 +15,3 @@ Nurbs(1) = {1,2,3,4} Knots {0,0,0,0, 1, 1,1,1} Order 3; //Nurbs(1) = {1,2,3,4} Knots {0,0,0,0, 1,1,1,1} Order 3; //Nurbs(2) = {1,2,3,4} Knots {0,0,1, 1 } Order 3; -