diff --git a/include/common/tmsg.h b/include/common/tmsg.h index df127af256..cc15d4ed6b 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -1678,9 +1678,10 @@ typedef struct { int32_t code; } STaskDropRsp; -#define STREAM_TRIGGER_AT_ONCE 1 -#define STREAM_TRIGGER_WINDOW_CLOSE 2 -#define STREAM_TRIGGER_MAX_DELAY 3 +#define STREAM_TRIGGER_AT_ONCE 1 +#define STREAM_TRIGGER_WINDOW_CLOSE 2 +#define STREAM_TRIGGER_MAX_DELAY 3 +#define STREAM_DEFAULT_IGNORE_EXPIRED 0 typedef struct { char name[TSDB_STREAM_FNAME_LEN]; diff --git a/include/libs/nodes/cmdnodes.h b/include/libs/nodes/cmdnodes.h index 21d3fa92a8..3223d4cdb8 100644 --- a/include/libs/nodes/cmdnodes.h +++ b/include/libs/nodes/cmdnodes.h @@ -359,7 +359,7 @@ typedef struct SStreamOptions { int8_t triggerType; SNode* pDelay; SNode* pWatermark; - bool ignoreExpired; + int8_t ignoreExpired; } SStreamOptions; typedef struct SCreateStreamStmt { diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 7afafd34b6..56e68d8374 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -506,7 +506,7 @@ stream_options(A) ::= stream_options(B) TRIGGER AT_ONCE. stream_options(A) ::= stream_options(B) TRIGGER WINDOW_CLOSE. { ((SStreamOptions*)B)->triggerType = STREAM_TRIGGER_WINDOW_CLOSE; A = B; } stream_options(A) ::= stream_options(B) TRIGGER MAX_DELAY duration_literal(C). { ((SStreamOptions*)B)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)B)->pDelay = releaseRawExprNode(pCxt, C); A = B; } stream_options(A) ::= stream_options(B) WATERMARK duration_literal(C). { ((SStreamOptions*)B)->pWatermark = releaseRawExprNode(pCxt, C); A = B; } -stream_options(A) ::= stream_options(B) IGNORE EXPIRED. { ((SStreamOptions*)B)->ignoreExpired = true; A = B; } +stream_options(A) ::= stream_options(B) IGNORE EXPIRED NK_INTEGER(C). { ((SStreamOptions*)B)->ignoreExpired = taosStr2Int8(C.z, NULL, 10); A = B; } /************************************************ kill connection/query ***********************************************/ cmd ::= KILL CONNECTION NK_INTEGER(A). { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &A); } diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index aa526dd440..4d0b0bbb25 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -1628,6 +1628,7 @@ SNode* createStreamOptions(SAstCreateContext* pCxt) { SStreamOptions* pOptions = (SStreamOptions*)nodesMakeNode(QUERY_NODE_STREAM_OPTIONS); CHECK_OUT_OF_MEM(pOptions); pOptions->triggerType = STREAM_TRIGGER_AT_ONCE; + pOptions->ignoreExpired = STREAM_DEFAULT_IGNORE_EXPIRED; return (SNode*)pOptions; } diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 4756a78be6..c820e955d7 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -139,17 +139,17 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 666 +#define YYNSTATE 667 #define YYNRULE 491 #define YYNTOKEN 305 -#define YY_MAX_SHIFT 665 -#define YY_MIN_SHIFTREDUCE 972 -#define YY_MAX_SHIFTREDUCE 1462 -#define YY_ERROR_ACTION 1463 -#define YY_ACCEPT_ACTION 1464 -#define YY_NO_ACTION 1465 -#define YY_MIN_REDUCE 1466 -#define YY_MAX_REDUCE 1956 +#define YY_MAX_SHIFT 666 +#define YY_MIN_SHIFTREDUCE 973 +#define YY_MAX_SHIFTREDUCE 1463 +#define YY_ERROR_ACTION 1464 +#define YY_ACCEPT_ACTION 1465 +#define YY_NO_ACTION 1466 +#define YY_MIN_REDUCE 1467 +#define YY_MAX_REDUCE 1957 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -218,261 +218,261 @@ typedef union { *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (2548) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 525, 30, 261, 525, 548, 433, 525, 434, 1501, 11, - /* 10 */ 10, 117, 39, 37, 55, 1652, 1653, 117, 471, 378, - /* 20 */ 339, 1467, 1263, 1005, 476, 1022, 1289, 1021, 1606, 1790, - /* 30 */ 1597, 1606, 127, 1339, 1606, 1261, 441, 551, 434, 1501, - /* 40 */ 469, 1774, 107, 1778, 1289, 106, 105, 104, 103, 102, - /* 50 */ 101, 100, 99, 98, 1774, 1023, 1334, 1808, 150, 64, - /* 60 */ 1934, 14, 1566, 1009, 1010, 552, 1770, 1776, 1269, 450, - /* 70 */ 1760, 125, 576, 165, 39, 37, 1402, 1931, 570, 1770, - /* 80 */ 1776, 328, 339, 1528, 1263, 550, 161, 1876, 1877, 1, - /* 90 */ 1881, 570, 1658, 479, 478, 1339, 1822, 1261, 1375, 327, - /* 100 */ 95, 1791, 579, 1793, 1794, 575, 496, 570, 1656, 344, - /* 110 */ 1868, 662, 1651, 1653, 330, 1864, 160, 513, 1334, 494, - /* 120 */ 1934, 492, 1288, 14, 325, 1341, 1342, 1704, 164, 542, - /* 130 */ 1269, 1160, 1161, 1933, 33, 32, 1894, 1931, 40, 38, - /* 140 */ 36, 35, 34, 148, 63, 1478, 639, 638, 637, 636, - /* 150 */ 349, 2, 635, 634, 128, 629, 628, 627, 626, 625, - /* 160 */ 624, 623, 139, 619, 618, 617, 348, 347, 614, 613, - /* 170 */ 1264, 107, 1262, 662, 106, 105, 104, 103, 102, 101, - /* 180 */ 100, 99, 98, 1808, 36, 35, 34, 1341, 1342, 224, - /* 190 */ 225, 541, 384, 1267, 1268, 612, 1316, 1317, 1319, 1320, - /* 200 */ 1321, 1322, 1323, 1324, 572, 568, 1332, 1333, 1335, 1336, - /* 210 */ 1337, 1338, 1340, 1343, 1466, 1287, 1433, 33, 32, 482, - /* 220 */ 481, 40, 38, 36, 35, 34, 123, 168, 540, 303, - /* 230 */ 1464, 223, 1264, 84, 1262, 1263, 477, 480, 116, 115, - /* 240 */ 114, 113, 112, 111, 110, 109, 108, 305, 1261, 1022, - /* 250 */ 515, 1021, 22, 174, 1599, 1267, 1268, 1489, 1316, 1317, - /* 260 */ 1319, 1320, 1321, 1322, 1323, 1324, 572, 568, 1332, 1333, - /* 270 */ 1335, 1336, 1337, 1338, 1340, 1343, 39, 37, 1488, 1023, - /* 280 */ 537, 1269, 168, 525, 339, 71, 1263, 1487, 70, 354, - /* 290 */ 1243, 1244, 1707, 1790, 170, 211, 512, 1339, 1760, 1261, - /* 300 */ 1118, 601, 600, 599, 1122, 598, 1124, 1125, 597, 1127, - /* 310 */ 594, 1606, 1133, 591, 1135, 1136, 588, 585, 1934, 1760, - /* 320 */ 1334, 1808, 1583, 1269, 662, 14, 1658, 1934, 1760, 552, - /* 330 */ 1934, 166, 1269, 343, 1760, 1931, 576, 1934, 39, 37, - /* 340 */ 1932, 487, 1656, 165, 1931, 551, 339, 1931, 1263, 548, - /* 350 */ 165, 76, 305, 2, 1931, 515, 497, 543, 538, 1339, - /* 360 */ 1822, 1261, 1697, 159, 95, 1791, 579, 1793, 1794, 575, - /* 370 */ 210, 570, 63, 173, 1868, 662, 1645, 127, 330, 1864, - /* 380 */ 160, 551, 1334, 1264, 490, 1262, 419, 604, 484, 1341, - /* 390 */ 1342, 33, 32, 209, 1269, 40, 38, 36, 35, 34, - /* 400 */ 1895, 633, 631, 39, 37, 1344, 1267, 1268, 1486, 91, - /* 410 */ 621, 339, 1790, 1263, 42, 8, 125, 40, 38, 36, - /* 420 */ 35, 34, 124, 610, 1339, 58, 1261, 1595, 57, 49, - /* 430 */ 1598, 162, 1876, 1877, 1264, 1881, 1262, 662, 178, 177, - /* 440 */ 1808, 352, 137, 136, 607, 606, 605, 1334, 574, 1760, - /* 450 */ 43, 1341, 1342, 1760, 316, 576, 1485, 1267, 1268, 1269, - /* 460 */ 1316, 1317, 1319, 1320, 1321, 1322, 1323, 1324, 572, 568, - /* 470 */ 1332, 1333, 1335, 1336, 1337, 1338, 1340, 1343, 63, 1822, - /* 480 */ 9, 74, 1934, 294, 1791, 579, 1793, 1794, 575, 573, - /* 490 */ 570, 567, 1840, 1288, 122, 165, 1264, 1760, 1262, 1931, - /* 500 */ 33, 32, 662, 1601, 40, 38, 36, 35, 34, 317, - /* 510 */ 168, 315, 314, 1484, 473, 351, 1341, 1342, 475, 1267, - /* 520 */ 1268, 1290, 1316, 1317, 1319, 1320, 1321, 1322, 1323, 1324, - /* 530 */ 572, 568, 1332, 1333, 1335, 1336, 1337, 1338, 1340, 1343, - /* 540 */ 474, 1009, 1010, 33, 32, 1459, 1363, 40, 38, 36, - /* 550 */ 35, 34, 168, 168, 1760, 525, 1934, 1591, 377, 146, - /* 560 */ 376, 1264, 63, 1262, 26, 1531, 382, 168, 1609, 165, - /* 570 */ 33, 32, 217, 1931, 40, 38, 36, 35, 34, 218, - /* 580 */ 1483, 1790, 1413, 1606, 1267, 1268, 1593, 1316, 1317, 1319, - /* 590 */ 1320, 1321, 1322, 1323, 1324, 572, 568, 1332, 1333, 1335, - /* 600 */ 1336, 1337, 1338, 1340, 1343, 39, 37, 77, 27, 1808, - /* 610 */ 498, 1883, 63, 339, 78, 1263, 168, 577, 1368, 1482, - /* 620 */ 505, 1760, 1760, 373, 576, 1301, 1339, 28, 1261, 482, - /* 630 */ 481, 1481, 1458, 33, 32, 1880, 123, 40, 38, 36, - /* 640 */ 35, 34, 375, 371, 438, 1589, 477, 480, 1822, 1334, - /* 650 */ 1286, 1934, 96, 1791, 579, 1793, 1794, 575, 253, 570, - /* 660 */ 1760, 1269, 1868, 513, 165, 1480, 1867, 1864, 1931, 1080, - /* 670 */ 33, 32, 1760, 1705, 40, 38, 36, 35, 34, 665, - /* 680 */ 33, 32, 9, 525, 40, 38, 36, 35, 34, 1477, - /* 690 */ 1476, 33, 32, 268, 383, 40, 38, 36, 35, 34, - /* 700 */ 168, 1703, 1082, 300, 662, 432, 1760, 157, 436, 1697, - /* 710 */ 214, 1606, 655, 651, 647, 643, 266, 1581, 1341, 1342, - /* 720 */ 176, 33, 32, 307, 571, 40, 38, 36, 35, 34, - /* 730 */ 1760, 1760, 39, 37, 525, 603, 525, 302, 1475, 1286, - /* 740 */ 339, 548, 1263, 525, 307, 389, 412, 404, 92, 424, - /* 750 */ 168, 231, 1301, 1339, 405, 1261, 440, 1584, 74, 436, - /* 760 */ 1361, 1406, 1606, 1264, 1606, 1262, 397, 1288, 425, 127, - /* 770 */ 399, 1606, 1474, 1702, 1778, 300, 1334, 1888, 1395, 1760, - /* 780 */ 1602, 1361, 44, 4, 522, 1774, 1267, 1268, 1269, 1316, - /* 790 */ 1317, 1319, 1320, 1321, 1322, 1323, 1324, 572, 568, 1332, - /* 800 */ 1333, 1335, 1336, 1337, 1338, 1340, 1343, 390, 125, 2, - /* 810 */ 1770, 1776, 334, 1760, 1362, 7, 220, 450, 610, 386, - /* 820 */ 90, 525, 570, 163, 1876, 1877, 1658, 1881, 1423, 145, - /* 830 */ 87, 662, 448, 312, 1235, 1362, 213, 137, 136, 607, - /* 840 */ 606, 605, 1656, 1479, 1883, 1341, 1342, 423, 1473, 1606, + /* 0 */ 526, 30, 261, 526, 549, 433, 526, 434, 1502, 11, + /* 10 */ 10, 117, 39, 37, 55, 1653, 1654, 117, 471, 378, + /* 20 */ 339, 1468, 1264, 1006, 476, 1023, 1290, 1022, 1607, 1791, + /* 30 */ 1598, 1607, 127, 1340, 1607, 1262, 441, 552, 434, 1502, + /* 40 */ 469, 1775, 107, 1779, 1290, 106, 105, 104, 103, 102, + /* 50 */ 101, 100, 99, 98, 1775, 1024, 1335, 1809, 150, 64, + /* 60 */ 1935, 14, 1567, 1010, 1011, 553, 1771, 1777, 1270, 450, + /* 70 */ 1761, 125, 577, 165, 39, 37, 1403, 1932, 571, 1771, + /* 80 */ 1777, 328, 339, 1529, 1264, 551, 161, 1877, 1878, 1, + /* 90 */ 1882, 571, 1659, 479, 478, 1340, 1823, 1262, 1376, 327, + /* 100 */ 95, 1792, 580, 1794, 1795, 576, 496, 571, 1657, 344, + /* 110 */ 1869, 663, 1652, 1654, 330, 1865, 160, 513, 1335, 494, + /* 120 */ 1935, 492, 1289, 14, 325, 1342, 1343, 1705, 164, 543, + /* 130 */ 1270, 1161, 1162, 1934, 33, 32, 1895, 1932, 40, 38, + /* 140 */ 36, 35, 34, 148, 63, 1479, 640, 639, 638, 637, + /* 150 */ 349, 2, 636, 635, 128, 630, 629, 628, 627, 626, + /* 160 */ 625, 624, 139, 620, 619, 618, 348, 347, 615, 614, + /* 170 */ 1265, 107, 1263, 663, 106, 105, 104, 103, 102, 101, + /* 180 */ 100, 99, 98, 1809, 36, 35, 34, 1342, 1343, 224, + /* 190 */ 225, 542, 384, 1268, 1269, 613, 1317, 1318, 1320, 1321, + /* 200 */ 1322, 1323, 1324, 1325, 573, 569, 1333, 1334, 1336, 1337, + /* 210 */ 1338, 1339, 1341, 1344, 1467, 1288, 1434, 33, 32, 482, + /* 220 */ 481, 40, 38, 36, 35, 34, 123, 168, 541, 303, + /* 230 */ 1465, 223, 1265, 84, 1263, 1264, 477, 480, 116, 115, + /* 240 */ 114, 113, 112, 111, 110, 109, 108, 305, 1262, 1023, + /* 250 */ 516, 1022, 22, 174, 1600, 1268, 1269, 1490, 1317, 1318, + /* 260 */ 1320, 1321, 1322, 1323, 1324, 1325, 573, 569, 1333, 1334, + /* 270 */ 1336, 1337, 1338, 1339, 1341, 1344, 39, 37, 1489, 1024, + /* 280 */ 538, 1270, 168, 526, 339, 71, 1264, 1488, 70, 354, + /* 290 */ 1244, 1245, 1708, 1791, 170, 211, 512, 1340, 1761, 1262, + /* 300 */ 1119, 602, 601, 600, 1123, 599, 1125, 1126, 598, 1128, + /* 310 */ 595, 1607, 1134, 592, 1136, 1137, 589, 586, 1935, 1761, + /* 320 */ 1335, 1809, 1584, 1270, 663, 14, 1659, 1935, 1761, 553, + /* 330 */ 1935, 166, 1270, 343, 1761, 1932, 577, 1935, 39, 37, + /* 340 */ 1933, 487, 1657, 165, 1932, 552, 339, 1932, 1264, 549, + /* 350 */ 165, 76, 305, 2, 1932, 516, 497, 544, 539, 1340, + /* 360 */ 1823, 1262, 1698, 159, 95, 1792, 580, 1794, 1795, 576, + /* 370 */ 210, 571, 63, 173, 1869, 663, 1646, 127, 330, 1865, + /* 380 */ 160, 552, 1335, 1265, 490, 1263, 419, 605, 484, 1342, + /* 390 */ 1343, 33, 32, 209, 1270, 40, 38, 36, 35, 34, + /* 400 */ 1896, 634, 632, 39, 37, 1345, 1268, 1269, 1487, 91, + /* 410 */ 622, 339, 1791, 1264, 42, 8, 125, 40, 38, 36, + /* 420 */ 35, 34, 124, 611, 1340, 58, 1262, 1596, 57, 49, + /* 430 */ 1599, 162, 1877, 1878, 1265, 1882, 1263, 663, 178, 177, + /* 440 */ 1809, 352, 137, 136, 608, 607, 606, 1335, 575, 1761, + /* 450 */ 43, 1342, 1343, 1761, 316, 577, 1486, 1268, 1269, 1270, + /* 460 */ 1317, 1318, 1320, 1321, 1322, 1323, 1324, 1325, 573, 569, + /* 470 */ 1333, 1334, 1336, 1337, 1338, 1339, 1341, 1344, 63, 1823, + /* 480 */ 9, 74, 1935, 294, 1792, 580, 1794, 1795, 576, 574, + /* 490 */ 571, 568, 1841, 1289, 122, 165, 1265, 1761, 1263, 1932, + /* 500 */ 33, 32, 663, 1602, 40, 38, 36, 35, 34, 317, + /* 510 */ 168, 315, 314, 1485, 473, 351, 1342, 1343, 475, 1268, + /* 520 */ 1269, 1291, 1317, 1318, 1320, 1321, 1322, 1323, 1324, 1325, + /* 530 */ 573, 569, 1333, 1334, 1336, 1337, 1338, 1339, 1341, 1344, + /* 540 */ 474, 1010, 1011, 33, 32, 1460, 1364, 40, 38, 36, + /* 550 */ 35, 34, 168, 168, 1761, 526, 1935, 1592, 377, 146, + /* 560 */ 376, 1265, 63, 1263, 26, 1532, 382, 168, 1610, 165, + /* 570 */ 33, 32, 217, 1932, 40, 38, 36, 35, 34, 218, + /* 580 */ 1484, 1791, 1414, 1607, 1268, 1269, 1594, 1317, 1318, 1320, + /* 590 */ 1321, 1322, 1323, 1324, 1325, 573, 569, 1333, 1334, 1336, + /* 600 */ 1337, 1338, 1339, 1341, 1344, 39, 37, 77, 27, 1809, + /* 610 */ 498, 1884, 63, 339, 78, 1264, 168, 578, 1369, 1483, + /* 620 */ 505, 1761, 1761, 373, 577, 1302, 1340, 28, 1262, 482, + /* 630 */ 481, 1482, 1459, 33, 32, 1881, 123, 40, 38, 36, + /* 640 */ 35, 34, 375, 371, 438, 1590, 477, 480, 1823, 1335, + /* 650 */ 1287, 1935, 96, 1792, 580, 1794, 1795, 576, 253, 571, + /* 660 */ 1761, 1270, 1869, 513, 165, 1481, 1868, 1865, 1932, 1081, + /* 670 */ 33, 32, 1761, 1706, 40, 38, 36, 35, 34, 666, + /* 680 */ 33, 32, 9, 526, 40, 38, 36, 35, 34, 1478, + /* 690 */ 1477, 33, 32, 268, 383, 40, 38, 36, 35, 34, + /* 700 */ 168, 1704, 1083, 300, 663, 432, 1761, 157, 436, 1698, + /* 710 */ 214, 1607, 656, 652, 648, 644, 266, 1582, 1342, 1343, + /* 720 */ 176, 33, 32, 307, 572, 40, 38, 36, 35, 34, + /* 730 */ 1761, 1761, 39, 37, 526, 604, 526, 302, 1476, 1287, + /* 740 */ 339, 549, 1264, 526, 307, 389, 412, 404, 92, 424, + /* 750 */ 168, 231, 1302, 1340, 405, 1262, 440, 1585, 74, 436, + /* 760 */ 1362, 1407, 1607, 1265, 1607, 1263, 397, 1289, 425, 127, + /* 770 */ 399, 1607, 1475, 1703, 1779, 300, 1335, 1889, 1396, 1761, + /* 780 */ 1603, 1362, 44, 4, 523, 1775, 1268, 1269, 1270, 1317, + /* 790 */ 1318, 1320, 1321, 1322, 1323, 1324, 1325, 573, 569, 1333, + /* 800 */ 1334, 1336, 1337, 1338, 1339, 1341, 1344, 390, 125, 2, + /* 810 */ 1771, 1777, 334, 1761, 1363, 7, 220, 450, 611, 386, + /* 820 */ 90, 526, 571, 163, 1877, 1878, 1659, 1882, 1424, 145, + /* 830 */ 87, 663, 448, 312, 1236, 1363, 213, 137, 136, 608, + /* 840 */ 607, 606, 1657, 1480, 1884, 1342, 1343, 423, 1474, 1607, /* 850 */ 418, 417, 416, 415, 414, 411, 410, 409, 408, 407, - /* 860 */ 403, 402, 401, 400, 394, 393, 392, 391, 1879, 388, - /* 870 */ 387, 534, 1421, 1422, 1424, 1425, 29, 337, 1356, 1357, - /* 880 */ 1358, 1359, 1360, 1364, 1365, 1366, 1367, 1349, 61, 1760, - /* 890 */ 1264, 608, 1262, 1288, 1649, 1934, 1399, 29, 337, 1356, - /* 900 */ 1357, 1358, 1359, 1360, 1364, 1365, 1366, 1367, 166, 1582, - /* 910 */ 1790, 1472, 1931, 1267, 1268, 1471, 1316, 1317, 1319, 1320, - /* 920 */ 1321, 1322, 1323, 1324, 572, 568, 1332, 1333, 1335, 1336, - /* 930 */ 1337, 1338, 1340, 1343, 622, 147, 1578, 1790, 1808, 525, - /* 940 */ 279, 610, 609, 256, 1318, 1649, 577, 1883, 1470, 1469, - /* 950 */ 449, 1760, 1760, 576, 277, 60, 1760, 475, 59, 1291, - /* 960 */ 137, 136, 607, 606, 605, 1808, 553, 1606, 1288, 612, - /* 970 */ 1567, 1878, 135, 577, 181, 429, 427, 1822, 1760, 474, - /* 980 */ 576, 94, 1791, 579, 1793, 1794, 575, 535, 570, 1760, - /* 990 */ 1760, 1868, 1779, 553, 468, 306, 1864, 273, 53, 509, - /* 1000 */ 1636, 1658, 1395, 1774, 1822, 525, 63, 1934, 94, 1791, - /* 1010 */ 579, 1793, 1794, 575, 525, 570, 1603, 1657, 1868, 54, - /* 1020 */ 167, 1747, 306, 1864, 1931, 1735, 1518, 202, 1770, 1776, - /* 1030 */ 200, 336, 335, 1606, 1934, 1461, 1462, 557, 525, 525, - /* 1040 */ 570, 1277, 1606, 1272, 93, 525, 525, 165, 483, 506, - /* 1050 */ 510, 1931, 1339, 560, 1270, 326, 228, 521, 525, 204, - /* 1060 */ 525, 1790, 203, 146, 499, 525, 1606, 1606, 361, 523, - /* 1070 */ 1318, 524, 1608, 1606, 1606, 1334, 262, 41, 222, 68, - /* 1080 */ 67, 381, 342, 525, 172, 1271, 1606, 1269, 1606, 1808, - /* 1090 */ 146, 131, 245, 1606, 346, 206, 233, 577, 205, 1608, - /* 1100 */ 301, 566, 1760, 369, 576, 367, 363, 359, 356, 353, - /* 1110 */ 345, 1606, 1781, 208, 134, 135, 207, 1809, 146, 1513, - /* 1120 */ 1398, 1511, 51, 1790, 1212, 226, 237, 1608, 1822, 555, - /* 1130 */ 565, 51, 95, 1791, 579, 1793, 1794, 575, 518, 570, - /* 1140 */ 41, 485, 1868, 488, 168, 1318, 330, 1864, 1947, 11, - /* 1150 */ 10, 1808, 615, 41, 616, 1783, 350, 1902, 583, 577, - /* 1160 */ 134, 230, 1111, 1502, 1760, 1646, 576, 135, 119, 1420, - /* 1170 */ 134, 1898, 549, 240, 1068, 1790, 1066, 255, 1369, 250, - /* 1180 */ 1275, 258, 260, 3, 5, 355, 313, 1325, 1049, 1278, - /* 1190 */ 1822, 1273, 360, 1228, 95, 1791, 579, 1793, 1794, 575, - /* 1200 */ 272, 570, 269, 1808, 1868, 1139, 1507, 1143, 330, 1864, - /* 1210 */ 1947, 577, 1281, 1283, 1150, 1148, 1760, 138, 576, 1925, - /* 1220 */ 175, 1050, 1274, 1286, 568, 1332, 1333, 1335, 1336, 1337, - /* 1230 */ 1338, 1790, 385, 1353, 406, 1699, 413, 421, 420, 1292, - /* 1240 */ 558, 1790, 1822, 422, 426, 431, 95, 1791, 579, 1793, - /* 1250 */ 1794, 575, 428, 570, 657, 439, 1868, 430, 561, 1808, - /* 1260 */ 330, 1864, 1947, 1294, 442, 443, 184, 577, 1293, 1808, - /* 1270 */ 186, 1887, 1760, 1295, 576, 444, 445, 577, 189, 447, - /* 1280 */ 191, 72, 1760, 73, 576, 451, 470, 553, 195, 472, - /* 1290 */ 1790, 304, 1596, 199, 118, 1592, 1740, 553, 1822, 501, - /* 1300 */ 201, 140, 286, 1791, 579, 1793, 1794, 575, 1822, 570, - /* 1310 */ 141, 1594, 286, 1791, 579, 1793, 1794, 575, 1808, 570, - /* 1320 */ 1590, 142, 143, 212, 270, 500, 577, 215, 1934, 507, - /* 1330 */ 504, 1760, 511, 576, 322, 219, 533, 514, 1934, 132, - /* 1340 */ 1739, 167, 1709, 519, 516, 1931, 133, 324, 81, 520, - /* 1350 */ 1790, 165, 1291, 529, 271, 1931, 83, 1822, 1607, 235, - /* 1360 */ 1790, 96, 1791, 579, 1793, 1794, 575, 1899, 570, 536, - /* 1370 */ 239, 1868, 531, 1909, 6, 564, 1864, 532, 1808, 545, - /* 1380 */ 329, 1908, 539, 530, 528, 244, 577, 1890, 1808, 527, - /* 1390 */ 1395, 1760, 1290, 576, 154, 126, 577, 249, 562, 559, - /* 1400 */ 246, 1760, 48, 576, 1884, 247, 331, 248, 85, 1790, - /* 1410 */ 581, 1650, 1579, 265, 274, 658, 659, 1822, 1930, 661, - /* 1420 */ 52, 149, 1791, 579, 1793, 1794, 575, 1822, 570, 1950, - /* 1430 */ 153, 96, 1791, 579, 1793, 1794, 575, 1808, 570, 556, - /* 1440 */ 1754, 1868, 323, 287, 297, 577, 1865, 1849, 296, 254, - /* 1450 */ 1760, 276, 576, 563, 1753, 278, 257, 259, 65, 1752, - /* 1460 */ 1790, 1751, 66, 1748, 357, 554, 1948, 358, 1255, 1256, - /* 1470 */ 171, 362, 1746, 364, 365, 366, 1822, 1745, 1744, 368, - /* 1480 */ 295, 1791, 579, 1793, 1794, 575, 370, 570, 1808, 1743, - /* 1490 */ 372, 1742, 374, 526, 1231, 1230, 577, 1720, 1719, 379, - /* 1500 */ 380, 1760, 1200, 576, 1718, 1717, 1692, 129, 1691, 1690, - /* 1510 */ 1689, 69, 1790, 1688, 1687, 1686, 1685, 1684, 395, 396, - /* 1520 */ 1683, 398, 1790, 130, 1668, 1667, 1666, 1822, 1682, 1681, - /* 1530 */ 1680, 295, 1791, 579, 1793, 1794, 575, 1679, 570, 1790, - /* 1540 */ 1808, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 577, 1671, - /* 1550 */ 1808, 1670, 1669, 1760, 1665, 576, 1664, 1663, 577, 1662, - /* 1560 */ 1202, 1661, 1660, 1760, 1659, 576, 1533, 1808, 179, 1532, - /* 1570 */ 1530, 1498, 120, 182, 180, 574, 1497, 158, 435, 1822, - /* 1580 */ 1760, 1012, 576, 290, 1791, 579, 1793, 1794, 575, 1822, - /* 1590 */ 570, 190, 1011, 149, 1791, 579, 1793, 1794, 575, 1790, - /* 1600 */ 570, 437, 1733, 183, 121, 1727, 1822, 1716, 1715, 1701, - /* 1610 */ 294, 1791, 579, 1793, 1794, 575, 1790, 570, 188, 1841, - /* 1620 */ 1585, 544, 1042, 1529, 1527, 452, 454, 1808, 1525, 453, - /* 1630 */ 456, 457, 338, 458, 1523, 577, 460, 462, 1949, 461, - /* 1640 */ 1760, 1521, 576, 465, 1808, 464, 1510, 1509, 1494, 340, - /* 1650 */ 466, 1587, 577, 1154, 1153, 1586, 50, 1760, 630, 576, - /* 1660 */ 1079, 1076, 632, 1519, 198, 1075, 1822, 1074, 1514, 1512, - /* 1670 */ 295, 1791, 579, 1793, 1794, 575, 318, 570, 319, 320, - /* 1680 */ 486, 1493, 1492, 1822, 1790, 489, 197, 295, 1791, 579, - /* 1690 */ 1793, 1794, 575, 491, 570, 1491, 493, 495, 97, 1732, - /* 1700 */ 152, 1237, 1790, 1726, 216, 467, 463, 459, 455, 196, - /* 1710 */ 56, 502, 1808, 144, 1714, 1712, 1713, 1711, 1710, 221, - /* 1720 */ 577, 1247, 15, 1708, 227, 1760, 79, 576, 1700, 503, - /* 1730 */ 1808, 321, 508, 80, 232, 517, 229, 87, 577, 41, - /* 1740 */ 47, 75, 16, 1760, 194, 576, 243, 242, 82, 25, - /* 1750 */ 17, 1822, 1435, 23, 234, 280, 1791, 579, 1793, 1794, - /* 1760 */ 575, 1790, 570, 236, 1417, 238, 1781, 1419, 151, 1822, - /* 1770 */ 1412, 252, 241, 281, 1791, 579, 1793, 1794, 575, 24, - /* 1780 */ 570, 86, 46, 1392, 1780, 18, 155, 1447, 1391, 1808, - /* 1790 */ 1446, 1452, 1441, 332, 1451, 1450, 333, 577, 10, 1279, - /* 1800 */ 45, 1825, 1760, 1329, 576, 1354, 193, 187, 13, 192, - /* 1810 */ 1790, 19, 1327, 446, 1326, 156, 569, 169, 31, 12, - /* 1820 */ 20, 1309, 578, 21, 582, 1140, 341, 1137, 1822, 185, - /* 1830 */ 586, 1790, 282, 1791, 579, 1793, 1794, 575, 1808, 570, - /* 1840 */ 584, 580, 587, 589, 1134, 590, 577, 1128, 592, 595, - /* 1850 */ 1117, 1760, 593, 576, 1126, 596, 1132, 1131, 1130, 1808, - /* 1860 */ 1129, 88, 89, 602, 263, 1149, 1145, 577, 62, 1040, - /* 1870 */ 611, 1071, 1760, 1070, 576, 1069, 1067, 1822, 1065, 1086, - /* 1880 */ 1064, 289, 1791, 579, 1793, 1794, 575, 1063, 570, 1790, - /* 1890 */ 620, 264, 1061, 1060, 1059, 1058, 1057, 1056, 1822, 1790, - /* 1900 */ 1055, 1083, 291, 1791, 579, 1793, 1794, 575, 1081, 570, - /* 1910 */ 1052, 1051, 1048, 1047, 1046, 1045, 1526, 1808, 640, 1524, - /* 1920 */ 642, 644, 1522, 646, 648, 577, 641, 1808, 1520, 645, - /* 1930 */ 1760, 652, 576, 650, 649, 577, 654, 1508, 653, 656, - /* 1940 */ 1760, 1002, 576, 1490, 664, 267, 660, 1465, 1265, 275, - /* 1950 */ 663, 1790, 1465, 1465, 1465, 1465, 1822, 1465, 1465, 1465, - /* 1960 */ 283, 1791, 579, 1793, 1794, 575, 1822, 570, 1790, 1465, - /* 1970 */ 292, 1791, 579, 1793, 1794, 575, 1465, 570, 1465, 1808, - /* 1980 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 577, 1465, 1465, - /* 1990 */ 1465, 1465, 1760, 1465, 576, 1465, 1808, 1465, 1465, 1465, - /* 2000 */ 1465, 1465, 1465, 1465, 577, 1465, 1465, 1465, 1465, 1760, - /* 2010 */ 1465, 576, 1465, 1465, 1465, 1465, 1465, 1790, 1822, 1465, - /* 2020 */ 1465, 1465, 284, 1791, 579, 1793, 1794, 575, 1465, 570, - /* 2030 */ 1465, 1465, 1465, 1465, 1790, 1822, 1465, 1465, 1465, 293, - /* 2040 */ 1791, 579, 1793, 1794, 575, 1808, 570, 1465, 1465, 1465, - /* 2050 */ 1465, 1465, 1465, 577, 1465, 1465, 1465, 1465, 1760, 1465, - /* 2060 */ 576, 1465, 1808, 1465, 1465, 1465, 1465, 1465, 1465, 1465, - /* 2070 */ 577, 1465, 1465, 1465, 1465, 1760, 1465, 576, 1465, 1465, - /* 2080 */ 1465, 1465, 1465, 1790, 1822, 1465, 1465, 1465, 285, 1791, - /* 2090 */ 579, 1793, 1794, 575, 1465, 570, 1465, 1465, 1465, 1465, - /* 2100 */ 1465, 1822, 1465, 1465, 1465, 298, 1791, 579, 1793, 1794, - /* 2110 */ 575, 1808, 570, 1465, 1465, 1465, 1465, 1465, 1465, 577, - /* 2120 */ 1465, 1465, 1465, 1465, 1760, 1465, 576, 1465, 1465, 1465, - /* 2130 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1790, 1465, 1465, - /* 2140 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1790, 1465, 1465, - /* 2150 */ 1822, 1465, 1465, 1465, 299, 1791, 579, 1793, 1794, 575, - /* 2160 */ 1465, 570, 1465, 1465, 1465, 1808, 1465, 1465, 1465, 1465, - /* 2170 */ 1465, 1465, 1465, 577, 1465, 1808, 1465, 1465, 1760, 1465, - /* 2180 */ 576, 1465, 1465, 577, 1465, 1465, 1465, 1465, 1760, 1465, - /* 2190 */ 576, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1790, 1465, - /* 2200 */ 1465, 1465, 1465, 1465, 1822, 1465, 1465, 1465, 1802, 1791, - /* 2210 */ 579, 1793, 1794, 575, 1822, 570, 1790, 1465, 1801, 1791, - /* 2220 */ 579, 1793, 1794, 575, 1465, 570, 1808, 1465, 1465, 1465, - /* 2230 */ 1465, 1465, 1465, 1465, 577, 1465, 1465, 1465, 1465, 1760, - /* 2240 */ 1465, 576, 1465, 1465, 1808, 1465, 1465, 1465, 1465, 1465, - /* 2250 */ 1465, 1465, 577, 1465, 1465, 1465, 1465, 1760, 1465, 576, - /* 2260 */ 1465, 1465, 1465, 1465, 1465, 1822, 1465, 1465, 1465, 1800, - /* 2270 */ 1791, 579, 1793, 1794, 575, 1790, 570, 1465, 1465, 1465, - /* 2280 */ 1465, 1465, 1465, 1822, 1465, 1465, 1465, 310, 1791, 579, - /* 2290 */ 1793, 1794, 575, 1465, 570, 1465, 1790, 1465, 1465, 1465, - /* 2300 */ 1465, 1465, 1465, 1808, 1465, 1465, 1465, 1465, 1465, 1465, - /* 2310 */ 1465, 577, 1465, 1465, 1465, 1465, 1760, 1465, 576, 1465, - /* 2320 */ 1465, 1465, 1465, 1465, 1808, 1465, 1465, 1465, 1465, 1465, - /* 2330 */ 1465, 1465, 577, 1465, 1465, 1465, 1465, 1760, 1465, 576, - /* 2340 */ 1465, 1465, 1822, 1465, 1465, 1465, 309, 1791, 579, 1793, - /* 2350 */ 1794, 575, 1790, 570, 1465, 1465, 1465, 1465, 1465, 1465, - /* 2360 */ 1465, 1465, 1790, 1822, 1465, 1465, 1465, 311, 1791, 579, - /* 2370 */ 1793, 1794, 575, 1465, 570, 1465, 1465, 1465, 1465, 1465, - /* 2380 */ 1808, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 577, 1465, - /* 2390 */ 1808, 1465, 1465, 1760, 548, 576, 1465, 1465, 577, 1465, - /* 2400 */ 1465, 1465, 1465, 1760, 1465, 576, 1465, 1465, 1465, 1465, - /* 2410 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1822, - /* 2420 */ 1465, 1465, 127, 308, 1791, 579, 1793, 1794, 575, 1822, - /* 2430 */ 570, 1465, 1465, 288, 1791, 579, 1793, 1794, 575, 1465, - /* 2440 */ 570, 548, 553, 1465, 1465, 1465, 1465, 1465, 1465, 1465, - /* 2450 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, - /* 2460 */ 1465, 125, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 127, - /* 2470 */ 1465, 1465, 1465, 1465, 1465, 1465, 251, 1876, 547, 1465, - /* 2480 */ 546, 1465, 1465, 1934, 1465, 1465, 1465, 1465, 1465, 553, - /* 2490 */ 1465, 1465, 1465, 1465, 1465, 1465, 167, 1465, 1465, 1465, - /* 2500 */ 1931, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 125, 1465, - /* 2510 */ 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, - /* 2520 */ 1465, 1465, 1465, 251, 1876, 547, 1465, 546, 1465, 1465, - /* 2530 */ 1934, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, 1465, - /* 2540 */ 1465, 1465, 1465, 165, 1465, 1465, 1465, 1931, + /* 860 */ 403, 402, 401, 400, 394, 393, 392, 391, 1880, 388, + /* 870 */ 387, 535, 1422, 1423, 1425, 1426, 29, 337, 1357, 1358, + /* 880 */ 1359, 1360, 1361, 1365, 1366, 1367, 1368, 1350, 61, 1761, + /* 890 */ 1265, 609, 1263, 1289, 1650, 1935, 1400, 29, 337, 1357, + /* 900 */ 1358, 1359, 1360, 1361, 1365, 1366, 1367, 1368, 166, 1583, + /* 910 */ 1791, 1473, 1932, 1268, 1269, 1472, 1317, 1318, 1320, 1321, + /* 920 */ 1322, 1323, 1324, 1325, 573, 569, 1333, 1334, 1336, 1337, + /* 930 */ 1338, 1339, 1341, 1344, 623, 147, 1579, 1791, 1809, 526, + /* 940 */ 279, 611, 610, 256, 1319, 1650, 578, 1884, 1471, 1470, + /* 950 */ 449, 1761, 1761, 577, 277, 60, 1761, 475, 59, 1292, + /* 960 */ 137, 136, 608, 607, 606, 1809, 554, 1607, 1289, 613, + /* 970 */ 1568, 1879, 135, 578, 181, 429, 427, 1823, 1761, 474, + /* 980 */ 577, 94, 1792, 580, 1794, 1795, 576, 536, 571, 1761, + /* 990 */ 1761, 1869, 1780, 554, 468, 306, 1865, 273, 53, 509, + /* 1000 */ 1637, 1659, 1396, 1775, 1823, 526, 63, 1935, 94, 1792, + /* 1010 */ 580, 1794, 1795, 576, 526, 571, 1604, 1658, 1869, 54, + /* 1020 */ 167, 1748, 306, 1865, 1932, 1736, 1519, 202, 1771, 1777, + /* 1030 */ 200, 336, 335, 1607, 1935, 1462, 1463, 558, 526, 526, + /* 1040 */ 571, 1278, 1607, 1273, 93, 526, 526, 165, 483, 506, + /* 1050 */ 510, 1932, 1340, 561, 1271, 326, 228, 522, 526, 204, + /* 1060 */ 526, 1791, 203, 146, 499, 526, 1607, 1607, 361, 524, + /* 1070 */ 1319, 525, 1609, 1607, 1607, 1335, 262, 41, 222, 68, + /* 1080 */ 67, 381, 342, 526, 172, 1272, 1607, 1270, 1607, 1809, + /* 1090 */ 146, 131, 245, 1607, 346, 206, 233, 578, 205, 1609, + /* 1100 */ 301, 567, 1761, 369, 577, 367, 363, 359, 356, 353, + /* 1110 */ 345, 1607, 1782, 208, 134, 135, 207, 1810, 146, 1514, + /* 1120 */ 1399, 1512, 51, 1791, 1213, 226, 237, 1609, 1823, 556, + /* 1130 */ 566, 51, 95, 1792, 580, 1794, 1795, 576, 519, 571, + /* 1140 */ 41, 485, 1869, 488, 168, 1319, 330, 1865, 1948, 11, + /* 1150 */ 10, 1809, 616, 41, 617, 1784, 350, 1903, 584, 578, + /* 1160 */ 134, 230, 1112, 1503, 1761, 1647, 577, 135, 119, 1421, + /* 1170 */ 134, 1899, 550, 240, 1069, 1791, 1067, 255, 1370, 250, + /* 1180 */ 1276, 258, 260, 3, 5, 355, 313, 1326, 1050, 1279, + /* 1190 */ 1823, 1274, 360, 1229, 95, 1792, 580, 1794, 1795, 576, + /* 1200 */ 272, 571, 269, 1809, 1869, 1140, 1508, 1144, 330, 1865, + /* 1210 */ 1948, 578, 1282, 1284, 1151, 1149, 1761, 138, 577, 1926, + /* 1220 */ 175, 1051, 1275, 1287, 569, 1333, 1334, 1336, 1337, 1338, + /* 1230 */ 1339, 1791, 385, 1354, 406, 1700, 413, 421, 420, 1293, + /* 1240 */ 559, 1791, 1823, 422, 426, 431, 95, 1792, 580, 1794, + /* 1250 */ 1795, 576, 428, 571, 658, 439, 1869, 430, 562, 1809, + /* 1260 */ 330, 1865, 1948, 1295, 442, 443, 184, 578, 1294, 1809, + /* 1270 */ 186, 1888, 1761, 1296, 577, 444, 445, 578, 189, 447, + /* 1280 */ 191, 72, 1761, 73, 577, 451, 470, 554, 195, 472, + /* 1290 */ 1791, 304, 1597, 199, 118, 1593, 1741, 554, 1823, 501, + /* 1300 */ 201, 140, 286, 1792, 580, 1794, 1795, 576, 1823, 571, + /* 1310 */ 141, 1595, 286, 1792, 580, 1794, 1795, 576, 1809, 571, + /* 1320 */ 1591, 142, 143, 212, 270, 500, 578, 215, 1935, 507, + /* 1330 */ 504, 1761, 511, 577, 322, 219, 534, 514, 1935, 132, + /* 1340 */ 1740, 167, 1710, 520, 517, 1932, 133, 324, 81, 521, + /* 1350 */ 1791, 165, 1292, 530, 271, 1932, 83, 1823, 1608, 235, + /* 1360 */ 1791, 96, 1792, 580, 1794, 1795, 576, 1900, 571, 537, + /* 1370 */ 239, 1869, 532, 1910, 6, 565, 1865, 533, 1809, 546, + /* 1380 */ 329, 1909, 540, 531, 529, 244, 578, 1891, 1809, 528, + /* 1390 */ 1396, 1761, 1291, 577, 154, 126, 578, 249, 563, 560, + /* 1400 */ 246, 1761, 48, 577, 1885, 247, 331, 248, 85, 1791, + /* 1410 */ 582, 1651, 1580, 265, 274, 659, 660, 1823, 1931, 662, + /* 1420 */ 52, 149, 1792, 580, 1794, 1795, 576, 1823, 571, 1951, + /* 1430 */ 153, 96, 1792, 580, 1794, 1795, 576, 1809, 571, 557, + /* 1440 */ 1755, 1869, 323, 287, 297, 578, 1866, 1850, 296, 254, + /* 1450 */ 1761, 276, 577, 564, 1754, 278, 257, 259, 65, 1753, + /* 1460 */ 1791, 1752, 66, 1749, 357, 555, 1949, 358, 1256, 1257, + /* 1470 */ 171, 362, 1747, 364, 365, 366, 1823, 1746, 1745, 368, + /* 1480 */ 295, 1792, 580, 1794, 1795, 576, 370, 571, 1809, 1744, + /* 1490 */ 372, 1743, 374, 527, 1232, 1231, 578, 1721, 1720, 379, + /* 1500 */ 380, 1761, 1201, 577, 1719, 1718, 1693, 129, 1692, 1691, + /* 1510 */ 1690, 69, 1791, 1689, 1688, 1687, 1686, 1685, 395, 396, + /* 1520 */ 1684, 398, 1791, 130, 1669, 1668, 1667, 1823, 1683, 1682, + /* 1530 */ 1681, 295, 1792, 580, 1794, 1795, 576, 1680, 571, 1791, + /* 1540 */ 1809, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 578, 1672, + /* 1550 */ 1809, 1671, 1670, 1761, 1666, 577, 1665, 1664, 578, 1663, + /* 1560 */ 1203, 1662, 1661, 1761, 1660, 577, 1534, 1809, 179, 1533, + /* 1570 */ 1531, 1499, 120, 182, 180, 575, 1498, 158, 435, 1823, + /* 1580 */ 1761, 1013, 577, 290, 1792, 580, 1794, 1795, 576, 1823, + /* 1590 */ 571, 190, 1012, 149, 1792, 580, 1794, 1795, 576, 1791, + /* 1600 */ 571, 437, 1734, 183, 121, 1728, 1823, 1717, 1716, 1702, + /* 1610 */ 294, 1792, 580, 1794, 1795, 576, 1791, 571, 188, 1842, + /* 1620 */ 1586, 545, 1043, 1530, 1528, 452, 454, 1809, 1526, 453, + /* 1630 */ 456, 457, 338, 458, 1524, 578, 460, 462, 1950, 461, + /* 1640 */ 1761, 1522, 577, 465, 1809, 464, 1511, 1510, 1495, 340, + /* 1650 */ 466, 1588, 578, 1155, 1154, 1587, 50, 1761, 631, 577, + /* 1660 */ 1080, 1077, 633, 1520, 198, 1076, 1823, 1075, 1515, 1513, + /* 1670 */ 295, 1792, 580, 1794, 1795, 576, 318, 571, 319, 320, + /* 1680 */ 486, 1494, 1493, 1823, 1791, 489, 197, 295, 1792, 580, + /* 1690 */ 1794, 1795, 576, 491, 571, 1492, 493, 495, 97, 1733, + /* 1700 */ 152, 1238, 1791, 1727, 216, 467, 463, 459, 455, 196, + /* 1710 */ 56, 502, 1809, 144, 1715, 1713, 1714, 1712, 1711, 221, + /* 1720 */ 578, 1248, 15, 1709, 227, 1761, 79, 577, 1701, 503, + /* 1730 */ 1809, 321, 508, 80, 232, 518, 41, 87, 578, 229, + /* 1740 */ 47, 75, 16, 1761, 194, 577, 243, 242, 82, 25, + /* 1750 */ 17, 1823, 1436, 23, 234, 280, 1792, 580, 1794, 1795, + /* 1760 */ 576, 1791, 571, 236, 1418, 515, 238, 1782, 151, 1823, + /* 1770 */ 1420, 252, 241, 281, 1792, 580, 1794, 1795, 576, 24, + /* 1780 */ 571, 1413, 1393, 46, 1781, 86, 18, 155, 1392, 1809, + /* 1790 */ 1448, 1453, 1442, 1447, 332, 1452, 1451, 578, 333, 10, + /* 1800 */ 45, 1280, 1761, 1330, 577, 1355, 193, 187, 13, 192, + /* 1810 */ 1791, 19, 1328, 446, 1327, 156, 1826, 169, 570, 31, + /* 1820 */ 12, 20, 1310, 21, 583, 1141, 341, 1138, 1823, 185, + /* 1830 */ 587, 1791, 282, 1792, 580, 1794, 1795, 576, 1809, 571, + /* 1840 */ 585, 588, 581, 1135, 579, 590, 578, 1129, 593, 596, + /* 1850 */ 1118, 1761, 1127, 577, 591, 594, 597, 1133, 1132, 1809, + /* 1860 */ 1131, 1130, 88, 89, 263, 603, 1150, 578, 1146, 62, + /* 1870 */ 1041, 1072, 1761, 612, 577, 1071, 1070, 1823, 1068, 1066, + /* 1880 */ 1065, 289, 1792, 580, 1794, 1795, 576, 1064, 571, 1791, + /* 1890 */ 1087, 621, 264, 1062, 1061, 1060, 1059, 1058, 1823, 1791, + /* 1900 */ 1057, 1056, 291, 1792, 580, 1794, 1795, 576, 1047, 571, + /* 1910 */ 1084, 1082, 1053, 1052, 1049, 1048, 1046, 1809, 1527, 641, + /* 1920 */ 1525, 642, 643, 645, 647, 578, 1523, 1809, 649, 646, + /* 1930 */ 1761, 651, 577, 1521, 650, 578, 653, 655, 654, 1509, + /* 1940 */ 1761, 657, 577, 1491, 1003, 267, 661, 1466, 1466, 1266, + /* 1950 */ 275, 1791, 664, 1466, 665, 1466, 1823, 1466, 1466, 1466, + /* 1960 */ 283, 1792, 580, 1794, 1795, 576, 1823, 571, 1791, 1466, + /* 1970 */ 292, 1792, 580, 1794, 1795, 576, 1466, 571, 1466, 1809, + /* 1980 */ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 578, 1466, 1466, + /* 1990 */ 1466, 1466, 1761, 1466, 577, 1466, 1809, 1466, 1466, 1466, + /* 2000 */ 1466, 1466, 1466, 1466, 578, 1466, 1466, 1466, 1466, 1761, + /* 2010 */ 1466, 577, 1466, 1466, 1466, 1466, 1466, 1791, 1823, 1466, + /* 2020 */ 1466, 1466, 284, 1792, 580, 1794, 1795, 576, 1466, 571, + /* 2030 */ 1466, 1466, 1466, 1466, 1791, 1823, 1466, 1466, 1466, 293, + /* 2040 */ 1792, 580, 1794, 1795, 576, 1809, 571, 1466, 1466, 1466, + /* 2050 */ 1466, 1466, 1466, 578, 1466, 1466, 1466, 1466, 1761, 1466, + /* 2060 */ 577, 1466, 1809, 1466, 1466, 1466, 1466, 1466, 1466, 1466, + /* 2070 */ 578, 1466, 1466, 1466, 1466, 1761, 1466, 577, 1466, 1466, + /* 2080 */ 1466, 1466, 1466, 1791, 1823, 1466, 1466, 1466, 285, 1792, + /* 2090 */ 580, 1794, 1795, 576, 1466, 571, 1466, 1466, 1466, 1466, + /* 2100 */ 1466, 1823, 1466, 1466, 1466, 298, 1792, 580, 1794, 1795, + /* 2110 */ 576, 1809, 571, 1466, 1466, 1466, 1466, 1466, 1466, 578, + /* 2120 */ 1466, 1466, 1466, 1466, 1761, 1466, 577, 1466, 1466, 1466, + /* 2130 */ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1791, 1466, 1466, + /* 2140 */ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1791, 1466, 1466, + /* 2150 */ 1823, 1466, 1466, 1466, 299, 1792, 580, 1794, 1795, 576, + /* 2160 */ 1466, 571, 1466, 1466, 1466, 1809, 1466, 1466, 1466, 1466, + /* 2170 */ 1466, 1466, 1466, 578, 1466, 1809, 1466, 1466, 1761, 1466, + /* 2180 */ 577, 1466, 1466, 578, 1466, 1466, 1466, 1466, 1761, 1466, + /* 2190 */ 577, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1791, 1466, + /* 2200 */ 1466, 1466, 1466, 1466, 1823, 1466, 1466, 1466, 1803, 1792, + /* 2210 */ 580, 1794, 1795, 576, 1823, 571, 1791, 1466, 1802, 1792, + /* 2220 */ 580, 1794, 1795, 576, 1466, 571, 1809, 1466, 1466, 1466, + /* 2230 */ 1466, 1466, 1466, 1466, 578, 1466, 1466, 1466, 1466, 1761, + /* 2240 */ 1466, 577, 1466, 1466, 1809, 1466, 1466, 1466, 1466, 1466, + /* 2250 */ 1466, 1466, 578, 1466, 1466, 1466, 1466, 1761, 1466, 577, + /* 2260 */ 1466, 1466, 1466, 1466, 1466, 1823, 1466, 1466, 1466, 1801, + /* 2270 */ 1792, 580, 1794, 1795, 576, 1791, 571, 1466, 1466, 1466, + /* 2280 */ 1466, 1466, 1466, 1823, 1466, 1466, 1466, 310, 1792, 580, + /* 2290 */ 1794, 1795, 576, 1466, 571, 1466, 1791, 1466, 1466, 1466, + /* 2300 */ 1466, 1466, 1466, 1809, 1466, 1466, 1466, 1466, 1466, 1466, + /* 2310 */ 1466, 578, 1466, 1466, 1466, 1466, 1761, 1466, 577, 1466, + /* 2320 */ 1466, 1466, 1466, 1466, 1809, 1466, 1466, 1466, 1466, 1466, + /* 2330 */ 1466, 1466, 578, 1466, 1466, 1466, 1466, 1761, 1466, 577, + /* 2340 */ 1466, 1466, 1823, 1466, 1466, 1466, 309, 1792, 580, 1794, + /* 2350 */ 1795, 576, 1791, 571, 1466, 1466, 1466, 1466, 1466, 1466, + /* 2360 */ 1466, 1466, 1791, 1823, 1466, 1466, 1466, 311, 1792, 580, + /* 2370 */ 1794, 1795, 576, 1466, 571, 1466, 1466, 1466, 1466, 1466, + /* 2380 */ 1809, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 578, 1466, + /* 2390 */ 1809, 1466, 1466, 1761, 549, 577, 1466, 1466, 578, 1466, + /* 2400 */ 1466, 1466, 1466, 1761, 1466, 577, 1466, 1466, 1466, 1466, + /* 2410 */ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1823, + /* 2420 */ 1466, 1466, 127, 308, 1792, 580, 1794, 1795, 576, 1823, + /* 2430 */ 571, 1466, 1466, 288, 1792, 580, 1794, 1795, 576, 1466, + /* 2440 */ 571, 549, 554, 1466, 1466, 1466, 1466, 1466, 1466, 1466, + /* 2450 */ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, + /* 2460 */ 1466, 125, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 127, + /* 2470 */ 1466, 1466, 1466, 1466, 1466, 1466, 251, 1877, 548, 1466, + /* 2480 */ 547, 1466, 1466, 1935, 1466, 1466, 1466, 1466, 1466, 554, + /* 2490 */ 1466, 1466, 1466, 1466, 1466, 1466, 167, 1466, 1466, 1466, + /* 2500 */ 1932, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 125, 1466, + /* 2510 */ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, + /* 2520 */ 1466, 1466, 1466, 251, 1877, 548, 1466, 547, 1466, 1466, + /* 2530 */ 1935, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, + /* 2540 */ 1466, 1466, 1466, 165, 1466, 1466, 1466, 1932, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 316, 390, 391, 316, 316, 312, 316, 314, 315, 1, @@ -647,30 +647,30 @@ static const YYCODETYPE yy_lookahead[] = { /* 1690 */ 382, 383, 384, 35, 386, 0, 35, 22, 20, 0, /* 1700 */ 47, 35, 308, 0, 154, 52, 53, 54, 55, 56, /* 1710 */ 157, 22, 336, 173, 0, 0, 0, 0, 0, 90, - /* 1720 */ 344, 182, 89, 0, 89, 349, 89, 351, 0, 157, - /* 1730 */ 336, 157, 159, 39, 46, 155, 153, 99, 344, 43, + /* 1720 */ 344, 35, 89, 0, 89, 349, 89, 351, 0, 157, + /* 1730 */ 336, 157, 159, 39, 46, 155, 43, 99, 344, 153, /* 1740 */ 43, 88, 231, 349, 91, 351, 46, 43, 89, 43, /* 1750 */ 231, 375, 90, 89, 89, 379, 380, 381, 382, 383, - /* 1760 */ 384, 308, 386, 90, 90, 89, 46, 90, 89, 375, + /* 1760 */ 384, 308, 386, 90, 90, 182, 89, 46, 89, 375, /* 1770 */ 90, 46, 89, 379, 380, 381, 382, 383, 384, 89, - /* 1780 */ 386, 89, 43, 90, 46, 43, 46, 35, 90, 336, - /* 1790 */ 35, 90, 90, 35, 35, 35, 35, 344, 2, 22, - /* 1800 */ 225, 89, 349, 90, 351, 193, 153, 154, 231, 156, + /* 1780 */ 386, 90, 90, 43, 46, 89, 43, 46, 90, 336, + /* 1790 */ 35, 90, 90, 35, 35, 35, 35, 344, 35, 2, + /* 1800 */ 225, 22, 349, 90, 351, 193, 153, 154, 231, 156, /* 1810 */ 308, 43, 90, 160, 90, 46, 89, 46, 89, 89, - /* 1820 */ 89, 22, 195, 89, 35, 90, 35, 90, 375, 176, + /* 1820 */ 89, 89, 22, 89, 35, 90, 35, 90, 375, 176, /* 1830 */ 35, 308, 379, 380, 381, 382, 383, 384, 336, 386, - /* 1840 */ 89, 100, 89, 35, 90, 89, 344, 90, 35, 35, - /* 1850 */ 22, 349, 89, 351, 90, 89, 113, 113, 113, 336, - /* 1860 */ 113, 89, 89, 101, 43, 35, 22, 344, 89, 62, - /* 1870 */ 61, 35, 349, 35, 351, 35, 35, 375, 35, 68, + /* 1840 */ 89, 89, 100, 90, 195, 35, 344, 90, 35, 35, + /* 1850 */ 22, 349, 90, 351, 89, 89, 89, 113, 113, 336, + /* 1860 */ 113, 113, 89, 89, 43, 101, 35, 344, 22, 89, + /* 1870 */ 62, 35, 349, 61, 351, 35, 35, 375, 35, 35, /* 1880 */ 35, 379, 380, 381, 382, 383, 384, 35, 386, 308, - /* 1890 */ 87, 43, 35, 35, 22, 35, 22, 35, 375, 308, - /* 1900 */ 35, 68, 379, 380, 381, 382, 383, 384, 35, 386, - /* 1910 */ 35, 35, 35, 35, 22, 35, 0, 336, 35, 0, - /* 1920 */ 39, 35, 0, 39, 35, 344, 47, 336, 0, 47, - /* 1930 */ 349, 35, 351, 39, 47, 344, 39, 0, 47, 35, - /* 1940 */ 349, 35, 351, 0, 20, 22, 21, 427, 22, 22, - /* 1950 */ 21, 308, 427, 427, 427, 427, 375, 427, 427, 427, + /* 1890 */ 68, 87, 43, 35, 35, 22, 35, 22, 375, 308, + /* 1900 */ 35, 35, 379, 380, 381, 382, 383, 384, 22, 386, + /* 1910 */ 68, 35, 35, 35, 35, 35, 35, 336, 0, 35, + /* 1920 */ 0, 47, 39, 35, 39, 344, 0, 336, 35, 47, + /* 1930 */ 349, 39, 351, 0, 47, 344, 35, 39, 47, 0, + /* 1940 */ 349, 35, 351, 0, 35, 22, 21, 427, 427, 22, + /* 1950 */ 22, 308, 21, 427, 20, 427, 375, 427, 427, 427, /* 1960 */ 379, 380, 381, 382, 383, 384, 375, 386, 308, 427, /* 1970 */ 379, 380, 381, 382, 383, 384, 427, 386, 427, 336, /* 1980 */ 427, 427, 427, 427, 427, 427, 427, 344, 427, 427, @@ -731,7 +731,7 @@ static const YYCODETYPE yy_lookahead[] = { /* 2530 */ 405, 427, 427, 427, 427, 427, 427, 427, 427, 427, /* 2540 */ 427, 427, 427, 418, 427, 427, 427, 422, }; -#define YY_SHIFT_COUNT (665) +#define YY_SHIFT_COUNT (666) #define YY_SHIFT_MIN (0) #define YY_SHIFT_MAX (1943) static const unsigned short int yy_shift_ofst[] = { @@ -786,22 +786,22 @@ static const unsigned short int yy_shift_ofst[] = { /* 480 */ 1626, 1630, 1645, 1663, 1654, 1668, 1656, 1631, 1669, 1657, /* 490 */ 1650, 1681, 1658, 1682, 1661, 1695, 1675, 1678, 1699, 1553, /* 500 */ 1666, 1703, 1540, 1689, 1572, 1550, 1714, 1715, 1574, 1573, - /* 510 */ 1716, 1717, 1718, 1633, 1629, 1539, 1723, 1635, 1580, 1637, - /* 520 */ 1728, 1694, 1583, 1659, 1638, 1688, 1696, 1511, 1664, 1662, - /* 530 */ 1665, 1673, 1674, 1676, 1697, 1677, 1679, 1683, 1690, 1680, - /* 540 */ 1704, 1700, 1720, 1692, 1706, 1519, 1693, 1698, 1725, 1575, - /* 550 */ 1739, 1738, 1740, 1701, 1742, 1577, 1702, 1752, 1755, 1758, - /* 560 */ 1759, 1760, 1761, 1702, 1796, 1777, 1612, 1768, 1712, 1713, - /* 570 */ 1727, 1722, 1729, 1724, 1769, 1730, 1731, 1771, 1799, 1627, - /* 580 */ 1734, 1741, 1735, 1789, 1791, 1751, 1737, 1795, 1753, 1754, - /* 590 */ 1808, 1756, 1757, 1813, 1763, 1764, 1814, 1766, 1743, 1744, - /* 600 */ 1745, 1747, 1828, 1762, 1772, 1773, 1830, 1779, 1821, 1821, - /* 610 */ 1844, 1807, 1809, 1836, 1838, 1840, 1841, 1843, 1845, 1852, - /* 620 */ 1811, 1803, 1848, 1857, 1858, 1872, 1860, 1874, 1862, 1865, - /* 630 */ 1833, 1615, 1873, 1619, 1875, 1876, 1877, 1878, 1892, 1880, - /* 640 */ 1916, 1883, 1879, 1881, 1919, 1886, 1882, 1884, 1922, 1889, - /* 650 */ 1887, 1894, 1928, 1896, 1891, 1897, 1937, 1904, 1906, 1943, - /* 660 */ 1923, 1925, 1926, 1927, 1929, 1924, + /* 510 */ 1716, 1717, 1718, 1633, 1629, 1686, 1583, 1723, 1635, 1580, + /* 520 */ 1637, 1728, 1694, 1586, 1659, 1638, 1688, 1693, 1511, 1664, + /* 530 */ 1662, 1665, 1673, 1674, 1677, 1697, 1680, 1679, 1683, 1690, + /* 540 */ 1691, 1704, 1700, 1721, 1696, 1706, 1519, 1692, 1698, 1725, + /* 550 */ 1575, 1740, 1738, 1741, 1701, 1743, 1577, 1702, 1755, 1758, + /* 560 */ 1759, 1760, 1761, 1763, 1702, 1797, 1779, 1612, 1768, 1727, + /* 570 */ 1713, 1729, 1722, 1730, 1724, 1769, 1731, 1732, 1771, 1800, + /* 580 */ 1649, 1734, 1742, 1735, 1789, 1791, 1751, 1737, 1795, 1752, + /* 590 */ 1753, 1810, 1765, 1757, 1813, 1766, 1762, 1814, 1767, 1744, + /* 600 */ 1745, 1747, 1748, 1828, 1764, 1773, 1774, 1831, 1780, 1821, + /* 610 */ 1821, 1846, 1808, 1812, 1836, 1840, 1841, 1843, 1844, 1845, + /* 620 */ 1852, 1822, 1804, 1849, 1858, 1859, 1873, 1861, 1875, 1865, + /* 630 */ 1866, 1842, 1615, 1876, 1619, 1877, 1878, 1879, 1880, 1886, + /* 640 */ 1881, 1918, 1884, 1874, 1883, 1920, 1888, 1882, 1885, 1926, + /* 650 */ 1893, 1887, 1892, 1933, 1901, 1891, 1898, 1939, 1906, 1909, + /* 660 */ 1943, 1923, 1925, 1927, 1928, 1931, 1934, }; #define YY_REDUCE_COUNT (275) #define YY_REDUCE_MIN (-389) @@ -837,73 +837,73 @@ static const short yy_reduce_ofst[] = { /* 270 */ 1068, 1113, 1114, 1118, 1132, 1149, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 10 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 20 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 30 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 40 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 50 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 60 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 70 */ 1463, 1463, 1463, 1463, 1463, 1537, 1463, 1463, 1463, 1463, - /* 80 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 90 */ 1463, 1463, 1535, 1693, 1463, 1870, 1463, 1463, 1463, 1463, - /* 100 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 110 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 120 */ 1463, 1463, 1537, 1463, 1535, 1882, 1882, 1882, 1463, 1463, - /* 130 */ 1463, 1463, 1736, 1736, 1463, 1463, 1463, 1463, 1635, 1463, - /* 140 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1728, 1463, 1951, - /* 150 */ 1463, 1463, 1463, 1734, 1905, 1463, 1463, 1463, 1463, 1588, - /* 160 */ 1897, 1874, 1888, 1875, 1872, 1936, 1936, 1936, 1891, 1463, - /* 170 */ 1901, 1463, 1721, 1698, 1463, 1463, 1698, 1695, 1695, 1463, - /* 180 */ 1463, 1463, 1463, 1463, 1463, 1537, 1463, 1537, 1463, 1463, - /* 190 */ 1537, 1463, 1537, 1537, 1537, 1463, 1537, 1463, 1463, 1463, - /* 200 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 210 */ 1463, 1463, 1463, 1535, 1730, 1463, 1535, 1463, 1463, 1463, - /* 220 */ 1535, 1910, 1463, 1463, 1463, 1463, 1910, 1463, 1463, 1535, - /* 230 */ 1463, 1535, 1463, 1463, 1463, 1912, 1910, 1463, 1463, 1912, - /* 240 */ 1910, 1463, 1463, 1463, 1924, 1920, 1912, 1928, 1926, 1903, - /* 250 */ 1901, 1888, 1463, 1463, 1942, 1938, 1954, 1942, 1938, 1942, - /* 260 */ 1938, 1463, 1604, 1463, 1463, 1463, 1535, 1495, 1463, 1723, - /* 270 */ 1736, 1638, 1638, 1638, 1538, 1468, 1463, 1463, 1463, 1463, - /* 280 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1807, 1923, - /* 290 */ 1922, 1846, 1845, 1844, 1842, 1806, 1463, 1600, 1805, 1804, - /* 300 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1798, 1799, - /* 310 */ 1797, 1796, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 320 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 330 */ 1871, 1463, 1939, 1943, 1463, 1463, 1463, 1463, 1463, 1782, - /* 340 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 350 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 360 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 370 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 380 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 390 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 400 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 410 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 420 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 430 */ 1463, 1463, 1463, 1463, 1500, 1463, 1463, 1463, 1463, 1463, - /* 440 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 450 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 460 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 470 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1572, 1571, - /* 480 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 490 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 500 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 510 */ 1463, 1463, 1463, 1463, 1463, 1463, 1740, 1463, 1463, 1463, - /* 520 */ 1463, 1463, 1463, 1463, 1463, 1463, 1904, 1463, 1463, 1463, - /* 530 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 540 */ 1463, 1463, 1782, 1463, 1921, 1463, 1881, 1877, 1463, 1463, - /* 550 */ 1873, 1781, 1463, 1463, 1937, 1463, 1463, 1463, 1463, 1463, - /* 560 */ 1463, 1463, 1463, 1463, 1866, 1463, 1463, 1839, 1824, 1463, - /* 570 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1792, - /* 580 */ 1463, 1463, 1463, 1463, 1463, 1632, 1463, 1463, 1463, 1463, - /* 590 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1617, 1615, - /* 600 */ 1614, 1613, 1463, 1610, 1463, 1463, 1463, 1463, 1641, 1640, - /* 610 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 620 */ 1463, 1463, 1556, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 630 */ 1463, 1548, 1463, 1547, 1463, 1463, 1463, 1463, 1463, 1463, - /* 640 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 650 */ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - /* 660 */ 1463, 1463, 1463, 1463, 1463, 1463, + /* 0 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 10 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 20 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 30 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 40 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 50 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 60 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 70 */ 1464, 1464, 1464, 1464, 1464, 1538, 1464, 1464, 1464, 1464, + /* 80 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 90 */ 1464, 1464, 1536, 1694, 1464, 1871, 1464, 1464, 1464, 1464, + /* 100 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 110 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 120 */ 1464, 1464, 1538, 1464, 1536, 1883, 1883, 1883, 1464, 1464, + /* 130 */ 1464, 1464, 1737, 1737, 1464, 1464, 1464, 1464, 1636, 1464, + /* 140 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1729, 1464, 1952, + /* 150 */ 1464, 1464, 1464, 1735, 1906, 1464, 1464, 1464, 1464, 1589, + /* 160 */ 1898, 1875, 1889, 1876, 1873, 1937, 1937, 1937, 1892, 1464, + /* 170 */ 1902, 1464, 1722, 1699, 1464, 1464, 1699, 1696, 1696, 1464, + /* 180 */ 1464, 1464, 1464, 1464, 1464, 1538, 1464, 1538, 1464, 1464, + /* 190 */ 1538, 1464, 1538, 1538, 1538, 1464, 1538, 1464, 1464, 1464, + /* 200 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 210 */ 1464, 1464, 1464, 1536, 1731, 1464, 1536, 1464, 1464, 1464, + /* 220 */ 1536, 1911, 1464, 1464, 1464, 1464, 1911, 1464, 1464, 1536, + /* 230 */ 1464, 1536, 1464, 1464, 1464, 1913, 1911, 1464, 1464, 1913, + /* 240 */ 1911, 1464, 1464, 1464, 1925, 1921, 1913, 1929, 1927, 1904, + /* 250 */ 1902, 1889, 1464, 1464, 1943, 1939, 1955, 1943, 1939, 1943, + /* 260 */ 1939, 1464, 1605, 1464, 1464, 1464, 1536, 1496, 1464, 1724, + /* 270 */ 1737, 1639, 1639, 1639, 1539, 1469, 1464, 1464, 1464, 1464, + /* 280 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1808, 1924, + /* 290 */ 1923, 1847, 1846, 1845, 1843, 1807, 1464, 1601, 1806, 1805, + /* 300 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1799, 1800, + /* 310 */ 1798, 1797, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 320 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 330 */ 1872, 1464, 1940, 1944, 1464, 1464, 1464, 1464, 1464, 1783, + /* 340 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 350 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 360 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 370 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 380 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 390 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 400 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 410 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 420 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 430 */ 1464, 1464, 1464, 1464, 1501, 1464, 1464, 1464, 1464, 1464, + /* 440 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 450 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 460 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 470 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1573, 1572, + /* 480 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 490 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 500 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 510 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1741, 1464, 1464, + /* 520 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1905, 1464, 1464, + /* 530 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 540 */ 1464, 1464, 1464, 1783, 1464, 1922, 1464, 1882, 1878, 1464, + /* 550 */ 1464, 1874, 1782, 1464, 1464, 1938, 1464, 1464, 1464, 1464, + /* 560 */ 1464, 1464, 1464, 1464, 1464, 1867, 1464, 1464, 1840, 1825, + /* 570 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 580 */ 1793, 1464, 1464, 1464, 1464, 1464, 1633, 1464, 1464, 1464, + /* 590 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1618, + /* 600 */ 1616, 1615, 1614, 1464, 1611, 1464, 1464, 1464, 1464, 1642, + /* 610 */ 1641, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 620 */ 1464, 1464, 1464, 1557, 1464, 1464, 1464, 1464, 1464, 1464, + /* 630 */ 1464, 1464, 1549, 1464, 1548, 1464, 1464, 1464, 1464, 1464, + /* 640 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 650 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, + /* 660 */ 1464, 1464, 1464, 1464, 1464, 1464, 1464, }; /********** End of lemon-generated parsing tables *****************************/ @@ -2024,7 +2024,7 @@ static const char *const yyRuleName[] = { /* 272 */ "stream_options ::= stream_options TRIGGER WINDOW_CLOSE", /* 273 */ "stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal", /* 274 */ "stream_options ::= stream_options WATERMARK duration_literal", - /* 275 */ "stream_options ::= stream_options IGNORE EXPIRED", + /* 275 */ "stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER", /* 276 */ "cmd ::= KILL CONNECTION NK_INTEGER", /* 277 */ "cmd ::= KILL QUERY NK_STRING", /* 278 */ "cmd ::= KILL TRANSACTION NK_INTEGER", @@ -3113,7 +3113,7 @@ static const struct { { 362, -3 }, /* (272) stream_options ::= stream_options TRIGGER WINDOW_CLOSE */ { 362, -4 }, /* (273) stream_options ::= stream_options TRIGGER MAX_DELAY duration_literal */ { 362, -3 }, /* (274) stream_options ::= stream_options WATERMARK duration_literal */ - { 362, -3 }, /* (275) stream_options ::= stream_options IGNORE EXPIRED */ + { 362, -4 }, /* (275) stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ { 305, -3 }, /* (276) cmd ::= KILL CONNECTION NK_INTEGER */ { 305, -3 }, /* (277) cmd ::= KILL QUERY NK_STRING */ { 305, -3 }, /* (278) cmd ::= KILL TRANSACTION NK_INTEGER */ @@ -4297,9 +4297,9 @@ static YYACTIONTYPE yy_reduce( { ((SStreamOptions*)yymsp[-3].minor.yy840)->triggerType = STREAM_TRIGGER_MAX_DELAY; ((SStreamOptions*)yymsp[-3].minor.yy840)->pDelay = releaseRawExprNode(pCxt, yymsp[0].minor.yy840); yylhsminor.yy840 = yymsp[-3].minor.yy840; } yymsp[-3].minor.yy840 = yylhsminor.yy840; break; - case 275: /* stream_options ::= stream_options IGNORE EXPIRED */ -{ ((SStreamOptions*)yymsp[-2].minor.yy840)->ignoreExpired = true; yylhsminor.yy840 = yymsp[-2].minor.yy840; } - yymsp[-2].minor.yy840 = yylhsminor.yy840; + case 275: /* stream_options ::= stream_options IGNORE EXPIRED NK_INTEGER */ +{ ((SStreamOptions*)yymsp[-3].minor.yy840)->ignoreExpired = taosStr2Int8(yymsp[0].minor.yy0.z, NULL, 10); yylhsminor.yy840 = yymsp[-3].minor.yy840; } + yymsp[-3].minor.yy840 = yylhsminor.yy840; break; case 276: /* cmd ::= KILL CONNECTION NK_INTEGER */ { pCxt->pRootNode = createKillStmt(pCxt, QUERY_NODE_KILL_CONNECTION_STMT, &yymsp[0].minor.yy0); } diff --git a/source/libs/parser/test/parInitialCTest.cpp b/source/libs/parser/test/parInitialCTest.cpp index 5cf6c30b31..9bca6cae0a 100644 --- a/source/libs/parser/test/parInitialCTest.cpp +++ b/source/libs/parser/test/parInitialCTest.cpp @@ -571,7 +571,7 @@ TEST_F(ParserInitialCTest, createStream) { auto setCreateStreamReqFunc = [&](const char* pStream, const char* pSrcDb, const char* pSql, const char* pDstStb = nullptr, int8_t igExists = 0, int8_t triggerType = STREAM_TRIGGER_AT_ONCE, int64_t maxDelay = 0, - int64_t watermark = 0, int8_t igExpired = 0) { + int64_t watermark = 0, int8_t igExpired = STREAM_DEFAULT_IGNORE_EXPIRED) { snprintf(expect.name, sizeof(expect.name), "0.%s", pStream); snprintf(expect.sourceDB, sizeof(expect.sourceDB), "0.%s", pSrcDb); if (NULL != pDstStb) { @@ -617,11 +617,11 @@ TEST_F(ParserInitialCTest, createStream) { clearCreateStreamReq(); setCreateStreamReqFunc("s1", "test", - "create stream if not exists s1 trigger max_delay 20s watermark 10s ignore expired into st1 " + "create stream if not exists s1 trigger max_delay 20s watermark 10s ignore expired 0 into st1 " "as select count(*) from t1 interval(10s)", "st1", 1, STREAM_TRIGGER_MAX_DELAY, 20 * MILLISECOND_PER_SECOND, 10 * MILLISECOND_PER_SECOND, - 1); - run("CREATE STREAM IF NOT EXISTS s1 TRIGGER MAX_DELAY 20s WATERMARK 10s IGNORE EXPIRED INTO st1 AS SELECT COUNT(*) " + 0); + run("CREATE STREAM IF NOT EXISTS s1 TRIGGER MAX_DELAY 20s WATERMARK 10s IGNORE EXPIRED 0 INTO st1 AS SELECT COUNT(*) " "FROM t1 INTERVAL(10S)"); clearCreateStreamReq(); } diff --git a/tests/script/tsim/stream/ignoreExpiredData.sim b/tests/script/tsim/stream/ignoreExpiredData.sim index a789416f5b..03f574bc52 100644 --- a/tests/script/tsim/stream/ignoreExpiredData.sim +++ b/tests/script/tsim/stream/ignoreExpiredData.sim @@ -45,9 +45,9 @@ print $data00 $data01 $data02 sql use test sql create table t1(ts timestamp, a int, b int , c int, d double); -sql create stream streams1 trigger at_once IGNORE EXPIRED into streamt1 as select _wstart, count(*) c1, sum(a) c3 from t1 interval(10s); -sql create stream streams2 trigger at_once IGNORE EXPIRED into streamt2 as select _wstart, count(*) c1, sum(a) c3 from t1 session(ts,10s); -sql create stream streams3 trigger at_once IGNORE EXPIRED into streamt3 as select _wstart, count(*) c1, sum(a) c3 from t1 state_window(a); +sql create stream streams1 trigger at_once IGNORE EXPIRED 1 into streamt1 as select _wstart, count(*) c1, sum(a) c3 from t1 interval(10s); +sql create stream streams2 trigger at_once IGNORE EXPIRED 1 into streamt2 as select _wstart, count(*) c1, sum(a) c3 from t1 session(ts,10s); +sql create stream streams3 trigger at_once IGNORE EXPIRED 1 into streamt3 as select _wstart, count(*) c1, sum(a) c3 from t1 state_window(a); sql insert into t1 values(1648791213000,1,2,3,1.0); sql insert into t1 values(1648791223001,1,2,3,1.1); sql insert into t1 values(1648791233002,2,2,3,2.1); @@ -111,8 +111,8 @@ sql use test1 sql create stable st(ts timestamp,a int,b int,c int) tags(ta int,tb int,tc int); sql create table ts1 using st tags(1,1,1); sql create table ts2 using st tags(2,2,2); -sql create stream stream_t1 trigger at_once IGNORE EXPIRED into streamtST1 as select _wstart, count(*) c1, count(a) c2 , sum(a) c3 , max(b) c5, min(c) c6 from st interval(10s) ; -sql create stream stream_t2 trigger at_once IGNORE EXPIRED into streamtST2 as select _wstart, count(*) c1, count(a) c2 , sum(a) c3 , max(b) c5, min(c) c6 from st session(ts, 10s) ; +sql create stream stream_t1 trigger at_once IGNORE EXPIRED 1 into streamtST1 as select _wstart, count(*) c1, count(a) c2 , sum(a) c3 , max(b) c5, min(c) c6 from st interval(10s) ; +sql create stream stream_t2 trigger at_once IGNORE EXPIRED 1 into streamtST2 as select _wstart, count(*) c1, count(a) c2 , sum(a) c3 , max(b) c5, min(c) c6 from st session(ts, 10s) ; sql insert into ts1 values(1648791211000,1,2,3); sql insert into ts1 values(1648791222001,2,2,3); sql insert into ts2 values(1648791211000,1,2,3);