Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 15F2C200C78 for ; Thu, 4 May 2017 05:23:07 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 14971160BBC; Thu, 4 May 2017 03:23:07 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 93550160BC7 for ; Thu, 4 May 2017 05:23:04 +0200 (CEST) Received: (qmail 46595 invoked by uid 500); 4 May 2017 03:23:03 -0000 Mailing-List: contact commits-help@quickstep.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@quickstep.incubator.apache.org Delivered-To: mailing list commits@quickstep.incubator.apache.org Received: (qmail 46586 invoked by uid 99); 4 May 2017 03:23:03 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 May 2017 03:23:03 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 2A2461883AB for ; Thu, 4 May 2017 03:23:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -5.022 X-Spam-Level: X-Spam-Status: No, score=-5.022 tagged_above=-999 required=6.31 tests=[RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id eJ5ugKGT2jYJ for ; Thu, 4 May 2017 03:22:52 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 90E4760EDB for ; Thu, 4 May 2017 03:22:47 +0000 (UTC) Received: (qmail 45043 invoked by uid 99); 4 May 2017 03:22:46 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 May 2017 03:22:46 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 59F9AE1103; Thu, 4 May 2017 03:22:46 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jianqiao@apache.org To: commits@quickstep.incubator.apache.org Date: Thu, 04 May 2017 03:23:12 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [28/32] incubator-quickstep git commit: Refactor type system and operations. archived-at: Thu, 04 May 2017 03:23:07 -0000 http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/583724ea/parser/preprocessed/SqlParser_gen.cpp ---------------------------------------------------------------------- diff --git a/parser/preprocessed/SqlParser_gen.cpp b/parser/preprocessed/SqlParser_gen.cpp index 5cd7426..1301447 100644 --- a/parser/preprocessed/SqlParser_gen.cpp +++ b/parser/preprocessed/SqlParser_gen.cpp @@ -138,22 +138,16 @@ typedef struct YYLTYPE { #include "types/Type.hpp" #include "types/TypeFactory.hpp" #include "types/TypeID.hpp" -#include "types/operations/binary_operations/BinaryOperation.hpp" -#include "types/operations/binary_operations/BinaryOperationFactory.hpp" -#include "types/operations/binary_operations/BinaryOperationID.hpp" #include "types/operations/comparisons/Comparison.hpp" #include "types/operations/comparisons/ComparisonFactory.hpp" #include "types/operations/comparisons/ComparisonID.hpp" -#include "types/operations/unary_operations/UnaryOperation.hpp" -#include "types/operations/unary_operations/UnaryOperationFactory.hpp" -#include "types/operations/unary_operations/UnaryOperationID.hpp" #include "utility/PtrList.hpp" #include "utility/PtrVector.hpp" // Needed for Bison 2.6 and higher, which do not automatically provide this typedef. typedef void* yyscan_t; -#line 157 "SqlParser_gen.cpp" /* yacc.c:339 */ +#line 151 "SqlParser_gen.cpp" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -224,103 +218,104 @@ extern int quickstep_yydebug; TOKEN_CSB_TREE = 291, TOKEN_BY = 292, TOKEN_CASE = 293, - TOKEN_CHARACTER = 294, - TOKEN_CHECK = 295, - TOKEN_COLUMN = 296, - TOKEN_CONSTRAINT = 297, - TOKEN_COPY = 298, - TOKEN_CREATE = 299, - TOKEN_CURRENT = 300, - TOKEN_DATE = 301, - TOKEN_DATETIME = 302, - TOKEN_DAY = 303, - TOKEN_DECIMAL = 304, - TOKEN_DEFAULT = 305, - TOKEN_DELETE = 306, - TOKEN_DELIMITER = 307, - TOKEN_DESC = 308, - TOKEN_DISTINCT = 309, - TOKEN_DOUBLE = 310, - TOKEN_DROP = 311, - TOKEN_ELSE = 312, - TOKEN_END = 313, - TOKEN_ESCAPE_STRINGS = 314, - TOKEN_EXISTS = 315, - TOKEN_EXTRACT = 316, - TOKEN_FALSE = 317, - TOKEN_FIRST = 318, - TOKEN_FLOAT = 319, - TOKEN_FOLLOWING = 320, - TOKEN_FOR = 321, - TOKEN_FOREIGN = 322, - TOKEN_FROM = 323, - TOKEN_FULL = 324, - TOKEN_GROUP = 325, - TOKEN_HASH = 326, - TOKEN_HAVING = 327, - TOKEN_HOUR = 328, - TOKEN_IN = 329, - TOKEN_INDEX = 330, - TOKEN_INNER = 331, - TOKEN_INSERT = 332, - TOKEN_INTEGER = 333, - TOKEN_INTERVAL = 334, - TOKEN_INTO = 335, - TOKEN_JOIN = 336, - TOKEN_KEY = 337, - TOKEN_LAST = 338, - TOKEN_LEFT = 339, - TOKEN_LIMIT = 340, - TOKEN_LONG = 341, - TOKEN_MINUTE = 342, - TOKEN_MONTH = 343, - TOKEN_NULL = 344, - TOKEN_NULLS = 345, - TOKEN_OFF = 346, - TOKEN_ON = 347, - TOKEN_ORDER = 348, - TOKEN_OUTER = 349, - TOKEN_OVER = 350, - TOKEN_PARTITION = 351, - TOKEN_PARTITIONS = 352, - TOKEN_PERCENT = 353, - TOKEN_PRECEDING = 354, - TOKEN_PRIMARY = 355, - TOKEN_PRIORITY = 356, - TOKEN_QUIT = 357, - TOKEN_RANGE = 358, - TOKEN_REAL = 359, - TOKEN_REFERENCES = 360, - TOKEN_RIGHT = 361, - TOKEN_ROW = 362, - TOKEN_ROW_DELIMITER = 363, - TOKEN_ROWS = 364, - TOKEN_SECOND = 365, - TOKEN_SELECT = 366, - TOKEN_SET = 367, - TOKEN_SMA = 368, - TOKEN_SMALLINT = 369, - TOKEN_SUBSTRING = 370, - TOKEN_TABLE = 371, - TOKEN_THEN = 372, - TOKEN_TIME = 373, - TOKEN_TIMESTAMP = 374, - TOKEN_TRUE = 375, - TOKEN_TUPLESAMPLE = 376, - TOKEN_UNBOUNDED = 377, - TOKEN_UNIQUE = 378, - TOKEN_UPDATE = 379, - TOKEN_USING = 380, - TOKEN_VALUES = 381, - TOKEN_VARCHAR = 382, - TOKEN_WHEN = 383, - TOKEN_WHERE = 384, - TOKEN_WINDOW = 385, - TOKEN_WITH = 386, - TOKEN_YEAR = 387, - TOKEN_YEARMONTH = 388, - TOKEN_EOF = 389, - TOKEN_LEX_ERROR = 390 + TOKEN_CAST = 294, + TOKEN_CHARACTER = 295, + TOKEN_CHECK = 296, + TOKEN_COLUMN = 297, + TOKEN_CONSTRAINT = 298, + TOKEN_COPY = 299, + TOKEN_CREATE = 300, + TOKEN_CURRENT = 301, + TOKEN_DATE = 302, + TOKEN_DATETIME = 303, + TOKEN_DAY = 304, + TOKEN_DECIMAL = 305, + TOKEN_DEFAULT = 306, + TOKEN_DELETE = 307, + TOKEN_DELIMITER = 308, + TOKEN_DESC = 309, + TOKEN_DISTINCT = 310, + TOKEN_DOUBLE = 311, + TOKEN_DROP = 312, + TOKEN_ELSE = 313, + TOKEN_END = 314, + TOKEN_ESCAPE_STRINGS = 315, + TOKEN_EXISTS = 316, + TOKEN_EXTRACT = 317, + TOKEN_FALSE = 318, + TOKEN_FIRST = 319, + TOKEN_FLOAT = 320, + TOKEN_FOLLOWING = 321, + TOKEN_FOR = 322, + TOKEN_FOREIGN = 323, + TOKEN_FROM = 324, + TOKEN_FULL = 325, + TOKEN_GROUP = 326, + TOKEN_HASH = 327, + TOKEN_HAVING = 328, + TOKEN_HOUR = 329, + TOKEN_IN = 330, + TOKEN_INDEX = 331, + TOKEN_INNER = 332, + TOKEN_INSERT = 333, + TOKEN_INTEGER = 334, + TOKEN_INTERVAL = 335, + TOKEN_INTO = 336, + TOKEN_JOIN = 337, + TOKEN_KEY = 338, + TOKEN_LAST = 339, + TOKEN_LEFT = 340, + TOKEN_LIMIT = 341, + TOKEN_LONG = 342, + TOKEN_MINUTE = 343, + TOKEN_MONTH = 344, + TOKEN_NULL = 345, + TOKEN_NULLS = 346, + TOKEN_OFF = 347, + TOKEN_ON = 348, + TOKEN_ORDER = 349, + TOKEN_OUTER = 350, + TOKEN_OVER = 351, + TOKEN_PARTITION = 352, + TOKEN_PARTITIONS = 353, + TOKEN_PERCENT = 354, + TOKEN_PRECEDING = 355, + TOKEN_PRIMARY = 356, + TOKEN_PRIORITY = 357, + TOKEN_QUIT = 358, + TOKEN_RANGE = 359, + TOKEN_REAL = 360, + TOKEN_REFERENCES = 361, + TOKEN_RIGHT = 362, + TOKEN_ROW = 363, + TOKEN_ROW_DELIMITER = 364, + TOKEN_ROWS = 365, + TOKEN_SECOND = 366, + TOKEN_SELECT = 367, + TOKEN_SET = 368, + TOKEN_SMA = 369, + TOKEN_SMALLINT = 370, + TOKEN_SUBSTRING = 371, + TOKEN_TABLE = 372, + TOKEN_THEN = 373, + TOKEN_TIME = 374, + TOKEN_TIMESTAMP = 375, + TOKEN_TRUE = 376, + TOKEN_TUPLESAMPLE = 377, + TOKEN_UNBOUNDED = 378, + TOKEN_UNIQUE = 379, + TOKEN_UPDATE = 380, + TOKEN_USING = 381, + TOKEN_VALUES = 382, + TOKEN_VARCHAR = 383, + TOKEN_WHEN = 384, + TOKEN_WHERE = 385, + TOKEN_WINDOW = 386, + TOKEN_WITH = 387, + TOKEN_YEAR = 388, + TOKEN_YEARMONTH = 389, + TOKEN_EOF = 390, + TOKEN_LEX_ERROR = 391 }; #endif @@ -329,7 +324,7 @@ extern int quickstep_yydebug; union YYSTYPE { -#line 121 "../SqlParser.ypp" /* yacc.c:355 */ +#line 115 "../SqlParser.ypp" /* yacc.c:355 */ quickstep::ParseString *string_value_; @@ -402,8 +397,8 @@ union YYSTYPE quickstep::ParseStatementQuit *quit_statement_; const quickstep::Comparison *comparison_; - const quickstep::UnaryOperation *unary_operation_; - const quickstep::BinaryOperation *binary_operation_; + quickstep::ParseString *unary_operation_; + quickstep::ParseString *binary_operation_; quickstep::ParseFunctionCall *function_call_; quickstep::PtrList *expression_list_; @@ -431,7 +426,7 @@ union YYSTYPE quickstep::ParsePriority *opt_priority_clause_; -#line 435 "SqlParser_gen.cpp" /* yacc.c:355 */ +#line 430 "SqlParser_gen.cpp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -460,13 +455,13 @@ int quickstep_yyparse (yyscan_t yyscanner, quickstep::ParseStatement **parsedSta #endif /* !YY_QUICKSTEP_YY_SQLPARSER_GEN_HPP_INCLUDED */ /* Copy the second part of user declarations. */ -#line 223 "../SqlParser.ypp" /* yacc.c:358 */ +#line 217 "../SqlParser.ypp" /* yacc.c:358 */ /* This header needs YYSTYPE, which is defined by the %union directive above */ #include "SqlLexer_gen.hpp" void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string &feature); -#line 470 "SqlParser_gen.cpp" /* yacc.c:358 */ +#line 465 "SqlParser_gen.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -710,21 +705,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 49 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1207 +#define YYLAST 1432 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 147 +#define YYNTOKENS 148 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 109 +#define YYNNTS 110 /* YYNRULES -- Number of rules. */ -#define YYNRULES 293 +#define YYNRULES 296 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 543 +#define YYNSTATES 552 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 390 +#define YYMAXUTOK 391 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -734,11 +729,11 @@ union yyalloc static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 142, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 143, 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, 146, 2, 2, - 143, 144, 23, 21, 145, 22, 27, 24, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 141, + 2, 2, 2, 2, 2, 2, 2, 147, 2, 2, + 144, 145, 23, 21, 146, 22, 27, 24, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 142, 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, @@ -772,43 +767,43 @@ static const yytype_uint8 yytranslate[] = 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 + 140, 141 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 639, 639, 643, 647, 651, 655, 658, 665, 668, - 671, 674, 677, 680, 683, 686, 689, 692, 698, 704, - 711, 717, 724, 733, 738, 747, 752, 757, 761, 767, - 772, 775, 778, 783, 786, 789, 792, 795, 798, 801, - 804, 807, 810, 822, 825, 828, 846, 866, 869, 872, - 877, 882, 888, 894, 903, 907, 913, 916, 921, 926, - 931, 938, 945, 949, 955, 958, 963, 966, 971, 974, - 979, 982, 1001, 1004, 1009, 1013, 1019, 1022, 1025, 1030, - 1033, 1040, 1045, 1056, 1061, 1065, 1069, 1075, 1078, 1084, - 1092, 1095, 1098, 1104, 1109, 1112, 1117, 1121, 1125, 1129, - 1135, 1140, 1145, 1149, 1155, 1164, 1167, 1172, 1175, 1194, - 1199, 1203, 1209, 1215, 1224, 1229, 1237, 1243, 1249, 1252, - 1255, 1260, 1263, 1268, 1272, 1278, 1281, 1284, 1289, 1294, - 1299, 1302, 1305, 1310, 1313, 1316, 1319, 1322, 1325, 1328, - 1331, 1336, 1339, 1344, 1348, 1352, 1355, 1359, 1362, 1367, - 1370, 1375, 1378, 1383, 1387, 1393, 1396, 1401, 1404, 1409, - 1412, 1417, 1420, 1439, 1442, 1447, 1451, 1457, 1463, 1468, - 1471, 1476, 1479, 1484, 1487, 1492, 1495, 1500, 1501, 1504, - 1509, 1510, 1513, 1518, 1522, 1528, 1535, 1538, 1541, 1546, - 1549, 1552, 1558, 1561, 1566, 1571, 1580, 1585, 1594, 1599, - 1602, 1607, 1610, 1615, 1621, 1627, 1630, 1633, 1636, 1639, - 1642, 1648, 1657, 1660, 1665, 1668, 1673, 1676, 1681, 1684, - 1687, 1690, 1694, 1698, 1701, 1704, 1707, 1710, 1715, 1719, - 1723, 1726, 1731, 1736, 1740, 1746, 1749, 1754, 1758, 1764, - 1769, 1773, 1779, 1784, 1787, 1792, 1796, 1802, 1805, 1808, - 1811, 1823, 1827, 1846, 1859, 1874, 1877, 1880, 1883, 1886, - 1889, 1894, 1898, 1904, 1907, 1912, 1916, 1923, 1926, 1929, - 1932, 1935, 1938, 1941, 1944, 1947, 1950, 1955, 1966, 1969, - 1974, 1977, 1980, 1986, 1990, 1996, 1999, 2007, 2010, 2013, - 2016, 2022, 2027, 2032 + 0, 633, 633, 637, 641, 645, 649, 652, 659, 662, + 665, 668, 671, 674, 677, 680, 683, 686, 692, 698, + 705, 711, 718, 727, 732, 741, 746, 751, 755, 761, + 766, 769, 772, 777, 780, 783, 786, 789, 792, 795, + 798, 801, 804, 816, 819, 822, 840, 860, 863, 866, + 871, 876, 882, 888, 897, 901, 907, 910, 915, 920, + 925, 932, 939, 943, 949, 952, 957, 960, 965, 968, + 973, 976, 995, 998, 1003, 1007, 1013, 1016, 1019, 1024, + 1027, 1034, 1039, 1050, 1055, 1059, 1063, 1069, 1072, 1078, + 1086, 1089, 1092, 1098, 1103, 1106, 1111, 1115, 1119, 1123, + 1129, 1134, 1139, 1143, 1149, 1158, 1161, 1166, 1169, 1188, + 1193, 1197, 1203, 1209, 1218, 1223, 1231, 1237, 1243, 1246, + 1249, 1254, 1257, 1262, 1266, 1272, 1275, 1278, 1283, 1288, + 1293, 1296, 1299, 1304, 1307, 1310, 1313, 1316, 1319, 1322, + 1325, 1330, 1333, 1338, 1342, 1346, 1349, 1353, 1356, 1361, + 1364, 1369, 1372, 1377, 1381, 1387, 1390, 1395, 1398, 1403, + 1406, 1411, 1414, 1433, 1436, 1441, 1445, 1451, 1457, 1462, + 1465, 1470, 1473, 1478, 1481, 1486, 1489, 1494, 1495, 1498, + 1503, 1504, 1507, 1512, 1516, 1522, 1529, 1532, 1535, 1540, + 1543, 1546, 1552, 1555, 1560, 1565, 1574, 1579, 1588, 1593, + 1596, 1601, 1604, 1609, 1615, 1621, 1624, 1627, 1630, 1633, + 1636, 1642, 1651, 1657, 1662, 1668, 1673, 1678, 1683, 1686, + 1689, 1692, 1696, 1700, 1703, 1706, 1709, 1712, 1715, 1720, + 1724, 1728, 1731, 1736, 1750, 1761, 1772, 1780, 1791, 1794, + 1799, 1803, 1809, 1814, 1818, 1824, 1829, 1832, 1837, 1841, + 1847, 1850, 1853, 1856, 1868, 1872, 1891, 1904, 1919, 1922, + 1925, 1928, 1931, 1934, 1939, 1943, 1949, 1952, 1957, 1961, + 1968, 1971, 1974, 1977, 1980, 1983, 1986, 1989, 1992, 1995, + 2000, 2011, 2014, 2019, 2022, 2025, 2031, 2035, 2041, 2044, + 2052, 2055, 2058, 2061, 2067, 2072, 2077 }; #endif @@ -827,20 +822,20 @@ static const char *const yytname[] = "TOKEN_ALTER", "TOKEN_AS", "TOKEN_ASC", "TOKEN_BIGINT", "TOKEN_BIT", "TOKEN_BITWEAVING", "TOKEN_BLOCKPROPERTIES", "TOKEN_BLOCKSAMPLE", "TOKEN_BLOOM_FILTER", "TOKEN_CSB_TREE", "TOKEN_BY", "TOKEN_CASE", - "TOKEN_CHARACTER", "TOKEN_CHECK", "TOKEN_COLUMN", "TOKEN_CONSTRAINT", - "TOKEN_COPY", "TOKEN_CREATE", "TOKEN_CURRENT", "TOKEN_DATE", - "TOKEN_DATETIME", "TOKEN_DAY", "TOKEN_DECIMAL", "TOKEN_DEFAULT", - "TOKEN_DELETE", "TOKEN_DELIMITER", "TOKEN_DESC", "TOKEN_DISTINCT", - "TOKEN_DOUBLE", "TOKEN_DROP", "TOKEN_ELSE", "TOKEN_END", - "TOKEN_ESCAPE_STRINGS", "TOKEN_EXISTS", "TOKEN_EXTRACT", "TOKEN_FALSE", - "TOKEN_FIRST", "TOKEN_FLOAT", "TOKEN_FOLLOWING", "TOKEN_FOR", - "TOKEN_FOREIGN", "TOKEN_FROM", "TOKEN_FULL", "TOKEN_GROUP", "TOKEN_HASH", - "TOKEN_HAVING", "TOKEN_HOUR", "TOKEN_IN", "TOKEN_INDEX", "TOKEN_INNER", - "TOKEN_INSERT", "TOKEN_INTEGER", "TOKEN_INTERVAL", "TOKEN_INTO", - "TOKEN_JOIN", "TOKEN_KEY", "TOKEN_LAST", "TOKEN_LEFT", "TOKEN_LIMIT", - "TOKEN_LONG", "TOKEN_MINUTE", "TOKEN_MONTH", "TOKEN_NULL", "TOKEN_NULLS", - "TOKEN_OFF", "TOKEN_ON", "TOKEN_ORDER", "TOKEN_OUTER", "TOKEN_OVER", - "TOKEN_PARTITION", "TOKEN_PARTITIONS", "TOKEN_PERCENT", + "TOKEN_CAST", "TOKEN_CHARACTER", "TOKEN_CHECK", "TOKEN_COLUMN", + "TOKEN_CONSTRAINT", "TOKEN_COPY", "TOKEN_CREATE", "TOKEN_CURRENT", + "TOKEN_DATE", "TOKEN_DATETIME", "TOKEN_DAY", "TOKEN_DECIMAL", + "TOKEN_DEFAULT", "TOKEN_DELETE", "TOKEN_DELIMITER", "TOKEN_DESC", + "TOKEN_DISTINCT", "TOKEN_DOUBLE", "TOKEN_DROP", "TOKEN_ELSE", + "TOKEN_END", "TOKEN_ESCAPE_STRINGS", "TOKEN_EXISTS", "TOKEN_EXTRACT", + "TOKEN_FALSE", "TOKEN_FIRST", "TOKEN_FLOAT", "TOKEN_FOLLOWING", + "TOKEN_FOR", "TOKEN_FOREIGN", "TOKEN_FROM", "TOKEN_FULL", "TOKEN_GROUP", + "TOKEN_HASH", "TOKEN_HAVING", "TOKEN_HOUR", "TOKEN_IN", "TOKEN_INDEX", + "TOKEN_INNER", "TOKEN_INSERT", "TOKEN_INTEGER", "TOKEN_INTERVAL", + "TOKEN_INTO", "TOKEN_JOIN", "TOKEN_KEY", "TOKEN_LAST", "TOKEN_LEFT", + "TOKEN_LIMIT", "TOKEN_LONG", "TOKEN_MINUTE", "TOKEN_MONTH", "TOKEN_NULL", + "TOKEN_NULLS", "TOKEN_OFF", "TOKEN_ON", "TOKEN_ORDER", "TOKEN_OUTER", + "TOKEN_OVER", "TOKEN_PARTITION", "TOKEN_PARTITIONS", "TOKEN_PERCENT", "TOKEN_PRECEDING", "TOKEN_PRIMARY", "TOKEN_PRIORITY", "TOKEN_QUIT", "TOKEN_RANGE", "TOKEN_REAL", "TOKEN_REFERENCES", "TOKEN_RIGHT", "TOKEN_ROW", "TOKEN_ROW_DELIMITER", "TOKEN_ROWS", "TOKEN_SECOND", @@ -878,7 +873,7 @@ static const char *const yytname[] = "opt_order_direction", "opt_nulls_first", "opt_where_clause", "where_clause", "or_expression", "and_expression", "not_expression", "predicate_expression_base", "add_expression", "multiply_expression", - "unary_expression", "expression_base", "function_call", + "unary_expression", "expression_base", "function_call", "cast_function", "extract_function", "substr_function", "case_expression", "simple_when_clause_list", "simple_when_clause", "searched_when_clause_list", "searched_when_clause", "opt_else_clause", @@ -909,14 +904,14 @@ static const yytype_uint16 yytoknum[] = 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 59, 10, 40, 41, 44, 37 + 390, 391, 59, 10, 40, 41, 44, 37 }; # endif -#define YYPACT_NINF -244 +#define YYPACT_NINF -253 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-244))) + (!!((Yystate) == (-253))) #define YYTABLE_NINF -134 @@ -927,61 +922,62 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 807, -244, -244, -55, 203, -26, -2, -6, 43, -244, - 86, 203, 203, -244, 136, 125, -244, -244, -244, -244, - -244, -244, -244, -244, -244, -244, -22, -3, 128, -244, - -78, 182, 203, -244, -244, 130, 203, 203, 203, 203, - 203, -244, -244, 633, 107, 89, -244, 209, 120, -244, - -244, -244, 197, -3, 86, 161, -244, 137, -244, -244, - -244, 27, 265, 180, 141, 170, -244, -25, -244, -244, - 301, 313, -244, -244, -244, 660, 188, -244, 249, -244, - -244, 206, -244, -244, 357, -244, -244, -244, -244, 221, - -244, -244, 222, 282, 783, 366, 299, 231, -244, -244, - 272, 7, -244, -244, 277, -244, -244, -244, -244, -244, - 933, -5, 203, 203, 237, 203, 203, -244, 137, 374, - -244, 233, 239, 246, 203, 203, 551, -244, -244, 244, - 203, -244, -244, -244, 551, 47, 40, -244, 376, -244, - 153, 153, 960, 381, -244, 8, 24, -244, 23, 170, - 960, -244, -244, 203, 960, -244, -244, -244, -244, 960, - 36, 313, -244, 203, 363, 94, -244, 378, -244, 137, - -244, 144, -244, 137, 128, -244, 203, -21, 203, 203, - 248, -244, 250, -244, 147, 1069, 810, 237, 469, 387, - 388, -244, -244, 329, 380, 1042, 152, 45, 960, 48, - -244, 960, -244, 333, 257, -244, -244, -244, -244, -244, - -244, 330, -244, 168, 260, -244, -244, 19, 66, 146, - -244, 264, 66, 51, 335, -244, -244, 7, -244, 304, - -244, -244, 267, 960, -244, 279, 158, 203, -244, 960, - -244, 203, -244, -244, 270, 331, 334, 273, -244, -244, - -244, 165, 203, 290, -21, 203, -244, 77, -244, -244, - 2, 64, 551, 551, 193, -244, -244, -244, -244, -244, - -244, -244, -244, 960, 281, 960, 31, -244, 162, 294, - 960, 71, -244, 364, 279, -244, -244, 960, 419, -244, - 110, 203, -244, -244, 332, -244, 336, 337, 342, 23, - -244, 423, 426, 66, 392, 361, 397, 296, 343, -244, - 166, -244, 960, -244, 279, -244, 551, 300, 302, 203, - 437, 119, 169, -244, 172, 421, 60, -244, 305, 316, - -244, 355, 310, 1042, -244, 368, 203, -244, -244, 77, - -244, -244, 388, -244, -244, -244, 960, 315, 95, 783, - -244, 279, 362, -244, -244, 1042, 317, 279, 960, -244, - 26, -15, -244, -244, -244, -244, -244, 23, 146, 356, - 358, -244, 960, 551, 365, 960, -244, 420, 111, -244, - 279, 4, 203, 203, 174, -244, -244, -244, -244, -244, - -244, -244, 201, -244, 203, -244, -244, -244, -244, 321, - -21, 427, 369, -244, 551, -244, -244, 323, -244, 238, - 783, -244, 960, 179, -244, -244, 1042, 279, -244, 460, - -244, 384, -244, -244, 326, 387, 435, 394, 326, 960, - -244, -244, -244, 459, -244, 181, 183, -244, 480, 119, - -244, 203, -244, -244, 345, 447, -244, 6, 203, 960, - 185, 279, -244, 192, 349, 551, 960, 489, 367, 353, - -244, 240, 12, 389, -244, -244, -244, 208, -244, -244, - -244, -244, 11, 203, 22, -244, 359, 279, -244, -244, - -244, 387, 353, -244, 203, -244, 367, -244, 960, -244, - -244, 405, 404, 398, 407, 500, 203, -244, 203, -244, - -244, 203, -244, 210, -244, -244, 371, -244, 482, -244, - -244, 129, -244, -244, -244, -244, 13, 373, -244, 212, - -244, 203, 375, -244, -244, 449, 410, 454, -244, 203, - -244, 214, 304, -244, -244, -244, 216, 424, 383, -244, - 521, -244, -244 + 86, -253, -253, -32, 242, -40, 45, 69, 96, -253, + 42, 242, 242, -253, 132, 139, -253, -253, -253, -253, + -253, -253, -253, -253, -253, -253, -26, 9, 191, -253, + 131, 224, 242, -253, -253, 168, 242, 242, 242, 242, + 242, -253, -253, 723, 144, 111, -253, 240, 136, -253, + -253, -253, 190, 9, 42, 177, -253, 170, -253, -253, + -253, 41, 285, 205, 163, 179, -253, 75, -253, -253, + 310, 312, -253, -253, -253, 816, 181, 188, -253, 236, + -253, -253, 192, -253, -253, 361, -253, -253, -253, -253, + 225, -253, -253, 234, 297, 909, 379, 316, 252, -253, + -253, 289, 6, -253, -253, 302, -253, -253, -253, -253, + -253, -253, 1095, -13, 242, 242, 260, 242, 242, -253, + 170, 398, -253, 46, 153, 269, 242, 242, 630, -253, + -253, 264, 242, -253, -253, -253, 630, 24, -7, -253, + 1188, 402, -253, 145, 145, 1188, 404, -253, -3, 27, + -253, 17, 179, 1188, -253, -253, 242, 1188, -253, -253, + -253, -253, 1188, 21, 312, -253, 242, 412, -50, -253, + 401, -253, 170, -253, 60, -253, 170, 191, -253, 242, + 162, 242, 242, 270, -253, 271, -253, 65, 1293, 1002, + 260, 537, 405, 411, -253, -253, 498, 403, 1241, 156, + 34, 1188, 3, -253, 1188, -253, 357, 62, 277, -253, + -253, -253, -253, -253, -253, 350, -253, 32, 280, -253, + -253, 16, 82, 138, -253, 281, 82, 39, 352, -253, + -253, 6, -253, 327, -253, -253, 286, 1188, -253, 284, + 167, 242, -253, 1188, -253, 242, -253, -253, 288, 348, + 351, 294, -253, -253, -253, 15, 242, 309, 162, 242, + -253, 134, -253, -253, 4, 346, 630, 630, 214, -253, + -253, -253, -253, -253, -253, -253, -253, 1188, 298, 1188, + 89, -253, 182, 311, 1188, 47, -253, 377, 284, -253, + 263, -253, 1188, 437, -253, -11, 242, -253, -253, 345, + -253, 349, 354, 363, 17, -253, 444, 445, 82, 416, + 381, 418, 317, 362, -253, 184, -253, 1188, -253, 284, + -253, 630, 319, 322, 242, 463, 146, 194, -253, 196, + 443, 68, -253, 325, 337, -253, 380, 332, 1241, -253, + 392, 242, -253, -253, 134, -253, -253, 411, -253, -253, + -253, 1188, 339, 176, 909, -253, 284, 386, -253, -253, + 1241, 340, 284, 1188, -253, 341, 342, 29, -29, -253, + -253, -253, -253, -253, 17, 138, 384, 388, -253, 1188, + 630, 391, 1188, -253, 451, 87, -253, 284, 5, 242, + 242, 198, -253, -253, -253, -253, -253, -253, -253, 212, + -253, 242, -253, -253, -253, -253, 355, 162, 447, 393, + -253, 630, -253, -253, 356, -253, 244, 909, -253, 1188, + 200, -253, -253, 1241, 284, -253, -253, -253, 487, -253, + 400, -253, -253, 359, 405, 460, 427, 359, 1188, -253, + -253, -253, 502, -253, 204, 207, -253, 518, 146, -253, + 242, -253, -253, 383, 482, -253, 23, 242, 1188, 226, + 284, -253, 229, 385, 630, 1188, 521, 389, 394, -253, + 275, 10, 420, -253, -253, -253, 231, -253, -253, -253, + -253, 12, 242, 127, -253, 390, 284, -253, -253, -253, + 405, 394, -253, 242, -253, 389, -253, 1188, -253, -253, + 433, 434, 425, 441, 539, 242, -253, 242, -253, -253, + 242, -253, 235, -253, -253, 406, -253, 516, -253, -253, + -14, -253, -253, -253, -253, 53, 408, -253, 247, -253, + 242, 409, -253, -253, 483, 442, 489, -253, 242, -253, + 249, 327, -253, -253, -253, 255, 458, 417, -253, 556, + -253, -253 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -989,93 +985,94 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 6, 293, 0, 0, 0, 0, 0, 0, 18, + 0, 6, 296, 0, 0, 0, 0, 0, 0, 18, 118, 0, 0, 7, 0, 0, 15, 8, 10, 11, 13, 14, 9, 17, 12, 16, 0, 107, 114, 116, - 0, 291, 0, 285, 286, 0, 0, 0, 0, 0, + 0, 294, 0, 288, 289, 0, 0, 0, 0, 0, 0, 119, 120, 0, 0, 109, 110, 0, 151, 1, 3, 2, 0, 107, 118, 0, 105, 0, 5, 4, - 292, 0, 0, 0, 0, 192, 25, 0, 251, 248, - 0, 277, 121, 40, 29, 0, 0, 30, 31, 34, - 36, 0, 37, 39, 0, 41, 247, 35, 38, 0, - 32, 33, 0, 0, 0, 0, 0, 122, 123, 227, - 127, 213, 215, 217, 220, 223, 224, 225, 219, 218, - 0, 263, 0, 0, 0, 0, 0, 106, 0, 0, - 115, 0, 0, 94, 0, 0, 0, 101, 193, 0, - 0, 91, 249, 250, 0, 0, 243, 240, 0, 43, - 0, 252, 0, 0, 44, 0, 0, 254, 0, 192, - 0, 278, 279, 0, 0, 126, 281, 282, 280, 0, - 0, 0, 216, 0, 0, 192, 103, 0, 111, 0, - 112, 0, 283, 0, 113, 108, 0, 0, 0, 0, - 0, 93, 66, 27, 0, 0, 0, 0, 0, 194, - 196, 198, 200, 0, 218, 0, 0, 0, 0, 243, - 237, 0, 241, 0, 0, 257, 258, 259, 256, 260, - 255, 0, 253, 0, 0, 129, 226, 0, 0, 153, - 142, 128, 147, 130, 155, 124, 125, 212, 214, 169, - 221, 264, 0, 0, 228, 245, 0, 0, 100, 0, - 152, 0, 92, 19, 0, 0, 0, 0, 20, 21, - 22, 0, 0, 0, 64, 0, 42, 56, 199, 207, - 0, 0, 0, 0, 0, 267, 269, 270, 271, 272, - 268, 273, 275, 0, 0, 0, 0, 261, 0, 0, - 0, 0, 238, 0, 244, 236, 45, 0, 0, 46, - 133, 0, 143, 149, 139, 134, 135, 137, 0, 0, - 146, 0, 0, 145, 0, 157, 0, 0, 171, 229, - 0, 230, 0, 102, 104, 284, 0, 0, 0, 0, - 0, 0, 0, 265, 0, 263, 0, 63, 65, 68, - 28, 0, 0, 0, 47, 0, 0, 49, 55, 57, - 26, 206, 195, 197, 274, 276, 0, 0, 0, 0, - 208, 205, 0, 204, 90, 0, 0, 242, 0, 235, - 0, 0, 148, 150, 140, 136, 138, 0, 154, 0, - 0, 144, 0, 0, 159, 0, 222, 0, 173, 231, - 246, 0, 0, 0, 0, 96, 289, 290, 288, 287, - 97, 95, 0, 67, 0, 83, 84, 85, 86, 87, - 0, 0, 70, 48, 0, 51, 50, 0, 54, 0, - 0, 210, 0, 0, 203, 262, 0, 239, 232, 0, - 233, 0, 131, 132, 156, 158, 0, 161, 170, 0, - 176, 175, 168, 0, 61, 0, 0, 58, 0, 0, - 266, 0, 24, 62, 0, 0, 23, 0, 0, 0, - 0, 201, 209, 0, 0, 0, 0, 0, 163, 172, - 183, 186, 0, 0, 59, 98, 99, 0, 74, 76, - 77, 78, 0, 0, 0, 52, 0, 202, 211, 89, - 234, 141, 160, 162, 0, 117, 164, 165, 0, 187, - 188, 189, 0, 0, 0, 0, 0, 88, 0, 82, - 80, 0, 79, 0, 72, 73, 0, 53, 0, 166, - 184, 0, 185, 177, 179, 178, 0, 0, 75, 0, - 69, 0, 0, 190, 191, 0, 0, 0, 174, 0, - 81, 0, 169, 180, 182, 181, 0, 0, 0, 60, - 0, 167, 71 + 295, 0, 0, 0, 0, 192, 25, 0, 254, 251, + 0, 280, 121, 40, 29, 0, 0, 0, 30, 31, + 34, 36, 0, 37, 39, 0, 41, 250, 35, 38, + 0, 32, 33, 0, 0, 0, 0, 0, 122, 123, + 228, 127, 213, 215, 217, 220, 223, 224, 225, 226, + 219, 218, 0, 266, 0, 0, 0, 0, 0, 106, + 0, 0, 115, 0, 0, 94, 0, 0, 0, 101, + 193, 0, 0, 91, 252, 253, 0, 0, 246, 243, + 0, 0, 43, 0, 255, 0, 0, 44, 0, 0, + 257, 0, 192, 0, 281, 282, 0, 0, 126, 284, + 285, 283, 0, 0, 0, 216, 0, 0, 192, 103, + 0, 111, 0, 112, 0, 286, 0, 113, 108, 0, + 0, 0, 0, 0, 93, 66, 27, 0, 0, 0, + 0, 0, 194, 196, 198, 200, 0, 218, 0, 0, + 0, 0, 246, 240, 0, 244, 0, 0, 0, 260, + 261, 262, 259, 263, 258, 0, 256, 0, 0, 129, + 227, 0, 0, 153, 142, 128, 147, 130, 155, 124, + 125, 212, 214, 169, 221, 267, 0, 0, 229, 248, + 0, 0, 100, 0, 152, 0, 92, 19, 0, 0, + 0, 0, 20, 21, 22, 0, 0, 0, 64, 0, + 42, 56, 199, 207, 0, 0, 0, 0, 0, 270, + 272, 273, 274, 275, 271, 276, 278, 0, 0, 0, + 0, 264, 0, 0, 0, 0, 241, 0, 247, 239, + 0, 45, 0, 0, 46, 133, 0, 143, 149, 139, + 134, 135, 137, 0, 0, 146, 0, 0, 145, 0, + 157, 0, 0, 171, 230, 0, 231, 0, 102, 104, + 287, 0, 0, 0, 0, 0, 0, 0, 268, 0, + 266, 0, 63, 65, 68, 28, 0, 0, 0, 47, + 0, 0, 49, 55, 57, 26, 206, 195, 197, 277, + 279, 0, 0, 0, 0, 208, 205, 0, 204, 90, + 0, 0, 245, 0, 238, 0, 0, 0, 0, 148, + 150, 140, 136, 138, 0, 154, 0, 0, 144, 0, + 0, 159, 0, 222, 0, 173, 232, 249, 0, 0, + 0, 0, 96, 292, 293, 291, 290, 97, 95, 0, + 67, 0, 83, 84, 85, 86, 87, 0, 0, 70, + 48, 0, 51, 50, 0, 54, 0, 0, 210, 0, + 0, 203, 265, 0, 242, 233, 234, 235, 0, 236, + 0, 131, 132, 156, 158, 0, 161, 170, 0, 176, + 175, 168, 0, 61, 0, 0, 58, 0, 0, 269, + 0, 24, 62, 0, 0, 23, 0, 0, 0, 0, + 201, 209, 0, 0, 0, 0, 0, 163, 172, 183, + 186, 0, 0, 59, 98, 99, 0, 74, 76, 77, + 78, 0, 0, 0, 52, 0, 202, 211, 89, 237, + 141, 160, 162, 0, 117, 164, 165, 0, 187, 188, + 189, 0, 0, 0, 0, 0, 88, 0, 82, 80, + 0, 79, 0, 72, 73, 0, 53, 0, 166, 184, + 0, 185, 177, 179, 178, 0, 0, 75, 0, 69, + 0, 0, 190, 191, 0, 0, 0, 174, 0, 81, + 0, 169, 180, 182, 181, 0, 0, 0, 60, 0, + 167, 71 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -244, -244, -244, -244, -244, -244, -244, -244, -132, -244, - 346, 191, -244, -244, -243, -244, -244, -244, -244, -244, - -244, 59, 35, -244, -244, -244, -244, -244, -244, -244, - -244, -244, -244, -244, -244, 303, -244, 483, -244, -244, - 428, 200, 425, -8, 485, -244, -244, 395, -244, -98, - -244, -244, -165, 175, -179, -10, -244, -244, -244, -244, - -244, -244, -244, 58, 5, -244, -244, -244, -244, -244, - -244, 90, 61, -244, -244, 39, -244, -133, 285, 287, - 379, -37, 400, 403, 438, -144, -244, -244, -244, -244, - 352, -244, 430, 360, -212, -186, 429, 148, -121, -244, - -244, -244, -244, -244, -127, -4, 132, -244, -244 + -253, -253, -253, -253, -253, -253, -253, -253, -135, -253, + -111, 220, -253, -253, -252, -253, -253, -253, -253, -253, + -253, 83, 59, -253, -253, -253, -253, -253, -253, -253, + -253, -253, -253, -253, -253, 326, -253, 515, -253, -253, + 454, 74, 450, -5, 517, -253, -253, 421, -253, -92, + -253, -253, -184, 201, -187, -8, -253, -253, -253, -253, + -253, -253, -253, 81, 36, -253, -253, -253, -253, -253, + -253, 114, 88, -253, -253, -76, -253, -133, 318, 320, + 397, -28, 426, 429, 476, -140, -253, -253, -253, -253, + -253, 395, -253, 455, 399, -228, -193, 452, 171, -126, + -253, -253, -253, -253, -253, -131, -4, 147, -253, -253 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 14, 15, 16, 17, 18, 19, 20, 183, 184, - 95, 338, 339, 340, 248, 328, 329, 253, 402, 446, - 506, 467, 468, 469, 470, 471, 399, 442, 21, 22, - 181, 322, 23, 24, 165, 166, 25, 56, 26, 45, - 46, 145, 28, 29, 43, 96, 97, 98, 149, 99, - 303, 298, 219, 220, 292, 293, 221, 305, 374, 427, - 458, 485, 486, 487, 307, 308, 378, 432, 433, 495, - 528, 459, 460, 491, 512, 127, 128, 189, 190, 191, - 192, 193, 101, 102, 103, 104, 105, 106, 107, 199, - 200, 136, 137, 203, 236, 108, 211, 278, 109, 324, - 275, 110, 154, 159, 171, 111, 390, 30, 31 + -1, 14, 15, 16, 17, 18, 19, 20, 186, 187, + 96, 343, 344, 345, 252, 333, 334, 257, 409, 455, + 515, 476, 477, 478, 479, 480, 406, 451, 21, 22, + 184, 327, 23, 24, 168, 169, 25, 56, 26, 45, + 46, 148, 28, 29, 43, 97, 98, 99, 152, 100, + 308, 303, 223, 224, 297, 298, 225, 310, 381, 436, + 467, 494, 495, 496, 312, 313, 385, 441, 442, 504, + 537, 468, 469, 500, 521, 129, 130, 192, 193, 194, + 195, 196, 102, 103, 104, 105, 106, 107, 108, 109, + 202, 203, 138, 139, 206, 240, 110, 215, 282, 111, + 329, 279, 112, 157, 162, 174, 113, 397, 30, 31 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1083,348 +1080,395 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 35, 197, 47, 196, 222, 194, 100, 44, 48, 277, - 262, 327, 262, 194, 262, 33, 170, 34, 499, 492, - 525, 310, 163, 33, 244, 34, 54, 33, 61, 34, - 156, 157, 63, 64, 65, 66, 67, 54, 135, 500, - 33, 352, 34, 300, 243, 151, 152, 151, 152, 120, - 218, 245, 290, 262, 36, 260, 419, 146, 121, 131, - 52, 58, 493, 526, 59, 194, 32, 194, 151, 152, - 33, 38, 34, 222, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 246, 151, 152, 331, 122, 259, - 301, 10, 151, 152, 10, 37, 155, 395, 504, 291, - 396, 397, 201, 47, 412, 213, 129, 247, 167, 48, - 201, 172, 173, 100, 41, 39, 151, 152, 130, 218, - 182, 185, 332, 330, 371, 353, 172, 235, 40, 420, - 505, 323, 333, 55, 368, 10, 49, 413, 164, 494, - 527, 194, 194, 274, 223, 42, 341, 405, 434, 226, - 475, 261, 215, 158, 501, 222, 230, 443, 57, 231, - 424, 281, 217, 428, 284, 242, 217, 280, 216, 415, - 418, 334, 185, 134, 249, 250, 350, 302, 398, 229, - 198, 198, 335, 381, 294, 60, 386, 336, 224, 151, - 152, 295, 384, 358, 164, 194, 235, 523, 450, 296, - 27, 218, 314, 62, 238, 337, 205, 33, 216, 34, - 344, 345, 346, 223, 48, 387, 388, 524, 48, 430, - 294, 297, 320, 222, 112, 431, 53, 295, 126, 321, - 277, 206, -133, 167, 113, 296, 348, 315, 351, 237, - 425, 288, 114, 357, 389, 207, 208, 449, 325, 411, - 360, 185, 194, 10, 362, 435, 436, 297, 438, 151, - 152, 151, 152, 115, 50, 439, 51, 119, 209, 218, - 123, 447, 347, 440, 489, 380, 33, 124, 34, 176, - 177, 363, 116, 194, 125, 178, 179, 48, 240, 241, - 210, 254, 255, 151, 152, 223, 279, 241, 490, 48, - 151, 152, 311, 312, 126, 153, 354, 355, 132, 409, - 379, 312, 235, 391, 392, 172, 393, 394, 437, 241, - 133, 417, 481, 452, 312, 463, 241, 464, 241, 478, - 312, 138, 407, 139, 194, 235, 479, 355, 235, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 140, - 151, 152, 497, 498, 520, 498, 530, 241, 537, 241, - 539, 241, 141, 223, 142, 143, 144, 33, 68, 34, - 69, 147, 148, 235, 519, 451, 150, 160, 172, 172, - 169, 175, 180, 204, 70, 71, 232, 195, 214, 239, - 325, 251, 461, 252, 531, 262, 285, 263, 73, 74, - 276, 286, 536, 287, 289, 306, 75, 76, 274, 299, - 304, 309, 477, 316, 77, 78, 319, 79, 317, 461, - 326, 318, 233, 80, 349, 356, 361, 359, 367, 81, - 369, 364, 82, 370, 372, 365, 366, 472, 373, 375, - 376, 377, 385, 382, 476, 383, 83, 84, 163, 403, - 400, 461, 401, 404, 85, 406, 414, 86, 410, 422, - 416, 423, 429, 426, 441, 444, 448, 454, 502, 472, - 445, 312, 87, 33, 68, 34, 69, 456, 462, 186, - 508, 455, 88, 89, 457, 465, 90, 91, 473, 474, - 70, 71, 517, 480, 472, 92, 483, 172, 488, 496, - 511, 93, 484, 507, 73, 74, 94, 234, 513, 516, - 514, 515, 75, 76, 521, 522, 529, 172, 532, 533, - 77, 78, 534, 79, 535, 172, 540, 541, 542, 80, - 408, 257, 503, 518, 187, 81, 117, 538, 82, 118, - 313, 168, 421, 174, 509, 225, 482, 342, 162, 510, - 343, 282, 83, 84, 227, 33, 68, 34, 69, 283, - 85, 186, 228, 86, 453, 258, 202, 0, 0, 0, - 212, 466, 70, 71, 0, 0, 0, 0, 87, 0, - 0, 0, 0, 0, 0, 10, 73, 74, 88, 89, - 0, 0, 90, 91, 75, 76, 0, 0, 0, 0, - 0, 92, 77, 78, 0, 79, 0, 93, 0, 0, - 0, 80, 188, 0, 0, 0, 187, 81, 0, 0, - 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 84, 0, 33, 68, 34, - 69, 0, 85, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 0, 0, 70, 71, 72, 0, 0, 0, - 87, 0, 0, 0, 33, 68, 34, 69, 73, 74, - 88, 89, 0, 0, 90, 91, 75, 76, 0, 0, - 0, 70, 71, 92, 77, 78, 0, 79, 0, 93, - 0, 0, 0, 80, 188, 73, 74, 0, 0, 81, - 0, 0, 82, 75, 76, 0, 0, 0, 0, 0, - 0, 77, 78, 0, 79, 0, 83, 84, 0, 0, - 80, 0, 0, 0, 85, 0, 81, 86, 0, 82, + 35, 199, 197, 200, 47, 281, 332, 44, 48, 315, + 197, 226, 266, 266, 166, 101, 33, 501, 34, 508, + 33, 33, 34, 34, 173, 33, 54, 34, 61, 159, + 160, 266, 63, 64, 65, 66, 67, 295, 54, 305, + 509, 36, 266, 428, 247, 154, 155, 137, 154, 155, + 154, 155, 122, 154, 155, 532, 204, 52, 264, 222, + 534, 502, 133, 197, 299, 197, 204, 149, 154, 155, + 41, 300, 123, 325, 27, 533, 228, 261, 306, 301, + 326, 226, 37, 154, 155, 128, 33, 1, 34, 2, + 32, 10, 242, 179, 180, 290, 241, 158, 263, 357, + 53, 302, 42, 124, 535, 402, 293, 47, 403, 404, + 170, 48, 207, 175, 176, 296, 429, 217, 3, 38, + 375, 378, 185, 188, 335, 101, 420, 136, 175, 222, + 328, 167, 49, 10, 369, 4, 5, 201, 503, 239, + 197, 197, 219, 6, 336, 412, 55, 227, 7, 346, + 443, 433, 230, 161, 437, 452, 510, 284, 201, 234, + 221, 221, 235, 265, 226, 233, 307, 422, 484, 8, + 363, 246, 220, 285, 427, 188, 288, 253, 254, 365, + 337, 536, 40, 167, 358, 419, 355, 405, 388, 459, + 338, 39, 10, 391, 9, 197, 439, 154, 155, 209, + 181, 182, 440, 10, 513, 244, 245, 131, 248, 239, + 258, 259, 222, 299, 393, 319, 11, 227, 48, 132, + 300, 57, 48, 12, 210, -133, 13, 60, 301, 339, + 281, 349, 350, 351, 226, 249, 514, 170, 211, 212, + 340, 320, 62, 394, 395, 341, 33, 434, 34, 353, + 302, 356, 330, 458, 197, 188, 362, 115, 444, 445, + 418, 213, 114, 342, 367, 154, 155, 33, 250, 34, + 447, 58, 396, 116, 59, 449, 118, 448, 456, 50, + 117, 51, 222, 214, 121, 197, 366, 10, 370, 387, + 125, 251, 48, 33, 352, 34, 154, 155, 73, 74, + 227, 283, 245, 126, 48, 154, 155, 127, 77, 498, + 154, 155, 316, 317, 128, 78, 79, 134, 80, 135, + 175, 142, 156, 416, 81, 140, 239, 359, 360, 386, + 317, 490, 141, 83, 499, 424, 143, 414, 197, 398, + 399, 400, 401, 446, 245, 461, 317, 84, 260, 472, + 245, 239, 473, 245, 239, 86, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 144, 154, 155, 145, + 227, 487, 317, 88, 488, 360, 506, 507, 146, 528, + 529, 507, 147, 89, 150, 175, 175, 91, 92, 239, + 151, 460, 539, 245, 546, 245, 93, 330, 153, 540, + 548, 245, 94, 163, 172, 178, 183, 545, 198, 208, + 470, 218, 243, 266, 255, 256, 33, 68, 34, 69, + 267, 289, 291, 280, 292, 294, 278, 304, 309, 311, + 486, 314, 321, 70, 71, 236, 322, 470, 324, 323, + 331, 364, 354, 361, 368, 371, 481, 73, 74, 372, + 374, 376, 377, 485, 373, 75, 76, 77, 379, 380, + 382, 384, 383, 389, 78, 79, 390, 80, 392, 470, + 166, 407, 237, 81, 408, 410, 411, 511, 481, 82, + 413, 421, 83, 417, 423, 453, 425, 426, 431, 517, + 435, 220, 432, 438, 463, 454, 84, 85, 464, 450, + 457, 526, 465, 481, 86, 317, 175, 87, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 466, 154, + 155, 471, 88, 474, 483, 493, 175, 482, 492, 520, + 489, 505, 89, 90, 175, 516, 91, 92, 523, 522, + 497, 33, 68, 34, 69, 93, 524, 189, 525, 531, + 530, 94, 538, 541, 542, 543, 95, 238, 70, 71, + 544, 549, 550, 551, 415, 512, 527, 318, 119, 171, + 177, 120, 73, 74, 229, 430, 518, 547, 278, 491, + 75, 76, 77, 231, 347, 519, 262, 348, 165, 78, + 79, 232, 80, 205, 462, 475, 216, 286, 81, 0, + 0, 287, 0, 190, 82, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 83, 84, 0, 0, 0, 0, 0, - 0, 85, 88, 89, 86, 0, 90, 91, 0, 0, - 0, 0, 0, 0, 0, 92, 0, 0, 0, 87, - 0, 93, 0, 0, 0, 0, 94, 0, 0, 88, - 89, 0, 0, 90, 91, 0, 0, 33, 68, 34, - 69, 0, 92, 134, 0, 0, 0, 0, 93, 0, - 0, 0, 0, 94, 70, 71, 0, 0, 1, 0, - 2, 0, 0, 0, 33, 68, 34, 69, 73, 74, - 0, 0, 0, 0, 0, 0, 75, 76, 0, 0, - 0, 70, 71, 0, 77, 78, 0, 79, 0, 3, - 0, 0, 0, 80, 0, 73, 74, 0, 0, 81, - 0, 0, 82, 75, 76, 4, 5, 0, 0, 0, - 0, 77, 78, 6, 79, 0, 83, 84, 7, 0, - 80, 0, 0, 0, 85, 187, 81, 86, 0, 82, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 0, 0, 87, 83, 84, 0, 0, 0, 0, 10, - 0, 85, 88, 89, 86, 0, 90, 91, 0, 0, - 0, 0, 0, 0, 9, 92, 0, 0, 0, 87, - 0, 93, 0, 10, 0, 0, 94, 0, 0, 88, - 89, 0, 0, 90, 91, 0, 11, 33, 68, 34, - 69, 0, 92, 12, 0, 0, 13, 0, 93, 0, - 0, 0, 0, 188, 70, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 68, 34, 69, 73, 74, - 0, 0, 0, 0, 0, 0, 75, 76, 0, 0, - 0, 70, 71, 0, 77, 78, 0, 79, 0, 0, - 0, 0, 0, 80, 0, 73, 74, 0, 0, 81, - 0, 0, 82, 75, 76, 0, 0, 0, 0, 0, - 0, 77, 78, 0, 79, 0, 83, 84, 0, 0, - 80, 0, 0, 0, 85, 0, 81, 86, 0, 82, + 0, 84, 85, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 87, 0, 33, 68, 34, 69, 0, 0, + 189, 0, 0, 0, 0, 0, 0, 88, 0, 0, + 0, 70, 71, 0, 10, 0, 0, 89, 90, 0, + 0, 91, 92, 0, 0, 73, 74, 0, 0, 0, + 93, 0, 0, 75, 76, 77, 94, 0, 0, 0, + 0, 191, 78, 79, 0, 80, 0, 0, 0, 0, + 0, 81, 0, 0, 0, 0, 190, 82, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 84, 85, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 87, 0, 33, 68, 34, + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88, 0, 0, 0, 70, 71, 72, 0, 0, 0, + 89, 90, 0, 0, 91, 92, 0, 0, 73, 74, + 0, 0, 0, 93, 0, 0, 75, 76, 77, 94, + 0, 0, 0, 0, 191, 78, 79, 0, 80, 0, + 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, + 82, 0, 0, 83, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 84, 85, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 87, 0, + 33, 68, 34, 69, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 0, 0, 0, 70, 71, 0, + 0, 0, 0, 89, 90, 0, 0, 91, 92, 0, + 0, 73, 74, 0, 0, 0, 93, 0, 0, 75, + 76, 77, 94, 0, 0, 0, 0, 95, 78, 79, + 0, 80, 0, 0, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 82, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 83, 84, 0, 0, 68, 0, 69, - 0, 85, 88, 89, 86, 0, 90, 91, 0, 0, - 0, 0, 0, 70, 161, 92, 0, 0, 0, 87, - 0, 93, 0, 0, 0, 0, 94, 73, 74, 88, - 89, 0, 0, 90, 91, 0, 76, 0, 0, 0, - 0, 0, 92, 77, 78, 0, 79, 0, 93, 0, - 0, 0, 80, 94, 73, 74, 0, 0, 0, 0, - 0, 82, 0, 76, 0, 0, 0, 0, 0, 0, - 77, 78, 0, 79, 0, 83, 84, 0, 0, 80, - 0, 0, 0, 85, 0, 0, 86, 0, 82, 0, + 84, 85, 0, 0, 0, 0, 0, 0, 86, 0, + 0, 87, 0, 33, 68, 34, 69, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, + 70, 71, 0, 0, 0, 0, 89, 90, 0, 0, + 91, 92, 0, 0, 73, 74, 0, 0, 0, 93, + 136, 0, 75, 76, 77, 94, 0, 0, 0, 0, + 95, 78, 79, 0, 80, 0, 0, 0, 0, 0, + 81, 0, 0, 0, 0, 0, 82, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 87, 83, 256, 0, 0, 0, 0, 0, 0, - 85, 88, 0, 0, 0, 90, 91, 0, 0, 0, - 0, 0, 0, 0, 92, 0, 0, 0, 87, 0, - 93, 0, 0, 0, 0, 0, 0, 0, 88, 0, - 0, 0, 90, 91, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 0, 0, 93 + 0, 0, 0, 84, 85, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 87, 0, 33, 68, 34, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, + 0, 0, 0, 70, 71, 0, 10, 0, 0, 89, + 90, 0, 0, 91, 92, 0, 0, 73, 74, 0, + 0, 0, 93, 0, 0, 75, 76, 77, 94, 0, + 0, 0, 0, 95, 78, 79, 0, 80, 0, 0, + 0, 0, 0, 81, 0, 0, 0, 0, 190, 82, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 84, 85, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 87, 0, 33, + 68, 34, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 0, 0, 0, 70, 164, 0, 0, + 0, 0, 89, 90, 0, 0, 91, 92, 0, 0, + 73, 74, 0, 0, 0, 93, 0, 0, 75, 76, + 77, 94, 0, 0, 0, 0, 191, 78, 79, 0, + 80, 0, 0, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 82, 0, 0, 83, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, + 85, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 87, 0, 33, 68, 34, 69, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 0, 0, 0, 70, + 71, 0, 0, 0, 0, 89, 90, 0, 0, 91, + 92, 0, 0, 73, 74, 0, 0, 0, 93, 0, + 0, 75, 76, 77, 94, 0, 0, 0, 0, 95, + 78, 79, 0, 80, 0, 0, 68, 0, 69, 81, + 0, 0, 0, 0, 0, 82, 0, 0, 83, 0, + 0, 0, 70, 164, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 85, 0, 0, 73, 74, 0, 0, + 86, 0, 0, 87, 0, 0, 77, 0, 0, 0, + 0, 0, 0, 78, 79, 0, 80, 0, 88, 0, + 0, 0, 81, 0, 0, 0, 0, 0, 89, 90, + 0, 83, 91, 92, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 0, 84, 85, 94, 73, 74, + 0, 0, 95, 86, 0, 0, 87, 0, 77, 0, + 0, 0, 0, 0, 0, 78, 79, 0, 80, 0, + 0, 88, 0, 0, 81, 0, 0, 0, 0, 0, + 0, 89, 0, 83, 0, 91, 92, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 84, 260, 0, + 94, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 89, 0, 0, 0, 91, 92, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 0, 94 }; static const yytype_int16 yycheck[] = { - 4, 134, 12, 130, 148, 126, 43, 11, 12, 195, - 8, 254, 8, 134, 8, 4, 114, 6, 7, 7, - 7, 233, 27, 4, 45, 6, 29, 4, 32, 6, - 23, 24, 36, 37, 38, 39, 40, 29, 75, 28, - 4, 10, 6, 222, 176, 21, 22, 21, 22, 57, - 148, 72, 217, 8, 80, 188, 71, 94, 31, 67, - 82, 139, 50, 50, 142, 186, 121, 188, 21, 22, - 4, 73, 6, 217, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 105, 21, 22, 10, 61, 187, - 39, 116, 21, 22, 116, 121, 100, 37, 76, 33, - 40, 41, 62, 113, 9, 142, 131, 128, 112, 113, - 62, 115, 116, 150, 28, 121, 21, 22, 143, 217, - 124, 125, 45, 255, 303, 94, 130, 164, 85, 144, - 108, 252, 55, 136, 299, 116, 0, 349, 143, 127, - 127, 262, 263, 79, 148, 59, 144, 333, 144, 153, - 144, 188, 144, 146, 143, 299, 160, 400, 30, 163, - 372, 198, 143, 375, 201, 173, 143, 122, 144, 355, - 144, 94, 176, 133, 178, 179, 274, 126, 118, 143, - 133, 133, 105, 316, 74, 3, 67, 110, 149, 21, - 22, 81, 319, 122, 143, 316, 233, 68, 410, 89, - 0, 299, 239, 73, 165, 128, 53, 4, 144, 6, - 17, 18, 19, 217, 218, 96, 97, 88, 222, 108, - 74, 111, 57, 367, 117, 114, 26, 81, 134, 64, - 416, 78, 86, 237, 145, 89, 273, 241, 275, 145, - 373, 73, 33, 280, 125, 92, 93, 9, 252, 347, - 287, 255, 373, 116, 144, 382, 383, 111, 57, 21, - 22, 21, 22, 143, 139, 64, 141, 106, 115, 367, - 5, 404, 79, 394, 34, 312, 4, 97, 6, 46, - 47, 291, 85, 404, 143, 46, 47, 291, 144, 145, - 137, 144, 145, 21, 22, 299, 144, 145, 58, 303, - 21, 22, 144, 145, 134, 33, 144, 145, 7, 346, - 144, 145, 349, 144, 145, 319, 144, 145, 144, 145, - 7, 358, 455, 144, 145, 144, 145, 144, 145, 144, - 145, 143, 336, 84, 455, 372, 144, 145, 375, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 143, - 21, 22, 144, 145, 144, 145, 144, 145, 144, 145, - 144, 145, 5, 367, 143, 143, 84, 4, 5, 6, - 7, 5, 73, 410, 501, 412, 145, 100, 382, 383, - 143, 7, 136, 7, 21, 22, 23, 143, 7, 11, - 394, 143, 429, 143, 521, 8, 63, 9, 35, 36, - 20, 144, 529, 73, 144, 101, 43, 44, 79, 145, - 75, 144, 449, 143, 51, 52, 143, 54, 87, 456, - 130, 87, 59, 60, 143, 131, 7, 63, 86, 66, - 7, 99, 69, 7, 42, 99, 99, 441, 77, 42, - 144, 98, 5, 143, 448, 143, 83, 84, 27, 94, - 145, 488, 136, 143, 91, 87, 94, 94, 143, 103, - 143, 103, 42, 98, 143, 38, 143, 7, 472, 473, - 101, 145, 109, 4, 5, 6, 7, 42, 19, 10, - 484, 97, 119, 120, 90, 5, 123, 124, 143, 42, - 21, 22, 496, 144, 498, 132, 7, 501, 145, 110, - 95, 138, 135, 144, 35, 36, 143, 144, 104, 9, - 112, 104, 43, 44, 143, 33, 143, 521, 143, 70, - 51, 52, 112, 54, 70, 529, 102, 144, 7, 60, - 339, 185, 473, 498, 65, 66, 53, 532, 69, 54, - 237, 113, 367, 118, 486, 150, 456, 262, 110, 488, - 263, 199, 83, 84, 154, 4, 5, 6, 7, 199, - 91, 10, 159, 94, 416, 186, 136, -1, -1, -1, - 141, 439, 21, 22, -1, -1, -1, -1, 109, -1, - -1, -1, -1, -1, -1, 116, 35, 36, 119, 120, - -1, -1, 123, 124, 43, 44, -1, -1, -1, -1, - -1, 132, 51, 52, -1, 54, -1, 138, -1, -1, - -1, 60, 143, -1, -1, -1, 65, 66, -1, -1, - 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 83, 84, -1, 4, 5, 6, - 7, -1, 91, -1, -1, 94, -1, -1, -1, -1, - -1, -1, -1, -1, 21, 22, 23, -1, -1, -1, - 109, -1, -1, -1, 4, 5, 6, 7, 35, 36, - 119, 120, -1, -1, 123, 124, 43, 44, -1, -1, - -1, 21, 22, 132, 51, 52, -1, 54, -1, 138, - -1, -1, -1, 60, 143, 35, 36, -1, -1, 66, - -1, -1, 69, 43, 44, -1, -1, -1, -1, -1, - -1, 51, 52, -1, 54, -1, 83, 84, -1, -1, - 60, -1, -1, -1, 91, -1, 66, 94, -1, 69, + 4, 132, 128, 136, 12, 198, 258, 11, 12, 237, + 136, 151, 8, 8, 27, 43, 4, 7, 6, 7, + 4, 4, 6, 6, 116, 4, 29, 6, 32, 23, + 24, 8, 36, 37, 38, 39, 40, 221, 29, 226, + 28, 81, 8, 72, 179, 21, 22, 75, 21, 22, + 21, 22, 57, 21, 22, 69, 63, 83, 191, 151, + 7, 51, 67, 189, 75, 191, 63, 95, 21, 22, + 28, 82, 31, 58, 0, 89, 152, 188, 39, 90, + 65, 221, 122, 21, 22, 135, 4, 1, 6, 3, + 122, 117, 168, 47, 48, 33, 146, 101, 190, 10, + 26, 112, 60, 62, 51, 37, 74, 115, 40, 41, + 114, 115, 140, 117, 118, 33, 145, 145, 32, 74, + 304, 308, 126, 127, 259, 153, 354, 134, 132, 221, + 256, 144, 0, 117, 145, 49, 50, 134, 128, 167, + 266, 267, 145, 57, 10, 338, 137, 151, 62, 145, + 145, 379, 156, 147, 382, 407, 144, 123, 134, 163, + 144, 144, 166, 191, 304, 144, 127, 360, 145, 83, + 123, 176, 145, 201, 145, 179, 204, 181, 182, 290, + 46, 128, 86, 144, 95, 9, 278, 119, 321, 417, + 56, 122, 117, 324, 108, 321, 109, 21, 22, 54, + 47, 48, 115, 117, 77, 145, 146, 132, 46, 237, + 145, 146, 304, 75, 68, 243, 130, 221, 222, 144, + 82, 30, 226, 137, 79, 87, 140, 3, 90, 95, + 423, 17, 18, 19, 374, 73, 109, 241, 93, 94, + 106, 245, 74, 97, 98, 111, 4, 380, 6, 277, + 112, 279, 256, 9, 380, 259, 284, 146, 389, 390, + 352, 116, 118, 129, 292, 21, 22, 4, 106, 6, + 58, 140, 126, 33, 143, 401, 86, 65, 411, 140, + 144, 142, 374, 138, 107, 411, 290, 117, 296, 317, + 5, 129, 296, 4, 80, 6, 21, 22, 35, 36, + 304, 145, 146, 98, 308, 21, 22, 144, 45, 34, + 21, 22, 145, 146, 135, 52, 53, 7, 55, 7, + 324, 85, 33, 351, 61, 144, 354, 145, 146, 145, + 146, 464, 144, 70, 59, 363, 144, 341, 464, 145, + 146, 145, 146, 145, 146, 145, 146, 84, 85, 145, + 146, 379, 145, 146, 382, 92, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 5, 21, 22, 144, + 374, 145, 146, 110, 145, 146, 145, 146, 144, 510, + 145, 146, 85, 120, 5, 389, 390, 124, 125, 417, + 74, 419, 145, 146, 145, 146, 133, 401, 146, 530, + 145, 146, 139, 101, 144, 7, 137, 538, 144, 7, + 438, 7, 11, 8, 144, 144, 4, 5, 6, 7, + 9, 64, 145, 20, 74, 145, 80, 146, 76, 102, + 458, 145, 144, 21, 22, 23, 88, 465, 144, 88, + 131, 64, 144, 132, 7, 100, 450, 35, 36, 100, + 87, 7, 7, 457, 100, 43, 44, 45, 42, 78, + 42, 99, 145, 144, 52, 53, 144, 55, 5, 497, + 27, 146, 60, 61, 137, 95, 144, 481, 482, 67, + 88, 95, 70, 144, 144, 38, 145, 145, 104, 493, + 99, 145, 104, 42, 7, 102, 84, 85, 98, 144, + 144, 505, 42, 507, 92, 146, 510, 95, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 91, 21, + 22, 19, 110, 5, 42, 136, 530, 144, 7, 96, + 145, 111, 120, 121, 538, 145, 124, 125, 113, 105, + 146, 4, 5, 6, 7, 133, 105, 10, 9, 33, + 144, 139, 144, 144, 71, 113, 144, 145, 21, 22, + 71, 103, 145, 7, 344, 482, 507, 241, 53, 115, + 120, 54, 35, 36, 153, 374, 495, 541, 80, 465, + 43, 44, 45, 157, 266, 497, 189, 267, 112, 52, + 53, 162, 55, 138, 423, 448, 144, 202, 61, -1, + -1, 202, -1, 66, 67, -1, -1, 70, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, -1, -1, -1, -1, -1, -1, 92, + -1, -1, 95, -1, 4, 5, 6, 7, -1, -1, + 10, -1, -1, -1, -1, -1, -1, 110, -1, -1, + -1, 21, 22, -1, 117, -1, -1, 120, 121, -1, + -1, 124, 125, -1, -1, 35, 36, -1, -1, -1, + 133, -1, -1, 43, 44, 45, 139, -1, -1, -1, + -1, 144, 52, 53, -1, 55, -1, -1, -1, -1, + -1, 61, -1, -1, -1, -1, 66, 67, -1, -1, + 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, -1, -1, -1, -1, + -1, -1, 92, -1, -1, 95, -1, 4, 5, 6, + 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 110, -1, -1, -1, 21, 22, 23, -1, -1, -1, + 120, 121, -1, -1, 124, 125, -1, -1, 35, 36, + -1, -1, -1, 133, -1, -1, 43, 44, 45, 139, + -1, -1, -1, -1, 144, 52, 53, -1, 55, -1, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, -1, 92, -1, -1, 95, -1, + 4, 5, 6, 7, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 110, -1, -1, -1, 21, 22, -1, + -1, -1, -1, 120, 121, -1, -1, 124, 125, -1, + -1, 35, 36, -1, -1, -1, 133, -1, -1, 43, + 44, 45, 139, -1, -1, -1, -1, 144, 52, 53, + -1, 55, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 83, 84, -1, -1, -1, -1, -1, - -1, 91, 119, 120, 94, -1, 123, 124, -1, -1, - -1, -1, -1, -1, -1, 132, -1, -1, -1, 109, - -1, 138, -1, -1, -1, -1, 143, -1, -1, 119, - 120, -1, -1, 123, 124, -1, -1, 4, 5, 6, - 7, -1, 132, 133, -1, -1, -1, -1, 138, -1, - -1, -1, -1, 143, 21, 22, -1, -1, 1, -1, - 3, -1, -1, -1, 4, 5, 6, 7, 35, 36, - -1, -1, -1, -1, -1, -1, 43, 44, -1, -1, - -1, 21, 22, -1, 51, 52, -1, 54, -1, 32, - -1, -1, -1, 60, -1, 35, 36, -1, -1, 66, - -1, -1, 69, 43, 44, 48, 49, -1, -1, -1, - -1, 51, 52, 56, 54, -1, 83, 84, 61, -1, - 60, -1, -1, -1, 91, 65, 66, 94, -1, 69, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - -1, -1, 109, 83, 84, -1, -1, -1, -1, 116, - -1, 91, 119, 120, 94, -1, 123, 124, -1, -1, - -1, -1, -1, -1, 107, 132, -1, -1, -1, 109, - -1, 138, -1, 116, -1, -1, 143, -1, -1, 119, - 120, -1, -1, 123, 124, -1, 129, 4, 5, 6, - 7, -1, 132, 136, -1, -1, 139, -1, 138, -1, - -1, -1, -1, 143, 21, 22, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, 6, 7, 35, 36, - -1, -1, -1, -1, -1, -1, 43, 44, -1, -1, - -1, 21, 22, -1, 51, 52, -1, 54, -1, -1, - -1, -1, -1, 60, -1, 35, 36, -1, -1, 66, - -1, -1, 69, 43, 44, -1, -1, -1, -1, -1, - -1, 51, 52, -1, 54, -1, 83, 84, -1, -1, - 60, -1, -1, -1, 91, -1, 66, 94, -1, 69, + 84, 85, -1, -1, -1, -1, -1, -1, 92, -1, + -1, 95, -1, 4, 5, 6, 7, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, + 21, 22, -1, -1, -1, -1, 120, 121, -1, -1, + 124, 125, -1, -1, 35, 36, -1, -1, -1, 133, + 134, -1, 43, 44, 45, 139, -1, -1, -1, -1, + 144, 52, 53, -1, 55, -1, -1, -1, -1, -1, + 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 83, 84, -1, -1, 5, -1, 7, - -1, 91, 119, 120, 94, -1, 123, 124, -1, -1, - -1, -1, -1, 21, 22, 132, -1, -1, -1, 109, - -1, 138, -1, -1, -1, -1, 143, 35, 36, 119, - 120, -1, -1, 123, 124, -1, 44, -1, -1, -1, - -1, -1, 132, 51, 52, -1, 54, -1, 138, -1, - -1, -1, 60, 143, 35, 36, -1, -1, -1, -1, - -1, 69, -1, 44, -1, -1, -1, -1, -1, -1, - 51, 52, -1, 54, -1, 83, 84, -1, -1, 60, - -1, -1, -1, 91, -1, -1, 94, -1, 69, -1, + -1, -1, -1, 84, 85, -1, -1, -1, -1, -1, + -1, 92, -1, -1, 95, -1, 4, 5, 6, 7, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, + -1, -1, -1, 21, 22, -1, 117, -1, -1, 120, + 121, -1, -1, 124, 125, -1, -1, 35, 36, -1, + -1, -1, 133, -1, -1, 43, 44, 45, 139, -1, + -1, -1, -1, 144, 52, 53, -1, 55, -1, -1, + -1, -1, -1, 61, -1, -1, -1, -1, 66, 67, + -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, -1, 92, -1, -1, 95, -1, 4, + 5, 6, 7, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 110, -1, -1, -1, 21, 22, -1, -1, + -1, -1, 120, 121, -1, -1, 124, 125, -1, -1, + 35, 36, -1, -1, -1, 133, -1, -1, 43, 44, + 45, 139, -1, -1, -1, -1, 144, 52, 53, -1, + 55, -1, -1, -1, -1, -1, 61, -1, -1, -1, + -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, -1, -1, -1, -1, -1, -1, 92, -1, -1, + 95, -1, 4, 5, 6, 7, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 110, -1, -1, -1, 21, + 22, -1, -1, -1, -1, 120, 121, -1, -1, 124, + 125, -1, -1, 35, 36, -1, -1, -1, 133, -1, + -1, 43, 44, 45, 139, -1, -1, -1, -1, 144, + 52, 53, -1, 55, -1, -1, 5, -1, 7, 61, + -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, + -1, -1, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, -1, -1, 35, 36, -1, -1, + 92, -1, -1, 95, -1, -1, 45, -1, -1, -1, + -1, -1, -1, 52, 53, -1, 55, -1, 110, -1, + -1, -1, 61, -1, -1, -1, -1, -1, 120, 121, + -1, 70, 124, 125, -1, -1, -1, -1, -1, -1, + -1, 133, -1, -1, -1, 84, 85, 139, 35, 36, + -1, -1, 144, 92, -1, -1, 95, -1, 45, -1, + -1, -1, -1, -1, -1, 52, 53, -1, 55, -1, + -1, 110, -1, -1, 61, -1, -1, -1, -1, -1, + -1, 120, -1, 70, -1, 124, 125, -1, -1, -1, + -1, -1, -1, -1, 133, -1, -1, 84, 85, -1, + 139, -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 109, 83, 84, -1, -1, -1, -1, -1, -1, - 91, 119, -1, -1, -1, 123, 124, -1, -1, -1, - -1, -1, -1, -1, 132, -1, -1, -1, 109, -1, - 138, -1, -1, -1, -1, -1, -1, -1, 119, -1, - -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, - -1, 132, -1, -1, -1, -1, -1, 138 + -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 120, -1, -1, -1, 124, 125, -1, + -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, + -1, -1, 139 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_uint16 yystos[] = { - 0, 1, 3, 32, 48, 49, 56, 61, 82, 107, - 116, 129, 136, 139, 148, 149, 150, 151, 152, 153, - 154, 175, 176, 179, 180, 183, 185, 188, 189, 190, - 254, 255, 121, 4, 6, 252, 80, 121, 73, 121, - 85, 28, 59, 191, 252, 186, 187, 202, 252, 0, - 139, 141, 82, 188, 29, 136, 184, 30, 139, 142, - 3, 252, 73, 252, 252, 252, 252, 252, 5, 7, - 21, 22, 23, 35, 36, 43, 44, 51, 52, 54, - 60, 66, 69, 83, 84, 91, 94, 109, 119, 120, - 123, 124, 132, 138, 143, 157, 192, 193, 194, 196, - 228, 229, 230, 231, 232, 233, 234, 235, 242, 245, - 248, 252, 117, 145, 33, 143, 85, 184, 191, 106, - 190, 31, 61, 5, 97, 143, 134, 222, 223, 131, - 143, 190, 7, 7, 133, 228, 238, 239, 143, 84, - 143, 5, 143, 143, 84, 188, 228, 5, 73, 195, - 145, 21, 22, 33, 249, 252, 23, 24, 146, 250, - 100, 22, 231, 27, 143, 181, 182, 252, 187, 143, - 196, 251, 252, 252, 189, 7, 46, 47, 46, 47, - 136, 177, 252, 155, 156, 252, 10, 65, 143, 224, - 225, 226, 227, 228, 245, 143, 251, 224, 133, 236, - 237, 62, 239, 240, 7, 53, 78, 92, 93, 115, - 137, 243, 243, 228, 7, 144, 144, 143, 196, 199, - 200, 203, 232, 252, 222, 194, 252, 229, 230, 143, - 252, 252, 23, 59, 144, 228, 241, 145, 222, 11, - 144, 145, 190, 155, 45, 72, 105, 128, 161, 252, - 252, 143, 143, 164, 144, 145, 84, 157, 227, 196, - 224, 228, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 79, 247, 20, 242, 244, 144, - 122, 228, 237, 240, 228, 63, 144, 73, 73, 144, - 199, 33, 201, 202, 74, 81, 89, 111, 198, 145, - 201, 39, 126, 197, 75, 204, 101, 211, 212, 144, - 241, 144, 145, 182, 228, 252, 143, 87, 87, 143, - 57, 64, 178, 245, 246, 252, 130, 161, 162, 163, - 155, 10, 45, 55, 94, 105, 110, 128, 158, 159, - 160, 144, 225, 226, 17, 18, 19, 79, 228, 143, - 196, 228, 10, 94, 144, 145, 131, 228, 122, 63, - 228, 7, 144, 202, 99, 99, 99, 86, 199, 7, - 7, 201, 42, 77, 205, 42, 144, 98, 213, 144, - 228, 224, 143, 143, 251, 5, 67, 96, 97, 125, - 253, 144, 145, 144, 145, 37, 40, 41, 118, 173, - 145, 136, 165, 94, 143, 242, 87, 252, 158, 228, - 143, 196, 9, 241, 94, 242, 143, 228, 144, 71, - 144, 200, 103, 103, 241, 224, 98, 206, 241, 42, - 108, 114, 214, 215, 144, 251, 251, 144, 57, 64, - 245, 143, 174, 161, 38, 101, 166, 224, 143, 9, - 241, 228, 144, 244, 7, 97, 42, 90, 207, 218, - 219, 228, 19, 144, 144, 5, 253, 168, 169, 170, - 171, 172, 252, 143, 42, 144, 252, 228, 144, 144, - 144, 224, 218, 7, 135, 208, 209, 210, 145, 34, - 58, 220, 7, 50, 127, 216, 110, 144, 145, 7, - 28, 143, 252, 168, 76, 108, 167, 144, 252, 210, - 219, 95, 221, 104, 112, 104, 9, 252, 169, 251, - 144, 143, 33, 68, 88, 7, 50, 127, 217, 143, - 144, 251, 143, 70, 112, 70, 251, 144, 211, 144, - 102, 144, 7 + 0, 1, 3, 32, 49, 50, 57, 62, 83, 108, + 117, 130, 137, 140, 149, 150, 151, 152, 153, 154, + 155, 176, 177, 180, 181, 184, 186, 189, 190, 191, + 256, 257, 122, 4, 6, 254, 81, 122, 74, 122, + 86, 28, 60, 192, 254, 187, 188, 203, 254, 0, + 140, 142, 83, 189, 29, 137, 185, 30, 140, 143, + 3, 254, 74, 254, 254, 254, 254, 254, 5, 7, + 21, 22, 23, 35, 36, 43, 44, 45, 52, 53, + 55, 61, 67, 70, 84, 85, 92, 95, 110, 120, + 121, 124, 125, 133, 139, 144, 158, 193, 194, 195, + 197, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 244, 247, 250, 254, 118, 146, 33, 144, 86, 185, + 192, 107, 191, 31, 62, 5, 98, 144, 135, 223, + 224, 132, 144, 191, 7, 7, 134, 229, 240, 241, + 144, 144, 85, 144, 5, 144, 144, 85, 189, 229, + 5, 74, 196, 146, 21, 22, 33, 251, 254, 23, + 24, 147, 252, 101, 22, 232, 27, 144, 182, 183, + 254, 188, 144, 197, 253, 254, 254, 190, 7, 47, + 48, 47, 48, 137, 178, 254, 156, 157, 254, 10, + 66, 144, 225, 226, 227, 228, 229, 247, 144, 253, + 225, 134, 238, 239, 63, 241, 242, 229, 7, 54, + 79, 93, 94, 116, 138, 245, 245, 229, 7, 145, + 145, 144, 197, 200, 201, 204, 233, 254, 223, 195, + 254, 230, 231, 144, 254, 254, 23, 60, 145, 229, + 243, 146, 223, 11, 145, 146, 191, 156, 46, 73, + 106, 129, 162, 254, 254, 144, 144, 165, 145, 146, + 85, 158, 228, 197, 225, 229, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 80, 249, + 20, 244, 246, 145, 123, 229, 239, 242, 229, 64, + 33, 145, 74, 74, 145, 200, 33, 202, 203, 75, + 82, 90, 112, 199, 146, 202, 39, 127, 198, 76, + 205, 102, 212, 213, 145, 243, 145, 146, 183, 229, + 254, 144, 88, 88, 144, 58, 65, 179, 247, 248, + 254, 131, 162, 163, 164, 156, 10, 46, 56, 95, + 106, 111, 129, 159, 160, 161, 145, 226, 227, 17, + 18, 19, 80, 229, 144, 197, 229, 10, 95, 145, + 146, 132, 229, 123, 64, 158, 254, 229, 7, 145, + 203, 100, 100, 100, 87, 200, 7, 7, 202, 42, + 78, 206, 42, 145, 99, 214, 145, 229, 225, 144, + 144, 253, 5, 68, 97, 98, 126, 255, 145, 146, + 145, 146, 37, 40, 41, 119, 174, 146, 137, 166, + 95, 144, 244, 88, 254, 159, 229, 144, 197, 9, + 243, 95, 244, 144, 229, 145, 145, 145, 72, 145, + 201, 104, 104, 243, 225, 99, 207, 243, 42, 109, + 115, 215, 216, 145, 253, 253, 145, 58, 65, 247, + 144, 175, 162, 38, 102, 167, 225, 144, 9, 243, + 229, 145, 246, 7, 98, 42, 91, 208, 219, 220, + 229, 19, 145, 145, 5, 255, 169, 170, 171, 172, + 173, 254, 144, 42, 145, 254, 229, 145, 145, 145, + 225, 219, 7, 136, 209, 210, 211, 146, 34, 59, + 221, 7, 51, 128, 217, 111, 145, 146, 7, 28, + 144, 254, 169, 77, 109, 168, 145, 254, 211, 220, + 96, 222, 105, 113, 105, 9, 254, 170, 253, 145, + 144, 33, 69, 89, 7, 51, 128, 218, 144, 145, + 253, 144, 71, 113, 71, 253, 145, 212, 145, 103, + 145, 7 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_uint16 yyr1[] = { - 0, 147, 148, 148, 148, 148, 148, 148, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 150, 151, - 151, 151, 151, 152, 153, 154, 155, 156, 156, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, - 158, 158, 158, 158, 159, 159, 160, 160, 161, 161, - 161, 161, 162, 162, 163, 163, 164, 164, 165, 165, - 166, 166, 167, 167, 168, 168, 169, 169, 169, 170, - 170, 171, 172, 173, 173, 173, 173, 174, 174, 175, - 175, 175, 175, 176, 177, 177, 178, 178, 178, 178, - 179, 180, 181, 181, 182, 183, 183, 184, 184, 185, - 186, 186, 187, 188, 188, 189, 189, 190, 191, 191, - 191, 192, 192, 193, 193, 194, 194, 194, 195, 196, - 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, - 198, 199, 199, 200, 200, 200, 200, 200, 200, 201, - 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, - 206, 207, 207, 208, 208, 209, 209, 210, 211, 212, - 212, 213, 213, 214, 214, 215, 215, 216, 216, 216, - 217, 217, 217, 218, 218, 219, 220, 220, 220, 221, - 221, 221, 222, 222, 223, 224, 224, 225, 225, 226, - 226, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 228, 228, 229, 229, 230, 230, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 232, 232, - 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, - 238, 238, 239, 240, 240, 241, 241, 242, 242, 242, - 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, - 243, 244, 244, 245, 245, 246, 246, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 248, 249, 249, - 250, 250, 250, 251, 251, 252, 252, 253, 253, 253, - 253, 254, 255, 255 + 0, 148, 149, 149, 149, 149, 149, 149, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 151, 152, + 152, 152, 152, 153, 154, 155, 156, 157, 157, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 159, 159, 159, + 159, 159, 159, 159, 160, 160, 161, 161, 162, 162, + 162, 162, 163, 163, 164, 164, 165, 165, 166, 166, + 167, 167, 168, 168, 169, 169, 170, 170, 170, 171, + 171, 172, 173, 174, 174, 174, 174, 175, 175, 176, + 176, 176, 176, 177, 178, 178, 179, 179, 179, 179, + 180, 181, 182, 182, 183, 184, 184, 185, 185, 186, + 187, 187, 188, 189, 189, 190, 190, 191, 192, 192, + 192, 193, 193, 194, 194, 195, 195, 195, 196, 197, + 198, 198, 198, 199, 199, 199, 199, 199, 199, 199, + 199, 200, 200, 201, 201, 201, 201, 201, 201, 202, + 202, 203, 203, 204, 204, 205, 205, 206, 206, 207, + 207, 208, 208, 209, 209, 210, 210, 211, 212, 213, + 213, 214, 214, 215, 215, 216, 216, 217, 217, 217, + 218, 218, 218, 219, 219, 220, 221, 221, 221, 222, + 222, 222, 223, 223, 224, 225, 225, 226, 226, 227, + 227, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, + 233, 233, 233, 234, 234, 235, 236, 236, 237, 237, + 238, 238, 239, 240, 240, 241, 242, 242, 243, 243, + 244, 244, 244,