From 73f3e22850d9df38d36bbb15f00ded7dcce63f27 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Fri, 6 Jul 2012 23:35:15 -0700 Subject: [PATCH] Look up state subs in the pad MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This commit does just enough to get things compiling. The padcv op is still unimplemented (in fact, converting the padany to a padcv is still not done), so you can’t actually run the code yet. Bareword lookup in yylex now produces PRIVATEREF tokens for state subs, so the grammar has been adjusted to accept a ‘subname’ in sub calls (PRIVATEREF or WORD) where previously only a WORD was permitted. --- perly.act | 2 +- perly.h | 2 +- perly.tab | 1193 +++++++++++++++++++++++++++++++------------------------------ perly.y | 6 +- toke.c | 51 ++- 5 files changed, 637 insertions(+), 617 deletions(-) diff --git a/perly.act b/perly.act index d541e85..0ecccc6 100644 --- a/perly.act +++ b/perly.act @@ -1785,6 +1785,6 @@ case 2: /* Generated from: - * a216aadb9729f2e06283be0b4e7f08adc1209abb0bb9b50c453be450c6104a81 perly.y + * 46a0f37bedef614c67088ca538be1a60acad74ce92b27d0244bd16b23eb7fd8d perly.y * 4a3ced51fe6585f6ec59e65e1ffd74bc976c498b0e6992eaab337219fee72e51 regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index 63133c7..1758c41 100644 --- a/perly.h +++ b/perly.h @@ -268,6 +268,6 @@ typedef union YYSTYPE /* Generated from: - * a216aadb9729f2e06283be0b4e7f08adc1209abb0bb9b50c453be450c6104a81 perly.y + * 46a0f37bedef614c67088ca538be1a60acad74ce92b27d0244bd16b23eb7fd8d perly.y * 4a3ced51fe6585f6ec59e65e1ffd74bc976c498b0e6992eaab337219fee72e51 regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index 6c7fb0d..e404319 100644 --- a/perly.tab +++ b/perly.tab @@ -6,7 +6,7 @@ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2820 +#define YYLAST 2821 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 105 @@ -15,7 +15,7 @@ /* YYNRULES -- Number of rules. */ #define YYNRULES 227 /* YYNRULES -- Number of states. */ -#define YYNSTATES 460 +#define YYNSTATES 461 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -153,7 +153,7 @@ static const yytype_int16 yyrhs[] = 157, -1, 99, 157, -1, 11, 147, 12, -1, 11, 12, -1, 67, 147, 20, 10, -1, 67, 20, 10, -1, 39, 140, 143, 144, 113, -1, 66, 157, -1, - 66, 113, -1, 66, 23, 103, 102, -1, 66, 23, + 66, 113, -1, 66, 142, 103, 102, -1, 66, 142, 103, 147, 102, -1, 66, 165, 103, 102, -1, 66, 165, 103, 147, 102, -1, 153, -1, 154, -1, 155, -1, 156, -1, 157, 83, 157, 84, 157, -1, 94, @@ -162,7 +162,7 @@ static const yytype_int16 yyrhs[] = 167, -1, 166, -1, 168, -1, 152, -1, 166, 11, 147, 12, -1, 166, 9, 147, 20, 10, -1, 26, -1, 164, -1, 164, 103, 102, -1, 164, 103, 147, - 102, -1, 68, 23, 161, -1, 53, -1, 53, 157, + 102, -1, 68, 142, 161, -1, 53, -1, 53, 157, -1, 80, 148, -1, 59, -1, 59, 113, -1, 59, 157, -1, 72, -1, 72, 157, -1, 32, -1, 32, 157, -1, 56, -1, 56, 103, 102, -1, 30, -1, @@ -332,116 +332,118 @@ static const yytype_uint8 yydefact[] = 23, 0, 0, 149, 0, 140, 141, 224, 227, 226, 225, 219, 220, 221, 223, 218, 213, 0, 0, 0, 0, 192, 0, 84, 184, 0, 0, 215, 187, 188, - 224, 214, 106, 225, 0, 222, 202, 154, 153, 170, - 0, 0, 213, 166, 0, 207, 210, 212, 211, 190, - 185, 142, 143, 164, 147, 146, 169, 0, 0, 0, - 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, + 224, 214, 106, 225, 0, 222, 202, 83, 154, 0, + 153, 170, 0, 0, 82, 213, 166, 0, 207, 210, + 212, 211, 190, 185, 142, 143, 164, 147, 146, 169, + 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 144, 0, 0, 0, 0, 0, 0, 0, 19, - 78, 82, 83, 79, 0, 34, 16, 16, 16, 16, - 16, 16, 0, 16, 16, 40, 0, 0, 47, 50, - 0, 0, 0, 0, 0, 0, 26, 25, 20, 148, - 104, 215, 0, 0, 196, 108, 85, 86, 194, 198, - 0, 0, 0, 100, 0, 0, 151, 0, 182, 209, - 0, 90, 206, 0, 167, 95, 94, 93, 98, 0, - 0, 122, 0, 135, 131, 132, 128, 129, 126, 0, - 138, 137, 136, 134, 133, 130, 139, 127, 0, 0, - 110, 0, 103, 111, 180, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 30, 0, 0, 71, 0, 0, - 0, 0, 0, 16, 0, 0, 84, 67, 59, 60, - 73, 57, 58, 61, 62, 0, 0, 124, 213, 88, - 0, 199, 107, 0, 155, 0, 157, 0, 150, 208, - 89, 0, 0, 0, 115, 121, 0, 0, 0, 119, - 0, 215, 181, 0, 113, 0, 176, 0, 14, 16, - 29, 84, 16, 33, 0, 0, 72, 0, 0, 74, - 76, 0, 0, 217, 70, 75, 0, 0, 56, 0, - 0, 0, 86, 105, 201, 109, 87, 152, 101, 156, - 158, 125, 0, 118, 163, 0, 114, 120, 0, 116, - 177, 112, 0, 86, 48, 213, 68, 68, 0, 0, - 0, 0, 71, 0, 0, 0, 0, 123, 117, 102, - 0, 0, 19, 0, 0, 0, 18, 63, 63, 0, - 66, 0, 0, 38, 39, 92, 91, 32, 21, 31, - 0, 35, 66, 66, 19, 0, 0, 36, 37, 0, - 46, 68, 66, 0, 49, 41, 42, 0, 64, 0, - 66, 0, 45, 0, 53, 22, 17, 0, 44, 0, - 15, 19, 52, 0, 0, 0, 63, 43, 54, 65 + 0, 0, 0, 145, 144, 0, 0, 0, 0, 0, + 0, 0, 19, 78, 79, 0, 34, 16, 16, 16, + 16, 16, 16, 0, 16, 16, 40, 0, 0, 47, + 50, 0, 0, 0, 0, 0, 0, 26, 25, 20, + 148, 104, 215, 0, 0, 196, 108, 85, 86, 194, + 198, 0, 0, 0, 100, 0, 0, 151, 0, 182, + 209, 0, 90, 206, 0, 167, 95, 94, 93, 98, + 0, 0, 122, 0, 135, 131, 132, 128, 129, 126, + 0, 138, 137, 136, 134, 133, 130, 139, 127, 0, + 0, 110, 0, 103, 111, 180, 0, 0, 0, 0, + 0, 0, 0, 77, 0, 30, 0, 0, 71, 0, + 0, 0, 0, 0, 16, 0, 0, 84, 67, 59, + 60, 73, 57, 58, 61, 62, 0, 0, 124, 213, + 88, 0, 199, 107, 0, 155, 0, 157, 0, 150, + 208, 89, 0, 0, 0, 115, 121, 0, 0, 0, + 119, 0, 215, 181, 0, 113, 0, 176, 0, 14, + 16, 29, 84, 16, 33, 0, 0, 72, 0, 0, + 74, 76, 0, 0, 217, 70, 75, 0, 0, 56, + 0, 0, 0, 86, 105, 201, 109, 87, 152, 101, + 156, 158, 125, 0, 118, 163, 0, 114, 120, 0, + 116, 177, 112, 0, 86, 48, 213, 68, 68, 0, + 0, 0, 0, 71, 0, 0, 0, 0, 123, 117, + 102, 0, 0, 19, 0, 0, 0, 18, 63, 63, + 0, 66, 0, 0, 38, 39, 92, 91, 32, 21, + 31, 0, 35, 66, 66, 19, 0, 0, 36, 37, + 0, 46, 68, 66, 0, 49, 41, 42, 0, 64, + 0, 66, 0, 45, 0, 53, 22, 17, 0, 44, + 0, 15, 19, 52, 0, 0, 0, 63, 43, 54, + 65 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 7, 8, 9, 10, 11, 12, 13, 109, 340, - 15, 407, 424, 101, 433, 218, 99, 100, 341, 286, - 402, 445, 452, 95, 427, 208, 404, 355, 345, 299, - 348, 357, 351, 283, 195, 122, 190, 193, 227, 310, - 242, 417, 96, 58, 59, 308, 272, 60, 61, 62, - 63, 64, 65, 118, 66, 145, 132, 67, 352, 68, + -1, 7, 8, 9, 10, 11, 12, 13, 109, 341, + 15, 408, 425, 101, 434, 219, 99, 100, 342, 287, + 403, 446, 453, 95, 428, 209, 405, 356, 346, 300, + 349, 358, 352, 284, 196, 122, 193, 139, 228, 311, + 243, 418, 96, 58, 59, 309, 273, 60, 61, 62, + 63, 64, 65, 118, 66, 148, 132, 67, 353, 68, 69, 70, 71, 72, 73, 111 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -399 +#define YYPACT_NINF -390 static const yytype_int16 yypact[] = { - 307, -399, -399, -399, -399, -399, -399, 17, -399, 2656, - 34, 1107, 1011, -399, -399, -399, 1730, 2656, 2656, 410, - 410, 410, 410, 410, -399, 410, 410, -399, -399, 15, - -47, -399, 2656, -399, -399, -399, 2656, -399, -27, 37, - 43, 1544, 1451, 410, 1637, 1821, 78, 2656, 21, 2656, - 2656, 2656, 2656, 2656, 2656, 2656, 1912, 26, 12, -399, - 7, -399, -399, -399, -399, 2719, -399, -399, 48, 50, - 77, -399, -399, 104, -399, -399, -399, -399, -399, -399, - 55, 83, -399, 57, 69, 85, 86, 5, 90, 91, - 34, -399, -399, 114, -399, 125, 2096, 1011, -399, -399, - -399, 435, 531, -399, -7, 517, 517, -399, -399, -399, - -399, -399, -399, -399, -399, -399, 2656, 93, 101, 2656, - 109, 1990, 34, 187, 2719, 112, 2005, 1451, -399, 1990, - 279, 12, -399, 1357, 2656, -399, 117, -399, 1990, 38, - 205, 59, 2656, 1990, 2098, 153, -399, -399, -399, 1990, - 12, 517, 517, 517, 127, 127, 220, 294, 2656, 2656, - 2656, 2656, 2656, 2656, 2191, 2656, 2656, 2656, 2656, 2656, - 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, - -399, -399, 24, 2284, 2656, 2656, 2656, 2656, 2656, -399, - 213, -399, -399, -399, 219, -399, -399, -399, -399, -399, - -399, -399, 156, -399, -399, -399, 55, 34, -399, -399, - 2656, 2656, 2656, 2656, 2656, 2656, -399, -399, -399, -399, - -399, 2656, 2656, 65, -399, -399, -399, 170, -399, -399, - 322, 160, 2656, 12, 2377, 2470, -399, 255, -399, -399, - 419, 246, -399, 2656, 263, 197, 197, -399, 2719, 217, - 70, -399, 431, 1439, 1897, 1715, 612, 207, 2719, 2678, - 1283, 1283, 1529, 1622, 1806, 320, 517, 517, 2656, 2656, - -399, 2563, 175, -399, -399, 434, 241, 97, 257, 113, - 260, 627, -399, 265, -399, 10, 258, 2656, 2656, 2656, - 2656, 282, 1201, -399, 2656, 2656, 187, -399, 26, -399, - 26, 26, 26, 26, 26, 199, -8, -399, 2656, 276, - 34, -399, -399, 439, -399, 515, -399, 527, -399, -399, - -399, 123, 2656, 297, -399, -399, 2656, 268, 140, -399, - 530, 2656, -399, 306, -399, 315, -399, 317, -399, -399, - -399, 187, -399, -399, 308, 227, 26, 230, 242, 26, - -399, 247, 245, -399, -399, -399, 249, 332, 190, 2656, - 251, 253, 170, -399, -399, -399, -399, -399, -399, -399, - -399, -399, 144, -399, 1189, 349, -399, -399, 272, -399, - -399, -399, 358, 170, -399, 2656, -399, -399, 370, 370, - 2656, 370, 2656, 280, 370, 370, 33, -399, -399, -399, - 313, 33, -399, 369, 370, 370, -399, 71, 71, 291, - 114, 375, 370, -399, -399, -399, -399, -399, -399, -399, - 723, -399, 114, 114, -399, 370, 299, -399, -399, 370, - -399, -399, 114, 40, -399, -399, -399, 819, -399, 2656, - 114, 1295, -399, 381, 330, -399, -399, 304, -399, 311, - -399, -399, -399, 370, 370, 915, 71, -399, -399, -399 + 698, -390, -390, -390, -390, -390, -390, 42, -390, 2657, + 63, 1108, 1012, -390, -390, -390, 1731, 2657, 2657, 411, + 411, 411, 411, 411, -390, 411, 411, -390, -390, 71, + -13, -390, 2657, -390, -390, -390, 2657, -390, 6, 24, + 45, 1638, 1452, 411, 1545, 1822, 47, 2657, 1, 2657, + 2657, 2657, 2657, 2657, 2657, 2657, 1913, 23, 12, -390, + 43, -390, -390, -390, -390, 2720, -390, -390, 51, 77, + 107, -390, -390, 85, -390, -390, -390, -390, -390, -390, + 47, 83, -390, 66, 90, 94, 100, 4, 109, 124, + 63, -390, -390, 65, -390, 125, 2004, 1012, -390, -390, + -390, 436, 532, -390, 0, 614, 614, -390, -390, -390, + -390, -390, -390, -390, -390, -390, 2657, 126, 129, 2657, + 87, 1898, 63, 208, 2720, 133, 2006, 1452, -390, 1898, + 280, 12, -390, 1358, 2657, -390, 138, -390, -390, 139, + 1898, 44, 234, 99, -390, 2657, 1898, 2099, 172, -390, + -390, -390, 1898, 12, 614, 614, 614, 251, 251, 252, + 144, 2657, 2657, 2657, 2657, 2657, 2657, 2192, 2657, 2657, + 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, + 2657, 2657, 2657, -390, -390, 32, 2285, 2657, 2657, 2657, + 2657, 2657, -390, 243, -390, 250, -390, -390, -390, -390, + -390, -390, -390, 178, -390, -390, -390, 47, 63, -390, + -390, 2657, 2657, 2657, 2657, 2657, 2657, -390, -390, -390, + -390, -390, 2657, 2657, 73, -390, -390, -390, 214, -390, + -390, 230, 187, 2657, 12, 2378, 2471, -390, 283, -390, + -390, 295, 269, -390, 2657, 285, 223, 223, -390, 2720, + 147, 86, -390, 432, 1440, 1807, 1623, 104, 421, 2720, + 2679, 1284, 1284, 1530, 249, 1716, 321, 614, 614, 2657, + 2657, -390, 2564, 203, -390, -390, 516, 159, 93, 220, + 96, 242, 628, -390, 293, -390, 29, 292, 2657, 2657, + 2657, 2657, 301, 1202, -390, 2657, 2657, 208, -390, 23, + -390, 23, 23, 23, 23, 23, 215, -44, -390, 2657, + 300, 63, -390, -390, 528, -390, 531, -390, 538, -390, + -390, -390, 113, 2657, 320, -390, -390, 2657, 258, 137, + -390, 612, 2657, -390, 323, -390, 343, -390, 344, -390, + -390, -390, 208, -390, -390, 333, 273, 23, 277, 278, + 23, -390, 281, 257, -390, -390, -390, 287, 370, 226, + 2657, 294, 298, 214, -390, -390, -390, -390, -390, -390, + -390, -390, -390, 141, -390, 1190, 384, -390, -390, 299, + -390, -390, -390, 383, 214, -390, 2657, -390, -390, 395, + 395, 2657, 395, 2657, 303, 395, 395, 56, -390, -390, + -390, 332, 56, -390, 390, 395, 395, -390, -14, -14, + 319, 65, 403, 395, -390, -390, -390, -390, -390, -390, + -390, 724, -390, 65, 65, -390, 395, 322, -390, -390, + 395, -390, -390, 65, 10, -390, -390, -390, 820, -390, + 2657, 65, 1296, -390, 405, 356, -390, -390, 329, -390, + 336, -390, -390, -390, 395, 395, 916, -14, -390, -390, + -390 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -399, -399, -399, -399, -399, -399, -399, -399, -10, -399, - -33, 3, -399, -12, -399, 397, 323, -2, -399, -399, - -399, -399, -399, -280, -398, -237, -374, -399, 22, -190, - -240, -19, -399, -399, -77, 388, -399, 223, -267, -293, - -399, 25, -5, -35, -399, -399, -399, -399, -399, -399, - -399, -399, 79, -399, -399, -399, -110, -119, -399, -399, - 2, 382, 383, -399, -399, 42 + -390, -390, -390, -390, -390, -390, -390, -390, -10, -390, + -61, 3, -390, -12, -390, 429, 345, -2, -390, -390, + -390, -390, -390, -283, -389, -9, -359, -390, 50, -95, + -236, 22, -390, -390, -77, 409, -390, -41, -271, -315, + -390, 46, -5, -35, -390, -390, -390, -390, -390, -390, + -390, -390, 79, -390, -390, -390, -110, -119, -390, -390, + 2, 434, 435, -390, -390, 41 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -451,227 +453,255 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -203 static const yytype_int16 yytable[] = { - 75, 93, 93, 102, 57, 219, 220, 131, 231, 94, - 428, 104, 354, 405, 206, 150, 162, 14, 163, 342, - 19, 110, 110, 110, 110, 110, 119, 110, 110, 362, - 343, 128, 238, 268, 137, 269, 19, 20, 21, 19, - 141, 189, 74, 74, 133, 110, 139, 184, 270, 185, - 146, 157, 356, 415, 360, 361, 120, 441, 459, 184, - 443, 185, 112, 113, 114, 115, 444, 116, 117, 396, - 158, 159, 160, 161, 383, 200, 125, 307, 191, 237, - 205, 131, 324, 192, 134, 135, 186, 93, 187, 202, - 401, 93, 93, 161, 364, 217, 105, 106, 347, 233, - 350, 142, 305, 158, 159, 160, 194, 131, 201, 334, - 164, 121, 225, 188, 223, 124, 284, 425, 426, 393, - 129, 230, 57, 138, 144, 336, 143, 271, 149, 133, - 151, 152, 153, 154, 155, 371, 158, 159, 160, 240, - 126, 235, 158, 159, 160, 209, 127, 158, 159, 160, - 409, 183, 376, 245, 246, 247, 397, 249, 250, 252, - 196, 354, 207, 287, 288, 289, 290, 291, 292, 232, - 294, 295, 197, 430, 158, 159, 160, 281, 275, 276, - 277, 278, 279, 280, 273, 435, 436, 306, 198, 199, - 158, 159, 160, 203, 204, 442, 221, 297, 365, 447, - 158, 159, 160, 448, 222, 298, 300, 301, 302, 303, - 304, 224, 378, 226, 228, 236, 57, 158, 159, 160, - 234, 158, 159, 160, -203, -203, 241, 313, 182, 315, - 317, 243, 210, 211, 212, 213, 282, 323, 321, 214, - 248, 215, 285, 309, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 293, - 359, 333, 312, 327, 328, 318, 330, 158, 159, 160, - 168, 93, 320, 131, 322, 403, 160, 335, 331, -202, - 337, 344, 346, 300, 349, 300, 339, 358, 375, 349, - 349, -202, -74, 353, 158, 159, 160, 19, 178, -202, - 367, 363, 366, 179, 180, 181, 382, 373, 182, 384, - 1, 2, 3, 4, 5, 6, 379, 372, 158, 159, - 160, -202, -202, -202, -202, 380, 57, 381, -202, 386, - -202, 385, 387, -202, 158, 159, 160, 158, 159, 160, - -202, -202, -202, -202, 388, 158, 159, 160, 390, 389, - 131, 391, 392, 394, 349, 395, -202, -202, -202, 398, - -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, - -202, 158, 159, 160, 399, -202, -202, -202, 400, 406, - -202, -202, 412, 168, 169, 349, 416, 346, 418, 421, - 420, 416, 408, 429, 410, 431, 244, 413, 414, 158, - 159, 160, 439, 450, 451, 374, 453, 422, 423, 98, - 93, 178, 437, 454, 411, 432, 179, 180, 181, 74, - 216, 182, 449, 123, 311, 19, 419, 93, 438, 296, - 147, 148, 440, 107, 349, -13, 76, 0, 108, 455, - 0, 0, 0, 0, 74, 93, 16, 0, 17, 18, - 19, 20, 21, 22, 23, 77, 456, 457, 24, 25, - 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, - 78, 97, 79, 80, 35, 81, 82, 83, 84, 85, - 86, 0, 0, 0, 87, 88, 89, 90, 36, 0, - 37, 38, 39, 40, 41, 42, 158, 159, 160, 0, - 43, 44, 45, 46, 47, 48, 91, 49, 158, 159, - 160, 158, 159, 160, 0, 50, 158, 159, 160, 0, - 0, 319, 0, 0, 0, 0, 0, 51, 52, 53, - 0, -3, 76, 325, 54, 55, 332, 0, 56, 92, - 74, 368, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 77, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 78, 97, 79, 80, - 35, 81, 82, 83, 84, 85, 86, 0, 0, 0, - 87, 88, 89, 90, 36, 0, 37, 38, 39, 40, - 41, 42, 158, 159, 160, 0, 43, 44, 45, 46, - 47, 48, 91, 49, 158, 159, 160, 158, 159, 160, - 0, 50, 0, 179, 180, 181, 0, 369, 182, 0, - 0, 0, 0, 51, 52, 53, 0, 0, 76, 370, - 54, 55, 377, 0, 56, 92, 74, 338, 16, 0, - 17, 18, 19, 20, 21, 22, 23, 77, 0, 0, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 78, 97, 79, 80, 35, 81, 82, 83, - 84, 85, 86, 0, 0, 0, 87, 88, 89, 90, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 91, 49, - 0, 0, 0, 178, 0, 0, 0, 50, 179, 180, - 181, 0, 0, 182, 0, 0, 0, 0, 0, 51, - 52, 53, 0, 0, 76, 0, 54, 55, 0, 0, - 56, 92, 74, 434, 16, 0, 17, 18, 19, 20, - 21, 22, 23, 77, 0, 0, 24, 25, 26, 27, - 28, 0, 29, 30, 31, 32, 33, 34, 78, 97, - 79, 80, 35, 81, 82, 83, 84, 85, 86, 0, - 0, 0, 87, 88, 89, 90, 36, 0, 37, 38, - 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, - 45, 46, 47, 48, 91, 49, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, - 76, 0, 54, 55, 0, 0, 56, 92, 74, 446, - 16, 0, 17, 18, 19, 20, 21, 22, 23, 77, - 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, - 31, 32, 33, 34, 78, 97, 79, 80, 35, 81, - 82, 83, 84, 85, 86, 0, 0, 0, 87, 88, - 89, 90, 36, 0, 37, 38, 39, 40, 41, 42, - 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, - 91, 49, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 52, 53, 0, 0, 76, 0, 54, 55, - 0, 0, 56, 92, 74, 0, 16, 0, 17, 18, - 19, 20, 21, 22, 23, 77, 0, 0, 24, 25, - 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, - 78, 97, 79, 80, 35, 81, 82, 83, 84, 85, - 86, 0, 0, 0, 87, 88, 89, 90, 36, 0, - 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, - 43, 44, 45, 46, 47, 48, 91, 49, 0, 0, - 458, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 76, 0, 54, 55, 0, 0, 56, 92, - 74, 0, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 77, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 78, 97, 79, 80, - 35, 81, 82, 83, 84, 85, 86, 0, 0, 0, - 87, 88, 89, 90, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 91, 49, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 52, 53, 0, 0, 76, 0, - 54, 55, 0, 0, 56, 92, 74, 0, 16, 0, - 17, 18, 19, 20, 21, 22, 23, 77, 0, 0, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 78, 0, 79, 80, 35, 81, 82, 83, - 84, 85, 86, 0, 0, 0, 87, 88, 89, 90, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 91, 49, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 52, 53, 76, 0, 0, 0, 54, 55, 0, 0, - 56, 92, 16, 0, 17, 18, 19, 20, 21, 22, - 23, -69, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, - 35, 0, 0, 165, 0, 0, 0, 0, 0, 0, - 166, 167, 168, 169, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 171, 49, 172, 173, 174, 175, 176, 177, - 178, 50, 0, 0, 0, 179, 180, 181, 0, 0, - 182, 0, 0, 51, 52, 53, 76, 0, 0, 0, - 54, 55, 0, 0, 56, 0, 16, 0, 17, 18, - 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, - 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, - 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 167, 168, 169, 36, 0, - 37, 38, 39, 40, 41, 42, 0, -170, 0, 0, - 43, 44, 45, 46, 47, 48, 184, 49, 185, -170, - 174, 175, 176, 177, 178, 50, 0, -170, 0, 179, - 180, 181, 0, 0, 182, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 54, 55, 0, -69, 56, -170, - -170, -170, -170, 0, 0, 0, -170, 0, -170, 0, - 0, -170, 0, 0, 0, 0, 0, 0, -170, -170, - -170, -170, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -170, -170, -170, 0, -170, -170, - -170, -170, -170, -170, -170, -170, -170, -170, -170, 0, - 0, 0, 0, -170, -170, -170, 0, 0, -170, -170, - 74, 0, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 0, 0, 0, 130, 25, 26, 27, 28, 108, - 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, - 35, 0, 0, -203, 0, 0, 0, 0, 0, 0, - 166, 167, 168, 169, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 0, 49, 172, 173, 174, 175, 176, 177, - 178, 50, 0, 0, 0, 179, 180, 181, 0, 0, - 182, 0, 0, 51, 52, 53, 0, 0, 0, 0, - 54, 55, 0, 74, 56, 16, 0, 17, 18, 19, - 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, - 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, - 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, - 166, 167, 168, 169, 0, 0, 0, 36, 0, 37, + 75, 93, 93, 102, 57, 145, 221, 131, 232, 94, + 355, 104, 220, 192, 207, 153, 19, 20, 21, 19, + 429, 110, 110, 110, 110, 110, 363, 110, 110, 406, + 444, 128, 426, 427, 138, 239, 445, 164, 343, 194, + 143, 269, 14, 270, 133, 110, 141, 19, 397, 344, + 149, 160, 165, 187, 166, 188, 271, 357, 365, 361, + 362, 112, 113, 114, 115, 74, 116, 117, 460, 402, + 144, 384, 74, 442, 201, 137, 416, 161, 162, 163, + 206, 131, 119, 134, 135, 308, 187, 93, 188, 203, + 120, 93, 93, 164, 191, 218, 105, 106, 325, 234, + 161, 162, 163, 306, 147, 335, 195, 202, 337, 125, + 131, 121, 226, 208, 224, 124, 189, 285, 190, 238, + 129, 231, 57, 140, 394, 372, 146, 126, 152, 133, + 154, 155, 156, 157, 158, 272, 288, 289, 290, 291, + 292, 293, 241, 295, 296, 210, 167, 236, 127, 377, + 161, 162, 163, 398, 186, 410, 246, 247, 248, 355, + 250, 251, 253, 161, 162, 163, 297, 324, 233, 197, + 161, 162, 163, 161, 162, 163, 161, 162, 163, 334, + 282, 276, 277, 278, 279, 280, 281, 274, 307, 225, + 161, 162, 163, 198, 348, 181, 351, 199, 298, 366, + 182, 183, 184, 200, 448, 185, 299, 301, 302, 303, + 304, 305, 204, 379, 161, 162, 163, 57, 161, 162, + 163, 161, 162, 163, 161, 162, 163, 205, 314, 222, + 316, 318, 223, 360, 227, 229, 161, 162, 163, 322, + 336, -82, 235, 249, 237, 242, 245, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 338, 244, 328, 329, 283, 331, 211, 212, + 213, 214, 93, 286, 131, 215, 404, 216, 376, 383, + -202, 294, 385, 347, 301, 350, 301, 310, 359, 313, + 350, 350, -202, 319, 354, 321, 323, 161, 162, 163, + -202, 368, 163, 161, 162, 163, 332, 161, 162, 163, + 169, 170, 171, 172, 340, 345, 19, 364, 373, 161, + 162, 163, -202, -202, -202, -202, 367, 57, -74, -202, + 374, -202, 312, 380, -202, 161, 162, 163, 179, 180, + 181, -202, -202, -202, -202, 182, 183, 184, -203, -203, + 185, 131, 185, 381, 382, 350, 386, -202, -202, -202, + 391, -202, -202, -202, -202, -202, -202, -202, -202, -202, + -202, -202, 161, 162, 163, 387, -202, -202, -202, 388, + 389, -202, -202, 390, 171, 172, 350, 417, 347, 392, + 393, 421, 417, 409, 399, 411, 395, 320, 414, 415, + 396, 400, 431, 401, 407, 413, 375, 419, 423, 424, + 422, 93, 181, 438, 436, 437, 433, 182, 183, 184, + 74, 430, 185, 432, 443, 440, 19, 451, 93, 439, + 452, 454, 449, 441, 107, 350, -13, 76, 455, 108, + 456, 98, 217, 412, 123, 74, 93, 16, 420, 17, + 18, 19, 20, 21, 22, 23, 77, 457, 458, 24, + 25, 26, 27, 28, 450, 29, 30, 31, 32, 33, + 34, 78, 97, 79, 80, 35, 81, 82, 83, 84, + 85, 86, 150, 151, 171, 87, 88, 89, 90, 36, + 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, + 0, 43, 44, 45, 46, 47, 48, 91, 49, 161, + 162, 163, 181, 0, 0, 0, 50, 182, 183, 184, + 0, 0, 185, 0, 0, 0, 0, 0, 51, 52, + 53, 0, -3, 76, 326, 54, 55, 0, 0, 56, + 92, 74, 0, 16, 0, 17, 18, 19, 20, 21, + 22, 23, 77, 0, 0, 24, 25, 26, 27, 28, + 0, 29, 30, 31, 32, 33, 34, 78, 97, 79, + 80, 35, 81, 82, 83, 84, 85, 86, 0, 0, + 0, 87, 88, 89, 90, 36, 0, 37, 38, 39, + 40, 41, 42, 161, 162, 163, 0, 43, 44, 45, + 46, 47, 48, 91, 49, 161, 162, 163, 161, 162, + 163, 0, 50, 0, 0, 161, 162, 163, 333, 0, + 0, 0, 0, 0, 51, 52, 53, 0, 0, 76, + 369, 54, 55, 370, 0, 56, 92, 74, 339, 16, + 371, 17, 18, 19, 20, 21, 22, 23, 77, 0, + 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, + 32, 33, 34, 78, 97, 79, 80, 35, 81, 82, + 83, 84, 85, 86, 0, 0, 0, 87, 88, 89, + 90, 36, 0, 37, 38, 39, 40, 41, 42, 161, + 162, 163, 0, 43, 44, 45, 46, 47, 48, 91, + 49, 1, 2, 3, 4, 5, 6, 0, 50, 0, + 182, 183, 184, 0, 378, 185, 0, 0, 0, 0, + 51, 52, 53, 0, 0, 76, 0, 54, 55, 0, + 0, 56, 92, 74, 435, 16, 0, 17, 18, 19, + 20, 21, 22, 23, 77, 0, 0, 24, 25, 26, + 27, 28, 0, 29, 30, 31, 32, 33, 34, 78, + 97, 79, 80, 35, 81, 82, 83, 84, 85, 86, + 0, 0, 0, 87, 88, 89, 90, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, - 44, 45, 46, 47, 48, 0, 49, 175, 176, 177, - 178, 0, 0, 0, 50, 179, 180, 181, 0, 0, - 182, 0, 0, 0, 0, 0, 51, 52, 53, 0, - 0, 0, 0, 54, 55, 0, 74, 56, 16, 0, - 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, - 136, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 0, 166, 167, 168, 169, 0, 0, 0, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 0, 49, - 0, 176, 177, 178, 0, 0, 0, 50, 179, 180, - 181, 0, 0, 182, 0, 0, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 54, 55, 0, 0, - 56, 16, 103, 17, 18, 19, 20, 21, 22, 23, - 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, - 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, - 0, 0, 0, 0, 0, 0, 166, -203, 168, 169, - 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, + 44, 45, 46, 47, 48, 91, 49, 0, 0, 0, + 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, + 0, 76, 0, 54, 55, 0, 0, 56, 92, 74, + 447, 16, 0, 17, 18, 19, 20, 21, 22, 23, + 77, 0, 0, 24, 25, 26, 27, 28, 0, 29, + 30, 31, 32, 33, 34, 78, 97, 79, 80, 35, + 81, 82, 83, 84, 85, 86, 0, 0, 0, 87, + 88, 89, 90, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, - 48, 0, 49, 0, 0, 177, 178, 0, 0, 0, - 50, 179, 180, 181, 0, 0, 182, 0, 0, 0, - 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, - 55, 0, 16, 56, 17, 18, 19, 20, 21, 22, - 23, 140, 0, 0, 24, 25, 26, 27, 28, 0, + 48, 91, 49, 0, 0, 0, 0, 0, 0, 0, + 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 52, 53, 0, 0, 76, 0, 54, + 55, 0, 0, 56, 92, 74, 0, 16, 0, 17, + 18, 19, 20, 21, 22, 23, 77, 0, 0, 24, + 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, + 34, 78, 97, 79, 80, 35, 81, 82, 83, 84, + 85, 86, 0, 0, 0, 87, 88, 89, 90, 36, + 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, + 0, 43, 44, 45, 46, 47, 48, 91, 49, 0, + 0, 459, 0, 0, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, + 53, 0, 0, 76, 0, 54, 55, 0, 0, 56, + 92, 74, 0, 16, 0, 17, 18, 19, 20, 21, + 22, 23, 77, 0, 0, 24, 25, 26, 27, 28, + 0, 29, 30, 31, 32, 33, 34, 78, 97, 79, + 80, 35, 81, 82, 83, 84, 85, 86, 0, 0, + 0, 87, 88, 89, 90, 36, 0, 37, 38, 39, + 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, + 46, 47, 48, 91, 49, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 52, 53, 0, 0, 76, + 0, 54, 55, 0, 0, 56, 92, 74, 0, 16, + 0, 17, 18, 19, 20, 21, 22, 23, 77, 0, + 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, + 32, 33, 34, 78, 0, 79, 80, 35, 81, 82, + 83, 84, 85, 86, 0, 0, 0, 87, 88, 89, + 90, 36, 0, 37, 38, 39, 40, 41, 42, 0, + 0, 0, 0, 43, 44, 45, 46, 47, 48, 91, + 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 52, 53, 76, 0, 0, 0, 54, 55, 0, + 0, 56, 92, 16, 0, 17, 18, 19, 20, 21, + 22, 23, -69, 0, 0, 24, 25, 26, 27, 28, + 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, + 0, 35, 0, 0, 168, 0, 0, 0, 0, 0, + 0, 169, 170, 171, 172, 36, 0, 37, 38, 39, + 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, + 46, 47, 48, 174, 49, 175, 176, 177, 178, 179, + 180, 181, 50, 0, 0, 0, 182, 183, 184, 0, + 0, 185, 0, 0, 51, 52, 53, 76, 0, 0, + 0, 54, 55, 0, 0, 56, 0, 16, 0, 17, + 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, + 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, + 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 169, 170, 171, 172, 36, + 0, 37, 38, 39, 40, 41, 42, 0, -170, 0, + 0, 43, 44, 45, 46, 47, 48, 187, 49, 188, + -170, 177, 178, 179, 180, 181, 50, 0, -170, 0, + 182, 183, 184, 0, 0, 185, 0, 0, 51, 52, + 53, 0, 0, 0, 0, 54, 55, 0, -69, 56, + -170, -170, -170, -170, 0, 0, 0, -170, 0, -170, + 0, 0, -170, 0, 0, 0, 0, 0, 0, -170, + -170, -170, -170, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -170, -170, -170, 0, -170, + -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, + 0, 0, 0, 0, -170, -170, -170, 0, 0, -170, + -170, 74, 0, 16, 0, 17, 18, 19, 20, 21, + 22, 23, 0, 0, 0, 130, 25, 26, 27, 28, + 108, 29, 30, 31, 32, 33, 34, 0, 0, 0, + 0, 35, 0, 0, -203, 0, 0, 0, 0, 0, + 0, 169, 170, 171, 172, 36, 0, 37, 38, 39, + 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, + 46, 47, 48, 0, 49, 175, 176, 177, 178, 179, + 180, 181, 50, 0, 0, 0, 182, 183, 184, 0, + 0, 185, 0, 0, 51, 52, 53, 0, 0, 0, + 0, 54, 55, 0, 74, 56, 16, 0, 17, 18, + 19, 20, 21, 22, 23, 0, 0, 0, 136, 25, + 26, 27, 28, 137, 29, 30, 31, 32, 33, 34, + 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 0, 169, 170, 171, 172, 0, 0, 0, 36, 0, + 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, + 43, 44, 45, 46, 47, 48, 0, 49, 178, 179, + 180, 181, 0, 0, 0, 50, 182, 183, 184, 0, + 0, 185, 0, 0, 0, 0, 0, 51, 52, 53, + 0, 0, 0, 0, 54, 55, 0, 74, 56, 16, + 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, + 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, + 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, + 0, 0, 0, 0, 169, -203, 171, 172, 0, 0, + 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, + 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, + 49, 0, 0, 180, 181, 0, 0, 0, 50, 182, + 183, 184, 0, 0, 185, 0, 0, 0, 0, 0, + 51, 52, 53, 0, 0, 0, 0, 54, 55, 0, + 0, 56, 16, 103, 17, 18, 19, 20, 21, 22, + 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 0, 166, 167, 168, - 169, 0, 0, 0, 36, 0, 37, 38, 39, 40, + 35, 0, 0, 0, 0, 0, 0, 169, 170, 171, + 172, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 0, 49, 0, 0, 177, 178, 0, 0, - 0, 50, 179, 180, 181, 0, 0, 182, 0, 0, + 47, 48, 0, 49, 0, 0, 180, 181, 0, 0, + 0, 50, 182, 183, 184, 0, 0, 185, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, 0, 16, 56, 17, 18, 19, 20, 21, - 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, + 22, 23, 142, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, -203, 0, - 168, 169, 0, 0, 0, 36, 0, 37, 38, 39, + 171, 172, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, - 46, 47, 48, 0, 49, 0, 0, 177, 178, 0, - 0, 0, 50, 179, 180, 181, 0, 0, 182, 0, + 46, 47, 48, 0, 49, 0, 0, 180, 181, 0, + 0, 0, 50, 182, 183, 184, 0, 0, 185, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, - 0, 54, 55, 0, 156, 56, 16, 0, 17, 18, + 0, 54, 55, 0, 16, 56, 17, 18, 19, 20, + 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, + 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 171, 172, 0, 0, 0, 36, 0, 37, 38, + 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, + 45, 46, 47, 48, 0, 49, 0, 0, 180, 181, + 0, 0, 0, 50, 182, 183, 184, 0, 0, 185, + 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 54, 55, 0, 159, 56, 16, 0, 17, + 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, + 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, + 34, 0, 0, 0, 0, 35, 211, 212, 213, 214, + 0, 0, 0, 215, 0, 216, 0, 0, 0, 36, + 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, + 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, + 0, 161, 162, 163, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, + 53, 0, 0, 0, 0, 54, 55, 0, 230, 56, + 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, + 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, + 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, + 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, + 0, 49, 0, 0, 0, 0, 0, 0, 0, 50, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, + 0, 240, 56, 16, 0, 17, 18, 19, 20, 21, + 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, + 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, + 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, + 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, + 46, 47, 48, 0, 49, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, + 0, 54, 55, 0, 252, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 168, 169, 0, 0, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, 0, - 177, 178, 0, 0, 0, 50, 179, 180, 181, 0, - 0, 182, 0, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 54, 55, 0, 229, 56, 16, + 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, + 0, 0, 0, 0, 54, 55, 0, 275, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, - 32, 33, 34, 0, 0, 0, 0, 35, 210, 211, - 212, 213, 0, 0, 0, 214, 0, 215, 0, 0, + 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, - 49, 0, 0, 158, 159, 160, 0, 0, 50, 0, + 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, 0, - 239, 56, 16, 0, 17, 18, 19, 20, 21, 22, + 315, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -680,7 +710,7 @@ static const yytype_int16 yytable[] = 47, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, - 54, 55, 0, 251, 56, 16, 0, 17, 18, 19, + 54, 55, 0, 317, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, @@ -689,240 +719,203 @@ static const yytype_int16 yytable[] = 44, 45, 46, 47, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, - 0, 0, 0, 54, 55, 0, 274, 56, 16, 0, + 0, 0, 0, 54, 55, 0, 330, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, 49, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 54, 55, 0, 314, - 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, - 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, - 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, - 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, - 48, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, - 55, 0, 316, 56, 16, 0, 17, 18, 19, 20, - 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, - 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, - 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, - 45, 46, 47, 48, 0, 49, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, - 0, 0, 54, 55, 0, 329, 56, 16, 0, 17, - 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, - 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, - 0, 0, 165, 0, 0, 0, 50, 0, 0, 166, - 167, 168, 169, 0, 0, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 54, 55, 0, 0, 56, - 170, 171, 326, 172, 173, 174, 175, 176, 177, 178, - 0, 0, 0, 165, 179, 180, 181, 0, 0, 182, - 166, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 168, 0, 0, 0, 50, 0, 0, + 169, 170, 171, 172, 0, 0, 0, 0, 0, 51, + 52, 53, 0, 0, 0, 0, 54, 55, 0, 0, + 56, 173, 174, 327, 175, 176, 177, 178, 179, 180, + 181, 0, 0, 0, 168, 182, 183, 184, 0, 0, + 185, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 171, 0, 172, 173, 174, 175, 176, 177, - 178, 0, 0, 0, 0, 179, 180, 181, 0, 0, - 182 + 0, 0, 173, 174, 0, 175, 176, 177, 178, 179, + 180, 181, 0, 0, 0, 0, 182, 183, 184, 0, + 0, 185 }; static const yytype_int16 yycheck[] = { - 10, 11, 12, 15, 9, 12, 116, 42, 127, 11, - 408, 16, 292, 387, 91, 50, 9, 0, 11, 9, - 15, 19, 20, 21, 22, 23, 11, 25, 26, 296, - 20, 41, 142, 9, 44, 11, 15, 16, 17, 15, - 45, 74, 9, 9, 42, 43, 44, 9, 24, 11, - 48, 56, 292, 20, 294, 295, 103, 431, 456, 9, - 20, 11, 20, 21, 22, 23, 26, 25, 26, 362, - 77, 78, 79, 81, 341, 70, 103, 12, 23, 20, - 90, 116, 12, 28, 42, 43, 9, 97, 11, 87, - 383, 101, 102, 81, 102, 97, 17, 18, 288, 134, - 290, 23, 221, 77, 78, 79, 23, 142, 103, 12, - 103, 32, 122, 9, 119, 36, 193, 46, 47, 359, - 41, 126, 127, 44, 103, 12, 47, 103, 49, 127, - 51, 52, 53, 54, 55, 12, 77, 78, 79, 144, - 103, 103, 77, 78, 79, 20, 103, 77, 78, 79, - 390, 103, 12, 158, 159, 160, 12, 162, 163, 164, - 103, 441, 48, 196, 197, 198, 199, 200, 201, 127, - 203, 204, 103, 410, 77, 78, 79, 189, 183, 184, - 185, 186, 187, 188, 182, 422, 423, 222, 103, 103, - 77, 78, 79, 103, 103, 432, 103, 207, 308, 439, - 77, 78, 79, 440, 103, 210, 211, 212, 213, 214, - 215, 102, 331, 26, 102, 10, 221, 77, 78, 79, - 103, 77, 78, 79, 97, 98, 73, 232, 101, 234, - 235, 11, 42, 43, 44, 45, 23, 20, 243, 49, - 161, 51, 23, 73, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 103, - 293, 20, 102, 268, 269, 10, 271, 77, 78, 79, - 63, 281, 26, 308, 11, 385, 79, 20, 103, 0, - 20, 23, 287, 288, 289, 290, 21, 292, 20, 294, - 295, 12, 102, 291, 77, 78, 79, 15, 91, 20, - 310, 102, 26, 96, 97, 98, 339, 10, 101, 342, - 3, 4, 5, 6, 7, 8, 10, 322, 77, 78, - 79, 42, 43, 44, 45, 10, 331, 10, 49, 102, - 51, 23, 102, 54, 77, 78, 79, 77, 78, 79, - 61, 62, 63, 64, 102, 77, 78, 79, 103, 102, - 385, 102, 20, 102, 359, 102, 77, 78, 79, 10, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 77, 78, 79, 102, 96, 97, 98, 20, 9, - 101, 102, 102, 63, 64, 390, 396, 392, 75, 20, - 402, 401, 389, 102, 391, 20, 102, 394, 395, 77, - 78, 79, 103, 22, 74, 326, 102, 404, 405, 12, - 420, 91, 424, 102, 392, 412, 96, 97, 98, 9, - 97, 101, 441, 35, 102, 15, 401, 437, 425, 206, - 48, 48, 429, 23, 439, 0, 1, -1, 28, 451, - -1, -1, -1, -1, 9, 455, 11, -1, 13, 14, - 15, 16, 17, 18, 19, 20, 453, 454, 23, 24, - 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, -1, -1, -1, 49, 50, 51, 52, 53, -1, - 55, 56, 57, 58, 59, 60, 77, 78, 79, -1, - 65, 66, 67, 68, 69, 70, 71, 72, 77, 78, - 79, 77, 78, 79, -1, 80, 77, 78, 79, -1, - -1, 102, -1, -1, -1, -1, -1, 92, 93, 94, - -1, 0, 1, 102, 99, 100, 102, -1, 103, 104, - 9, 102, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, 77, 78, 79, -1, 65, 66, 67, 68, - 69, 70, 71, 72, 77, 78, 79, 77, 78, 79, - -1, 80, -1, 96, 97, 98, -1, 102, 101, -1, - -1, -1, -1, 92, 93, 94, -1, -1, 1, 102, - 99, 100, 102, -1, 103, 104, 9, 10, 11, -1, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - -1, -1, -1, 91, -1, -1, -1, 80, 96, 97, - 98, -1, -1, 101, -1, -1, -1, -1, -1, 92, - 93, 94, -1, -1, 1, -1, 99, 100, -1, -1, - 103, 104, 9, 10, 11, -1, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, - 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, - -1, -1, 49, 50, 51, 52, 53, -1, 55, 56, - 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, - 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, - -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, - 1, -1, 99, 100, -1, -1, 103, 104, 9, 10, - 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, -1, -1, -1, 49, 50, - 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, - -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, 72, -1, -1, -1, -1, -1, -1, -1, 80, + 10, 11, 12, 15, 9, 46, 116, 42, 127, 11, + 293, 16, 12, 74, 91, 50, 15, 16, 17, 15, + 409, 19, 20, 21, 22, 23, 297, 25, 26, 388, + 20, 41, 46, 47, 44, 145, 26, 81, 9, 80, + 45, 9, 0, 11, 42, 43, 44, 15, 363, 20, + 48, 56, 9, 9, 11, 11, 24, 293, 102, 295, + 296, 20, 21, 22, 23, 9, 25, 26, 457, 384, + 23, 342, 9, 432, 70, 28, 20, 77, 78, 79, + 90, 116, 11, 42, 43, 12, 9, 97, 11, 87, + 103, 101, 102, 81, 9, 97, 17, 18, 12, 134, + 77, 78, 79, 222, 103, 12, 23, 103, 12, 103, + 145, 32, 122, 48, 119, 36, 9, 194, 11, 20, + 41, 126, 127, 44, 360, 12, 47, 103, 49, 127, + 51, 52, 53, 54, 55, 103, 197, 198, 199, 200, + 201, 202, 147, 204, 205, 20, 103, 103, 103, 12, + 77, 78, 79, 12, 103, 391, 161, 162, 163, 442, + 165, 166, 167, 77, 78, 79, 207, 20, 127, 103, + 77, 78, 79, 77, 78, 79, 77, 78, 79, 20, + 192, 186, 187, 188, 189, 190, 191, 185, 223, 102, + 77, 78, 79, 103, 289, 91, 291, 103, 208, 309, + 96, 97, 98, 103, 440, 101, 211, 212, 213, 214, + 215, 216, 103, 332, 77, 78, 79, 222, 77, 78, + 79, 77, 78, 79, 77, 78, 79, 103, 233, 103, + 235, 236, 103, 294, 26, 102, 77, 78, 79, 244, + 20, 103, 103, 164, 10, 73, 102, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 20, 11, 269, 270, 23, 272, 42, 43, + 44, 45, 282, 23, 309, 49, 386, 51, 20, 340, + 0, 103, 343, 288, 289, 290, 291, 73, 293, 102, + 295, 296, 12, 10, 292, 26, 11, 77, 78, 79, + 20, 311, 79, 77, 78, 79, 103, 77, 78, 79, + 61, 62, 63, 64, 21, 23, 15, 102, 323, 77, + 78, 79, 42, 43, 44, 45, 26, 332, 102, 49, + 10, 51, 102, 10, 54, 77, 78, 79, 89, 90, + 91, 61, 62, 63, 64, 96, 97, 98, 97, 98, + 101, 386, 101, 10, 10, 360, 23, 77, 78, 79, + 103, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 77, 78, 79, 102, 96, 97, 98, 102, + 102, 101, 102, 102, 63, 64, 391, 397, 393, 102, + 20, 403, 402, 390, 10, 392, 102, 102, 395, 396, + 102, 102, 411, 20, 9, 102, 327, 75, 405, 406, + 20, 421, 91, 425, 423, 424, 413, 96, 97, 98, + 9, 102, 101, 20, 433, 103, 15, 22, 438, 426, + 74, 102, 441, 430, 23, 440, 0, 1, 102, 28, + 452, 12, 97, 393, 35, 9, 456, 11, 402, 13, + 14, 15, 16, 17, 18, 19, 20, 454, 455, 23, + 24, 25, 26, 27, 442, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 48, 48, 63, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, + -1, 65, 66, 67, 68, 69, 70, 71, 72, 77, + 78, 79, 91, -1, -1, -1, 80, 96, 97, 98, + -1, -1, 101, -1, -1, -1, -1, -1, 92, 93, + 94, -1, 0, 1, 102, 99, 100, -1, -1, 103, + 104, 9, -1, 11, -1, 13, 14, 15, 16, 17, + 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, + -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, + -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, 77, 78, 79, -1, 65, 66, 67, + 68, 69, 70, 71, 72, 77, 78, 79, 77, 78, + 79, -1, 80, -1, -1, 77, 78, 79, 102, -1, + -1, -1, -1, -1, 92, 93, 94, -1, -1, 1, + 102, 99, 100, 102, -1, 103, 104, 9, 10, 11, + 102, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, 77, + 78, 79, -1, 65, 66, 67, 68, 69, 70, 71, + 72, 3, 4, 5, 6, 7, 8, -1, 80, -1, + 96, 97, 98, -1, 102, 101, -1, -1, -1, -1, + 92, 93, 94, -1, -1, 1, -1, 99, 100, -1, + -1, 103, 104, 9, 10, 11, -1, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, + 26, 27, -1, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + -1, -1, -1, 49, 50, 51, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, + 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, + -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 92, 93, 94, -1, + -1, 1, -1, 99, 100, -1, -1, 103, 104, 9, + 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, + 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, -1, -1, -1, 49, + 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, + 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, + 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 92, 93, 94, -1, -1, 1, -1, 99, + 100, -1, -1, 103, 104, 9, -1, 11, -1, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, + 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, + -1, 65, 66, 67, 68, 69, 70, 71, 72, -1, + -1, 75, -1, -1, -1, -1, 80, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, + 94, -1, -1, 1, -1, 99, 100, -1, -1, 103, + 104, 9, -1, 11, -1, 13, 14, 15, 16, 17, + 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, + -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, + -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, + -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 92, 93, 94, -1, -1, 1, + -1, 99, 100, -1, -1, 103, 104, 9, -1, 11, + -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, + 32, 33, 34, 35, -1, 37, 38, 39, 40, 41, + 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, -1, -1, 1, -1, 99, 100, - -1, -1, 103, 104, 9, -1, 11, -1, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, 23, 24, - 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, -1, -1, -1, 49, 50, 51, 52, 53, -1, - 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, - 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, - 75, -1, -1, -1, -1, 80, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, - -1, -1, 1, -1, 99, 100, -1, -1, 103, 104, - 9, -1, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, - -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 92, 93, 94, -1, -1, 1, -1, - 99, 100, -1, -1, 103, 104, 9, -1, 11, -1, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, 35, -1, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, - -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - 93, 94, 1, -1, -1, -1, 99, 100, -1, -1, - 103, 104, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - 39, -1, -1, 54, -1, -1, -1, -1, -1, -1, - 61, 62, 63, 64, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 83, 72, 85, 86, 87, 88, 89, 90, - 91, 80, -1, -1, -1, 96, 97, 98, -1, -1, - 101, -1, -1, 92, 93, 94, 1, -1, -1, -1, - 99, 100, -1, -1, 103, -1, 11, -1, 13, 14, + 92, 93, 94, 1, -1, -1, -1, 99, 100, -1, + -1, 103, 104, 11, -1, 13, 14, 15, 16, 17, + 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, + -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, 39, -1, -1, 54, -1, -1, -1, -1, -1, + -1, 61, 62, 63, 64, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, 83, 72, 85, 86, 87, 88, 89, + 90, 91, 80, -1, -1, -1, 96, 97, 98, -1, + -1, 101, -1, -1, 92, 93, 94, 1, -1, -1, + -1, 99, 100, -1, -1, 103, -1, 11, -1, 13, + 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, + 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, 62, 63, 64, 53, + -1, 55, 56, 57, 58, 59, 60, -1, 0, -1, + -1, 65, 66, 67, 68, 69, 70, 9, 72, 11, + 12, 87, 88, 89, 90, 91, 80, -1, 20, -1, + 96, 97, 98, -1, -1, 101, -1, -1, 92, 93, + 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, + 42, 43, 44, 45, -1, -1, -1, 49, -1, 51, + -1, -1, 54, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + -1, -1, -1, -1, 96, 97, 98, -1, -1, 101, + 102, 9, -1, 11, -1, 13, 14, 15, 16, 17, + 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, 39, -1, -1, 54, -1, -1, -1, -1, -1, + -1, 61, 62, 63, 64, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, -1, 72, 85, 86, 87, 88, 89, + 90, 91, 80, -1, -1, -1, 96, 97, 98, -1, + -1, 101, -1, -1, 92, 93, 94, -1, -1, -1, + -1, 99, 100, -1, 9, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, - 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 61, 62, 63, 64, 53, -1, - 55, 56, 57, 58, 59, 60, -1, 0, -1, -1, - 65, 66, 67, 68, 69, 70, 9, 72, 11, 12, - 87, 88, 89, 90, 91, 80, -1, 20, -1, 96, - 97, 98, -1, -1, 101, -1, -1, 92, 93, 94, - -1, -1, -1, -1, 99, 100, -1, 102, 103, 42, - 43, 44, 45, -1, -1, -1, 49, -1, 51, -1, - -1, 54, -1, -1, -1, -1, -1, -1, 61, 62, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 77, 78, 79, -1, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, -1, - -1, -1, -1, 96, 97, 98, -1, -1, 101, 102, - 9, -1, 11, -1, 13, 14, 15, 16, 17, 18, - 19, -1, -1, -1, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - 39, -1, -1, 54, -1, -1, -1, -1, -1, -1, - 61, 62, 63, 64, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, -1, 72, 85, 86, 87, 88, 89, 90, - 91, 80, -1, -1, -1, 96, 97, 98, -1, -1, - 101, -1, -1, 92, 93, 94, -1, -1, -1, -1, - 99, 100, -1, 9, 103, 11, -1, 13, 14, 15, - 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, - 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - 61, 62, 63, 64, -1, -1, -1, 53, -1, 55, - 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 70, -1, 72, 88, 89, 90, - 91, -1, -1, -1, 80, 96, 97, 98, -1, -1, - 101, -1, -1, -1, -1, -1, 92, 93, 94, -1, - -1, -1, -1, 99, 100, -1, 9, 103, 11, -1, - 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, - -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, -1, 72, - -1, 89, 90, 91, -1, -1, -1, 80, 96, 97, - 98, -1, -1, 101, -1, -1, -1, -1, -1, 92, - 93, 94, -1, -1, -1, -1, 99, 100, -1, -1, - 103, 11, 12, 13, 14, 15, 16, 17, 18, 19, - -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, - 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, - 70, -1, 72, -1, -1, 90, 91, -1, -1, -1, - 80, 96, 97, 98, -1, -1, 101, -1, -1, -1, - -1, -1, 92, 93, 94, -1, -1, -1, -1, 99, - 100, -1, 11, 103, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, + -1, 61, 62, 63, 64, -1, -1, -1, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, 67, 68, 69, 70, -1, 72, 88, 89, + 90, 91, -1, -1, -1, 80, 96, 97, 98, -1, + -1, 101, -1, -1, -1, -1, -1, 92, 93, 94, + -1, -1, -1, -1, 99, 100, -1, 9, 103, 11, + -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, + -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, 61, 62, 63, 64, -1, -1, + -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, + 72, -1, -1, 90, 91, -1, -1, -1, 80, 96, + 97, 98, -1, -1, 101, -1, -1, -1, -1, -1, + 92, 93, 94, -1, -1, -1, -1, 99, 100, -1, + -1, 103, 11, 12, 13, 14, 15, 16, 17, 18, + 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, @@ -931,7 +924,7 @@ static const yytype_int16 yycheck[] = -1, 80, 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, -1, -1, 99, 100, -1, 11, 103, 13, 14, 15, 16, 17, - 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, + 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 61, -1, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, @@ -939,23 +932,60 @@ static const yytype_int16 yycheck[] = 68, 69, 70, -1, 72, -1, -1, 90, 91, -1, -1, -1, 80, 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, -1, + -1, 99, 100, -1, 11, 103, 13, 14, 15, 16, + 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, + 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 63, 64, -1, -1, -1, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, + 67, 68, 69, 70, -1, 72, -1, -1, 90, 91, + -1, -1, -1, 80, 96, 97, 98, -1, -1, 101, + -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, + -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, + 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, + 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, 39, 42, 43, 44, 45, + -1, -1, -1, 49, -1, 51, -1, -1, -1, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, + -1, 65, 66, 67, 68, 69, 70, -1, 72, -1, + -1, 77, 78, 79, -1, -1, 80, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, + 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, + 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, + -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, + -1, 72, -1, -1, -1, -1, -1, -1, -1, 80, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 92, 93, 94, -1, -1, -1, -1, 99, 100, + -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, + 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, + -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, -1, 72, -1, -1, -1, -1, -1, + -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 92, 93, 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, - -1, -1, -1, 63, 64, -1, -1, -1, 53, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, 72, -1, -1, - 90, 91, -1, -1, -1, 80, 96, 97, 98, -1, - -1, 101, -1, -1, -1, -1, -1, 92, 93, 94, + -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, 39, 42, 43, - 44, 45, -1, -1, -1, 49, -1, 51, -1, -1, + 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, - 72, -1, -1, 77, 78, 79, -1, -1, 80, -1, + 72, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, 18, @@ -983,44 +1013,16 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, 72, - -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - 93, 94, -1, -1, -1, -1, 99, 100, -1, 102, - 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, - -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, - 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, - 70, -1, 72, -1, -1, -1, -1, -1, -1, -1, - 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 92, 93, 94, -1, -1, -1, -1, 99, - 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, - 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, - 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 53, -1, 55, 56, - 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, - 67, 68, 69, 70, -1, 72, -1, -1, -1, -1, - -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 92, 93, 94, -1, -1, - -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, - 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, - 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, - -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, -1, 72, -1, - -1, -1, 54, -1, -1, -1, 80, -1, -1, 61, - 62, 63, 64, -1, -1, -1, -1, -1, 92, 93, - 94, -1, -1, -1, -1, 99, 100, -1, -1, 103, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - -1, -1, -1, 54, 96, 97, 98, -1, -1, 101, - 61, 62, 63, 64, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 54, -1, -1, -1, 80, -1, -1, + 61, 62, 63, 64, -1, -1, -1, -1, -1, 92, + 93, 94, -1, -1, -1, -1, 99, 100, -1, -1, + 103, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, -1, -1, -1, 54, 96, 97, 98, -1, -1, + 101, 61, 62, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, 83, -1, 85, 86, 87, 88, 89, 90, - 91, -1, -1, -1, -1, 96, 97, 98, -1, -1, - 101 + -1, -1, 82, 83, -1, 85, 86, 87, 88, 89, + 90, 91, -1, -1, -1, -1, 96, 97, 98, -1, + -1, 101 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1040,39 +1042,40 @@ static const yytype_uint8 yystos[] = 122, 118, 118, 12, 147, 157, 157, 23, 28, 113, 165, 170, 170, 170, 170, 170, 170, 170, 158, 11, 103, 157, 140, 140, 157, 103, 103, 103, 113, 157, - 23, 148, 161, 165, 170, 170, 23, 113, 157, 165, - 20, 147, 23, 157, 103, 160, 165, 166, 167, 157, - 148, 157, 157, 157, 157, 157, 102, 147, 77, 78, - 79, 81, 9, 11, 103, 54, 61, 62, 63, 64, - 82, 83, 85, 86, 87, 88, 89, 90, 91, 96, - 97, 98, 101, 103, 9, 11, 9, 11, 9, 115, - 141, 23, 28, 142, 23, 139, 103, 103, 103, 103, - 70, 103, 165, 103, 103, 113, 139, 48, 130, 20, - 42, 43, 44, 45, 49, 51, 121, 122, 120, 12, - 161, 103, 103, 147, 102, 113, 26, 143, 102, 102, - 147, 162, 170, 148, 103, 103, 10, 20, 161, 102, - 147, 73, 145, 11, 102, 147, 147, 147, 157, 147, - 147, 102, 147, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 9, 11, - 24, 103, 151, 165, 102, 147, 147, 147, 147, 147, - 147, 118, 23, 138, 139, 23, 124, 115, 115, 115, - 115, 115, 115, 103, 115, 115, 142, 113, 147, 134, - 147, 147, 147, 147, 147, 162, 148, 12, 150, 73, - 144, 102, 102, 147, 102, 147, 102, 147, 10, 102, - 26, 147, 11, 20, 12, 102, 84, 147, 147, 102, - 147, 103, 102, 20, 12, 20, 12, 20, 10, 21, - 114, 123, 9, 20, 23, 133, 147, 134, 135, 147, - 134, 137, 163, 165, 128, 132, 135, 136, 147, 115, - 135, 135, 143, 102, 102, 161, 26, 113, 102, 102, - 102, 12, 147, 10, 157, 20, 12, 102, 162, 10, - 10, 10, 115, 143, 115, 23, 102, 102, 102, 102, - 103, 102, 20, 135, 102, 102, 144, 12, 10, 102, - 20, 144, 125, 161, 131, 131, 9, 116, 116, 135, - 116, 133, 102, 116, 116, 20, 113, 146, 75, 146, - 118, 20, 116, 116, 117, 46, 47, 129, 129, 102, - 130, 20, 116, 119, 10, 130, 130, 118, 116, 103, - 116, 131, 130, 20, 26, 126, 10, 135, 130, 136, - 22, 74, 127, 102, 102, 118, 116, 116, 75, 129 + 23, 148, 161, 165, 170, 170, 23, 28, 113, 142, + 157, 165, 20, 147, 23, 142, 157, 103, 160, 165, + 166, 167, 157, 148, 157, 157, 157, 157, 157, 102, + 147, 77, 78, 79, 81, 9, 11, 103, 54, 61, + 62, 63, 64, 82, 83, 85, 86, 87, 88, 89, + 90, 91, 96, 97, 98, 101, 103, 9, 11, 9, + 11, 9, 115, 141, 142, 23, 139, 103, 103, 103, + 103, 70, 103, 165, 103, 103, 113, 139, 48, 130, + 20, 42, 43, 44, 45, 49, 51, 121, 122, 120, + 12, 161, 103, 103, 147, 102, 113, 26, 143, 102, + 102, 147, 162, 170, 148, 103, 103, 10, 20, 161, + 102, 147, 73, 145, 11, 102, 147, 147, 147, 157, + 147, 147, 102, 147, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 9, + 11, 24, 103, 151, 165, 102, 147, 147, 147, 147, + 147, 147, 118, 23, 138, 139, 23, 124, 115, 115, + 115, 115, 115, 115, 103, 115, 115, 142, 113, 147, + 134, 147, 147, 147, 147, 147, 162, 148, 12, 150, + 73, 144, 102, 102, 147, 102, 147, 102, 147, 10, + 102, 26, 147, 11, 20, 12, 102, 84, 147, 147, + 102, 147, 103, 102, 20, 12, 20, 12, 20, 10, + 21, 114, 123, 9, 20, 23, 133, 147, 134, 135, + 147, 134, 137, 163, 165, 128, 132, 135, 136, 147, + 115, 135, 135, 143, 102, 102, 161, 26, 113, 102, + 102, 102, 12, 147, 10, 157, 20, 12, 102, 162, + 10, 10, 10, 115, 143, 115, 23, 102, 102, 102, + 102, 103, 102, 20, 135, 102, 102, 144, 12, 10, + 102, 20, 144, 125, 161, 131, 131, 9, 116, 116, + 135, 116, 133, 102, 116, 116, 20, 113, 146, 75, + 146, 118, 20, 116, 116, 117, 46, 47, 129, 129, + 102, 130, 20, 116, 119, 10, 130, 130, 118, 116, + 103, 116, 131, 130, 20, 26, 126, 10, 135, 130, + 136, 22, 74, 127, 102, 102, 118, 116, 116, 75, + 129 }; typedef enum { @@ -1110,6 +1113,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * a216aadb9729f2e06283be0b4e7f08adc1209abb0bb9b50c453be450c6104a81 perly.y + * 46a0f37bedef614c67088ca538be1a60acad74ce92b27d0244bd16b23eb7fd8d perly.y * 4a3ced51fe6585f6ec59e65e1ffd74bc976c498b0e6992eaab337219fee72e51 regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index 72065cf..0b94075 100644 --- a/perly.y +++ b/perly.y @@ -1108,7 +1108,7 @@ termdo : DO term %prec UNIOP /* do $filename */ { $$ = newUNOP(OP_NULL, OPf_SPECIAL, op_scope($2)); TOKEN_GETMAD($1,$$,'D'); } - | DO WORD '(' ')' /* do somesub() */ + | DO subname '(' ')' /* do somesub() */ { $$ = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_prepend_elem(OP_LIST, @@ -1120,7 +1120,7 @@ termdo : DO term %prec UNIOP /* do $filename */ TOKEN_GETMAD($3,$$,'('); TOKEN_GETMAD($4,$$,')'); } - | DO WORD '(' expr ')' /* do somesub(@args) */ + | DO subname '(' expr ')' /* do somesub(@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_append_elem(OP_LIST, @@ -1238,7 +1238,7 @@ term : termbinop token_getmad($4,op,')'); }) } - | NOAMP WORD optlistexpr /* foo(@args) */ + | NOAMP subname optlistexpr /* foo(@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, $3, scalar($2))); TOKEN_GETMAD($1,$$,'o'); diff --git a/toke.c b/toke.c index f93d96e..cca84cc 100644 --- a/toke.c +++ b/toke.c @@ -6602,12 +6602,18 @@ Perl_yylex(pTHX) bool lex; I32 tmp; SV *sv; + CV *cv; + PADOFFSET off; + OP *rv2cv_op; lex = FALSE; orig_keyword = 0; + off = 0; sv = NULL; + cv = NULL; gv = NULL; gvp = NULL; + rv2cv_op = NULL; PL_bufptr = s; s = scan_word(s, PL_tokenbuf, sizeof PL_tokenbuf, FALSE, &len); @@ -6677,11 +6683,11 @@ Perl_yylex(pTHX) /* Check for lexical sub */ if (PL_expect != XOPERATOR) { char tmpbuf[sizeof PL_tokenbuf + 1]; - PADOFFSET off; *tmpbuf = '&'; Copy(PL_tokenbuf, tmpbuf+1, len, char); off = pad_findmy_pvn(tmpbuf, len+1, UTF ? SVf_UTF8 : 0); if (off != NOT_IN_PAD) { + assert(off); /* we assume this is boolean-true below */ if (PAD_COMPNAME_FLAGS_isOUR(off)) { HV * const stash = PAD_COMPNAME_OURSTASH(off); HEK * const stashname = HvNAME_HEK(stash); @@ -6691,12 +6697,18 @@ Perl_yylex(pTHX) (UTF ? SV_CATUTF8 : SV_CATBYTES)); gv = gv_fetchsv(sv, GV_NOADD_NOINIT | SvUTF8(sv), SVt_PVCV); - lex = TRUE; - goto just_a_word; + off = 0; + } + else { + rv2cv_op = newOP(OP_PADANY, 0); + rv2cv_op->op_targ = off; + rv2cv_op = (OP*)newCVREF(0, rv2cv_op); + cv = (CV *)PAD_SV(off); } - /* unreachable */ - else Perl_croak(aTHX_ "\"my sub\" not yet implemented"); + lex = TRUE; + goto just_a_word; } + off = 0; } if (tmp < 0) { /* second-class keyword? */ @@ -6758,8 +6770,11 @@ Perl_yylex(pTHX) earlier ':' case doesn't bypass the initialisation. */ if (0) { just_a_word_zero_gv: + sv = NULL; + cv = NULL; gv = NULL; gvp = NULL; + rv2cv_op = NULL; orig_keyword = 0; lex = 0; off = 0; @@ -6767,8 +6782,6 @@ Perl_yylex(pTHX) just_a_word: { int pkgname = 0; const char lastchar = (PL_bufptr == PL_oldoldbufptr ? 0 : PL_bufptr[-1]); - OP *rv2cv_op; - CV *cv; #ifdef PERL_MAD SV *nextPL_nextwhite = 0; #endif @@ -6800,7 +6813,8 @@ Perl_yylex(pTHX) } /* Look for a subroutine with this name in current package, - unless name is "Foo::", in which case Foo is a bareword + unless this is a lexical sub, or name is "Foo::", + in which case Foo is a bareword (and a package name). */ if (len > 2 && !PL_madskills && @@ -6818,7 +6832,7 @@ Perl_yylex(pTHX) gvp = 0; } else { - if (!gv) { + if (!lex && !gv) { /* Mustn't actually add anything to a symbol table. But also don't want to "initialise" any placeholder constants that might already be there into full @@ -6832,7 +6846,7 @@ Perl_yylex(pTHX) /* if we saw a global override before, get the right name */ - if (!lex) + if (!sv) sv = S_newSV_maybe_utf8(aTHX_ PL_tokenbuf, len ? len : strlen(PL_tokenbuf)); if (gvp) { @@ -6859,12 +6873,13 @@ Perl_yylex(pTHX) if (len) goto safe_bareword; + if (!off) { OP *const_op = newSVOP(OP_CONST, 0, SvREFCNT_inc_NN(sv)); const_op->op_private = OPpCONST_BARE; rv2cv_op = newCVREF(0, const_op); + cv = lex ? GvCV(gv) : rv2cv_op_cv(rv2cv_op, 0); } - cv = lex ? GvCV(gv) : rv2cv_op_cv(rv2cv_op, 0); /* See if it's the indirect object for a list operator. */ @@ -6951,7 +6966,8 @@ Perl_yylex(pTHX) } start_force(PL_curforce); #endif - NEXTVAL_NEXTTOKE.opval = pl_yylval.opval; + NEXTVAL_NEXTTOKE.opval = + off ? rv2cv_op : pl_yylval.opval; PL_expect = XOPERATOR; #ifdef PERL_MAD if (PL_madskills) { @@ -6960,8 +6976,9 @@ Perl_yylex(pTHX) PL_thistoken = newSVpvs(""); } #endif - op_free(rv2cv_op); - force_next(WORD); + if (off) + op_free(pl_yylval.opval), force_next(PRIVATEREF); + else op_free(rv2cv_op), force_next(WORD); pl_yylval.ival = 0; TOKEN('&'); } @@ -7076,7 +7093,7 @@ Perl_yylex(pTHX) curmad('X', PL_thistoken); PL_thistoken = newSVpvs(""); } - force_next(WORD); + force_next(off ? PRIVATEREF : WORD); if (!PL_lex_allbrackets && PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC) PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC; @@ -7119,7 +7136,7 @@ Perl_yylex(pTHX) PL_nextwhite = nextPL_nextwhite; curmad('X', PL_thistoken); PL_thistoken = newSVpvs(""); - force_next(WORD); + force_next(off ? PRIVATEREF : WORD); if (!PL_lex_allbrackets && PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC) PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC; @@ -7128,7 +7145,7 @@ Perl_yylex(pTHX) #else NEXTVAL_NEXTTOKE.opval = pl_yylval.opval; PL_expect = XTERM; - force_next(WORD); + force_next(off ? PRIVATEREF : WORD); if (!PL_lex_allbrackets && PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC) PL_lex_fakeeof = LEX_FAKEEOF_LOWLOGIC; -- 2.7.4