diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index be16cf5a4b2acd57f2cdb7b4c62a1655ac770f80..01175cc9308032201151cfbe69b395a4b7dc1cd7 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,4 +1,4 @@ -%{ /* $Id: Gmsh.l,v 1.11 2000-12-07 00:55:16 geuzaine Exp $ */ +%{ /* $Id: Gmsh.l,v 1.12 2000-12-07 08:46:27 geuzaine Exp $ */ #include <stdio.h> #include <stdlib.h> @@ -142,7 +142,6 @@ Modulo return tModulo ; Nurbs return tNurbs; Order return tOrder; -Options return tOptions; Physical return tPhysical; Pi return tPi; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index f562882d85a1592cb59b188ead8a8c8b6b19fe60..f4c569d539d42c6e6942c26df9a58a47d4092476 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1,90 +1,90 @@ /* A Bison parser, made from Gmsh.y - by GNU Bison version 1.28 */ + by GNU Bison version 1.25 + */ #define YYBISON 1 /* Identify Bison output. */ -#define tDOUBLE 257 -#define tSTRING 258 -#define tBIGSTR 259 -#define tEND 260 -#define tAFFECT 261 -#define tDOTS 262 -#define tPi 263 -#define tExp 264 -#define tLog 265 -#define tLog10 266 -#define tSqrt 267 -#define tSin 268 -#define tAsin 269 -#define tCos 270 -#define tAcos 271 -#define tTan 272 -#define tAtan 273 -#define tAtan2 274 -#define tSinh 275 -#define tCosh 276 -#define tTanh 277 -#define tFabs 278 -#define tFloor 279 -#define tCeil 280 -#define tFmod 281 -#define tModulo 282 -#define tHypot 283 -#define tPrintf 284 -#define tPoint 285 -#define tCircle 286 -#define tEllipsis 287 -#define tLine 288 -#define tSurface 289 -#define tSpline 290 -#define tVolume 291 -#define tCharacteristic 292 -#define tLength 293 -#define tParametric 294 -#define tElliptic 295 -#define tPlane 296 -#define tRuled 297 -#define tTransfinite 298 -#define tComplex 299 -#define tPhysical 300 -#define tUsing 301 -#define tBump 302 -#define tProgression 303 -#define tRotate 304 -#define tTranslate 305 -#define tSymmetry 306 -#define tDilate 307 -#define tExtrude 308 -#define tDuplicata 309 -#define tLoop 310 -#define tInclude 311 -#define tRecombine 312 -#define tDelete 313 -#define tCoherence 314 -#define tView 315 -#define tAttractor 316 -#define tLayers 317 -#define tScalarTetrahedron 318 -#define tVectorTetrahedron 319 -#define tTensorTetrahedron 320 -#define tScalarTriangle 321 -#define tVectorTriangle 322 -#define tTensorTriangle 323 -#define tScalarLine 324 -#define tVectorLine 325 -#define tTensorLine 326 -#define tScalarPoint 327 -#define tVectorPoint 328 -#define tTensorPoint 329 -#define tBSpline 330 -#define tNurbs 331 -#define tOrder 332 -#define tWith 333 -#define tBounds 334 -#define tKnots 335 -#define tColor 336 -#define tOptions 337 +#define tDOUBLE 258 +#define tSTRING 259 +#define tBIGSTR 260 +#define tEND 261 +#define tAFFECT 262 +#define tDOTS 263 +#define tPi 264 +#define tExp 265 +#define tLog 266 +#define tLog10 267 +#define tSqrt 268 +#define tSin 269 +#define tAsin 270 +#define tCos 271 +#define tAcos 272 +#define tTan 273 +#define tAtan 274 +#define tAtan2 275 +#define tSinh 276 +#define tCosh 277 +#define tTanh 278 +#define tFabs 279 +#define tFloor 280 +#define tCeil 281 +#define tFmod 282 +#define tModulo 283 +#define tHypot 284 +#define tPrintf 285 +#define tPoint 286 +#define tCircle 287 +#define tEllipsis 288 +#define tLine 289 +#define tSurface 290 +#define tSpline 291 +#define tVolume 292 +#define tCharacteristic 293 +#define tLength 294 +#define tParametric 295 +#define tElliptic 296 +#define tPlane 297 +#define tRuled 298 +#define tTransfinite 299 +#define tComplex 300 +#define tPhysical 301 +#define tUsing 302 +#define tBump 303 +#define tProgression 304 +#define tRotate 305 +#define tTranslate 306 +#define tSymmetry 307 +#define tDilate 308 +#define tExtrude 309 +#define tDuplicata 310 +#define tLoop 311 +#define tInclude 312 +#define tRecombine 313 +#define tDelete 314 +#define tCoherence 315 +#define tView 316 +#define tAttractor 317 +#define tLayers 318 +#define tScalarTetrahedron 319 +#define tVectorTetrahedron 320 +#define tTensorTetrahedron 321 +#define tScalarTriangle 322 +#define tVectorTriangle 323 +#define tTensorTriangle 324 +#define tScalarLine 325 +#define tVectorLine 326 +#define tTensorLine 327 +#define tScalarPoint 328 +#define tVectorPoint 329 +#define tTensorPoint 330 +#define tBSpline 331 +#define tNurbs 332 +#define tOrder 333 +#define tWith 334 +#define tBounds 335 +#define tKnots 336 +#define tColor 337 #define tFor 338 #define tEndFor 339 #define tScript 340 @@ -160,7 +160,7 @@ #define tMINUSMINUS 410 #line 1 "Gmsh.y" - /* $Id: Gmsh.tab.cpp,v 1.23 2000-12-07 01:14:30 geuzaine Exp $ */ + /* $Id: Gmsh.tab.cpp,v 1.24 2000-12-07 08:46:27 geuzaine Exp $ */ #include <stdarg.h> @@ -237,26 +237,26 @@ typedef union { -#define YYFINAL 1493 +#define YYFINAL 1479 #define YYFLAG -32768 -#define YYNTBASE 175 +#define YYNTBASE 174 -#define YYTRANSLATE(x) ((unsigned)(x) <= 410 ? yytranslate[x] : 255) +#define YYTRANSLATE(x) ((unsigned)(x) <= 410 ? yytranslate[x] : 250) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 163, 2, 2, 2, 160, 2, 2, 167, - 169, 158, 156, 168, 157, 172, 159, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 152, - 2, 153, 142, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 162, 2, 2, 2, 159, 2, 2, 166, + 168, 157, 155, 167, 156, 171, 158, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 151, + 2, 152, 141, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 173, 2, 174, 164, 2, 2, 2, 2, 2, 2, + 172, 2, 173, 163, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 170, 2, 171, 2, 2, 2, 2, 2, + 2, 2, 169, 2, 170, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -269,22 +269,22 @@ static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 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, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 154, 155, 161, 162, 165, 166 + 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 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, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 153, 154, 160, 161, 164, 165 }; #if YYDEBUG != 0 @@ -295,253 +295,250 @@ static const short yyprhs[] = { 0, 248, 260, 274, 284, 294, 306, 316, 328, 338, 350, 364, 378, 390, 404, 422, 432, 444, 456, 470, 482, 492, 493, 496, 498, 500, 502, 504, 506, 508, 510, - 512, 514, 516, 518, 520, 522, 527, 532, 535, 543, - 550, 559, 560, 563, 566, 569, 572, 575, 578, 581, - 584, 587, 590, 593, 596, 598, 602, 603, 617, 619, - 623, 624, 638, 640, 644, 645, 659, 661, 665, 666, - 686, 688, 692, 693, 713, 715, 719, 720, 740, 742, - 746, 747, 773, 775, 779, 780, 806, 808, 812, 813, - 839, 841, 845, 846, 878, 880, 884, 885, 917, 919, - 923, 924, 956, 961, 965, 969, 974, 979, 984, 989, - 997, 1006, 1019, 1026, 1032, 1040, 1048, 1061, 1069, 1079, - 1097, 1105, 1114, 1123, 1131, 1143, 1149, 1158, 1168, 1177, - 1200, 1221, 1230, 1239, 1245, 1254, 1262, 1271, 1277, 1289, - 1295, 1305, 1307, 1309, 1311, 1312, 1315, 1320, 1325, 1329, - 1333, 1336, 1340, 1347, 1356, 1358, 1367, 1380, 1389, 1402, - 1411, 1424, 1436, 1452, 1454, 1457, 1467, 1470, 1477, 1487, - 1497, 1506, 1515, 1524, 1531, 1536, 1539, 1540, 1543, 1545, - 1552, 1564, 1571, 1583, 1590, 1602, 1609, 1621, 1628, 1640, - 1647, 1659, 1665, 1677, 1683, 1695, 1702, 1714, 1721, 1733, - 1740, 1752, 1761, 1762, 1765, 1767, 1769, 1771, 1773, 1775, - 1777, 1779, 1783, 1786, 1789, 1792, 1796, 1800, 1804, 1808, - 1812, 1816, 1820, 1824, 1828, 1832, 1836, 1840, 1844, 1848, - 1854, 1859, 1864, 1869, 1874, 1879, 1884, 1889, 1894, 1899, - 1904, 1911, 1916, 1921, 1926, 1931, 1936, 1941, 1948, 1955, - 1962, 1964, 1966, 1968, 1972, 1981, 1986, 1996, 2001, 2011, - 2015, 2021, 2023, 2026, 2029, 2033, 2037, 2049, 2059, 2067, - 2075, 2079, 2088, 2089, 2093, 2095, 2099, 2100, 2104, 2108, - 2110, 2114, 2115, 2117, 2121, 2123, 2125, 2129, 2133, 2143, - 2151, 2157, 2159 + 512, 514, 516, 518, 520, 522, 525, 533, 540, 549, + 550, 553, 556, 559, 562, 565, 568, 571, 574, 577, + 580, 583, 586, 588, 592, 593, 607, 609, 613, 614, + 628, 630, 634, 635, 649, 651, 655, 656, 676, 678, + 682, 683, 703, 705, 709, 710, 730, 732, 736, 737, + 763, 765, 769, 770, 796, 798, 802, 803, 829, 831, + 835, 836, 868, 870, 874, 875, 907, 909, 913, 914, + 946, 951, 955, 959, 964, 969, 974, 979, 986, 998, + 1005, 1017, 1024, 1036, 1043, 1055, 1062, 1074, 1081, 1093, + 1099, 1111, 1117, 1129, 1136, 1148, 1155, 1167, 1174, 1186, + 1195, 1203, 1212, 1225, 1232, 1238, 1246, 1254, 1267, 1275, + 1285, 1303, 1311, 1320, 1329, 1337, 1349, 1355, 1364, 1374, + 1383, 1406, 1427, 1436, 1445, 1451, 1460, 1468, 1477, 1483, + 1495, 1501, 1511, 1513, 1515, 1517, 1518, 1521, 1526, 1531, + 1535, 1539, 1542, 1546, 1553, 1562, 1564, 1573, 1586, 1595, + 1608, 1617, 1630, 1642, 1658, 1660, 1663, 1673, 1676, 1683, + 1693, 1703, 1712, 1721, 1730, 1737, 1742, 1745, 1747, 1749, + 1751, 1753, 1755, 1757, 1761, 1764, 1767, 1770, 1774, 1778, + 1782, 1786, 1790, 1794, 1798, 1802, 1806, 1810, 1814, 1818, + 1822, 1826, 1832, 1837, 1842, 1847, 1852, 1857, 1862, 1867, + 1872, 1877, 1882, 1889, 1894, 1899, 1904, 1909, 1914, 1919, + 1926, 1933, 1940, 1942, 1944, 1946, 1950, 1959, 1964, 1974, + 1979, 1989, 1993, 1999, 2001, 2004, 2007, 2011, 2015, 2027, + 2037, 2045, 2053, 2057, 2066, 2067, 2071, 2073, 2077, 2078, + 2082, 2086, 2088, 2092, 2093, 2095, 2099, 2101, 2103, 2107, + 2111, 2121, 2129, 2135, 2137 }; -static const short yyrhs[] = { 177, - 0, 176, 0, 182, 0, 133, 0, 136, 137, 243, - 243, 243, 138, 139, 135, 243, 243, 243, 135, 243, - 243, 243, 135, 243, 243, 243, 140, 141, 0, 134, - 0, 0, 177, 178, 0, 179, 0, 181, 0, 180, - 0, 1, 6, 0, 107, 6, 0, 108, 6, 0, - 110, 6, 0, 109, 6, 0, 111, 6, 0, 112, - 167, 248, 168, 5, 169, 6, 0, 113, 167, 248, - 169, 6, 0, 114, 167, 5, 168, 5, 168, 248, - 168, 248, 168, 5, 168, 5, 168, 5, 169, 6, - 0, 3, 7, 91, 167, 5, 168, 246, 169, 6, - 0, 3, 7, 90, 167, 5, 168, 243, 168, 252, - 168, 242, 168, 242, 168, 242, 168, 252, 168, 252, - 168, 242, 169, 6, 0, 3, 7, 89, 167, 5, - 168, 243, 168, 243, 168, 250, 168, 242, 168, 242, - 168, 242, 168, 242, 168, 252, 168, 252, 168, 252, - 168, 252, 168, 242, 169, 6, 0, 3, 7, 97, - 167, 5, 168, 3, 168, 3, 168, 3, 168, 242, - 169, 6, 0, 3, 7, 101, 167, 5, 168, 3, - 168, 242, 169, 6, 0, 3, 7, 118, 167, 5, - 168, 3, 168, 242, 169, 6, 0, 3, 7, 99, - 167, 5, 168, 158, 168, 158, 168, 243, 168, 242, - 169, 6, 0, 3, 7, 102, 167, 5, 168, 252, - 169, 6, 0, 3, 7, 103, 167, 5, 168, 252, - 168, 3, 168, 242, 169, 6, 0, 3, 7, 98, - 167, 5, 168, 3, 169, 6, 0, 3, 7, 104, - 167, 5, 168, 3, 168, 243, 169, 6, 0, 3, - 7, 106, 167, 5, 168, 3, 168, 3, 168, 3, - 169, 6, 0, 3, 7, 105, 167, 5, 168, 246, - 169, 6, 0, 3, 7, 100, 167, 5, 168, 3, - 169, 6, 0, 3, 7, 34, 167, 5, 168, 3, - 168, 3, 169, 6, 0, 3, 7, 116, 167, 5, - 168, 252, 169, 6, 0, 3, 7, 117, 167, 5, - 168, 252, 168, 3, 169, 6, 0, 3, 7, 115, - 167, 5, 168, 3, 169, 6, 0, 3, 7, 119, - 167, 5, 168, 3, 168, 243, 169, 6, 0, 3, - 7, 120, 167, 5, 168, 3, 168, 243, 168, 243, - 169, 6, 0, 3, 7, 127, 167, 5, 168, 3, - 168, 243, 168, 243, 169, 6, 0, 3, 7, 121, - 167, 5, 168, 3, 168, 243, 169, 6, 0, 3, - 7, 131, 167, 5, 168, 3, 168, 243, 168, 243, - 169, 6, 0, 3, 7, 122, 167, 5, 168, 3, - 168, 252, 168, 252, 168, 242, 168, 242, 169, 6, - 0, 3, 7, 123, 167, 5, 168, 252, 169, 6, - 0, 3, 7, 124, 167, 125, 168, 242, 168, 3, - 169, 6, 0, 3, 7, 126, 167, 5, 168, 252, - 168, 242, 169, 6, 0, 3, 7, 128, 167, 5, - 168, 5, 168, 3, 168, 3, 169, 6, 0, 3, - 7, 129, 167, 5, 168, 5, 168, 3, 169, 6, - 0, 3, 7, 130, 167, 3, 168, 3, 169, 6, - 0, 0, 182, 183, 0, 185, 0, 184, 0, 223, - 0, 224, 0, 225, 0, 228, 0, 229, 0, 233, - 0, 236, 0, 237, 0, 230, 0, 232, 0, 231, - 0, 83, 170, 238, 171, 0, 86, 170, 240, 171, - 0, 1, 6, 0, 30, 167, 5, 168, 243, 169, - 6, 0, 61, 5, 170, 186, 171, 6, 0, 61, - 5, 4, 246, 170, 186, 171, 6, 0, 0, 186, - 188, 0, 186, 191, 0, 186, 194, 0, 186, 197, - 0, 186, 200, 0, 186, 203, 0, 186, 206, 0, - 186, 209, 0, 186, 212, 0, 186, 215, 0, 186, - 218, 0, 186, 221, 0, 243, 0, 187, 168, 243, - 0, 0, 73, 167, 243, 168, 243, 168, 243, 169, - 189, 170, 187, 171, 6, 0, 243, 0, 190, 168, - 243, 0, 0, 74, 167, 243, 168, 243, 168, 243, - 169, 192, 170, 190, 171, 6, 0, 243, 0, 193, - 168, 243, 0, 0, 75, 167, 243, 168, 243, 168, - 243, 169, 195, 170, 193, 171, 6, 0, 243, 0, - 196, 168, 243, 0, 0, 70, 167, 243, 168, 243, - 168, 243, 168, 243, 168, 243, 168, 243, 169, 198, - 170, 196, 171, 6, 0, 243, 0, 199, 168, 243, - 0, 0, 71, 167, 243, 168, 243, 168, 243, 168, - 243, 168, 243, 168, 243, 169, 201, 170, 199, 171, - 6, 0, 243, 0, 202, 168, 243, 0, 0, 72, - 167, 243, 168, 243, 168, 243, 168, 243, 168, 243, - 168, 243, 169, 204, 170, 202, 171, 6, 0, 243, - 0, 205, 168, 243, 0, 0, 67, 167, 243, 168, - 243, 168, 243, 168, 243, 168, 243, 168, 243, 168, - 243, 168, 243, 168, 243, 169, 207, 170, 205, 171, - 6, 0, 243, 0, 208, 168, 243, 0, 0, 68, - 167, 243, 168, 243, 168, 243, 168, 243, 168, 243, - 168, 243, 168, 243, 168, 243, 168, 243, 169, 210, - 170, 208, 171, 6, 0, 243, 0, 211, 168, 243, - 0, 0, 69, 167, 243, 168, 243, 168, 243, 168, - 243, 168, 243, 168, 243, 168, 243, 168, 243, 168, - 243, 169, 213, 170, 211, 171, 6, 0, 243, 0, - 214, 168, 243, 0, 0, 64, 167, 243, 168, 243, - 168, 243, 168, 243, 168, 243, 168, 243, 168, 243, - 168, 243, 168, 243, 168, 243, 168, 243, 168, 243, - 169, 216, 170, 214, 171, 6, 0, 243, 0, 217, - 168, 243, 0, 0, 65, 167, 243, 168, 243, 168, - 243, 168, 243, 168, 243, 168, 243, 168, 243, 168, - 243, 168, 243, 168, 243, 168, 243, 168, 243, 169, - 219, 170, 217, 171, 6, 0, 243, 0, 220, 168, - 243, 0, 0, 66, 167, 243, 168, 243, 168, 243, - 168, 243, 168, 243, 168, 243, 168, 243, 168, 243, - 168, 243, 168, 243, 168, 243, 168, 243, 169, 222, - 170, 220, 171, 6, 0, 4, 7, 243, 6, 0, - 4, 165, 6, 0, 4, 166, 6, 0, 4, 148, - 243, 6, 0, 4, 149, 243, 6, 0, 4, 150, - 243, 6, 0, 4, 151, 243, 6, 0, 31, 167, - 243, 169, 7, 246, 6, 0, 46, 31, 167, 243, - 169, 7, 252, 6, 0, 62, 31, 252, 7, 170, - 243, 168, 243, 168, 243, 171, 6, 0, 38, 39, - 252, 7, 243, 6, 0, 31, 170, 243, 171, 6, - 0, 34, 167, 243, 169, 7, 252, 6, 0, 36, - 167, 243, 169, 7, 252, 6, 0, 62, 34, 252, - 7, 170, 243, 168, 243, 168, 243, 171, 6, 0, - 32, 167, 243, 169, 7, 252, 6, 0, 32, 167, - 243, 169, 7, 252, 42, 246, 6, 0, 40, 167, - 243, 169, 7, 170, 243, 168, 243, 168, 5, 168, - 5, 168, 5, 171, 6, 0, 33, 167, 243, 169, - 7, 252, 6, 0, 46, 34, 167, 243, 169, 7, - 252, 6, 0, 34, 56, 167, 243, 169, 7, 252, - 6, 0, 76, 167, 243, 169, 7, 252, 6, 0, - 77, 167, 243, 169, 7, 252, 81, 252, 78, 243, - 6, 0, 34, 170, 243, 171, 6, 0, 42, 35, - 167, 243, 169, 7, 252, 6, 0, 132, 35, 167, - 243, 169, 7, 243, 252, 6, 0, 43, 35, 167, - 243, 169, 7, 252, 6, 0, 77, 35, 79, 80, - 167, 243, 169, 7, 250, 81, 170, 252, 168, 252, - 171, 78, 170, 243, 168, 243, 171, 6, 0, 77, - 35, 167, 243, 169, 7, 250, 81, 170, 252, 168, - 252, 171, 78, 170, 243, 168, 243, 171, 6, 0, - 46, 35, 167, 243, 169, 7, 252, 6, 0, 35, - 56, 167, 243, 169, 7, 252, 6, 0, 35, 170, - 243, 171, 6, 0, 45, 37, 167, 243, 169, 7, - 252, 6, 0, 37, 167, 243, 169, 7, 252, 6, - 0, 46, 37, 167, 243, 169, 7, 252, 6, 0, - 51, 246, 170, 226, 171, 0, 50, 170, 246, 168, - 246, 168, 243, 171, 170, 226, 171, 0, 52, 246, - 170, 226, 171, 0, 53, 170, 246, 168, 243, 171, - 170, 226, 171, 0, 228, 0, 227, 0, 225, 0, - 0, 227, 224, 0, 55, 170, 227, 171, 0, 59, - 170, 227, 171, 0, 57, 5, 6, 0, 30, 5, - 6, 0, 87, 6, 0, 88, 5, 6, 0, 84, - 167, 243, 8, 243, 169, 0, 84, 167, 243, 8, - 243, 8, 243, 169, 0, 85, 0, 54, 31, 170, - 243, 168, 246, 171, 6, 0, 54, 31, 170, 243, - 168, 246, 168, 246, 168, 243, 171, 6, 0, 54, - 34, 170, 243, 168, 246, 171, 6, 0, 54, 34, - 170, 243, 168, 246, 168, 246, 168, 243, 171, 6, - 0, 54, 35, 170, 243, 168, 246, 171, 6, 0, - 54, 35, 170, 243, 168, 246, 168, 246, 168, 243, - 171, 6, 0, 54, 35, 170, 243, 168, 246, 171, - 170, 234, 171, 6, 0, 54, 35, 170, 243, 168, - 246, 168, 246, 168, 243, 171, 170, 234, 171, 6, - 0, 235, 0, 234, 235, 0, 63, 170, 252, 168, - 252, 168, 252, 171, 6, 0, 58, 6, 0, 44, - 34, 252, 7, 243, 6, 0, 44, 34, 252, 7, - 243, 47, 49, 243, 6, 0, 44, 34, 252, 7, - 243, 47, 48, 243, 6, 0, 44, 35, 170, 243, - 171, 7, 252, 6, 0, 41, 35, 170, 243, 171, - 7, 252, 6, 0, 44, 37, 170, 243, 171, 7, - 252, 6, 0, 58, 35, 252, 7, 243, 6, 0, - 58, 35, 252, 6, 0, 60, 6, 0, 0, 238, - 239, 0, 184, 0, 4, 172, 4, 7, 5, 6, - 0, 4, 172, 61, 173, 243, 174, 172, 4, 7, - 5, 6, 0, 4, 172, 4, 7, 243, 6, 0, - 4, 172, 61, 173, 243, 174, 172, 4, 7, 243, - 6, 0, 4, 172, 4, 148, 243, 6, 0, 4, - 172, 61, 173, 243, 174, 172, 4, 148, 243, 6, - 0, 4, 172, 4, 149, 243, 6, 0, 4, 172, - 61, 173, 243, 174, 172, 4, 149, 243, 6, 0, - 4, 172, 4, 150, 243, 6, 0, 4, 172, 61, - 173, 243, 174, 172, 4, 150, 243, 6, 0, 4, - 172, 4, 151, 243, 6, 0, 4, 172, 61, 173, - 243, 174, 172, 4, 151, 243, 6, 0, 4, 172, - 4, 165, 6, 0, 4, 172, 61, 173, 243, 174, - 172, 4, 165, 243, 6, 0, 4, 172, 4, 166, - 6, 0, 4, 172, 61, 173, 243, 174, 172, 4, - 166, 243, 6, 0, 4, 172, 4, 7, 246, 6, - 0, 4, 172, 61, 173, 243, 174, 172, 4, 7, - 246, 6, 0, 4, 172, 4, 148, 246, 6, 0, - 4, 172, 61, 173, 243, 174, 172, 4, 148, 246, - 6, 0, 4, 172, 4, 149, 246, 6, 0, 4, - 172, 61, 173, 243, 174, 172, 4, 149, 246, 6, - 0, 4, 172, 82, 172, 4, 7, 254, 6, 0, - 0, 240, 241, 0, 239, 0, 92, 0, 93, 0, - 94, 0, 95, 0, 96, 0, 244, 0, 167, 243, - 169, 0, 157, 243, 0, 156, 243, 0, 163, 243, - 0, 243, 157, 243, 0, 243, 156, 243, 0, 243, - 158, 243, 0, 243, 159, 243, 0, 243, 160, 243, - 0, 243, 164, 243, 0, 243, 152, 243, 0, 243, - 153, 243, 0, 243, 154, 243, 0, 243, 155, 243, - 0, 243, 146, 243, 0, 243, 145, 243, 0, 243, - 143, 243, 0, 243, 144, 243, 0, 243, 142, 243, - 8, 243, 0, 10, 167, 243, 169, 0, 11, 167, - 243, 169, 0, 12, 167, 243, 169, 0, 13, 167, - 243, 169, 0, 14, 167, 243, 169, 0, 15, 167, - 243, 169, 0, 16, 167, 243, 169, 0, 17, 167, - 243, 169, 0, 18, 167, 243, 169, 0, 19, 167, - 243, 169, 0, 20, 167, 243, 168, 243, 169, 0, - 21, 167, 243, 169, 0, 22, 167, 243, 169, 0, - 23, 167, 243, 169, 0, 24, 167, 243, 169, 0, - 25, 167, 243, 169, 0, 26, 167, 243, 169, 0, - 27, 167, 243, 168, 243, 169, 0, 28, 167, 243, - 168, 243, 169, 0, 29, 167, 243, 168, 243, 169, - 0, 3, 0, 9, 0, 4, 0, 4, 172, 4, - 0, 4, 172, 61, 173, 243, 174, 172, 4, 0, - 4, 172, 4, 165, 0, 4, 172, 61, 173, 243, - 174, 172, 4, 165, 0, 4, 172, 4, 166, 0, - 4, 172, 61, 173, 243, 174, 172, 4, 166, 0, - 243, 8, 243, 0, 243, 8, 243, 8, 243, 0, - 247, 0, 157, 246, 0, 156, 246, 0, 246, 157, - 246, 0, 246, 156, 246, 0, 170, 243, 168, 243, - 168, 243, 168, 243, 168, 243, 171, 0, 170, 243, - 168, 243, 168, 243, 168, 243, 171, 0, 170, 243, - 168, 243, 168, 243, 171, 0, 167, 243, 168, 243, - 168, 243, 169, 0, 4, 172, 4, 0, 4, 172, - 61, 173, 243, 174, 172, 4, 0, 0, 167, 249, - 169, 0, 5, 0, 249, 168, 5, 0, 0, 170, - 251, 171, 0, 167, 251, 169, 0, 252, 0, 251, - 168, 252, 0, 0, 243, 0, 170, 253, 171, 0, - 243, 0, 245, 0, 253, 168, 243, 0, 253, 168, - 245, 0, 170, 243, 168, 243, 168, 243, 168, 243, - 171, 0, 170, 243, 168, 243, 168, 243, 171, 0, - 170, 4, 168, 243, 171, 0, 4, 0, 4, 172, - 82, 172, 4, 0 +static const short yyrhs[] = { 176, + 0, 175, 0, 181, 0, 132, 0, 135, 136, 238, + 238, 238, 137, 138, 134, 238, 238, 238, 134, 238, + 238, 238, 134, 238, 238, 238, 139, 140, 0, 133, + 0, 0, 176, 177, 0, 178, 0, 180, 0, 179, + 0, 1, 6, 0, 106, 6, 0, 107, 6, 0, + 109, 6, 0, 108, 6, 0, 110, 6, 0, 111, + 166, 243, 167, 5, 168, 6, 0, 112, 166, 243, + 168, 6, 0, 113, 166, 5, 167, 5, 167, 243, + 167, 243, 167, 5, 167, 5, 167, 5, 168, 6, + 0, 3, 7, 90, 166, 5, 167, 241, 168, 6, + 0, 3, 7, 89, 166, 5, 167, 238, 167, 247, + 167, 237, 167, 237, 167, 237, 167, 247, 167, 247, + 167, 237, 168, 6, 0, 3, 7, 88, 166, 5, + 167, 238, 167, 238, 167, 245, 167, 237, 167, 237, + 167, 237, 167, 237, 167, 247, 167, 247, 167, 247, + 167, 247, 167, 237, 168, 6, 0, 3, 7, 96, + 166, 5, 167, 3, 167, 3, 167, 3, 167, 237, + 168, 6, 0, 3, 7, 100, 166, 5, 167, 3, + 167, 237, 168, 6, 0, 3, 7, 117, 166, 5, + 167, 3, 167, 237, 168, 6, 0, 3, 7, 98, + 166, 5, 167, 157, 167, 157, 167, 238, 167, 237, + 168, 6, 0, 3, 7, 101, 166, 5, 167, 247, + 168, 6, 0, 3, 7, 102, 166, 5, 167, 247, + 167, 3, 167, 237, 168, 6, 0, 3, 7, 97, + 166, 5, 167, 3, 168, 6, 0, 3, 7, 103, + 166, 5, 167, 3, 167, 238, 168, 6, 0, 3, + 7, 105, 166, 5, 167, 3, 167, 3, 167, 3, + 168, 6, 0, 3, 7, 104, 166, 5, 167, 241, + 168, 6, 0, 3, 7, 99, 166, 5, 167, 3, + 168, 6, 0, 3, 7, 34, 166, 5, 167, 3, + 167, 3, 168, 6, 0, 3, 7, 115, 166, 5, + 167, 247, 168, 6, 0, 3, 7, 116, 166, 5, + 167, 247, 167, 3, 168, 6, 0, 3, 7, 114, + 166, 5, 167, 3, 168, 6, 0, 3, 7, 118, + 166, 5, 167, 3, 167, 238, 168, 6, 0, 3, + 7, 119, 166, 5, 167, 3, 167, 238, 167, 238, + 168, 6, 0, 3, 7, 126, 166, 5, 167, 3, + 167, 238, 167, 238, 168, 6, 0, 3, 7, 120, + 166, 5, 167, 3, 167, 238, 168, 6, 0, 3, + 7, 130, 166, 5, 167, 3, 167, 238, 167, 238, + 168, 6, 0, 3, 7, 121, 166, 5, 167, 3, + 167, 247, 167, 247, 167, 237, 167, 237, 168, 6, + 0, 3, 7, 122, 166, 5, 167, 247, 168, 6, + 0, 3, 7, 123, 166, 124, 167, 237, 167, 3, + 168, 6, 0, 3, 7, 125, 166, 5, 167, 247, + 167, 237, 168, 6, 0, 3, 7, 127, 166, 5, + 167, 5, 167, 3, 167, 3, 168, 6, 0, 3, + 7, 128, 166, 5, 167, 5, 167, 3, 168, 6, + 0, 3, 7, 129, 166, 3, 167, 3, 168, 6, + 0, 0, 181, 182, 0, 184, 0, 183, 0, 222, + 0, 223, 0, 224, 0, 227, 0, 228, 0, 232, + 0, 235, 0, 236, 0, 229, 0, 231, 0, 230, + 0, 1, 6, 0, 30, 166, 5, 167, 238, 168, + 6, 0, 61, 5, 169, 185, 170, 6, 0, 61, + 5, 4, 241, 169, 185, 170, 6, 0, 0, 185, + 187, 0, 185, 190, 0, 185, 193, 0, 185, 196, + 0, 185, 199, 0, 185, 202, 0, 185, 205, 0, + 185, 208, 0, 185, 211, 0, 185, 214, 0, 185, + 217, 0, 185, 220, 0, 238, 0, 186, 167, 238, + 0, 0, 73, 166, 238, 167, 238, 167, 238, 168, + 188, 169, 186, 170, 6, 0, 238, 0, 189, 167, + 238, 0, 0, 74, 166, 238, 167, 238, 167, 238, + 168, 191, 169, 189, 170, 6, 0, 238, 0, 192, + 167, 238, 0, 0, 75, 166, 238, 167, 238, 167, + 238, 168, 194, 169, 192, 170, 6, 0, 238, 0, + 195, 167, 238, 0, 0, 70, 166, 238, 167, 238, + 167, 238, 167, 238, 167, 238, 167, 238, 168, 197, + 169, 195, 170, 6, 0, 238, 0, 198, 167, 238, + 0, 0, 71, 166, 238, 167, 238, 167, 238, 167, + 238, 167, 238, 167, 238, 168, 200, 169, 198, 170, + 6, 0, 238, 0, 201, 167, 238, 0, 0, 72, + 166, 238, 167, 238, 167, 238, 167, 238, 167, 238, + 167, 238, 168, 203, 169, 201, 170, 6, 0, 238, + 0, 204, 167, 238, 0, 0, 67, 166, 238, 167, + 238, 167, 238, 167, 238, 167, 238, 167, 238, 167, + 238, 167, 238, 167, 238, 168, 206, 169, 204, 170, + 6, 0, 238, 0, 207, 167, 238, 0, 0, 68, + 166, 238, 167, 238, 167, 238, 167, 238, 167, 238, + 167, 238, 167, 238, 167, 238, 167, 238, 168, 209, + 169, 207, 170, 6, 0, 238, 0, 210, 167, 238, + 0, 0, 69, 166, 238, 167, 238, 167, 238, 167, + 238, 167, 238, 167, 238, 167, 238, 167, 238, 167, + 238, 168, 212, 169, 210, 170, 6, 0, 238, 0, + 213, 167, 238, 0, 0, 64, 166, 238, 167, 238, + 167, 238, 167, 238, 167, 238, 167, 238, 167, 238, + 167, 238, 167, 238, 167, 238, 167, 238, 167, 238, + 168, 215, 169, 213, 170, 6, 0, 238, 0, 216, + 167, 238, 0, 0, 65, 166, 238, 167, 238, 167, + 238, 167, 238, 167, 238, 167, 238, 167, 238, 167, + 238, 167, 238, 167, 238, 167, 238, 167, 238, 168, + 218, 169, 216, 170, 6, 0, 238, 0, 219, 167, + 238, 0, 0, 66, 166, 238, 167, 238, 167, 238, + 167, 238, 167, 238, 167, 238, 167, 238, 167, 238, + 167, 238, 167, 238, 167, 238, 167, 238, 168, 221, + 169, 219, 170, 6, 0, 4, 7, 238, 6, 0, + 4, 164, 6, 0, 4, 165, 6, 0, 4, 147, + 238, 6, 0, 4, 148, 238, 6, 0, 4, 149, + 238, 6, 0, 4, 150, 238, 6, 0, 4, 171, + 4, 7, 5, 6, 0, 4, 171, 61, 172, 238, + 173, 171, 4, 7, 5, 6, 0, 4, 171, 4, + 7, 238, 6, 0, 4, 171, 61, 172, 238, 173, + 171, 4, 7, 238, 6, 0, 4, 171, 4, 147, + 238, 6, 0, 4, 171, 61, 172, 238, 173, 171, + 4, 147, 238, 6, 0, 4, 171, 4, 148, 238, + 6, 0, 4, 171, 61, 172, 238, 173, 171, 4, + 148, 238, 6, 0, 4, 171, 4, 149, 238, 6, + 0, 4, 171, 61, 172, 238, 173, 171, 4, 149, + 238, 6, 0, 4, 171, 4, 150, 238, 6, 0, + 4, 171, 61, 172, 238, 173, 171, 4, 150, 238, + 6, 0, 4, 171, 4, 164, 6, 0, 4, 171, + 61, 172, 238, 173, 171, 4, 164, 238, 6, 0, + 4, 171, 4, 165, 6, 0, 4, 171, 61, 172, + 238, 173, 171, 4, 165, 238, 6, 0, 4, 171, + 4, 7, 241, 6, 0, 4, 171, 61, 172, 238, + 173, 171, 4, 7, 241, 6, 0, 4, 171, 4, + 147, 241, 6, 0, 4, 171, 61, 172, 238, 173, + 171, 4, 147, 241, 6, 0, 4, 171, 4, 148, + 241, 6, 0, 4, 171, 61, 172, 238, 173, 171, + 4, 148, 241, 6, 0, 4, 171, 82, 171, 4, + 7, 249, 6, 0, 31, 166, 238, 168, 7, 241, + 6, 0, 46, 31, 166, 238, 168, 7, 247, 6, + 0, 62, 31, 247, 7, 169, 238, 167, 238, 167, + 238, 170, 6, 0, 38, 39, 247, 7, 238, 6, + 0, 31, 169, 238, 170, 6, 0, 34, 166, 238, + 168, 7, 247, 6, 0, 36, 166, 238, 168, 7, + 247, 6, 0, 62, 34, 247, 7, 169, 238, 167, + 238, 167, 238, 170, 6, 0, 32, 166, 238, 168, + 7, 247, 6, 0, 32, 166, 238, 168, 7, 247, + 42, 241, 6, 0, 40, 166, 238, 168, 7, 169, + 238, 167, 238, 167, 5, 167, 5, 167, 5, 170, + 6, 0, 33, 166, 238, 168, 7, 247, 6, 0, + 46, 34, 166, 238, 168, 7, 247, 6, 0, 34, + 56, 166, 238, 168, 7, 247, 6, 0, 76, 166, + 238, 168, 7, 247, 6, 0, 77, 166, 238, 168, + 7, 247, 81, 247, 78, 238, 6, 0, 34, 169, + 238, 170, 6, 0, 42, 35, 166, 238, 168, 7, + 247, 6, 0, 131, 35, 166, 238, 168, 7, 238, + 247, 6, 0, 43, 35, 166, 238, 168, 7, 247, + 6, 0, 77, 35, 79, 80, 166, 238, 168, 7, + 245, 81, 169, 247, 167, 247, 170, 78, 169, 238, + 167, 238, 170, 6, 0, 77, 35, 166, 238, 168, + 7, 245, 81, 169, 247, 167, 247, 170, 78, 169, + 238, 167, 238, 170, 6, 0, 46, 35, 166, 238, + 168, 7, 247, 6, 0, 35, 56, 166, 238, 168, + 7, 247, 6, 0, 35, 169, 238, 170, 6, 0, + 45, 37, 166, 238, 168, 7, 247, 6, 0, 37, + 166, 238, 168, 7, 247, 6, 0, 46, 37, 166, + 238, 168, 7, 247, 6, 0, 51, 241, 169, 225, + 170, 0, 50, 169, 241, 167, 241, 167, 238, 170, + 169, 225, 170, 0, 52, 241, 169, 225, 170, 0, + 53, 169, 241, 167, 238, 170, 169, 225, 170, 0, + 227, 0, 226, 0, 224, 0, 0, 226, 223, 0, + 55, 169, 226, 170, 0, 59, 169, 226, 170, 0, + 57, 5, 6, 0, 30, 5, 6, 0, 86, 6, + 0, 87, 5, 6, 0, 83, 166, 238, 8, 238, + 168, 0, 83, 166, 238, 8, 238, 8, 238, 168, + 0, 84, 0, 54, 31, 169, 238, 167, 241, 170, + 6, 0, 54, 31, 169, 238, 167, 241, 167, 241, + 167, 238, 170, 6, 0, 54, 34, 169, 238, 167, + 241, 170, 6, 0, 54, 34, 169, 238, 167, 241, + 167, 241, 167, 238, 170, 6, 0, 54, 35, 169, + 238, 167, 241, 170, 6, 0, 54, 35, 169, 238, + 167, 241, 167, 241, 167, 238, 170, 6, 0, 54, + 35, 169, 238, 167, 241, 170, 169, 233, 170, 6, + 0, 54, 35, 169, 238, 167, 241, 167, 241, 167, + 238, 170, 169, 233, 170, 6, 0, 234, 0, 233, + 234, 0, 63, 169, 247, 167, 247, 167, 247, 170, + 6, 0, 58, 6, 0, 44, 34, 247, 7, 238, + 6, 0, 44, 34, 247, 7, 238, 47, 49, 238, + 6, 0, 44, 34, 247, 7, 238, 47, 48, 238, + 6, 0, 44, 35, 169, 238, 170, 7, 247, 6, + 0, 41, 35, 169, 238, 170, 7, 247, 6, 0, + 44, 37, 169, 238, 170, 7, 247, 6, 0, 58, + 35, 247, 7, 238, 6, 0, 58, 35, 247, 6, + 0, 60, 6, 0, 91, 0, 92, 0, 93, 0, + 94, 0, 95, 0, 239, 0, 166, 238, 168, 0, + 156, 238, 0, 155, 238, 0, 162, 238, 0, 238, + 156, 238, 0, 238, 155, 238, 0, 238, 157, 238, + 0, 238, 158, 238, 0, 238, 159, 238, 0, 238, + 163, 238, 0, 238, 151, 238, 0, 238, 152, 238, + 0, 238, 153, 238, 0, 238, 154, 238, 0, 238, + 145, 238, 0, 238, 144, 238, 0, 238, 142, 238, + 0, 238, 143, 238, 0, 238, 141, 238, 8, 238, + 0, 10, 166, 238, 168, 0, 11, 166, 238, 168, + 0, 12, 166, 238, 168, 0, 13, 166, 238, 168, + 0, 14, 166, 238, 168, 0, 15, 166, 238, 168, + 0, 16, 166, 238, 168, 0, 17, 166, 238, 168, + 0, 18, 166, 238, 168, 0, 19, 166, 238, 168, + 0, 20, 166, 238, 167, 238, 168, 0, 21, 166, + 238, 168, 0, 22, 166, 238, 168, 0, 23, 166, + 238, 168, 0, 24, 166, 238, 168, 0, 25, 166, + 238, 168, 0, 26, 166, 238, 168, 0, 27, 166, + 238, 167, 238, 168, 0, 28, 166, 238, 167, 238, + 168, 0, 29, 166, 238, 167, 238, 168, 0, 3, + 0, 9, 0, 4, 0, 4, 171, 4, 0, 4, + 171, 61, 172, 238, 173, 171, 4, 0, 4, 171, + 4, 164, 0, 4, 171, 61, 172, 238, 173, 171, + 4, 164, 0, 4, 171, 4, 165, 0, 4, 171, + 61, 172, 238, 173, 171, 4, 165, 0, 238, 8, + 238, 0, 238, 8, 238, 8, 238, 0, 242, 0, + 156, 241, 0, 155, 241, 0, 241, 156, 241, 0, + 241, 155, 241, 0, 169, 238, 167, 238, 167, 238, + 167, 238, 167, 238, 170, 0, 169, 238, 167, 238, + 167, 238, 167, 238, 170, 0, 169, 238, 167, 238, + 167, 238, 170, 0, 166, 238, 167, 238, 167, 238, + 168, 0, 4, 171, 4, 0, 4, 171, 61, 172, + 238, 173, 171, 4, 0, 0, 166, 244, 168, 0, + 5, 0, 244, 167, 5, 0, 0, 169, 246, 170, + 0, 166, 246, 168, 0, 247, 0, 246, 167, 247, + 0, 0, 238, 0, 169, 248, 170, 0, 238, 0, + 240, 0, 248, 167, 238, 0, 248, 167, 240, 0, + 169, 238, 167, 238, 167, 238, 167, 238, 170, 0, + 169, 238, 167, 238, 167, 238, 170, 0, 169, 4, + 167, 238, 170, 0, 4, 0, 4, 171, 82, 171, + 4, 0 }; #endif @@ -554,33 +551,32 @@ static const short yyrline[] = { 0, 275, 278, 283, 287, 291, 295, 300, 304, 307, 311, 315, 319, 323, 327, 331, 334, 338, 341, 345, 348, 357, 361, 367, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 381, 382, 383, 384, 387, 398, - 403, 409, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 428, 431, 435, 441, 447, 450, - 454, 460, 466, 469, 473, 479, 485, 488, 492, 500, - 506, 509, 513, 521, 527, 530, 534, 542, 548, 551, - 555, 567, 573, 576, 580, 592, 598, 601, 605, 617, - 623, 626, 630, 643, 649, 652, 656, 669, 675, 678, - 682, 695, 707, 714, 722, 730, 738, 746, 754, 769, - 780, 786, 805, 816, 824, 830, 836, 855, 861, 877, - 884, 890, 896, 902, 908, 927, 939, 945, 964, 985, - 993, 999, 1005, 1011, 1023, 1029, 1035, 1047, 1053, 1058, - 1063, 1070, 1072, 1073, 1076, 1081, 1092, 1110, 1125, 1153, - 1184, 1188, 1200, 1215, 1228, 1266, 1272, 1278, 1282, 1286, - 1290, 1294, 1299, 1306, 1310, 1315, 1333, 1343, 1361, 1378, - 1395, 1416, 1436, 1456, 1473, 1497, 1508, 1510, 1513, 1520, - 1533, 1551, 1568, 1589, 1606, 1627, 1644, 1665, 1682, 1703, - 1720, 1741, 1758, 1779, 1796, 1819, 1844, 1873, 1898, 1927, - 1952, 1983, 2002, 2004, 2007, 2022, 2024, 2025, 2026, 2027, - 2030, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, - 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, - 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, - 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, - 2073, 2075, 2076, 2085, 2102, 2123, 2140, 2161, 2178, 2200, - 2207, 2220, 2225, 2229, 2233, 2237, 2242, 2247, 2251, 2255, - 2259, 2285, 2317, 2321, 2326, 2330, 2335, 2339, 2343, 2349, - 2355, 2361, 2365, 2371, 2378, 2384, 2393, 2397, 2407, 2412, - 2416, 2421, 2426 + 376, 377, 378, 379, 381, 382, 385, 396, 401, 407, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 426, 429, 433, 439, 445, 448, 452, 458, + 464, 467, 471, 477, 483, 486, 490, 498, 504, 507, + 511, 519, 525, 528, 532, 540, 546, 549, 553, 565, + 571, 574, 578, 590, 596, 599, 603, 615, 621, 624, + 628, 641, 647, 650, 654, 667, 673, 676, 680, 693, + 705, 715, 723, 731, 739, 747, 755, 766, 779, 797, + 814, 835, 852, 873, 890, 911, 928, 949, 966, 987, + 1004, 1025, 1042, 1065, 1090, 1119, 1144, 1173, 1198, 1229, + 1249, 1260, 1266, 1285, 1296, 1304, 1310, 1316, 1335, 1341, + 1357, 1364, 1370, 1376, 1382, 1388, 1407, 1419, 1425, 1444, + 1465, 1473, 1479, 1485, 1491, 1503, 1509, 1515, 1527, 1533, + 1538, 1543, 1550, 1552, 1553, 1556, 1561, 1572, 1590, 1605, + 1633, 1664, 1668, 1680, 1695, 1708, 1746, 1752, 1758, 1762, + 1766, 1770, 1774, 1779, 1786, 1790, 1795, 1813, 1823, 1841, + 1858, 1875, 1896, 1916, 1936, 1953, 1977, 1990, 1992, 1993, + 1994, 1995, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, + 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, + 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, + 2037, 2038, 2041, 2043, 2044, 2053, 2070, 2091, 2108, 2129, + 2146, 2168, 2175, 2188, 2193, 2197, 2201, 2205, 2210, 2215, + 2219, 2223, 2227, 2253, 2285, 2289, 2294, 2298, 2303, 2307, + 2311, 2317, 2323, 2329, 2333, 2339, 2346, 2352, 2361, 2365, + 2375, 2380, 2384, 2389, 2394 }; #endif @@ -598,72 +594,70 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", "tView","tAttractor","tLayers","tScalarTetrahedron","tVectorTetrahedron","tTensorTetrahedron", "tScalarTriangle","tVectorTriangle","tTensorTriangle","tScalarLine","tVectorLine", "tTensorLine","tScalarPoint","tVectorPoint","tTensorPoint","tBSpline","tNurbs", -"tOrder","tWith","tBounds","tKnots","tColor","tOptions","tFor","tEndFor","tScript", -"tExit","tMerge","tB_SPLINE_SURFACE_WITH_KNOTS","tB_SPLINE_CURVE_WITH_KNOTS", -"tCARTESIAN_POINT","tTRUE","tFALSE","tUNSPECIFIED","tU","tV","tEDGE_CURVE","tVERTEX_POINT", -"tORIENTED_EDGE","tPLANE","tFACE_OUTER_BOUND","tEDGE_LOOP","tADVANCED_FACE", -"tVECTOR","tDIRECTION","tAXIS2_PLACEMENT_3D","tISO","tENDISO","tENDSEC","tDATA", -"tHEADER","tFILE_DESCRIPTION","tFILE_SCHEMA","tFILE_NAME","tMANIFOLD_SOLID_BREP", -"tCLOSED_SHELL","tADVANCED_BREP_SHAPE_REPRESENTATION","tFACE_BOUND","tCYLINDRICAL_SURFACE", -"tCONICAL_SURFACE","tCIRCLE","tTRIMMED_CURVE","tGEOMETRIC_SET","tCOMPOSITE_CURVE_SEGMENT", -"tCONTINUOUS","tCOMPOSITE_CURVE","tTOROIDAL_SURFACE","tPRODUCT_DEFINITION","tPRODUCT_DEFINITION_SHAPE", -"tSHAPE_DEFINITION_REPRESENTATION","tELLIPSE","tTrimmed","tSolid","tEndSolid", -"tVertex","tFacet","tNormal","tOuter","tLoopSTL","tEndLoop","tEndFacet","'?'", -"tAND","tOR","tNOTEQUAL","tEQUAL","tAPPROXEQUAL","tAFFECTPLUS","tAFFECTMINUS", -"tAFFECTTIMES","tAFFECTDIVIDE","'<'","'>'","tLESSOREQUAL","tGREATEROREQUAL", -"'+'","'-'","'*'","'/'","'%'","tCROSSPRODUCT","UNARYPREC","'!'","'^'","tPLUSPLUS", -"tMINUSMINUS","'('","','","')'","'{'","'}'","'.'","'['","']'","All","STLFormatItem", -"StepFormatItems","StepFormatItem","StepSpecial","StepHeaderItem","StepDataItem", -"GeomFormatList","GeomFormat","Printf","View","Views","ScalarPointValues","ScalarPoint", -"@1","VectorPointValues","VectorPoint","@2","TensorPointValues","TensorPoint", -"@3","ScalarLineValues","ScalarLine","@4","VectorLineValues","VectorLine","@5", -"TensorLineValues","TensorLine","@6","ScalarTriangleValues","ScalarTriangle", -"@7","VectorTriangleValues","VectorTriangle","@8","TensorTriangleValues","TensorTriangle", -"@9","ScalarTetrahedronValues","ScalarTetrahedron","@10","VectorTetrahedronValues", -"VectorTetrahedron","@11","TensorTetrahedronValues","TensorTetrahedron","@12", -"Affectation","Shape","Transform","MultipleShape","ListOfShapes","Duplicata", -"Delete","Macro","Command","Loop","Extrude","ExtrudeParameters","ExtrudeParameter", -"Transfini","Coherence","Options","Option","Scripts","Script","BoolExpr","FExpr", -"FExpr_Single","FExpr_Range","VExpr","VExpr_Single","ListOfStrings","RecursiveListOfStrings", -"ListOfListOfDouble","RecursiveListOfListOfDouble","ListOfDouble","RecursiveListOfDouble", -"Color", NULL +"tOrder","tWith","tBounds","tKnots","tColor","tFor","tEndFor","tScript","tExit", +"tMerge","tB_SPLINE_SURFACE_WITH_KNOTS","tB_SPLINE_CURVE_WITH_KNOTS","tCARTESIAN_POINT", +"tTRUE","tFALSE","tUNSPECIFIED","tU","tV","tEDGE_CURVE","tVERTEX_POINT","tORIENTED_EDGE", +"tPLANE","tFACE_OUTER_BOUND","tEDGE_LOOP","tADVANCED_FACE","tVECTOR","tDIRECTION", +"tAXIS2_PLACEMENT_3D","tISO","tENDISO","tENDSEC","tDATA","tHEADER","tFILE_DESCRIPTION", +"tFILE_SCHEMA","tFILE_NAME","tMANIFOLD_SOLID_BREP","tCLOSED_SHELL","tADVANCED_BREP_SHAPE_REPRESENTATION", +"tFACE_BOUND","tCYLINDRICAL_SURFACE","tCONICAL_SURFACE","tCIRCLE","tTRIMMED_CURVE", +"tGEOMETRIC_SET","tCOMPOSITE_CURVE_SEGMENT","tCONTINUOUS","tCOMPOSITE_CURVE", +"tTOROIDAL_SURFACE","tPRODUCT_DEFINITION","tPRODUCT_DEFINITION_SHAPE","tSHAPE_DEFINITION_REPRESENTATION", +"tELLIPSE","tTrimmed","tSolid","tEndSolid","tVertex","tFacet","tNormal","tOuter", +"tLoopSTL","tEndLoop","tEndFacet","'?'","tAND","tOR","tNOTEQUAL","tEQUAL","tAPPROXEQUAL", +"tAFFECTPLUS","tAFFECTMINUS","tAFFECTTIMES","tAFFECTDIVIDE","'<'","'>'","tLESSOREQUAL", +"tGREATEROREQUAL","'+'","'-'","'*'","'/'","'%'","tCROSSPRODUCT","UNARYPREC", +"'!'","'^'","tPLUSPLUS","tMINUSMINUS","'('","','","')'","'{'","'}'","'.'","'['", +"']'","All","STLFormatItem","StepFormatItems","StepFormatItem","StepSpecial", +"StepHeaderItem","StepDataItem","GeomFormatList","GeomFormat","Printf","View", +"Views","ScalarPointValues","ScalarPoint","@1","VectorPointValues","VectorPoint", +"@2","TensorPointValues","TensorPoint","@3","ScalarLineValues","ScalarLine", +"@4","VectorLineValues","VectorLine","@5","TensorLineValues","TensorLine","@6", +"ScalarTriangleValues","ScalarTriangle","@7","VectorTriangleValues","VectorTriangle", +"@8","TensorTriangleValues","TensorTriangle","@9","ScalarTetrahedronValues", +"ScalarTetrahedron","@10","VectorTetrahedronValues","VectorTetrahedron","@11", +"TensorTetrahedronValues","TensorTetrahedron","@12","Affectation","Shape","Transform", +"MultipleShape","ListOfShapes","Duplicata","Delete","Macro","Command","Loop", +"Extrude","ExtrudeParameters","ExtrudeParameter","Transfini","Coherence","BoolExpr", +"FExpr","FExpr_Single","FExpr_Range","VExpr","VExpr_Single","ListOfStrings", +"RecursiveListOfStrings","ListOfListOfDouble","RecursiveListOfListOfDouble", +"ListOfDouble","RecursiveListOfDouble","Color", NULL }; #endif static const short yyr1[] = { 0, - 175, 175, 175, 176, 176, 176, 177, 177, 178, 178, - 178, 178, 179, 179, 179, 179, 179, 180, 180, 180, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 184, 185, - 185, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 187, 187, 189, 188, 190, 190, - 192, 191, 193, 193, 195, 194, 196, 196, 198, 197, - 199, 199, 201, 200, 202, 202, 204, 203, 205, 205, - 207, 206, 208, 208, 210, 209, 211, 211, 213, 212, - 214, 214, 216, 215, 217, 217, 219, 218, 220, 220, - 222, 221, 223, 223, 223, 223, 223, 223, 223, 224, - 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, - 225, 226, 226, 226, 227, 227, 228, 229, 230, 231, - 231, 231, 232, 232, 232, 233, 233, 233, 233, 233, - 233, 233, 233, 234, 234, 235, 235, 236, 236, 236, - 236, 236, 236, 236, 236, 237, 238, 238, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 240, 240, 241, 242, 242, 242, 242, 242, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, - 245, 246, 246, 246, 246, 246, 247, 247, 247, 247, - 247, 247, 248, 248, 249, 249, 250, 250, 250, 251, - 251, 252, 252, 252, 253, 253, 253, 253, 254, 254, - 254, 254, 254 + 174, 174, 174, 175, 175, 175, 176, 176, 177, 177, + 177, 177, 178, 178, 178, 178, 178, 179, 179, 179, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 183, 184, 184, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 186, 186, 188, 187, 189, 189, 191, 190, + 192, 192, 194, 193, 195, 195, 197, 196, 198, 198, + 200, 199, 201, 201, 203, 202, 204, 204, 206, 205, + 207, 207, 209, 208, 210, 210, 212, 211, 213, 213, + 215, 214, 216, 216, 218, 217, 219, 219, 221, 220, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, + 224, 224, 225, 225, 225, 226, 226, 227, 228, 229, + 230, 230, 230, 231, 231, 231, 232, 232, 232, 232, + 232, 232, 232, 232, 233, 233, 234, 234, 235, 235, + 235, 235, 235, 235, 235, 235, 236, 237, 237, 237, + 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 240, 240, 241, 241, 241, 241, 241, 242, 242, + 242, 242, 242, 242, 243, 243, 244, 244, 245, 245, + 245, 246, 246, 247, 247, 247, 248, 248, 248, 248, + 249, 249, 249, 249, 249 }; static const short yyr2[] = { 0, @@ -673,33 +667,32 @@ static const short yyr2[] = { 0, 11, 13, 9, 9, 11, 9, 11, 9, 11, 13, 13, 11, 13, 17, 9, 11, 11, 13, 11, 9, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 4, 4, 2, 7, 6, - 8, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 3, 0, 13, 1, 3, - 0, 13, 1, 3, 0, 13, 1, 3, 0, 19, - 1, 3, 0, 19, 1, 3, 0, 19, 1, 3, - 0, 25, 1, 3, 0, 25, 1, 3, 0, 25, - 1, 3, 0, 31, 1, 3, 0, 31, 1, 3, - 0, 31, 4, 3, 3, 4, 4, 4, 4, 7, - 8, 12, 6, 5, 7, 7, 12, 7, 9, 17, - 7, 8, 8, 7, 11, 5, 8, 9, 8, 22, - 20, 8, 8, 5, 8, 7, 8, 5, 11, 5, - 9, 1, 1, 1, 0, 2, 4, 4, 3, 3, - 2, 3, 6, 8, 1, 8, 12, 8, 12, 8, - 12, 11, 15, 1, 2, 9, 2, 6, 9, 9, - 8, 8, 8, 6, 4, 2, 0, 2, 1, 6, - 11, 6, 11, 6, 11, 6, 11, 6, 11, 6, - 11, 5, 11, 5, 11, 6, 11, 6, 11, 6, - 11, 8, 0, 2, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 6, 4, 4, 4, 4, 4, 4, 6, 6, 6, - 1, 1, 1, 3, 8, 4, 9, 4, 9, 3, - 5, 1, 2, 2, 3, 3, 11, 9, 7, 7, - 3, 8, 0, 3, 1, 3, 0, 3, 3, 1, - 3, 0, 1, 3, 1, 1, 3, 3, 9, 7, - 5, 1, 5 + 1, 1, 1, 1, 1, 2, 7, 6, 8, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 3, 0, 13, 1, 3, 0, 13, + 1, 3, 0, 13, 1, 3, 0, 19, 1, 3, + 0, 19, 1, 3, 0, 19, 1, 3, 0, 25, + 1, 3, 0, 25, 1, 3, 0, 25, 1, 3, + 0, 31, 1, 3, 0, 31, 1, 3, 0, 31, + 4, 3, 3, 4, 4, 4, 4, 6, 11, 6, + 11, 6, 11, 6, 11, 6, 11, 6, 11, 5, + 11, 5, 11, 6, 11, 6, 11, 6, 11, 8, + 7, 8, 12, 6, 5, 7, 7, 12, 7, 9, + 17, 7, 8, 8, 7, 11, 5, 8, 9, 8, + 22, 20, 8, 8, 5, 8, 7, 8, 5, 11, + 5, 9, 1, 1, 1, 0, 2, 4, 4, 3, + 3, 2, 3, 6, 8, 1, 8, 12, 8, 12, + 8, 12, 11, 15, 1, 2, 9, 2, 6, 9, + 9, 8, 8, 8, 6, 4, 2, 1, 1, 1, + 1, 1, 1, 3, 2, 2, 2, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 6, 4, 4, 4, 4, 4, 4, 6, + 6, 6, 1, 1, 1, 3, 8, 4, 9, 4, + 9, 3, 5, 1, 2, 2, 3, 3, 11, 9, + 7, 7, 3, 8, 0, 3, 1, 3, 0, 3, + 3, 1, 3, 0, 1, 3, 1, 1, 3, 3, + 9, 7, 5, 1, 5 }; static const short yydefact[] = { 51, @@ -708,1874 +701,1859 @@ static const short yydefact[] = { 51, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, - 52, 54, 53, 55, 56, 57, 58, 59, 63, 65, - 64, 60, 61, 62, 281, 283, 282, 0, 0, 0, + 0, 0, 0, 0, 206, 0, 0, 0, 52, 54, + 53, 55, 56, 57, 58, 59, 63, 65, 64, 60, + 61, 62, 273, 275, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 241, 12, 0, 13, 14, 16, 15, 17, - 303, 303, 0, 68, 0, 0, 0, 0, 0, 0, + 233, 12, 0, 13, 14, 16, 15, 17, 295, 295, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 312, + 0, 0, 0, 304, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 292, 0, 0, 0, 0, 0, - 175, 0, 312, 175, 206, 0, 312, 312, 0, 0, - 0, 207, 0, 233, 181, 0, 0, 0, 0, 0, + 0, 0, 0, 284, 0, 0, 0, 0, 0, 196, + 0, 304, 196, 227, 0, 304, 304, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 243, - 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 235, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 134, 135, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, - 293, 0, 0, 0, 0, 175, 175, 0, 0, 0, - 0, 0, 179, 0, 0, 0, 72, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 284, 0, + 0, 0, 0, 0, 132, 133, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 305, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, + 285, 0, 0, 0, 0, 196, 196, 0, 0, 0, + 0, 0, 200, 0, 0, 0, 70, 0, 0, 0, + 0, 0, 0, 0, 203, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 242, 0, 258, 259, 257, 256, 252, 253, - 254, 255, 244, 243, 248, 249, 250, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 234, 0, 250, 251, 249, 248, 244, 245, 246, 247, + 236, 235, 240, 241, 242, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, - 0, 0, 0, 0, 133, 136, 137, 138, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 315, 316, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, - 0, 0, 296, 295, 174, 0, 173, 172, 0, 0, - 0, 0, 0, 177, 176, 205, 0, 178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 209, - 208, 0, 67, 235, 234, 0, 286, 288, 0, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 0, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 247, - 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, + 0, 0, 131, 134, 135, 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 304, 0, 19, 0, 0, 0, - 144, 312, 312, 0, 312, 156, 0, 164, 312, 312, - 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 293, 0, 0, 0, 288, + 287, 195, 0, 194, 193, 0, 0, 0, 0, 0, + 198, 197, 226, 0, 199, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 278, 280, 0, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 0, 264, + 265, 266, 267, 268, 269, 0, 0, 0, 239, 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 168, 170, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 0, 0, 312, 0, 0, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 312, 312, - 0, 0, 0, 0, 312, 312, 0, 0, 0, 0, - 0, 312, 0, 312, 0, 0, 0, 0, 0, 306, - 0, 303, 0, 0, 0, 0, 312, 0, 312, 0, - 0, 290, 317, 318, 143, 0, 312, 312, 312, 198, - 0, 312, 312, 312, 312, 312, 312, 312, 0, 0, - 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 70, 0, 0, 0, 0, 307, 0, 0, 0, 0, - 0, 183, 0, 0, 271, 278, 279, 280, 0, 0, + 0, 0, 0, 296, 0, 19, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 152, 0, 0, 0, 0, 165, 304, 304, 0, + 304, 177, 0, 185, 304, 304, 0, 0, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 236, 237, 238, 239, 240, 0, 0, 0, - 0, 0, 0, 0, 18, 0, 69, 140, 148, 0, - 151, 0, 145, 0, 146, 166, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 189, 191, 0, 0, + 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 0, + 0, 304, 0, 0, 304, 0, 0, 0, 0, 0, + 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 304, 304, 0, 0, 0, 0, 304, + 304, 0, 0, 0, 0, 0, 304, 0, 304, 0, + 0, 0, 0, 0, 298, 0, 295, 0, 138, 0, + 140, 154, 142, 156, 144, 158, 146, 148, 0, 0, + 0, 0, 0, 0, 304, 0, 304, 0, 0, 282, + 309, 310, 164, 0, 304, 304, 304, 219, 0, 304, + 304, 304, 304, 304, 304, 304, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, + 0, 0, 0, 299, 0, 0, 204, 0, 0, 263, + 270, 271, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 229, 230, + 231, 232, 0, 0, 0, 0, 0, 0, 0, 18, + 0, 276, 0, 0, 314, 0, 0, 67, 161, 169, + 0, 172, 0, 166, 0, 167, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 154, 0, 312, 312, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 312, 0, 0, 0, 0, 312, 0, 0, + 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 175, 0, 304, + 304, 0, 304, 0, 304, 0, 0, 0, 0, 304, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, + 0, 0, 0, 0, 0, 0, 0, 295, 0, 0, + 0, 275, 0, 160, 0, 174, 184, 283, 0, 223, + 178, 180, 0, 0, 222, 224, 186, 162, 173, 183, + 188, 0, 0, 292, 0, 291, 0, 0, 207, 0, + 209, 0, 211, 0, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 299, + 0, 302, 0, 0, 0, 205, 0, 277, 0, 0, + 0, 0, 21, 0, 30, 0, 34, 0, 28, 0, + 0, 33, 0, 38, 36, 0, 0, 0, 0, 0, + 0, 45, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 0, 221, 220, 196, 294, 0, 192, 0, + 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 303, 0, 153, 163, 291, - 0, 202, 157, 159, 0, 0, 201, 203, 165, 141, - 152, 162, 167, 0, 0, 300, 0, 299, 0, 0, - 186, 0, 188, 0, 190, 0, 71, 0, 0, 0, + 0, 304, 301, 300, 304, 0, 179, 279, 281, 0, + 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 307, 0, 310, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 222, 224, 0, 0, 184, 0, 285, 0, 0, 0, - 0, 21, 0, 30, 0, 34, 0, 28, 0, 0, - 33, 0, 38, 36, 0, 0, 0, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 50, 0, 0, 149, - 0, 200, 199, 175, 302, 0, 171, 0, 0, 0, - 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, - 309, 308, 312, 0, 0, 210, 0, 212, 226, 214, - 228, 216, 230, 218, 220, 0, 0, 158, 287, 289, - 0, 0, 307, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, - 197, 312, 0, 195, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, - 0, 0, 284, 0, 0, 322, 0, 0, 0, 35, - 0, 0, 0, 0, 25, 0, 31, 0, 37, 26, - 39, 0, 42, 0, 46, 47, 0, 0, 49, 0, - 0, 0, 169, 0, 0, 0, 0, 0, 192, 0, + 290, 0, 0, 0, 218, 304, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 312, 155, 0, 0, 0, 283, - 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 187, 189, 191, + 0, 0, 0, 303, 0, 0, 0, 35, 0, 0, + 0, 0, 25, 0, 31, 0, 37, 26, 39, 0, + 42, 0, 46, 47, 0, 0, 49, 0, 0, 0, + 139, 141, 155, 143, 157, 145, 159, 147, 149, 151, + 153, 315, 313, 0, 0, 190, 0, 0, 0, 0, + 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 304, 304, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 277, 0, 0, 289, 208, 210, 212, 0, + 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 85, 89, 93, 163, 168, 0, 0, 0, 0, 0, + 0, 0, 29, 32, 40, 0, 41, 48, 43, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 87, 91, 95, 142, 147, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 32, 40, 0, 41, 48, - 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 27, 0, + 0, 311, 0, 214, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83, 0, 87, 0, 91, + 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 20, 171, 217, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 86, 88, 90, 92, 94, 0, 0, + 0, 0, 304, 0, 0, 0, 0, 0, 0, 97, + 101, 105, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, - 213, 227, 215, 229, 217, 231, 219, 221, 223, 225, - 323, 321, 0, 0, 0, 0, 24, 27, 0, 0, - 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 85, 0, 89, 0, 93, 0, 0, - 285, 0, 0, 0, 312, 0, 0, 0, 0, 0, + 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 95, 0, 99, 0, 103, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 320, 0, 0, - 0, 44, 20, 150, 196, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 88, 90, 92, 94, 96, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, - 0, 0, 99, 103, 107, 0, 0, 319, 0, 0, + 0, 181, 0, 22, 0, 0, 0, 0, 0, 0, + 96, 98, 100, 102, 104, 106, 304, 0, 0, 0, + 109, 113, 117, 0, 0, 0, 0, 0, 0, 0, + 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 107, 0, 111, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 97, 0, 101, 0, 105, - 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 0, 22, 0, 0, - 0, 0, 0, 0, 98, 100, 102, 104, 106, 108, - 312, 0, 0, 0, 111, 115, 119, 0, 0, 0, - 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 109, 0, 113, 0, - 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 110, 112, 114, 116, 118, - 120, 0, 123, 127, 131, 23, 0, 0, 0, 0, - 0, 0, 0, 121, 0, 125, 0, 129, 0, 0, - 0, 0, 0, 0, 122, 124, 126, 128, 130, 132, - 0, 0, 0 + 0, 108, 110, 112, 114, 116, 118, 0, 121, 125, + 129, 23, 0, 0, 0, 0, 0, 0, 0, 119, + 0, 123, 0, 127, 0, 0, 0, 0, 0, 0, + 120, 122, 124, 126, 128, 130, 0, 0, 0 }; -static const short yydefgoto[] = { 1491, - 4, 5, 18, 19, 20, 21, 6, 61, 460, 63, - 450, 1263, 582, 1185, 1265, 583, 1186, 1267, 584, 1187, - 1375, 585, 1348, 1377, 586, 1349, 1379, 587, 1350, 1436, - 588, 1422, 1438, 589, 1423, 1440, 590, 1424, 1473, 591, - 1467, 1475, 592, 1468, 1477, 593, 1469, 64, 445, 435, - 436, 437, 438, 68, 69, 70, 71, 72, 963, 964, - 73, 74, 314, 461, 316, 465, 738, 274, 103, 413, - 290, 155, 250, 391, 801, 893, 894, 414, 1058 +static const short yydefgoto[] = { 1477, + 4, 5, 18, 19, 20, 21, 6, 59, 60, 61, + 457, 1255, 598, 1205, 1257, 599, 1206, 1259, 600, 1207, + 1361, 601, 1334, 1363, 602, 1335, 1365, 603, 1336, 1422, + 604, 1408, 1424, 605, 1409, 1426, 606, 1410, 1459, 607, + 1453, 1461, 608, 1454, 1463, 609, 1455, 62, 452, 442, + 443, 444, 445, 66, 67, 68, 69, 70, 985, 986, + 71, 72, 763, 274, 101, 420, 290, 154, 247, 389, + 832, 921, 922, 421, 777 }; -static const short yypact[] = { 414, --32768,-32768, -103,-32768, 287, 2139, 909, 38, 65, 76, - 81, 90, 107, 122, -106, -61, -14,-32768,-32768,-32768, --32768, 155, 153, 28, -15, 56, 106, -19, -21, 128, - 130, 250, 145, 134, 232, 282, 100, 309, 105, 166, - 93, 93, 240, 230, 242, 399, 332, 251, 405, 426, - 317, 253, 48, 271, 275,-32768, 273, 447, 449, 424, +static const short yypact[] = { 1243, +-32768,-32768, -116,-32768, 696, 2145, 1516, 38, 39, 58, + 60, 62, 74, 81, -64, -53, -27,-32768,-32768,-32768, +-32768, 123, 92, 25, -81, -4, 26, -39, -49, 125, + 129, 208, 131, 223, 267, 280, 77, 293, 269, 167, + 82, 82, 172, 300, 178, 350, 322, 198, 368, 382, + 100, 231, -25, 235,-32768, 406, 409, 384,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 303,-32768, 316, 322, 324, - 351, 352, 386, 403, 418, 422, 425, 427, 430, 431, - 432, 433, 434, 435, 439, 442, 443, 909, 909, 909, - 909, 1476,-32768,-32768, 2178,-32768,-32768,-32768,-32768,-32768, - 444, 444, 474,-32768, 909, 909, 909, 909, 909, 559, - 575, 576, 588, 909, 909, 909, 909, 467, 909, 909, - 468, 909, 909, 909, 604, 909, 466, 470, 471, 604, - 472, 473, 477, 478, 480, 481, 484, 93, 469, 93, - 93, 909, 909, -94,-32768, -71, 93, 482, 485, 486, --32768, 648, 604,-32768,-32768, 46, 604, 604, 909, -43, - 909,-32768, 909,-32768,-32768, 651, 492, 53, 909, 909, - 909, 909, 909, 909, 909, 909, 909, 909, 909, 909, - 909, 909, 909, 909, 909, 909, 909, 909, 496, 496, - 496, 2829, 909, 909, 909, 909, 909, 909, 909, 909, - 909, 909, 909, 909, 909, 909, 909, 1476, 494, 499, - 500, 501, 502, 503, 504, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 528, 532, 533, 534, 557, - 558, 560, 561, 562, 563, 564, 565, 566, 721, 568, - 569, 571, 959, 1012, 1153, 1364, 1392,-32768,-32768,-32768, - 573, 2857, 2327, 2885, 2913, 909, 2941, 2350, 909, 2373, - 2969, 2997, 909, 7501, 727, 3025, 909, 909, 909, 730, - 909, 909, 909, 909, 909, 909, 909, -78, 54,-32768, --32768, 4593, 4620, 93, 93, 377, 377, -24, 909, 909, - 909, 307,-32768, 276, 2089, 93,-32768, 735, 736, 3053, - 664, 909, 3081, 41, 744, 43,-32768, 909, 163, 572, - 3109, 3137, 3165, 3193, 3221, 3249, 3277, 3305, 3333, 3361, - 4647, 3389, 3417, 3445, 3473, 3501, 3529, 4674, 4701, 4728, - 909, 909,-32768, 1904, 312, 312, 420, 420, 380, 380, - 380, 380, -116, -66, 496, 496, 496, 496, 4755, 741, - 742, 743, 746, 748, 749, 752, 753, 754, 757, 758, - 759, 760, 764, 767, 768, 770, 771, 772, 773, 774, - 775, 776, 624, 777, 778, 779, 780, 783, 782,-32768, - 189, 785, 786, 796,-32768,-32768,-32768,-32768,-32768, 909, - 784, 798, 795, 799, 3557, 800, 803, 3585, 805, 806, - 807, 1927,-32768, 188, 909, 808, 2396, 3613, 3641, 909, - 2419, 2442, 3669, 3697, 3725, 3753, 3781, 93,-32768, 632, - 909, 909,-32768,-32768,-32768, 641, 2197,-32768, 645, 909, - 4778, 4805, 4832,-32768,-32768,-32768, 909,-32768, -68, 875, - 647, 649, 811, 654, 3809, 815, 652, 656,-32768,-32768, --32768, 909,-32768,-32768,-32768, 3837,-32768,-32768, 909,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 909, --32768,-32768,-32768,-32768,-32768,-32768, 909, 909, 909, 162, - 162, 909, 686, 658, 662, 663, 665, 667, 668, 669, - 671, 672, 673, 675, 677, 678, 679, 680, 681, 684, - 685, 687, 688, 690, 691, 695, 697, 698, 699, 700, - 701, 702, 716, 827,-32768, 693,-32768, 717, 3865, 93, --32768, 604, 604, 847, 604,-32768, 885,-32768, 604, 604, - 909, 909,-32768, 1419, 737, 898, 899, 902, 836, 903, - 907, 908, 910, 947, 948, 949, 142, 909, 4859, 4886, --32768,-32768, 2465, 93, 93, 93, 1442,-32768, 790, 791, - 792, 797, 802, 809, 816, 817, 818, 819, 820, 830, - 956,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 909, 909, 604, 909, 965, 604, 39, - 292, 966, 2004, 3893, 3921, 3949, 3977, 7501, 781, 963, - 909, 909, 93, 971, 972, 840, 998, 999, 604, 604, - 1000, 93, 1001, 1002, 604, 604, 1003, 1005, 1006, 1007, - 1008, 604, 421, 604, 1010, 1009, 1011, 1014, 1017,-32768, - 1015, 444, 1016, 2, 32, 1019, 604, 1020, 604, 1034, - 1035, 1955, 1927,-32768,-32768, 909, 604, 604, 604,-32768, - 331, 604, 604, 604, 604, 604, 604, 604, 909, 2168, - 909, 909, 853, -104, -91, -87,-32768, 1187, 909, 909, - 909, 909, 909, 909, 909, 909, 909, 909, 909, 909, --32768, 4913, 4940, 1036, 4005, 249, 962, 158, 871, 873, - 909,-32768, 909, 877,-32768,-32768,-32768,-32768, 909, 883, - 4967, 4994, -26, 887, 888, 890, 892, 891, 894, 896, - 900, 112, 901, 904, 905, 911, 912, 913, 914, 915, - 916, 919,-32768,-32768,-32768,-32768,-32768, 921, 929, 930, - 931, 939, 940, 942,-32768, 952,-32768,-32768,-32768, 93, --32768, 1050,-32768, 1061,-32768,-32768, 909, 5021, 1064, 1065, - 1072, 909, 909, 1102, 1115, 1116, 1118, 1119, 1129, 1130, - 2488, 967, 4033, 2237, 377, 93, 1131, 93, 1132, 93, - 1, 1144, 5048, 5075, 5102, 5129, 5156, 5183, 5210, 5237, - 5264, 5291, 5318, 5345, 909, 909,-32768, 1154, 604, 604, - 1079, 604, 0, 694, 694, 909, 909, 1156, 1157, 909, - 1171, 4061, 218, 1173, 1476, 1175, 909, 604, 1194, 1198, - 1196, 1045, 1199, 421, 1200, 1201, 909, 1214, 1204, 1215, - 1216, 1220, 421, 909, 909, 909, 604, 1218, 1222, 421, - 909, 1223, 1224, 1225, 909, 444, 36,-32768,-32768, 7501, - 909,-32768,-32768,-32768, 1505, 1533,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1058, 1228,-32768, 909,-32768, 1062, 157, --32768, 159,-32768, 198,-32768, 228,-32768, 909, 909, 909, - 909, 909, 909, 909, 909, 909, 909, 909, 909, 5372, - 5399, 249, 234,-32768, 197, 1059, 1160, 1063, 1233, 694, - 694, 909, 1562, 62, 1585, 69, 1617, 95, 1647, 1674, --32768,-32768, 2191, 1227,-32768, 1234, 221, 1476, 1073, 5426, - 1075,-32768, 1076,-32768, 1077,-32768, 1078,-32768, 1080, 4089, --32768, 1081,-32768,-32768, 1095, 1098, 4117, 5453, 4145, 1082, --32768, 1099, 1100, 5480, 1103, 1101,-32768, 5507, 1104,-32768, - 5534,-32768,-32768, 377,-32768, 2267,-32768, 909, 909, 909, - 1277, 1117, -17,-32768, 5561, 5588, 5615, 5642, 5669, 5696, - 5723, 5750, 5777, 5804, 5831, 5858, 909, 909, 1207, 604, --32768,-32768, 604, 909, 55,-32768, 2801,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 1113, 47,-32768,-32768,-32768, - 2518, 1283, 249, 421, 1288, 909, 1287, 421, 1294, 1291, - 1295, 1296, 1297, 909, 1298, 604, 1310, 1312, 909, 1316, - 1322, 909, 1324, 1325, 1161, 909,-32768, 2541, 2564, 2587, --32768, 604, 1328,-32768, 909, 909, 909, 909, 909, 909, - 909, 909, 909, 909, 909, 909, 2610, 2633, 1165,-32768, - 1163, 1703, 163, 1166, 1332, 1168, 1170, 1335, 909,-32768, - 1174, 1177, 1178, 5885,-32768, 1169,-32768, 1179,-32768,-32768, --32768, 4173,-32768, 1191,-32768,-32768, 4201, 1192,-32768, 4229, - 1195, 1197,-32768, 2656, 1337, 1341, 24, 1203,-32768, 5912, - 5939, 5966, 5993, 6020, 6047, 6074, 6101, 6128, 4257, 4285, - 4313, 1354, 1356, 604, 604,-32768, 909, 241, 1282, 237, - 6155,-32768, 1476, 421, 421, 421, 421, 1360, 1361, 1362, - 421, 1363, 1366, 1367, 1369, 1370,-32768,-32768,-32768,-32768, - 228, 604, 909, 909, 909, 909, 909, 909, 909, 909, - 909,-32768,-32768,-32768,-32768,-32768, 1208, 1213, 2214, 483, - 694, 694, 909, 909, 909, 909, 1217, 909, 909, 1476, - 1226, 1229, 1219, 1221,-32768,-32768,-32768, 1231,-32768,-32768, --32768, 1232, 1235, -3, 1236, 6182, 6209, 6236, 6263, 6290, - 6317, 6344, 6371, 6398, 1239, 1240, 1242, 604, 1308, 1230, - 1385, 1726, 97, 1749, 99, 1772, 101, 1802, 1829, 1858, - 1881, 1388, 2679, 6425, 2709, 421, 421, 1387, 1389, 421, - 1391, 1396, 1407, 604, 909, 909, 909, 909, 909, 909, - 909, 909, 909, 909, 909, 909, 1243, 1245, 1412,-32768, +-32768,-32768,-32768, 268,-32768, 272, 275, 276, 277, 278, + 279, 282, 283, 284, 285, 292, 305, 307, 309, 310, + 312, 316, 317, 319, 320, 1516, 1516, 1516, 1516, 1489, +-32768,-32768, 2181,-32768,-32768,-32768,-32768,-32768, 326, 326, + 412,-32768, 1516, 1516, 1516, 1516, 1516, 429, 440, 14, + 453, 472, 1516, 1516, 1516, 1516, 327, 1516, 1516, 328, + 1516, 1516, 1516, 916, 1516, 337, 329, 330, 916, 338, + 341, 347, 349, 369, 373, 374, 82, 370, 82, 82, + 1516, 1516, -117,-32768, -102, 82, 343, 378, 380,-32768, + 555, 916,-32768,-32768, 20, 916, 916, 1516, -65, 1516, + 1516,-32768, 556, 397, 8, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 402, 402, 402, 2779, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1489, 400, 403, 407, 408, 413, + 414, 415, 439, 441, 442, 456, 457, 459, 460, 462, + 463, 467, 468, 469, 496, 497, 498, 499, 500, 512, + 514, 517, 518, 519, 520, 563, 515, 521, 524, 311, + 516, 670, 724, 825,-32768,-32768, 1, 522, 404,-32768, + 528, 2807, 2307, 2835, 2863, 1516, 2891, 2330, 1516, 2353, + 2919, 2947, 1516, 7451, 680, 2975, 1516, 1516, 1516, 681, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, -93, 11,-32768, +-32768, 4543, 4570, 82, 82, 261, 261, -72, 1516, 1516, + 1516, 1282,-32768, 72, 2096, 82,-32768, 691, 705, 3003, + 633, 1516, 3031, 401,-32768, 1516, -67, 542, 3059, 3087, + 3115, 3143, 3171, 3199, 3227, 3255, 3283, 3311, 4597, 3339, + 3367, 3395, 3423, 3451, 3479, 4624, 4651, 4678, 1516, 1516, +-32768, 1915, 961, 961, 458, 458, 247, 247, 247, 247, + -114, -92, 402, 402, 402, 402, 4705, 710, 711, 712, + 713, 715, 717, 718, 719, 720, 721, 726, 728, 729, + 731, 733, 735, 736, 738, 739, 740, 753, 756, 757, + 639, 761, 762, 763, 765, 769, 768,-32768, -15, 770, + 771, 773,-32768,-32768,-32768,-32768,-32768, 573, 1460, 1460, + 1516, 1516, 774, 778, 1516, 772, 1516, 767, 779, 781, + 783, 3507, 784, 786, 3535, 788, 791, 793, 1940,-32768, + 85, 1516, 803, 2376, 3563, 3591, 1516, 2399, 2422, 3619, + 3647, 3675, 3703, 3731, 82,-32768, 607, 1516, 1516,-32768, +-32768,-32768, 625, 1004,-32768, 646, 1516, 4728, 4755, 4782, +-32768,-32768,-32768, 1516,-32768, -99, 254, 648, 649, 827, + 669, 3759, 829, 1516, 3787,-32768,-32768, 1516,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1516,-32768, +-32768,-32768,-32768,-32768,-32768, 1516, 1516, 1516, 110, 110, + 1516, 699, 671, 672, 673, 674, 676, 677, 678, 679, + 686, 687, 688, 690, 692, 694, 697, 703, 704, 706, + 707, 722, 723, 725, 727, 730, 744, 745, 746, 747, + 748, 749, 842,-32768, 695,-32768, 750, 714, 852, 1460, + 1460, 1516, 945, 0, 985, 3, 1023, 59, 1433, 1574, +-32768,-32768, 2011, 841, 3815, 82,-32768, 916, 916, 877, + 916,-32768, 879,-32768, 916, 916, 1516, 1516,-32768, 1598, + 752, 884, 886, 888, 375, 889, 891, 911, 917, 939, + 940, 941, -20, 1516, 4809, 4836,-32768,-32768, 2445, 82, + 82, 82, 1621,-32768, 796, 799, 805, 806, 819, 820, + 821, 823, 824, 828, 830, 831, 943,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1516, + 1516, 916, 1516, 988, 916, 346, 991, 2092, 3843, 3871, + 3899, 3927, 7451, 789, 947, 1516, 1516, 82, 997, 998, + 845, 1000, 1001, 916, 916, 1002, 82, 1003, 1006, 916, + 916, 1007, 1008, 1009, 1010, 1011, 916, 291, 916, 1012, + 1013, 1014, 1017, 1019,-32768, 1020, 326, 15,-32768, 2751, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 836, 21, + 1021, 94, 17, 1022, 916, 1024, 916, 1025, 1026, 1963, + 1940,-32768,-32768, 1516, 916, 916, 916,-32768, 259, 916, + 916, 916, 916, 916, 916, 916, 1516, 2171, 1516, 1516, + 848, -127, -122, -120,-32768, 682, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516,-32768, 4863, + 4890, 1027, 3955, -9, 942, 1516,-32768, 1516, 854,-32768, +-32768,-32768,-32768, 1516, 867, 4917, 4944, -95, 878, 880, + 897, 883, 898, 899, 901, 902, -74, 906, 907, 908, + 910, 912, 924, 925, 926, 927, 915,-32768,-32768,-32768, +-32768,-32768, 928, 944, 954, 955, 956, 957, 964,-32768, + 965, -67, 937, 1070, 913, 1543, 1104,-32768,-32768,-32768, + 82,-32768, 1128,-32768, 1139,-32768,-32768, 1516, 4971, 1144, + 1145, 1146, 1516, 1516, 1163, 1164, 1166, 1167, 1179, 1181, + 1182, 2468, 1018, 3983, 2217, 261, 82, 1189, 82, 1190, + 82, -2, 1191, 4998, 5025, 5052, 5079, 5106, 5133, 5160, + 5187, 5214, 5241, 5268, 5295, 1516, 1516,-32768, 1192, 916, + 916, 1117, 916, 4011, 207, 1205, 1489, 1208, 1516, 916, + 1220, 1224, 1223, 1073, 1225, 291, 1228, 1232, 1516, 1230, + 1234, 1235, 1236, 1237, 291, 1516, 1516, 1516, 916, 1242, + 1246, 291, 1516, 1247, 1248, 1251, 1516, 326, 1516, 96, + 1170, -130, 5322,-32768, 98,-32768,-32768, 7451, 1516,-32768, +-32768,-32768, 1644, 1668,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 1084, 1250,-32768, 1516,-32768, 1088, -13,-32768, 134, +-32768, 143,-32768, -36,-32768, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 5349, 5376, -9, + 211,-32768, 116, 1090, 1183,-32768, 1254, 264, 1489, 1094, + 5403, 1110,-32768, 1111,-32768, 1112,-32768, 1113,-32768, 1115, + 4039,-32768, 1119,-32768,-32768, 1127, 1129, 4067, 5430, 4095, + 1120,-32768, 1130, 1131, 5457, 1133, 1136,-32768, 5484, 1134, + 2194, 627, 1460, 1460, 1516, 1516, 1516, 1516, 1125, 1516, + 1516,-32768, 5511,-32768,-32768, 261,-32768, 2247,-32768, 1516, + 1516, 1516, 1299, 1137, -47,-32768, 5538, 5565, 5592, 5619, + 5646, 5673, 5700, 5727, 5754, 5781, 5808, 5835, 1516, 1516, + 1240, 916,-32768,-32768, 916, 1516,-32768,-32768,-32768, 1049, + 1317, -9, 291, 1323, 1516, 1325, 291, 1326, 1330, 1328, + 1339, 1340, 1516, 1341, 916, 1342, 1351, 1516, 1357, 1355, + 1516, 1324, 1199, 1356, 1691, 109, 1714, 126, 1738, 132, + 1761, 1788, 1831, 1869, 1368, 2491, 5862, 1369, 1207, 1516, +-32768, 2514, 2537, 2560,-32768, 916, 1373,-32768, 1516, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 2583, 2606, 1211,-32768, 1214, 1892, 1516,-32768, 1215, 1216, + 1217, 5889,-32768, 1218,-32768, 1219,-32768,-32768,-32768, 4123, +-32768, 1221,-32768,-32768, 4151, 1222,-32768, 4179, 1227, 1381, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 909, 909, 1249, 1250,-32768,-32768, 1257, 1258, - 1259,-32768, 1260, 6452, 6479, 6506, 6533, 6560, 6587, 6614, - 6641, 6668, 306, 7501, 361, 7501, 362, 7501, 1350, 909, - 221, 2297, 1476, 421, 604, 1423, 1426, 1427, 1428, 909, - 909, 909, 909, 909, 909, 909, 909, 909, 909, 1429, - 909, 1434, 909, 1436, 1275, 6695, 909,-32768, 1476, 1278, - 1279,-32768,-32768,-32768,-32768, 6722, 6749, 6776, 6803, 6830, - 6857, 4341, 4369, 4397, 7501,-32768, 7501,-32768, 7501,-32768, - 909, 909, 2732, 7478, 421, 604, 909, 909, 909, 909, - 909, 909,-32768,-32768,-32768, 6884, 2755,-32768, 1309, 1281, - 1284, 6911, 6938, 6965, 6992, 7019, 7046, 1285, 1286, 1289, - 909, 1445,-32768, 604, 421, 909, 909, 909, 909, 909, - 909, 909, 909, 909, 2778,-32768, 1290, 1292, 7073, 7100, - 7127, 7154, 7181, 7208, 374, 7501, 375, 7501, 381, 7501, - 1447, 604, 1448, 909, 909, 909, 909, 909, 909, 909, - 1451, 909, 1456, 909, 1460,-32768, 1299,-32768, 7235, 7262, - 7289, 4425, 4453, 4481, 7501,-32768, 7501,-32768, 7501,-32768, - 604, 909, 909, 909,-32768,-32768,-32768, 1300, 7316, 7343, - 7370, 1301, 1303, 1305, 604, 909, 909, 909, 909, 909, - 909, 1302, 7397, 7424, 7451, 389, 7501, 390, 7501, 391, - 7501, 421, 909, 909, 909, 909, 1463, 909, 1471, 909, - 1472, 1313, 4509, 4537, 4565, 7501,-32768, 7501,-32768, 7501, --32768, 1475,-32768,-32768,-32768,-32768, 1314, 1342, 1343, 909, - 909, 909, 396, 7501, 398, 7501, 415, 7501, 909, 1477, - 909, 1508, 909, 1509, 7501,-32768, 7501,-32768, 7501,-32768, - 1525, 1526,-32768 +-32768,-32768,-32768, 1516, 1229,-32768, 2629, 1383, 1389, -1, + 1231,-32768, 5916, 5943, 5970, 5997, 6024, 6051, 6078, 6105, + 6132, 4207, 4235, 4263, 1391, 1393, 916, 916,-32768, 1489, + 291, 291, 291, 291, 1394, 1395, 1396, 291, 1397, 1398, + 1405, 1407, 264, 2277, 1409,-32768,-32768,-32768,-32768, -36, + 916, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, +-32768,-32768,-32768,-32768,-32768, 1249, 1245, 1489, 1252, 1253, + 1258, 1260,-32768,-32768,-32768, 1263,-32768,-32768,-32768, 1265, + 1516,-32768, 1267, -37, 1268, 6159, 6186, 6213, 6240, 6267, + 6294, 6321, 6348, 6375, 1271, 1272, 1273, 916, 1343, 2659, + 291, 291, 1411, 1412, 291, 1431, 2682, 1432, 1437, 916, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 1516, 1516, 1274, 1276, 1516, 1279, 1280,-32768,-32768, 1285, + 1286,-32768, 1278,-32768, 1289, 6402, 6429, 6456, 6483, 6510, + 6537, 6564, 6591, 6618, 175, 7451, 176, 7451, 186, 7451, + 1377, 1516, 1489, 291, 916, 1450, 1455, 1459, 1461, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1462, + 1516, 1484, 1516, 1485, 1297, 6645, 1489, 1327, 1329,-32768, +-32768,-32768,-32768, 6672, 6699, 6726, 6753, 6780, 6807, 4291, + 4319, 4347, 7451,-32768, 7451,-32768, 7451,-32768, 1516, 1516, + 7428, 291, 916, 1516, 1516, 1516, 1516, 1516, 1516,-32768, +-32768,-32768, 6834, 2705, 1382, 1354, 1384, 6861, 6888, 6915, + 6942, 6969, 6996, 1379, 1380, 1404, 1516, 1491,-32768, 916, + 291, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, + 2728,-32768, 1414, 1415, 7023, 7050, 7077, 7104, 7131, 7158, + 201, 7451, 205, 7451, 210, 7451, 1517, 916, 1518, 1516, + 1516, 1516, 1516, 1516, 1516, 1516, 1544, 1516, 1573, 1516, + 1576,-32768, 1426,-32768, 7185, 7212, 7239, 4375, 4403, 4431, + 7451,-32768, 7451,-32768, 7451,-32768, 916, 1516, 1516, 1516, +-32768,-32768,-32768, 1427, 7266, 7293, 7320, 1428, 1429, 1430, + 916, 1516, 1516, 1516, 1516, 1516, 1516, 1434, 7347, 7374, + 7401, 229, 7451, 246, 7451, 251, 7451, 291, 1516, 1516, + 1516, 1516, 1589, 1516, 1596, 1516, 1599, 1438, 4459, 4487, + 4515, 7451,-32768, 7451,-32768, 7451,-32768, 1601,-32768,-32768, +-32768,-32768, 1439, 1440, 1441, 1516, 1516, 1516, 256, 7451, + 260, 7451, 266, 7451, 1516, 1605, 1516, 1606, 1516, 1607, + 7451,-32768, 7451,-32768, 7451,-32768, 1495, 1614,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1521,-32768, - 961,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 1033,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1524, 1534, - -291, 299, 1535,-32768,-32768,-32768,-32768,-32768, 400, -961, --32768,-32768,-32768, 1237,-32768,-32768, -784, -7,-32768, 1013, - -10,-32768, -111,-32768, -853, 766, 428,-32768,-32768 +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1612, 1613, + -295, 274, 1615,-32768,-32768,-32768,-32768,-32768, 464, -982, +-32768,-32768, -804, -7,-32768, 1062, -10,-32768, -109,-32768, + -907, 794, 598,-32768,-32768 }; -#define YYLAST 7665 - - -static const short yytable[] = { 102, - 251, 1034, 75, 898, 899, 439, 875, 748, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 1130, - 154, 156, 122, 7, 131, 311, 128, 749, 979, 927, - 961, 950, 698, 104, 457, 962, 457, 217, 936, 306, - 1056, 294, 295, -247, 961, 943, 319, 429, 1053, 962, - 111, 294, 295, 776, 294, 295, 777, 989, 294, 295, - 458, 105, 458, 750, 991, 296, 778, 294, 295, 779, - 780, 106, 170, 781, 294, 295, 107, 294, 295, 428, - 199, 200, 201, 202, 218, 108, 149, 217, 297, 699, - 993, 568, 1232, -246, 1234, 112, 1236, 253, 254, 255, - 256, 257, 109, 320, 430, 1054, 262, 263, 264, 265, - 700, 267, 268, 312, 270, 271, 272, 110, 276, 294, - 295, 294, 295, 140, 141, 144, 142, 288, 145, 146, - 291, 147, 819, 440, 292, 293, 298, 129, 132, 1061, - 130, 124, 113, 1033, 125, 900, 901, 294, 295, 115, - 114, 310, 100, 313, 803, 315, 902, 1213, 137, 153, - 876, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 294, 295, 1131, 123, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 459, 1034, 463, 171, 307, 1057, 294, 295, 1062, - 75, 76, 126, 1066, 294, 295, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 1150, 150, 151, - 294, 295, 294, 295, 294, 295, 294, 295, 405, 152, - 158, 408, 153, 159, 160, 412, 138, 294, 295, 417, - 418, 419, 127, 421, 422, 423, 424, 425, 426, 427, - 828, 446, 447, 433, 434, 961, -1, 8, 135, 9, - 962, 441, 442, 443, 133, 449, 134, 294, 295, 701, - 116, 117, 118, 119, 455, 804, 805, 806, 807, 669, - 466, 136, 294, 295, 294, 295, 139, 120, 121, 214, - 215, 216, 808, 809, 958, 217, 959, 467, 468, 1161, - 1162, 1163, 1164, 490, 491, 148, 1168, 25, 26, 27, - 28, 29, 30, 31, 32, 143, 33, 167, 35, 36, - 168, 38, 39, 294, 295, 542, 524, 525, 543, 203, - 204, 205, 206, 207, 980, 960, 163, 982, 51, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 762, 763, - 100, 217, 52, 53, 101, 999, 1000, 273, 1151, 1152, - 1153, 1154, 529, 10, 11, 12, 13, 14, 15, 16, - 17, 980, 981, 162, 1158, 1155, 1156, 544, 178, 157, - 165, 161, 549, -7, -7, 799, -7, 557, 800, 169, - 164, 1245, 1246, 559, 560, 1249, 40, 41, 42, 43, - 166, 45, 563, 203, 204, 205, 206, 207, 60, 567, - 172, 173, 174, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 175, 176, 601, 217, 206, 207, 177, 302, - 702, 603, 305, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 604, 1289, 178, 217, 1290, 444, 252, 605, - 606, 607, 179, 869, 608, 75, 898, 1191, 180, 1300, - 181, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 733, 734, 735, 736, 737, 182, 183, 644, - -7, -7, -7, -7, -7, -7, -7, -7, 1291, 1293, - 746, 1292, 1294, 652, 653, 341, 342, 214, 215, 216, - 1340, 1390, 1392, 217, 1391, 1393, 1, 2, 1394, 3, - 670, 1395, 184, 674, 675, 676, 1446, 1448, 1450, 1447, - 1449, 1451, 275, 1479, 258, 1481, 1480, 280, 1482, 185, - 1368, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 259, 260, 1483, 217, 186, 1484, 692, 693, 187, 695, - 304, 188, 261, 189, 308, 309, 190, 191, 192, 193, - 194, 195, 713, 711, 712, 196, 75, 76, 197, 198, - 249, 722, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 266, 269, 277, 278, 279, 900, 901, - 289, 281, 282, 283, 284, 100, 285, 286, 758, 902, - 287, 299, 153, 303, 300, 301, 317, 1452, 318, 217, - 360, 771, 1025, 773, 774, 361, 362, 363, 364, 365, - 366, 783, 784, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 812, 377, 813, 75, 898, 378, 379, - 380, 815, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 381, 382, 390, 383, 384, 385, 386, - 387, 388, 389, 415, 949, 392, 420, 393, 394, 847, - 400, 451, 452, 454, 469, 494, 495, 496, 517, 850, - 497, 462, 498, 499, 855, 856, 500, 501, 502, 98, - 99, 503, 504, 505, 506, 870, 100, 872, 507, 874, - 101, 508, 509, 273, 510, 511, 512, 513, 514, 515, - 516, 518, 519, 520, 521, 522, 523, 890, 891, 526, - 530, 527, 904, 906, 908, 903, 905, 907, 909, 910, - 528, 532, 913, 531, 558, 533, 535, 918, 536, 920, - 538, 561, 539, 540, 545, 562, 594, 596, 595, 930, - 597, 599, 123, 600, 609, 610, 937, 938, 939, 611, - 612, 640, 613, 944, 614, 615, 616, 948, 617, 618, - 619, 660, 620, 951, 621, 622, 623, 624, 625, 900, - 901, 626, 627, 647, 628, 629, 100, 630, 631, 956, - 902, 641, 632, 153, 633, 634, 635, 636, 637, 638, - 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 661, 639, 642, 203, 204, 205, 206, 207, - 291, 649, 199, 200, 987, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 657, 658, 656, 217, 659, 662, - 1001, 75, 76, 663, 664, 709, 665, 77, 78, 79, +#define YYLAST 7614 + + +static const short yytable[] = { 100, + 248, 446, 1058, 903, 1159, 662, 130, 398, 664, 169, + 983, 317, 1001, 311, 436, 984, 127, 257, 772, 7, + 983, 983, 780, 306, 775, 984, 984, 294, 295, 121, + 153, 155, 294, 295, 294, 295, 970, 294, 295, 807, + 175, 938, 808, 102, 809, 103, 811, 810, 214, 812, + 947, 296, 294, 295, -239, 294, 295, 954, 781, 294, + 295, 294, 295, 104, 666, 105, 297, 106, 318, 584, + 214, 437, 841, 435, 258, 773, -238, 453, 454, 107, + 294, 295, 294, 295, 123, 148, 108, 124, 196, 197, + 198, 199, 215, 850, 447, 259, 466, 467, 113, 779, + 312, 109, 962, 972, 1079, 250, 251, 252, 253, 254, + 139, 140, 110, 141, 1103, 262, 263, 264, 265, 131, + 267, 268, 1057, 270, 271, 272, 128, 276, 112, 129, + 166, 1105, 1219, 167, 294, 295, 288, 1107, 111, 291, + 170, 294, 295, 292, 293, 298, 697, 399, 400, 401, + 402, 523, 524, 980, 294, 295, 830, 294, 295, 831, + 310, 125, 313, 314, 403, 404, 904, 1160, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 307, 776, + 122, 126, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 1080, 73, + 74, 1058, 1084, 294, 295, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 149, 150, 114, 115, + 116, 117, 963, 964, 965, 966, 134, 151, 294, 295, + 152, 558, 294, 295, 559, 118, 119, 136, 412, 967, + 968, 415, 120, 294, 295, 419, 211, 212, 213, 424, + 425, 426, 214, 428, 429, 430, 431, 432, 433, 434, + 294, 295, 1002, 440, 441, 1004, 294, 295, 294, 295, + 132, 448, 449, 450, 133, 456, 135, 294, 295, 143, + 981, 137, 144, 145, 462, 146, 793, 794, 465, 982, + 40, 41, 42, 43, 138, 45, 393, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 142, + 157, 489, 490, 158, 159, 147, 1179, 1180, 1181, 1182, + 156, 1279, 1281, 1186, 1280, 1282, 160, 200, 201, 202, + 203, 204, 1283, 726, 161, 1284, 162, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 163, 1376, 98, 214, + 1377, 1378, 99, 164, 1379, 273, 1380, 1002, 1003, 1381, + 688, 758, 759, 760, 761, 762, 165, 534, 536, 538, + 533, 535, 537, 539, 540, 1432, 168, 543, 1433, 545, + 171, 339, 340, 211, 212, 213, 1236, 1237, 464, 214, + 1240, 172, 1434, 173, 560, 1435, 249, 1436, 174, 565, + 1437, 689, 1465, 597, 573, 1466, 1467, 1008, 1009, 1468, + 575, 576, 1469, 302, 255, 1470, 305, 176, 175, 579, + 177, 178, 179, 180, 181, 256, 583, 182, 183, 184, + 185, 200, 201, 202, 203, 204, 616, 186, 260, 1288, + 618, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 187, 619, 188, 214, 189, 190, 261, 191, 620, 621, + 622, 192, 193, 623, 194, 195, 200, 201, 202, 203, + 204, 246, 266, 269, 278, 279, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 277, 281, 1326, 214, 282, + 897, 299, 283, 727, 284, 200, 201, 202, 203, 204, + 291, 394, 196, 197, 660, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 285, 672, 1354, 214, 286, 287, + 289, 200, 201, 202, 203, 204, 300, 771, 301, 680, + 681, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 303, 315, 316, 214, 214, 358, 698, 388, 359, 702, + 703, 704, 360, 361, 406, 73, 528, 529, 362, 363, + 364, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 720, 721, 365, 723, 366, 367, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 738, 736, 737, + 214, 368, 369, 1438, 370, 371, 747, 372, 373, 73, + 528, 1034, 374, 375, 376, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 1028, 1029, 1030, 666, 667, 668, 679, 680, 681, 645, - 646, 691, 648, 682, 395, 710, 650, 651, 683, 1047, - 1048, 696, 703, 714, 715, 684, 1052, 203, 204, 205, - 206, 207, 685, 686, 687, 688, 689, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 690, 716, 1064, 217, - 717, 718, 721, 723, 724, 727, 1072, 728, 729, 730, - 731, 1077, 740, 741, 1080, 742, 743, 396, 1084, 744, - 745, 747, 775, 694, 751, 753, 697, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 755, - 756, 797, 802, 810, 811, 581, 719, 720, 814, 1111, - 816, 1113, 725, 726, 820, 848, 821, 822, 824, 732, - 823, 739, 825, 826, 98, 99, 849, 827, 829, 852, - 853, 100, 830, 831, 752, 101, 754, 854, 832, 833, - 834, 835, 836, 837, 759, 760, 761, 838, 839, 764, - 765, 766, 767, 768, 769, 770, 840, 841, 842, 1149, - 203, 204, 205, 206, 207, 1160, 843, 857, 844, 845, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 846, - 858, 859, 217, 860, 861, 1176, 1177, 1178, 1179, 1180, - 1181, 1182, 1183, 1184, 862, 863, 871, 873, 865, 1193, - 1195, 1197, 1192, 1194, 1196, 1198, 1199, 1200, 1201, 877, - 1203, 1204, 1205, 203, 204, 205, 206, 207, 397, 896, - 892, 911, 912, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 75, 1110, 914, 217, 917, 919, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 922, - 923, 924, 925, 929, 926, 928, 932, 1254, 1255, 1256, - 1257, 1258, 1259, 1260, 1261, 1262, 1264, 1266, 1268, 931, - 933, 934, 935, 941, 942, 945, 946, 954, 983, 897, - 947, 955, 957, 997, 985, 1272, 1273, 984, 986, 998, - 916, 1002, 1004, 1005, 1006, 921, 1007, 1008, 1010, 1016, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 1296, 1011, 940, 1299, 1012, 1017, 1018, 1021, - 1020, 1023, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, - 1314, 1315, 1031, 1317, 1055, 1319, 1032, 1049, 1060, 1323, - 1063, 1324, 1065, 1068, 203, 204, 205, 206, 207, 1067, - 1069, 1070, 1071, 1073, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 1336, 1337, 1075, 217, 1076, 1078, 1342, - 1343, 1344, 1345, 1346, 1347, 98, 99, 1079, 1081, 1082, - 1105, 1083, 100, 1089, 1104, 1108, 101, 1118, 1107, 1109, - 1112, 1114, 1128, 1365, 1115, 1116, 1129, 1119, 1369, 1370, - 1371, 1372, 1373, 1374, 1376, 1378, 1380, 782, 1121, 1145, - 1123, 1146, 1125, 1157, 1126, 1165, 1166, 1167, 1169, 398, - 1132, 1170, 1171, 1172, 1173, 1188, 1399, 1400, 1401, 1402, - 1403, 1404, 1405, 1189, 1407, 1228, 1409, 1208, 1202, 1209, - 1230, 1241, 1247, 1206, 1248, 1250, 1207, 399, 1210, 1211, - 1251, 1229, 1212, 1214, 1419, 1420, 1421, 1050, 1224, 1225, - 1051, 1226, 1252, 1269, 1270, 1271, 1274, 1275, 1433, 1434, - 1435, 1437, 1439, 1441, 655, 1276, 1277, 1295, 1302, 1278, - 1279, 1303, 1304, 1305, 1316, 1453, 1454, 1455, 1456, 1318, - 1458, 1320, 1460, 1074, 1321, 1325, 1326, 677, 1354, 1353, - 1366, 1355, 1396, 1398, 1362, 1363, 1406, 1382, 1364, 1088, - 1383, 1408, 1474, 1476, 1478, 1410, 1411, 1425, 1457, 1442, - 1429, 1485, 1430, 1487, 1431, 1489, 1459, 1461, 75, 76, - 1466, 1462, 1486, 1470, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 203, 204, 205, 206, 207, - 952, 1471, 1472, 1488, 1490, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 1492, 1493, 62, 217, 678, 65, - 1174, 1147, 1148, 203, 204, 205, 206, 207, 953, 66, - 67, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 464, 0, 654, 217, 0, 0, 0, 1175, - 203, 204, 205, 206, 207, 895, 0, 988, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 203, 204, 205, 206, 207, 0, 0, - 990, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1227, 0, 203, 204, 205, - 206, 207, 992, 0, 0, 0, 0, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 0, 0, 100, 217, - 0, 1253, 101, 0, 0, 0, 203, 204, 205, 206, - 207, 0, 994, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 0, 203, 204, 205, 206, 207, 995, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 0, 1301, 203, 204, 205, 206, 207, 1106, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 203, 204, 205, 206, - 207, 1231, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 1341, 1233, 0, 0, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 1235, 0, 0, - 217, 1367, 0, 0, 0, 0, 0, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 1237, 0, 1397, - 217, 0, 0, 0, 0, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 1238, 0, 0, 217, 1418, 0, - 0, 0, 0, 0, 203, 204, 205, 206, 207, 0, - 0, 0, 1432, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 1239, 0, 0, 217, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 1240, 0, 0, 217, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 492, 217, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 541, 217, 0, 0, 0, 0, - 0, 0, 0, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 757, 0, 0, 217, 0, 0, 0, 0, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 0, 0, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 0, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 25, - 26, 27, 28, 29, 30, 31, 32, 0, 33, 0, - 35, 36, 0, 38, 39, 0, 0, 0, -3, 22, - 0, 0, 23, 0, 0, 203, 204, 205, 206, 207, - 51, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 52, 53, 0, 217, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 704, 33, 34, - 35, 36, 37, 38, 39, 0, 0, 0, 40, 41, - 42, 43, 44, 45, 0, 46, 47, 48, 49, 50, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 219, 0, 0, 52, 53, 0, 0, 0, 0, - 60, 54, 55, 56, 57, 58, 59, 25, 26, 27, - 28, 29, 30, 31, 32, 0, 33, 0, 35, 36, - 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 448, - 0, 0, 0, 0, 0, 0, 220, 221, 222, 0, - 60, 0, 52, 53, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 0, 0, 0, 0, 0, 0, - 0, 0, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 0, 243, 244, 245, 246, 247, 248, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 60, 0, - 0, 217, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 772, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 996, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 1190, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 867, 0, 0, 868, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1026, 0, 0, 1027, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1297, 0, 0, 1298, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 203, 204, 205, 206, 207, 0, 402, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 203, 204, 205, 206, 207, 0, - 407, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 203, 204, 205, - 206, 207, 0, 409, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 203, 204, 205, 206, 207, 0, 546, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 203, 204, 205, 206, 207, 0, 550, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 203, 204, 205, 206, - 207, 0, 551, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 203, - 204, 205, 206, 207, 0, 673, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 1059, 0, 0, 0, 0, 0, 864, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 203, 204, 205, 206, 207, - 0, 1085, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 203, 204, - 205, 206, 207, 0, 1086, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 203, 204, 205, 206, 207, 0, 1087, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 203, 204, 205, 206, 207, 0, - 1102, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 203, 204, 205, - 206, 207, 0, 1103, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 203, 204, 205, 206, 207, 0, 1127, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 1244, 0, 0, 0, 0, 0, 1242, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 203, 204, 205, 206, - 207, 0, 1338, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 203, - 204, 205, 206, 207, 0, 1352, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 203, 204, 205, 206, 207, 0, 1381, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 431, 343, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 343, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 401, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 403, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 404, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 406, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 410, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 411, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 416, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 453, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 456, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 470, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 471, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 472, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 473, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 474, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 475, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 476, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 477, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 478, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 479, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 481, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 482, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 483, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 484, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 485, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 486, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 534, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 537, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 547, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 548, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 552, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 553, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 554, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 555, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 556, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 598, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 602, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 643, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 705, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 706, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 707, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 708, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 798, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 866, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 915, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 1009, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 1013, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 1015, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 1120, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 1122, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 1124, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 1142, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 1143, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 1144, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 1333, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 1334, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 1335, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 1415, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 0, 1416, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 0, 1417, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 0, 1463, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 0, 1464, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 0, 1465, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 431, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 432, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 480, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 487, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 488, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 493, 0, 0, 489, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 564, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 565, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 566, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 671, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 672, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 795, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 796, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 817, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 818, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 851, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 878, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 879, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 880, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 881, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 882, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 883, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 884, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 885, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 886, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 887, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 888, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 889, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 977, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 978, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1003, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1014, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1019, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1022, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1024, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 1035, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 1036, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 1037, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 1038, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 1039, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1040, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1041, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1042, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1043, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1044, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 1045, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 1046, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 1117, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 1133, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 1134, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1135, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1136, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1137, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1138, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1139, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 1140, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 1141, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 1159, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 1215, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 1216, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1217, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1218, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1219, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1220, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1221, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 1222, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 1223, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 1243, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 1280, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 1281, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1282, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1283, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1284, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1285, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1286, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 1287, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 1288, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 1322, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 1327, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 1328, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1329, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1330, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1331, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1332, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1351, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 1356, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 1357, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 1358, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 1359, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 1360, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1361, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1384, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1385, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1386, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1387, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 0, 1388, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 0, 0, 0, 1389, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 209, 210, 211, - 341, 342, 214, 215, 216, 0, 0, 0, 217, 0, - 0, 0, 1412, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 209, 210, 211, 341, 342, 214, - 215, 216, 0, 0, 0, 217, 0, 0, 0, 1413, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 209, 210, 211, 341, 342, 214, 215, 216, 0, - 0, 0, 217, 0, 0, 0, 1414, 203, 204, 205, - 206, 207, 0, 0, 0, 0, 0, 208, 209, 210, - 211, 341, 342, 214, 215, 216, 0, 0, 0, 217, - 0, 0, 0, 1426, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 209, 210, 211, 341, 342, - 214, 215, 216, 0, 0, 0, 217, 0, 0, 0, - 1427, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 209, 210, 211, 341, 342, 214, 215, 216, - 0, 0, 0, 217, 0, 0, 0, 1428, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 209, - 210, 211, 341, 342, 214, 215, 216, 0, 0, 0, - 217, 0, 0, 0, 1443, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 209, 210, 211, 341, - 342, 214, 215, 216, 0, 0, 0, 217, 0, 0, - 0, 1444, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217, 0, 0, 1339, 1445, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 209, 210, 211, 341, 342, 214, 215, 216, 0, 0, - 0, 217, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 209, 210, 211, 341, 342, 214, 215, - 216, 0, 0, 0, 217 + 90, 91, 92, 93, 94, 95, 200, 201, 202, 203, + 204, 377, 378, 379, 380, 381, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 395, 789, 382, 214, 383, + 1049, 390, 384, 385, 386, 387, 422, 427, 391, 802, + 392, 804, 805, 405, 407, -1, 8, 458, 9, 814, + 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, + 825, 459, 461, 468, 493, 494, 495, 496, 834, 497, + 835, 498, 499, 500, 501, 502, 837, 530, 531, 396, + 503, 275, 504, 505, 98, 506, 280, 507, 532, 508, + 509, 152, 510, 511, 512, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 513, 960, 304, + 514, 515, 516, 308, 309, 517, 518, 519, 873, 520, + 875, 521, 522, 546, 525, 544, 526, 527, 574, 541, + 878, 530, 531, 542, 547, 883, 884, 548, 98, 549, + 551, 552, 532, 554, 577, 152, 898, 555, 900, 556, + 902, 10, 11, 12, 13, 14, 15, 16, 17, 561, + 200, 201, 202, 203, 204, 578, 610, 611, 918, 919, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 929, + 397, 931, 214, 612, 613, 615, 624, 625, 626, 627, + 628, 941, 629, 630, 631, 632, 655, 670, 948, 949, + 950, 813, 633, 634, 635, 955, 636, 659, 637, 959, + 638, 961, 656, 639, 200, 201, 202, 203, 204, 640, + 641, 973, 642, 643, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 675, 658, 677, 214, 978, 644, 645, + 685, 646, 686, 647, 687, 690, 648, 691, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, + 649, 650, 651, 652, 653, 654, 657, 692, 73, 74, + 684, 1010, 734, 693, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 694, 695, 696, 719, 735, + 661, 1036, 1038, 1040, 1035, 1037, 1039, 1041, 1042, 1043, + 1044, 707, 1046, 1047, 708, 200, 201, 202, 203, 204, + 709, 710, 1052, 1053, 1054, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 711, 712, 713, 214, 714, 715, + 663, 1071, 1072, 716, 724, 717, 718, 728, 1076, 739, + 740, 741, 742, 743, 746, 748, 774, 1082, 749, 752, + 753, 754, 755, 756, 765, 1090, 806, 766, 767, 768, + 1095, 769, 833, 1098, 836, 770, 778, 782, 665, 784, + 786, 787, 828, 838, 25, 26, 27, 28, 29, 30, + 31, 32, 1117, 33, 842, 35, 36, 843, 38, 39, + 845, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, + 1132, 1133, 1134, 844, 846, 51, 847, 848, 849, 1140, + 96, 97, 851, 870, 852, 853, 854, 98, 855, 52, + 53, 99, 860, 871, 273, 200, 201, 202, 203, 204, + 856, 857, 858, 859, 861, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 203, 204, 1154, 214, 869, 874, + 862, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 863, 864, 865, 214, 866, 200, 201, 202, 203, 204, + 867, 868, 1178, 876, 58, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 877, 673, 674, 214, 676, 880, + 881, 882, 678, 679, 1196, 1197, 1198, 1199, 1200, 1201, + 1202, 1203, 1204, 200, 201, 202, 203, 204, 885, 886, + 1210, 887, 888, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 1077, 1217, 889, 214, 890, 891, 893, 200, + 201, 202, 203, 204, 899, 901, 905, 924, 920, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 928, 722, + 930, 214, 725, 1246, 1247, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1256, 1258, 1260, 933, 934, 1263, 935, 936, + 937, 744, 745, 939, 940, 942, 943, 750, 751, 946, + 944, 945, -7, -7, 757, -7, 764, 952, 953, 956, + 957, 969, 976, 977, 1286, 1287, 958, 979, 1005, 1007, + 1006, 1011, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, + 1302, 1303, 783, 1305, 785, 1307, 1013, 1014, 1015, 1311, + 1016, 1017, 790, 791, 792, 1019, 1025, 795, 796, 797, + 798, 799, 800, 801, 1020, 1045, 1021, 1026, 1027, 1029, + 1032, 1323, 1324, 1030, 1055, 1056, 1328, 1329, 1330, 1331, + 1332, 1333, 25, 26, 27, 28, 29, 30, 31, 32, + 1073, 33, 1078, 35, 36, 1081, 38, 39, 1099, 1351, + 1083, 1085, 1086, 1087, 1355, 1356, 1357, 1358, 1359, 1360, + 1362, 1364, 1366, 51, 1088, 1089, 1091, 1093, -7, -7, + -7, -7, -7, -7, -7, -7, 1094, 52, 53, 1096, + 1097, 1101, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1100, + 1393, 1112, 1395, 1115, 1, 2, 1116, 3, 1122, 1137, + 1138, 1141, 1142, 1143, 1153, 1145, 1146, 1148, 1157, 1150, + 1405, 1406, 1407, 1152, 1158, 1155, 1174, 1161, 1175, 1183, + 1184, 1185, 1187, 1188, 1419, 1420, 1421, 1423, 1425, 1427, + 1189, 1190, 58, 1193, 1209, 1208, 1238, 1239, 1211, 1212, + 1234, 1439, 1440, 1441, 1442, 1213, 1444, 1214, 1446, 1215, + 925, 1216, 927, 1218, 1220, 1241, 1243, 932, 667, 1230, + 1231, 1232, 1244, 1261, 1262, 1264, 1265, 1268, 1460, 1462, + 1464, 451, 1266, 1267, 1285, 1290, 951, 1471, 1269, 1473, + 1291, 1475, 73, 528, 1292, 1309, 1293, 1304, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 1306, + 1308, 73, 74, 1312, 1478, 1313, 1352, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 73, 74, + 1340, 1339, 1382, 1384, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 73, 872, 1348, 1349, 1392, + 1341, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 1350, 200, 201, 202, 203, 204, 1394, 668, + 1368, 1396, 1369, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 1397, 1411, 1443, 214, 1415, 1416, 1417, 1074, + 1428, 1445, 1075, 683, 1447, 1448, 1452, 1456, 1457, 1458, + 1472, 1474, 1476, 1479, 530, 531, 706, 63, 64, 682, + 65, 98, 1092, 1194, 923, 532, 705, 0, 152, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 0, 974, + 98, 214, 0, 1121, 99, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 96, 97, 0, 975, 0, 0, 0, 98, 0, 0, + 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1102, 96, 97, 0, + 0, 0, 0, 0, 98, 0, 0, 0, 99, 0, + 0, 0, 0, 0, 200, 201, 202, 203, 204, 1104, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 1176, 1177, 214, 0, 200, 201, + 202, 203, 204, 1106, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 1195, 0, + 214, 200, 201, 202, 203, 204, 1108, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 1109, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 1233, 214, 0, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 1245, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 200, 201, 202, 203, 204, 1110, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 200, 201, 202, 203, 204, 0, + 0, 0, 1289, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 1111, 0, 214, 0, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 1139, 0, 0, + 214, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 1327, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 491, 214, 0, 0, 0, 0, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 1353, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 557, 0, 0, + 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1383, 0, 0, 0, 0, + 788, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 1404, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1418, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 25, 26, 27, 28, + 29, 30, 31, 32, 0, 33, 0, 35, 36, 0, + 38, 39, 0, 0, -3, 22, 0, 0, 23, 0, + 0, 200, 201, 202, 203, 204, 0, 51, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 52, 53, 214, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 669, 33, 34, 35, 36, 37, 38, + 39, 0, 0, 0, 40, 41, 42, 43, 44, 45, + 0, 46, 47, 48, 49, 50, 51, 0, 0, 0, + 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, + 52, 53, 0, 0, 0, 0, 58, 54, 55, 0, + 56, 57, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 729, 455, 0, 0, 217, 218, + 219, 0, 0, 0, 0, 58, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 0, 240, 241, 242, 243, 244, + 245, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 803, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 1033, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 895, 0, 0, 896, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1050, 0, 0, 1051, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1191, 0, 0, 1192, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 200, 201, 202, 203, 204, 0, 409, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 200, 201, 202, 203, 204, 0, 414, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 200, 201, 202, 203, + 204, 0, 416, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 200, + 201, 202, 203, 204, 0, 562, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 200, 201, 202, 203, 204, 0, 566, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 200, 201, 202, 203, 204, + 0, 567, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 200, 201, + 202, 203, 204, 0, 701, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 200, 201, 202, 203, 204, 0, 892, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 200, 201, 202, 203, 204, 0, + 1113, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 200, 201, 202, + 203, 204, 0, 1118, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 200, 201, 202, 203, 204, 0, 1119, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 200, 201, 202, 203, 204, 0, 1120, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 200, 201, 202, 203, + 204, 0, 1135, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 200, + 201, 202, 203, 204, 0, 1136, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 1235, 0, 0, 0, 0, 0, 1156, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 200, 201, 202, 203, 204, + 0, 1242, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 200, 201, + 202, 203, 204, 0, 1338, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 200, 201, 202, 203, 204, 0, 1367, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 438, 341, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 341, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 408, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 410, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 411, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 413, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 417, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 418, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 423, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 460, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 463, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 469, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 470, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 471, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 472, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 473, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 474, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 475, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 476, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 477, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 478, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 480, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 481, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 482, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 483, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 484, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 485, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 550, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 553, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 563, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 564, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 568, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 569, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 570, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 571, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 572, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 614, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 617, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 671, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 730, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 731, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 732, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 733, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 829, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 894, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 926, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 1018, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 1022, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 1024, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 1147, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 1149, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 1151, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 1171, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 1172, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 1173, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 1320, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 1321, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 1322, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 1401, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 0, + 1402, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 0, 1403, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 0, 1449, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 0, 1450, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 0, 1451, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 438, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 439, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 479, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 486, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 487, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 492, 0, 0, 488, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 580, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 581, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 582, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 699, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 700, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 826, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 827, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 839, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 840, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 879, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 906, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 907, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 908, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 909, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 910, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 911, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 912, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 913, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 914, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 915, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 916, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 917, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 971, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 999, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1000, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1012, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1023, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1028, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1031, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 1048, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 1059, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 1060, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 1061, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 1062, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1063, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1064, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1065, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1066, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1067, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 1068, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 1069, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 1070, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 1114, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 1144, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1162, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1163, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1164, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1165, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1166, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 1167, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 1168, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 1169, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 1170, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 1221, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1222, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1223, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1224, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1225, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1226, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 1227, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 1228, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 1229, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 1270, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 1271, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1272, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1273, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1274, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1275, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1276, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 1277, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 1278, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 1310, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 1314, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 1315, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1316, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1317, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1318, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1319, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1337, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 1342, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 1343, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 1344, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 1345, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 1346, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1347, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1370, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1371, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1372, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1373, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 0, 1374, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 0, 0, 0, 1375, 200, 201, 202, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 207, 208, 339, + 340, 211, 212, 213, 0, 0, 0, 214, 0, 0, + 0, 1398, 200, 201, 202, 203, 204, 0, 0, 0, + 0, 0, 205, 206, 207, 208, 339, 340, 211, 212, + 213, 0, 0, 0, 214, 0, 0, 0, 1399, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 205, + 206, 207, 208, 339, 340, 211, 212, 213, 0, 0, + 0, 214, 0, 0, 0, 1400, 200, 201, 202, 203, + 204, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 339, 340, 211, 212, 213, 0, 0, 0, 214, 0, + 0, 0, 1412, 200, 201, 202, 203, 204, 0, 0, + 0, 0, 0, 205, 206, 207, 208, 339, 340, 211, + 212, 213, 0, 0, 0, 214, 0, 0, 0, 1413, + 200, 201, 202, 203, 204, 0, 0, 0, 0, 0, + 205, 206, 207, 208, 339, 340, 211, 212, 213, 0, + 0, 0, 214, 0, 0, 0, 1414, 200, 201, 202, + 203, 204, 0, 0, 0, 0, 0, 205, 206, 207, + 208, 339, 340, 211, 212, 213, 0, 0, 0, 214, + 0, 0, 0, 1429, 200, 201, 202, 203, 204, 0, + 0, 0, 0, 0, 205, 206, 207, 208, 339, 340, + 211, 212, 213, 0, 0, 0, 214, 0, 0, 0, + 1430, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214, 0, 0, 1325, 1431, 200, 201, + 202, 203, 204, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 339, 340, 211, 212, 213, 0, 0, 0, + 214, 200, 201, 202, 203, 204, 0, 0, 0, 0, + 0, 205, 206, 207, 208, 339, 340, 211, 212, 213, + 0, 0, 0, 214 }; static const short yycheck[] = { 7, - 112, 963, 3, 4, 5, 297, 6, 6, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 6, - 41, 42, 5, 137, 56, 79, 56, 6, 892, 824, - 58, 6, 4, 6, 4, 63, 4, 164, 833, 4, - 4, 156, 157, 170, 58, 840, 4, 4, 4, 63, - 167, 156, 157, 168, 156, 157, 171, 6, 156, 157, - 30, 7, 30, 42, 6, 170, 168, 156, 157, 171, - 168, 6, 35, 171, 156, 157, 6, 156, 157, 168, - 98, 99, 100, 101, 102, 6, 4, 164, 170, 61, - 6, 170, 6, 170, 6, 167, 6, 115, 116, 117, - 118, 119, 6, 61, 61, 61, 124, 125, 126, 127, - 82, 129, 130, 167, 132, 133, 134, 6, 136, 156, - 157, 156, 157, 34, 35, 31, 37, 148, 34, 35, - 151, 37, 169, 168, 152, 153, 157, 167, 170, 1003, - 170, 167, 167, 171, 170, 156, 157, 156, 157, 7, - 6, 169, 163, 171, 7, 173, 167, 171, 35, 170, - 170, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 156, 157, 170, 167, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 171, 1174, 171, 167, 170, 170, 156, 157, 1004, - 3, 4, 167, 1008, 156, 157, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 7, 156, 157, - 156, 157, 156, 157, 156, 157, 156, 157, 266, 167, - 31, 269, 170, 34, 35, 273, 35, 156, 157, 277, - 278, 279, 167, 281, 282, 283, 284, 285, 286, 287, - 169, 6, 7, 294, 295, 58, 0, 1, 39, 3, - 63, 299, 300, 301, 167, 306, 167, 156, 157, 8, - 148, 149, 150, 151, 312, 148, 149, 150, 151, 168, - 318, 167, 156, 157, 156, 157, 35, 165, 166, 158, - 159, 160, 165, 166, 168, 164, 168, 165, 166, 1114, - 1115, 1116, 1117, 341, 342, 170, 1121, 31, 32, 33, - 34, 35, 36, 37, 38, 37, 40, 31, 42, 43, - 34, 45, 46, 156, 157, 168, 168, 169, 171, 142, - 143, 144, 145, 146, 168, 168, 35, 171, 62, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 48, 49, - 163, 164, 76, 77, 167, 165, 166, 170, 148, 149, - 150, 151, 400, 107, 108, 109, 110, 111, 112, 113, - 114, 168, 169, 5, 168, 165, 166, 415, 172, 170, - 6, 170, 420, 0, 1, 167, 3, 428, 170, 167, - 170, 1206, 1207, 431, 432, 1210, 50, 51, 52, 53, - 5, 55, 440, 142, 143, 144, 145, 146, 132, 447, - 170, 167, 170, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 6, 5, 462, 164, 145, 146, 35, 161, - 169, 469, 164, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 480, 168, 172, 164, 171, 171, 5, 487, - 488, 489, 167, 775, 492, 3, 4, 5, 167, 1274, - 167, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 110, 297, 985, 6, 6, 6, 56, 7, 6, 35, + 58, 4, 920, 79, 4, 63, 56, 4, 4, 136, + 58, 58, 6, 4, 4, 63, 63, 155, 156, 5, + 41, 42, 155, 156, 155, 156, 167, 155, 156, 167, + 171, 846, 170, 6, 167, 7, 167, 170, 163, 170, + 855, 169, 155, 156, 169, 155, 156, 862, 42, 155, + 156, 155, 156, 6, 6, 6, 169, 6, 61, 169, + 163, 61, 168, 167, 61, 61, 169, 6, 7, 6, + 155, 156, 155, 156, 166, 4, 6, 169, 96, 97, + 98, 99, 100, 168, 167, 82, 164, 165, 7, 6, + 166, 166, 7, 6, 1012, 113, 114, 115, 116, 117, + 34, 35, 166, 37, 6, 123, 124, 125, 126, 169, + 128, 129, 170, 131, 132, 133, 166, 135, 6, 169, + 31, 6, 170, 34, 155, 156, 147, 6, 166, 150, + 166, 155, 156, 151, 152, 156, 167, 147, 148, 149, + 150, 167, 168, 167, 155, 156, 166, 155, 156, 169, + 168, 166, 170, 171, 164, 165, 169, 169, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 169, 169, + 166, 166, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 1013, 3, + 4, 1194, 1017, 155, 156, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 155, 156, 147, 148, + 149, 150, 147, 148, 149, 150, 39, 166, 155, 156, + 169, 167, 155, 156, 170, 164, 165, 35, 266, 164, + 165, 269, 171, 155, 156, 273, 157, 158, 159, 277, + 278, 279, 163, 281, 282, 283, 284, 285, 286, 287, + 155, 156, 167, 294, 295, 170, 155, 156, 155, 156, + 166, 299, 300, 301, 166, 306, 166, 155, 156, 31, + 167, 35, 34, 35, 312, 37, 48, 49, 316, 167, + 50, 51, 52, 53, 35, 55, 6, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 37, + 31, 339, 340, 34, 35, 169, 1141, 1142, 1143, 1144, + 169, 167, 167, 1148, 170, 170, 169, 141, 142, 143, + 144, 145, 167, 8, 5, 170, 35, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 169, 167, 162, 163, + 170, 167, 166, 6, 170, 169, 167, 167, 168, 170, + 6, 91, 92, 93, 94, 95, 5, 398, 399, 400, + 398, 399, 400, 401, 402, 167, 166, 405, 170, 407, + 166, 155, 156, 157, 158, 159, 1211, 1212, 8, 163, + 1215, 6, 167, 5, 422, 170, 5, 167, 35, 427, + 170, 47, 167, 170, 435, 170, 167, 164, 165, 170, + 438, 439, 167, 160, 6, 170, 163, 166, 171, 447, + 166, 166, 166, 166, 166, 6, 454, 166, 166, 166, + 166, 141, 142, 143, 144, 145, 464, 166, 6, 1264, + 468, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 166, 479, 166, 163, 166, 166, 5, 166, 486, 487, + 488, 166, 166, 491, 166, 166, 141, 142, 143, 144, + 145, 166, 166, 166, 166, 166, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 169, 169, 1312, 163, 169, + 806, 169, 166, 168, 166, 141, 142, 143, 144, 145, + 531, 6, 530, 531, 532, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 166, 546, 1341, 163, 166, 166, + 171, 141, 142, 143, 144, 145, 169, 657, 169, 557, + 558, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 6, 6, 166, 163, 163, 166, 574, 5, 166, 580, + 581, 582, 166, 166, 171, 3, 4, 5, 166, 166, + 166, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 92, 93, 94, 95, 96, 167, 167, 530, - 107, 108, 109, 110, 111, 112, 113, 114, 168, 168, - 642, 171, 171, 541, 542, 156, 157, 158, 159, 160, - 1325, 168, 168, 164, 171, 171, 133, 134, 168, 136, - 558, 171, 167, 564, 565, 566, 168, 168, 168, 171, - 171, 171, 135, 168, 6, 168, 171, 140, 171, 167, - 1355, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 6, 6, 168, 164, 167, 171, 594, 595, 167, 597, - 163, 167, 5, 167, 167, 168, 167, 167, 167, 167, - 167, 167, 613, 611, 612, 167, 3, 4, 167, 167, - 167, 622, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 167, 167, 170, 167, 167, 156, 157, - 172, 170, 170, 167, 167, 163, 167, 167, 656, 167, - 167, 170, 170, 6, 170, 170, 6, 1442, 167, 164, - 167, 669, 954, 671, 672, 167, 167, 167, 167, 167, - 167, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 701, 167, 703, 3, 4, 167, 167, - 167, 709, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 167, 167, 5, 167, 167, 167, 167, - 167, 167, 167, 7, 846, 168, 7, 169, 168, 750, - 168, 7, 7, 80, 173, 5, 5, 5, 125, 757, - 5, 8, 5, 5, 762, 763, 5, 5, 5, 156, - 157, 5, 5, 5, 5, 776, 163, 778, 5, 780, - 167, 5, 5, 170, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 3, 5, 795, 796, 5, - 7, 6, 803, 804, 805, 803, 804, 805, 806, 807, - 5, 7, 810, 6, 173, 7, 7, 815, 6, 817, - 6, 171, 7, 7, 7, 171, 170, 7, 170, 827, - 167, 7, 167, 172, 139, 168, 834, 835, 836, 168, - 168, 5, 168, 841, 168, 168, 168, 845, 168, 168, - 168, 6, 168, 851, 168, 168, 168, 168, 168, 156, - 157, 168, 168, 7, 168, 168, 163, 168, 168, 867, - 167, 169, 168, 170, 168, 168, 168, 168, 168, 168, - 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, - 888, 889, 47, 168, 168, 142, 143, 144, 145, 146, - 901, 7, 900, 901, 902, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 7, 7, 170, 164, 7, 7, - 918, 3, 4, 7, 7, 135, 7, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 958, 959, 960, 7, 7, 7, 167, 167, 167, 532, - 533, 6, 535, 167, 6, 3, 539, 540, 167, 977, - 978, 7, 7, 3, 3, 167, 984, 142, 143, 144, - 145, 146, 167, 167, 167, 167, 167, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 167, 158, 1006, 164, - 3, 3, 3, 3, 3, 3, 1014, 3, 3, 3, - 3, 1019, 3, 5, 1022, 5, 3, 6, 1026, 3, - 6, 6, 170, 596, 6, 6, 599, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 6, - 6, 6, 81, 173, 172, 171, 619, 620, 172, 1057, - 168, 1059, 625, 626, 168, 6, 169, 168, 168, 632, - 169, 634, 169, 168, 156, 157, 6, 168, 168, 6, - 6, 163, 169, 169, 647, 167, 649, 6, 168, 168, - 168, 168, 168, 168, 657, 658, 659, 169, 168, 662, - 663, 664, 665, 666, 667, 668, 168, 168, 168, 1107, - 142, 143, 144, 145, 146, 1113, 168, 6, 169, 168, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 168, - 6, 6, 164, 6, 6, 1133, 1134, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 6, 6, 6, 6, 172, 1150, - 1151, 1152, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 6, - 1158, 1159, 1160, 142, 143, 144, 145, 146, 6, 81, - 7, 6, 6, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 3, 4, 4, 164, 4, 3, 9, 10, + 28, 29, 610, 611, 166, 613, 166, 166, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 628, 626, 627, + 163, 166, 166, 1428, 166, 166, 637, 166, 166, 3, + 4, 5, 166, 166, 166, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 141, 142, 143, 144, + 145, 166, 166, 166, 166, 166, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 6, 684, 166, 163, 166, + 976, 167, 166, 166, 166, 166, 7, 7, 168, 697, + 167, 699, 700, 172, 167, 0, 1, 7, 3, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 7, 80, 172, 5, 5, 5, 5, 726, 5, + 728, 5, 5, 5, 5, 5, 734, 155, 156, 6, + 5, 134, 5, 5, 162, 5, 139, 5, 166, 5, + 5, 169, 5, 5, 5, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 5, 868, 162, + 5, 5, 124, 166, 167, 5, 5, 5, 776, 5, + 781, 3, 5, 7, 5, 4, 6, 5, 172, 6, + 788, 155, 156, 6, 6, 793, 794, 7, 162, 7, + 7, 6, 166, 6, 170, 169, 807, 7, 809, 7, + 811, 106, 107, 108, 109, 110, 111, 112, 113, 7, + 141, 142, 143, 144, 145, 170, 169, 169, 826, 827, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 837, + 6, 839, 163, 7, 166, 7, 138, 167, 167, 167, + 167, 849, 167, 167, 167, 167, 5, 7, 856, 857, + 858, 170, 167, 167, 167, 863, 167, 6, 167, 867, + 167, 869, 168, 167, 141, 142, 143, 144, 145, 167, + 167, 879, 167, 167, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 7, 171, 7, 163, 895, 167, 167, + 7, 167, 7, 167, 7, 7, 167, 7, 906, 907, + 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, + 167, 167, 167, 167, 167, 167, 167, 7, 3, 4, + 169, 929, 134, 7, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 7, 7, 7, 6, 3, + 6, 962, 963, 964, 962, 963, 964, 965, 966, 967, + 968, 166, 970, 971, 166, 141, 142, 143, 144, 145, + 166, 166, 980, 981, 982, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 166, 166, 166, 163, 166, 166, + 6, 999, 1000, 166, 7, 166, 166, 7, 1006, 3, + 3, 157, 3, 3, 3, 3, 171, 1015, 3, 3, + 3, 3, 3, 3, 3, 1023, 169, 5, 5, 3, + 1028, 3, 81, 1031, 171, 6, 6, 6, 6, 6, + 6, 6, 6, 167, 31, 32, 33, 34, 35, 36, + 37, 38, 1050, 40, 167, 42, 43, 168, 45, 46, + 168, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, + 1068, 1069, 1070, 167, 167, 62, 168, 167, 167, 1077, + 155, 156, 167, 4, 168, 168, 167, 162, 167, 76, + 77, 166, 168, 171, 169, 141, 142, 143, 144, 145, + 167, 167, 167, 167, 167, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 144, 145, 1114, 163, 172, 6, + 167, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 167, 167, 167, 163, 168, 141, 142, 143, 144, 145, + 167, 167, 1140, 6, 131, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 6, 548, 549, 163, 551, 6, + 6, 6, 555, 556, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 141, 142, 143, 144, 145, 6, 6, + 1178, 6, 6, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 134, 1191, 6, 163, 6, 6, 171, 141, + 142, 143, 144, 145, 6, 6, 6, 81, 7, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 4, 612, + 3, 163, 615, 1221, 1222, 1223, 1224, 1225, 1226, 1227, + 1228, 1229, 1230, 1231, 1232, 6, 3, 1235, 6, 157, + 6, 634, 635, 6, 3, 6, 3, 640, 641, 3, + 6, 6, 0, 1, 647, 3, 649, 6, 3, 3, + 3, 82, 169, 4, 1262, 1263, 6, 170, 169, 6, + 78, 168, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 675, 1281, 677, 1283, 167, 167, 167, 1287, + 168, 167, 685, 686, 687, 167, 167, 690, 691, 692, + 693, 694, 695, 696, 168, 171, 168, 168, 168, 167, + 167, 1309, 1310, 168, 6, 169, 1314, 1315, 1316, 1317, + 1318, 1319, 31, 32, 33, 34, 35, 36, 37, 38, + 81, 40, 6, 42, 43, 3, 45, 46, 5, 1337, + 6, 6, 3, 6, 1342, 1343, 1344, 1345, 1346, 1347, + 1348, 1349, 1350, 62, 6, 6, 6, 6, 106, 107, + 108, 109, 110, 111, 112, 113, 6, 76, 77, 3, + 6, 6, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 171, + 1378, 4, 1380, 5, 132, 133, 170, 135, 6, 169, + 167, 167, 167, 167, 4, 168, 168, 167, 6, 168, + 1398, 1399, 1400, 167, 6, 167, 6, 167, 6, 6, + 6, 6, 6, 6, 1412, 1413, 1414, 1415, 1416, 1417, + 6, 5, 131, 5, 170, 167, 6, 6, 167, 167, + 78, 1429, 1430, 1431, 1432, 168, 1434, 168, 1436, 167, + 833, 167, 835, 167, 167, 5, 5, 840, 6, 169, + 169, 169, 6, 170, 169, 167, 167, 170, 1456, 1457, + 1458, 170, 168, 168, 78, 6, 859, 1465, 170, 1467, + 6, 1469, 3, 4, 6, 169, 6, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 6, - 3, 6, 158, 3, 6, 6, 3, 1215, 1216, 1217, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 6, - 6, 6, 3, 6, 3, 3, 3, 170, 170, 802, - 6, 4, 171, 7, 172, 1243, 1244, 78, 6, 6, - 813, 169, 168, 168, 168, 818, 169, 168, 168, 168, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 1270, 169, 837, 1273, 169, 169, 169, 169, - 168, 168, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1288, 1289, 6, 1291, 172, 1293, 170, 81, 6, 1297, - 3, 1299, 6, 3, 142, 143, 144, 145, 146, 6, - 6, 6, 6, 6, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 1321, 1322, 6, 164, 6, 3, 1327, - 1328, 1329, 1330, 1331, 1332, 156, 157, 6, 5, 5, - 168, 171, 163, 6, 170, 4, 167, 169, 173, 172, - 6, 168, 6, 1351, 168, 168, 6, 169, 1356, 1357, - 1358, 1359, 1360, 1361, 1362, 1363, 1364, 171, 168, 6, - 169, 6, 168, 82, 168, 6, 6, 6, 6, 6, - 168, 6, 6, 5, 5, 168, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 171, 1392, 78, 1394, 169, 172, 169, - 6, 4, 6, 168, 6, 5, 168, 6, 168, 168, - 5, 172, 168, 168, 1412, 1413, 1414, 980, 170, 170, - 983, 170, 6, 171, 170, 4, 168, 168, 1426, 1427, - 1428, 1429, 1430, 1431, 6, 169, 169, 78, 6, 171, - 171, 6, 6, 6, 6, 1443, 1444, 1445, 1446, 6, - 1448, 6, 1450, 1016, 170, 168, 168, 6, 168, 141, - 6, 168, 6, 6, 170, 170, 6, 168, 170, 1032, - 169, 6, 1470, 1471, 1472, 6, 168, 168, 6, 168, - 170, 1479, 170, 1481, 170, 1483, 6, 6, 3, 4, - 6, 169, 6, 170, 9, 10, 11, 12, 13, 14, + 6, 3, 4, 167, 0, 167, 6, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 3, 4, + 167, 140, 6, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 142, 143, 144, 145, 146, - 6, 170, 170, 6, 6, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 0, 0, 6, 164, 568, 6, - 1131, 1104, 1105, 142, 143, 144, 145, 146, 6, 6, - 6, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 316, -1, 542, 164, -1, -1, -1, 1132, - 142, 143, 144, 145, 146, 800, -1, 6, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, 142, 143, 144, 145, 146, -1, -1, - 6, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1188, -1, 142, 143, 144, - 145, 146, 6, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, 163, 164, - -1, 1214, 167, -1, -1, -1, 142, 143, 144, 145, - 146, -1, 6, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, -1, 142, 143, 144, 145, 146, 6, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, -1, 1275, 142, 143, 144, 145, 146, 6, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, 142, 143, 144, 145, - 146, 6, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 1326, 6, -1, -1, -1, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 6, -1, -1, - 164, 1354, -1, -1, -1, -1, -1, -1, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 6, -1, 1382, - 164, -1, -1, -1, -1, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 6, -1, -1, 164, 1411, -1, - -1, -1, -1, -1, 142, 143, 144, 145, 146, -1, - -1, -1, 1425, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 6, -1, -1, 164, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 6, -1, -1, 164, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, 8, 164, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, 8, 164, -1, -1, -1, -1, - -1, -1, -1, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 8, -1, -1, 164, -1, -1, -1, -1, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, -1, -1, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, -1, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, 31, - 32, 33, 34, 35, 36, 37, 38, -1, 40, -1, - 42, 43, -1, 45, 46, -1, -1, -1, 0, 1, - -1, -1, 4, -1, -1, 142, 143, 144, 145, 146, - 62, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 76, 77, -1, 164, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 174, 40, 41, - 42, 43, 44, 45, 46, -1, -1, -1, 50, 51, - 52, 53, 54, 55, -1, 57, 58, 59, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 34, -1, -1, 76, 77, -1, -1, -1, -1, - 132, 83, 84, 85, 86, 87, 88, 31, 32, 33, - 34, 35, 36, 37, 38, -1, 40, -1, 42, 43, - -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 62, 171, - -1, -1, -1, -1, -1, -1, 89, 90, 91, -1, - 132, -1, 76, 77, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, -1, -1, -1, -1, -1, -1, - -1, -1, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, 126, 127, 128, 129, 130, 131, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 132, -1, - -1, 164, 142, 143, 144, 145, 146, -1, -1, -1, - -1, 174, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, 142, 143, 144, 145, 146, - -1, -1, -1, -1, 174, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, 142, 143, - 144, 145, 146, -1, -1, -1, -1, 174, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, -1, -1, 171, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, -1, -1, 171, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, -1, -1, 171, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, 142, 143, 144, 145, 146, -1, 171, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, 142, 143, 144, 145, 146, -1, - 171, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, 142, 143, 144, - 145, 146, -1, 171, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - 142, 143, 144, 145, 146, -1, 171, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, 142, 143, 144, 145, 146, -1, 171, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, 142, 143, 144, 145, - 146, -1, 171, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, 142, - 143, 144, 145, 146, -1, 171, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, 135, -1, -1, -1, -1, -1, 171, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, 142, 143, 144, 145, 146, - -1, 171, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, 142, 143, - 144, 145, 146, -1, 171, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, 142, 143, 144, 145, 146, -1, 171, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, 142, 143, 144, 145, 146, -1, - 171, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, 142, 143, 144, - 145, 146, -1, 171, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - 142, 143, 144, 145, 146, -1, 171, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, 135, -1, -1, -1, -1, -1, 171, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, 142, 143, 144, 145, - 146, -1, 171, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, 142, - 143, 144, 145, 146, -1, 171, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, 142, 143, 144, 145, 146, -1, 171, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - -1, 169, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, -1, 169, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, -1, 169, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, -1, 169, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, -1, 169, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, 138, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, -1, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, -1, -1, -1, 168, 142, 143, 144, 145, - 146, -1, -1, -1, -1, -1, 152, 153, 154, 155, - 156, 157, 158, 159, 160, -1, -1, -1, 164, -1, - -1, -1, 168, 142, 143, 144, 145, 146, -1, -1, - -1, -1, -1, 152, 153, 154, 155, 156, 157, 158, - 159, 160, -1, -1, -1, 164, -1, -1, -1, 168, - 142, 143, 144, 145, 146, -1, -1, -1, -1, -1, - 152, 153, 154, 155, 156, 157, 158, 159, 160, -1, - -1, -1, 164, -1, -1, -1, 168, 142, 143, 144, - 145, 146, -1, -1, -1, -1, -1, 152, 153, 154, - 155, 156, 157, 158, 159, 160, -1, -1, -1, 164, - -1, -1, -1, 168, 142, 143, 144, 145, 146, -1, - -1, -1, -1, -1, 152, 153, 154, 155, 156, 157, - 158, 159, 160, -1, -1, -1, 164, -1, -1, -1, - 168, 142, 143, 144, 145, 146, -1, -1, -1, -1, - -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, - -1, -1, -1, 164, -1, -1, -1, 168, 142, 143, - 144, 145, 146, -1, -1, -1, -1, -1, 152, 153, - 154, 155, 156, 157, 158, 159, 160, -1, -1, -1, - 164, -1, -1, -1, 168, 142, 143, 144, 145, 146, - -1, -1, -1, -1, -1, 152, 153, 154, 155, 156, - 157, 158, 159, 160, -1, -1, -1, 164, -1, -1, - -1, 168, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164, -1, -1, 140, 168, 142, - 143, 144, 145, 146, -1, -1, -1, -1, -1, 152, - 153, 154, 155, 156, 157, 158, 159, 160, -1, -1, - -1, 164, 142, 143, 144, 145, 146, -1, -1, -1, - -1, -1, 152, 153, 154, 155, 156, 157, 158, 159, - 160, -1, -1, -1, 164 + 25, 26, 27, 28, 29, 3, 4, 169, 169, 6, + 167, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 169, 141, 142, 143, 144, 145, 6, 6, + 167, 6, 168, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 167, 167, 6, 163, 169, 169, 169, 1002, + 167, 6, 1005, 6, 6, 168, 6, 169, 169, 169, + 6, 6, 6, 0, 155, 156, 584, 6, 6, 558, + 6, 162, 1025, 1160, 831, 166, 6, -1, 169, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, 6, + 162, 163, -1, 1056, 166, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 155, 156, -1, 6, -1, -1, -1, 162, -1, -1, + -1, 166, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 6, 155, 156, -1, + -1, -1, -1, -1, 162, -1, -1, -1, 166, -1, + -1, -1, -1, -1, 141, 142, 143, 144, 145, 6, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, 1137, 1138, 163, -1, 141, 142, + 143, 144, 145, 6, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, 1161, -1, + 163, 141, 142, 143, 144, 145, 6, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, 141, 142, 143, 144, 145, -1, + -1, -1, -1, 6, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, 1208, 163, -1, 141, 142, + 143, 144, 145, -1, -1, -1, -1, 1220, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, 141, 142, 143, 144, 145, 6, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, 141, 142, 143, 144, 145, -1, + -1, -1, 1265, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, 6, -1, 163, -1, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 6, -1, -1, + 163, 141, 142, 143, 144, 145, -1, -1, -1, -1, + 1313, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, 8, 163, -1, -1, -1, -1, 141, 142, + 143, 144, 145, -1, -1, -1, -1, 1340, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 8, -1, -1, + 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1368, -1, -1, -1, -1, + 8, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, 1397, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1411, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, 31, 32, 33, 34, + 35, 36, 37, 38, -1, 40, -1, 42, 43, -1, + 45, 46, -1, -1, 0, 1, -1, -1, 4, -1, + -1, 141, 142, 143, 144, 145, -1, 62, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, 76, 77, 163, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 173, 40, 41, 42, 43, 44, 45, + 46, -1, -1, -1, 50, 51, 52, 53, 54, 55, + -1, 57, 58, 59, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, + 76, 77, -1, -1, -1, -1, 131, 83, 84, -1, + 86, 87, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 173, 170, -1, -1, 88, 89, + 90, -1, -1, -1, -1, 131, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, -1, -1, -1, -1, + -1, -1, -1, -1, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + 130, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, 141, 142, 143, 144, 145, -1, + -1, -1, -1, 173, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, 141, 142, 143, + 144, 145, -1, -1, -1, -1, 173, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, -1, -1, 170, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, -1, -1, 170, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, -1, -1, 170, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + 141, 142, 143, 144, 145, -1, 170, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, 141, 142, 143, 144, 145, -1, 170, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, 141, 142, 143, 144, + 145, -1, 170, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, 141, + 142, 143, 144, 145, -1, 170, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, 141, 142, 143, 144, 145, -1, 170, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, 141, 142, 143, 144, 145, + -1, 170, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, 141, 142, + 143, 144, 145, -1, 170, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, 141, 142, 143, 144, 145, -1, 170, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, 141, 142, 143, 144, 145, -1, + 170, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, 141, 142, 143, + 144, 145, -1, 170, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + 141, 142, 143, 144, 145, -1, 170, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, 141, 142, 143, 144, 145, -1, 170, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, 141, 142, 143, 144, + 145, -1, 170, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, 141, + 142, 143, 144, 145, -1, 170, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, 134, -1, -1, -1, -1, -1, 170, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, 141, 142, 143, 144, 145, + -1, 170, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, 141, 142, + 143, 144, 145, -1, 170, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, 141, 142, 143, 144, 145, -1, 170, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, -1, + 168, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, -1, 168, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, -1, 168, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, -1, 168, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, -1, 168, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, 137, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, -1, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, -1, -1, -1, 167, 141, 142, 143, 144, 145, + -1, -1, -1, -1, -1, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, -1, -1, 163, -1, -1, + -1, 167, 141, 142, 143, 144, 145, -1, -1, -1, + -1, -1, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, -1, -1, 163, -1, -1, -1, 167, 141, + 142, 143, 144, 145, -1, -1, -1, -1, -1, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, -1, + -1, 163, -1, -1, -1, 167, 141, 142, 143, 144, + 145, -1, -1, -1, -1, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, -1, -1, 163, -1, + -1, -1, 167, 141, 142, 143, 144, 145, -1, -1, + -1, -1, -1, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, -1, -1, 163, -1, -1, -1, 167, + 141, 142, 143, 144, 145, -1, -1, -1, -1, -1, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + -1, -1, 163, -1, -1, -1, 167, 141, 142, 143, + 144, 145, -1, -1, -1, -1, -1, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, -1, -1, 163, + -1, -1, -1, 167, 141, 142, 143, 144, 145, -1, + -1, -1, -1, -1, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, -1, -1, 163, -1, -1, -1, + 167, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163, -1, -1, 139, 167, 141, 142, + 143, 144, 145, -1, -1, -1, -1, -1, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, -1, -1, + 163, 141, 142, 143, 144, 145, -1, -1, -1, -1, + -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, -1, -1, 163 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.28. */ +#line 3 "/usr/local/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -2592,66 +2570,46 @@ static const short yycheck[] = { 7, You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ +#ifndef alloca #ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include <alloca.h> #else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ +#if defined (MSDOS) && !defined (__TURBOC__) #include <malloc.h> -#endif #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include <malloc.h> */ +#include <malloc.h> #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca +#else /* not MSDOS, __TURBOC__, or _AIX */ +#ifdef __hpux +#ifdef __cplusplus +extern "C" { +void *alloca (unsigned int); +}; +#else /* not __cplusplus */ +void *alloca (); +#endif /* not __cplusplus */ #endif /* __hpux */ -#endif #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ +#endif /* not sparc. */ +#endif /* not GNU C. */ +#endif /* alloca not defined. */ -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action @@ -2661,8 +2619,8 @@ static const short yycheck[] = { 7, #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab +#define YYACCEPT return(0) +#define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the @@ -2743,12 +2701,12 @@ int yydebug; /* nonzero means print parse trace */ #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif - -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +int yyparse (void); +#endif + #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ @@ -2760,7 +2718,7 @@ static void __yy_memcpy (to, from, count) char *to; char *from; - unsigned int count; + int count; { register char *f = from; register char *t = to; @@ -2775,10 +2733,10 @@ __yy_memcpy (to, from, count) /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void -__yy_memcpy (char *to, char *from, unsigned int count) +__yy_memcpy (char *to, char *from, int count) { - register char *t = to; register char *f = from; + register char *t = to; register int i = count; while (i-- > 0) @@ -2788,7 +2746,7 @@ __yy_memcpy (char *to, char *from, unsigned int count) #endif #endif -#line 217 "/usr/lib/bison.simple" +#line 196 "/usr/local/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -2809,15 +2767,6 @@ __yy_memcpy (char *to, char *from, unsigned int count) #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL @@ -2846,7 +2795,6 @@ yyparse(YYPARSE_PARAM_ARG) #endif int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; #ifdef YYPURE int yychar; @@ -2931,32 +2879,18 @@ yynewstate: if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); + yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); + yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); + yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ @@ -3426,179 +3360,171 @@ case 65: break;} case 66: #line 382 "Gmsh.y" -{ return 1; ; - break;} -case 67: -#line 383 "Gmsh.y" -{ return 1; ; - break;} -case 68: -#line 384 "Gmsh.y" { yyerrok; return 1;; break;} -case 69: -#line 389 "Gmsh.y" +case 67: +#line 387 "Gmsh.y" { Msg(PARSER_INFO, yyvsp[-4].c, yyvsp[-2].d); ; break;} -case 70: -#line 400 "Gmsh.y" +case 68: +#line 398 "Gmsh.y" { EndView(1, Force_ViewNumber,yyname,yyvsp[-4].c,0.,0.,0.); ; break;} -case 71: -#line 404 "Gmsh.y" +case 69: +#line 402 "Gmsh.y" { EndView(1, Force_ViewNumber,yyname,yyvsp[-6].c,yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2]); ; break;} -case 72: -#line 411 "Gmsh.y" +case 70: +#line 409 "Gmsh.y" { BeginView(1); ; break;} -case 85: -#line 430 "Gmsh.y" +case 83: +#line 428 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[0].d) ; ; break;} -case 86: -#line 432 "Gmsh.y" +case 84: +#line 430 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[0].d) ; ; break;} -case 87: -#line 437 "Gmsh.y" +case 85: +#line 435 "Gmsh.y" { List_Add(ActualView->SP, &yyvsp[-5].d); List_Add(ActualView->SP, &yyvsp[-3].d); List_Add(ActualView->SP, &yyvsp[-1].d); ; break;} -case 88: -#line 442 "Gmsh.y" +case 86: +#line 440 "Gmsh.y" { ActualView->NbSP++ ; ; break;} -case 89: -#line 449 "Gmsh.y" +case 87: +#line 447 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[0].d) ; ; break;} -case 90: -#line 451 "Gmsh.y" +case 88: +#line 449 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[0].d) ; ; break;} -case 91: -#line 456 "Gmsh.y" +case 89: +#line 454 "Gmsh.y" { List_Add(ActualView->VP, &yyvsp[-5].d); List_Add(ActualView->VP, &yyvsp[-3].d); List_Add(ActualView->VP, &yyvsp[-1].d); ; break;} -case 92: -#line 461 "Gmsh.y" +case 90: +#line 459 "Gmsh.y" { ActualView->NbVP++ ; ; break;} -case 93: -#line 468 "Gmsh.y" +case 91: +#line 466 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[0].d) ; ; break;} -case 94: -#line 470 "Gmsh.y" +case 92: +#line 468 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[0].d) ; ; break;} -case 95: -#line 475 "Gmsh.y" +case 93: +#line 473 "Gmsh.y" { List_Add(ActualView->TP, &yyvsp[-5].d); List_Add(ActualView->TP, &yyvsp[-3].d); List_Add(ActualView->TP, &yyvsp[-1].d); ; break;} -case 96: -#line 480 "Gmsh.y" +case 94: +#line 478 "Gmsh.y" { ActualView->NbTP++ ; ; break;} -case 97: -#line 487 "Gmsh.y" +case 95: +#line 485 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[0].d) ; ; break;} -case 98: -#line 489 "Gmsh.y" +case 96: +#line 487 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[0].d) ; ; break;} -case 99: -#line 495 "Gmsh.y" +case 97: +#line 493 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d); List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d); List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d); ; break;} -case 100: -#line 501 "Gmsh.y" +case 98: +#line 499 "Gmsh.y" { ActualView->NbSL++ ; ; break;} -case 101: -#line 508 "Gmsh.y" +case 99: +#line 506 "Gmsh.y" { List_Add(ActualView->VL, &yyvsp[0].d) ; ; break;} -case 102: -#line 510 "Gmsh.y" +case 100: +#line 508 "Gmsh.y" { List_Add(ActualView->VL, &yyvsp[0].d) ; ; break;} -case 103: -#line 516 "Gmsh.y" +case 101: +#line 514 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d); List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d); List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d); ; break;} -case 104: -#line 522 "Gmsh.y" +case 102: +#line 520 "Gmsh.y" { ActualView->NbVL++ ; ; break;} -case 105: -#line 529 "Gmsh.y" +case 103: +#line 527 "Gmsh.y" { List_Add(ActualView->TL, &yyvsp[0].d) ; ; break;} -case 106: -#line 531 "Gmsh.y" +case 104: +#line 529 "Gmsh.y" { List_Add(ActualView->TL, &yyvsp[0].d) ; ; break;} -case 107: -#line 537 "Gmsh.y" +case 105: +#line 535 "Gmsh.y" { List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d); List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d); List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d); ; break;} -case 108: -#line 543 "Gmsh.y" +case 106: +#line 541 "Gmsh.y" { ActualView->NbTL++ ; ; break;} -case 109: -#line 550 "Gmsh.y" +case 107: +#line 548 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[0].d) ; ; break;} -case 110: -#line 552 "Gmsh.y" +case 108: +#line 550 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[0].d) ; ; break;} -case 111: -#line 559 "Gmsh.y" +case 109: +#line 557 "Gmsh.y" { List_Add(ActualView->ST, &yyvsp[-17].d); List_Add(ActualView->ST, &yyvsp[-11].d); List_Add(ActualView->ST, &yyvsp[-5].d); @@ -3608,22 +3534,22 @@ case 111: List_Add(ActualView->ST, &yyvsp[-1].d); ; break;} -case 112: -#line 568 "Gmsh.y" +case 110: +#line 566 "Gmsh.y" { ActualView->NbST++ ; ; break;} -case 113: -#line 575 "Gmsh.y" +case 111: +#line 573 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[0].d) ; ; break;} -case 114: -#line 577 "Gmsh.y" +case 112: +#line 575 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[0].d) ; ; break;} -case 115: -#line 584 "Gmsh.y" +case 113: +#line 582 "Gmsh.y" { List_Add(ActualView->VT, &yyvsp[-17].d); List_Add(ActualView->VT, &yyvsp[-11].d); List_Add(ActualView->VT, &yyvsp[-5].d); @@ -3633,22 +3559,22 @@ case 115: List_Add(ActualView->VT, &yyvsp[-1].d); ; break;} -case 116: -#line 593 "Gmsh.y" +case 114: +#line 591 "Gmsh.y" { ActualView->NbVT++ ; ; break;} -case 117: -#line 600 "Gmsh.y" +case 115: +#line 598 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[0].d) ; ; break;} -case 118: -#line 602 "Gmsh.y" +case 116: +#line 600 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[0].d) ; ; break;} -case 119: -#line 609 "Gmsh.y" +case 117: +#line 607 "Gmsh.y" { List_Add(ActualView->TT, &yyvsp[-17].d); List_Add(ActualView->TT, &yyvsp[-11].d); List_Add(ActualView->TT, &yyvsp[-5].d); @@ -3658,22 +3584,22 @@ case 119: List_Add(ActualView->TT, &yyvsp[-1].d); ; break;} -case 120: -#line 618 "Gmsh.y" +case 118: +#line 616 "Gmsh.y" { ActualView->NbTT++ ; ; break;} -case 121: -#line 625 "Gmsh.y" +case 119: +#line 623 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[0].d) ; ; break;} -case 122: -#line 627 "Gmsh.y" +case 120: +#line 625 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[0].d) ; ; break;} -case 123: -#line 635 "Gmsh.y" +case 121: +#line 633 "Gmsh.y" { List_Add(ActualView->SS, &yyvsp[-23].d); List_Add(ActualView->SS, &yyvsp[-17].d); List_Add(ActualView->SS, &yyvsp[-11].d); List_Add(ActualView->SS, &yyvsp[-5].d); @@ -3683,22 +3609,22 @@ case 123: List_Add(ActualView->SS, &yyvsp[-7].d); List_Add(ActualView->SS, &yyvsp[-1].d); ; break;} -case 124: -#line 644 "Gmsh.y" +case 122: +#line 642 "Gmsh.y" { ActualView->NbSS++ ; ; break;} -case 125: -#line 651 "Gmsh.y" +case 123: +#line 649 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[0].d) ; ; break;} -case 126: -#line 653 "Gmsh.y" +case 124: +#line 651 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[0].d) ; ; break;} -case 127: -#line 661 "Gmsh.y" +case 125: +#line 659 "Gmsh.y" { List_Add(ActualView->VS, &yyvsp[-23].d); List_Add(ActualView->VS, &yyvsp[-17].d); List_Add(ActualView->VS, &yyvsp[-11].d); List_Add(ActualView->VS, &yyvsp[-5].d); @@ -3708,22 +3634,22 @@ case 127: List_Add(ActualView->VS, &yyvsp[-7].d); List_Add(ActualView->VS, &yyvsp[-1].d); ; break;} -case 128: -#line 670 "Gmsh.y" +case 126: +#line 668 "Gmsh.y" { ActualView->NbVS++ ; ; break;} -case 129: -#line 677 "Gmsh.y" +case 127: +#line 675 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[0].d) ; ; break;} -case 130: -#line 679 "Gmsh.y" +case 128: +#line 677 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[0].d) ; ; break;} -case 131: -#line 687 "Gmsh.y" +case 129: +#line 685 "Gmsh.y" { List_Add(ActualView->TS, &yyvsp[-23].d); List_Add(ActualView->TS, &yyvsp[-17].d); List_Add(ActualView->TS, &yyvsp[-11].d); List_Add(ActualView->TS, &yyvsp[-5].d); @@ -3733,22 +3659,22 @@ case 131: List_Add(ActualView->TS, &yyvsp[-7].d); List_Add(ActualView->TS, &yyvsp[-1].d); ; break;} -case 132: -#line 696 "Gmsh.y" +case 130: +#line 694 "Gmsh.y" { ActualView->NbTS++ ; ; break;} -case 133: -#line 709 "Gmsh.y" +case 131: +#line 710 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c; TheSymbol.val = yyvsp[-1].d; List_Replace(Symbol_L,&TheSymbol,CompareSymbols); ; break;} -case 134: -#line 715 "Gmsh.y" +case 132: +#line 716 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3757,8 +3683,8 @@ case 134: pSymbol->val += 1. ; ; break;} -case 135: -#line 723 "Gmsh.y" +case 133: +#line 724 "Gmsh.y" { TheSymbol.Name = yyvsp[-2].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3767,8 +3693,8 @@ case 135: pSymbol->val -= 1. ; ; break;} -case 136: -#line 731 "Gmsh.y" +case 134: +#line 732 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3777,8 +3703,8 @@ case 136: pSymbol->val += yyvsp[-1].d ; ; break;} -case 137: -#line 739 "Gmsh.y" +case 135: +#line 740 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3787,8 +3713,8 @@ case 137: pSymbol->val -= yyvsp[-1].d ; ; break;} -case 138: -#line 747 "Gmsh.y" +case 136: +#line 748 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3797,8 +3723,8 @@ case 138: pSymbol->val *= yyvsp[-1].d ; ; break;} -case 139: -#line 755 "Gmsh.y" +case 137: +#line 756 "Gmsh.y" { TheSymbol.Name = yyvsp[-3].c ; if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) @@ -3807,478 +3733,981 @@ case 139: pSymbol->val /= yyvsp[-1].d ; ; break;} -case 140: -#line 774 "Gmsh.y" -{ - Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]); - yyval.s.Type = MSH_POINT; - yyval.s.Num = (int)yyvsp[-4].d; +case 138: +#line 767 "Gmsh.y" +{ + if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown String Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pStrOpt = Get_StringOption(yyvsp[-3].c, pStrCat))) + vyyerror("Unknown String Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + else{ + *pStrOpt = yyvsp[-1].c ; + } + } ; break;} -case 141: -#line 781 "Gmsh.y" +case 139: +#line 780 "Gmsh.y" { - Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_PHYSICAL_POINT; - yyval.s.Num = (int)yyvsp[-4].d; + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pStrOpt = Get_StringViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown String Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + *pStrOpt = yyvsp[-1].c ; + } + } ; break;} -case 142: -#line 787 "Gmsh.y" +case 140: +#line 798 "Gmsh.y" { - Vertex *v; - Attractor *a; - double p; - int ip; - for(int i=0;i<List_Nbr(yyvsp[-9].l);i++){ - List_Read(yyvsp[-9].l,i,&p); - ip = (int)p; - v = FindVertex(ip,THEM); - if(!v) - vyyerror("Unkown Point %d", ip); + if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); else{ - a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, - yyvsp[-6].d,yyvsp[-4].d,yyvsp[-2].d,v,NULL,NULL); - List_Add(THEM->Metric->Attractors,&a); - } + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt = yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt = (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt = (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt = (int)yyvsp[-1].d ; break ; + } + } + } + ; + break;} +case 141: +#line 815 "Gmsh.y" +{ + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt = yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt = (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt = (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt = (int)yyvsp[-1].d ; break ; + } + } + } + ; + break;} +case 142: +#line 836 "Gmsh.y" +{ + if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt += (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt += (int)yyvsp[-1].d ; break ; + } + } } ; break;} case 143: -#line 806 "Gmsh.y" +#line 853 "Gmsh.y" { - for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ - List_Read(yyvsp[-3].l,i,&d); - Vertex *v = FindVertex((int)d,THEM); - if(!v) - vyyerror("Unkown Point %d", (int)d); - else - v->lc = yyvsp[-1].d; + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt += (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt += (int)yyvsp[-1].d ; break ; + } + } } ; break;} case 144: -#line 817 "Gmsh.y" +#line 874 "Gmsh.y" { - yyval.s.Type = MSH_POINT; - yyval.s.Num = (int)yyvsp[-2].d; + if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt -= (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt -= (int)yyvsp[-1].d ; break ; + } + } + } ; break;} case 145: -#line 825 "Gmsh.y" +#line 891 "Gmsh.y" { - Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - yyval.s.Type = MSH_SEGM_LINE; - yyval.s.Num = (int)yyvsp[-4].d; + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt -= (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt -= (int)yyvsp[-1].d ; break ; + } + } + } ; break;} case 146: -#line 831 "Gmsh.y" +#line 912 "Gmsh.y" { - Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - yyval.s.Type = MSH_SEGM_SPLN; - yyval.s.Num = (int)yyvsp[-4].d; + if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt *= yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt *= (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt *= (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt *= (int)yyvsp[-1].d ; break ; + } + } + } ; break;} case 147: -#line 837 "Gmsh.y" +#line 929 "Gmsh.y" { - Curve *c; - Attractor *a; - double p; - int ip; - for(int i=0;i<List_Nbr(yyvsp[-9].l);i++){ - List_Read(yyvsp[-9].l,i,&p); - ip = (int)p; - c = FindCurve(ip,THEM); - if(!c) - vyyerror("Unkown Curve %d", ip); + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } else{ - a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, - yyvsp[-6].d,yyvsp[-4].d,yyvsp[-2].d,NULL,c,NULL); - List_Add(THEM->Metric->Attractors,&a); - } + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt *= yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt *= (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt *= (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt *= (int)yyvsp[-1].d ; break ; + } + } } ; break;} case 148: -#line 856 "Gmsh.y" +#line 950 "Gmsh.y" { - Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - yyval.s.Type = MSH_SEGM_CIRC ; - yyval.s.Num = (int)yyvsp[-4].d; + if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt /= yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt /= (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt /= (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt /= (int)yyvsp[-1].d ; break ; + } + } + } ; break;} case 149: -#line 862 "Gmsh.y" +#line 967 "Gmsh.y" { - List_T *temp; - int i,j; - double d; - temp = List_Create(List_Nbr(yyvsp[-3].l),1,sizeof(int)); - for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ - List_Read(yyvsp[-3].l,i,&d); - j = (int)d; - List_Add(temp,&j); + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt /= yyvsp[-1].d ; break ; + case GMSH_FLOAT : *(float*)pNumOpt /= (float)yyvsp[-1].d ; break ; + case GMSH_LONG : *(long*)pNumOpt /= (long)yyvsp[-1].d ; break ; + case GMSH_INT : *(int*)pNumOpt /= (int)yyvsp[-1].d ; break ; + } + } } - AddCircleInDataBase ((int) yyvsp[-6].d, MSH_SEGM_CIRC, temp, yyvsp[-1].v); - List_Delete(temp); - yyval.s.Type = MSH_SEGM_CIRC ; - yyval.s.Num = (int)yyvsp[-6].d; ; break;} case 150: -#line 879 "Gmsh.y" +#line 988 "Gmsh.y" { - Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c); - yyval.s.Type = MSH_SEGM_PARAMETRIC ; - yyval.s.Num = (int)yyvsp[-14].d; + if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) + vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c); + else{ + if(!(pNumOpt = Get_NumberOption(yyvsp[-2].c, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-4].c, yyvsp[-2].c); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; + case GMSH_INT : *(int*)pNumOpt += 1 ; break ; + } + } + } ; break;} case 151: -#line 885 "Gmsh.y" +#line 1005 "Gmsh.y" { - Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - yyval.s.Type = MSH_SEGM_ELLI ; - yyval.s.Num = (int)yyvsp[-4].d; + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; + case GMSH_INT : *(int*)pNumOpt += 1 ; break ; + } + } + } ; break;} case 152: -#line 891 "Gmsh.y" -{ - Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_PHYSICAL_LINE; - yyval.s.Num = (int)yyvsp[-4].d; - ; - break;} -case 153: -#line 897 "Gmsh.y" +#line 1026 "Gmsh.y" { - yyval.s.Type = MSH_SEGM_LOOP; - Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Num = (int)yyvsp[-4].d; + if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) + vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c); + else{ + if(!(pNumOpt = Get_NumberOption(yyvsp[-2].c, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-4].c, yyvsp[-2].c); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; + case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; + } + } + } + ; + break;} +case 153: +#line 1043 "Gmsh.y" +{ + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; + case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; + } + } + } ; break;} case 154: -#line 903 "Gmsh.y" +#line 1066 "Gmsh.y" { - Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - yyval.s.Type = MSH_SEGM_BSPLN; - yyval.s.Num = (int)yyvsp[-4].d; + if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i))) + vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] = yyvsp[-1].v[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] = (float)yyvsp[-1].v[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] = (long)yyvsp[-1].v[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] = (int)yyvsp[-1].v[j] ; + break ; + } + } + } ; break;} case 155: -#line 909 "Gmsh.y" +#line 1091 "Gmsh.y" { - List_T *Temp; - int i; - double d; - if((int)yyvsp[-1].d + 1 + List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-3].l)){ - vyyerror("Wrong Definition of Nurbs Curve %d: " - "[Degree]%d + 1 + [NbPts]%d != [NbKnots]%d", - (int)yyvsp[-8].d, (int)yyvsp[-1].d, List_Nbr(yyvsp[-5].l), List_Nbr(yyvsp[-3].l)); - } - Temp = List_Create(List_Nbr(yyvsp[-5].l),1,sizeof(int)); - for(i=0;i<List_Nbr(yyvsp[-5].l);i++) { - List_Read(yyvsp[-5].l,i,&d); - j = (int)d; - List_Add(Temp,&j); + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Array Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] = yyvsp[-1].v[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] = (float)yyvsp[-1].v[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] = (long)yyvsp[-1].v[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] = (int)yyvsp[-1].v[j] ; + break ; + } + } } - AddCurveInDataBase ((int)yyvsp[-8].d,MSH_SEGM_NURBS,(int)yyvsp[-1].d,Temp,yyvsp[-3].l,-1,-1,0.,1.); - List_Delete(Temp); ; break;} case 156: -#line 928 "Gmsh.y" +#line 1120 "Gmsh.y" { - yyval.s.Num = (int)yyvsp[-2].d; - Curve *c = FindCurve(yyval.s.Num,THEM); - if(!c) - vyyerror("Unkown Curve %d", yyval.s.Num); - else - yyval.s.Type = c->Typ; + if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); + else{ + if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i))) + vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] += yyvsp[-1].v[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] += (float)yyvsp[-1].v[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] += (long)yyvsp[-1].v[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] += (int)yyvsp[-1].v[j] ; + break ; + } + } + } ; break;} case 157: -#line 940 "Gmsh.y" +#line 1145 "Gmsh.y" { - Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_SURF_PLAN; - yyval.s.Num = (int)yyvsp[-4].d; + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + else{ + if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Array Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] += yyvsp[-1].v[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] += (float)yyvsp[-1].v[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] += (long)yyvsp[-1].v[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] += (int)yyvsp[-1].v[j] ; + break ; + } + } + } ; break;} case 158: -#line 946 "Gmsh.y" +#line 1174 "Gmsh.y" { - Surface *s,*support; - support = FindSurface((int)yyvsp[-2].d,THEM); - if(!support) - vyyerror("Unkown Surface %d", (int)yyvsp[-2].d); + if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) + vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); else{ - Cdbz101((int)yyvsp[-5].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - s = FindSurface((int)yyvsp[-5].d,THEM); - if(!s) - vyyerror("Unkown Surface %d", (int)yyvsp[-5].d); + if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i))) + vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); else{ - s->Typ = MSH_SURF_TRIMMED; - s->Support = support; - yyval.s.Type = MSH_SURF_TRIMMED; - yyval.s.Num = (int)yyvsp[-5].d; + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] -= yyvsp[-1].v[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] -= (float)yyvsp[-1].v[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] -= (long)yyvsp[-1].v[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] -= (int)yyvsp[-1].v[j] ; + break ; + } } } ; break;} case 159: -#line 965 "Gmsh.y" +#line 1199 "Gmsh.y" { - List_Read(yyvsp[-1].l,0,&d); - i = (int)d; - EdgeLoop *el = FindEdgeLoop(i,THEM); - if(!el) - vyyerror("Unkown Loop %d", i); + if(strcmp(yyvsp[-10].c, "Post")) + vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); else{ - j = List_Nbr(el->Curves); - if(j==4) - yyval.s.Type = MSH_SURF_REGL; - else if(j==3) - yyval.s.Type = MSH_SURF_TRIC; - else - vyyerror("Wrong Definition of Ruled Surface %d: " - "%d Borders Instead of 3 or 4", - (int)yyvsp[-4].d, j); - Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Num = (int)yyvsp[-4].d; + if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); + else vyyerror("Unknown Array Option '%s.View[%d].%s'", + yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); + } + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] -= yyvsp[-1].v[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] -= (float)yyvsp[-1].v[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] -= (long)yyvsp[-1].v[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] -= (int)yyvsp[-1].v[j] ; + break ; + } + } } ; break;} case 160: -#line 988 "Gmsh.y" +#line 1230 "Gmsh.y" { - CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); - yyval.s.Type = MSH_SURF_NURBS; - yyval.s.Num = (int)yyvsp[-16].d; + if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c))) + vyyerror("Unknown Color Option Class '%s'", yyvsp[-7].c); + else{ + if(!(pColOpt = Get_ColorOption(yyvsp[-3].c, pColCat))) + vyyerror("Unknown Color Option '%s.%s'", yyvsp[-7].c, yyvsp[-3].c); + else{ + *pColOpt = yyvsp[-1].u ; + } + } ; break;} case 161: -#line 996 "Gmsh.y" +#line 1254 "Gmsh.y" { - CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); + Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]); + yyval.s.Type = MSH_POINT; + yyval.s.Num = (int)yyvsp[-4].d; ; break;} case 162: -#line 1000 "Gmsh.y" +#line 1261 "Gmsh.y" { - Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_PHYSICAL_SURFACE; + Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_PHYSICAL_POINT; yyval.s.Num = (int)yyvsp[-4].d; ; break;} case 163: -#line 1006 "Gmsh.y" -{ - Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_SURF_LOOP; - yyval.s.Num = (int)yyvsp[-4].d; - ; - break;} -case 164: -#line 1012 "Gmsh.y" +#line 1267 "Gmsh.y" { - yyval.s.Num = (int)yyvsp[-2].d; - Surface *s = FindSurface(yyval.s.Num,THEM); - if(!s) - vyyerror("Unknown Surface %d", yyval.s.Num); - else - yyval.s.Type = s->Typ; - ; + Vertex *v; + Attractor *a; + double p; + int ip; + for(int i=0;i<List_Nbr(yyvsp[-9].l);i++){ + List_Read(yyvsp[-9].l,i,&p); + ip = (int)p; + v = FindVertex(ip,THEM); + if(!v) + vyyerror("Unkown Point %d", ip); + else{ + a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, + yyvsp[-6].d,yyvsp[-4].d,yyvsp[-2].d,v,NULL,NULL); + List_Add(THEM->Metric->Attractors,&a); + } + } + ; + break;} +case 164: +#line 1286 "Gmsh.y" +{ + for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ + List_Read(yyvsp[-3].l,i,&d); + Vertex *v = FindVertex((int)d,THEM); + if(!v) + vyyerror("Unkown Point %d", (int)d); + else + v->lc = yyvsp[-1].d; + } + ; break;} case 165: -#line 1024 "Gmsh.y" +#line 1297 "Gmsh.y" { - Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_VOLUME; - yyval.s.Num = (int)yyvsp[-4].d; + yyval.s.Type = MSH_POINT; + yyval.s.Num = (int)yyvsp[-2].d; ; break;} case 166: -#line 1030 "Gmsh.y" +#line 1305 "Gmsh.y" { - Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_VOLUME; + Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + yyval.s.Type = MSH_SEGM_LINE; yyval.s.Num = (int)yyvsp[-4].d; ; break;} case 167: -#line 1036 "Gmsh.y" +#line 1311 "Gmsh.y" { - Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); - yyval.s.Type = MSH_PHYSICAL_VOLUME; + Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + yyval.s.Type = MSH_SEGM_SPLN; yyval.s.Num = (int)yyvsp[-4].d; ; break;} case 168: -#line 1049 "Gmsh.y" +#line 1317 "Gmsh.y" { - TranslateShapes (yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-1].l,1); - yyval.l = yyvsp[-1].l; + Curve *c; + Attractor *a; + double p; + int ip; + for(int i=0;i<List_Nbr(yyvsp[-9].l);i++){ + List_Read(yyvsp[-9].l,i,&p); + ip = (int)p; + c = FindCurve(ip,THEM); + if(!c) + vyyerror("Unkown Curve %d", ip); + else{ + a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, + yyvsp[-6].d,yyvsp[-4].d,yyvsp[-2].d,NULL,c,NULL); + List_Add(THEM->Metric->Attractors,&a); + } + } ; break;} case 169: -#line 1054 "Gmsh.y" +#line 1336 "Gmsh.y" { - RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l); - yyval.l = yyvsp[-1].l; + Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + yyval.s.Type = MSH_SEGM_CIRC ; + yyval.s.Num = (int)yyvsp[-4].d; ; break;} case 170: -#line 1059 "Gmsh.y" +#line 1342 "Gmsh.y" { - SymmetryShapes(yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-3].v[3],yyvsp[-1].l,1); - yyval.l = yyvsp[-1].l; + List_T *temp; + int i,j; + double d; + temp = List_Create(List_Nbr(yyvsp[-3].l),1,sizeof(int)); + for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ + List_Read(yyvsp[-3].l,i,&d); + j = (int)d; + List_Add(temp,&j); + } + AddCircleInDataBase ((int) yyvsp[-6].d, MSH_SEGM_CIRC, temp, yyvsp[-1].v); + List_Delete(temp); + yyval.s.Type = MSH_SEGM_CIRC ; + yyval.s.Num = (int)yyvsp[-6].d; ; break;} case 171: -#line 1064 "Gmsh.y" +#line 1359 "Gmsh.y" { - DilatShapes(yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l,1); - yyval.l = yyvsp[-1].l; + Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c); + yyval.s.Type = MSH_SEGM_PARAMETRIC ; + yyval.s.Num = (int)yyvsp[-14].d; ; break;} case 172: -#line 1071 "Gmsh.y" -{ yyval.l = yyvsp[0].l; ; +#line 1365 "Gmsh.y" +{ + Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + yyval.s.Type = MSH_SEGM_ELLI ; + yyval.s.Num = (int)yyvsp[-4].d; + ; break;} case 173: -#line 1072 "Gmsh.y" -{ yyval.l = yyvsp[0].l; ; +#line 1371 "Gmsh.y" +{ + Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_PHYSICAL_LINE; + yyval.s.Num = (int)yyvsp[-4].d; + ; break;} case 174: -#line 1073 "Gmsh.y" -{ yyval.l = yyvsp[0].l; ; +#line 1377 "Gmsh.y" +{ + yyval.s.Type = MSH_SEGM_LOOP; + Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Num = (int)yyvsp[-4].d; + ; break;} case 175: -#line 1078 "Gmsh.y" +#line 1383 "Gmsh.y" { - yyval.l = List_Create(3,3,sizeof(Shape)); + Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + yyval.s.Type = MSH_SEGM_BSPLN; + yyval.s.Num = (int)yyvsp[-4].d; ; break;} case 176: -#line 1082 "Gmsh.y" +#line 1389 "Gmsh.y" { - List_Add(yyval.l,&yyvsp[0].s); - yyval.l = yyvsp[-1].l; + List_T *Temp; + int i; + double d; + if((int)yyvsp[-1].d + 1 + List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-3].l)){ + vyyerror("Wrong Definition of Nurbs Curve %d: " + "[Degree]%d + 1 + [NbPts]%d != [NbKnots]%d", + (int)yyvsp[-8].d, (int)yyvsp[-1].d, List_Nbr(yyvsp[-5].l), List_Nbr(yyvsp[-3].l)); + } + Temp = List_Create(List_Nbr(yyvsp[-5].l),1,sizeof(int)); + for(i=0;i<List_Nbr(yyvsp[-5].l);i++) { + List_Read(yyvsp[-5].l,i,&d); + j = (int)d; + List_Add(Temp,&j); + } + AddCurveInDataBase ((int)yyvsp[-8].d,MSH_SEGM_NURBS,(int)yyvsp[-1].d,Temp,yyvsp[-3].l,-1,-1,0.,1.); + List_Delete(Temp); ; break;} case 177: -#line 1094 "Gmsh.y" +#line 1408 "Gmsh.y" { - yyval.l = List_Create(3,3,sizeof(Shape)); - for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ - List_Read (yyvsp[-1].l,i,&TheShape); - CopyShape(TheShape.Type,TheShape.Num,&j); - TheShape.Num = j; - List_Add(yyval.l,&TheShape); - } + yyval.s.Num = (int)yyvsp[-2].d; + Curve *c = FindCurve(yyval.s.Num,THEM); + if(!c) + vyyerror("Unkown Curve %d", yyval.s.Num); + else + yyval.s.Type = c->Typ; ; break;} case 178: -#line 1112 "Gmsh.y" +#line 1420 "Gmsh.y" { - for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ - List_Read (yyvsp[-1].l,i,&TheShape); - DeleteShape(TheShape.Type,TheShape.Num); - } + Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_SURF_PLAN; + yyval.s.Num = (int)yyvsp[-4].d; ; break;} case 179: -#line 1127 "Gmsh.y" +#line 1426 "Gmsh.y" { - yyinTab[RecursionLevel++] = yyin; - strcpy(tmpstring, ThePathForIncludes); - if((yyin = fopen(strcat(tmpstring,yyvsp[-1].c),"r"))){ - strcpy(yynameTab[RecursionLevel-1],yyname); - yylinenoTab[RecursionLevel-1]=yylineno; - yylineno=1; - strcpy(yyname,yyvsp[-1].c); - while(!feof(yyin)){ - yyparse(); - } - fclose(yyin); - yyin = yyinTab[--RecursionLevel]; - strcpy(yyname,yynameTab[RecursionLevel]); - yylineno = yylinenoTab[RecursionLevel]; - } + Surface *s,*support; + support = FindSurface((int)yyvsp[-2].d,THEM); + if(!support) + vyyerror("Unkown Surface %d", (int)yyvsp[-2].d); else{ - vyyerror("Unknown File '%s'", yyvsp[-1].c) ; - yyin = yyinTab[--RecursionLevel]; + Cdbz101((int)yyvsp[-5].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + s = FindSurface((int)yyvsp[-5].d,THEM); + if(!s) + vyyerror("Unkown Surface %d", (int)yyvsp[-5].d); + else{ + s->Typ = MSH_SURF_TRIMMED; + s->Support = support; + yyval.s.Type = MSH_SURF_TRIMMED; + yyval.s.Num = (int)yyvsp[-5].d; + } } ; break;} case 180: -#line 1155 "Gmsh.y" +#line 1445 "Gmsh.y" { - char ext[6]; - strcpy(ext,yyvsp[-1].c+(strlen(yyvsp[-1].c)-4)); - Replot(); - extern void CreateImage (FILE *fp); - FILE *fp = 0; - if(!strcmp(ext,".gif")) - { - fp = fopen(yyvsp[-1].c,"wb"); - CTX.print.type = PRINT_GL2GIF; - } - else if(!strcmp(ext,".eps")) - { - fp = fopen(yyvsp[-1].c,"w"); - CTX.print.type = PRINT_GL2PS_RECURSIVE; - } - else if(!strcmp(ext,".xpm")) - { - fp = fopen(yyvsp[-1].c,"wb"); - CTX.print.type = PRINT_XDUMP; - CTX.print.format = FORMAT_XPM; - } - - if(fp) - { - CreateImage(fp); - fclose(fp); - } - ; + List_Read(yyvsp[-1].l,0,&d); + i = (int)d; + EdgeLoop *el = FindEdgeLoop(i,THEM); + if(!el) + vyyerror("Unkown Loop %d", i); + else{ + j = List_Nbr(el->Curves); + if(j==4) + yyval.s.Type = MSH_SURF_REGL; + else if(j==3) + yyval.s.Type = MSH_SURF_TRIC; + else + vyyerror("Wrong Definition of Ruled Surface %d: " + "%d Borders Instead of 3 or 4", + (int)yyvsp[-4].d, j); + Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Num = (int)yyvsp[-4].d; + } + ; break;} case 181: -#line 1185 "Gmsh.y" +#line 1468 "Gmsh.y" { - exit(0); - ; + CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); + yyval.s.Type = MSH_SURF_NURBS; + yyval.s.Num = (int)yyvsp[-16].d; + ; break;} case 182: -#line 1189 "Gmsh.y" +#line 1476 "Gmsh.y" { - FILE *ff = yyin; - MergeProblem(yyvsp[-1].c); - yyin = ff; - ; + CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l); + ; break;} case 183: -#line 1203 "Gmsh.y" +#line 1480 "Gmsh.y" { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = (int)yyvsp[-3].d ; - LoopControlVariablesTab[ImbricatedLoop][1] = (int)yyvsp[-1].d ; - LoopControlVariablesTab[ImbricatedLoop][2] = 1 ; - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - ; + Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_PHYSICAL_SURFACE; + yyval.s.Num = (int)yyvsp[-4].d; + ; break;} case 184: -#line 1216 "Gmsh.y" +#line 1486 "Gmsh.y" { - FILE* ff; + Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_SURF_LOOP; + yyval.s.Num = (int)yyvsp[-4].d; + ; + break;} +case 185: +#line 1492 "Gmsh.y" +{ + yyval.s.Num = (int)yyvsp[-2].d; + Surface *s = FindSurface(yyval.s.Num,THEM); + if(!s) + vyyerror("Unknown Surface %d", yyval.s.Num); + else + yyval.s.Type = s->Typ; + ; + break;} +case 186: +#line 1504 "Gmsh.y" +{ + Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_VOLUME; + yyval.s.Num = (int)yyvsp[-4].d; + ; + break;} +case 187: +#line 1510 "Gmsh.y" +{ + Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_VOLUME; + yyval.s.Num = (int)yyvsp[-4].d; + ; + break;} +case 188: +#line 1516 "Gmsh.y" +{ + Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL); + yyval.s.Type = MSH_PHYSICAL_VOLUME; + yyval.s.Num = (int)yyvsp[-4].d; + ; + break;} +case 189: +#line 1529 "Gmsh.y" +{ + TranslateShapes (yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-1].l,1); + yyval.l = yyvsp[-1].l; + ; + break;} +case 190: +#line 1534 "Gmsh.y" +{ + RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l); + yyval.l = yyvsp[-1].l; + ; + break;} +case 191: +#line 1539 "Gmsh.y" +{ + SymmetryShapes(yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-3].v[3],yyvsp[-1].l,1); + yyval.l = yyvsp[-1].l; + ; + break;} +case 192: +#line 1544 "Gmsh.y" +{ + DilatShapes(yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l,1); + yyval.l = yyvsp[-1].l; + ; + break;} +case 193: +#line 1551 "Gmsh.y" +{ yyval.l = yyvsp[0].l; ; + break;} +case 194: +#line 1552 "Gmsh.y" +{ yyval.l = yyvsp[0].l; ; + break;} +case 195: +#line 1553 "Gmsh.y" +{ yyval.l = yyvsp[0].l; ; + break;} +case 196: +#line 1558 "Gmsh.y" +{ + yyval.l = List_Create(3,3,sizeof(Shape)); + ; + break;} +case 197: +#line 1562 "Gmsh.y" +{ + List_Add(yyval.l,&yyvsp[0].s); + yyval.l = yyvsp[-1].l; + ; + break;} +case 198: +#line 1574 "Gmsh.y" +{ + yyval.l = List_Create(3,3,sizeof(Shape)); + for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ + List_Read (yyvsp[-1].l,i,&TheShape); + CopyShape(TheShape.Type,TheShape.Num,&j); + TheShape.Num = j; + List_Add(yyval.l,&TheShape); + } + ; + break;} +case 199: +#line 1592 "Gmsh.y" +{ + for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ + List_Read (yyvsp[-1].l,i,&TheShape); + DeleteShape(TheShape.Type,TheShape.Num); + } + ; + break;} +case 200: +#line 1607 "Gmsh.y" +{ + yyinTab[RecursionLevel++] = yyin; + strcpy(tmpstring, ThePathForIncludes); + if((yyin = fopen(strcat(tmpstring,yyvsp[-1].c),"r"))){ + strcpy(yynameTab[RecursionLevel-1],yyname); + yylinenoTab[RecursionLevel-1]=yylineno; + yylineno=1; + strcpy(yyname,yyvsp[-1].c); + while(!feof(yyin)){ + yyparse(); + } + fclose(yyin); + yyin = yyinTab[--RecursionLevel]; + strcpy(yyname,yynameTab[RecursionLevel]); + yylineno = yylinenoTab[RecursionLevel]; + } + else{ + vyyerror("Unknown File '%s'", yyvsp[-1].c) ; + yyin = yyinTab[--RecursionLevel]; + } + ; + break;} +case 201: +#line 1635 "Gmsh.y" +{ + char ext[6]; + strcpy(ext,yyvsp[-1].c+(strlen(yyvsp[-1].c)-4)); + Replot(); + extern void CreateImage (FILE *fp); + FILE *fp = 0; + if(!strcmp(ext,".gif")) + { + fp = fopen(yyvsp[-1].c,"wb"); + CTX.print.type = PRINT_GL2GIF; + } + else if(!strcmp(ext,".eps")) + { + fp = fopen(yyvsp[-1].c,"w"); + CTX.print.type = PRINT_GL2PS_RECURSIVE; + } + else if(!strcmp(ext,".xpm")) + { + fp = fopen(yyvsp[-1].c,"wb"); + CTX.print.type = PRINT_XDUMP; + CTX.print.format = FORMAT_XPM; + } + + if(fp) + { + CreateImage(fp); + fclose(fp); + } + ; + break;} +case 202: +#line 1665 "Gmsh.y" +{ + exit(0); + ; + break;} +case 203: +#line 1669 "Gmsh.y" +{ + FILE *ff = yyin; + MergeProblem(yyvsp[-1].c); + yyin = ff; + ; + break;} +case 204: +#line 1683 "Gmsh.y" +{ + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = (int)yyvsp[-3].d ; + LoopControlVariablesTab[ImbricatedLoop][1] = (int)yyvsp[-1].d ; + LoopControlVariablesTab[ImbricatedLoop][2] = 1 ; + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + ; + break;} +case 205: +#line 1696 "Gmsh.y" +{ + FILE* ff; if(RecursionLevel) ff = yyinTab[RecursionLevel-1]; else @@ -4290,8 +4719,8 @@ case 184: fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); ; break;} -case 185: -#line 1229 "Gmsh.y" +case 206: +#line 1709 "Gmsh.y" { if(LoopControlVariablesTab[ImbricatedLoop-1][1] > LoopControlVariablesTab[ImbricatedLoop-1][0]) @@ -4311,960 +4740,452 @@ case 185: } ; break;} -case 186: -#line 1268 "Gmsh.y" +case 207: +#line 1748 "Gmsh.y" { Curve *pc, *prc; Extrude_ProtudePoint(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,&pc,&prc,NULL); ; break;} -case 187: -#line 1273 "Gmsh.y" +case 208: +#line 1753 "Gmsh.y" { Curve *pc, *prc; Extrude_ProtudePoint(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d, &pc,&prc,NULL); ; break;} -case 188: -#line 1279 "Gmsh.y" +case 209: +#line 1759 "Gmsh.y" { Extrude_ProtudeCurve(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,NULL); ; break;} -case 189: -#line 1283 "Gmsh.y" +case 210: +#line 1763 "Gmsh.y" { Extrude_ProtudeCurve(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,NULL); ; break;} -case 190: -#line 1287 "Gmsh.y" +case 211: +#line 1767 "Gmsh.y" { Extrude_ProtudeSurface(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,0,NULL); ; break;} -case 191: -#line 1291 "Gmsh.y" +case 212: +#line 1771 "Gmsh.y" { Extrude_ProtudeSurface(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL); ; break;} -case 192: -#line 1295 "Gmsh.y" +case 213: +#line 1775 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(1,(int)yyvsp[-7].d,yyvsp[-5].v[0],yyvsp[-5].v[1],yyvsp[-5].v[2],0.,0.,0.,0.,vol,&extr); ; break;} -case 193: -#line 1300 "Gmsh.y" +case 214: +#line 1780 "Gmsh.y" { int vol = NEWREG(); Extrude_ProtudeSurface(0,(int)yyvsp[-11].d,yyvsp[-9].v[0],yyvsp[-9].v[1],yyvsp[-9].v[2],yyvsp[-7].v[0],yyvsp[-7].v[1],yyvsp[-7].v[2],yyvsp[-5].d,vol,&extr); ; break;} -case 194: -#line 1308 "Gmsh.y" -{ - ; - break;} -case 195: -#line 1311 "Gmsh.y" -{ - ; - break;} -case 196: -#line 1317 "Gmsh.y" -{ - double d; - int j; - extr.mesh.NbLayer = List_Nbr(yyvsp[-6].l); - extr.mesh.ExtrudeMesh = true; - for(int i=0;i<List_Nbr(yyvsp[-6].l);i++){ - List_Read(yyvsp[-6].l,i,&d); - j = (int)d; - extr.mesh.NbElmLayer[i] = j; - List_Read(yyvsp[-4].l,i,&d); - j = (int)d; - extr.mesh.ZonLayer[i] = j; - List_Read(yyvsp[-2].l,i,&d); - extr.mesh.hLayer[i] = d; - } - ; - break;} -case 197: -#line 1334 "Gmsh.y" +case 215: +#line 1788 "Gmsh.y" { - extr.mesh.Recombine = true; ; break;} -case 198: -#line 1345 "Gmsh.y" +case 216: +#line 1791 "Gmsh.y" { - Curve *c; - for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ - List_Read(yyvsp[-3].l,i,&d); - j = (int)fabs(d); - c = FindCurve(j,THEM); - if(!c) - vyyerror("Unkown Curve %d", j); - else{ - c->Method = TRANSFINI; - c->ipar[0] = (int)yyvsp[-1].d; - c->ipar[1] = sign(d); - c->dpar[0] = 1.0; - } - } ; break;} -case 199: -#line 1362 "Gmsh.y" -{ - Curve *c; - for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ - List_Read(yyvsp[-6].l,i,&d); - j = (int)fabs(d); - c = FindCurve(j,THEM); - if(!c) - vyyerror("Unkown Curve %d", j); - else{ - c->Method = TRANSFINI; - c->ipar[0] = (int)yyvsp[-4].d; - c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */ - c->dpar[0] = fabs(yyvsp[-1].d); - } - } - ; - break;} -case 200: -#line 1379 "Gmsh.y" -{ - Curve *c; - for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ - List_Read(yyvsp[-6].l,i,&d); - j = (int)fabs(d); - c = FindCurve(j,THEM); - if(!c) - vyyerror("Unkown Curve %d", j); - else{ - c->Method = TRANSFINI; - c->ipar[0] = (int)yyvsp[-4].d; - c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */ - c->dpar[0] = fabs(yyvsp[-1].d); - } - } - ; - break;} -case 201: -#line 1396 "Gmsh.y" -{ - Surface *s = FindSurface((int)yyvsp[-4].d,THEM); - if(!s) - vyyerror("Unkown Surface %d", (int)yyvsp[-4].d); - else{ - s->Method = TRANSFINI; - k = List_Nbr(yyvsp[-1].l); - if(k!=3 && k!=4){ - vyyerror("Wrong Definition of Transfinite Surface %d: " - "%d Points Instead of 3 or 4" , yyvsp[-4].d, k) ; - } - else{ - for(i=0;i<k;i++){ - List_Read(yyvsp[-1].l,i,&d); - j = (int)fabs(d); - s->ipar[i] = j; - } - } - } - ; - break;} -case 202: -#line 1417 "Gmsh.y" -{ - Surface *s = FindSurface((int)yyvsp[-4].d,THEM); - if(!s) - vyyerror("Unkown Surface %d", (int)yyvsp[-4].d); - else{ - s->Method = ELLIPTIC; - k = List_Nbr(yyvsp[-1].l); - if(k != 4) - vyyerror("Wrong Definition of Elliptic Surface %d: " - "%d Points Instead of 4" , yyvsp[-4].d, k) ; - else{ - for(i=0;i<k;i++){ - List_Read(yyvsp[-1].l,i,&d); - j = (int)fabs(d); - s->ipar[i] = j; - } - } - } - ; - break;} -case 203: -#line 1437 "Gmsh.y" -{ - Volume *v = FindVolume((int)yyvsp[-4].d,THEM); - if(!v) - vyyerror("Unkown Volume %d", (int)yyvsp[-4].d); - else{ - v->Method = TRANSFINI; - k = List_Nbr(yyvsp[-1].l); - if(k!=6 && k!=8) - vyyerror("Wrong Definition of Transfinite Volume %d: " - "%d Points Instead of 6 or 8" , yyvsp[-4].d, k) ; - else{ - for(i=0;i<k;i++){ - List_Read(yyvsp[-1].l,i,&d); - j = (int)fabs(d); - v->ipar[i] = j; - } - } - } - ; - break;} -case 204: -#line 1457 "Gmsh.y" -{ - Surface *s; - for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ - List_Read(yyvsp[-3].l,i,&d); - j = (int)d; - s = FindSurface(j,THEM); - if(!s){ - /* Allow generic lists, even if the surfaces don't exist - vyyerror("Unkown Surface %d", j); */ - } - else{ - s->Recombine = 1; - s->RecombineAngle = yyvsp[-1].d; - } - } - ; - break;} -case 205: -#line 1474 "Gmsh.y" -{ - Surface *s; - for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ - List_Read(yyvsp[-1].l,i,&d); - j = (int)d; - s = FindSurface(j,THEM); - if(!s){ - /* Allow generic lists, even if the surfaces don't exist - vyyerror("Unkown Surface %d", j); */ - } - else{ - s->Recombine = 1; - s->RecombineAngle = 30.; - } - } - ; - break;} -case 206: -#line 1499 "Gmsh.y" -{ - Coherence_PS(); - ; - break;} -case 209: -#line 1515 "Gmsh.y" -{ - ; - break;} -case 210: -#line 1521 "Gmsh.y" -{ - if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown String Option Class '%s'", yyvsp[-5].c); - else{ - if(!(pStrOpt = Get_StringOption(yyvsp[-3].c, pStrCat))) - vyyerror("Unknown String Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); - else{ - *pStrOpt = yyvsp[-1].c ; - } - } - ; - break;} -case 211: -#line 1534 "Gmsh.y" -{ - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pStrOpt = Get_StringViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown String Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - *pStrOpt = yyvsp[-1].c ; - } - } - ; - break;} -case 212: -#line 1552 "Gmsh.y" -{ - if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); - else{ - if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt = yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt = (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt = (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt = (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 213: -#line 1569 "Gmsh.y" -{ - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt = yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt = (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt = (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt = (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 214: -#line 1590 "Gmsh.y" -{ - if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); - else{ - if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt += (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt += (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 215: -#line 1607 "Gmsh.y" -{ - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt += (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt += (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 216: -#line 1628 "Gmsh.y" -{ - if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); - else{ - if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt -= (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt -= (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 217: -#line 1645 "Gmsh.y" -{ - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt -= (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt -= (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 218: -#line 1666 "Gmsh.y" -{ - if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); - else{ - if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt *= yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt *= (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt *= (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt *= (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 219: -#line 1683 "Gmsh.y" -{ - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt *= yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt *= (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt *= (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt *= (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 220: -#line 1704 "Gmsh.y" -{ - if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c); - else{ - if(!(pNumOpt = Get_NumberOption(yyvsp[-3].c, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt /= yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt /= (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt /= (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt /= (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 221: -#line 1721 "Gmsh.y" -{ - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt /= yyvsp[-1].d ; break ; - case GMSH_FLOAT : *(float*)pNumOpt /= (float)yyvsp[-1].d ; break ; - case GMSH_LONG : *(long*)pNumOpt /= (long)yyvsp[-1].d ; break ; - case GMSH_INT : *(int*)pNumOpt /= (int)yyvsp[-1].d ; break ; - } - } - } - ; - break;} -case 222: -#line 1742 "Gmsh.y" -{ - if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) - vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c); - else{ - if(!(pNumOpt = Get_NumberOption(yyvsp[-2].c, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-4].c, yyvsp[-2].c); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; - case GMSH_INT : *(int*)pNumOpt += 1 ; break ; - } - } - } - ; - break;} -case 223: -#line 1759 "Gmsh.y" -{ - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; - case GMSH_INT : *(int*)pNumOpt += 1 ; break ; - } - } +case 217: +#line 1797 "Gmsh.y" +{ + double d; + int j; + extr.mesh.NbLayer = List_Nbr(yyvsp[-6].l); + extr.mesh.ExtrudeMesh = true; + for(int i=0;i<List_Nbr(yyvsp[-6].l);i++){ + List_Read(yyvsp[-6].l,i,&d); + j = (int)d; + extr.mesh.NbElmLayer[i] = j; + List_Read(yyvsp[-4].l,i,&d); + j = (int)d; + extr.mesh.ZonLayer[i] = j; + List_Read(yyvsp[-2].l,i,&d); + extr.mesh.hLayer[i] = d; } ; break;} -case 224: -#line 1780 "Gmsh.y" +case 218: +#line 1814 "Gmsh.y" { - if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c))) - vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c); - else{ - if(!(pNumOpt = Get_NumberOption(yyvsp[-2].c, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", yyvsp[-4].c, yyvsp[-2].c); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; - case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; - } - } - } + extr.mesh.Recombine = true; ; break;} -case 225: -#line 1797 "Gmsh.y" +case 219: +#line 1825 "Gmsh.y" { - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } + Curve *c; + for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ + List_Read(yyvsp[-3].l,i,&d); + j = (int)fabs(d); + c = FindCurve(j,THEM); + if(!c) + vyyerror("Unkown Curve %d", j); else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; - case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; - } + c->Method = TRANSFINI; + c->ipar[0] = (int)yyvsp[-1].d; + c->ipar[1] = sign(d); + c->dpar[0] = 1.0; } } ; break;} -case 226: -#line 1820 "Gmsh.y" +case 220: +#line 1842 "Gmsh.y" { - if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); - else{ - if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i))) - vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + Curve *c; + for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ + List_Read(yyvsp[-6].l,i,&d); + j = (int)fabs(d); + c = FindCurve(j,THEM); + if(!c) + vyyerror("Unkown Curve %d", j); else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] = yyvsp[-1].v[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] = (float)yyvsp[-1].v[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] = (long)yyvsp[-1].v[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] = (int)yyvsp[-1].v[j] ; - break ; - } + c->Method = TRANSFINI; + c->ipar[0] = (int)yyvsp[-4].d; + c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */ + c->dpar[0] = fabs(yyvsp[-1].d); } } ; break;} -case 227: -#line 1845 "Gmsh.y" +case 221: +#line 1859 "Gmsh.y" { - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Array Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } + Curve *c; + for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ + List_Read(yyvsp[-6].l,i,&d); + j = (int)fabs(d); + c = FindCurve(j,THEM); + if(!c) + vyyerror("Unkown Curve %d", j); else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] = yyvsp[-1].v[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] = (float)yyvsp[-1].v[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] = (long)yyvsp[-1].v[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] = (int)yyvsp[-1].v[j] ; - break ; - } + c->Method = TRANSFINI; + c->ipar[0] = (int)yyvsp[-4].d; + c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */ + c->dpar[0] = fabs(yyvsp[-1].d); } } ; break;} -case 228: -#line 1874 "Gmsh.y" +case 222: +#line 1876 "Gmsh.y" { - if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); + Surface *s = FindSurface((int)yyvsp[-4].d,THEM); + if(!s) + vyyerror("Unkown Surface %d", (int)yyvsp[-4].d); else{ - if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i))) - vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + s->Method = TRANSFINI; + k = List_Nbr(yyvsp[-1].l); + if(k!=3 && k!=4){ + vyyerror("Wrong Definition of Transfinite Surface %d: " + "%d Points Instead of 3 or 4" , yyvsp[-4].d, k) ; + } else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] += yyvsp[-1].v[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] += (float)yyvsp[-1].v[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] += (long)yyvsp[-1].v[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] += (int)yyvsp[-1].v[j] ; - break ; + for(i=0;i<k;i++){ + List_Read(yyvsp[-1].l,i,&d); + j = (int)fabs(d); + s->ipar[i] = j; } } } ; break;} -case 229: -#line 1899 "Gmsh.y" +case 223: +#line 1897 "Gmsh.y" { - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); + Surface *s = FindSurface((int)yyvsp[-4].d,THEM); + if(!s) + vyyerror("Unkown Surface %d", (int)yyvsp[-4].d); else{ - if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Array Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] += yyvsp[-1].v[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] += (float)yyvsp[-1].v[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] += (long)yyvsp[-1].v[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] += (int)yyvsp[-1].v[j] ; - break ; + s->Method = ELLIPTIC; + k = List_Nbr(yyvsp[-1].l); + if(k != 4) + vyyerror("Wrong Definition of Elliptic Surface %d: " + "%d Points Instead of 4" , yyvsp[-4].d, k) ; + else{ + for(i=0;i<k;i++){ + List_Read(yyvsp[-1].l,i,&d); + j = (int)fabs(d); + s->ipar[i] = j; } } } ; break;} -case 230: -#line 1928 "Gmsh.y" +case 224: +#line 1917 "Gmsh.y" { - if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c))) - vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c); + Volume *v = FindVolume((int)yyvsp[-4].d,THEM); + if(!v) + vyyerror("Unkown Volume %d", (int)yyvsp[-4].d); else{ - if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i))) - vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c); + v->Method = TRANSFINI; + k = List_Nbr(yyvsp[-1].l); + if(k!=6 && k!=8) + vyyerror("Wrong Definition of Transfinite Volume %d: " + "%d Points Instead of 6 or 8" , yyvsp[-4].d, k) ; else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] -= yyvsp[-1].v[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] -= (float)yyvsp[-1].v[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] -= (long)yyvsp[-1].v[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] -= (int)yyvsp[-1].v[j] ; - break ; + for(i=0;i<k;i++){ + List_Read(yyvsp[-1].l,i,&d); + j = (int)fabs(d); + v->ipar[i] = j; } } } ; break;} -case 231: -#line 1953 "Gmsh.y" +case 225: +#line 1937 "Gmsh.y" { - if(strcmp(yyvsp[-10].c, "Post")) - vyyerror("Unknown View Option Class '%s'", yyvsp[-10].c); - else{ - if(!(pArrOpt = Get_ArrayViewOption((int)yyvsp[-6].d, yyvsp[-3].c, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)yyvsp[-6].d); - else vyyerror("Unknown Array Option '%s.View[%d].%s'", - yyvsp[-10].c, (int)yyvsp[-6].d, yyvsp[-3].c); - } - else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] -= yyvsp[-1].v[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] -= (float)yyvsp[-1].v[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] -= (long)yyvsp[-1].v[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] -= (int)yyvsp[-1].v[j] ; - break ; - } + Surface *s; + for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ + List_Read(yyvsp[-3].l,i,&d); + j = (int)d; + s = FindSurface(j,THEM); + if(!s){ + /* Allow generic lists, even if the surfaces don't exist + vyyerror("Unkown Surface %d", j); */ + } + else{ + s->Recombine = 1; + s->RecombineAngle = yyvsp[-1].d; } } ; break;} -case 232: -#line 1984 "Gmsh.y" +case 226: +#line 1954 "Gmsh.y" { - if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c))) - vyyerror("Unknown Color Option Class '%s'", yyvsp[-7].c); - else{ - if(!(pColOpt = Get_ColorOption(yyvsp[-3].c, pColCat))) - vyyerror("Unknown Color Option '%s.%s'", yyvsp[-7].c, yyvsp[-3].c); - else{ - *pColOpt = yyvsp[-1].u ; + Surface *s; + for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ + List_Read(yyvsp[-1].l,i,&d); + j = (int)d; + s = FindSurface(j,THEM); + if(!s){ + /* Allow generic lists, even if the surfaces don't exist + vyyerror("Unkown Surface %d", j); */ } + else{ + s->Recombine = 1; + s->RecombineAngle = 30.; + } } ; break;} -case 236: -#line 2023 "Gmsh.y" +case 227: +#line 1979 "Gmsh.y" +{ + Coherence_PS(); + ; + break;} +case 228: +#line 1991 "Gmsh.y" {yyval.i = 1;; break;} -case 237: -#line 2024 "Gmsh.y" +case 229: +#line 1992 "Gmsh.y" {yyval.i = 0;; break;} -case 238: -#line 2025 "Gmsh.y" +case 230: +#line 1993 "Gmsh.y" {yyval.i = -1;; break;} -case 239: -#line 2026 "Gmsh.y" +case 231: +#line 1994 "Gmsh.y" {yyval.i = -1;; break;} -case 240: -#line 2027 "Gmsh.y" +case 232: +#line 1995 "Gmsh.y" {yyval.i = -1;; break;} -case 241: -#line 2031 "Gmsh.y" +case 233: +#line 1999 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 242: -#line 2032 "Gmsh.y" +case 234: +#line 2000 "Gmsh.y" { yyval.d = yyvsp[-1].d ; ; break;} -case 243: -#line 2033 "Gmsh.y" +case 235: +#line 2001 "Gmsh.y" { yyval.d = -yyvsp[0].d ; ; break;} -case 244: -#line 2034 "Gmsh.y" +case 236: +#line 2002 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 245: -#line 2035 "Gmsh.y" +case 237: +#line 2003 "Gmsh.y" { yyval.d = !yyvsp[0].d ; ; break;} -case 246: -#line 2036 "Gmsh.y" +case 238: +#line 2004 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d ; ; break;} -case 247: -#line 2037 "Gmsh.y" +case 239: +#line 2005 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d ; ; break;} -case 248: -#line 2038 "Gmsh.y" +case 240: +#line 2006 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d ; ; break;} -case 249: -#line 2039 "Gmsh.y" +case 241: +#line 2007 "Gmsh.y" { yyval.d = yyvsp[-2].d / yyvsp[0].d ; ; break;} -case 250: -#line 2040 "Gmsh.y" +case 242: +#line 2008 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ; ; break;} -case 251: -#line 2041 "Gmsh.y" +case 243: +#line 2009 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ; ; break;} -case 252: -#line 2042 "Gmsh.y" +case 244: +#line 2010 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d ; ; break;} -case 253: -#line 2043 "Gmsh.y" +case 245: +#line 2011 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d ; ; break;} -case 254: -#line 2044 "Gmsh.y" +case 246: +#line 2012 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ; break;} -case 255: -#line 2045 "Gmsh.y" +case 247: +#line 2013 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ; break;} -case 256: -#line 2046 "Gmsh.y" +case 248: +#line 2014 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d ; ; break;} -case 257: -#line 2047 "Gmsh.y" +case 249: +#line 2015 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d ; ; break;} -case 258: -#line 2048 "Gmsh.y" +case 250: +#line 2016 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d ; ; break;} -case 259: -#line 2049 "Gmsh.y" +case 251: +#line 2017 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d ; ; break;} -case 260: -#line 2050 "Gmsh.y" +case 252: +#line 2018 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ; break;} -case 261: -#line 2051 "Gmsh.y" +case 253: +#line 2019 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 262: -#line 2052 "Gmsh.y" +case 254: +#line 2020 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 263: -#line 2053 "Gmsh.y" +case 255: +#line 2021 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 264: -#line 2054 "Gmsh.y" +case 256: +#line 2022 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 265: -#line 2055 "Gmsh.y" +case 257: +#line 2023 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 266: -#line 2056 "Gmsh.y" +case 258: +#line 2024 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 267: -#line 2057 "Gmsh.y" +case 259: +#line 2025 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 268: -#line 2058 "Gmsh.y" +case 260: +#line 2026 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 269: -#line 2059 "Gmsh.y" +case 261: +#line 2027 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 270: -#line 2060 "Gmsh.y" +case 262: +#line 2028 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 271: -#line 2061 "Gmsh.y" +case 263: +#line 2029 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ; break;} -case 272: -#line 2062 "Gmsh.y" +case 264: +#line 2030 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 273: -#line 2063 "Gmsh.y" +case 265: +#line 2031 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 274: -#line 2064 "Gmsh.y" +case 266: +#line 2032 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 275: -#line 2065 "Gmsh.y" +case 267: +#line 2033 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 276: -#line 2066 "Gmsh.y" +case 268: +#line 2034 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 277: -#line 2067 "Gmsh.y" +case 269: +#line 2035 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 278: -#line 2068 "Gmsh.y" +case 270: +#line 2036 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} -case 279: -#line 2069 "Gmsh.y" +case 271: +#line 2037 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} -case 280: -#line 2070 "Gmsh.y" +case 272: +#line 2038 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 281: -#line 2074 "Gmsh.y" +case 273: +#line 2042 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 282: -#line 2075 "Gmsh.y" +case 274: +#line 2043 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} -case 283: -#line 2077 "Gmsh.y" +case 275: +#line 2045 "Gmsh.y" { TheSymbol.Name = yyvsp[0].c ; if (!List_Query(Symbol_L, &TheSymbol, CompareSymbols)) { @@ -5274,8 +5195,8 @@ case 283: Free(yyvsp[0].c); ; break;} -case 284: -#line 2086 "Gmsh.y" +case 276: +#line 2054 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-2].c); @@ -5293,8 +5214,8 @@ case 284: } ; break;} -case 285: -#line 2103 "Gmsh.y" +case 277: +#line 2071 "Gmsh.y" { if(strcmp(yyvsp[-7].c, "Post")) vyyerror("Unknown View Option Class '%s'", yyvsp[-7].c); @@ -5315,8 +5236,8 @@ case 285: } ; break;} -case 286: -#line 2124 "Gmsh.y" +case 278: +#line 2092 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c); @@ -5334,8 +5255,8 @@ case 286: } ; break;} -case 287: -#line 2141 "Gmsh.y" +case 279: +#line 2109 "Gmsh.y" { if(strcmp(yyvsp[-8].c, "Post")) vyyerror("Unknown View Option Class '%s'", yyvsp[-8].c); @@ -5356,8 +5277,8 @@ case 287: } ; break;} -case 288: -#line 2162 "Gmsh.y" +case 280: +#line 2130 "Gmsh.y" { if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))) vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c); @@ -5375,8 +5296,8 @@ case 288: } ; break;} -case 289: -#line 2179 "Gmsh.y" +case 281: +#line 2147 "Gmsh.y" { if(strcmp(yyvsp[-8].c, "Post")) vyyerror("Unknown View Option Class '%s'", yyvsp[-8].c); @@ -5397,16 +5318,16 @@ case 289: } ; break;} -case 290: -#line 2202 "Gmsh.y" +case 282: +#line 2170 "Gmsh.y" { ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.)) List_Add(ListOfDouble2_L, &d) ; ; break;} -case 291: -#line 2208 "Gmsh.y" +case 283: +#line 2176 "Gmsh.y" { ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; if(!yyvsp[0].d || (yyvsp[-4].d<yyvsp[-2].d && yyvsp[0].d<0) || (yyvsp[-4].d>yyvsp[-2].d && yyvsp[0].d>0)){ @@ -5418,62 +5339,62 @@ case 291: List_Add(ListOfDouble2_L, &d) ; ; break;} -case 292: -#line 2222 "Gmsh.y" +case 284: +#line 2190 "Gmsh.y" { yyval.v = yyvsp[0].v; ; break;} -case 293: -#line 2226 "Gmsh.y" +case 285: +#line 2194 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = -yyvsp[0].v[i] ; ; break;} -case 294: -#line 2230 "Gmsh.y" +case 286: +#line 2198 "Gmsh.y" { yyval.v = yyvsp[0].v; ; break;} -case 295: -#line 2234 "Gmsh.y" +case 287: +#line 2202 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ; ; break;} -case 296: -#line 2238 "Gmsh.y" +case 288: +#line 2206 "Gmsh.y" { for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ; ; break;} -case 297: -#line 2244 "Gmsh.y" +case 289: +#line 2212 "Gmsh.y" { yyval.v[0]=yyvsp[-9].d; yyval.v[1]=yyvsp[-7].d; yyval.v[2]=yyvsp[-5].d; yyval.v[3]=yyvsp[-3].d; yyval.v[4]=yyvsp[-1].d; ; break;} -case 298: -#line 2248 "Gmsh.y" +case 290: +#line 2216 "Gmsh.y" { yyval.v[0]=yyvsp[-7].d; yyval.v[1]=yyvsp[-5].d; yyval.v[2]=yyvsp[-3].d; yyval.v[3]=yyvsp[-1].d; yyval.v[4]=1.0; ; break;} -case 299: -#line 2252 "Gmsh.y" +case 291: +#line 2220 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0; ; break;} -case 300: -#line 2256 "Gmsh.y" +case 292: +#line 2224 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0; ; break;} -case 301: -#line 2260 "Gmsh.y" +case 293: +#line 2228 "Gmsh.y" { if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-2].c))) vyyerror("Unknown Array Option Class '%s'", yyvsp[-2].c); @@ -5500,8 +5421,8 @@ case 301: } ; break;} -case 302: -#line 2286 "Gmsh.y" +case 294: +#line 2254 "Gmsh.y" { if(strcmp(yyvsp[-7].c, "Post")) vyyerror("Unknown View Option Class '%s'", yyvsp[-7].c); @@ -5532,84 +5453,84 @@ case 302: } ; break;} -case 303: -#line 2319 "Gmsh.y" +case 295: +#line 2287 "Gmsh.y" { ; break;} -case 304: -#line 2322 "Gmsh.y" +case 296: +#line 2290 "Gmsh.y" { ; break;} -case 305: -#line 2328 "Gmsh.y" +case 297: +#line 2296 "Gmsh.y" { ; break;} -case 306: -#line 2331 "Gmsh.y" +case 298: +#line 2299 "Gmsh.y" { ; break;} -case 307: -#line 2337 "Gmsh.y" +case 299: +#line 2305 "Gmsh.y" { ; break;} -case 308: -#line 2340 "Gmsh.y" +case 300: +#line 2308 "Gmsh.y" { yyval.l=ListOfListOfDouble_L; ; break;} -case 309: -#line 2344 "Gmsh.y" +case 301: +#line 2312 "Gmsh.y" { yyval.l=ListOfListOfDouble_L; ; break;} -case 310: -#line 2351 "Gmsh.y" +case 302: +#line 2319 "Gmsh.y" { ListOfListOfDouble_L = List_Create(2,1,sizeof(List_T*)) ; List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ; ; break;} -case 311: -#line 2356 "Gmsh.y" +case 303: +#line 2324 "Gmsh.y" { List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ; ; break;} -case 312: -#line 2363 "Gmsh.y" +case 304: +#line 2331 "Gmsh.y" { ; break;} -case 313: -#line 2366 "Gmsh.y" +case 305: +#line 2334 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; yyval.l=ListOfDouble_L; ; break;} -case 314: -#line 2372 "Gmsh.y" +case 306: +#line 2340 "Gmsh.y" { yyval.l=ListOfDouble_L; ; break;} -case 315: -#line 2380 "Gmsh.y" +case 307: +#line 2348 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; ; break;} -case 316: -#line 2385 "Gmsh.y" +case 308: +#line 2353 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){ @@ -5619,14 +5540,14 @@ case 316: List_Delete(ListOfDouble2_L); ; break;} -case 317: -#line 2394 "Gmsh.y" +case 309: +#line 2362 "Gmsh.y" { List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; ; break;} -case 318: -#line 2398 "Gmsh.y" +case 310: +#line 2366 "Gmsh.y" { for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){ List_Read(ListOfDouble2_L, i, &d) ; @@ -5635,34 +5556,34 @@ case 318: List_Delete(ListOfDouble2_L); ; break;} -case 319: -#line 2409 "Gmsh.y" +case 311: +#line 2377 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} -case 320: -#line 2413 "Gmsh.y" +case 312: +#line 2381 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} -case 321: -#line 2417 "Gmsh.y" +case 313: +#line 2385 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, (int)yyvsp[-1].d, yyvsp[-3].c, &flag); if(flag) vyyerror("Unknown Color '%s'", yyvsp[-3].c); ; break;} -case 322: -#line 2422 "Gmsh.y" +case 314: +#line 2390 "Gmsh.y" { yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); if(flag) vyyerror("Unknown Color '%s'", yyvsp[0].c); ; break;} -case 323: -#line 2427 "Gmsh.y" +case 315: +#line 2395 "Gmsh.y" { if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))) vyyerror("Unknown Color Option Class '%s'", yyvsp[-4].c); @@ -5677,7 +5598,7 @@ case 323: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/lib/bison.simple" +#line 498 "/usr/local/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -5872,32 +5793,8 @@ yyerrhandle: yystate = yyn; goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; } -#line 2440 "Gmsh.y" +#line 2408 "Gmsh.y" void InitSymbols(void){ diff --git a/Parser/Gmsh.tab.cpp.h b/Parser/Gmsh.tab.cpp.h index f6cf1a21f94ea99712e4a87d4c07535e11e910a4..3049927d665ed6d02da9d4763ae59d38b5c1891b 100644 --- a/Parser/Gmsh.tab.cpp.h +++ b/Parser/Gmsh.tab.cpp.h @@ -7,87 +7,86 @@ typedef union { Shape s; List_T *l; } YYSTYPE; -#define tDOUBLE 257 -#define tSTRING 258 -#define tBIGSTR 259 -#define tEND 260 -#define tAFFECT 261 -#define tDOTS 262 -#define tPi 263 -#define tExp 264 -#define tLog 265 -#define tLog10 266 -#define tSqrt 267 -#define tSin 268 -#define tAsin 269 -#define tCos 270 -#define tAcos 271 -#define tTan 272 -#define tAtan 273 -#define tAtan2 274 -#define tSinh 275 -#define tCosh 276 -#define tTanh 277 -#define tFabs 278 -#define tFloor 279 -#define tCeil 280 -#define tFmod 281 -#define tModulo 282 -#define tHypot 283 -#define tPrintf 284 -#define tPoint 285 -#define tCircle 286 -#define tEllipsis 287 -#define tLine 288 -#define tSurface 289 -#define tSpline 290 -#define tVolume 291 -#define tCharacteristic 292 -#define tLength 293 -#define tParametric 294 -#define tElliptic 295 -#define tPlane 296 -#define tRuled 297 -#define tTransfinite 298 -#define tComplex 299 -#define tPhysical 300 -#define tUsing 301 -#define tBump 302 -#define tProgression 303 -#define tRotate 304 -#define tTranslate 305 -#define tSymmetry 306 -#define tDilate 307 -#define tExtrude 308 -#define tDuplicata 309 -#define tLoop 310 -#define tInclude 311 -#define tRecombine 312 -#define tDelete 313 -#define tCoherence 314 -#define tView 315 -#define tAttractor 316 -#define tLayers 317 -#define tScalarTetrahedron 318 -#define tVectorTetrahedron 319 -#define tTensorTetrahedron 320 -#define tScalarTriangle 321 -#define tVectorTriangle 322 -#define tTensorTriangle 323 -#define tScalarLine 324 -#define tVectorLine 325 -#define tTensorLine 326 -#define tScalarPoint 327 -#define tVectorPoint 328 -#define tTensorPoint 329 -#define tBSpline 330 -#define tNurbs 331 -#define tOrder 332 -#define tWith 333 -#define tBounds 334 -#define tKnots 335 -#define tColor 336 -#define tOptions 337 +#define tDOUBLE 258 +#define tSTRING 259 +#define tBIGSTR 260 +#define tEND 261 +#define tAFFECT 262 +#define tDOTS 263 +#define tPi 264 +#define tExp 265 +#define tLog 266 +#define tLog10 267 +#define tSqrt 268 +#define tSin 269 +#define tAsin 270 +#define tCos 271 +#define tAcos 272 +#define tTan 273 +#define tAtan 274 +#define tAtan2 275 +#define tSinh 276 +#define tCosh 277 +#define tTanh 278 +#define tFabs 279 +#define tFloor 280 +#define tCeil 281 +#define tFmod 282 +#define tModulo 283 +#define tHypot 284 +#define tPrintf 285 +#define tPoint 286 +#define tCircle 287 +#define tEllipsis 288 +#define tLine 289 +#define tSurface 290 +#define tSpline 291 +#define tVolume 292 +#define tCharacteristic 293 +#define tLength 294 +#define tParametric 295 +#define tElliptic 296 +#define tPlane 297 +#define tRuled 298 +#define tTransfinite 299 +#define tComplex 300 +#define tPhysical 301 +#define tUsing 302 +#define tBump 303 +#define tProgression 304 +#define tRotate 305 +#define tTranslate 306 +#define tSymmetry 307 +#define tDilate 308 +#define tExtrude 309 +#define tDuplicata 310 +#define tLoop 311 +#define tInclude 312 +#define tRecombine 313 +#define tDelete 314 +#define tCoherence 315 +#define tView 316 +#define tAttractor 317 +#define tLayers 318 +#define tScalarTetrahedron 319 +#define tVectorTetrahedron 320 +#define tTensorTetrahedron 321 +#define tScalarTriangle 322 +#define tVectorTriangle 323 +#define tTensorTriangle 324 +#define tScalarLine 325 +#define tVectorLine 326 +#define tTensorLine 327 +#define tScalarPoint 328 +#define tVectorPoint 329 +#define tTensorPoint 330 +#define tBSpline 331 +#define tNurbs 332 +#define tOrder 333 +#define tWith 334 +#define tBounds 335 +#define tKnots 336 +#define tColor 337 #define tFor 338 #define tEndFor 339 #define tScript 340 diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index a21215822595433e0ecb3e25a9f1e1c0c6af7068..66dc1de507e9c12c9c78d47d8a25ce57aedda1ab 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,4 +1,4 @@ -%{ /* $Id: Gmsh.y,v 1.23 2000-12-07 01:14:30 geuzaine Exp $ */ +%{ /* $Id: Gmsh.y,v 1.24 2000-12-07 08:46:27 geuzaine Exp $ */ #include <stdarg.h> @@ -85,7 +85,7 @@ void vyyerror (char *fmt, ...); %token tScalarLine tVectorLine tTensorLine %token tScalarPoint tVectorPoint tTensorPoint %token tBSpline tNurbs tOrder tWith tBounds tKnots -%token tColor tOptions tFor tEndFor tScript tExit tMerge +%token tColor tFor tEndFor tScript tExit tMerge %token tB_SPLINE_SURFACE_WITH_KNOTS %token tB_SPLINE_CURVE_WITH_KNOTS @@ -379,8 +379,6 @@ GeomFormat : | Loop {return 1;} /* | Script { return 1; }*/ | Command { return 1; } - | tOptions '{' Options '}' { return 1; } - | tScript '{' Scripts '}' { return 1; } | error tEND { yyerrok; return 1;} ; @@ -705,6 +703,9 @@ TensorTetrahedron : ----------------------- */ Affectation : + + /* -------- Variables -------- */ + tSTRING tAFFECT FExpr tEND { TheSymbol.Name = $1; @@ -759,1258 +760,1225 @@ Affectation : else pSymbol->val /= $3 ; } -; - - -/* ----------- - S H A P E - ----------- */ -Shape : - - /* -------- Points -------- */ + /* -------- Option Strings -------- */ - tPoint '(' FExpr ')' tAFFECT VExpr tEND - { - Cdbpts101((int)$3,$6[0],$6[1],$6[2],$6[3],$6[4]); - $$.Type = MSH_POINT; - $$.Num = (int)$3; + | tSTRING '.' tSTRING tAFFECT tBIGSTR tEND + { + if(!(pStrCat = Get_StringOptionCategory($1))) + vyyerror("Unknown String Option Class '%s'", $1); + else{ + if(!(pStrOpt = Get_StringOption($3, pStrCat))) + vyyerror("Unknown String Option '%s.%s'", $1, $3); + else{ + *pStrOpt = $5 ; + } + } } - | tPhysical tPoint '(' FExpr ')' tAFFECT ListOfDouble tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECT tBIGSTR tEND { - Cdbz101((int)$4,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,$7,NULL); - $$.Type = MSH_PHYSICAL_POINT; - $$.Num = (int)$4; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pStrOpt = Get_StringViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown String Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + *pStrOpt = $10 ; + } + } } - | tAttractor tPoint ListOfDouble tAFFECT '{' FExpr ',' FExpr ',' FExpr '}' tEND + + /* -------- Option Numbers -------- */ + + | tSTRING '.' tSTRING tAFFECT FExpr tEND { - Vertex *v; - Attractor *a; - double p; - int ip; - for(int i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&p); - ip = (int)p; - v = FindVertex(ip,THEM); - if(!v) - vyyerror("Unkown Point %d", ip); + if(!(pNumCat = Get_NumberOptionCategory($1))) + vyyerror("Unknown Numeric Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); else{ - a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, - $6,$8,$10,v,NULL,NULL); - List_Add(THEM->Metric->Attractors,&a); - } + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt = $5 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt = (float)$5 ; break ; + case GMSH_LONG : *(long*)pNumOpt = (long)$5 ; break ; + case GMSH_INT : *(int*)pNumOpt = (int)$5 ; break ; + } + } } } - | tCharacteristic tLength ListOfDouble tAFFECT FExpr tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECT FExpr tEND { - for(i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&d); - Vertex *v = FindVertex((int)d,THEM); - if(!v) - vyyerror("Unkown Point %d", (int)d); - else - v->lc = $5; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt = $10 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt = (float)$10 ; break ; + case GMSH_LONG : *(long*)pNumOpt = (long)$10 ; break ; + case GMSH_INT : *(int*)pNumOpt = (int)$10 ; break ; + } + } } - } - | tPoint '{' FExpr '}' tEND - { - $$.Type = MSH_POINT; - $$.Num = (int)$3; } - /* -------- Lines -------- */ - - | tLine '(' FExpr ')' tAFFECT ListOfDouble tEND + | tSTRING '.' tSTRING tAFFECTPLUS FExpr tEND { - Cdbseg101((int)$3,MSH_SEGM_LINE,1,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - $$.Type = MSH_SEGM_LINE; - $$.Num = (int)$3; + if(!(pNumCat = Get_NumberOptionCategory($1))) + vyyerror("Unknown Numeric Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += $5 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += (float)$5 ; break ; + case GMSH_LONG : *(long*)pNumOpt += (long)$5 ; break ; + case GMSH_INT : *(int*)pNumOpt += (int)$5 ; break ; + } + } + } } - | tSpline '(' FExpr ')' tAFFECT ListOfDouble tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTPLUS FExpr tEND { - Cdbseg101((int)$3,MSH_SEGM_SPLN,3,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - $$.Type = MSH_SEGM_SPLN; - $$.Num = (int)$3; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += $10 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += (float)$10 ; break ; + case GMSH_LONG : *(long*)pNumOpt += (long)$10 ; break ; + case GMSH_INT : *(int*)pNumOpt += (int)$10 ; break ; + } + } + } } - | tAttractor tLine ListOfDouble tAFFECT '{' FExpr ',' FExpr ',' FExpr '}' tEND + + | tSTRING '.' tSTRING tAFFECTMINUS FExpr tEND { - Curve *c; - Attractor *a; - double p; - int ip; - for(int i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&p); - ip = (int)p; - c = FindCurve(ip,THEM); - if(!c) - vyyerror("Unkown Curve %d", ip); + if(!(pNumCat = Get_NumberOptionCategory($1))) + vyyerror("Unknown Numeric Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); else{ - a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, - $6,$8,$10,NULL,c,NULL); - List_Add(THEM->Metric->Attractors,&a); - } + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= $5 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= (float)$5 ; break ; + case GMSH_LONG : *(long*)pNumOpt -= (long)$5 ; break ; + case GMSH_INT : *(int*)pNumOpt -= (int)$5 ; break ; + } + } } } - | tCircle '(' FExpr ')' tAFFECT ListOfDouble tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTMINUS FExpr tEND { - Cdbseg101((int)$3,MSH_SEGM_CIRC,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - $$.Type = MSH_SEGM_CIRC ; - $$.Num = (int)$3; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= $10 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= (float)$10 ; break ; + case GMSH_LONG : *(long*)pNumOpt -= (long)$10 ; break ; + case GMSH_INT : *(int*)pNumOpt -= (int)$10 ; break ; + } + } + } } - | tCircle '(' FExpr ')' tAFFECT ListOfDouble tPlane VExpr tEND + + | tSTRING '.' tSTRING tAFFECTTIMES FExpr tEND { - List_T *temp; - int i,j; - double d; - temp = List_Create(List_Nbr($6),1,sizeof(int)); - for(i=0;i<List_Nbr($6);i++){ - List_Read($6,i,&d); - j = (int)d; - List_Add(temp,&j); + if(!(pNumCat = Get_NumberOptionCategory($1))) + vyyerror("Unknown Numeric Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt *= $5 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt *= (float)$5 ; break ; + case GMSH_LONG : *(long*)pNumOpt *= (long)$5 ; break ; + case GMSH_INT : *(int*)pNumOpt *= (int)$5 ; break ; + } + } } - AddCircleInDataBase ((int) $3, MSH_SEGM_CIRC, temp, $8); - List_Delete(temp); - $$.Type = MSH_SEGM_CIRC ; - $$.Num = (int)$3; } - | tParametric '(' FExpr ')' tAFFECT - '{' FExpr ',' FExpr ',' tBIGSTR ',' tBIGSTR ',' tBIGSTR '}' tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTTIMES FExpr tEND { - Cdbseg101((int)$3,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,$7,$9,$11,$13,$15); - $$.Type = MSH_SEGM_PARAMETRIC ; - $$.Num = (int)$3; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt *= $10 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt *= (float)$10 ; break ; + case GMSH_LONG : *(long*)pNumOpt *= (long)$10 ; break ; + case GMSH_INT : *(int*)pNumOpt *= (int)$10 ; break ; + } + } + } } - | tEllipsis '(' FExpr ')' tAFFECT ListOfDouble tEND + + | tSTRING '.' tSTRING tAFFECTDIVIDE FExpr tEND { - Cdbseg101((int)$3,MSH_SEGM_ELLI,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - $$.Type = MSH_SEGM_ELLI ; - $$.Num = (int)$3; - } - | tPhysical tLine '(' FExpr ')' tAFFECT ListOfDouble tEND - { - Cdbz101((int)$4,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,$7,NULL); - $$.Type = MSH_PHYSICAL_LINE; - $$.Num = (int)$4; - } - | tLine tLoop '(' FExpr ')' tAFFECT ListOfDouble tEND - { - $$.Type = MSH_SEGM_LOOP; - Cdbz101((int)$4,$$.Type,0,0,0,0,0,NULL,$7,NULL); - $$.Num = (int)$4; - } - | tBSpline '(' FExpr ')' tAFFECT ListOfDouble tEND - { - Cdbseg101((int)$3,MSH_SEGM_BSPLN,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); - $$.Type = MSH_SEGM_BSPLN; - $$.Num = (int)$3; - } - | tNurbs '(' FExpr ')' tAFFECT ListOfDouble tKnots ListOfDouble tOrder FExpr tEND - { - List_T *Temp; - int i; - double d; - if((int)$10 + 1 + List_Nbr($6) != List_Nbr($8)){ - vyyerror("Wrong Definition of Nurbs Curve %d: " - "[Degree]%d + 1 + [NbPts]%d != [NbKnots]%d", - (int)$3, (int)$10, List_Nbr($6), List_Nbr($8)); - } - Temp = List_Create(List_Nbr($6),1,sizeof(int)); - for(i=0;i<List_Nbr($6);i++) { - List_Read($6,i,&d); - j = (int)d; - List_Add(Temp,&j); + if(!(pNumCat = Get_NumberOptionCategory($1))) + vyyerror("Unknown Numeric Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt /= $5 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt /= (float)$5 ; break ; + case GMSH_LONG : *(long*)pNumOpt /= (long)$5 ; break ; + case GMSH_INT : *(int*)pNumOpt /= (int)$5 ; break ; + } + } } - AddCurveInDataBase ((int)$3,MSH_SEGM_NURBS,(int)$10,Temp,$8,-1,-1,0.,1.); - List_Delete(Temp); } - | tLine '{' FExpr '}' tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTDIVIDE FExpr tEND { - $$.Num = (int)$3; - Curve *c = FindCurve($$.Num,THEM); - if(!c) - vyyerror("Unkown Curve %d", $$.Num); - else - $$.Type = c->Typ; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt /= $10 ; break ; + case GMSH_FLOAT : *(float*)pNumOpt /= (float)$10 ; break ; + case GMSH_LONG : *(long*)pNumOpt /= (long)$10 ; break ; + case GMSH_INT : *(int*)pNumOpt /= (int)$10 ; break ; + } + } + } } - /* -------- Surfaces -------- */ - - | tPlane tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND - { - Cdbz101((int)$4,MSH_SURF_PLAN,0,0,0,0,0,NULL,$7,NULL); - $$.Type = MSH_SURF_PLAN; - $$.Num = (int)$4; - } - | tTrimmed tSurface '(' FExpr ')' tAFFECT FExpr ListOfDouble tEND + | tSTRING '.' tSTRING tPLUSPLUS tEND { - Surface *s,*support; - support = FindSurface((int)$7,THEM); - if(!support) - vyyerror("Unkown Surface %d", (int)$7); + if(!(pNumCat = Get_NumberOptionCategory($1))) + vyyerror("Unknown Numeric Option Class '%s'", $1); else{ - Cdbz101((int)$4,MSH_SURF_PLAN,0,0,0,0,0,NULL,$8,NULL); - s = FindSurface((int)$4,THEM); - if(!s) - vyyerror("Unkown Surface %d", (int)$4); + if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); else{ - s->Typ = MSH_SURF_TRIMMED; - s->Support = support; - $$.Type = MSH_SURF_TRIMMED; - $$.Num = (int)$4; + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; + case GMSH_INT : *(int*)pNumOpt += 1 ; break ; + } } } } - | tRuled tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tPLUSPLUS FExpr tEND { - List_Read($7,0,&d); - i = (int)d; - EdgeLoop *el = FindEdgeLoop(i,THEM); - if(!el) - vyyerror("Unkown Loop %d", i); + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); else{ - j = List_Nbr(el->Curves); - if(j==4) - $$.Type = MSH_SURF_REGL; - else if(j==3) - $$.Type = MSH_SURF_TRIC; - else - vyyerror("Wrong Definition of Ruled Surface %d: " - "%d Borders Instead of 3 or 4", - (int)$4, j); - Cdbz101((int)$4,$$.Type,0,0,0,0,0,NULL,$7,NULL); - $$.Num = (int)$4; + if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; + case GMSH_INT : *(int*)pNumOpt += 1 ; break ; + } + } } } - | tNurbs tSurface tWith tBounds '(' FExpr ')' tAFFECT - ListOfListOfDouble tKnots '{' ListOfDouble ',' ListOfDouble '}' - tOrder '{' FExpr ',' FExpr '}' tEND - { - CreateNurbsSurface ( (int) $6 , (int)$18 , (int)$20 , $9, $12, $14); - $$.Type = MSH_SURF_NURBS; - $$.Num = (int)$6; - } - | tNurbs tSurface '(' FExpr ')' tAFFECT - ListOfListOfDouble tKnots '{' ListOfDouble ',' ListOfDouble '}' - tOrder '{' FExpr ',' FExpr '}' tEND - { - CreateNurbsSurfaceSupport ((int)$4, (int) $16 , (int) $18 , $7, $10, $12); - } - | tPhysical tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND - { - Cdbz101((int)$4,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,$7,NULL); - $$.Type = MSH_PHYSICAL_SURFACE; - $$.Num = (int)$4; - } - | tSurface tLoop '(' FExpr ')' tAFFECT ListOfDouble tEND - { - Cdbz101((int)$4,MSH_SURF_LOOP,0,0,0,0,0,NULL,$7,NULL); - $$.Type = MSH_SURF_LOOP; - $$.Num = (int)$4; - } - | tSurface '{' FExpr '}' tEND - { - $$.Num = (int)$3; - Surface *s = FindSurface($$.Num,THEM); - if(!s) - vyyerror("Unknown Surface %d", $$.Num); - else - $$.Type = s->Typ; - } - /* -------- Volumes -------- */ - - | tComplex tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND - { - Cdbz101((int)$4,MSH_VOLUME,0,0,0,0,0,NULL,$7,NULL); - $$.Type = MSH_VOLUME; - $$.Num = (int)$4; - } - | tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND + | tSTRING '.' tSTRING tMINUSMINUS tEND { - Cdbz101((int)$3,MSH_VOLUME,0,0,0,0,0,NULL,$6,NULL); - $$.Type = MSH_VOLUME; - $$.Num = (int)$3; + if(!(pNumCat = Get_NumberOptionCategory($1))) + vyyerror("Unknown Numeric Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) + vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; + case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; + } + } + } } - | tPhysical tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tMINUSMINUS FExpr tEND { - Cdbz101((int)$4,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,$7,NULL); - $$.Type = MSH_PHYSICAL_VOLUME; - $$.Num = (int)$4; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; + case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; + case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; + case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; + } + } + } } -; -/* ------------------- - T R A N S F O R M - ------------------- */ + /* -------- Option Arrays -------- */ -Transform : - tTranslate VExpr '{' MultipleShape '}' - { - TranslateShapes ($2[0],$2[1],$2[2],$4,1); - $$ = $4; - } - | tRotate '{' VExpr ',' VExpr ',' FExpr '}' '{' MultipleShape '}' - { - RotateShapes($3[0],$3[1],$3[2],$5[0],$5[1],$5[2],$7,$10); - $$ = $10; - } - | tSymmetry VExpr '{' MultipleShape '}' + | tSTRING '.' tSTRING tAFFECT VExpr tEND { - SymmetryShapes($2[0],$2[1],$2[2],$2[3],$4,1); - $$ = $4; + if(!(pArrCat = Get_ArrayOptionCategory($1))) + vyyerror("Unknown Array Option Class '%s'", $1); + else{ + if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i))) + vyyerror("Unknown Array Option '%s.%s'", $1, $3); + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] = $5[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] = (float)$5[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] = (long)$5[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] = (int)$5[j] ; + break ; + } + } + } } - | tDilate '{' VExpr ',' FExpr '}' '{' MultipleShape '}' + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECT VExpr tEND { - DilatShapes($3[0],$3[1],$3[2],$5,$8,1); - $$ = $8; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Array Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] = $10[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] = (float)$10[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] = (long)$10[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] = (int)$10[j] ; + break ; + } + } + } } -; -MultipleShape : - Duplicata { $$ = $1; } - | ListOfShapes { $$ = $1; } - | Transform { $$ = $1; } -; - -ListOfShapes : - /* none */ + | tSTRING '.' tSTRING tAFFECTPLUS VExpr tEND { - $$ = List_Create(3,3,sizeof(Shape)); - } - | ListOfShapes Shape + if(!(pArrCat = Get_ArrayOptionCategory($1))) + vyyerror("Unknown Array Option Class '%s'", $1); + else{ + if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i))) + vyyerror("Unknown Array Option '%s.%s'", $1, $3); + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] += $5[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] += (float)$5[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] += (long)$5[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] += (int)$5[j] ; + break ; + } + } + } + } + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTPLUS VExpr tEND { - List_Add($$,&$2); - $$ = $1; + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Array Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] += $10[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] += (float)$10[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] += (long)$10[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] += (int)$10[j] ; + break ; + } + } + } } -; -/* ------------------- - D U P L I C A T A - ------------------- */ - -Duplicata : - tDuplicata '{' ListOfShapes '}' + | tSTRING '.' tSTRING tAFFECTMINUS VExpr tEND { - $$ = List_Create(3,3,sizeof(Shape)); - for(i=0;i<List_Nbr($3);i++){ - List_Read ($3,i,&TheShape); - CopyShape(TheShape.Type,TheShape.Num,&j); - TheShape.Num = j; - List_Add($$,&TheShape); + if(!(pArrCat = Get_ArrayOptionCategory($1))) + vyyerror("Unknown Array Option Class '%s'", $1); + else{ + if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i))) + vyyerror("Unknown Array Option '%s.%s'", $1, $3); + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] -= $5[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] -= (float)$5[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] -= (long)$5[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] -= (int)$5[j] ; + break ; + } + } } } -; - - -/* ------------- - D E L E T E - ------------- */ - -Delete : - tDelete '{' ListOfShapes '}' + | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTMINUS VExpr tEND { - for(i=0;i<List_Nbr($3);i++){ - List_Read ($3,i,&TheShape); - DeleteShape(TheShape.Type,TheShape.Num); + if(strcmp($1, "Post")) + vyyerror("Unknown View Option Class '%s'", $1); + else{ + if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){ + if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); + else vyyerror("Unknown Array Option '%s.View[%d].%s'", + $1, (int)$5, $8); + } + else{ + switch(i){ + case GMSH_DOUBLE : + for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] -= $10[j] ; + break ; + case GMSH_FLOAT : + for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] -= (float)$10[j] ; + break ; + case GMSH_LONG : + for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] -= (long)$10[j] ; + break ; + case GMSH_INT : + for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] -= (int)$10[j] ; + break ; + } + } } } -; + /* -------- Option Colors -------- */ -/* ----------- - M A C R O - ----------- */ - -Macro : - tInclude tBIGSTR tEND + | tSTRING '.' tColor '.' tSTRING tAFFECT Color tEND { - yyinTab[RecursionLevel++] = yyin; - strcpy(tmpstring, ThePathForIncludes); - if((yyin = fopen(strcat(tmpstring,$2),"r"))){ - strcpy(yynameTab[RecursionLevel-1],yyname); - yylinenoTab[RecursionLevel-1]=yylineno; - yylineno=1; - strcpy(yyname,$2); - while(!feof(yyin)){ - yyparse(); - } - fclose(yyin); - yyin = yyinTab[--RecursionLevel]; - strcpy(yyname,yynameTab[RecursionLevel]); - yylineno = yylinenoTab[RecursionLevel]; - } + if(!(pColCat = Get_ColorOptionCategory($1))) + vyyerror("Unknown Color Option Class '%s'", $1); else{ - vyyerror("Unknown File '%s'", $2) ; - yyin = yyinTab[--RecursionLevel]; + if(!(pColOpt = Get_ColorOption($5, pColCat))) + vyyerror("Unknown Color Option '%s.%s'", $1, $5); + else{ + *pColOpt = $7 ; + } } } -; -/* ----------------- - C O M M A N D - ----------------- */ - -Command : - tPrintf tBIGSTR tEND - { - char ext[6]; - strcpy(ext,$2+(strlen($2)-4)); - Replot(); - extern void CreateImage (FILE *fp); - FILE *fp = 0; - if(!strcmp(ext,".gif")) - { - fp = fopen($2,"wb"); - CTX.print.type = PRINT_GL2GIF; - } - else if(!strcmp(ext,".eps")) - { - fp = fopen($2,"w"); - CTX.print.type = PRINT_GL2PS_RECURSIVE; - } - else if(!strcmp(ext,".xpm")) - { - fp = fopen($2,"wb"); - CTX.print.type = PRINT_XDUMP; - CTX.print.format = FORMAT_XPM; - } - if(fp) - { - CreateImage(fp); - fclose(fp); - } - } - | tExit tEND - { - exit(0); - } - | tMerge tBIGSTR tEND - { - FILE *ff = yyin; - MergeProblem($2); - yyin = ff; - } ; -/* --------------- - L O O P - --------------- */ -Loop : +/* ----------- + S H A P E + ----------- */ - tFor '(' FExpr tDOTS FExpr ')' - { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = (int)$3 ; - LoopControlVariablesTab[ImbricatedLoop][1] = (int)$5 ; - LoopControlVariablesTab[ImbricatedLoop][2] = 1 ; - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - } - | tFor '(' FExpr tDOTS FExpr tDOTS FExpr ')' - { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - // here, we seek remember the position in yyin - LoopControlVariablesTab[ImbricatedLoop][0] = (int)$3 ; - LoopControlVariablesTab[ImbricatedLoop][1] = (int)$5 ; - LoopControlVariablesTab[ImbricatedLoop][2] = (int)$7 ; - fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); - } - | tEndFor - { - if(LoopControlVariablesTab[ImbricatedLoop-1][1] > - LoopControlVariablesTab[ImbricatedLoop-1][0]) - { - FILE* ff; - if(RecursionLevel) - ff = yyinTab[RecursionLevel-1]; - else - ff = yyin; - LoopControlVariablesTab[ImbricatedLoop-1][0] += - LoopControlVariablesTab[ImbricatedLoop-1][2]; - fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); - } - else - { - ImbricatedLoop--; - } - } +Shape : -/* --------------- - S C R I P T - --------------- + /* -------- Points -------- */ -Script : - tScript '(' FExpr ')' '{' GeomFormatList '}' tEND - { - // here put something to close the script which - // number is (int) $3 - } -; -*/ + tPoint '(' FExpr ')' tAFFECT VExpr tEND + { + Cdbpts101((int)$3,$6[0],$6[1],$6[2],$6[3],$6[4]); + $$.Type = MSH_POINT; + $$.Num = (int)$3; + } + | tPhysical tPoint '(' FExpr ')' tAFFECT ListOfDouble tEND + { + Cdbz101((int)$4,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,$7,NULL); + $$.Type = MSH_PHYSICAL_POINT; + $$.Num = (int)$4; + } + | tAttractor tPoint ListOfDouble tAFFECT '{' FExpr ',' FExpr ',' FExpr '}' tEND + { + Vertex *v; + Attractor *a; + double p; + int ip; + for(int i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&p); + ip = (int)p; + v = FindVertex(ip,THEM); + if(!v) + vyyerror("Unkown Point %d", ip); + else{ + a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, + $6,$8,$10,v,NULL,NULL); + List_Add(THEM->Metric->Attractors,&a); + } + } + } + | tCharacteristic tLength ListOfDouble tAFFECT FExpr tEND + { + for(i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&d); + Vertex *v = FindVertex((int)d,THEM); + if(!v) + vyyerror("Unkown Point %d", (int)d); + else + v->lc = $5; + } + } + | tPoint '{' FExpr '}' tEND + { + $$.Type = MSH_POINT; + $$.Num = (int)$3; + } -/* --------------- - E X T R U D E - --------------- */ + /* -------- Lines -------- */ -Extrude : - tExtrude tPoint '{' FExpr ',' VExpr '}' tEND + | tLine '(' FExpr ')' tAFFECT ListOfDouble tEND { - Curve *pc, *prc; - Extrude_ProtudePoint(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,&pc,&prc,NULL); + Cdbseg101((int)$3,MSH_SEGM_LINE,1,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + $$.Type = MSH_SEGM_LINE; + $$.Num = (int)$3; } - | tExtrude tPoint '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' tEND + | tSpline '(' FExpr ')' tAFFECT ListOfDouble tEND { - Curve *pc, *prc; - Extrude_ProtudePoint(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10, - &pc,&prc,NULL); + Cdbseg101((int)$3,MSH_SEGM_SPLN,3,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + $$.Type = MSH_SEGM_SPLN; + $$.Num = (int)$3; } - | tExtrude tLine'{' FExpr ',' VExpr '}' tEND + | tAttractor tLine ListOfDouble tAFFECT '{' FExpr ',' FExpr ',' FExpr '}' tEND { - Extrude_ProtudeCurve(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,NULL); + Curve *c; + Attractor *a; + double p; + int ip; + for(int i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&p); + ip = (int)p; + c = FindCurve(ip,THEM); + if(!c) + vyyerror("Unkown Curve %d", ip); + else{ + a = Create_Attractor(List_Nbr(THEM->Metric->Attractors)+1, + $6,$8,$10,NULL,c,NULL); + List_Add(THEM->Metric->Attractors,&a); + } + } } - | tExtrude tLine'{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' tEND + | tCircle '(' FExpr ')' tAFFECT ListOfDouble tEND { - Extrude_ProtudeCurve(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10,NULL); + Cdbseg101((int)$3,MSH_SEGM_CIRC,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + $$.Type = MSH_SEGM_CIRC ; + $$.Num = (int)$3; } - | tExtrude tSurface '{' FExpr ',' VExpr '}' tEND + | tCircle '(' FExpr ')' tAFFECT ListOfDouble tPlane VExpr tEND { - Extrude_ProtudeSurface(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,0,NULL); + List_T *temp; + int i,j; + double d; + temp = List_Create(List_Nbr($6),1,sizeof(int)); + for(i=0;i<List_Nbr($6);i++){ + List_Read($6,i,&d); + j = (int)d; + List_Add(temp,&j); + } + AddCircleInDataBase ((int) $3, MSH_SEGM_CIRC, temp, $8); + List_Delete(temp); + $$.Type = MSH_SEGM_CIRC ; + $$.Num = (int)$3; } - | tExtrude tSurface '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' tEND + | tParametric '(' FExpr ')' tAFFECT + '{' FExpr ',' FExpr ',' tBIGSTR ',' tBIGSTR ',' tBIGSTR '}' tEND { - Extrude_ProtudeSurface(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10,0,NULL); + Cdbseg101((int)$3,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,$7,$9,$11,$13,$15); + $$.Type = MSH_SEGM_PARAMETRIC ; + $$.Num = (int)$3; } - | tExtrude tSurface '{' FExpr ',' VExpr '}' '{' ExtrudeParameters '}' tEND - { - int vol = NEWREG(); - Extrude_ProtudeSurface(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,vol,&extr); - } - | tExtrude tSurface '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' '{' ExtrudeParameters '}'tEND - { - int vol = NEWREG(); - Extrude_ProtudeSurface(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10,vol,&extr); - } -; - -ExtrudeParameters : - ExtrudeParameter + | tEllipsis '(' FExpr ')' tAFFECT ListOfDouble tEND { + Cdbseg101((int)$3,MSH_SEGM_ELLI,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + $$.Type = MSH_SEGM_ELLI ; + $$.Num = (int)$3; } - | ExtrudeParameters ExtrudeParameter + | tPhysical tLine '(' FExpr ')' tAFFECT ListOfDouble tEND + { + Cdbz101((int)$4,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,$7,NULL); + $$.Type = MSH_PHYSICAL_LINE; + $$.Num = (int)$4; + } + | tLine tLoop '(' FExpr ')' tAFFECT ListOfDouble tEND + { + $$.Type = MSH_SEGM_LOOP; + Cdbz101((int)$4,$$.Type,0,0,0,0,0,NULL,$7,NULL); + $$.Num = (int)$4; + } + | tBSpline '(' FExpr ')' tAFFECT ListOfDouble tEND { + Cdbseg101((int)$3,MSH_SEGM_BSPLN,2,$6,NULL,-1,-1,0.,1.,NULL,NULL,NULL); + $$.Type = MSH_SEGM_BSPLN; + $$.Num = (int)$3; } -; - -ExtrudeParameter : - tLayers '{' ListOfDouble ',' ListOfDouble ',' ListOfDouble '}' tEND + | tNurbs '(' FExpr ')' tAFFECT ListOfDouble tKnots ListOfDouble tOrder FExpr tEND { + List_T *Temp; + int i; double d; - int j; - extr.mesh.NbLayer = List_Nbr($3); - extr.mesh.ExtrudeMesh = true; - for(int i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&d); - j = (int)d; - extr.mesh.NbElmLayer[i] = j; - List_Read($5,i,&d); - j = (int)d; - extr.mesh.ZonLayer[i] = j; - List_Read($7,i,&d); - extr.mesh.hLayer[i] = d; + if((int)$10 + 1 + List_Nbr($6) != List_Nbr($8)){ + vyyerror("Wrong Definition of Nurbs Curve %d: " + "[Degree]%d + 1 + [NbPts]%d != [NbKnots]%d", + (int)$3, (int)$10, List_Nbr($6), List_Nbr($8)); + } + Temp = List_Create(List_Nbr($6),1,sizeof(int)); + for(i=0;i<List_Nbr($6);i++) { + List_Read($6,i,&d); + j = (int)d; + List_Add(Temp,&j); } + AddCurveInDataBase ((int)$3,MSH_SEGM_NURBS,(int)$10,Temp,$8,-1,-1,0.,1.); + List_Delete(Temp); } - | tRecombine tEND + | tLine '{' FExpr '}' tEND { - extr.mesh.Recombine = true; + $$.Num = (int)$3; + Curve *c = FindCurve($$.Num,THEM); + if(!c) + vyyerror("Unkown Curve %d", $$.Num); + else + $$.Type = c->Typ; } -; -/* ------------------- - T R A N S F I N I - ------------------- */ + /* -------- Surfaces -------- */ -Transfini : - tTransfinite tLine ListOfDouble tAFFECT FExpr tEND + | tPlane tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND { - Curve *c; - for(i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&d); - j = (int)fabs(d); - c = FindCurve(j,THEM); - if(!c) - vyyerror("Unkown Curve %d", j); - else{ - c->Method = TRANSFINI; - c->ipar[0] = (int)$5; - c->ipar[1] = sign(d); - c->dpar[0] = 1.0; - } - } + Cdbz101((int)$4,MSH_SURF_PLAN,0,0,0,0,0,NULL,$7,NULL); + $$.Type = MSH_SURF_PLAN; + $$.Num = (int)$4; } - | tTransfinite tLine ListOfDouble tAFFECT FExpr tUsing tProgression FExpr tEND + | tTrimmed tSurface '(' FExpr ')' tAFFECT FExpr ListOfDouble tEND { - Curve *c; - for(i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&d); - j = (int)fabs(d); - c = FindCurve(j,THEM); - if(!c) - vyyerror("Unkown Curve %d", j); + Surface *s,*support; + support = FindSurface((int)$7,THEM); + if(!support) + vyyerror("Unkown Surface %d", (int)$7); + else{ + Cdbz101((int)$4,MSH_SURF_PLAN,0,0,0,0,0,NULL,$8,NULL); + s = FindSurface((int)$4,THEM); + if(!s) + vyyerror("Unkown Surface %d", (int)$4); else{ - c->Method = TRANSFINI; - c->ipar[0] = (int)$5; - c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */ - c->dpar[0] = fabs($8); + s->Typ = MSH_SURF_TRIMMED; + s->Support = support; + $$.Type = MSH_SURF_TRIMMED; + $$.Num = (int)$4; } } } - | tTransfinite tLine ListOfDouble tAFFECT FExpr tUsing tBump FExpr tEND + | tRuled tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND { - Curve *c; - for(i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&d); - j = (int)fabs(d); - c = FindCurve(j,THEM); - if(!c) - vyyerror("Unkown Curve %d", j); - else{ - c->Method = TRANSFINI; - c->ipar[0] = (int)$5; - c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */ - c->dpar[0] = fabs($8); - } + List_Read($7,0,&d); + i = (int)d; + EdgeLoop *el = FindEdgeLoop(i,THEM); + if(!el) + vyyerror("Unkown Loop %d", i); + else{ + j = List_Nbr(el->Curves); + if(j==4) + $$.Type = MSH_SURF_REGL; + else if(j==3) + $$.Type = MSH_SURF_TRIC; + else + vyyerror("Wrong Definition of Ruled Surface %d: " + "%d Borders Instead of 3 or 4", + (int)$4, j); + Cdbz101((int)$4,$$.Type,0,0,0,0,0,NULL,$7,NULL); + $$.Num = (int)$4; } } - | tTransfinite tSurface '{' FExpr '}' tAFFECT ListOfDouble tEND + | tNurbs tSurface tWith tBounds '(' FExpr ')' tAFFECT + ListOfListOfDouble tKnots '{' ListOfDouble ',' ListOfDouble '}' + tOrder '{' FExpr ',' FExpr '}' tEND { - Surface *s = FindSurface((int)$4,THEM); - if(!s) - vyyerror("Unkown Surface %d", (int)$4); - else{ - s->Method = TRANSFINI; - k = List_Nbr($7); - if(k!=3 && k!=4){ - vyyerror("Wrong Definition of Transfinite Surface %d: " - "%d Points Instead of 3 or 4" , $4, k) ; - } - else{ - for(i=0;i<k;i++){ - List_Read($7,i,&d); - j = (int)fabs(d); - s->ipar[i] = j; - } - } - } + CreateNurbsSurface ( (int) $6 , (int)$18 , (int)$20 , $9, $12, $14); + $$.Type = MSH_SURF_NURBS; + $$.Num = (int)$6; } - | tElliptic tSurface '{' FExpr '}' tAFFECT ListOfDouble tEND + | tNurbs tSurface '(' FExpr ')' tAFFECT + ListOfListOfDouble tKnots '{' ListOfDouble ',' ListOfDouble '}' + tOrder '{' FExpr ',' FExpr '}' tEND { - Surface *s = FindSurface((int)$4,THEM); - if(!s) - vyyerror("Unkown Surface %d", (int)$4); - else{ - s->Method = ELLIPTIC; - k = List_Nbr($7); - if(k != 4) - vyyerror("Wrong Definition of Elliptic Surface %d: " - "%d Points Instead of 4" , $4, k) ; - else{ - for(i=0;i<k;i++){ - List_Read($7,i,&d); - j = (int)fabs(d); - s->ipar[i] = j; - } - } - } + CreateNurbsSurfaceSupport ((int)$4, (int) $16 , (int) $18 , $7, $10, $12); } - | tTransfinite tVolume '{' FExpr '}' tAFFECT ListOfDouble tEND + | tPhysical tSurface '(' FExpr ')' tAFFECT ListOfDouble tEND { - Volume *v = FindVolume((int)$4,THEM); - if(!v) - vyyerror("Unkown Volume %d", (int)$4); - else{ - v->Method = TRANSFINI; - k = List_Nbr($7); - if(k!=6 && k!=8) - vyyerror("Wrong Definition of Transfinite Volume %d: " - "%d Points Instead of 6 or 8" , $4, k) ; - else{ - for(i=0;i<k;i++){ - List_Read($7,i,&d); - j = (int)fabs(d); - v->ipar[i] = j; - } - } - } + Cdbz101((int)$4,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,$7,NULL); + $$.Type = MSH_PHYSICAL_SURFACE; + $$.Num = (int)$4; } - | tRecombine tSurface ListOfDouble tAFFECT FExpr tEND + | tSurface tLoop '(' FExpr ')' tAFFECT ListOfDouble tEND { - Surface *s; - for(i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&d); - j = (int)d; - s = FindSurface(j,THEM); - if(!s){ - /* Allow generic lists, even if the surfaces don't exist - vyyerror("Unkown Surface %d", j); */ - } - else{ - s->Recombine = 1; - s->RecombineAngle = $5; - } - } + Cdbz101((int)$4,MSH_SURF_LOOP,0,0,0,0,0,NULL,$7,NULL); + $$.Type = MSH_SURF_LOOP; + $$.Num = (int)$4; } - | tRecombine tSurface ListOfDouble tEND + | tSurface '{' FExpr '}' tEND { - Surface *s; - for(i=0;i<List_Nbr($3);i++){ - List_Read($3,i,&d); - j = (int)d; - s = FindSurface(j,THEM); - if(!s){ - /* Allow generic lists, even if the surfaces don't exist - vyyerror("Unkown Surface %d", j); */ - } - else{ - s->Recombine = 1; - s->RecombineAngle = 30.; - } - } - } + $$.Num = (int)$3; + Surface *s = FindSurface($$.Num,THEM); + if(!s) + vyyerror("Unknown Surface %d", $$.Num); + else + $$.Type = s->Typ; + } + + /* -------- Volumes -------- */ + + | tComplex tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND + { + Cdbz101((int)$4,MSH_VOLUME,0,0,0,0,0,NULL,$7,NULL); + $$.Type = MSH_VOLUME; + $$.Num = (int)$4; + } + | tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND + { + Cdbz101((int)$3,MSH_VOLUME,0,0,0,0,0,NULL,$6,NULL); + $$.Type = MSH_VOLUME; + $$.Num = (int)$3; + } + | tPhysical tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND + { + Cdbz101((int)$4,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,$7,NULL); + $$.Type = MSH_PHYSICAL_VOLUME; + $$.Num = (int)$4; + } ; - /* ------------------- - C O H E R E N C E + T R A N S F O R M ------------------- */ -Coherence : - tCoherence tEND - { - Coherence_PS(); +Transform : + tTranslate VExpr '{' MultipleShape '}' + { + TranslateShapes ($2[0],$2[1],$2[2],$4,1); + $$ = $4; + } + | tRotate '{' VExpr ',' VExpr ',' FExpr '}' '{' MultipleShape '}' + { + RotateShapes($3[0],$3[1],$3[2],$5[0],$5[1],$5[2],$7,$10); + $$ = $10; + } + | tSymmetry VExpr '{' MultipleShape '}' + { + SymmetryShapes($2[0],$2[1],$2[2],$2[3],$4,1); + $$ = $4; + } + | tDilate '{' VExpr ',' FExpr '}' '{' MultipleShape '}' + { + DilatShapes($3[0],$3[1],$3[2],$5,$8,1); + $$ = $8; } ; -/* --------------- - O P T I O N S - --------------- */ - -Options : - /* empty */ - | Options Option +MultipleShape : + Duplicata { $$ = $1; } + | ListOfShapes { $$ = $1; } + | Transform { $$ = $1; } ; -Option : - Printf +ListOfShapes : + /* none */ { + $$ = List_Create(3,3,sizeof(Shape)); + } + | ListOfShapes Shape + { + List_Add($$,&$2); + $$ = $1; } +; - /* -------- Strings -------- */ +/* ------------------- + D U P L I C A T A + ------------------- */ - | tSTRING '.' tSTRING tAFFECT tBIGSTR tEND - { - if(!(pStrCat = Get_StringOptionCategory($1))) - vyyerror("Unknown String Option Class '%s'", $1); - else{ - if(!(pStrOpt = Get_StringOption($3, pStrCat))) - vyyerror("Unknown String Option '%s.%s'", $1, $3); - else{ - *pStrOpt = $5 ; - } +Duplicata : + tDuplicata '{' ListOfShapes '}' + { + $$ = List_Create(3,3,sizeof(Shape)); + for(i=0;i<List_Nbr($3);i++){ + List_Read ($3,i,&TheShape); + CopyShape(TheShape.Type,TheShape.Num,&j); + TheShape.Num = j; + List_Add($$,&TheShape); } } +; - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECT tBIGSTR tEND + +/* ------------- + D E L E T E + ------------- */ + +Delete : + tDelete '{' ListOfShapes '}' { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pStrOpt = Get_StringViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown String Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - *pStrOpt = $10 ; - } + for(i=0;i<List_Nbr($3);i++){ + List_Read ($3,i,&TheShape); + DeleteShape(TheShape.Type,TheShape.Num); } } +; - /* -------- Numbers -------- */ - | tSTRING '.' tSTRING tAFFECT FExpr tEND +/* ----------- + M A C R O + ----------- */ + +Macro : + tInclude tBIGSTR tEND { - if(!(pNumCat = Get_NumberOptionCategory($1))) - vyyerror("Unknown Numeric Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt = $5 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt = (float)$5 ; break ; - case GMSH_LONG : *(long*)pNumOpt = (long)$5 ; break ; - case GMSH_INT : *(int*)pNumOpt = (int)$5 ; break ; - } + yyinTab[RecursionLevel++] = yyin; + strcpy(tmpstring, ThePathForIncludes); + if((yyin = fopen(strcat(tmpstring,$2),"r"))){ + strcpy(yynameTab[RecursionLevel-1],yyname); + yylinenoTab[RecursionLevel-1]=yylineno; + yylineno=1; + strcpy(yyname,$2); + while(!feof(yyin)){ + yyparse(); } + fclose(yyin); + yyin = yyinTab[--RecursionLevel]; + strcpy(yyname,yynameTab[RecursionLevel]); + yylineno = yylinenoTab[RecursionLevel]; } - } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECT FExpr tEND - { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); else{ - if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt = $10 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt = (float)$10 ; break ; - case GMSH_LONG : *(long*)pNumOpt = (long)$10 ; break ; - case GMSH_INT : *(int*)pNumOpt = (int)$10 ; break ; - } - } + vyyerror("Unknown File '%s'", $2) ; + yyin = yyinTab[--RecursionLevel]; } } +; +/* ----------------- + C O M M A N D + ----------------- */ + +Command : + tPrintf tBIGSTR tEND + { + char ext[6]; + strcpy(ext,$2+(strlen($2)-4)); + Replot(); + extern void CreateImage (FILE *fp); + FILE *fp = 0; + if(!strcmp(ext,".gif")) + { + fp = fopen($2,"wb"); + CTX.print.type = PRINT_GL2GIF; + } + else if(!strcmp(ext,".eps")) + { + fp = fopen($2,"w"); + CTX.print.type = PRINT_GL2PS_RECURSIVE; + } + else if(!strcmp(ext,".xpm")) + { + fp = fopen($2,"wb"); + CTX.print.type = PRINT_XDUMP; + CTX.print.format = FORMAT_XPM; + } + + if(fp) + { + CreateImage(fp); + fclose(fp); + } + } + | tExit tEND + { + exit(0); + } + | tMerge tBIGSTR tEND + { + FILE *ff = yyin; + MergeProblem($2); + yyin = ff; + } +; + +/* --------------- + L O O P + --------------- */ + +Loop : + + tFor '(' FExpr tDOTS FExpr ')' + { + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = (int)$3 ; + LoopControlVariablesTab[ImbricatedLoop][1] = (int)$5 ; + LoopControlVariablesTab[ImbricatedLoop][2] = 1 ; + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + } + | tFor '(' FExpr tDOTS FExpr tDOTS FExpr ')' + { + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + // here, we seek remember the position in yyin + LoopControlVariablesTab[ImbricatedLoop][0] = (int)$3 ; + LoopControlVariablesTab[ImbricatedLoop][1] = (int)$5 ; + LoopControlVariablesTab[ImbricatedLoop][2] = (int)$7 ; + fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]); + } + | tEndFor + { + if(LoopControlVariablesTab[ImbricatedLoop-1][1] > + LoopControlVariablesTab[ImbricatedLoop-1][0]) + { + FILE* ff; + if(RecursionLevel) + ff = yyinTab[RecursionLevel-1]; + else + ff = yyin; + LoopControlVariablesTab[ImbricatedLoop-1][0] += + LoopControlVariablesTab[ImbricatedLoop-1][2]; + fsetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]); + } + else + { + ImbricatedLoop--; + } + } + +/* --------------- + S C R I P T + --------------- + +Script : + tScript '(' FExpr ')' '{' GeomFormatList '}' tEND + { + // here put something to close the script which + // number is (int) $3 + } +; +*/ - | tSTRING '.' tSTRING tAFFECTPLUS FExpr tEND + +/* --------------- + E X T R U D E + --------------- */ + +Extrude : + tExtrude tPoint '{' FExpr ',' VExpr '}' tEND { - if(!(pNumCat = Get_NumberOptionCategory($1))) - vyyerror("Unknown Numeric Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += $5 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += (float)$5 ; break ; - case GMSH_LONG : *(long*)pNumOpt += (long)$5 ; break ; - case GMSH_INT : *(int*)pNumOpt += (int)$5 ; break ; - } - } - } + Curve *pc, *prc; + Extrude_ProtudePoint(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,&pc,&prc,NULL); } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTPLUS FExpr tEND + | tExtrude tPoint '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += $10 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += (float)$10 ; break ; - case GMSH_LONG : *(long*)pNumOpt += (long)$10 ; break ; - case GMSH_INT : *(int*)pNumOpt += (int)$10 ; break ; - } - } - } + Curve *pc, *prc; + Extrude_ProtudePoint(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10, + &pc,&prc,NULL); } - - | tSTRING '.' tSTRING tAFFECTMINUS FExpr tEND + | tExtrude tLine'{' FExpr ',' VExpr '}' tEND { - if(!(pNumCat = Get_NumberOptionCategory($1))) - vyyerror("Unknown Numeric Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= $5 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= (float)$5 ; break ; - case GMSH_LONG : *(long*)pNumOpt -= (long)$5 ; break ; - case GMSH_INT : *(int*)pNumOpt -= (int)$5 ; break ; - } - } - } + Extrude_ProtudeCurve(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,NULL); } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTMINUS FExpr tEND + | tExtrude tLine'{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= $10 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= (float)$10 ; break ; - case GMSH_LONG : *(long*)pNumOpt -= (long)$10 ; break ; - case GMSH_INT : *(int*)pNumOpt -= (int)$10 ; break ; - } - } - } + Extrude_ProtudeCurve(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10,NULL); } - - | tSTRING '.' tSTRING tAFFECTTIMES FExpr tEND + | tExtrude tSurface '{' FExpr ',' VExpr '}' tEND { - if(!(pNumCat = Get_NumberOptionCategory($1))) - vyyerror("Unknown Numeric Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt *= $5 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt *= (float)$5 ; break ; - case GMSH_LONG : *(long*)pNumOpt *= (long)$5 ; break ; - case GMSH_INT : *(int*)pNumOpt *= (int)$5 ; break ; - } - } - } + Extrude_ProtudeSurface(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,0,NULL); } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTTIMES FExpr tEND + | tExtrude tSurface '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt *= $10 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt *= (float)$10 ; break ; - case GMSH_LONG : *(long*)pNumOpt *= (long)$10 ; break ; - case GMSH_INT : *(int*)pNumOpt *= (int)$10 ; break ; - } - } - } + Extrude_ProtudeSurface(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10,0,NULL); } + | tExtrude tSurface '{' FExpr ',' VExpr '}' '{' ExtrudeParameters '}' tEND + { + int vol = NEWREG(); + Extrude_ProtudeSurface(1,(int)$4,$6[0],$6[1],$6[2],0.,0.,0.,0.,vol,&extr); + } + | tExtrude tSurface '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' '{' ExtrudeParameters '}'tEND + { + int vol = NEWREG(); + Extrude_ProtudeSurface(0,(int)$4,$6[0],$6[1],$6[2],$8[0],$8[1],$8[2],$10,vol,&extr); + } +; - | tSTRING '.' tSTRING tAFFECTDIVIDE FExpr tEND +ExtrudeParameters : + ExtrudeParameter { - if(!(pNumCat = Get_NumberOptionCategory($1))) - vyyerror("Unknown Numeric Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt /= $5 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt /= (float)$5 ; break ; - case GMSH_LONG : *(long*)pNumOpt /= (long)$5 ; break ; - case GMSH_INT : *(int*)pNumOpt /= (int)$5 ; break ; - } - } - } } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTDIVIDE FExpr tEND + | ExtrudeParameters ExtrudeParameter { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt /= $10 ; break ; - case GMSH_FLOAT : *(float*)pNumOpt /= (float)$10 ; break ; - case GMSH_LONG : *(long*)pNumOpt /= (long)$10 ; break ; - case GMSH_INT : *(int*)pNumOpt /= (int)$10 ; break ; - } - } - } } +; - | tSTRING '.' tSTRING tPLUSPLUS tEND +ExtrudeParameter : + tLayers '{' ListOfDouble ',' ListOfDouble ',' ListOfDouble '}' tEND { - if(!(pNumCat = Get_NumberOptionCategory($1))) - vyyerror("Unknown Numeric Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; - case GMSH_INT : *(int*)pNumOpt += 1 ; break ; - } - } + double d; + int j; + extr.mesh.NbLayer = List_Nbr($3); + extr.mesh.ExtrudeMesh = true; + for(int i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&d); + j = (int)d; + extr.mesh.NbElmLayer[i] = j; + List_Read($5,i,&d); + j = (int)d; + extr.mesh.ZonLayer[i] = j; + List_Read($7,i,&d); + extr.mesh.hLayer[i] = d; } } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tPLUSPLUS FExpr tEND + | tRecombine tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt += 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt += 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt += 1 ; break ; - case GMSH_INT : *(int*)pNumOpt += 1 ; break ; - } - } - } + extr.mesh.Recombine = true; } +; - | tSTRING '.' tSTRING tMINUSMINUS tEND - { - if(!(pNumCat = Get_NumberOptionCategory($1))) - vyyerror("Unknown Numeric Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberOption($3, pNumCat, &i))) - vyyerror("Unknown Numeric Option '%s.%s'", $1, $3); - else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; - case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; - } - } - } - } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tMINUSMINUS FExpr tEND +/* ------------------- + T R A N S F I N I + ------------------- */ + +Transfini : + tTransfinite tLine ListOfDouble tAFFECT FExpr tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pNumOpt = Get_NumberViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Numeric Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } + Curve *c; + for(i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&d); + j = (int)fabs(d); + c = FindCurve(j,THEM); + if(!c) + vyyerror("Unkown Curve %d", j); else{ - switch(i){ - case GMSH_DOUBLE : *(double*)pNumOpt -= 1. ; break ; - case GMSH_FLOAT : *(float*)pNumOpt -= 1. ; break ; - case GMSH_LONG : *(long*)pNumOpt -= 1 ; break ; - case GMSH_INT : *(int*)pNumOpt -= 1 ; break ; - } + c->Method = TRANSFINI; + c->ipar[0] = (int)$5; + c->ipar[1] = sign(d); + c->dpar[0] = 1.0; } } } - - /* -------- Arrays -------- */ - - | tSTRING '.' tSTRING tAFFECT VExpr tEND + | tTransfinite tLine ListOfDouble tAFFECT FExpr tUsing tProgression FExpr tEND { - if(!(pArrCat = Get_ArrayOptionCategory($1))) - vyyerror("Unknown Array Option Class '%s'", $1); - else{ - if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i))) - vyyerror("Unknown Array Option '%s.%s'", $1, $3); + Curve *c; + for(i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&d); + j = (int)fabs(d); + c = FindCurve(j,THEM); + if(!c) + vyyerror("Unkown Curve %d", j); else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] = $5[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] = (float)$5[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] = (long)$5[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] = (int)$5[j] ; - break ; - } + c->Method = TRANSFINI; + c->ipar[0] = (int)$5; + c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */ + c->dpar[0] = fabs($8); } } } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECT VExpr tEND + | tTransfinite tLine ListOfDouble tAFFECT FExpr tUsing tBump FExpr tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Array Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } + Curve *c; + for(i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&d); + j = (int)fabs(d); + c = FindCurve(j,THEM); + if(!c) + vyyerror("Unkown Curve %d", j); else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] = $10[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] = (float)$10[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] = (long)$10[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] = (int)$10[j] ; - break ; - } + c->Method = TRANSFINI; + c->ipar[0] = (int)$5; + c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */ + c->dpar[0] = fabs($8); } } } - - | tSTRING '.' tSTRING tAFFECTPLUS VExpr tEND + | tTransfinite tSurface '{' FExpr '}' tAFFECT ListOfDouble tEND { - if(!(pArrCat = Get_ArrayOptionCategory($1))) - vyyerror("Unknown Array Option Class '%s'", $1); + Surface *s = FindSurface((int)$4,THEM); + if(!s) + vyyerror("Unkown Surface %d", (int)$4); else{ - if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i))) - vyyerror("Unknown Array Option '%s.%s'", $1, $3); + s->Method = TRANSFINI; + k = List_Nbr($7); + if(k!=3 && k!=4){ + vyyerror("Wrong Definition of Transfinite Surface %d: " + "%d Points Instead of 3 or 4" , $4, k) ; + } else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] += $5[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] += (float)$5[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] += (long)$5[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] += (int)$5[j] ; - break ; + for(i=0;i<k;i++){ + List_Read($7,i,&d); + j = (int)fabs(d); + s->ipar[i] = j; } } } } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTPLUS VExpr tEND + | tElliptic tSurface '{' FExpr '}' tAFFECT ListOfDouble tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); + Surface *s = FindSurface((int)$4,THEM); + if(!s) + vyyerror("Unkown Surface %d", (int)$4); else{ - if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Array Option '%s.View[%d].%s'", - $1, (int)$5, $8); - } - else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] += $10[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] += (float)$10[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] += (long)$10[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] += (int)$10[j] ; - break ; + s->Method = ELLIPTIC; + k = List_Nbr($7); + if(k != 4) + vyyerror("Wrong Definition of Elliptic Surface %d: " + "%d Points Instead of 4" , $4, k) ; + else{ + for(i=0;i<k;i++){ + List_Read($7,i,&d); + j = (int)fabs(d); + s->ipar[i] = j; } } } } - - | tSTRING '.' tSTRING tAFFECTMINUS VExpr tEND + | tTransfinite tVolume '{' FExpr '}' tAFFECT ListOfDouble tEND { - if(!(pArrCat = Get_ArrayOptionCategory($1))) - vyyerror("Unknown Array Option Class '%s'", $1); + Volume *v = FindVolume((int)$4,THEM); + if(!v) + vyyerror("Unkown Volume %d", (int)$4); else{ - if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i))) - vyyerror("Unknown Array Option '%s.%s'", $1, $3); + v->Method = TRANSFINI; + k = List_Nbr($7); + if(k!=6 && k!=8) + vyyerror("Wrong Definition of Transfinite Volume %d: " + "%d Points Instead of 6 or 8" , $4, k) ; else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<4; j++) ((double*)pArrOpt)[j] -= $5[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<4; j++) ((float*)pArrOpt)[j] -= (float)$5[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<4; j++) ((long*)pArrOpt)[j] -= (long)$5[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<4; j++) ((int*)pArrOpt)[j] -= (int)$5[j] ; - break ; + for(i=0;i<k;i++){ + List_Read($7,i,&d); + j = (int)fabs(d); + v->ipar[i] = j; } } } } - | tSTRING '.' tView '[' FExpr ']' '.' tSTRING tAFFECTMINUS VExpr tEND + | tRecombine tSurface ListOfDouble tAFFECT FExpr tEND { - if(strcmp($1, "Post")) - vyyerror("Unknown View Option Class '%s'", $1); - else{ - if(!(pArrOpt = Get_ArrayViewOption((int)$5, $8, &i))){ - if(i < 0) vyyerror("PostProcessing View %d does not Exist", (int)$5); - else vyyerror("Unknown Array Option '%s.View[%d].%s'", - $1, (int)$5, $8); + Surface *s; + for(i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&d); + j = (int)d; + s = FindSurface(j,THEM); + if(!s){ + /* Allow generic lists, even if the surfaces don't exist + vyyerror("Unkown Surface %d", j); */ } else{ - switch(i){ - case GMSH_DOUBLE : - for(j=0 ; j<3; j++) ((double*)pArrOpt)[j] -= $10[j] ; - break ; - case GMSH_FLOAT : - for(j=0 ; j<3; j++) ((float*)pArrOpt)[j] -= (float)$10[j] ; - break ; - case GMSH_LONG : - for(j=0 ; j<3; j++) ((long*)pArrOpt)[j] -= (long)$10[j] ; - break ; - case GMSH_INT : - for(j=0 ; j<3; j++) ((int*)pArrOpt)[j] -= (int)$10[j] ; - break ; - } + s->Recombine = 1; + s->RecombineAngle = $5; } } } - - /* -------- Colors -------- */ - - | tSTRING '.' tColor '.' tSTRING tAFFECT Color tEND + | tRecombine tSurface ListOfDouble tEND { - if(!(pColCat = Get_ColorOptionCategory($1))) - vyyerror("Unknown Color Option Class '%s'", $1); - else{ - if(!(pColOpt = Get_ColorOption($5, pColCat))) - vyyerror("Unknown Color Option '%s.%s'", $1, $5); - else{ - *pColOpt = $7 ; + Surface *s; + for(i=0;i<List_Nbr($3);i++){ + List_Read($3,i,&d); + j = (int)d; + s = FindSurface(j,THEM); + if(!s){ + /* Allow generic lists, even if the surfaces don't exist + vyyerror("Unkown Surface %d", j); */ } + else{ + s->Recombine = 1; + s->RecombineAngle = 30.; + } } - } - + } ; -/* --------------- - S C R I P T S - --------------- */ -Scripts : - /* empty */ - | Scripts Script -; +/* ------------------- + C O H E R E N C E + ------------------- */ -Script : - Option -/* - | Action - | Loop - | Test -*/ +Coherence : + tCoherence tEND + { + Coherence_PS(); + } ; diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 497f52a469fed6e81eb6372a31707ed09b9e34c0..b88c05f4d035fdd3cb054efbc758d3d04067cab2 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.23 2000-12-07 01:14:30 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.24 2000-12-07 08:46:27 geuzaine Exp $ */ #define FLEX_SCANNER @@ -283,116 +283,115 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 175 -#define YY_END_OF_BUFFER 176 -static yyconst short int yy_accept[965] = +#define YY_NUM_RULES 174 +#define YY_END_OF_BUFFER 175 +static yyconst short int yy_accept[959] = { 0, - 0, 0, 176, 174, 1, 1, 174, 5, 168, 174, - 6, 174, 174, 174, 174, 174, 169, 14, 2, 174, - 9, 174, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 174, 174, 0, 0, 22, 168, 18, 12, 19, - 10, 20, 11, 0, 171, 0, 0, 0, 0, 3, - 4, 13, 16, 170, 169, 0, 24, 21, 25, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 72, 173, 173, 173, 173, 173, 173, 173, 110, - 113, 104, 107, 173, 173, 173, 173, 173, 173, 173, - 112, 173, 115, 173, 106, 109, 173, 173, 173, 173, - 111, 114, 105, 108, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 17, 23, 0, 0, 15, - 0, 121, 122, 123, 124, 170, 0, 0, 172, 173, - - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 40, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 50, 173, 173, - 173, 173, 173, 173, 99, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 64, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 83, - 173, 173, 173, 173, 173, 173, 93, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - - 173, 173, 173, 0, 0, 0, 171, 0, 0, 170, - 173, 26, 173, 173, 173, 173, 173, 173, 28, 30, - 173, 173, 173, 173, 35, 173, 173, 173, 173, 173, - 173, 173, 38, 173, 173, 173, 173, 173, 39, 138, - 173, 173, 173, 173, 173, 173, 0, 173, 173, 173, - 102, 173, 173, 173, 55, 173, 57, 173, 173, 173, - 0, 173, 173, 132, 173, 173, 62, 173, 63, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 85, - 173, 84, 173, 82, 173, 173, 173, 173, 92, 173, - - 173, 173, 173, 173, 96, 173, 98, 173, 173, 173, - 173, 163, 8, 173, 173, 173, 173, 173, 0, 0, - 0, 170, 173, 173, 173, 173, 173, 173, 173, 32, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 45, 173, 173, 173, 173, 173, - 173, 173, 0, 173, 173, 173, 173, 173, 173, 56, - 173, 173, 58, 0, 173, 60, 173, 173, 65, 173, - 103, 173, 68, 173, 173, 69, 136, 173, 173, 173, - 73, 74, 75, 173, 173, 173, 173, 81, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 95, 173, 173, - - 173, 173, 173, 173, 160, 173, 173, 162, 167, 173, - 0, 0, 173, 173, 173, 173, 27, 29, 31, 173, - 173, 173, 37, 173, 151, 173, 173, 173, 173, 173, - 173, 42, 173, 173, 173, 47, 48, 173, 173, 173, - 173, 0, 144, 173, 173, 100, 173, 173, 173, 173, - 173, 173, 173, 137, 0, 173, 66, 61, 173, 67, - 173, 173, 173, 173, 173, 78, 173, 173, 80, 173, - 89, 86, 173, 173, 173, 173, 173, 173, 173, 133, - 173, 97, 173, 173, 173, 7, 161, 159, 0, 0, - 173, 173, 173, 173, 33, 173, 36, 173, 173, 173, - - 173, 173, 173, 173, 173, 173, 44, 173, 173, 173, - 173, 54, 0, 173, 173, 52, 173, 173, 173, 173, - 173, 173, 0, 59, 173, 173, 70, 173, 173, 173, - 173, 173, 173, 87, 173, 173, 173, 173, 173, 94, - 173, 173, 164, 173, 0, 0, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 0, 51, 53, 173, 173, 173, - 173, 173, 173, 0, 173, 173, 173, 173, 71, 173, - 173, 173, 88, 173, 173, 173, 173, 173, 165, 166, - 0, 0, 173, 173, 173, 173, 34, 173, 173, 173, - - 173, 173, 173, 173, 173, 43, 134, 49, 173, 127, - 0, 173, 173, 173, 140, 173, 173, 0, 173, 173, - 173, 173, 173, 79, 173, 173, 173, 173, 91, 173, - 0, 0, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 46, 173, 126, 0, 130, 173, - 173, 173, 173, 0, 173, 173, 173, 77, 173, 173, - 173, 173, 173, 173, 0, 0, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 0, - 173, 173, 139, 173, 0, 173, 173, 173, 76, 173, - 173, 173, 90, 173, 120, 0, 120, 173, 173, 173, - - 173, 173, 173, 173, 145, 173, 173, 173, 173, 0, - 173, 173, 173, 142, 173, 173, 173, 173, 173, 173, - 128, 119, 173, 131, 119, 173, 173, 173, 173, 173, - 173, 173, 173, 0, 173, 173, 153, 173, 125, 173, - 173, 173, 152, 173, 173, 173, 173, 173, 173, 173, - 173, 41, 0, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 116, 155, 149, 173, 0, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 143, 129, 141, 173, 173, 173, 150, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 135, 173, 173, - - 173, 173, 173, 156, 173, 173, 173, 173, 173, 148, - 147, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 154, 173, 173, 173, 173, 173, - 157, 173, 173, 118, 173, 173, 173, 173, 173, 173, - 117, 173, 173, 173, 173, 173, 173, 173, 173, 158, - 173, 173, 146, 0 + 0, 0, 175, 173, 1, 1, 173, 5, 167, 173, + 6, 173, 173, 173, 173, 173, 168, 14, 2, 173, + 9, 173, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 173, 173, 0, 0, 22, 167, 18, 12, 19, + 10, 20, 11, 0, 170, 0, 0, 0, 0, 3, + 4, 13, 16, 169, 168, 0, 24, 21, 25, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 71, 172, 172, 172, 172, 172, 172, 172, 109, 112, + 103, 106, 172, 172, 172, 172, 172, 172, 172, 111, + 172, 114, 172, 105, 108, 172, 172, 172, 172, 110, + 113, 104, 107, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 17, 23, 0, 0, 15, 0, + 120, 121, 122, 123, 169, 0, 0, 171, 172, 172, + + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 40, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 50, 172, 172, 172, + 172, 172, 172, 98, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 64, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 82, 172, 172, + 172, 172, 172, 172, 92, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 0, 0, 0, 170, 0, 0, 169, 172, 26, + 172, 172, 172, 172, 172, 172, 28, 30, 172, 172, + 172, 172, 35, 172, 172, 172, 172, 172, 172, 172, + 38, 172, 172, 172, 172, 172, 39, 137, 172, 172, + 172, 172, 172, 172, 0, 172, 172, 172, 101, 172, + 172, 172, 55, 172, 57, 172, 172, 172, 0, 172, + 172, 131, 172, 172, 62, 172, 63, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 84, 172, 83, 172, + 81, 172, 172, 172, 172, 91, 172, 172, 172, 172, + + 172, 95, 172, 97, 172, 172, 172, 172, 162, 8, + 172, 172, 172, 172, 172, 0, 0, 0, 169, 172, + 172, 172, 172, 172, 172, 172, 32, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 45, 172, 172, 172, 172, 172, 172, 172, 0, + 172, 172, 172, 172, 172, 172, 56, 172, 172, 58, + 0, 172, 60, 172, 172, 65, 172, 102, 172, 68, + 172, 69, 135, 172, 172, 172, 72, 73, 74, 172, + 172, 172, 172, 80, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 94, 172, 172, 172, 172, 172, 172, + + 159, 172, 172, 161, 166, 172, 0, 0, 172, 172, + 172, 172, 27, 29, 31, 172, 172, 172, 37, 172, + 150, 172, 172, 172, 172, 172, 172, 42, 172, 172, + 172, 47, 48, 172, 172, 172, 172, 0, 143, 172, + 172, 99, 172, 172, 172, 172, 172, 172, 172, 136, + 0, 172, 66, 61, 172, 67, 172, 172, 172, 172, + 77, 172, 172, 79, 172, 88, 85, 172, 172, 172, + 172, 172, 172, 172, 132, 172, 96, 172, 172, 172, + 7, 160, 158, 0, 0, 172, 172, 172, 172, 33, + 172, 36, 172, 172, 172, 172, 172, 172, 172, 172, + + 172, 44, 172, 172, 172, 172, 54, 0, 172, 172, + 52, 172, 172, 172, 172, 172, 172, 0, 59, 172, + 172, 172, 172, 172, 172, 172, 172, 86, 172, 172, + 172, 172, 172, 93, 172, 172, 163, 172, 0, 0, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 0, 51, + 53, 172, 172, 172, 172, 172, 172, 0, 172, 172, + 172, 172, 70, 172, 172, 172, 87, 172, 172, 172, + 172, 172, 164, 165, 0, 0, 172, 172, 172, 172, + 34, 172, 172, 172, 172, 172, 172, 172, 172, 43, + + 133, 49, 172, 126, 0, 172, 172, 172, 139, 172, + 172, 0, 172, 172, 172, 172, 172, 78, 172, 172, + 172, 172, 90, 172, 0, 0, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 46, 172, + 125, 0, 129, 172, 172, 172, 172, 0, 172, 172, + 172, 76, 172, 172, 172, 172, 172, 172, 0, 0, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 0, 172, 172, 138, 172, 0, 172, + 172, 172, 75, 172, 172, 172, 89, 172, 119, 0, + 119, 172, 172, 172, 172, 172, 172, 172, 144, 172, + + 172, 172, 172, 0, 172, 172, 172, 141, 172, 172, + 172, 172, 172, 172, 127, 118, 172, 130, 118, 172, + 172, 172, 172, 172, 172, 172, 172, 0, 172, 172, + 152, 172, 124, 172, 172, 172, 151, 172, 172, 172, + 172, 172, 172, 172, 172, 41, 0, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 115, 154, 148, + 172, 0, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 142, 128, 140, 172, 172, 172, + 149, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 134, 172, 172, 172, 172, 172, 155, 172, 172, + + 172, 172, 172, 147, 146, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 153, 172, + 172, 172, 172, 172, 156, 172, 172, 117, 172, 172, + 172, 172, 172, 172, 116, 172, 172, 172, 172, 172, + 172, 172, 172, 157, 172, 172, 145, 0 } ; static yyconst int yy_ec[256] = @@ -439,227 +438,227 @@ static yyconst int yy_meta[75] = 3, 3, 1, 1 } ; -static yyconst short int yy_base[970] = +static yyconst short int yy_base[964] = { 0, - 0, 0, 1226, 49, 50, 1227, 55, 52, 68, 73, + 0, 0, 1220, 49, 50, 1221, 55, 52, 68, 73, 53, 65, 78, 79, 111, 93, 130, 71, 77, 87, 109, 117, 123, 131, 176, 138, 178, 135, 175, 181, - 184, 81, 125, 209, 218, 186, 222, 234, 214, 274, - 309, 232, 269, 221, 240, 264, 260, 302, 293, 263, - 314, 315, 317, 1187, 1187, 1227, 355, 1227, 1227, 1227, - 1227, 1227, 1227, 1211, 361, 1210, 1209, 126, 1208, 1227, - 1227, 1227, 1227, 366, 381, 390, 1227, 1227, 1227, 0, - 72, 1175, 1181, 1185, 1164, 1157, 115, 1176, 1150, 1171, - 1143, 1150, 1169, 1168, 1169, 81, 1171, 1138, 1146, 1153, - - 1137, 353, 1159, 1160, 1140, 1139, 1134, 1166, 1160, 1167, - 1134, 1139, 188, 1165, 1155, 1138, 1126, 1125, 1121, 1147, - 1160, 1120, 1144, 1129, 1118, 1142, 1106, 1116, 1115, 115, - 1138, 1109, 1120, 1107, 1139, 1103, 1116, 1144, 1129, 1101, - 1093, 0, 1114, 117, 121, 1111, 1095, 1102, 1136, 0, - 0, 0, 0, 1090, 1093, 1096, 1097, 1090, 1089, 1093, - 0, 1112, 0, 1119, 0, 0, 1089, 170, 1091, 191, - 0, 0, 0, 0, 1094, 1088, 1079, 1092, 1092, 1081, - 1072, 1076, 1073, 1080, 1073, 1227, 1227, 1100, 1095, 1227, - 407, 1227, 1227, 1227, 1227, 412, 427, 432, 437, 1098, - - 1068, 1109, 1091, 1090, 292, 1069, 1068, 1063, 1068, 1087, - 1064, 1061, 1081, 1096, 1080, 1081, 1087, 1086, 1057, 1057, - 1050, 1062, 1059, 1050, 1048, 1053, 1085, 1080, 1053, 1056, - 1046, 1076, 1071, 232, 1044, 1072, 1033, 0, 1034, 1070, - 1069, 1030, 1033, 1041, 0, 1057, 1065, 1029, 1079, 1030, - 1021, 1059, 1032, 1029, 1030, 1068, 1019, 1049, 1024, 1011, - 1027, 1049, 1018, 1021, 1037, 1046, 1022, 1005, 1009, 1008, - 1014, 1006, 1010, 1003, 1014, 1009, 1023, 1007, 1002, 1002, - 1000, 990, 1001, 995, 1016, 1017, 995, 990, 990, 988, - 1006, 1005, 976, 977, 987, 401, 989, 979, 258, 981, - - 986, 981, 971, 995, 997, 447, 454, 463, 468, 473, - 993, 0, 997, 994, 1016, 969, 972, 979, 0, 1012, - 977, 968, 990, 971, 0, 995, 987, 993, 982, 993, - 981, 949, 0, 966, 956, 949, 948, 953, 0, 0, - 985, 943, 942, 950, 958, 967, 973, 976, 940, 940, - 0, 933, 951, 950, 0, 933, 0, 969, 968, 928, - 979, 925, 926, 0, 926, 923, 0, 975, 0, 959, - 933, 927, 919, 947, 921, 917, 953, 937, 919, 920, - 923, 909, 910, 907, 908, 912, 904, 917, 941, 0, - 905, 0, 906, 0, 916, 911, 932, 927, 0, 896, - - 901, 904, 921, 930, 0, 897, 0, 906, 893, 892, - 886, 0, 0, 898, 901, 885, 896, 894, 915, 918, - 478, 483, 913, 918, 915, 893, 875, 879, 878, 0, - 886, 876, 904, 869, 893, 905, 905, 890, 906, 902, - 869, 875, 872, 871, 0, 870, 881, 868, 867, 868, - 294, 878, 877, 891, 66, 851, 862, 256, 195, 0, - 872, 873, 0, 898, 858, 0, 844, 852, 0, 870, - 0, 845, 0, 864, 844, 0, 0, 878, 849, 850, - 0, 0, 0, 846, 846, 848, 844, 0, 848, 829, - 841, 842, 826, 865, 863, 307, 836, 0, 849, 842, - - 833, 834, 823, 825, 0, 827, 823, 0, 0, 810, - 843, 853, 841, 849, 850, 836, 0, 0, 858, 806, - 818, 834, 0, 838, 0, 820, 836, 832, 826, 806, - 797, 0, 802, 791, 829, 0, 0, 810, 816, 820, - 829, 818, 0, 797, 796, 0, 799, 814, 808, 822, - 825, 822, 807, 0, 829, 791, 0, 0, 809, 0, - 815, 776, 799, 773, 789, 0, 772, 779, 0, 809, - 0, 0, 781, 769, 809, 805, 773, 780, 776, 0, - 779, 0, 773, 763, 767, 0, 0, 0, 781, 791, - 779, 794, 788, 784, 0, 756, 0, 789, 792, 774, - - 772, 764, 780, 771, 756, 757, 0, 770, 740, 766, - 767, 0, 793, 737, 750, 0, 758, 758, 758, 762, - 766, 764, 781, 0, 767, 766, 0, 743, 726, 731, - 723, 727, 759, 0, 714, 750, 735, 722, 715, 0, - 742, 713, 0, 726, 740, 748, 738, 726, 745, 749, - 707, 722, 733, 738, 740, 726, 740, 703, 699, 709, - 725, 711, 716, 720, 743, 0, 0, 720, 728, 729, - 726, 725, 726, 734, 701, 700, 721, 689, 0, 688, - 691, 715, 0, 694, 716, 683, 686, 701, 0, 0, - 695, 705, 693, 338, 703, 708, 0, 150, 684, 704, - - 681, 684, 700, 661, 31, 0, 0, 0, 84, 0, - 184, 189, 210, 216, 0, 234, 229, 277, 261, 302, - 325, 302, 293, 0, 333, 344, 343, 320, 0, 358, - 350, 364, 361, 363, 387, 386, 388, 388, 389, 394, - 399, 410, 399, 422, 0, 392, 0, 442, 0, 426, - 444, 478, 462, 488, 467, 479, 478, 0, 447, 472, - 467, 471, 458, 476, 0, 487, 514, 489, 502, 502, - 494, 491, 492, 500, 504, 497, 512, 493, 476, 530, - 520, 507, 0, 519, 533, 514, 520, 519, 0, 520, - 513, 510, 0, 513, 1227, 0, 0, 517, 529, 588, - - 530, 515, 531, 529, 0, 523, 540, 524, 508, 550, - 530, 527, 528, 1227, 539, 544, 536, 532, 546, 548, - 0, 1227, 528, 0, 0, 541, 551, 556, 544, 538, - 557, 541, 533, 575, 548, 570, 0, 576, 0, 572, - 573, 582, 0, 571, 571, 565, 589, 574, 589, 590, - 579, 0, 604, 584, 584, 574, 582, 587, 600, 596, - 579, 584, 602, 0, 582, 0, 603, 618, 607, 598, - 612, 606, 602, 612, 617, 625, 611, 595, 604, 622, - 1227, 0, 0, 607, 610, 600, 0, 611, 624, 610, - 608, 626, 629, 628, 620, 618, 631, 0, 629, 631, - - 634, 637, 627, 618, 640, 620, 621, 629, 636, 0, - 0, 632, 635, 635, 642, 646, 650, 648, 640, 653, - 645, 634, 647, 661, 658, 648, 650, 655, 648, 652, - 651, 653, 652, 658, 0, 668, 669, 670, 658, 662, - 0, 664, 661, 0, 661, 662, 677, 665, 683, 671, - 0, 667, 668, 679, 688, 675, 672, 678, 684, 0, - 679, 681, 0, 1227, 716, 719, 722, 725, 728 + 184, 81, 125, 209, 218, 186, 217, 238, 222, 278, + 313, 225, 273, 236, 232, 279, 240, 244, 243, 281, + 284, 297, 323, 1181, 1181, 1221, 343, 1221, 1221, 1221, + 1221, 1221, 1221, 1205, 357, 1204, 1203, 126, 1202, 1221, + 1221, 1221, 1221, 365, 372, 381, 1221, 1221, 1221, 0, + 72, 1169, 1175, 1179, 1158, 1151, 115, 1170, 1144, 1165, + 1137, 1144, 1163, 1162, 1163, 81, 1165, 1132, 1140, 1147, + + 1131, 344, 1153, 1154, 1134, 1133, 1128, 1160, 1154, 1161, + 1128, 1133, 173, 1159, 1149, 1132, 1120, 1119, 1115, 1141, + 1154, 1114, 1138, 1123, 1112, 1136, 1100, 1110, 1109, 115, + 1132, 1103, 1114, 1101, 1133, 1111, 1139, 1124, 1096, 1088, + 0, 1109, 117, 121, 1106, 1090, 1097, 1131, 0, 0, + 0, 0, 1085, 1088, 1091, 1092, 1085, 1084, 1088, 0, + 1107, 0, 1114, 0, 0, 1084, 170, 1086, 206, 0, + 0, 0, 0, 1089, 1083, 1074, 1087, 1087, 1076, 1067, + 1071, 1068, 1075, 1068, 1221, 1221, 1095, 1090, 1221, 398, + 1221, 1221, 1221, 1221, 406, 421, 426, 431, 1093, 1063, + + 1104, 1086, 1085, 292, 1064, 1063, 1058, 1063, 1082, 1059, + 1056, 1076, 1091, 1075, 1076, 1082, 1081, 1052, 1052, 1045, + 1057, 1054, 1045, 1043, 1048, 1080, 1075, 1048, 1051, 1041, + 1071, 1066, 206, 1039, 1067, 1028, 0, 1029, 1065, 1064, + 1025, 1028, 1036, 0, 1052, 1060, 1024, 1074, 1025, 1016, + 1054, 1027, 1024, 1025, 1063, 1014, 1044, 1019, 1006, 1022, + 1044, 1017, 1033, 1042, 1018, 1001, 1005, 1004, 1010, 1002, + 1006, 999, 1010, 1005, 1019, 1003, 998, 998, 996, 986, + 997, 991, 1012, 1013, 991, 986, 986, 984, 1002, 1001, + 972, 973, 983, 310, 985, 975, 299, 977, 982, 977, + + 967, 991, 993, 436, 441, 451, 456, 461, 989, 0, + 993, 990, 1012, 965, 968, 975, 0, 1008, 973, 964, + 986, 967, 0, 991, 983, 989, 978, 989, 977, 945, + 0, 962, 952, 945, 944, 949, 0, 0, 981, 939, + 938, 946, 954, 963, 969, 972, 936, 936, 0, 929, + 947, 946, 0, 929, 0, 965, 964, 924, 975, 921, + 922, 0, 922, 919, 0, 971, 0, 955, 929, 923, + 915, 943, 914, 950, 934, 916, 917, 920, 906, 907, + 904, 905, 909, 901, 914, 938, 0, 902, 0, 903, + 0, 913, 908, 929, 924, 0, 893, 898, 901, 918, + + 927, 0, 894, 0, 903, 890, 889, 883, 0, 0, + 895, 898, 882, 893, 891, 912, 915, 466, 471, 910, + 915, 912, 890, 872, 876, 875, 0, 883, 873, 901, + 866, 890, 902, 902, 887, 903, 899, 866, 872, 869, + 868, 0, 867, 878, 865, 864, 865, 342, 875, 874, + 888, 66, 848, 859, 369, 463, 0, 869, 870, 0, + 895, 855, 0, 841, 849, 0, 867, 0, 842, 0, + 861, 0, 0, 876, 847, 848, 0, 0, 0, 844, + 844, 846, 842, 0, 846, 827, 839, 840, 824, 863, + 861, 230, 834, 0, 847, 840, 831, 832, 821, 823, + + 0, 825, 821, 0, 0, 808, 841, 851, 839, 847, + 848, 834, 0, 0, 856, 804, 816, 832, 0, 836, + 0, 818, 834, 830, 824, 804, 795, 0, 800, 789, + 827, 0, 0, 808, 814, 818, 827, 816, 0, 795, + 794, 0, 797, 812, 806, 820, 823, 820, 805, 0, + 827, 789, 0, 0, 807, 0, 813, 798, 772, 788, + 0, 771, 778, 0, 808, 0, 0, 780, 768, 808, + 804, 772, 779, 775, 0, 778, 0, 772, 762, 766, + 0, 0, 0, 780, 790, 778, 793, 787, 783, 0, + 755, 0, 788, 791, 773, 771, 763, 779, 770, 755, + + 756, 0, 769, 739, 765, 766, 0, 792, 736, 749, + 0, 757, 757, 757, 761, 765, 763, 780, 0, 766, + 765, 742, 725, 730, 722, 726, 758, 0, 713, 749, + 734, 721, 714, 0, 741, 712, 0, 725, 739, 747, + 737, 725, 744, 748, 706, 721, 732, 737, 739, 725, + 739, 702, 698, 708, 724, 710, 715, 719, 742, 0, + 0, 719, 727, 728, 725, 724, 725, 733, 700, 699, + 720, 688, 0, 687, 690, 714, 0, 693, 715, 682, + 685, 700, 0, 0, 694, 704, 692, 377, 702, 707, + 0, 150, 683, 703, 681, 686, 704, 667, 668, 0, + + 0, 0, 696, 0, 707, 691, 675, 49, 0, 76, + 149, 205, 181, 222, 227, 204, 212, 0, 245, 251, + 282, 259, 0, 300, 296, 316, 306, 327, 381, 389, + 390, 382, 384, 389, 394, 404, 393, 428, 0, 398, + 0, 474, 0, 443, 461, 470, 454, 480, 459, 471, + 470, 0, 440, 465, 460, 465, 452, 470, 0, 481, + 508, 483, 496, 496, 488, 485, 486, 494, 498, 491, + 506, 487, 470, 524, 514, 501, 0, 513, 527, 508, + 514, 513, 0, 514, 507, 504, 0, 507, 1221, 0, + 0, 511, 523, 582, 524, 509, 525, 523, 0, 517, + + 534, 518, 502, 544, 524, 521, 522, 1221, 533, 538, + 530, 526, 540, 542, 0, 1221, 522, 0, 0, 535, + 545, 550, 538, 532, 551, 535, 527, 569, 542, 564, + 0, 570, 0, 566, 567, 576, 0, 565, 565, 559, + 583, 568, 583, 584, 573, 0, 598, 578, 578, 568, + 576, 581, 594, 590, 573, 578, 596, 0, 576, 0, + 597, 612, 601, 592, 606, 600, 596, 606, 611, 619, + 605, 589, 598, 616, 1221, 0, 0, 601, 604, 594, + 0, 605, 618, 604, 602, 620, 623, 622, 614, 612, + 625, 0, 623, 625, 628, 631, 621, 612, 634, 614, + + 615, 623, 630, 0, 0, 626, 629, 629, 636, 640, + 644, 642, 634, 647, 639, 628, 641, 655, 652, 642, + 644, 649, 642, 646, 645, 647, 646, 652, 0, 662, + 663, 664, 652, 656, 0, 658, 655, 0, 655, 656, + 671, 659, 677, 665, 0, 661, 662, 673, 682, 669, + 666, 672, 678, 0, 673, 675, 0, 1221, 710, 713, + 716, 719, 722 } ; -static yyconst short int yy_def[970] = +static yyconst short int yy_def[964] = { 0, - 964, 1, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 965, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - - 965, 965, 965, 964, 964, 964, 964, 964, 964, 964, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 964, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 964, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 964, 964, - 964, 964, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 964, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 964, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 964, 964, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 964, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 964, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 964, 964, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 964, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 964, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 964, 964, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 964, 965, 965, 965, 965, 965, - 965, 965, 965, 964, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 964, 964, 965, 965, 965, 965, 965, 965, 965, 965, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 964, 965, 965, 965, 965, 965, 965, 964, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 964, 964, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 964, 965, 965, - 965, 965, 965, 964, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 966, 964, 967, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 964, - 965, 965, 965, 965, 964, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 964, 968, 965, 965, 965, 969, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 964, - 965, 965, 965, 964, 965, 965, 965, 965, 965, 965, - 965, 964, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 964, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 964, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 964, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 964, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 0, 964, 964, 964, 964, 964 + 958, 1, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 959, 959, + + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + + 959, 958, 958, 958, 958, 958, 958, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 958, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 958, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 958, 958, 958, 958, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 958, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 958, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 959, 959, 958, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 958, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 958, 958, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 959, 959, 959, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 958, 958, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 958, 959, + 959, 959, 959, 959, 959, 959, 959, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 958, 958, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 958, 959, 959, 959, 959, 959, + 959, 958, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 958, 958, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 958, 959, 959, 959, 959, 959, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 960, 958, + 961, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 958, 959, 959, 959, 959, 958, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 958, 962, + 959, 959, 959, 963, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 958, 959, 959, 959, 958, 959, 959, + 959, 959, 959, 959, 959, 958, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 958, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 958, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 958, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 958, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 0, 958, 958, + 958, 958, 958 } ; -static yyconst short int yy_nxt[1302] = +static yyconst short int yy_nxt[1296] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, @@ -669,145 +668,144 @@ static yyconst short int yy_nxt[1302] = 32, 32, 32, 45, 46, 32, 32, 32, 47, 32, 48, 49, 32, 32, 32, 50, 32, 32, 51, 32, 32, 32, 52, 53, 54, 54, 56, 54, 54, 58, - 54, 57, 57, 57, 57, 57, 59, 60, 746, 62, + 54, 57, 57, 57, 57, 57, 59, 60, 745, 62, 54, 55, 55, 54, 55, 55, 54, 55, 54, 61, - 63, 70, 54, 54, 54, 71, 88, 55, 77, 200, - 55, 747, 54, 55, 72, 55, 216, 217, 54, 55, + 63, 70, 54, 54, 54, 71, 88, 55, 77, 199, + 55, 746, 54, 55, 72, 55, 215, 216, 54, 55, 55, 55, 64, 83, 65, 65, 65, 65, 65, 55, - 78, 544, 545, 201, 54, 55, 54, 194, 79, 66, + 78, 540, 541, 200, 54, 55, 54, 193, 79, 66, 73, 74, 54, 75, 75, 75, 75, 75, 81, 82, 88, 55, 67, 68, 69, 54, 88, 76, 114, 55, - 88, 103, 189, 88, 207, 83, 115, 83, 84, 104, - 256, 89, 55, 83, 270, 738, 257, 83, 272, 90, - 83, 208, 273, 76, 116, 125, 271, 85, 86, 87, - 739, 105, 91, 117, 118, 106, 119, 748, 92, 93, + 88, 103, 188, 88, 206, 83, 115, 83, 84, 104, + 255, 89, 55, 83, 268, 732, 256, 83, 270, 90, + 83, 207, 271, 76, 116, 125, 269, 85, 86, 87, + 733, 105, 91, 117, 118, 106, 119, 747, 92, 93, 88, 88, 120, 88, 108, 107, 88, 94, 121, 88, - 95, 88, 109, 96, 110, 749, 291, 83, 83, 288, - 83, 550, 97, 83, 123, 98, 83, 289, 83, 99, - 292, 551, 100, 101, 88, 552, 111, 102, 112, 88, - 126, 131, 347, 88, 124, 237, 88, 88, 113, 750, - 238, 83, 122, 134, 239, 751, 83, 88, 127, 88, - 83, 135, 128, 83, 83, 88, 129, 146, 138, 752, - 130, 132, 348, 139, 83, 147, 83, 753, 177, 133, - 548, 148, 83, 140, 136, 88, 137, 754, 88, 88, - 141, 142, 143, 549, 88, 144, 170, 169, 145, 88, - - 178, 755, 83, 171, 149, 83, 83, 172, 150, 173, - 174, 83, 151, 179, 152, 153, 83, 316, 88, 539, - 413, 180, 414, 154, 184, 155, 175, 88, 540, 756, - 176, 156, 317, 318, 88, 83, 157, 158, 187, 88, - 54, 159, 54, 161, 83, 160, 162, 163, 164, 165, - 166, 83, 757, 758, 759, 181, 83, 55, 167, 55, - 183, 577, 734, 182, 760, 578, 735, 185, 57, 57, - 57, 57, 57, 168, 65, 65, 65, 65, 65, 196, - 196, 196, 196, 196, 761, 762, 763, 186, 191, 764, - 765, 766, 74, 197, 75, 75, 75, 75, 75, 198, - - 198, 767, 768, 199, 199, 199, 199, 199, 76, 223, - 769, 224, 225, 770, 191, 771, 306, 306, 226, 197, - 307, 307, 307, 307, 307, 196, 196, 196, 196, 196, - 772, 773, 774, 775, 76, 776, 309, 309, 777, 308, - 310, 310, 310, 310, 310, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 408, 778, 779, 780, 409, - 307, 307, 307, 307, 307, 308, 410, 307, 307, 307, - 307, 307, 421, 421, 781, 782, 422, 422, 422, 422, - 422, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 422, 422, 422, 422, 422, 422, 422, 422, 422, - - 422, 783, 784, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 796, 795, 795, 798, 795, 795, 795, - 795, 795, 795, 795, 795, 795, 795, 799, 800, 801, - 802, 803, 795, 795, 795, 795, 795, 804, 805, 806, - 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, - 817, 818, 819, 820, 821, 823, 824, 826, 827, 828, - 829, 795, 830, 831, 832, 833, 834, 835, 836, 837, + 95, 88, 109, 96, 110, 748, 345, 83, 83, 286, + 83, 749, 97, 83, 123, 98, 83, 287, 83, 99, + 236, 289, 100, 101, 88, 237, 111, 102, 112, 238, + 126, 131, 88, 88, 124, 290, 346, 88, 113, 750, + 88, 83, 122, 134, 751, 752, 135, 88, 127, 83, + 83, 88, 128, 88, 83, 88, 129, 83, 88, 88, + 130, 132, 137, 753, 83, 145, 754, 138, 83, 133, + 83, 136, 83, 146, 572, 83, 83, 139, 573, 147, + 168, 755, 177, 176, 140, 141, 142, 180, 88, 143, + + 169, 179, 144, 88, 88, 181, 88, 170, 148, 88, + 182, 171, 149, 172, 173, 83, 150, 314, 151, 152, + 83, 83, 54, 83, 756, 757, 83, 153, 178, 154, + 174, 758, 315, 316, 175, 155, 759, 184, 88, 55, + 156, 157, 183, 760, 186, 158, 761, 160, 54, 159, + 161, 162, 163, 164, 165, 83, 57, 57, 57, 57, + 57, 410, 166, 411, 405, 55, 762, 535, 406, 185, + 65, 65, 65, 65, 65, 407, 536, 167, 195, 195, + 195, 195, 195, 74, 190, 75, 75, 75, 75, 75, + 197, 197, 196, 544, 198, 198, 198, 198, 198, 76, + + 222, 728, 223, 224, 763, 729, 545, 304, 304, 225, + 190, 305, 305, 305, 305, 305, 764, 765, 196, 195, + 195, 195, 195, 195, 766, 76, 767, 768, 769, 770, + 307, 307, 771, 306, 308, 308, 308, 308, 308, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 306, + 418, 418, 772, 773, 419, 419, 419, 419, 419, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 546, + 774, 775, 776, 777, 778, 779, 780, 781, 782, 547, + + 783, 784, 785, 548, 786, 787, 788, 790, 789, 789, + 792, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 789, 793, 794, 795, 796, 797, 789, 789, 789, 789, + 789, 798, 799, 800, 801, 802, 803, 804, 805, 806, + 807, 808, 809, 810, 811, 812, 813, 814, 815, 817, + 818, 820, 821, 822, 823, 789, 824, 825, 826, 827, + 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, - 848, 849, 850, 851, 852, 853, 795, 795, 822, 822, - 854, 822, 822, 822, 822, 822, 822, 822, 822, 822, + 789, 789, 816, 816, 848, 816, 816, 816, 816, 816, + 816, 816, 816, 816, 816, 849, 850, 851, 852, 853, - 822, 855, 856, 857, 858, 859, 822, 822, 822, 822, - 822, 860, 861, 862, 863, 864, 865, 866, 867, 868, - 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, - 879, 880, 881, 882, 883, 822, 884, 885, 886, 887, + 816, 816, 816, 816, 816, 854, 855, 856, 857, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, 877, 816, + 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, - 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 822, 822, 908, 909, 910, 911, 912, 913, 914, 915, + 898, 899, 900, 901, 816, 816, 902, 903, 904, 905, + 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 80, 795, - 745, 795, 797, 744, 797, 822, 743, 822, 825, 742, - 825, 741, 740, 737, 736, 733, 732, 731, 730, 729, - 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, - 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, - 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, - 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, - 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, - 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, - - 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, - 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, - 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, - 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, - 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, - 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, - 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, - 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, - - 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, - 556, 555, 554, 553, 547, 546, 543, 542, 541, 538, - 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, - 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, - 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, - 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, - 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, - 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, - 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, - 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, - - 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, - 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, - 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, - 427, 426, 425, 424, 423, 420, 419, 418, 417, 416, - 415, 412, 411, 407, 406, 405, 404, 403, 402, 401, - 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, - 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, - 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, - 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, - 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, - - 350, 349, 346, 345, 344, 343, 342, 341, 340, 339, - 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, - 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, - 315, 314, 313, 312, 311, 305, 304, 303, 302, 301, - 300, 299, 298, 297, 296, 295, 294, 293, 290, 287, - 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, - 276, 275, 274, 269, 268, 267, 266, 265, 264, 263, - 262, 261, 260, 259, 258, 255, 254, 253, 252, 251, - 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, - 240, 236, 235, 234, 233, 232, 231, 230, 229, 228, - - 227, 222, 221, 220, 219, 218, 215, 214, 213, 212, - 211, 210, 209, 200, 206, 205, 204, 203, 202, 195, - 193, 192, 190, 189, 188, 964, 3, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - - 964 + 956, 957, 80, 789, 744, 789, 791, 743, 791, 816, + 742, 816, 819, 741, 819, 740, 739, 738, 737, 736, + 735, 734, 731, 730, 727, 726, 725, 724, 723, 722, + 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, + 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, + 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, + 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, + 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, + 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, + + 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, + 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, + 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, + 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, + 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, + 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, + 581, 580, 579, 578, 577, 576, 575, 574, 571, 570, + 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, + + 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, + 549, 543, 542, 539, 538, 537, 534, 533, 532, 531, + 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, + 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, + 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, + 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, + 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, + 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, + 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, + 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, + + 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, + 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, + 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, + 420, 417, 416, 415, 414, 413, 412, 409, 408, 404, + 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, + 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, + 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, + 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, + 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, + 353, 352, 351, 350, 349, 348, 347, 344, 343, 342, + + 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, + 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, + 321, 320, 319, 318, 317, 313, 312, 311, 310, 309, + 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, + 293, 292, 291, 288, 285, 284, 283, 282, 281, 280, + 279, 278, 277, 276, 275, 274, 273, 272, 267, 266, + 265, 264, 263, 262, 261, 260, 259, 258, 257, 254, + 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, + 243, 242, 241, 240, 239, 235, 234, 233, 232, 231, + 230, 229, 228, 227, 226, 221, 220, 219, 218, 217, + + 214, 213, 212, 211, 210, 209, 208, 199, 205, 204, + 203, 202, 201, 194, 192, 191, 189, 188, 187, 958, + 3, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958 + } ; -static yyconst short int yy_chk[1302] = +static yyconst short int yy_chk[1296] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -817,142 +815,141 @@ static yyconst short int yy_chk[1302] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 7, 8, 11, 10, - 7, 9, 9, 9, 9, 9, 12, 13, 705, 14, + 7, 9, 9, 9, 9, 9, 12, 13, 708, 14, 12, 4, 5, 9, 8, 11, 18, 7, 10, 13, 14, 16, 19, 13, 14, 16, 32, 12, 20, 81, - 9, 709, 20, 18, 16, 10, 96, 96, 16, 19, + 9, 710, 20, 18, 16, 10, 96, 96, 16, 19, 13, 14, 15, 32, 15, 15, 15, 15, 15, 20, - 21, 455, 455, 81, 21, 16, 15, 68, 22, 15, + 21, 452, 452, 81, 21, 16, 15, 68, 22, 15, 16, 17, 22, 17, 17, 17, 17, 17, 23, 23, 33, 21, 15, 15, 15, 17, 24, 17, 28, 22, 28, 26, 68, 26, 87, 23, 28, 33, 23, 26, - 130, 24, 17, 24, 144, 698, 130, 28, 145, 24, - 26, 87, 145, 17, 28, 33, 144, 23, 23, 23, - 698, 26, 24, 28, 28, 26, 28, 711, 24, 25, + 130, 24, 17, 24, 143, 692, 130, 28, 144, 24, + 26, 87, 144, 17, 28, 33, 143, 23, 23, 23, + 692, 26, 24, 28, 28, 26, 28, 711, 24, 25, 29, 25, 29, 27, 27, 26, 30, 25, 30, 31, - 25, 36, 27, 25, 27, 712, 170, 29, 25, 168, - 27, 459, 25, 30, 31, 25, 31, 168, 36, 25, - 170, 459, 25, 25, 34, 459, 27, 25, 27, 39, - 34, 35, 234, 35, 31, 113, 44, 37, 27, 713, - 113, 34, 30, 36, 113, 714, 39, 42, 34, 38, - 35, 37, 34, 44, 37, 45, 34, 39, 38, 716, - 34, 35, 234, 38, 42, 39, 38, 717, 44, 35, - 458, 39, 45, 38, 37, 47, 37, 718, 50, 46, - 38, 38, 38, 458, 43, 38, 43, 42, 38, 40, - - 45, 719, 47, 43, 40, 50, 46, 43, 40, 43, - 43, 43, 40, 46, 40, 40, 40, 205, 49, 451, - 299, 47, 299, 40, 50, 40, 43, 48, 451, 720, - 43, 40, 205, 205, 41, 49, 40, 40, 53, 51, - 52, 40, 53, 41, 48, 40, 41, 41, 41, 41, - 41, 41, 721, 722, 723, 48, 51, 52, 41, 53, - 49, 496, 694, 48, 725, 496, 694, 51, 57, 57, - 57, 57, 57, 41, 65, 65, 65, 65, 65, 74, - 74, 74, 74, 74, 726, 727, 728, 52, 65, 730, - 731, 732, 75, 74, 75, 75, 75, 75, 75, 76, - - 76, 733, 734, 76, 76, 76, 76, 76, 75, 102, - 735, 102, 102, 736, 65, 737, 191, 191, 102, 74, - 191, 191, 191, 191, 191, 196, 196, 196, 196, 196, - 738, 739, 740, 741, 75, 742, 197, 197, 743, 196, - 197, 197, 197, 197, 197, 198, 198, 198, 198, 198, - 199, 199, 199, 199, 199, 296, 744, 746, 748, 296, - 306, 306, 306, 306, 306, 196, 296, 307, 307, 307, - 307, 307, 308, 308, 750, 751, 308, 308, 308, 308, - 308, 309, 309, 309, 309, 309, 310, 310, 310, 310, - 310, 421, 421, 421, 421, 421, 422, 422, 422, 422, - - 422, 752, 753, 754, 755, 756, 757, 759, 760, 761, - 762, 763, 764, 766, 767, 767, 768, 767, 767, 767, - 767, 767, 767, 767, 767, 767, 767, 769, 770, 771, - 772, 773, 767, 767, 767, 767, 767, 774, 775, 776, - 777, 778, 779, 780, 781, 782, 784, 785, 786, 787, - 788, 790, 791, 792, 794, 798, 799, 801, 802, 803, - 804, 767, 806, 807, 808, 809, 810, 811, 812, 813, - 815, 816, 817, 818, 819, 820, 823, 826, 827, 828, - 829, 830, 831, 832, 833, 834, 767, 767, 800, 800, - 835, 800, 800, 800, 800, 800, 800, 800, 800, 800, - - 800, 836, 838, 840, 841, 842, 800, 800, 800, 800, - 800, 844, 845, 846, 847, 848, 849, 850, 851, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - 865, 867, 868, 869, 870, 800, 871, 872, 873, 874, - 875, 876, 877, 878, 879, 880, 884, 885, 886, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 899, - 800, 800, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 912, 913, 914, 915, 916, 917, 918, 919, - 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, - 930, 931, 932, 933, 934, 936, 937, 938, 939, 940, - - 942, 943, 945, 946, 947, 948, 949, 950, 952, 953, - 954, 955, 956, 957, 958, 959, 961, 962, 965, 966, - 704, 966, 967, 703, 967, 968, 702, 968, 969, 701, - 969, 700, 699, 696, 695, 693, 692, 691, 688, 687, - 686, 685, 684, 682, 681, 680, 678, 677, 676, 675, - 674, 673, 672, 671, 670, 669, 668, 665, 664, 663, - 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, - 652, 651, 650, 649, 648, 647, 646, 645, 644, 642, - 641, 639, 638, 637, 636, 635, 633, 632, 631, 630, - 629, 628, 626, 625, 623, 622, 621, 620, 619, 618, - - 617, 615, 614, 613, 611, 610, 609, 608, 606, 605, - 604, 603, 602, 601, 600, 599, 598, 596, 594, 593, - 592, 591, 590, 589, 585, 584, 583, 581, 579, 578, - 577, 576, 575, 574, 573, 570, 568, 567, 565, 564, - 563, 562, 561, 559, 556, 555, 553, 552, 551, 550, - 549, 548, 547, 545, 544, 542, 541, 540, 539, 538, - 535, 534, 533, 531, 530, 529, 528, 527, 526, 524, - 522, 521, 520, 519, 516, 515, 514, 513, 512, 511, - 510, 507, 506, 504, 503, 502, 501, 500, 499, 497, - 495, 494, 493, 492, 491, 490, 489, 487, 486, 485, - - 484, 480, 479, 478, 475, 474, 472, 470, 468, 467, - 465, 464, 462, 461, 457, 456, 454, 453, 452, 450, - 449, 448, 447, 446, 444, 443, 442, 441, 440, 439, - 438, 437, 436, 435, 434, 433, 432, 431, 429, 428, - 427, 426, 425, 424, 423, 420, 419, 418, 417, 416, - 415, 414, 411, 410, 409, 408, 406, 404, 403, 402, - 401, 400, 398, 397, 396, 395, 393, 391, 389, 388, - 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, - 377, 376, 375, 374, 373, 372, 371, 370, 368, 366, - 365, 363, 362, 361, 360, 359, 358, 356, 354, 353, - - 352, 350, 349, 348, 347, 346, 345, 344, 343, 342, - 341, 338, 337, 336, 335, 334, 332, 331, 330, 329, - 328, 327, 326, 324, 323, 322, 321, 320, 318, 317, - 316, 315, 314, 313, 311, 305, 304, 303, 302, 301, - 300, 298, 297, 295, 294, 293, 292, 291, 290, 289, - 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, - 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, - 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, - 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, - 248, 247, 246, 244, 243, 242, 241, 240, 239, 237, - - 236, 235, 233, 232, 231, 230, 229, 228, 227, 226, - 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, - 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, - 204, 203, 202, 201, 200, 189, 188, 185, 184, 183, - 182, 181, 180, 179, 178, 177, 176, 175, 169, 167, - 164, 162, 160, 159, 158, 157, 156, 155, 154, 149, - 148, 147, 146, 143, 141, 140, 139, 138, 137, 136, - 135, 134, 133, 132, 131, 129, 128, 127, 126, 125, - 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, - 114, 112, 111, 110, 109, 108, 107, 106, 105, 104, - - 103, 101, 100, 99, 98, 97, 95, 94, 93, 92, - 91, 90, 89, 88, 86, 85, 84, 83, 82, 69, - 67, 66, 64, 55, 54, 3, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 964, - - 964 + 25, 36, 27, 25, 27, 712, 233, 29, 25, 167, + 27, 713, 25, 30, 31, 25, 31, 167, 36, 25, + 113, 169, 25, 25, 34, 113, 27, 25, 27, 113, + 34, 35, 37, 35, 31, 169, 233, 39, 27, 714, + 42, 34, 30, 36, 715, 716, 37, 45, 34, 37, + 35, 44, 34, 38, 39, 47, 34, 42, 49, 48, + 34, 35, 38, 717, 45, 39, 719, 38, 44, 35, + 38, 37, 47, 39, 492, 49, 48, 38, 492, 39, + 42, 720, 45, 44, 38, 38, 38, 48, 43, 38, + + 43, 47, 38, 40, 46, 48, 50, 43, 40, 51, + 49, 43, 40, 43, 43, 43, 40, 204, 40, 40, + 40, 46, 52, 50, 721, 722, 51, 40, 46, 40, + 43, 724, 204, 204, 43, 40, 725, 51, 41, 52, + 40, 40, 50, 726, 53, 40, 727, 41, 53, 40, + 41, 41, 41, 41, 41, 41, 57, 57, 57, 57, + 57, 297, 41, 297, 294, 53, 728, 448, 294, 52, + 65, 65, 65, 65, 65, 294, 448, 41, 74, 74, + 74, 74, 74, 75, 65, 75, 75, 75, 75, 75, + 76, 76, 74, 455, 76, 76, 76, 76, 76, 75, + + 102, 688, 102, 102, 729, 688, 455, 190, 190, 102, + 65, 190, 190, 190, 190, 190, 730, 731, 74, 195, + 195, 195, 195, 195, 732, 75, 733, 734, 735, 736, + 196, 196, 737, 195, 196, 196, 196, 196, 196, 197, + 197, 197, 197, 197, 198, 198, 198, 198, 198, 304, + 304, 304, 304, 304, 305, 305, 305, 305, 305, 195, + 306, 306, 738, 740, 306, 306, 306, 306, 306, 307, + 307, 307, 307, 307, 308, 308, 308, 308, 308, 418, + 418, 418, 418, 418, 419, 419, 419, 419, 419, 456, + 742, 744, 745, 746, 747, 748, 749, 750, 751, 456, + + 753, 754, 755, 456, 756, 757, 758, 760, 761, 761, + 762, 761, 761, 761, 761, 761, 761, 761, 761, 761, + 761, 763, 764, 765, 766, 767, 761, 761, 761, 761, + 761, 768, 769, 770, 771, 772, 773, 774, 775, 776, + 778, 779, 780, 781, 782, 784, 785, 786, 788, 792, + 793, 795, 796, 797, 798, 761, 800, 801, 802, 803, + 804, 805, 806, 807, 809, 810, 811, 812, 813, 814, + 817, 820, 821, 822, 823, 824, 825, 826, 827, 828, + 761, 761, 794, 794, 829, 794, 794, 794, 794, 794, + 794, 794, 794, 794, 794, 830, 832, 834, 835, 836, + + 794, 794, 794, 794, 794, 838, 839, 840, 841, 842, + 843, 844, 845, 847, 848, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 859, 861, 862, 863, 864, 794, + 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, + 878, 879, 880, 882, 883, 884, 885, 886, 887, 888, + 889, 890, 891, 893, 794, 794, 894, 895, 896, 897, + 898, 899, 900, 901, 902, 903, 906, 907, 908, 909, + 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, + 920, 921, 922, 923, 924, 925, 926, 927, 928, 930, + 931, 932, 933, 934, 936, 937, 939, 940, 941, 942, + + 943, 944, 946, 947, 948, 949, 950, 951, 952, 953, + 955, 956, 959, 960, 707, 960, 961, 706, 961, 962, + 705, 962, 963, 703, 963, 699, 698, 697, 696, 695, + 694, 693, 690, 689, 687, 686, 685, 682, 681, 680, + 679, 678, 676, 675, 674, 672, 671, 670, 669, 668, + 667, 666, 665, 664, 663, 662, 659, 658, 657, 656, + 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, + 645, 644, 643, 642, 641, 640, 639, 638, 636, 635, + 633, 632, 631, 630, 629, 627, 626, 625, 624, 623, + 622, 621, 620, 618, 617, 616, 615, 614, 613, 612, + + 610, 609, 608, 606, 605, 604, 603, 601, 600, 599, + 598, 597, 596, 595, 594, 593, 591, 589, 588, 587, + 586, 585, 584, 580, 579, 578, 576, 574, 573, 572, + 571, 570, 569, 568, 565, 563, 562, 560, 559, 558, + 557, 555, 552, 551, 549, 548, 547, 546, 545, 544, + 543, 541, 540, 538, 537, 536, 535, 534, 531, 530, + 529, 527, 526, 525, 524, 523, 522, 520, 518, 517, + 516, 515, 512, 511, 510, 509, 508, 507, 506, 503, + 502, 500, 499, 498, 497, 496, 495, 493, 491, 490, + 489, 488, 487, 486, 485, 483, 482, 481, 480, 476, + + 475, 474, 471, 469, 467, 465, 464, 462, 461, 459, + 458, 454, 453, 451, 450, 449, 447, 446, 445, 444, + 443, 441, 440, 439, 438, 437, 436, 435, 434, 433, + 432, 431, 430, 429, 428, 426, 425, 424, 423, 422, + 421, 420, 417, 416, 415, 414, 413, 412, 411, 408, + 407, 406, 405, 403, 401, 400, 399, 398, 397, 395, + 394, 393, 392, 390, 388, 386, 385, 384, 383, 382, + 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 366, 364, 363, 361, 360, 359, + 358, 357, 356, 354, 352, 351, 350, 348, 347, 346, + + 345, 344, 343, 342, 341, 340, 339, 336, 335, 334, + 333, 332, 330, 329, 328, 327, 326, 325, 324, 322, + 321, 320, 319, 318, 316, 315, 314, 313, 312, 311, + 309, 303, 302, 301, 300, 299, 298, 296, 295, 293, + 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, + 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, + 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, + 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, + 252, 251, 250, 249, 248, 247, 246, 245, 243, 242, + 241, 240, 239, 238, 236, 235, 234, 232, 231, 230, + + 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, + 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, + 209, 208, 207, 206, 205, 203, 202, 201, 200, 199, + 188, 187, 184, 183, 182, 181, 180, 179, 178, 177, + 176, 175, 174, 168, 166, 163, 161, 159, 158, 157, + 156, 155, 154, 153, 148, 147, 146, 145, 142, 140, + 139, 138, 137, 136, 135, 134, 133, 132, 131, 129, + 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, + 118, 117, 116, 115, 114, 112, 111, 110, 109, 108, + 107, 106, 105, 104, 103, 101, 100, 99, 98, 97, + + 95, 94, 93, 92, 91, 90, 89, 88, 86, 85, + 84, 83, 82, 69, 67, 66, 64, 55, 54, 3, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958 + } ; static yy_state_type yy_last_accepting_state; @@ -1010,7 +1007,7 @@ void skipline(void); && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); -#line 1014 "Gmsh.yy.cpp" +#line 1011 "Gmsh.yy.cpp" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1158,13 +1155,13 @@ YY_MALLOC_DECL YY_DECL { register yy_state_type yy_current_state; - register char *yy_cp = NULL, *yy_bp = NULL; + register char *yy_cp, *yy_bp; register int yy_act; #line 60 "Gmsh.l" -#line 1168 "Gmsh.yy.cpp" +#line 1165 "Gmsh.yy.cpp" if ( yy_init ) { @@ -1215,13 +1212,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 965 ) + if ( yy_current_state >= 959 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 1227 ); + while ( yy_base[yy_current_state] != 1221 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1594,28 +1591,28 @@ return tOrder; YY_BREAK case 70: YY_RULE_SETUP -#line 145 "Gmsh.l" -return tOptions; +#line 146 "Gmsh.l" +return tPhysical; YY_BREAK case 71: YY_RULE_SETUP #line 147 "Gmsh.l" -return tPhysical; +return tPi; YY_BREAK case 72: YY_RULE_SETUP #line 148 "Gmsh.l" -return tPi; +return tPlane; YY_BREAK case 73: YY_RULE_SETUP #line 149 "Gmsh.l" -return tPlane; +return tPoint; YY_BREAK case 74: YY_RULE_SETUP #line 150 "Gmsh.l" -return tPoint; +return tProgression; YY_BREAK case 75: YY_RULE_SETUP @@ -1625,495 +1622,490 @@ return tProgression; case 76: YY_RULE_SETUP #line 152 "Gmsh.l" -return tProgression; +return tParametric; YY_BREAK case 77: YY_RULE_SETUP #line 153 "Gmsh.l" -return tParametric; +return tPrintf ; YY_BREAK case 78: YY_RULE_SETUP -#line 154 "Gmsh.l" -return tPrintf ; +#line 155 "Gmsh.l" +return tRecombine; YY_BREAK case 79: YY_RULE_SETUP #line 156 "Gmsh.l" -return tRecombine; +return tRotate; YY_BREAK case 80: YY_RULE_SETUP #line 157 "Gmsh.l" -return tRotate; +return tRuled; YY_BREAK case 81: YY_RULE_SETUP -#line 158 "Gmsh.l" -return tRuled; +#line 159 "Gmsh.l" +return tSqrt ; YY_BREAK case 82: YY_RULE_SETUP #line 160 "Gmsh.l" -return tSqrt ; +return tSin ; YY_BREAK case 83: YY_RULE_SETUP #line 161 "Gmsh.l" -return tSin ; +return tSinh ; YY_BREAK case 84: YY_RULE_SETUP #line 162 "Gmsh.l" -return tSinh ; +return tPhysical; YY_BREAK case 85: YY_RULE_SETUP #line 163 "Gmsh.l" -return tPhysical; +return tSpline; YY_BREAK case 86: YY_RULE_SETUP #line 164 "Gmsh.l" -return tSpline; +return tSurface; YY_BREAK case 87: YY_RULE_SETUP #line 165 "Gmsh.l" -return tSurface; +return tSymmetry; YY_BREAK case 88: YY_RULE_SETUP #line 166 "Gmsh.l" -return tSymmetry; +return tScript; YY_BREAK case 89: YY_RULE_SETUP -#line 167 "Gmsh.l" -return tScript; +#line 168 "Gmsh.l" +return tTransfinite; YY_BREAK case 90: YY_RULE_SETUP #line 169 "Gmsh.l" -return tTransfinite; +return tTranslate; YY_BREAK case 91: YY_RULE_SETUP #line 170 "Gmsh.l" -return tTranslate; +return tTanh ; YY_BREAK case 92: YY_RULE_SETUP #line 171 "Gmsh.l" -return tTanh ; +return tTan; YY_BREAK case 93: YY_RULE_SETUP #line 172 "Gmsh.l" -return tTan; +return tTrimmed; YY_BREAK case 94: YY_RULE_SETUP -#line 173 "Gmsh.l" -return tTrimmed; +#line 174 "Gmsh.l" +return tUsing; YY_BREAK case 95: YY_RULE_SETUP -#line 175 "Gmsh.l" -return tUsing; +#line 176 "Gmsh.l" +return tView; YY_BREAK case 96: YY_RULE_SETUP #line 177 "Gmsh.l" -return tView; +return tVolume; YY_BREAK case 97: YY_RULE_SETUP -#line 178 "Gmsh.l" -return tVolume; +#line 179 "Gmsh.l" +return tWith; YY_BREAK case 98: YY_RULE_SETUP -#line 180 "Gmsh.l" -return tWith; +#line 181 "Gmsh.l" +return tFor; YY_BREAK case 99: YY_RULE_SETUP #line 182 "Gmsh.l" -return tFor; +return tEndFor; YY_BREAK case 100: YY_RULE_SETUP #line 183 "Gmsh.l" -return tEndFor; +return tScript; YY_BREAK case 101: YY_RULE_SETUP #line 184 "Gmsh.l" -return tScript; +return tExit; YY_BREAK case 102: YY_RULE_SETUP #line 185 "Gmsh.l" -return tExit; +return tMerge; YY_BREAK case 103: YY_RULE_SETUP -#line 186 "Gmsh.l" -return tMerge; +#line 187 "Gmsh.l" +return tScalarTetrahedron; YY_BREAK case 104: YY_RULE_SETUP #line 188 "Gmsh.l" -return tScalarTetrahedron; +return tVectorTetrahedron; YY_BREAK case 105: YY_RULE_SETUP #line 189 "Gmsh.l" -return tVectorTetrahedron; +return tTensorTetrahedron; YY_BREAK case 106: YY_RULE_SETUP #line 190 "Gmsh.l" -return tTensorTetrahedron; +return tScalarTriangle; YY_BREAK case 107: YY_RULE_SETUP #line 191 "Gmsh.l" -return tScalarTriangle; +return tVectorTriangle; YY_BREAK case 108: YY_RULE_SETUP #line 192 "Gmsh.l" -return tVectorTriangle; +return tTensorTriangle; YY_BREAK case 109: YY_RULE_SETUP #line 193 "Gmsh.l" -return tTensorTriangle; +return tScalarLine; YY_BREAK case 110: YY_RULE_SETUP #line 194 "Gmsh.l" -return tScalarLine; +return tVectorLine; YY_BREAK case 111: YY_RULE_SETUP #line 195 "Gmsh.l" -return tVectorLine; +return tTensorLine; YY_BREAK case 112: YY_RULE_SETUP #line 196 "Gmsh.l" -return tTensorLine; +return tScalarPoint; YY_BREAK case 113: YY_RULE_SETUP #line 197 "Gmsh.l" -return tScalarPoint; +return tVectorPoint; YY_BREAK case 114: YY_RULE_SETUP #line 198 "Gmsh.l" -return tVectorPoint; +return tTensorPoint; YY_BREAK case 115: YY_RULE_SETUP -#line 199 "Gmsh.l" -return tTensorPoint; +#line 201 "Gmsh.l" +return tCARTESIAN_POINT; YY_BREAK case 116: YY_RULE_SETUP #line 202 "Gmsh.l" -return tCARTESIAN_POINT; +return tB_SPLINE_SURFACE_WITH_KNOTS; YY_BREAK case 117: YY_RULE_SETUP #line 203 "Gmsh.l" -return tB_SPLINE_SURFACE_WITH_KNOTS; +return tB_SPLINE_CURVE_WITH_KNOTS; YY_BREAK case 118: YY_RULE_SETUP #line 204 "Gmsh.l" -return tB_SPLINE_CURVE_WITH_KNOTS; +return tUNSPECIFIED; YY_BREAK case 119: YY_RULE_SETUP #line 205 "Gmsh.l" -return tUNSPECIFIED; +return tCONTINUOUS; YY_BREAK case 120: YY_RULE_SETUP #line 206 "Gmsh.l" -return tCONTINUOUS; +return tFALSE; YY_BREAK case 121: YY_RULE_SETUP #line 207 "Gmsh.l" -return tFALSE; +return tTRUE; YY_BREAK case 122: YY_RULE_SETUP #line 208 "Gmsh.l" -return tTRUE; +return tU; YY_BREAK case 123: YY_RULE_SETUP #line 209 "Gmsh.l" -return tU; +return tV; YY_BREAK case 124: YY_RULE_SETUP #line 210 "Gmsh.l" -return tV; +return tORIENTED_EDGE; YY_BREAK case 125: YY_RULE_SETUP #line 211 "Gmsh.l" -return tORIENTED_EDGE; +return tEDGE_CURVE; YY_BREAK case 126: YY_RULE_SETUP #line 212 "Gmsh.l" -return tEDGE_CURVE; +return tEDGE_LOOP; YY_BREAK case 127: YY_RULE_SETUP #line 213 "Gmsh.l" -return tEDGE_LOOP; +return tVERTEX_POINT; YY_BREAK case 128: YY_RULE_SETUP #line 214 "Gmsh.l" -return tVERTEX_POINT; +return tFACE_OUTER_BOUND; YY_BREAK case 129: YY_RULE_SETUP #line 215 "Gmsh.l" -return tFACE_OUTER_BOUND; +return tFACE_BOUND; YY_BREAK case 130: YY_RULE_SETUP #line 216 "Gmsh.l" -return tFACE_BOUND; +return tADVANCED_FACE; YY_BREAK case 131: YY_RULE_SETUP #line 217 "Gmsh.l" -return tADVANCED_FACE; +return tLine; YY_BREAK case 132: YY_RULE_SETUP #line 218 "Gmsh.l" -return tLine; +return tVECTOR; YY_BREAK case 133: YY_RULE_SETUP #line 219 "Gmsh.l" -return tVECTOR; +return tDIRECTION; YY_BREAK case 134: YY_RULE_SETUP #line 220 "Gmsh.l" -return tDIRECTION; +return tAXIS2_PLACEMENT_3D; YY_BREAK case 135: YY_RULE_SETUP #line 221 "Gmsh.l" -return tAXIS2_PLACEMENT_3D; +return tPLANE; YY_BREAK case 136: YY_RULE_SETUP #line 222 "Gmsh.l" -return tPLANE; +return tHEADER; YY_BREAK case 137: YY_RULE_SETUP #line 223 "Gmsh.l" -return tHEADER; +return tDATA; YY_BREAK case 138: YY_RULE_SETUP #line 224 "Gmsh.l" -return tDATA; +return tFILE_SCHEMA; YY_BREAK case 139: YY_RULE_SETUP #line 225 "Gmsh.l" -return tFILE_SCHEMA; +return tFILE_NAME; YY_BREAK case 140: YY_RULE_SETUP #line 226 "Gmsh.l" -return tFILE_NAME; +return tFILE_DESCRIPTION; YY_BREAK case 141: YY_RULE_SETUP #line 227 "Gmsh.l" -return tFILE_DESCRIPTION; +return tISO; YY_BREAK case 142: YY_RULE_SETUP #line 228 "Gmsh.l" -return tISO; +return tENDISO; YY_BREAK case 143: YY_RULE_SETUP #line 229 "Gmsh.l" -return tENDISO; +return tENDSEC; YY_BREAK case 144: YY_RULE_SETUP #line 230 "Gmsh.l" -return tENDSEC; +return tCLOSED_SHELL; YY_BREAK case 145: YY_RULE_SETUP #line 231 "Gmsh.l" -return tCLOSED_SHELL; +return tADVANCED_BREP_SHAPE_REPRESENTATION; YY_BREAK case 146: YY_RULE_SETUP #line 232 "Gmsh.l" -return tADVANCED_BREP_SHAPE_REPRESENTATION; +return tMANIFOLD_SOLID_BREP; YY_BREAK case 147: YY_RULE_SETUP #line 233 "Gmsh.l" -return tMANIFOLD_SOLID_BREP; +return tCYLINDRICAL_SURFACE; YY_BREAK case 148: YY_RULE_SETUP #line 234 "Gmsh.l" -return tCYLINDRICAL_SURFACE; +return tCONICAL_SURFACE; YY_BREAK case 149: YY_RULE_SETUP #line 235 "Gmsh.l" -return tCONICAL_SURFACE; +return tTOROIDAL_SURFACE; YY_BREAK case 150: YY_RULE_SETUP #line 236 "Gmsh.l" -return tTOROIDAL_SURFACE; +return tCIRCLE; YY_BREAK case 151: YY_RULE_SETUP #line 237 "Gmsh.l" -return tCIRCLE; +return tTRIMMED_CURVE; YY_BREAK case 152: YY_RULE_SETUP #line 238 "Gmsh.l" -return tTRIMMED_CURVE; +return tGEOMETRIC_SET; YY_BREAK case 153: YY_RULE_SETUP #line 239 "Gmsh.l" -return tGEOMETRIC_SET; +return tCOMPOSITE_CURVE_SEGMENT; YY_BREAK case 154: YY_RULE_SETUP #line 240 "Gmsh.l" -return tCOMPOSITE_CURVE_SEGMENT; +return tCOMPOSITE_CURVE; YY_BREAK case 155: YY_RULE_SETUP #line 241 "Gmsh.l" -return tCOMPOSITE_CURVE; +return tPRODUCT_DEFINITION; YY_BREAK case 156: YY_RULE_SETUP #line 242 "Gmsh.l" -return tPRODUCT_DEFINITION; +return tPRODUCT_DEFINITION_SHAPE; YY_BREAK case 157: YY_RULE_SETUP #line 243 "Gmsh.l" -return tPRODUCT_DEFINITION_SHAPE; +return tSHAPE_DEFINITION_REPRESENTATION; YY_BREAK case 158: YY_RULE_SETUP -#line 244 "Gmsh.l" -return tSHAPE_DEFINITION_REPRESENTATION; +#line 245 "Gmsh.l" +return tVertex; YY_BREAK case 159: YY_RULE_SETUP #line 246 "Gmsh.l" -return tVertex; +return tFacet; YY_BREAK case 160: YY_RULE_SETUP #line 247 "Gmsh.l" -return tFacet; +return tNormal; YY_BREAK case 161: YY_RULE_SETUP #line 248 "Gmsh.l" -return tNormal; +return tOuter; YY_BREAK case 162: YY_RULE_SETUP #line 249 "Gmsh.l" -return tOuter; +return tLoopSTL; YY_BREAK case 163: YY_RULE_SETUP #line 250 "Gmsh.l" -return tLoopSTL; +return tEndLoop; YY_BREAK case 164: YY_RULE_SETUP #line 251 "Gmsh.l" -return tEndLoop; +return tEndFacet; YY_BREAK case 165: YY_RULE_SETUP #line 252 "Gmsh.l" -return tEndFacet; +{skipline();return tEndSolid;} YY_BREAK case 166: YY_RULE_SETUP #line 253 "Gmsh.l" -{skipline();return tEndSolid;} - YY_BREAK -case 167: -YY_RULE_SETUP -#line 254 "Gmsh.l" {skipline();return tSolid;} YY_BREAK -case 168: +case 167: YY_RULE_SETUP -#line 256 "Gmsh.l" +#line 255 "Gmsh.l" {yylval.d = (double)atoi((char*)(yytext+1)); return tDOUBLE;} YY_BREAK +case 168: +#line 258 "Gmsh.l" case 169: #line 259 "Gmsh.l" case 170: #line 260 "Gmsh.l" case 171: -#line 261 "Gmsh.l" -case 172: YY_RULE_SETUP -#line 261 "Gmsh.l" +#line 260 "Gmsh.l" {yylval.d = atof((char *)yytext); return tDOUBLE;} YY_BREAK -case 173: +case 172: YY_RULE_SETUP -#line 263 "Gmsh.l" +#line 262 "Gmsh.l" {yylval.c = strsave((char*)yytext); return tSTRING;} YY_BREAK -case 174: +case 173: YY_RULE_SETUP -#line 265 "Gmsh.l" +#line 264 "Gmsh.l" return yytext[0]; YY_BREAK -case 175: +case 174: YY_RULE_SETUP -#line 267 "Gmsh.l" +#line 266 "Gmsh.l" ECHO; YY_BREAK -#line 2117 "Gmsh.yy.cpp" +#line 2109 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2405,7 +2397,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 965 ) + if ( yy_current_state >= 959 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2440,11 +2432,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 965 ) + if ( yy_current_state >= 959 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 964); + yy_is_jam = (yy_current_state == 958); return yy_is_jam ? 0 : yy_current_state; } @@ -2999,7 +2991,7 @@ int main() return 0; } #endif -#line 267 "Gmsh.l" +#line 266 "Gmsh.l" #undef yywrap diff --git a/Parser/Makefile b/Parser/Makefile index ccb63be0240790362c3b5a79047832a8a84f9ded..434428ecd1f1b01e63f95e199f26e98f6b61fa88 100644 --- a/Parser/Makefile +++ b/Parser/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.5 2000-12-05 15:23:57 geuzaine Exp $ +# $Id: Makefile,v 1.6 2000-12-07 08:46:27 geuzaine Exp $ # # Makefile for "libParser.a" # @@ -68,4 +68,4 @@ Gmsh.tab.o: Gmsh.tab.cpp ../Common/Gmsh.h ../Common/Message.h \ ../Geo/ExtrudeParams.h ../Mesh/Metric.h ../Geo/DataBase.h \ ../Mesh/Create.h ../Common/Views.h ../Graphics/ColorTable.h \ ../Geo/StepGeomDatabase.h ../Common/Options.h ../Graphics/Draw.h \ - ../Common/Colors.h Parser.h + ../Common/Colors.h Parser.h ../Unix/Main.h diff --git a/demos/demo-02.geo b/demos/demo-02.geo index 0e0bb11100757c5ae448f4d66ff490960d50cc1c..43011af4cffb62d3b6df1e5e523fcaf501806529 100644 --- a/demos/demo-02.geo +++ b/demos/demo-02.geo @@ -41,9 +41,7 @@ Physical Volume (1) = {41} ; main window, print the file in 'geo' format, or add '-0' on the command line to get the full list of available options. */ -Options{ - General.Rotation0 = 10; - General.Color.Background = Red; - Geometry.Color.Points = Orange; -} +General.Rotation0 = 10; +General.Color.Background = Red; +Geometry.Color.Points = Orange; diff --git a/demos/demo-06.geo b/demos/demo-06.geo index a026f4ac98d71b9ee8b1c6bea9f47a36fee374a3..827e854ad34ee9e9159c3c51b10060ba3c403a61 100644 --- a/demos/demo-06.geo +++ b/demos/demo-06.geo @@ -160,45 +160,32 @@ Physical Surface (711) = {66} ; widget). GUI colors and fonts can be changed in a standard X resource file (.gmshrc in your home directory). */ -Options{ - General{ - Color{ - Background = {39, 64, 139} ; - Axes = OrangeRed1; // Color names are the classical X11 names - SmallAxes = LightGray; - Text = Gray88 ; - } - } - Geometry{ - Color{ - Points = Yellow; - Lines = {255, 255, 255, 128} ; // semi-transparent white - Surfaces = {Orange, 60} ; // almost transparent orange - Volumes = Green ; - PointsSelect = White ; - LinesSelect = White ; - SurfacesSelect = White ; - } - } - Mesh{ - Color{ - Points = Black; - PointsSupp = Orchid; - Lines = Black; - // Color cycle for volume mesh - One = Gray10 ; - Two = Gray20 ; - Three = Gray30 ; - Four = Gray40 ; - Five = Gray50 ; - Six = Gray60 ; - Seven = Gray70 ; - Eight = Gray80 ; - Nine = Gray90 ; - Ten = Black ; - } - } -} +General.Color.Background = {39, 64, 139} ; +General.Color.Axes = OrangeRed1; // Color names are the classical X11 names +General.Color.SmallAxes = LightGray; +General.Color.Text = Gray88 ; + +Geometry.Color.Points = Yellow; +Geometry.Color.Lines = {255, 255, 255, 128} ; // semi-transparent white +Geometry.Color.Surfaces = {Orange, 60} ; // almost transparent orange +Geometry.Color.Volumes = Green ; +Geometry.Color.PointsSelect = White ; +Geometry.Color.LinesSelect = White ; +Geometry.Color.SurfacesSelect = White ; + +Mesh.Color.Points = Black; +Mesh.Color.PointsSupp = Orchid; +Mesh.Color.Lines = Black; +Mesh.Color.One = Gray10 ; +Mesh.Color.Two = Gray20 ; +Mesh.Color.Three = Gray30 ; +Mesh.Color.Four = Gray40 ; +Mesh.Color.Five = Gray50 ; +Mesh.Color.Six = Gray60 ; +Mesh.Color.Seven = Gray70 ; +Mesh.Color.Eight = Gray80 ; +Mesh.Color.Nine = Gray90 ; +Mesh.Color.Ten = Black ; /* README: X resources can be specified in a '.gmshrc' in your home directory or app-defaults directory, or in your .Xdefaults file.