+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
+{
+ -1, 13, 14, 15, 16, 17, 102, 50, 51, 52,
+ 185, 186, 187, 53, 54, 223, 55, 159, 216, 306,
+ 312, 217, 117, 72, 115, 228, 90, 91, 92, 93,
+ 128, 134, 135, 136, 235, 202, 56, 338, 361, 229,
+ 230, 231, 232, 382, 383, 18, 59, 60, 19, 64,
+ 20, 62, 362
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -360
+static const yytype_int16 yypact[] =
+{
+ 162, -2, 6, -360, -360, -360, -360, -360, -360, -360,
+ -360, 16, 90, 131, -360, 162, 210, 77, -360, -360,
+ -360, 156, 126, 160, 167, -360, -360, 210, -360, -360,
+ -360, 210, 161, 223, 153, 230, 231, 210, 226, -360,
+ -360, -360, -360, 244, 207, 309, 207, 214, -360, -360,
+ 192, -360, 292, -360, -360, -360, -360, 215, 242, -28,
+ -360, -360, 151, -360, 152, 255, 300, 310, 292, -360,
+ 319, 330, 336, 376, -360, -360, -360, -360, -360, -360,
+ -360, -360, -360, -360, -360, -360, 351, 444, 393, 338,
+ 295, -360, 458, 360, 327, 365, -360, -360, 393, 207,
+ 377, 384, -360, 7, 392, 92, 399, 98, 409, 100,
+ -360, 379, 428, 394, 390, 395, 397, 447, 472, -360,
+ -360, 448, -360, 472, -360, 449, 423, 5, -360, 472,
+ -360, 476, 149, 463, -360, 393, -360, 433, 473, 475,
+ 58, 184, -360, -360, -360, 477, -360, 436, 478, -360,
+ 437, -360, 479, 439, -360, 480, 159, 445, 236, -4,
+ 330, -360, 484, 450, -360, 451, 410, 295, -360, -360,
+ 452, 485, 486, -360, 69, -360, 487, 393, 453, 69,
+ 393, 115, -3, 410, 18, 454, 492, 456, 117, 455,
+ 459, 488, 215, -360, -360, 457, -360, 460, -360, 462,
+ 494, -360, -360, -360, 464, 465, 466, 467, 468, 469,
+ 470, 471, 474, 481, 482, 483, 185, -360, 489, -360,
+ -360, 393, 493, 503, 410, 427, 490, 8, 504, 491,
+ -360, 495, -360, -360, -360, 212, -360, -360, 496, 513,
+ 410, 514, -360, 511, 498, 497, 512, -360, -360, 115,
+ -360, -360, 120, 215, 215, 215, 121, -360, -360, -360,
+ -360, -360, 110, 110, 7, 7, 63, 330, 393, 119,
+ 202, 235, 274, 333, -360, 236, 515, 500, 501, 499,
+ 502, 289, 290, 393, -8, 518, 359, -360, 519, 410,
+ 505, 506, 508, -360, -360, 518, -360, 509, 215, -360,
+ -360, -360, 510, 215, 516, -360, -360, -360, -360, -360,
+ 516, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+ -360, -360, -360, -360, -360, -360, -360, 13, -360, -360,
+ 521, 518, 393, 393, -360, 517, 527, 70, 159, -360,
+ -360, -360, 520, 410, 518, 410, 159, 215, -360, 215,
+ -360, 529, 522, -360, 65, 159, -360, -360, 528, 32,
+ 526, 532, -360, -360, 518, 523, 159, 524, -360, -360,
+ -360, 525, 539, 530, -360, -360, 32, -360, 531, 27,
+ 83, 533, 56, -360, -360, 70, 159, 518, -360, 518,
+ -360, 507, 545, 81, 7, 7, -360, 7, -360, 7,
+ -360, -360, 551, -360, 159, 159, -360, 535, -360, -360,
+ -360, -360, -360, 70, -360, -360, -360, -360
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const yytype_int16 yypgoto[] =
+{
+ -360, -360, 21, 15, 537, -360, -190, -360, 534, -27,
+ 354, 386, 398, -360, -360, -360, -360, -360, -360, -90,
+ -360, 297, -360, -37, -155, -44, -360, -70, -360, -67,
+ -23, 440, -360, -5, -360, -326, 85, -288, -278, -179,
+ -262, -360, 301, 199, -359, 237, -360, 536, 238, -360,
+ 322, -360, -103
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -160
+static const yytype_int16 yytable[] =
+{
+ 146, 89, 257, 120, 245, 220, 121, 346, 100, 94,
+ 167, 68, 363, 282, 335, 218, 181, 124, 88, 21,
+ 368, 334, 130, 401, 112, 22, 142, 143, 104, 375,
+ 144, 31, 352, 105, 401, 23, 26, 142, 143, 68,
+ 388, 144, 37, 355, 125, 280, 142, 143, 120, 336,
+ 144, 377, 26, 120, 138, 219, 366, 184, 26, 120,
+ 403, 291, 139, 299, 300, 301, -157, 133, 127, 283,
+ 356, 357, 353, 246, 145, 377, 386, 181, 414, 415,
+ 182, 247, 310, 143, 373, 145, 144, 395, 170, 142,
+ 143, 176, 378, 144, 145, 305, 379, 380, 381, 404,
+ 377, 405, 142, 143, 168, 172, 144, 402, 348, 24,
+ 342, 58, 314, 350, 400, 183, 378, 151, 184, 154,
+ 379, 380, 381, 69, 374, 360, 171, 173, 175, 304,
+ 145, 25, 32, 239, 242, 417, 241, 145, 316, 408,
+ 317, 378, 305, 397, 233, 379, 380, 381, 148, 252,
+ 145, 110, 297, 302, 152, 120, 155, 369, 121, 370,
+ 33, 308, 309, 313, 365, 1, 367, 236, 170, 237,
+ 243, 2, 58, 307, 173, 253, 311, 277, 298, 303,
+ 38, 34, 39, 40, 41, 42, 3, 4, 5, 6,
+ 7, 8, 9, 10, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 188, 189, 190, 171, 106, 108, 11,
+ 12, 38, 107, 109, 200, 35, 191, 48, 201, 2,
+ 49, 318, 36, 319, 315, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 3, 4, 5, 6, 7, 8,
+ 9, 10, 192, 274, 57, 65, 275, 66, 96, 61,
+ 63, 49, 28, 29, 320, 203, 321, 11, 12, 39,
+ 40, 41, 42, 70, 71, 45, 46, 47, 28, 29,
+ 287, 95, 101, 288, 28, 29, 396, 398, 204, 205,
+ 206, 207, 208, 67, 209, 210, 211, 212, 213, 214,
+ 215, 409, 410, 322, 411, 323, 412, 73, 74, 75,
+ 76, 77, 103, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 67, 87, 73, 74, 75, 76, 77, 65,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 111,
+ 87, 98, 99, 39, 40, 41, 42, 30, 113, 45,
+ 46, 47, 39, 40, 41, 42, 132, -159, -158, 114,
+ 332, 333, 324, 30, 325, 116, 122, 126, 127, 30,
+ 39, 40, 41, 42, 73, 74, 75, 76, 77, 339,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 131,
+ 87, 118, 74, 75, 76, 77, 137, 78, 79, 80,
+ 81, 82, 83, 84, 85, 119, 140, 87, 73, 74,
+ 75, 76, 77, 141, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 147, 87, 225, 226, 75, 76, 77,
+ 150, 78, 79, 80, 81, 82, 83, 84, 85, 227,
+ 153, 87, 118, 74, 75, 76, 77, 156, 78, 79,
+ 80, 81, 82, 83, 84, 85, 281, 157, 87, 123,
+ 74, 158, 160, 161, 162, 78, 79, 80, 81, 82,
+ 83, 84, 85, 129, 74, 87, 163, 164, 165, 78,
+ 79, 80, 81, 82, 83, 84, 85, 118, 74, 87,
+ 166, 169, 174, 78, 79, 80, 81, 82, 83, 84,
+ 85, 177, 178, 87, 179, 194, 196, 193, 198, 195,
+ 197, 199, 183, 221, 234, 170, 238, 222, 224, 171,
+ 240, 249, 278, 254, 184, 251, 258, 255, 261, 259,
+ 256, 260, 279, 284, 262, 263, 264, 265, 266, 267,
+ 268, 269, 290, 292, 270, 293, 296, 337, 341, 327,
+ 250, 271, 272, 273, 276, 354, 359, 376, -156, 285,
+ 384, 385, 27, 289, 330, 295, 286, 294, 328, 329,
+ 331, 371, 343, 391, 344, 345, 406, 347, 349, 407,
+ 413, 248, 326, 351, 358, 393, 0, 372, 364, 180,
+ 244, 387, 389, 390, 97, 392, 0, 340, 0, 0,
+ 0, 394, 0, 399, 416, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 149
+};
+
+static const yytype_int16 yycheck[] =
+{
+ 103, 45, 192, 73, 183, 160, 73, 295, 52, 46,
+ 5, 38, 338, 5, 22, 19, 19, 87, 45, 21,
+ 346, 283, 92, 382, 68, 19, 19, 20, 56, 355,
+ 23, 16, 19, 61, 393, 19, 15, 19, 20, 66,
+ 366, 23, 27, 331, 88, 224, 19, 20, 118, 57,
+ 23, 19, 31, 123, 98, 59, 344, 60, 37, 129,
+ 386, 240, 99, 253, 254, 255, 58, 94, 63, 61,
+ 332, 333, 59, 55, 67, 19, 364, 19, 404, 405,
+ 22, 184, 19, 20, 19, 67, 23, 60, 19, 19,
+ 20, 135, 60, 23, 67, 32, 64, 65, 66, 387,
+ 19, 389, 19, 20, 127, 132, 23, 385, 298, 19,
+ 289, 19, 267, 303, 58, 57, 60, 19, 60, 19,
+ 64, 65, 66, 38, 59, 55, 57, 132, 133, 19,
+ 67, 0, 55, 177, 19, 413, 180, 67, 19, 58,
+ 21, 60, 32, 60, 167, 64, 65, 66, 56, 32,
+ 67, 66, 32, 32, 56, 225, 56, 347, 225, 349,
+ 4, 264, 265, 266, 343, 3, 345, 172, 19, 174,
+ 55, 9, 19, 263, 179, 58, 266, 221, 58, 58,
+ 19, 55, 33, 34, 35, 36, 24, 25, 26, 27,
+ 28, 29, 30, 31, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 19, 20, 21, 57, 56, 56, 47,
+ 48, 19, 61, 61, 55, 55, 32, 56, 59, 9,
+ 59, 19, 55, 21, 268, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 24, 25, 26, 27, 28, 29,
+ 30, 31, 58, 58, 21, 19, 61, 21, 56, 19,
+ 19, 59, 15, 15, 19, 19, 21, 47, 48, 33,
+ 34, 35, 36, 19, 57, 39, 40, 41, 31, 31,
+ 58, 57, 57, 61, 37, 37, 379, 380, 42, 43,
+ 44, 45, 46, 57, 48, 49, 50, 51, 52, 53,
+ 54, 394, 395, 19, 397, 21, 399, 5, 6, 7,
+ 8, 9, 60, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 57, 21, 5, 6, 7, 8, 9, 19,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 19,
+ 21, 39, 40, 33, 34, 35, 36, 15, 19, 39,
+ 40, 41, 33, 34, 35, 36, 19, 58, 58, 19,
+ 61, 61, 19, 31, 21, 19, 5, 19, 63, 37,
+ 33, 34, 35, 36, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 19,
+ 21, 5, 6, 7, 8, 9, 21, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 19, 21, 5, 6,
+ 7, 8, 9, 19, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 21, 21, 5, 6, 7, 8, 9,
+ 21, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 21, 21, 5, 6, 7, 8, 9, 58, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 19, 21, 5,
+ 6, 57, 62, 58, 57, 11, 12, 13, 14, 15,
+ 16, 17, 18, 5, 6, 21, 19, 19, 19, 11,
+ 12, 13, 14, 15, 16, 17, 18, 5, 6, 21,
+ 57, 5, 19, 11, 12, 13, 14, 15, 16, 17,
+ 18, 58, 19, 21, 19, 59, 59, 20, 59, 21,
+ 21, 21, 57, 19, 19, 19, 19, 57, 57, 57,
+ 57, 19, 19, 58, 60, 59, 59, 58, 24, 59,
+ 32, 59, 19, 19, 60, 60, 60, 60, 60, 60,
+ 60, 60, 19, 19, 60, 24, 24, 19, 19, 24,
+ 186, 60, 60, 60, 55, 24, 19, 19, 58, 58,
+ 24, 19, 15, 57, 55, 58, 61, 59, 58, 58,
+ 58, 32, 57, 24, 58, 57, 59, 58, 58, 24,
+ 19, 185, 275, 57, 57, 376, -1, 55, 58, 139,
+ 182, 58, 58, 58, 50, 55, -1, 286, -1, -1,
+ -1, 60, -1, 60, 59, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 105
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_uint8 yystos[] =
+{
+ 0, 3, 9, 24, 25, 26, 27, 28, 29, 30,
+ 31, 47, 48, 69, 70, 71, 72, 73, 113, 116,
+ 118, 21, 19, 19, 19, 0, 70, 72, 113, 116,
+ 118, 71, 55, 4, 55, 55, 55, 71, 19, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 56, 59,
+ 75, 76, 77, 81, 82, 84, 104, 21, 19, 114,
+ 115, 19, 119, 19, 117, 19, 21, 57, 77, 104,
+ 19, 57, 91, 5, 6, 7, 8, 9, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 21, 77, 93,
+ 94, 95, 96, 97, 91, 57, 56, 76, 39, 40,
+ 93, 57, 74, 60, 56, 61, 56, 61, 56, 61,
+ 104, 19, 93, 19, 19, 92, 19, 90, 5, 19,
+ 95, 97, 5, 5, 95, 93, 19, 63, 98, 5,
+ 95, 19, 19, 77, 99, 100, 101, 21, 93, 91,
+ 19, 19, 19, 20, 23, 67, 120, 21, 56, 115,
+ 21, 19, 56, 21, 19, 56, 58, 19, 57, 85,
+ 62, 58, 57, 19, 19, 19, 57, 5, 98, 5,
+ 19, 57, 77, 101, 19, 101, 93, 58, 19, 19,
+ 99, 19, 22, 57, 60, 78, 79, 80, 19, 20,
+ 21, 32, 58, 20, 59, 21, 59, 21, 59, 21,
+ 55, 59, 103, 19, 42, 43, 44, 45, 46, 48,
+ 49, 50, 51, 52, 53, 54, 86, 89, 19, 59,
+ 92, 19, 57, 83, 57, 5, 6, 19, 93, 107,
+ 108, 109, 110, 98, 19, 102, 101, 101, 19, 93,
+ 57, 93, 19, 55, 80, 107, 55, 120, 79, 19,
+ 78, 59, 32, 58, 58, 58, 32, 74, 59, 59,
+ 59, 24, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 58, 61, 55, 93, 19, 19,
+ 107, 19, 5, 61, 19, 58, 61, 58, 61, 57,
+ 19, 107, 19, 24, 59, 58, 24, 32, 58, 74,
+ 74, 74, 32, 58, 19, 32, 87, 87, 120, 120,
+ 19, 87, 88, 120, 92, 93, 19, 21, 19, 21,
+ 19, 21, 19, 21, 19, 21, 89, 24, 58, 58,
+ 55, 58, 61, 61, 108, 22, 57, 19, 105, 10,
+ 110, 19, 107, 57, 58, 57, 105, 58, 74, 58,
+ 74, 57, 19, 59, 24, 105, 108, 108, 57, 19,
+ 55, 106, 120, 103, 58, 107, 105, 107, 103, 74,
+ 74, 32, 55, 19, 59, 103, 19, 19, 60, 64,
+ 65, 66, 111, 112, 24, 19, 105, 58, 103, 58,
+ 58, 24, 55, 111, 60, 60, 120, 60, 120, 60,
+ 58, 112, 106, 103, 105, 105, 59, 24, 58, 120,
+ 120, 120, 120, 19, 103, 103, 59, 106
+};
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
+
+#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (YYID (0))
+
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif