// created by jay 1.1.0 (c) 2002-2006 ats@cs.rit.edu // skeleton c# 1.1.0 (c) 2002-2006 ats@cs.rit.edu #line 8 "mrb_parse.jay" // can first specify namespace // could specify using directives // [this has not been done here to stress-test the skeleton] using System; using Bridge; using Bridge.Html5; namespace WebMrbc { public enum MrbTokens { #line default // %token constants keyword_class = 257, keyword_module = 258, keyword_def = 259, keyword_begin = 260, keyword_if = 261, keyword_unless = 262, keyword_while = 263, keyword_until = 264, keyword_for = 265, keyword_undef = 266, keyword_rescue = 267, keyword_ensure = 268, keyword_end = 269, keyword_then = 270, keyword_elsif = 271, keyword_else = 272, keyword_case = 273, keyword_when = 274, keyword_break = 275, keyword_next = 276, keyword_redo = 277, keyword_retry = 278, keyword_in = 279, keyword_do = 280, keyword_do_cond = 281, keyword_do_block = 282, keyword_do_LAMBDA = 283, keyword_return = 284, keyword_yield = 285, keyword_super = 286, keyword_self = 287, keyword_nil = 288, keyword_true = 289, keyword_false = 290, keyword_and = 291, keyword_or = 292, keyword_not = 293, modifier_if = 294, modifier_unless = 295, modifier_while = 296, modifier_until = 297, modifier_rescue = 298, keyword_alias = 299, keyword_BEGIN = 300, keyword_END = 301, keyword__LINE__ = 302, keyword__FILE__ = 303, keyword__ENCODING__ = 304, tIDENTIFIER = 305, tFID = 306, tGVAR = 307, tIVAR = 308, tCONSTANT = 309, tCVAR = 310, tLABEL = 311, tINTEGER = 312, tFLOAT = 313, tCHAR = 314, tXSTRING = 315, tREGEXP = 316, tSTRING = 317, tSTRING_PART = 318, tSTRING_MID = 319, tLABEL_END = 320, tNTH_REF = 321, tBACK_REF = 322, tREGEXP_END = 323, tUPLUS = 324, tUMINUS = 325, tPOW = 326, tCMP = 327, tEQ = 328, tEQQ = 329, tNEQ = 330, tGEQ = 331, tLEQ = 332, tANDOP = 333, tOROP = 334, tMATCH = 335, tNMATCH = 336, tDOT2 = 337, tDOT3 = 338, tAREF = 339, tASET = 340, tLSHFT = 341, tRSHFT = 342, tCOLON2 = 343, tCOLON3 = 344, tOP_ASGN = 345, tASSOC = 346, tLPAREN = 347, tLPAREN_ARG = 348, tRPAREN = 349, tLBRACK = 350, tLBRACE = 351, tLBRACE_ARG = 352, tSTAR = 353, tAMPER = 354, tLAMBDA = 355, tANDDOT = 356, tSYMBEG = 357, tREGEXP_BEG = 358, tWORDS_BEG = 359, tSYMBOLS_BEG = 360, tSTRING_BEG = 361, tXSTRING_BEG = 362, tSTRING_DVAR = 363, tLAMBEG = 364, tHEREDOC_BEG = 365, tHEREDOC_END = 366, tLITERAL_DELIM = 367, tHD_LITERAL_DELIM = 368, tHD_STRING_PART = 369, tHD_STRING_MID = 370, tLOWEST = 371, tUMINUS_NUM = 372, tLAST_TOKEN = 373, yyErrorCode = 256 #line 167 "mrb_parse.jay" } /// /// start with an argument to trace /// public partial class MrbParser { // must specify class header // must not use yy[A-Z].* as identifiers // could overwrite some methods named yy[A-Z].* in subclass const int yyErrorCode = (int)MrbTokens.yyErrorCode; #line default /// /// final state of parser. /// protected const int yyFinal = 1; /// /// parser tables. /// Order is mandated by jay. /// protected static readonly short[] yyLhs = new short[] { //yyLhs 559 -1, 110, 0, 11, 12, 12, 12, 12, 13, 113, 13, 14, 15, 16, 16, 16, 16, 114, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 18, 18, 18, 18, 18, 18, 24, 22, 22, 52, 52, 117, 79, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 84, 84, 90, 90, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 85, 85, 86, 86, 89, 89, 89, 89, 89, 89, 89, 89, 81, 81, 81, 81, 81, 81, 81, 81, 97, 97, 9, 9, 9, 98, 98, 98, 98, 98, 91, 91, 66, 120, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 42, 42, 42, 42, 25, 25, 38, 39, 39, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 123, 41, 44, 43, 43, 122, 122, 35, 35, 35, 35, 49, 49, 49, 20, 20, 20, 20, 20, 20, 20, 20, 125, 20, 126, 127, 20, 128, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 129, 130, 20, 20, 20, 132, 134, 20, 135, 136, 20, 20, 20, 137, 138, 20, 139, 20, 141, 142, 20, 143, 20, 144, 145, 20, 147, 148, 20, 20, 20, 20, 20, 26, 131, 131, 131, 133, 133, 27, 27, 28, 28, 68, 68, 60, 60, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 62, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 71, 71, 71, 74, 74, 73, 73, 75, 75, 76, 76, 77, 77, 149, 80, 51, 51, 51, 51, 23, 23, 23, 23, 23, 23, 23, 23, 23, 150, 78, 151, 78, 29, 30, 30, 31, 31, 32, 32, 32, 33, 33, 34, 34, 7, 7, 7, 7, 2, 2, 2, 2, 3, 3, 4, 152, 4, 4, 4, 5, 5, 6, 6, 105, 124, 124, 153, 153, 154, 154, 155, 156, 155, 106, 106, 10, 10, 93, 92, 92, 92, 92, 92, 92, 107, 107, 8, 8, 8, 8, 40, 40, 40, 40, 40, 46, 45, 45, 45, 45, 45, 45, 45, 67, 67, 50, 157, 50, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 83, 83, 83, 83, 103, 103, 58, 58, 57, 57, 104, 72, 54, 53, 53, 59, 59, 158, 158, 100, 100, 159, 159, 101, 102, 102, 1, 160, 1, 63, 63, 64, 64, 65, 65, 65, 65, 65, 94, 94, 94, 95, 95, 95, 95, 96, 96, 96, 146, 146, 108, 108, 109, 109, 111, 111, 116, 116, 118, 115, 121, 121, 121, 140, 140, 140, 161, 112, 112, 82, }, yyLen = new short[] { //yyLen 559 2, 0, 2, 2, 1, 1, 3, 2, 1, 0, 5, 4, 2, 1, 1, 3, 2, 0, 4, 2, 3, 3, 3, 3, 3, 4, 1, 3, 3, 3, 3, 1, 3, 3, 6, 5, 5, 5, 5, 3, 1, 3, 1, 1, 3, 3, 3, 2, 1, 1, 1, 1, 1, 4, 0, 5, 2, 3, 4, 5, 4, 5, 2, 2, 2, 2, 2, 1, 3, 1, 3, 1, 2, 3, 5, 2, 4, 2, 4, 1, 3, 1, 3, 2, 3, 1, 2, 1, 4, 3, 3, 3, 3, 2, 1, 1, 4, 3, 3, 3, 3, 2, 1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 6, 5, 5, 5, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 6, 1, 1, 2, 4, 2, 1, 3, 3, 1, 1, 1, 1, 2, 4, 2, 1, 2, 2, 4, 1, 0, 2, 2, 2, 1, 1, 2, 1, 2, 3, 4, 3, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 0, 5, 0, 3, 3, 3, 2, 3, 3, 1, 2, 4, 3, 2, 1, 2, 0, 0, 5, 6, 6, 0, 0, 7, 0, 0, 7, 5, 4, 0, 0, 9, 0, 6, 0, 0, 8, 0, 5, 0, 0, 7, 0, 0, 9, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 5, 1, 2, 1, 1, 1, 3, 1, 3, 1, 4, 6, 3, 5, 2, 4, 1, 3, 6, 8, 4, 6, 4, 2, 6, 2, 4, 6, 2, 4, 2, 4, 1, 1, 1, 3, 1, 4, 1, 4, 1, 3, 1, 1, 4, 1, 3, 3, 0, 5, 2, 4, 5, 5, 2, 4, 4, 3, 3, 3, 2, 1, 4, 0, 5, 0, 5, 5, 1, 1, 6, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 1, 0, 4, 1, 2, 2, 3, 2, 3, 1, 1, 2, 1, 2, 1, 2, 1, 0, 4, 2, 3, 1, 4, 2, 1, 1, 1, 1, 1, 2, 2, 3, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 3, 2, 6, 8, 4, 6, 4, 6, 2, 4, 6, 2, 4, 2, 4, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 2, 2, 2, 1, 3, 1, 3, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 0, 4, 1, 2, 1, 3, 3, 2, 2, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, }, yyDefRed = new short[] { //yyDefRed 986 1, 0, 0, 0, 0, 0, 0, 270, 0, 0, 294, 297, 0, 0, 0, 0, 0, 320, 321, 0, 0, 0, 462, 461, 463, 464, 0, 0, 9, 0, 466, 465, 0, 0, 456, 455, 0, 457, 450, 451, 412, 413, 467, 468, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 427, 0, 0, 0, 263, 264, 265, 262, 408, 409, 2, 0, 5, 0, 0, 0, 0, 0, 43, 0, 0, 0, 267, 0, 26, 0, 51, 0, 0, 4, 0, 0, 67, 0, 81, 439, 0, 266, 410, 411, 7, 318, 319, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 0, 460, 268, 0, 106, 310, 157, 167, 158, 154, 183, 184, 185, 186, 165, 180, 173, 163, 162, 178, 161, 160, 156, 181, 155, 168, 172, 174, 166, 159, 175, 182, 177, 0, 0, 0, 0, 153, 171, 170, 152, 150, 151, 0, 0, 149, 0, 110, 0, 142, 143, 139, 121, 122, 123, 130, 127, 129, 124, 125, 144, 145, 131, 132, 136, 126, 128, 118, 119, 120, 133, 134, 135, 137, 138, 140, 141, 146, 516, 0, 515, 312, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 333, 176, 169, 179, 164, 147, 148, 108, 109, 0, 0, 115, 114, 113, 430, 435, 434, 552, 555, 0, 0, 0, 556, 554, 0, 432, 553, 0, 0, 0, 0, 0, 0, 0, 243, 0, 65, 247, 0, 520, 66, 64, 0, 237, 283, 63, 236, 0, 389, 62, 0, 0, 546, 17, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 0, 444, 443, 445, 446, 0, 441, 442, 425, 419, 418, 421, 0, 0, 416, 437, 0, 448, 0, 414, 0, 423, 0, 0, 0, 221, 47, 222, 3, 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, 377, 379, 394, 392, 288, 0, 540, 0, 539, 0, 0, 542, 541, 0, 0, 0, 0, 0, 0, 0, 83, 383, 0, 286, 0, 103, 0, 105, 452, 453, 470, 305, 0, 0, 0, 0, 0, 538, 537, 315, 313, 0, 0, 0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, 116, 0, 0, 0, 0, 557, 431, 433, 0, 0, 0, 0, 0, 0, 0, 0, 244, 252, 0, 0, 245, 0, 0, 239, 0, 0, 238, 249, 0, 0, 285, 46, 0, 0, 0, 0, 0, 0, 0, 0, 277, 12, 0, 0, 0, 276, 230, 0, 550, 280, 232, 551, 281, 519, 0, 0, 80, 0, 0, 0, 0, 0, 0, 491, 490, 489, 492, 0, 507, 511, 510, 506, 0, 374, 0, 497, 0, 504, 290, 493, 0, 487, 495, 0, 0, 0, 447, 0, 0, 0, 428, 426, 417, 438, 449, 415, 424, 0, 0, 6, 20, 21, 22, 23, 24, 44, 45, 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, 388, 0, 386, 0, 0, 0, 532, 0, 387, 0, 533, 0, 0, 188, 0, 42, 33, 0, 0, 530, 531, 0, 195, 39, 0, 0, 187, 0, 32, 28, 0, 27, 30, 0, 0, 0, 84, 54, 57, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 271, 0, 0, 400, 0, 325, 0, 0, 0, 0, 0, 0, 327, 295, 326, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 0, 0, 251, 0, 521, 0, 0, 235, 0, 284, 547, 18, 0, 25, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 499, 494, 0, 0, 336, 0, 0, 334, 0, 0, 514, 480, 0, 483, 0, 0, 485, 0, 508, 512, 440, 0, 429, 0, 0, 0, 365, 0, 0, 363, 362, 0, 0, 0, 0, 385, 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 76, 0, 0, 308, 0, 0, 391, 311, 517, 316, 0, 0, 0, 0, 0, 402, 403, 0, 0, 330, 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 436, 300, 0, 0, 0, 0, 246, 0, 10, 274, 231, 0, 0, 0, 0, 0, 496, 0, 0, 498, 0, 0, 513, 0, 505, 0, 0, 0, 291, 0, 420, 0, 0, 502, 0, 0, 0, 0, 361, 0, 0, 0, 0, 192, 38, 37, 193, 61, 0, 548, 190, 35, 191, 36, 59, 0, 41, 0, 0, 0, 0, 0, 381, 382, 0, 0, 74, 0, 0, 471, 306, 0, 0, 0, 473, 0, 0, 405, 331, 0, 11, 407, 0, 292, 0, 293, 0, 0, 303, 0, 0, 0, 335, 0, 0, 0, 337, 373, 0, 0, 476, 0, 478, 0, 484, 0, 481, 0, 0, 486, 0, 0, 357, 0, 354, 0, 364, 0, 359, 0, 0, 378, 395, 393, 189, 34, 0, 0, 0, 0, 0, 472, 314, 0, 0, 0, 0, 404, 0, 406, 0, 296, 299, 0, 397, 398, 396, 0, 0, 0, 0, 371, 0, 369, 372, 0, 0, 0, 0, 376, 375, 503, 0, 0, 0, 0, 366, 0, 279, 0, 55, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 477, 0, 474, 479, 482, 358, 0, 355, 0, 349, 0, 351, 360, 0, 0, 317, 0, 0, 0, 0, 0, 399, 329, 304, 0, 370, 0, 0, 0, 0, 0, 0, 475, 356, 350, 0, 347, 353, 0, 348, }, yyDgoto = new short[] { //yyDgoto 162 1, 193, 63, 313, 314, 64, 65, 66, 67, 112, 68, 69, 70, 71, 404, 405, 279, 280, 73, 74, 75, 76, 77, 78, 201, 590, 273, 749, 750, 429, 908, 618, 742, 838, 842, 447, 448, 449, 564, 260, 203, 261, 287, 441, 253, 81, 204, 83, 592, 593, 394, 84, 85, 794, 795, 739, 740, 499, 500, 501, 678, 679, 680, 291, 450, 255, 226, 205, 214, 797, 702, 703, 502, 914, 779, 915, 503, 790, 386, 602, 364, 206, 281, 504, 89, 90, 481, 91, 92, 93, 283, 227, 306, 94, 95, 608, 566, 118, 229, 567, 505, 784, 685, 507, 508, 96, 97, 98, 397, 376, 2, 236, 237, 270, 457, 711, 454, 730, 455, 197, 638, 471, 446, 263, 647, 198, 284, 665, 285, 300, 688, 408, 208, 629, 757, 209, 758, 637, 905, 605, 409, 603, 830, 398, 403, 615, 402, 614, 833, 558, 560, 559, 513, 239, 240, 241, 426, 604, 509, 510, 399, 268, }, yySindex = new short[] { //yySindex 986 0, 0, 18871, 19108, 23947, 24440, 22368, 0, 21122, 21122, 0, 0, 24208, 22267, 18634, 19700, 19700, 0, 0, 19700, 118, 118, 0, 0, 0, 0, 254, 22267, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21241, 21241, -67, 19226, 0, 20174, 20411, 21859, 0, 21653, 852, 997, 1248, 1641, 408, 0, -112, 21359, 21241, 0, 0, 0, 0, 0, 0, 0, 671, 0, 846, -34, 14293, 0, -17, 0, -20, 35, 0, 0, -36, 0, 161, 0, 10, 296, 0, 298, 24324, 0, 349, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 118, 118, 341, 0, 0, 21122, -92, 19345, 386, 344, 0, 127, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 0, 0, 0, 0, 19345, 92, -34, 581, 175, 0, 66, 76, 345, 581, 21122, 21122, 113, 209, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21772, 416, 0, 0, 0, 0, 0, 0, 0, 0, 671, 197, 671, 0, 0, 639, 0, 0, 21241, 21241, 21241, 21241, 1589, 21241, 13862, 0, 456, 0, 0, 478, 0, 0, 0, 19700, 0, 0, 0, 0, 19700, 0, 0, 18751, 21122, 0, 0, 354, 19345, 0, 216, 202, 224, 19819, 19226, 501, 671, 846, 0, 0, 565, 19819, 565, 249, 510, 269, 0, 13862, 488, 269, 0, 308, 24556, 337, 0, 0, 575, 1625, 0, 0, 0, 0, 1693, 0, 0, 0, 0, 0, 0, 738, 1183, 0, 0, 1738, 0, 1840, 0, 1866, 0, 562, 311, 324, 0, 0, 0, 0, 17327, 21122, 21122, 21122, 21122, 19819, 21122, 21122, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 21241, 0, 0, 0, 0, 0, 22718, 0, 19700, 0, 22756, 21359, 0, 0, 24122, 21359, 20530, 20530, 19226, 21975, 580, 0, 0, 278, 0, -34, 0, 0, 0, 0, 0, 0, 0, 22794, 19700, 22867, 19345, 21122, 0, 0, 0, 0, 374, 393, 224, 0, 19345, 383, 23117, 19700, 23184, 21241, 21241, 21241, 19345, 618, 618, 0, 23222, 19700, 23260, 0, 348, 0, 19345, 197, 20648, 398, 0, 0, 0, 14293, 14293, 14293, 14293, 21241, 1608, 21241, 738, 0, 0, 19937, 19463, 0, 315, 629, 0, 565, 631, 0, 0, 61, 621, 0, 0, 22267, 18871, 554, 23117, 23184, 21241, 846, 565, 0, 0, 18252, 0, 846, 0, 0, 20293, 0, 0, 0, 0, 0, 0, 0, 24556, 0, 349, 23336, 19700, 23586, 24556, 626, 0, 0, 0, 0, 2276, 0, 0, 0, 0, 1771, 0, 638, 0, 648, 0, 0, 0, 659, 0, 0, 21241, 401, 406, 0, 1871, 19345, 738, 0, 0, 0, 0, 0, 0, 0, 21241, 21241, 0, 0, 0, 0, 0, 0, 0, 0, 202, 8856, 8856, 8856, 8856, 3423, 3423, 10863, 10250, 8856, 8856, 8138, 8138, 112, 112, 10185, 3423, 3423, 1811, 1811, 1477, 25, 25, 202, 202, 202, -71, -71, -71, 372, 0, 376, 0, 118, 0, 0, 565, 391, 0, 403, 0, 118, 0, 14738, 421, 0, 509, 0, 0, 10, 677, 0, 0, 118, 0, 0, 21241, 14738, 0, 456, 0, 0, 14293, 0, 0, 565, 24556, 715, 0, 0, 0, 671, 21122, 19345, 0, 0, 118, 0, 565, 118, 493, 61, 22680, 2255, 0, 20767, 492, 0, 485, 0, 425, 439, 565, 458, 475, 492, 0, 0, 0, 0, 0, 0, 565, 0, 0, 21122, 22267, 641, 532, 14293, 238, 0, 14293, 21241, 14293, 738, 21241, 13862, 0, 478, 0, 738, 19937, 0, 19463, 0, 0, 0, 697, 0, 0, 0, 846, 565, 269, 580, 0, 0, 565, 0, 0, 0, 0, 0, 2276, 601, 0, 734, 565, 0, 565, 1771, 0, 0, 1771, 0, -229, 1229, 0, 14293, 0, 0, 0, 699, 0, 202, 202, 768, 0, 1341, 19345, 0, 0, 19345, 19345, 21359, 21359, 0, 278, 484, 739, 21359, 21359, 0, 278, 21241, 19819, 23653, 19700, 23691, 21359, -20, -17, 14293, 20885, 0, 0, 24556, -71, 0, 671, 567, 0, 0, 0, 0, 1771, 19345, 671, 14293, 497, 0, 0, 19345, 566, 0, 21122, 589, 0, 21241, 21241, 514, 21241, 21241, 591, 19345, 19345, 0, 618, 0, 0, 0, 21004, 19345, 14293, 14293, 0, 817, 0, 0, 0, 0, 565, 1084, 824, 2325, 0, 832, 819, 0, 842, 851, 0, 854, 0, 856, 19345, 19345, 0, 854, 0, 21241, 859, 0, 863, 565, 772, 868, 0, 24672, 662, 664, 803, 0, 0, 0, 0, 0, 21359, 0, 0, 0, 0, 0, 0, 14293, 0, 372, 376, 565, 391, 403, 0, 0, 21241, 14293, 0, 19345, 19345, 0, 0, 2255, 565, 675, 0, 24788, 581, 0, 0, 19345, 0, 0, 581, 0, 21241, 0, 676, 684, 0, 14293, 30, 19463, 0, 919, 1084, 974, 0, 0, 857, 1771, 0, 1229, 0, 1229, 0, 1229, 0, 700, 843, 0, 14293, 1771, 0, 1771, 0, 855, 0, 1229, 0, 667, 727, 0, 0, 0, 0, 0, 484, 14293, 860, 712, 19345, 0, 0, 687, 830, 0, 0, 0, 19345, 0, 19345, 0, 0, 19345, 0, 0, 0, 1084, 919, 1084, 954, 0, 275, 0, 0, 854, 958, 854, 854, 0, 0, 0, 854, 960, 966, 970, 0, 854, 0, 23729, 0, 0, 747, 0, 23805, 19700, 24055, 393, 485, 753, 919, 1084, 857, 0, 0, 1229, 0, 0, 0, 0, 1229, 0, 1771, 0, 1229, 0, 0, 0, 0, 0, 0, 0, 565, 0, 0, 0, 0, 0, 919, 0, 854, 854, 854, 982, 854, 0, 0, 0, 0, 1229, 0, 0, 854, 0, }, yyRindex = new short[] { //yyRindex 986 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 10406, 10496, 0, 0, 10600, 5486, 5006, 0, 0, 0, 0, 21478, 0, 0, 0, 0, 0, 2969, 4046, 0, 0, 3086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 18490, 943, 918, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 143, 8564, 1261, 9204, 9010, 0, 9543, 0, 12452, 0, 0, 0, 9453, 0, 12542, 0, 0, 0, 120, 0, 0, 0, 0, 20056, 0, 0, 0, 0, 0, 0, 0, 9647, 8214, 0, 16758, 17089, 0, 0, 228, 0, 17846, 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, 2158, 5080, 5560, 6040, 0, 0, 0, 0, 0, 0, 6520, 7000, 0, 7476, 0, 7496, 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, 570, 0, 2787, 0, 0, 8318, 0, 8761, 0, 0, 0, 0, 0, 0, 11, 1403, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11282, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1699, 0, 16309, 0, 0, 16309, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0, 0, 0, 178, 0, 0, 10939, 12646, 0, 228, 0, 1022, 595, 0, 136, 1016, 0, 1016, 971, 0, 971, 0, 0, 0, 940, 0, 0, 0, 0, 1598, 2439, 153, -196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9986, 10090, 0, 0, 0, 0, 148, 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, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 165, 210, 0, 0, 16598, 0, 692, 0, 17609, 0, 0, 0, 0, 0, 0, 157, 0, 570, 0, 0, 0, 0, 0, 0, 436, 9100, 0, 706, 17729, 0, 157, 0, 0, 0, 0, 686, 0, 0, 1426, 0, 157, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 2053, 15958, 16062, 16415, 0, 0, 0, 19582, 0, 0, 0, -28, 0, 0, 150, 0, 1016, 150, 0, 0, 1016, 0, 0, 0, 0, 178, 0, 0, 0, 0, 1001, 1016, 0, 0, 1135, 108, 317, 0, 0, 976, 0, 0, 0, 0, 0, 0, 2512, 0, 0, 270, 0, 157, 0, 0, 1578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, 736, 0, 736, 0, 0, 0, 736, 0, 0, 0, 1722, 0, 0, 0, 178, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11030, 14657, 14748, 14839, 15088, 13977, 14226, 15179, 15610, 15270, 15519, 2474, 15643, 13364, 13455, 1013, 14317, 14408, 13795, 13886, 13546, 12960, 13051, 11121, 11434, 11525, 17966, 17966, 18132, 5849, 4409, 7289, 0, 20056, 0, 4526, 980, 5966, 0, 6329, 0, 5369, 0, 15923, 11373, 0, 0, 0, 0, 13142, 0, 0, 0, 7769, 0, 0, 0, 1989, 0, 0, 0, 0, 519, 0, 0, 1016, 0, 295, 0, 0, 0, 0, 0, 570, 17206, 17492, 0, 0, 980, 8657, 0, 1016, 0, 834, 0, 745, 572, 0, 808, 0, 3449, 4889, 980, 3566, 3929, 808, 0, 0, 0, 0, 2397, 756, 980, 2682, 2762, 0, 0, 0, 0, 320, 0, 0, 16109, 0, 16172, 18989, 0, 16223, 0, 16309, 0, 18370, 0, 0, 58, 0, 0, 0, 0, 0, 0, 257, 1244, 1016, 971, 653, 1108, 1374, 980, 2089, 2130, 0, 0, 0, 0, 332, 0, 433, 1016, 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 11616, 11929, 0, 0, 106, 762, 0, 0, 762, 178, 0, 0, 0, 16635, 12020, 0, 0, 0, 0, 16715, 0, 0, 0, 157, 0, 0, 15456, 9896, 942, 0, 0, 0, 0, 18132, 0, 0, 0, 0, 0, 0, 0, 505, 570, 0, 678, 769, 0, 0, 651, 808, 0, 0, 0, 0, 0, 0, 7875, 0, 0, 0, 762, 762, 2708, 0, 0, 0, 0, 0, 723, 16262, 16352, 0, 150, 0, 0, 0, 2269, 1016, 0, 529, 0, 0, 0, 100, 0, 736, 736, 0, 736, 0, 736, 762, 178, 0, 736, 0, 0, 85, 0, 85, 106, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2626, 0, 6446, 7406, 980, 6809, 6926, 0, 0, 0, 2607, 0, 178, 570, 0, 0, 834, 1016, 0, 0, 0, 0, 0, 0, 762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 789, 808, 63, 0, 540, 0, 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15762, 0, 0, 103, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 12113, 8518, 0, 0, 570, 0, 0, 0, 0, 1115, 1391, 0, 570, 0, 706, 0, 0, 762, 0, 0, 0, 0, 569, 0, 579, 0, 182, 0, 0, 736, 736, 736, 736, 0, 0, 0, 85, 85, 85, 85, 0, 85, 0, 0, 0, 0, 0, 2086, 0, 157, 0, 436, 808, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2272, 1533, 0, 1386, 624, 980, 1535, 1595, 0, 0, 0, 592, 0, 736, 85, 85, 85, 85, 1398, 0, 0, 0, 0, 0, 0, 85, 0, }, yyGindex = new short[] { //yyGindex 162 0, 0, 0, 129, 979, 0, 0, 0, 0, 1073, 0, 630, 0, 42, -376, 125, 0, 40, 131, 984, 34, 12, -56, 0, 2, 299, 476, 139, -346, -401, 0, 151, 0, 0, 0, 74, 174, -355, -12, -47, 1436, 3, 0, -235, -334, 1076, 1833, -267, -289, -305, 0, 0, 0, 220, -746, 263, -263, 7473, -589, 414, -697, -628, 422, 0, 14, -395, 0, 1082, 0, 0, -483, 0, -616, 0, -593, 159, 0, 0, -68, -518, 377, 1669, -2, -745, 1104, -270, -434, -3, -73, -19, -177, -15, 0, -7, 2349, -290, 0, -51, 7, 8, -565, -266, 1099, 48, -584, 0, 0, 0, -77, 0, 0, 5, -1, 0, 0, -496, -23, 0, -103, 0, 0, -252, -155, 0, 809, 0, 0, 0, 0, 0, 0, -203, 0, -417, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -261, 0, 880, 0, 0, 0, 0, 0, 831, }, yyTable = new short[] { //yyTable 25161 88, 631, 372, 267, 416, 326, 228, 375, 259, 264, 367, 207, 269, 195, 196, 568, 235, 382, 262, 445, 228, 196, 612, 238, 265, 480, 640, 250, 250, 254, 254, 250, 299, 254, 506, 196, 475, 498, 113, 113, 478, 610, 72, 72, 282, 99, 113, 289, 293, 652, 401, 515, 673, 701, 788, 87, 624, 460, 390, 258, 307, 196, 362, 288, 292, 253, 634, 360, 242, 329, 786, 234, 361, 241, 596, 328, 705, 706, 565, 238, 858, 371, 573, 384, 580, 113, 585, 488, 587, 251, 251, 259, 264, 251, 781, 558, 443, 253, 385, 242, 464, 262, 460, 366, 241, 384, 579, 611, 798, 650, 579, 579, 650, 352, 734, 916, 543, 801, 783, 79, 565, 787, 573, 286, 113, 412, 370, 923, 753, 670, 71, 472, 611, 476, 422, 789, 799, 476, 759, 200, 200, 367, 366, 8, 558, 200, 69, 855, 544, 362, 79, 242, 82, 8, 360, 358, 241, 359, 258, 361, 558, 71, 352, 77, 728, 545, 558, 558, 488, 68, 79, 611, 278, 371, 773, 75, 558, 69, 271, 515, 468, 71, 470, 515, 316, 318, 320, 322, 558, 252, 256, 558, 809, 257, 77, 611, 461, 67, 816, 916, 323, 324, 8, 597, 877, 488, 75, 371, 923, 558, 417, 418, 858, 388, 77, 445, 480, 389, 396, 485, 72, 371, 482, 545, 367, 558, 75, 352, 910, 733, 545, 506, 307, 196, 682, 278, 488, 558, 558, 387, 427, 543, 275, 558, 238, 786, 430, 829, 234, 442, 558, 72, 442, 696, 488, 371, 451, 335, 336, 234, 365, 652, 371, 700, 234, 363, 411, 70, 8, 558, 250, 72, 746, 544, 282, 250, 781, 254, 467, 234, 85, 756, 440, 942, 466, 234, 781, 558, 238, 801, 95, 801, 654, 440, 266, 828, 918, 233, 70, 365, 421, 82, 745, 558, 428, 73, 545, 411, 925, 373, 927, 85, 743, 444, 558, 970, 463, 576, 68, 944, 650, 576, 576, 595, 469, 888, 253, 273, 480, 113, 255, 85, 525, 526, 527, 528, 73, 251, 430, 200, 200, 500, 345, 850, 609, 558, 655, 400, 545, 506, 657, 337, 335, 336, 460, 377, 73, 378, 273, 379, 572, 663, 599, 835, 255, 821, 545, 460, 451, 72, 801, 524, 500, 345, 529, 500, 438, 282, 368, 255, 574, 266, 250, 371, 574, 572, 696, 68, 79, 975, 500, 369, 515, 383, 451, 515, 459, 453, 456, 71, 572, 406, 278, 619, 393, 574, 415, 667, 250, 451, 572, 413, 253, 482, 772, 113, 768, 253, 806, 451, 574, 414, 419, 250, 813, 815, 630, 630, 484, 565, 574, 573, 77, 250, 512, 800, 726, 452, 337, 765, 579, 423, 659, 338, 75, 442, 579, 579, 442, 572, 228, 907, 591, 591, 891, 579, 88, 651, 652, 480, 425, 200, 200, 200, 200, 196, 530, 531, 977, 574, 395, 428, 506, 572, 338, 834, 430, 458, 79, 79, 114, 114, 451, 369, 202, 202, 666, 764, 211, 72, 202, 202, 202, 574, 727, 202, 250, 684, 72, 684, 440, 721, 642, 684, 374, 278, 906, 664, 407, 8, 736, 476, 8, 8, 113, 488, 934, 369, 410, 29, 113, 887, 444, 79, 699, 482, 715, 296, 337, 29, 613, 369, 558, 620, 768, 558, 558, 202, 723, 343, 681, 627, 465, 579, 558, 712, 488, 558, 558, 85, 346, 639, 420, 709, 341, 371, 704, 704, 704, 460, 29, 259, 771, 255, 715, 369, 296, 506, 710, 462, 343, 262, 369, 259, 73, 234, 716, 778, 29, 344, 558, 346, 964, 262, 202, 341, 79, 712, 724, 339, 255, 234, 515, 501, 558, 342, 709, 558, 558, 259, 720, 712, 340, 474, 230, 14, 732, 231, 232, 262, 344, 712, 731, 477, 500, 744, 747, 479, 747, 486, 339, 737, 196, 761, 600, 747, 342, 501, 234, 558, 601, 228, 113, 340, 100, 900, 14, 522, 695, 760, 233, 902, 501, 616, 29, 775, 196, 712, 611, 442, 523, 576, 807, 621, 14, 824, 482, 576, 576, 780, 617, 558, 658, 86, 531, 511, 576, 643, 769, 246, 278, 854, 577, 653, 79, 656, 586, 233, 780, 661, 483, 234, 683, 100, 202, 202, 255, 674, 401, 255, 255, 591, 686, 369, 86, 500, 558, 500, 391, 392, 500, 500, 307, 689, 558, 558, 692, 501, 558, 572, 558, 693, 577, 586, 86, 278, 558, 707, 451, 718, 14, 708, 255, 321, 681, 776, 309, 310, 704, 574, 233, 893, 250, 558, 202, 200, 713, 401, 722, 202, 839, 831, 202, 202, 843, 558, 558, 79, 714, 836, 844, 307, 79, 79, 576, 558, 748, 745, 818, 729, 79, 662, 735, 113, 745, 558, 762, 442, 200, 630, 751, 296, 558, 371, 780, 311, 312, 558, 777, 558, 684, 684, 558, 684, 752, 684, 29, 29, 29, 684, 29, 29, 684, 29, 684, 558, 531, 684, 712, 257, 92, 763, 278, 754, 558, 79, 202, 202, 202, 202, 79, 202, 202, 29, 29, 29, 29, 29, 396, 938, 755, 558, 770, 681, 792, 681, 793, 802, 558, 810, 803, 804, 811, 257, 841, 113, 832, 558, 558, 558, 558, 558, 558, 837, 488, 242, 202, 278, 257, 578, 747, 407, 719, 578, 578, 202, 79, 296, 845, 846, 847, 853, 14, 14, 14, 369, 14, 14, 856, 14, 840, 113, 202, 859, 79, 202, 371, 521, 860, 200, 309, 310, 848, 849, 79, 29, 861, 202, 29, 29, 852, 945, 79, 488, 100, 863, 878, 202, 865, 628, 867, 242, 79, 873, 681, 912, 675, 875, 488, 489, 490, 491, 879, 869, 870, 684, 684, 684, 684, 558, 558, 937, 684, 684, 684, 684, 572, 684, 885, 311, 312, 883, 86, 884, 79, 451, 558, 619, 747, 558, 558, 712, 261, 79, 894, 903, 574, 230, 401, 250, 231, 232, 261, 904, 890, 558, 296, 681, 558, 681, 202, 14, 296, 909, 14, 14, 901, 278, 922, 921, 684, 684, 684, 684, 684, 558, 930, 558, 558, 928, 278, 933, 684, 261, 230, 932, 256, 231, 232, 79, 100, 681, 558, 100, 100, 558, 935, 558, 943, 249, 249, 261, 947, 249, 952, 431, 805, 808, 231, 232, 954, 16, 812, 814, 956, 558, 961, 558, 911, 558, 558, 558, 969, 543, 401, 939, 981, 940, 272, 274, 941, 558, 242, 249, 290, 100, 558, 230, 242, 558, 231, 232, 16, 558, 401, 325, 327, 401, 401, 544, 805, 808, 558, 812, 814, 558, 558, 545, 307, 257, 16, 307, 307, 543, 549, 549, 242, 261, 242, 551, 931, 545, 558, 545, 296, 558, 558, 558, 119, 968, 202, 79, 194, 369, 86, 86, 116, 116, 660, 558, 967, 558, 558, 558, 213, 926, 892, 782, 774, 278, 558, 825, 558, 971, 230, 558, 558, 231, 232, 886, 242, 558, 278, 202, 558, 558, 216, 473, 90, 473, 432, 514, 0, 473, 0, 95, 16, 0, 558, 86, 0, 558, 558, 298, 0, 558, 0, 0, 558, 558, 330, 331, 332, 333, 334, 886, 0, 543, 530, 90, 0, 0, 90, 0, 534, 257, 0, 0, 257, 257, 242, 460, 913, 0, 488, 489, 490, 491, 308, 90, 309, 310, 298, 936, 95, 0, 544, 0, 79, 0, 0, 79, 79, 578, 202, 0, 369, 0, 0, 578, 578, 0, 86, 0, 79, 0, 202, 0, 578, 534, 488, 0, 0, 488, 488, 296, 460, 0, 0, 261, 261, 261, 261, 261, 261, 79, 261, 0, 0, 311, 312, 79, 0, 0, 202, 0, 0, 433, 434, 435, 436, 534, 325, 79, 79, 0, 261, 261, 261, 261, 261, 79, 249, 0, 0, 0, 0, 249, 242, 242, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 544, 48, 0, 0, 79, 79, 0, 495, 16, 16, 16, 48, 16, 16, 0, 16, 0, 882, 0, 675, 86, 488, 489, 490, 491, 15, 578, 0, 261, 543, 543, 543, 517, 543, 543, 517, 543, 517, 242, 517, 0, 517, 48, 15, 0, 79, 79, 0, 261, 0, 0, 261, 261, 896, 315, 309, 310, 79, 0, 0, 48, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 0, 0, 0, 0, 234, 0, 86, 249, 0, 0, 575, 86, 86, 0, 575, 589, 594, 311, 312, 86, 16, 79, 15, 16, 16, 0, 0, 0, 0, 79, 298, 79, 495, 249, 79, 0, 496, 92, 95, 48, 90, 534, 675, 0, 488, 489, 490, 491, 249, 98, 575, 575, 575, 0, 102, 544, 544, 544, 249, 544, 544, 96, 544, 0, 86, 641, 202, 531, 92, 86, 517, 92, 0, 278, 644, 0, 646, 0, 0, 530, 649, 290, 0, 0, 676, 534, 0, 242, 92, 0, 268, 80, 80, 115, 115, 115, 0, 391, 98, 575, 94, 212, 268, 102, 534, 0, 0, 0, 581, 649, 96, 460, 581, 581, 0, 86, 298, 534, 278, 0, 0, 249, 0, 93, 460, 279, 242, 0, 0, 0, 534, 0, 0, 86, 95, 268, 80, 95, 95, 0, 297, 0, 391, 86, 517, 691, 0, 268, 0, 0, 473, 86, 516, 0, 309, 310, 0, 0, 0, 697, 698, 86, 534, 0, 15, 15, 15, 362, 15, 15, 279, 15, 360, 358, 391, 359, 0, 361, 0, 297, 0, 48, 48, 48, 48, 48, 48, 675, 48, 488, 489, 490, 491, 86, 0, 48, 278, 0, 97, 80, 0, 0, 86, 311, 312, 48, 48, 0, 48, 48, 48, 48, 48, 0, 0, 298, 242, 0, 317, 309, 310, 298, 0, 0, 242, 725, 531, 0, 530, 492, 278, 0, 278, 0, 530, 0, 494, 0, 0, 0, 0, 494, 0, 0, 242, 278, 0, 97, 86, 0, 0, 0, 0, 687, 741, 0, 0, 690, 99, 0, 0, 87, 0, 15, 0, 0, 15, 15, 311, 312, 0, 0, 494, 0, 0, 494, 0, 278, 0, 530, 48, 0, 766, 48, 48, 767, 0, 80, 531, 0, 494, 649, 87, 290, 531, 87, 0, 460, 0, 487, 0, 488, 489, 490, 491, 0, 92, 99, 0, 98, 278, 530, 87, 0, 102, 0, 495, 0, 497, 534, 496, 96, 242, 0, 87, 87, 0, 0, 242, 0, 0, 391, 0, 298, 215, 102, 0, 0, 0, 531, 86, 492, 460, 0, 575, 575, 0, 493, 494, 0, 575, 575, 255, 0, 817, 494, 0, 249, 101, 575, 80, 0, 255, 827, 0, 80, 80, 0, 0, 87, 278, 531, 0, 80, 422, 422, 422, 422, 422, 422, 0, 0, 534, 278, 297, 509, 0, 268, 575, 575, 0, 575, 575, 255, 391, 534, 255, 0, 0, 268, 268, 851, 0, 0, 0, 98, 0, 391, 98, 98, 102, 255, 268, 102, 102, 0, 509, 96, 80, 509, 96, 96, 279, 80, 0, 0, 422, 422, 0, 0, 872, 0, 87, 0, 509, 279, 0, 86, 0, 0, 86, 86, 581, 0, 0, 255, 0, 575, 581, 581, 0, 0, 0, 86, 0, 0, 337, 581, 97, 0, 0, 0, 495, 889, 298, 0, 496, 0, 530, 80, 297, 350, 351, 0, 86, 0, 0, 255, 0, 0, 86, 0, 0, 575, 0, 0, 0, 80, 82, 82, 290, 0, 86, 86, 0, 0, 0, 80, 0, 509, 86, 362, 357, 0, 0, 80, 360, 358, 0, 359, 0, 361, 0, 0, 494, 80, 0, 0, 99, 0, 87, 0, 0, 86, 86, 0, 0, 0, 531, 278, 87, 530, 0, 82, 862, 864, 116, 866, 0, 868, 0, 0, 278, 871, 530, 581, 874, 80, 876, 0, 0, 880, 0, 0, 97, 0, 80, 97, 97, 319, 309, 310, 437, 0, 86, 86, 0, 0, 0, 297, 0, 0, 898, 0, 249, 297, 86, 0, 520, 309, 310, 645, 0, 487, 0, 488, 489, 490, 491, 0, 0, 531, 0, 87, 460, 494, 82, 494, 87, 87, 494, 494, 80, 0, 531, 0, 87, 460, 0, 311, 312, 319, 309, 310, 99, 0, 0, 99, 99, 255, 255, 255, 255, 255, 255, 492, 255, 86, 311, 312, 0, 493, 494, 255, 255, 86, 0, 86, 0, 0, 86, 0, 233, 255, 255, 0, 255, 255, 255, 255, 255, 87, 233, 0, 0, 0, 87, 0, 509, 0, 0, 311, 312, 511, 309, 310, 0, 0, 0, 946, 948, 949, 950, 0, 0, 0, 951, 953, 955, 957, 0, 958, 0, 233, 82, 0, 255, 297, 0, 0, 0, 0, 0, 0, 80, 582, 0, 0, 0, 582, 582, 233, 87, 0, 255, 0, 523, 0, 518, 309, 310, 0, 0, 311, 312, 0, 523, 0, 255, 0, 87, 255, 255, 0, 978, 979, 980, 982, 983, 487, 87, 488, 489, 490, 491, 0, 985, 0, 87, 509, 0, 509, 0, 0, 509, 509, 0, 523, 87, 101, 523, 0, 89, 0, 0, 0, 0, 82, 311, 312, 0, 0, 82, 82, 0, 523, 0, 233, 0, 0, 82, 492, 0, 0, 0, 0, 0, 493, 494, 0, 87, 0, 530, 89, 0, 279, 89, 0, 530, 87, 337, 80, 0, 91, 80, 80, 0, 0, 101, 523, 0, 0, 0, 89, 0, 350, 351, 80, 0, 0, 519, 309, 310, 0, 0, 82, 0, 0, 297, 0, 82, 176, 0, 531, 91, 0, 0, 91, 80, 531, 279, 523, 0, 530, 80, 87, 520, 309, 310, 0, 0, 694, 309, 310, 91, 0, 80, 80, 0, 176, 0, 176, 0, 176, 80, 0, 0, 462, 0, 82, 311, 312, 0, 82, 82, 530, 82, 0, 0, 0, 176, 0, 0, 0, 531, 0, 0, 80, 80, 0, 0, 0, 0, 0, 82, 0, 311, 312, 0, 0, 115, 311, 312, 0, 82, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 531, 0, 0, 233, 233, 233, 82, 233, 233, 0, 233, 0, 80, 80, 0, 0, 0, 0, 0, 0, 897, 87, 0, 0, 80, 0, 88, 233, 233, 534, 233, 233, 233, 233, 0, 0, 0, 0, 82, 0, 495, 0, 738, 0, 496, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 530, 88, 0, 391, 534, 0, 534, 0, 523, 523, 523, 523, 523, 523, 0, 523, 80, 0, 88, 534, 0, 0, 523, 523, 80, 0, 80, 0, 0, 80, 0, 0, 523, 523, 82, 523, 523, 523, 523, 523, 0, 117, 117, 233, 101, 0, 233, 233, 391, 117, 0, 534, 0, 0, 0, 0, 89, 530, 0, 87, 0, 0, 87, 87, 582, 0, 0, 0, 0, 0, 582, 582, 0, 0, 0, 87, 0, 0, 0, 582, 391, 117, 117, 534, 534, 0, 117, 117, 117, 0, 0, 0, 0, 523, 0, 0, 87, 91, 531, 117, 0, 0, 87, 0, 0, 0, 0, 523, 0, 0, 523, 523, 0, 0, 87, 87, 0, 279, 0, 0, 530, 0, 87, 0, 0, 530, 82, 117, 0, 90, 279, 534, 0, 530, 0, 0, 0, 94, 0, 0, 101, 0, 0, 101, 101, 87, 87, 0, 0, 0, 0, 176, 0, 176, 176, 176, 176, 0, 0, 0, 0, 531, 196, 0, 0, 0, 0, 582, 94, 0, 0, 94, 196, 268, 531, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 94, 462, 0, 0, 0, 176, 899, 0, 0, 0, 87, 176, 176, 0, 0, 196, 0, 0, 196, 0, 534, 0, 93, 0, 176, 0, 0, 176, 176, 0, 268, 0, 196, 196, 0, 82, 0, 196, 82, 82, 82, 0, 0, 0, 0, 0, 82, 82, 88, 391, 0, 82, 534, 93, 0, 82, 93, 0, 279, 0, 487, 87, 488, 489, 490, 491, 0, 196, 0, 87, 0, 87, 82, 93, 87, 0, 0, 0, 82, 0, 0, 675, 0, 488, 489, 490, 491, 0, 0, 0, 82, 82, 117, 117, 117, 117, 0, 117, 82, 196, 0, 0, 492, 279, 0, 0, 0, 259, 493, 494, 0, 0, 391, 0, 0, 534, 0, 259, 0, 0, 0, 82, 82, 676, 0, 391, 234, 0, 534, 677, 675, 0, 488, 489, 490, 491, 234, 0, 0, 0, 0, 0, 0, 82, 117, 0, 0, 0, 259, 0, 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 82, 0, 0, 259, 234, 0, 0, 234, 0, 676, 0, 82, 0, 98, 534, 857, 0, 0, 0, 0, 0, 234, 234, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 0, 0, 0, 0, 0, 0, 94, 234, 0, 0, 530, 0, 0, 82, 89, 0, 530, 0, 117, 0, 259, 82, 0, 82, 0, 0, 82, 0, 534, 196, 196, 196, 196, 196, 196, 0, 196, 0, 0, 234, 88, 534, 391, 196, 196, 196, 0, 0, 0, 0, 117, 117, 117, 196, 196, 0, 196, 196, 196, 196, 196, 530, 0, 0, 0, 117, 0, 0, 0, 0, 268, 0, 0, 0, 117, 49, 117, 0, 0, 93, 117, 117, 0, 268, 0, 49, 0, 391, 0, 0, 531, 0, 0, 530, 91, 0, 531, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 196, 117, 0, 0, 0, 0, 196, 0, 49, 117, 0, 391, 0, 0, 0, 117, 0, 0, 196, 0, 196, 0, 0, 196, 196, 0, 49, 0, 0, 0, 0, 0, 0, 531, 0, 279, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 117, 117, 0, 259, 259, 259, 259, 259, 259, 0, 259, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 234, 234, 234, 234, 234, 234, 0, 234, 259, 259, 259, 259, 259, 0, 234, 234, 234, 0, 0, 49, 0, 0, 0, 0, 234, 234, 0, 234, 234, 234, 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 97, 530, 0, 0, 0, 117, 0, 0, 454, 0, 0, 234, 259, 0, 0, 259, 259, 234, 454, 0, 0, 0, 0, 0, 0, 0, 96, 391, 0, 234, 0, 234, 0, 117, 234, 234, 117, 0, 0, 0, 0, 527, 117, 0, 117, 454, 454, 0, 527, 454, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 454, 454, 454, 454, 454, 454, 0, 0, 0, 0, 0, 530, 0, 0, 99, 531, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 49, 49, 49, 49, 49, 49, 454, 49, 454, 454, 391, 0, 117, 0, 49, 0, 0, 0, 0, 0, 0, 117, 0, 0, 117, 0, 0, 49, 49, 49, 49, 49, 458, 0, 0, 0, 0, 0, 527, 454, 454, 527, 458, 0, 0, 0, 117, 117, 0, 117, 117, 531, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 531, 528, 0, 0, 0, 458, 458, 0, 528, 458, 458, 458, 458, 458, 458, 458, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 458, 458, 458, 458, 458, 458, 117, 0, 0, 49, 0, 0, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 458, 0, 458, 458, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 528, 458, 458, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, 527, 527, 527, 527, 527, 527, 527, 527, 0, 454, 454, 454, 454, 454, 454, 527, 454, 527, 527, 527, 527, 454, 527, 454, 454, 454, 527, 527, 527, 527, 527, 527, 527, 454, 454, 527, 454, 454, 454, 454, 454, 0, 0, 0, 527, 527, 0, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 0, 0, 527, 0, 0, 527, 527, 527, 0, 527, 527, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 0, 0, 454, 454, 454, 527, 454, 454, 527, 527, 0, 527, 527, 454, 527, 527, 527, 454, 527, 527, 527, 527, 527, 527, 0, 454, 527, 454, 0, 0, 454, 454, 0, 527, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 0, 458, 458, 458, 458, 458, 458, 528, 458, 528, 528, 528, 528, 458, 528, 458, 458, 458, 528, 528, 528, 528, 528, 528, 528, 458, 458, 528, 458, 458, 458, 458, 458, 0, 0, 0, 528, 528, 0, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 0, 0, 528, 0, 0, 528, 528, 528, 0, 528, 528, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 0, 0, 458, 458, 458, 528, 458, 458, 528, 528, 0, 528, 528, 458, 528, 528, 528, 458, 528, 528, 528, 528, 528, 528, 534, 458, 528, 458, 0, 0, 458, 458, 0, 528, 534, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 534, 534, 0, 530, 534, 534, 534, 534, 534, 534, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 534, 534, 98, 534, 534, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 0, 534, 534, 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 534, 534, 534, 530, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 530, 530, 97, 530, 530, 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, 530, 0, 530, 530, 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, 530, 530, 530, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 534, 534, 534, 534, 534, 534, 530, 534, 530, 530, 530, 530, 0, 534, 534, 534, 534, 530, 530, 530, 530, 530, 530, 530, 534, 534, 530, 534, 534, 534, 534, 534, 0, 337, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 350, 351, 530, 0, 0, 530, 530, 530, 0, 530, 530, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 0, 0, 534, 534, 534, 530, 0, 534, 530, 530, 0, 530, 530, 534, 530, 530, 530, 534, 530, 530, 530, 530, 530, 530, 0, 534, 530, 534, 0, 0, 534, 534, 0, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 530, 530, 530, 0, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 531, 530, 530, 530, 0, 0, 530, 530, 0, 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 531, 531, 99, 531, 531, 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, 531, 0, 531, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 531, 531, 531, 531, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 269, 269, 0, 529, 269, 269, 269, 269, 269, 269, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 269, 269, 0, 269, 269, 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, 269, 0, 269, 269, 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, 529, 269, 269, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 531, 531, 531, 0, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 531, 531, 0, 0, 531, 531, 0, 531, 0, 529, 529, 529, 529, 529, 529, 529, 529, 529, 0, 269, 269, 269, 269, 269, 269, 529, 269, 529, 529, 529, 529, 0, 529, 269, 269, 269, 529, 529, 529, 529, 529, 529, 529, 269, 269, 529, 269, 269, 269, 269, 269, 0, 0, 0, 529, 529, 0, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 0, 0, 529, 0, 0, 529, 529, 529, 0, 529, 529, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 0, 0, 269, 269, 269, 529, 0, 269, 529, 529, 0, 529, 529, 269, 529, 529, 529, 269, 529, 529, 529, 529, 529, 529, 535, 269, 529, 269, 0, 0, 269, 269, 0, 529, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, 0, 0, 0, 535, 535, 0, 532, 535, 535, 535, 535, 535, 535, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 535, 535, 535, 0, 535, 535, 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, 535, 0, 535, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 535, 535, 535, 532, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 533, 0, 0, 0, 536, 536, 0, 533, 536, 536, 536, 536, 536, 536, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 536, 536, 536, 0, 536, 536, 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, 536, 0, 536, 536, 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, 536, 536, 536, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, 532, 532, 532, 532, 532, 532, 532, 532, 0, 535, 535, 535, 535, 535, 535, 532, 535, 532, 532, 532, 532, 0, 535, 535, 535, 535, 532, 532, 532, 532, 532, 532, 532, 535, 535, 532, 535, 535, 535, 535, 535, 0, 0, 0, 532, 532, 0, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 0, 0, 532, 0, 0, 532, 532, 532, 0, 532, 532, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 535, 0, 0, 535, 535, 535, 532, 0, 535, 532, 532, 0, 532, 532, 535, 532, 532, 532, 535, 532, 532, 532, 532, 532, 532, 0, 535, 532, 535, 0, 0, 535, 535, 0, 532, 0, 533, 533, 533, 533, 533, 533, 533, 533, 533, 0, 536, 536, 536, 536, 536, 536, 533, 536, 533, 533, 533, 533, 0, 536, 536, 536, 536, 533, 533, 533, 533, 533, 533, 533, 536, 536, 533, 536, 536, 536, 536, 536, 0, 0, 0, 533, 533, 0, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 0, 0, 533, 0, 0, 533, 533, 533, 0, 533, 533, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 0, 0, 536, 536, 536, 533, 0, 536, 533, 533, 0, 533, 533, 536, 533, 533, 533, 536, 533, 533, 533, 533, 533, 533, 278, 536, 533, 536, 0, 0, 536, 536, 0, 533, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 278, 278, 0, 531, 278, 278, 278, 278, 278, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 278, 278, 100, 278, 278, 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, 278, 0, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, 0, 0, 278, 278, 531, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 390, 390, 0, 0, 390, 390, 390, 390, 390, 390, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 390, 0, 390, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 390, 0, 390, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 169, 0, 169, 0, 0, 0, 461, 0, 0, 390, 390, 390, 248, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 278, 278, 278, 278, 278, 278, 531, 278, 531, 531, 531, 531, 0, 0, 278, 278, 278, 531, 531, 531, 531, 531, 531, 531, 278, 278, 531, 278, 278, 278, 278, 278, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 531, 531, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 0, 0, 278, 278, 278, 531, 0, 278, 531, 531, 0, 531, 531, 278, 531, 531, 531, 278, 531, 531, 531, 531, 531, 531, 0, 278, 531, 278, 0, 0, 278, 278, 0, 531, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 390, 390, 390, 390, 390, 390, 248, 390, 248, 248, 248, 248, 0, 390, 390, 390, 0, 248, 248, 248, 248, 248, 248, 248, 390, 390, 248, 390, 390, 390, 390, 390, 0, 0, 0, 248, 248, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 248, 248, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 0, 0, 390, 390, 390, 248, 0, 390, 248, 248, 0, 248, 248, 390, 248, 248, 248, 390, 248, 248, 248, 248, 248, 248, 558, 0, 248, 390, 0, 0, 390, 390, 0, 248, 558, 0, 0, 0, 0, 0, 169, 0, 169, 169, 169, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 558, 558, 0, 0, 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 461, 0, 0, 0, 169, 558, 558, 0, 558, 558, 169, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 169, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, 558, 558, 558, 248, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 0, 558, 558, 0, 0, 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 558, 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 179, 0, 179, 0, 0, 0, 463, 0, 0, 0, 558, 558, 248, 0, 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, 0, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 558, 558, 558, 558, 558, 558, 248, 558, 248, 248, 248, 248, 0, 558, 558, 558, 0, 248, 248, 248, 248, 248, 248, 248, 558, 558, 248, 558, 558, 558, 558, 558, 0, 0, 0, 248, 248, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 248, 248, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 558, 558, 558, 248, 0, 558, 248, 248, 0, 248, 248, 558, 248, 248, 248, 558, 248, 248, 248, 248, 248, 248, 0, 0, 248, 558, 0, 0, 558, 558, 0, 248, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 558, 558, 558, 558, 558, 558, 248, 558, 248, 248, 248, 248, 0, 0, 558, 558, 0, 248, 248, 248, 248, 248, 248, 248, 558, 558, 248, 558, 558, 558, 558, 558, 0, 0, 0, 248, 248, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 248, 248, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 558, 558, 558, 248, 0, 558, 248, 248, 0, 248, 248, 558, 248, 248, 248, 558, 248, 248, 248, 248, 248, 248, 534, 0, 248, 558, 0, 0, 558, 558, 0, 248, 534, 0, 0, 0, 0, 0, 179, 0, 179, 179, 179, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 534, 534, 0, 530, 534, 534, 534, 90, 534, 534, 534, 0, 0, 0, 0, 0, 0, 463, 0, 0, 0, 179, 534, 534, 98, 534, 534, 179, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 0, 179, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 534, 534, 534, 530, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 89, 530, 530, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 530, 97, 530, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 530, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 164, 0, 164, 0, 0, 0, 464, 0, 0, 530, 530, 530, 530, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 534, 534, 534, 0, 534, 534, 530, 534, 530, 530, 530, 530, 0, 534, 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 534, 534, 530, 534, 534, 534, 534, 534, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 530, 530, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 0, 0, 534, 534, 534, 530, 0, 0, 530, 530, 0, 530, 530, 0, 530, 530, 530, 534, 530, 530, 530, 530, 530, 530, 0, 0, 530, 534, 0, 0, 534, 534, 0, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 0, 530, 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 530, 530, 530, 0, 0, 530, 530, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 531, 0, 530, 530, 0, 0, 530, 530, 0, 530, 531, 0, 0, 0, 0, 0, 164, 0, 164, 164, 164, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 91, 531, 531, 531, 0, 0, 0, 0, 0, 0, 464, 0, 0, 0, 164, 531, 531, 99, 531, 531, 164, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 164, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 531, 531, 531, 531, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 534, 534, 0, 530, 534, 534, 534, 534, 534, 534, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 534, 98, 534, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 534, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 147, 0, 147, 0, 0, 0, 466, 0, 0, 534, 534, 534, 530, 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 531, 531, 531, 0, 0, 531, 531, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 531, 0, 0, 531, 531, 0, 531, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 534, 534, 534, 0, 534, 534, 530, 534, 530, 530, 530, 530, 0, 534, 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 534, 534, 530, 534, 534, 534, 534, 534, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 530, 530, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 0, 0, 534, 534, 534, 530, 0, 0, 530, 530, 0, 530, 530, 0, 530, 530, 530, 534, 530, 530, 530, 530, 530, 530, 530, 0, 530, 534, 0, 0, 534, 534, 0, 530, 530, 0, 0, 0, 0, 0, 147, 0, 147, 147, 147, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 0, 0, 0, 0, 466, 0, 0, 0, 147, 530, 530, 97, 530, 530, 147, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, 147, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 530, 530, 530, 530, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 531, 99, 531, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 531, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 148, 0, 148, 0, 0, 0, 465, 0, 0, 531, 531, 531, 531, 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 0, 530, 0, 0, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 0, 0, 530, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 530, 530, 530, 0, 0, 530, 530, 0, 530, 530, 0, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 0, 0, 530, 530, 0, 0, 530, 530, 0, 530, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 0, 531, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 531, 531, 531, 0, 0, 531, 531, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 278, 0, 531, 531, 0, 0, 531, 531, 0, 531, 278, 0, 0, 0, 0, 0, 148, 0, 148, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 278, 278, 0, 531, 278, 278, 278, 92, 278, 278, 278, 0, 0, 0, 0, 0, 0, 465, 0, 0, 0, 148, 278, 278, 100, 278, 278, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 278, 278, 531, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 278, 278, 0, 531, 278, 278, 278, 278, 278, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 278, 100, 278, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 0, 278, 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 108, 0, 108, 0, 108, 0, 0, 0, 454, 0, 0, 0, 0, 0, 0, 0, 278, 278, 531, 0, 109, 108, 109, 0, 109, 0, 0, 0, 458, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 109, 278, 278, 278, 0, 278, 278, 531, 278, 531, 531, 531, 531, 0, 0, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 278, 278, 531, 278, 278, 278, 278, 278, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 531, 531, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 0, 0, 278, 278, 278, 531, 0, 0, 531, 531, 0, 531, 531, 0, 531, 531, 531, 278, 531, 531, 531, 531, 531, 531, 0, 0, 531, 278, 0, 0, 278, 278, 0, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 278, 278, 278, 0, 278, 278, 531, 278, 531, 531, 531, 531, 0, 0, 0, 0, 0, 531, 531, 531, 531, 531, 531, 531, 278, 278, 531, 278, 278, 278, 278, 278, 0, 0, 0, 531, 531, 0, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 0, 0, 531, 0, 0, 531, 531, 531, 0, 531, 531, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 0, 0, 278, 278, 278, 531, 0, 0, 531, 531, 0, 531, 531, 0, 531, 531, 531, 278, 531, 531, 531, 531, 531, 531, 558, 0, 531, 278, 0, 0, 278, 278, 0, 531, 558, 0, 108, 0, 108, 108, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 248, 109, 109, 109, 109, 0, 0, 0, 558, 0, 0, 0, 0, 558, 0, 0, 0, 454, 0, 0, 0, 108, 0, 0, 0, 0, 558, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, 108, 109, 0, 108, 108, 0, 0, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 558, 0, 558, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 0, 0, 391, 391, 391, 391, 391, 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 391, 96, 391, 391, 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, 391, 0, 391, 391, 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, 391, 391, 391, 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, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 558, 558, 558, 558, 558, 558, 248, 558, 248, 248, 248, 248, 0, 558, 558, 0, 0, 248, 248, 248, 248, 248, 248, 248, 558, 558, 248, 558, 558, 558, 558, 558, 0, 0, 0, 248, 248, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 248, 0, 0, 248, 248, 0, 248, 248, 0, 248, 248, 248, 558, 248, 248, 248, 248, 248, 248, 0, 0, 248, 558, 0, 0, 558, 558, 0, 248, 391, 391, 391, 391, 391, 391, 0, 391, 0, 0, 0, 0, 0, 391, 391, 391, 391, 785, 0, 0, 791, 0, 0, 0, 391, 391, 0, 391, 391, 391, 391, 391, 796, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 353, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 390, 0, 391, 391, 391, 0, 0, 391, 0, 0, 390, 0, 0, 391, 0, 0, 0, 391, 356, 0, 0, 0, 0, 0, 0, 391, 0, 391, 0, 0, 391, 391, 0, 0, 0, 0, 0, 390, 390, 0, 0, 390, 390, 390, 390, 390, 390, 390, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 390, 390, 0, 390, 390, 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, 390, 0, 390, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 917, 0, 919, 390, 390, 390, 920, 0, 0, 0, 0, 0, 924, 0, 0, 0, 0, 0, 929, 0, 0, 460, 460, 0, 0, 460, 460, 460, 460, 460, 460, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 460, 460, 95, 460, 460, 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, 460, 0, 460, 460, 0, 0, 0, 0, 0, 0, 0, 972, 0, 0, 0, 0, 973, 0, 974, 0, 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, 350, 351, 390, 390, 390, 390, 390, 390, 0, 390, 0, 0, 0, 0, 0, 390, 390, 390, 390, 0, 0, 0, 0, 0, 0, 0, 390, 390, 0, 390, 390, 390, 390, 390, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 0, 0, 390, 390, 390, 0, 260, 390, 0, 258, 0, 31, 0, 390, 0, 0, 0, 390, 0, 0, 0, 31, 0, 0, 260, 390, 0, 390, 0, 0, 390, 390, 460, 460, 460, 460, 460, 460, 0, 460, 0, 0, 0, 0, 0, 0, 460, 460, 460, 0, 0, 0, 31, 0, 0, 0, 460, 460, 0, 460, 460, 460, 460, 460, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 558, 0, 460, 460, 460, 0, 459, 460, 0, 0, 558, 0, 0, 460, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, 460, 0, 460, 0, 0, 460, 460, 31, 0, 0, 0, 0, 558, 558, 0, 0, 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, 0, 558, 558, 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, 558, 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, 0, 0, 260, 260, 260, 260, 260, 260, 0, 260, 0, 0, 0, 0, 0, 268, 268, 0, 0, 268, 268, 268, 268, 268, 268, 268, 0, 0, 0, 260, 260, 260, 260, 260, 0, 0, 268, 268, 268, 102, 268, 268, 0, 0, 0, 0, 0, 0, 31, 31, 31, 0, 31, 31, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 268, 268, 0, 0, 31, 31, 31, 31, 31, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 268, 268, 260, 260, 0, 0, 0, 0, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 353, 0, 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 31, 558, 0, 31, 31, 0, 0, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, 558, 558, 356, 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 558, 558, 558, 0, 0, 558, 0, 0, 0, 0, 0, 558, 50, 0, 0, 558, 0, 0, 0, 0, 0, 0, 50, 558, 0, 558, 0, 0, 558, 558, 268, 268, 268, 268, 268, 268, 0, 268, 0, 0, 0, 0, 0, 0, 268, 268, 268, 0, 0, 0, 0, 0, 0, 50, 268, 268, 0, 268, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 279, 0, 268, 268, 268, 0, 0, 268, 0, 0, 279, 0, 0, 268, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 268, 0, 268, 0, 0, 268, 268, 0, 0, 0, 50, 0, 279, 279, 0, 0, 279, 279, 279, 279, 279, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 279, 101, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 342, 343, 0, 0, 279, 0, 279, 279, 0, 0, 350, 351, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 228, 0, 0, 228, 228, 228, 228, 228, 322, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 228, 228, 0, 228, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, 50, 50, 0, 50, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 322, 0, 228, 228, 0, 0, 50, 50, 0, 50, 50, 50, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 228, 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, 279, 279, 279, 279, 279, 279, 0, 279, 0, 50, 0, 0, 50, 50, 279, 279, 279, 0, 0, 0, 0, 0, 0, 0, 279, 279, 0, 279, 279, 279, 279, 279, 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, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 0, 0, 279, 279, 279, 0, 0, 279, 0, 0, 0, 0, 0, 279, 52, 0, 0, 279, 0, 0, 0, 0, 0, 0, 52, 279, 0, 279, 0, 0, 279, 279, 228, 228, 228, 228, 228, 228, 0, 228, 0, 0, 0, 0, 0, 0, 228, 228, 228, 0, 0, 0, 0, 0, 0, 52, 228, 228, 0, 228, 228, 228, 228, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 287, 0, 228, 228, 322, 0, 0, 228, 0, 0, 287, 0, 0, 228, 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 228, 0, 228, 0, 0, 228, 228, 0, 0, 0, 52, 0, 287, 287, 0, 0, 287, 287, 287, 287, 287, 287, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 287, 287, 0, 287, 287, 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, 287, 0, 287, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, 0, 0, 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 52, 52, 52, 0, 52, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 558, 0, 558, 558, 0, 0, 52, 52, 0, 52, 52, 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, 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, 287, 287, 287, 287, 287, 287, 0, 287, 0, 52, 0, 0, 52, 52, 287, 287, 287, 0, 0, 0, 0, 0, 0, 0, 287, 287, 0, 287, 287, 287, 287, 287, 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, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 0, 0, 287, 287, 287, 0, 0, 287, 0, 0, 0, 0, 0, 287, 53, 0, 0, 287, 0, 0, 0, 0, 0, 0, 53, 287, 0, 287, 0, 0, 287, 287, 558, 558, 558, 558, 558, 558, 0, 558, 0, 0, 0, 0, 0, 0, 558, 558, 558, 0, 0, 0, 0, 0, 0, 53, 558, 558, 0, 558, 558, 558, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 452, 0, 558, 558, 558, 0, 0, 558, 0, 0, 452, 0, 0, 558, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 558, 0, 558, 0, 0, 558, 558, 0, 0, 0, 53, 0, 452, 452, 0, 0, 452, 452, 452, 452, 452, 452, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 452, 452, 0, 452, 452, 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, 452, 0, 452, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 453, 0, 0, 453, 453, 453, 453, 453, 453, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 453, 453, 0, 453, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, 53, 53, 0, 53, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 453, 0, 453, 453, 0, 0, 53, 53, 0, 53, 53, 53, 53, 53, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, 453, 0, 0, 0, 0, 0, 0, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 353, 352, 0, 0, 0, 0, 452, 452, 452, 452, 452, 452, 0, 452, 0, 53, 0, 0, 53, 53, 452, 452, 452, 0, 0, 0, 0, 0, 0, 0, 452, 452, 356, 452, 452, 452, 452, 452, 0, 0, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 354, 0, 353, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 0, 0, 452, 452, 452, 0, 0, 452, 0, 0, 0, 0, 0, 452, 0, 0, 0, 452, 0, 356, 0, 0, 0, 0, 0, 452, 0, 452, 0, 0, 452, 452, 453, 453, 453, 453, 453, 453, 0, 453, 0, 0, 0, 0, 0, 0, 453, 453, 453, 355, 0, 0, 0, 0, 0, 0, 453, 453, 0, 453, 453, 453, 453, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 0, 0, 453, 453, 453, 0, 0, 453, 0, 0, 0, 0, 0, 453, 318, 318, 0, 453, 318, 318, 318, 318, 318, 318, 318, 453, 0, 453, 0, 0, 453, 453, 0, 0, 0, 0, 318, 318, 0, 318, 318, 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, 319, 318, 0, 318, 318, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 0, 0, 350, 351, 0, 0, 318, 318, 0, 319, 319, 0, 0, 319, 319, 319, 319, 319, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 319, 0, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, 340, 341, 342, 343, 344, 0, 346, 347, 319, 0, 319, 319, 350, 351, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 282, 0, 0, 282, 282, 282, 282, 282, 282, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 282, 0, 282, 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 318, 318, 318, 318, 318, 0, 318, 0, 0, 0, 0, 0, 0, 318, 318, 0, 0, 282, 0, 282, 282, 0, 0, 318, 318, 0, 318, 318, 318, 318, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282, 282, 0, 0, 0, 0, 0, 0, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 0, 0, 318, 318, 318, 0, 0, 318, 0, 0, 0, 0, 0, 318, 0, 0, 0, 318, 319, 319, 319, 319, 319, 319, 0, 319, 0, 318, 0, 0, 318, 318, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 319, 319, 0, 319, 319, 319, 319, 319, 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, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 0, 0, 319, 319, 319, 0, 0, 319, 0, 0, 0, 0, 0, 319, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 319, 319, 282, 282, 282, 282, 282, 282, 0, 282, 0, 0, 0, 0, 0, 0, 282, 282, 0, 0, 0, 0, 0, 0, 0, 0, 282, 282, 0, 282, 282, 282, 282, 282, 0, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 353, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 207, 0, 282, 282, 282, 0, 0, 282, 0, 0, 207, 0, 0, 282, 0, 0, 0, 282, 356, 0, 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, 282, 282, 0, 0, 0, 0, 0, 207, 207, 0, 0, 207, 207, 207, 207, 207, 0, 207, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 207, 207, 0, 207, 207, 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, 203, 0, 207, 207, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 207, 0, 0, 203, 203, 0, 0, 203, 203, 203, 203, 203, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 203, 203, 0, 203, 203, 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, 200, 0, 203, 203, 0, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 203, 0, 0, 200, 200, 0, 0, 200, 200, 200, 200, 200, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 200, 200, 0, 200, 200, 0, 0, 0, 0, 337, 338, 339, 340, 341, 342, 343, 0, 0, 346, 347, 0, 0, 0, 0, 350, 351, 207, 207, 207, 207, 207, 207, 0, 207, 200, 200, 0, 0, 0, 0, 207, 207, 207, 0, 0, 0, 0, 0, 0, 0, 207, 207, 0, 207, 207, 207, 207, 207, 0, 0, 0, 0, 0, 0, 0, 200, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 0, 0, 207, 207, 19, 0, 0, 207, 0, 0, 0, 0, 0, 207, 19, 0, 0, 0, 0, 203, 203, 203, 203, 203, 203, 207, 203, 207, 0, 0, 207, 207, 0, 203, 203, 203, 0, 0, 0, 0, 0, 0, 0, 203, 203, 19, 203, 203, 203, 203, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 0, 0, 203, 203, 40, 0, 0, 203, 0, 0, 0, 0, 0, 203, 40, 0, 0, 0, 0, 200, 200, 200, 200, 200, 200, 203, 200, 203, 0, 0, 203, 203, 0, 200, 200, 200, 0, 0, 19, 0, 0, 0, 0, 200, 200, 40, 200, 200, 200, 200, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 0, 0, 200, 200, 0, 0, 0, 200, 0, 0, 0, 201, 201, 200, 0, 201, 201, 201, 201, 201, 0, 201, 0, 0, 0, 200, 0, 200, 0, 0, 200, 200, 201, 201, 201, 0, 201, 201, 40, 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, 202, 0, 201, 201, 0, 0, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 0, 19, 19, 0, 19, 0, 201, 201, 0, 0, 202, 202, 0, 0, 202, 202, 202, 202, 202, 0, 202, 0, 0, 0, 19, 19, 19, 19, 19, 0, 0, 202, 202, 202, 0, 202, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, 202, 202, 0, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 0, 40, 40, 0, 40, 19, 202, 202, 19, 19, 204, 204, 0, 0, 204, 204, 204, 204, 204, 0, 204, 0, 0, 0, 40, 40, 40, 40, 0, 0, 0, 204, 204, 204, 0, 204, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 201, 201, 201, 201, 201, 0, 201, 204, 204, 0, 0, 0, 0, 201, 201, 201, 0, 0, 0, 0, 0, 0, 0, 201, 201, 0, 201, 201, 201, 201, 201, 0, 0, 0, 0, 0, 0, 40, 204, 204, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 0, 0, 201, 201, 0, 0, 0, 201, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 202, 202, 202, 202, 202, 202, 201, 202, 201, 0, 0, 201, 201, 0, 202, 202, 202, 0, 0, 0, 0, 0, 0, 0, 202, 202, 0, 202, 202, 202, 202, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 0, 0, 202, 202, 0, 0, 0, 202, 0, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 204, 204, 204, 204, 204, 204, 202, 204, 202, 0, 0, 202, 202, 0, 204, 204, 204, 0, 0, 0, 0, 0, 0, 0, 204, 204, 0, 204, 204, 204, 204, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 0, 0, 204, 204, 0, 0, 0, 204, 0, 0, 0, 205, 205, 204, 0, 205, 205, 205, 205, 205, 0, 205, 0, 0, 0, 204, 0, 204, 0, 0, 204, 204, 205, 205, 205, 0, 205, 205, 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, 391, 0, 205, 205, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 205, 0, 0, 391, 391, 0, 0, 391, 391, 391, 88, 391, 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 96, 391, 391, 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, 391, 0, 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 391, 0, 0, 0, 0, 391, 391, 0, 0, 391, 391, 391, 391, 391, 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 96, 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 205, 205, 205, 205, 205, 0, 205, 391, 0, 0, 391, 0, 0, 205, 205, 205, 0, 0, 0, 0, 0, 0, 0, 205, 205, 0, 205, 205, 205, 205, 205, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 0, 0, 205, 205, 0, 0, 0, 205, 0, 0, 0, 0, 0, 205, 0, 0, 0, 0, 0, 391, 391, 391, 0, 391, 391, 205, 391, 205, 0, 0, 205, 205, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 0, 391, 391, 391, 391, 391, 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, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 0, 0, 391, 391, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 391, 391, 391, 0, 391, 391, 391, 391, 0, 391, 391, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 391, 0, 391, 391, 391, 391, 391, 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, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 460, 0, 391, 391, 391, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 391, 391, 0, 0, 0, 0, 0, 460, 460, 0, 0, 460, 460, 460, 87, 460, 460, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 460, 95, 460, 460, 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, 268, 460, 0, 0, 460, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 460, 0, 268, 268, 0, 0, 268, 268, 268, 94, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 102, 268, 268, 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, 268, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 0, 0, 279, 279, 279, 93, 279, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 101, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 460, 460, 0, 460, 460, 0, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 279, 0, 0, 460, 460, 0, 460, 460, 460, 460, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 0, 0, 0, 0, 0, 0, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 0, 0, 460, 460, 460, 0, 459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 268, 268, 268, 0, 268, 268, 0, 268, 0, 460, 0, 0, 460, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 0, 268, 268, 268, 268, 268, 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, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 0, 0, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 268, 268, 279, 279, 279, 0, 279, 279, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 279, 0, 279, 279, 279, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 0, 0, 279, 279, 279, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, 198, 279, 198, 198, 198, 0, 0, 0, 0, 0, 0, 279, 0, 0, 279, 279, 0, 198, 198, 198, 0, 198, 198, 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, 199, 0, 198, 198, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 198, 0, 0, 0, 199, 0, 0, 199, 0, 199, 199, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 199, 199, 0, 199, 199, 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, 268, 0, 199, 199, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 199, 0, 0, 268, 268, 0, 0, 268, 268, 268, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 268, 268, 102, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 198, 198, 198, 198, 198, 268, 198, 0, 268, 0, 0, 0, 0, 198, 198, 198, 0, 0, 0, 0, 0, 0, 0, 198, 198, 0, 198, 198, 198, 198, 198, 0, 0, 0, 0, 0, 0, 0, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 0, 0, 198, 198, 0, 0, 0, 198, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 199, 199, 199, 199, 199, 199, 198, 199, 198, 0, 0, 198, 198, 0, 199, 199, 199, 0, 0, 0, 0, 0, 0, 0, 199, 199, 0, 199, 199, 199, 199, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 0, 0, 199, 199, 0, 0, 0, 199, 0, 0, 0, 0, 223, 199, 0, 223, 0, 0, 223, 268, 268, 268, 0, 268, 268, 199, 268, 199, 0, 0, 199, 199, 223, 223, 223, 0, 223, 223, 0, 0, 0, 0, 0, 268, 268, 0, 268, 268, 268, 268, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 223, 223, 0, 0, 0, 0, 0, 0, 224, 0, 0, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 0, 0, 268, 268, 268, 0, 0, 223, 223, 0, 0, 0, 224, 0, 0, 224, 0, 268, 224, 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 268, 268, 224, 224, 224, 0, 224, 224, 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, 210, 0, 224, 224, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 224, 0, 0, 0, 210, 0, 0, 210, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, 210, 0, 210, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 223, 223, 223, 223, 223, 0, 223, 210, 210, 0, 0, 0, 0, 223, 223, 223, 0, 0, 0, 0, 0, 0, 0, 223, 223, 0, 223, 223, 223, 223, 223, 0, 0, 0, 0, 0, 0, 0, 210, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 0, 0, 223, 223, 0, 0, 0, 223, 0, 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, 224, 224, 224, 224, 224, 224, 223, 224, 223, 0, 0, 223, 223, 0, 224, 224, 224, 0, 0, 0, 0, 0, 0, 0, 224, 224, 0, 224, 224, 224, 224, 224, 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, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 0, 208, 224, 224, 0, 0, 0, 224, 0, 0, 0, 208, 0, 224, 0, 0, 0, 0, 0, 210, 210, 210, 210, 210, 210, 224, 210, 224, 0, 0, 224, 224, 0, 210, 210, 210, 0, 0, 0, 0, 0, 0, 208, 210, 210, 208, 210, 210, 210, 210, 210, 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, 208, 0, 208, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, 209, 0, 208, 208, 0, 0, 210, 0, 0, 0, 209, 0, 210, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 210, 0, 210, 0, 0, 210, 210, 0, 0, 208, 208, 0, 354, 0, 353, 352, 0, 209, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 209, 209, 0, 209, 209, 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 209, 209, 0, 0, 0, 0, 0, 355, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 209, 0, 0, 0, 0, 0, 0, 213, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 213, 213, 0, 213, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, 208, 208, 208, 208, 0, 208, 213, 0, 0, 0, 0, 0, 208, 208, 208, 0, 0, 0, 0, 0, 0, 0, 208, 208, 0, 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, 209, 209, 209, 209, 209, 209, 208, 209, 208, 0, 0, 208, 208, 0, 209, 209, 209, 0, 0, 0, 0, 0, 0, 0, 209, 209, 0, 209, 209, 209, 209, 209, 0, 0, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 0, 0, 350, 351, 0, 0, 0, 439, 0, 0, 0, 0, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 0, 215, 0, 0, 0, 0, 0, 209, 0, 0, 0, 215, 0, 209, 0, 0, 0, 0, 0, 213, 213, 213, 213, 213, 213, 209, 213, 209, 0, 0, 209, 209, 0, 213, 213, 213, 0, 0, 0, 0, 0, 0, 215, 213, 213, 215, 213, 213, 213, 213, 213, 0, 0, 0, 0, 0, 0, 0, 0, 215, 215, 215, 0, 215, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 0, 212, 0, 215, 0, 0, 0, 213, 0, 0, 0, 212, 0, 213, 362, 357, 0, 0, 0, 360, 358, 0, 359, 0, 361, 213, 0, 213, 0, 0, 213, 213, 0, 0, 0, 215, 0, 354, 0, 353, 352, 0, 212, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 212, 212, 0, 212, 212, 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 212, 0, 0, 0, 0, 0, 0, 355, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 214, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 214, 214, 0, 214, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 215, 215, 215, 215, 215, 0, 215, 214, 0, 0, 0, 0, 0, 215, 215, 215, 0, 0, 0, 0, 0, 0, 0, 215, 215, 0, 215, 215, 215, 215, 215, 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 212, 212, 212, 212, 212, 212, 215, 212, 215, 0, 0, 215, 215, 0, 212, 212, 212, 0, 0, 0, 0, 0, 0, 0, 212, 212, 0, 212, 212, 212, 212, 212, 0, 0, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 0, 0, 350, 351, 0, 0, 0, 0, 0, 0, 0, 0, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 0, 211, 0, 0, 0, 0, 0, 212, 0, 0, 0, 211, 0, 212, 0, 0, 0, 0, 0, 214, 214, 214, 214, 214, 214, 212, 214, 212, 0, 0, 212, 212, 0, 214, 214, 214, 0, 0, 0, 0, 0, 0, 211, 214, 214, 211, 214, 214, 214, 214, 214, 0, 0, 0, 0, 0, 0, 0, 0, 211, 211, 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 0, 216, 0, 211, 0, 0, 0, 214, 0, 0, 0, 216, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 214, 362, 357, 214, 214, 0, 360, 358, 211, 359, 0, 361, 0, 0, 0, 216, 0, 0, 216, 0, 0, 0, 0, 0, 354, 0, 353, 352, 0, 0, 0, 0, 216, 216, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 217, 0, 216, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 217, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 217, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 211, 211, 211, 211, 211, 0, 211, 217, 0, 0, 0, 0, 0, 211, 211, 211, 0, 0, 0, 0, 0, 0, 0, 211, 211, 0, 211, 211, 211, 211, 211, 0, 0, 0, 0, 0, 0, 0, 0, 217, 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, 211, 211, 0, 0, 211, 211, 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 216, 216, 216, 216, 216, 216, 211, 216, 211, 0, 0, 211, 211, 0, 216, 216, 216, 0, 0, 0, 0, 717, 0, 0, 216, 216, 0, 216, 216, 216, 216, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 0, 0, 350, 351, 216, 216, 0, 0, 216, 216, 0, 218, 0, 0, 0, 0, 0, 216, 0, 0, 0, 218, 0, 216, 0, 0, 0, 0, 0, 217, 217, 217, 217, 217, 217, 216, 217, 216, 0, 0, 216, 216, 0, 217, 217, 217, 0, 0, 0, 0, 0, 0, 218, 217, 217, 218, 217, 217, 217, 217, 217, 0, 0, 0, 0, 0, 0, 0, 0, 218, 218, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 217, 0, 0, 217, 217, 0, 225, 0, 218, 0, 0, 0, 217, 0, 0, 0, 225, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 217, 0, 0, 217, 217, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 225, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 0, 0, 0, 225, 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, 219, 0, 225, 0, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 219, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, 219, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 218, 218, 218, 218, 218, 0, 218, 219, 0, 0, 0, 0, 0, 218, 218, 218, 0, 0, 0, 0, 0, 0, 0, 218, 218, 0, 218, 218, 218, 218, 218, 0, 0, 0, 0, 0, 0, 0, 0, 219, 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, 218, 218, 0, 0, 218, 218, 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 225, 225, 225, 225, 225, 225, 218, 225, 218, 0, 380, 218, 218, 0, 225, 225, 225, 0, 0, 0, 380, 0, 0, 0, 225, 225, 0, 225, 225, 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 0, 380, 225, 225, 0, 220, 0, 0, 0, 0, 0, 225, 0, 0, 0, 220, 0, 225, 0, 0, 0, 0, 0, 219, 219, 219, 219, 219, 219, 225, 219, 225, 0, 0, 225, 225, 0, 219, 219, 219, 0, 0, 0, 0, 0, 0, 220, 219, 219, 220, 219, 219, 219, 219, 219, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 380, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, 219, 0, 0, 219, 219, 0, 226, 0, 220, 0, 0, 0, 219, 0, 0, 0, 226, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 219, 0, 219, 0, 0, 219, 219, 0, 0, 197, 220, 0, 0, 0, 0, 0, 0, 226, 0, 197, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 226, 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 197, 226, 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 380, 380, 380, 380, 380, 0, 380, 0, 0, 0, 0, 226, 197, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 380, 0, 380, 380, 380, 380, 380, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 197, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220, 220, 0, 220, 0, 0, 0, 0, 0, 380, 220, 220, 220, 227, 0, 0, 227, 0, 0, 0, 220, 220, 380, 220, 220, 220, 220, 220, 0, 0, 227, 227, 380, 0, 0, 380, 380, 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, 220, 220, 0, 227, 220, 220, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 226, 226, 226, 226, 226, 226, 220, 226, 220, 0, 227, 220, 220, 0, 226, 226, 226, 0, 0, 0, 0, 0, 0, 0, 226, 226, 0, 226, 226, 226, 226, 226, 0, 197, 197, 197, 197, 197, 197, 0, 197, 0, 0, 0, 0, 0, 233, 197, 197, 197, 0, 0, 0, 0, 0, 0, 233, 197, 197, 0, 197, 197, 197, 197, 197, 0, 0, 226, 0, 0, 226, 226, 0, 0, 0, 0, 0, 0, 0, 226, 0, 524, 0, 0, 0, 226, 0, 233, 0, 0, 233, 524, 0, 0, 0, 0, 0, 226, 0, 226, 0, 0, 226, 226, 233, 233, 0, 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, 197, 0, 0, 0, 524, 0, 0, 524, 0, 0, 0, 0, 197, 0, 197, 0, 0, 197, 197, 0, 0, 233, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 227, 227, 227, 227, 227, 0, 227, 0, 0, 0, 0, 0, 0, 227, 227, 227, 0, 0, 233, 0, 0, 524, 0, 227, 227, 0, 227, 227, 227, 227, 227, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 256, 0, 227, 525, 0, 0, 0, 0, 227, 0, 0, 0, 0, 525, 0, 256, 0, 0, 0, 0, 227, 0, 227, 0, 0, 227, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 525, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 256, 0, 0, 233, 233, 233, 233, 233, 233, 0, 233, 0, 0, 0, 0, 525, 0, 233, 233, 233, 0, 0, 0, 0, 0, 0, 522, 233, 233, 522, 233, 233, 233, 233, 0, 0, 257, 0, 524, 524, 524, 524, 524, 524, 522, 524, 257, 525, 0, 0, 0, 0, 524, 524, 0, 0, 0, 0, 0, 0, 0, 0, 524, 524, 0, 524, 524, 524, 524, 524, 0, 0, 0, 0, 0, 526, 0, 257, 522, 0, 257, 0, 233, 0, 0, 526, 0, 0, 233, 0, 0, 0, 0, 0, 0, 257, 0, 0, 0, 0, 233, 0, 233, 0, 0, 233, 233, 0, 0, 0, 522, 0, 0, 0, 0, 0, 526, 0, 0, 526, 0, 0, 558, 524, 0, 0, 0, 0, 0, 257, 0, 0, 558, 0, 526, 0, 0, 524, 0, 0, 524, 524, 256, 256, 256, 256, 256, 256, 0, 256, 0, 0, 0, 0, 0, 0, 256, 256, 0, 0, 0, 257, 0, 558, 0, 258, 256, 256, 526, 256, 256, 256, 256, 256, 0, 258, 0, 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 525, 525, 525, 525, 525, 525, 0, 525, 0, 0, 0, 526, 0, 0, 525, 525, 0, 258, 0, 0, 258, 0, 0, 0, 525, 525, 558, 525, 525, 525, 525, 525, 0, 0, 0, 258, 0, 0, 256, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 0, 256, 0, 0, 256, 256, 0, 558, 0, 0, 0, 0, 522, 522, 522, 522, 522, 522, 258, 522, 0, 0, 0, 0, 0, 0, 522, 522, 0, 250, 0, 0, 0, 0, 525, 0, 522, 522, 0, 522, 522, 522, 522, 522, 0, 0, 0, 250, 525, 0, 258, 525, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 257, 257, 257, 257, 257, 0, 257, 0, 0, 0, 0, 0, 0, 257, 257, 0, 0, 250, 0, 0, 0, 0, 0, 257, 257, 0, 257, 257, 257, 257, 257, 0, 0, 522, 0, 0, 0, 0, 526, 526, 526, 526, 526, 526, 0, 526, 0, 522, 0, 250, 522, 522, 526, 526, 0, 0, 0, 0, 0, 0, 0, 0, 526, 526, 0, 526, 526, 526, 526, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 558, 558, 558, 558, 558, 558, 0, 558, 0, 0, 0, 0, 0, 257, 558, 558, 257, 257, 0, 0, 0, 0, 56, 0, 558, 558, 0, 558, 558, 558, 558, 558, 56, 0, 0, 0, 0, 0, 526, 0, 0, 0, 0, 258, 258, 258, 258, 258, 258, 0, 258, 0, 526, 0, 0, 526, 526, 258, 258, 60, 0, 0, 0, 56, 0, 0, 0, 258, 258, 60, 258, 258, 258, 258, 258, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 60, 0, 558, 558, 0, 0, 250, 250, 250, 250, 250, 250, 0, 250, 0, 56, 0, 0, 60, 0, 250, 250, 0, 0, 0, 0, 0, 0, 258, 0, 250, 250, 0, 250, 250, 250, 250, 250, 0, 58, 0, 0, 258, 0, 0, 258, 258, 56, 0, 58, 0, 0, 60, 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, 58, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 250, 103, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 250, 0, 0, 250, 250, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 454, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 56, 56, 56, 56, 0, 56, 0, 0, 0, 0, 0, 0, 56, 56, 527, 0, 0, 103, 0, 0, 0, 0, 56, 56, 0, 56, 56, 56, 56, 56, 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 0, 60, 0, 0, 0, 0, 0, 0, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 0, 60, 60, 60, 60, 60, 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, 56, 0, 0, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 58, 58, 58, 58, 58, 0, 58, 0, 0, 0, 0, 0, 0, 58, 58, 0, 0, 0, 60, 0, 0, 60, 60, 58, 58, 0, 58, 58, 58, 58, 58, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0, 103, 103, 0, 103, 103, 103, 103, 0, 527, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 0, 0, 103, 0, 0, 0, 0, 0, 103, 0, 103, 103, 103, 0, 103, 103, 103, 103, 103, 103, 0, 103, 103, 103, 0, 0, 103, 0, 0, 0, 103, 103, 58, 103, 103, 58, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 454, 103, 0, 0, 103, 103, 0, 103, 103, 0, 103, 0, 103, 454, 103, 103, 103, 103, 103, 103, 0, 104, 103, 103, 0, 0, 103, 103, 528, 103, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 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, 458, 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, 528, 0, 0, 104, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 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, 534, 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, 534, 0, 0, 103, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 61, 104, 104, 0, 104, 104, 104, 104, 0, 528, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 0, 0, 104, 0, 0, 0, 233, 0, 104, 0, 104, 104, 104, 0, 104, 104, 104, 104, 104, 104, 0, 104, 104, 104, 0, 0, 104, 0, 0, 0, 104, 104, 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 104, 0, 0, 104, 104, 0, 104, 104, 0, 104, 0, 104, 458, 104, 104, 104, 104, 104, 104, 0, 62, 104, 104, 0, 0, 104, 104, 0, 104, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0, 103, 103, 0, 103, 103, 103, 103, 0, 534, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 0, 0, 103, 0, 0, 104, 0, 0, 103, 0, 103, 103, 103, 0, 103, 103, 103, 103, 103, 103, 0, 103, 103, 103, 0, 0, 103, 0, 104, 0, 103, 103, 0, 103, 103, 531, 0, 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, 103, 104, 104, 103, 103, 0, 103, 103, 0, 103, 0, 103, 534, 103, 103, 103, 103, 103, 103, 0, 0, 103, 103, 0, 0, 103, 103, 0, 103, 0, 0, 0, 0, 278, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 104, 104, 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 104, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 0, 46, 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 230, 0, 0, 231, 232, 0, 60, 279, 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, 104, 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 323, 0, 104, 104, 0, 104, 104, 104, 104, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 0, 0, 104, 0, 0, 323, 0, 0, 104, 0, 104, 104, 104, 0, 104, 104, 104, 104, 104, 104, 0, 104, 104, 104, 0, 0, 104, 0, 0, 0, 104, 104, 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 104, 0, 0, 104, 104, 0, 104, 104, 0, 104, 0, 104, 278, 104, 104, 104, 104, 104, 104, 323, 469, 104, 104, 0, 0, 104, 104, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 469, 0, 104, 104, 0, 104, 104, 104, 104, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 0, 0, 104, 0, 0, 469, 0, 0, 104, 0, 104, 104, 104, 0, 104, 104, 104, 104, 104, 104, 0, 104, 104, 104, 0, 0, 104, 0, 0, 0, 104, 104, 0, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 104, 0, 0, 104, 104, 0, 104, 104, 0, 104, 0, 104, 279, 104, 104, 104, 104, 104, 104, 469, 0, 104, 104, 558, 0, 104, 104, 0, 104, 0, 0, 0, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 558, 323, 323, 323, 323, 323, 323, 323, 323, 0, 0, 0, 0, 0, 323, 323, 323, 323, 323, 323, 323, 0, 0, 323, 0, 0, 558, 0, 0, 323, 0, 323, 323, 323, 0, 323, 323, 323, 323, 323, 323, 0, 323, 323, 323, 0, 0, 323, 0, 0, 0, 323, 323, 0, 323, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, 0, 0, 323, 323, 0, 323, 323, 0, 323, 0, 323, 0, 323, 323, 323, 323, 323, 323, 558, 0, 323, 323, 0, 0, 323, 323, 0, 323, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 0, 0, 469, 469, 0, 469, 469, 469, 469, 0, 0, 0, 0, 0, 469, 469, 469, 469, 469, 469, 469, 0, 0, 469, 0, 0, 558, 0, 0, 469, 0, 469, 469, 469, 0, 469, 469, 469, 469, 469, 469, 0, 469, 469, 469, 0, 0, 469, 0, 558, 0, 469, 469, 0, 469, 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469, 558, 0, 469, 469, 0, 469, 469, 0, 469, 0, 469, 0, 469, 469, 469, 469, 469, 469, 0, 0, 469, 469, 0, 0, 469, 469, 0, 469, 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 558, 0, 0, 0, 558, 0, 558, 558, 558, 558, 0, 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 234, 0, 0, 558, 0, 558, 558, 558, 0, 558, 558, 558, 558, 558, 558, 0, 558, 558, 558, 0, 0, 558, 0, 61, 0, 558, 558, 0, 558, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 233, 0, 558, 558, 0, 558, 558, 0, 558, 0, 558, 0, 558, 558, 558, 558, 558, 558, 0, 0, 558, 558, 0, 0, 558, 558, 0, 558, 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, 62, 0, 240, 0, 0, 0, 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, 0, 0, 0, 0, 253, 0, 558, 0, 558, 558, 558, 558, 240, 0, 0, 0, 0, 558, 558, 558, 558, 558, 558, 558, 0, 0, 558, 0, 0, 0, 0, 0, 558, 0, 558, 558, 558, 0, 558, 558, 558, 558, 558, 558, 0, 558, 558, 558, 0, 0, 558, 0, 0, 0, 558, 558, 0, 558, 558, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, 0, 558, 558, 0, 558, 558, 0, 558, 0, 558, 0, 558, 558, 558, 558, 558, 558, 0, 253, 558, 558, 0, 275, 558, 558, 0, 558, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 272, 0, 14, 0, 15, 16, 17, 18, 275, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 272, 59, 230, 0, 0, 231, 232, 0, 60, 0, 0, 253, 253, 253, 253, 253, 253, 253, 253, 253, 0, 0, 0, 0, 0, 0, 0, 253, 234, 253, 253, 253, 253, 0, 0, 0, 0, 0, 253, 253, 253, 253, 253, 253, 253, 0, 0, 253, 0, 0, 0, 61, 0, 0, 0, 0, 253, 253, 0, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 0, 0, 253, 0, 0, 253, 253, 253, 233, 253, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 253, 253, 0, 253, 253, 0, 253, 253, 253, 0, 253, 253, 253, 253, 253, 253, 0, 0, 253, 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 0, 0, 0, 62, 234, 0, 272, 0, 272, 272, 272, 272, 0, 0, 0, 0, 0, 272, 272, 272, 272, 272, 272, 272, 0, 0, 272, 61, 0, 0, 0, 0, 272, 0, 272, 272, 272, 0, 272, 272, 272, 272, 272, 272, 0, 272, 272, 272, 0, 0, 272, 0, 0, 0, 272, 272, 0, 272, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 0, 272, 272, 0, 272, 272, 0, 272, 0, 272, 0, 272, 272, 272, 272, 272, 272, 0, 0, 272, 0, 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 61, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 230, 0, 0, 231, 232, 0, 60, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 254, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 254, 254, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 61, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 254, 254, 254, 254, 254, 254, 254, 254, 254, 0, 0, 0, 0, 61, 0, 0, 254, 0, 254, 254, 254, 254, 0, 0, 0, 0, 0, 254, 254, 254, 254, 254, 254, 254, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, 0, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 0, 0, 254, 0, 0, 254, 254, 254, 0, 254, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 254, 254, 0, 254, 254, 0, 254, 254, 254, 0, 254, 254, 254, 254, 254, 254, 62, 0, 254, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 61, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 276, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 248, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 277, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 276, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 253, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 253, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 247, 58, 62, 0, 59, 230, 0, 0, 231, 232, 0, 60, 0, 0, 0, 253, 253, 253, 253, 253, 253, 253, 253, 253, 0, 0, 0, 0, 61, 0, 0, 253, 0, 253, 253, 253, 253, 0, 0, 0, 0, 0, 253, 253, 253, 253, 253, 253, 253, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 253, 253, 0, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 0, 0, 253, 0, 0, 253, 253, 253, 0, 253, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 253, 253, 0, 253, 253, 0, 253, 253, 253, 0, 253, 253, 253, 253, 253, 253, 62, 0, 253, 0, 0, 0, 0, 0, 0, 253, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 245, 246, 52, 0, 53, 54, 55, 56, 247, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 248, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 29, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 248, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 648, 246, 52, 0, 53, 54, 55, 56, 247, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 0, 0, 0, 248, 0, 0, 248, 0, 248, 248, 248, 248, 0, 0, 0, 0, 0, 248, 248, 248, 248, 248, 248, 248, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, 248, 248, 0, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 0, 0, 248, 0, 0, 248, 248, 248, 0, 248, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 0, 0, 248, 248, 0, 248, 248, 0, 248, 248, 248, 0, 248, 248, 248, 248, 248, 248, 62, 0, 248, 0, 0, 0, 0, 0, 0, 248, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 245, 0, 52, 0, 53, 54, 55, 56, 247, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 648, 0, 52, 0, 53, 54, 55, 56, 247, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 243, 38, 39, 40, 0, 0, 41, 0, 0, 244, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 247, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 588, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 245, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 588, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 61, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 826, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 648, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 248, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 62, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 545, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 545, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 19, 20, 21, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 44, 45, 0, 189, 0, 0, 0, 188, 183, 0, 0, 0, 186, 184, 0, 185, 0, 187, 0, 0, 199, 0, 0, 110, 48, 0, 49, 50, 0, 0, 180, 52, 179, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 545, 545, 545, 545, 545, 545, 545, 545, 545, 0, 0, 0, 182, 0, 191, 0, 545, 0, 545, 545, 545, 545, 0, 0, 0, 0, 0, 545, 545, 545, 545, 545, 545, 545, 0, 0, 545, 0, 0, 0, 0, 0, 181, 0, 190, 545, 545, 0, 545, 545, 545, 545, 545, 545, 0, 545, 545, 545, 0, 0, 545, 0, 0, 0, 545, 545, 0, 545, 545, 0, 189, 0, 0, 0, 188, 183, 0, 0, 0, 186, 184, 0, 185, 0, 187, 0, 0, 545, 0, 0, 545, 545, 0, 545, 545, 0, 0, 180, 545, 179, 545, 545, 545, 545, 545, 545, 0, 0, 545, 0, 0, 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 191, 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, 181, 0, 190, 0, 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 144, 145, 146, 217, 218, 219, 220, 151, 152, 153, 0, 0, 0, 0, 0, 154, 155, 156, 221, 222, 159, 223, 161, 301, 302, 224, 303, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 144, 145, 146, 217, 218, 219, 220, 151, 152, 153, 0, 0, 0, 0, 0, 154, 155, 156, 221, 222, 159, 223, 161, 301, 302, 224, 303, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 178, 0, 0, 0, 0, 0, 0, 14, 424, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 189, 0, 0, 0, 188, 183, 0, 0, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 294, 0, 0, 110, 48, 0, 49, 50, 180, 0, 179, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 191, 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, 181, 0, 190, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 192, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 179, 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, 182, 0, 191, 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, 181, 0, 190, 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, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 144, 145, 146, 217, 218, 219, 220, 151, 152, 153, 0, 0, 0, 0, 0, 154, 155, 156, 221, 222, 159, 223, 161, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 225, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 0, 0, 0, 0, 0, 154, 155, 156, 157, 158, 159, 160, 161, 34, 35, 162, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 189, 0, 0, 0, 188, 183, 0, 0, 178, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 181, 0, 190, 0, 0, 0, 0, 0, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 182, 0, 191, 144, 145, 146, 217, 218, 219, 220, 151, 152, 153, 0, 0, 0, 0, 0, 154, 155, 156, 221, 222, 159, 223, 161, 0, 0, 224, 0, 181, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 561, 562, 0, 0, 563, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 569, 570, 0, 0, 571, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 606, 562, 0, 0, 607, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 583, 570, 0, 0, 584, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 182, 0, 191, 0, 0, 0, 189, 0, 0, 178, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 190, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 562, 0, 0, 623, 0, 0, 0, 182, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 181, 0, 190, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 570, 0, 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 632, 562, 0, 0, 633, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 635, 570, 0, 0, 636, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 668, 562, 0, 0, 669, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 182, 0, 191, 0, 0, 0, 189, 0, 0, 178, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 190, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 190, 0, 0, 0, 0, 0, 182, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 181, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 671, 570, 0, 0, 672, 0, 0, 0, 182, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 181, 0, 190, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 819, 562, 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 822, 570, 0, 0, 823, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 959, 562, 0, 0, 960, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 189, 0, 0, 0, 188, 183, 0, 258, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 962, 562, 0, 0, 963, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 182, 0, 191, 0, 0, 0, 189, 0, 0, 178, 188, 183, 0, 0, 0, 186, 184, 0, 185, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 190, 180, 0, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 182, 0, 191, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 181, 0, 190, 30, 31, 0, 106, 33, 34, 35, 107, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 109, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 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, 965, 570, 0, 0, 966, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 570, 0, 0, 584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 0, 0, 172, 173, 0, 0, 174, 175, 176, 177, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 178, 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, 47, 48, 0, 49, 50, 0, 51, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 380, 48, 0, 49, 50, 0, 381, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 106, 33, 34, 35, 107, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 380, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 881, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 14, 0, 100, 101, 17, 18, 0, 0, 0, 0, 0, 102, 103, 104, 22, 23, 24, 25, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 0, 0, 41, 0, 0, 0, 42, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 895, 0, 0, 110, 48, 0, 49, 50, 0, 0, 0, 52, 0, 53, 54, 55, 56, 57, 58, 0, 0, 59, 0, 0, 0, 0, 0, 0, 111, }, yyCheck = new short[] { //yyCheck 25161 2, 418, 79, 26, 207, 61, 13, 84, 20, 21, 78, 9, 27, 6, 6, 370, 14, 90, 20, 254, 27, 13, 398, 14, 21, 295, 427, 15, 16, 15, 16, 19, 51, 19, 300, 27, 288, 300, 4, 5, 292, 396, 2, 3, 47, 3, 12, 49, 50, 444, 46, 312, 486, 124, 283, 44, 411, 46, 109, 40, 53, 53, 37, 49, 50, 93, 421, 42, 10, 70, 686, 10, 47, 10, 379, 70, 559, 560, 368, 70, 777, 46, 372, 95, 373, 51, 376, 283, 377, 15, 16, 103, 104, 19, 683, 10, 251, 125, 95, 41, 277, 103, 91, 123, 41, 117, 373, 397, 701, 443, 377, 378, 446, 10, 610, 860, 0, 701, 683, 10, 410, 686, 412, 49, 90, 202, 91, 873, 624, 484, 10, 286, 422, 288, 211, 364, 701, 292, 634, 8, 9, 41, 123, 0, 59, 14, 10, 775, 0, 37, 41, 93, 44, 10, 42, 43, 93, 45, 40, 47, 10, 41, 59, 10, 598, 59, 0, 10, 364, 61, 61, 461, 47, 46, 670, 10, 10, 41, 123, 440, 283, 61, 285, 444, 55, 56, 57, 58, 10, 15, 16, 41, 710, 19, 41, 485, 273, 61, 716, 944, 312, 313, 59, 380, 797, 10, 41, 46, 954, 124, 208, 209, 909, 305, 61, 450, 486, 309, 91, 296, 10, 46, 295, 41, 124, 59, 61, 124, 856, 605, 124, 497, 225, 225, 497, 110, 41, 59, 10, 108, 235, 125, 309, 93, 235, 861, 237, 730, 10, 251, 93, 41, 254, 514, 59, 46, 258, 291, 292, 10, 280, 656, 46, 334, 10, 282, 91, 10, 125, 41, 258, 61, 618, 125, 277, 263, 865, 263, 279, 10, 10, 627, 44, 911, 279, 10, 875, 59, 279, 873, 279, 875, 447, 44, 40, 729, 861, 59, 41, 280, 91, 44, 272, 125, 274, 10, 124, 91, 873, 345, 875, 41, 617, 44, 10, 943, 276, 373, 61, 44, 654, 377, 378, 379, 284, 821, 354, 10, 598, 295, 10, 61, 330, 331, 332, 333, 41, 263, 329, 208, 209, 10, 10, 760, 395, 41, 449, 343, 41, 615, 453, 326, 291, 292, 343, 345, 61, 61, 41, 61, 372, 464, 381, 739, 44, 720, 59, 356, 370, 329, 954, 329, 41, 41, 334, 44, 247, 380, 343, 59, 372, 40, 370, 46, 376, 397, 647, 279, 279, 954, 59, 356, 653, 44, 396, 656, 271, 266, 267, 279, 412, 309, 277, 405, 60, 397, 61, 480, 396, 411, 422, 345, 354, 486, 666, 381, 651, 354, 707, 421, 412, 345, 309, 411, 713, 714, 417, 418, 91, 719, 422, 721, 279, 421, 305, 701, 591, 263, 326, 642, 707, 279, 457, 10, 279, 447, 713, 714, 450, 461, 457, 852, 378, 379, 830, 722, 458, 443, 853, 729, 44, 330, 331, 332, 333, 457, 335, 336, 964, 461, 343, 274, 738, 485, 41, 738, 467, 123, 2, 3, 4, 5, 484, 356, 8, 9, 472, 642, 12, 279, 14, 15, 16, 485, 597, 19, 484, 499, 458, 501, 44, 578, 428, 505, 343, 380, 852, 467, 270, 366, 613, 666, 369, 370, 480, 10, 892, 356, 343, 0, 486, 810, 44, 47, 547, 598, 573, 51, 326, 10, 399, 356, 366, 408, 769, 369, 370, 61, 585, 10, 492, 416, 41, 810, 366, 568, 41, 369, 370, 279, 10, 426, 343, 565, 10, 46, 558, 559, 560, 343, 41, 573, 665, 44, 611, 356, 90, 833, 565, 345, 41, 573, 356, 585, 279, 10, 573, 680, 59, 10, 10, 41, 937, 585, 108, 41, 110, 610, 585, 10, 270, 10, 853, 10, 366, 10, 608, 369, 370, 611, 91, 624, 10, 93, 366, 10, 604, 369, 370, 611, 41, 634, 603, 125, 283, 617, 618, 309, 620, 44, 41, 614, 614, 638, 44, 627, 41, 44, 10, 59, 352, 638, 598, 41, 10, 838, 41, 326, 513, 637, 59, 844, 59, 269, 125, 44, 638, 670, 938, 651, 326, 707, 708, 270, 59, 723, 729, 713, 714, 682, 267, 10, 41, 10, 40, 317, 722, 269, 654, 354, 46, 774, 373, 44, 198, 44, 377, 59, 701, 125, 343, 10, 44, 59, 208, 209, 366, 61, 10, 369, 370, 617, 44, 356, 41, 364, 10, 366, 312, 313, 369, 370, 10, 44, 268, 269, 305, 124, 272, 721, 59, 305, 413, 414, 61, 91, 10, 345, 720, 298, 125, 345, 44, 315, 676, 677, 318, 319, 730, 721, 59, 834, 720, 10, 258, 604, 345, 59, 61, 263, 742, 732, 266, 267, 746, 59, 10, 271, 345, 740, 748, 59, 276, 277, 810, 10, 271, 272, 718, 44, 284, 462, 269, 729, 272, 59, 125, 769, 637, 760, 345, 295, 10, 46, 797, 367, 368, 41, 44, 10, 782, 783, 59, 785, 345, 787, 267, 268, 269, 791, 271, 272, 794, 274, 796, 59, 40, 799, 821, 10, 44, 269, 46, 345, 59, 329, 330, 331, 332, 333, 334, 335, 336, 294, 295, 296, 297, 298, 91, 896, 345, 59, 125, 775, 125, 777, 58, 702, 59, 345, 705, 706, 93, 44, 268, 801, 269, 267, 268, 269, 268, 269, 272, 346, 10, 14, 370, 91, 59, 373, 852, 270, 343, 377, 378, 379, 380, 381, 269, 345, 269, 44, 267, 268, 269, 356, 271, 272, 44, 274, 745, 837, 396, 41, 398, 399, 46, 315, 59, 748, 318, 319, 757, 758, 408, 366, 44, 411, 369, 370, 765, 914, 416, 59, 270, 44, 124, 421, 44, 281, 44, 70, 426, 44, 856, 857, 305, 44, 307, 308, 309, 310, 44, 788, 789, 917, 918, 919, 920, 268, 269, 91, 924, 925, 926, 927, 938, 929, 125, 367, 368, 269, 279, 269, 458, 937, 366, 939, 940, 369, 370, 964, 0, 467, 269, 269, 938, 366, 270, 937, 369, 370, 10, 269, 829, 269, 480, 909, 272, 911, 484, 366, 486, 44, 369, 370, 841, 343, 125, 269, 972, 973, 974, 975, 976, 269, 309, 271, 272, 124, 356, 269, 984, 41, 366, 125, 44, 369, 370, 513, 366, 943, 269, 369, 370, 272, 309, 274, 44, 15, 16, 59, 44, 19, 44, 366, 707, 708, 369, 370, 44, 10, 713, 714, 44, 270, 269, 366, 44, 283, 369, 370, 269, 274, 346, 900, 44, 902, 44, 45, 905, 269, 201, 49, 50, 279, 93, 366, 207, 270, 369, 370, 41, 125, 366, 61, 62, 369, 370, 274, 751, 752, 366, 754, 755, 369, 370, 41, 366, 270, 59, 369, 370, 41, 93, 125, 235, 125, 237, 93, 343, 58, 366, 93, 598, 369, 370, 269, 5, 940, 604, 605, 6, 356, 2, 3, 4, 5, 458, 366, 939, 346, 369, 370, 12, 875, 833, 683, 676, 343, 364, 724, 366, 944, 366, 369, 370, 369, 370, 810, 279, 366, 356, 637, 369, 370, 12, 286, 10, 288, 240, 312, -1, 292, -1, 10, 125, -1, 366, 47, -1, 369, 370, 51, -1, 366, -1, -1, 369, 370, 294, 295, 296, 297, 298, 846, -1, 125, 40, 41, -1, -1, 44, -1, 46, 366, -1, -1, 369, 370, 329, 46, 305, -1, 307, 308, 309, 310, 316, 61, 318, 319, 90, 343, 59, -1, 41, -1, 702, -1, -1, 705, 706, 707, 708, -1, 356, -1, -1, 713, 714, -1, 110, -1, 718, -1, 720, -1, 722, 91, 366, -1, -1, 369, 370, 729, 91, -1, -1, 267, 268, 269, 270, 271, 272, 739, 274, -1, -1, 367, 368, 745, -1, -1, 748, -1, -1, 243, 244, 245, 246, 123, 248, 757, 758, -1, 294, 295, 296, 297, 298, 765, 258, -1, -1, -1, -1, 263, 417, 418, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, 125, 0, -1, -1, 788, 789, -1, 38, 267, 268, 269, 10, 271, 272, -1, 274, -1, 801, -1, 305, 198, 307, 308, 309, 310, 41, 810, -1, 346, 267, 268, 269, 313, 271, 272, 316, 274, 318, 467, 320, -1, 322, 41, 59, -1, 829, 830, -1, 366, -1, -1, 369, 370, 837, 317, 318, 319, 841, -1, -1, 59, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, -1, -1, 10, -1, 271, 370, -1, -1, 373, 276, 277, -1, 377, 378, 379, 367, 368, 284, 366, 892, 125, 369, 370, -1, -1, -1, -1, 900, 295, 902, 38, 396, 905, -1, 42, 10, 270, 125, 279, 280, 305, -1, 307, 308, 309, 310, 411, 10, 413, 414, 415, -1, 10, 267, 268, 269, 421, 271, 272, 10, 274, -1, 329, 428, 937, 40, 41, 334, 438, 44, -1, 46, 437, -1, 439, -1, -1, 40, 443, 444, -1, -1, 347, 46, -1, 603, 61, -1, 46, 2, 3, 4, 5, 6, -1, 46, 59, 462, 44, 12, 46, 59, 343, -1, -1, -1, 373, 472, 59, 343, 377, 378, -1, 380, 381, 356, 91, -1, -1, 484, -1, 44, 356, 46, 642, -1, -1, -1, 91, -1, -1, 398, 366, 91, 47, 369, 370, -1, 51, -1, 91, 408, 512, 508, -1, 91, -1, -1, 666, 416, 316, -1, 318, 319, -1, -1, -1, 522, 523, 426, 123, -1, 267, 268, 269, 37, 271, 272, 91, 274, 42, 43, 123, 45, -1, 47, -1, 90, -1, 267, 268, 269, 270, 271, 272, 305, 274, 307, 308, 309, 310, 458, -1, 281, 10, -1, 10, 110, -1, -1, 467, 367, 368, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, 480, 732, -1, 317, 318, 319, 486, -1, -1, 740, 588, 40, -1, 40, 347, 44, -1, 46, -1, 46, -1, 354, -1, -1, -1, -1, 10, -1, -1, 760, 59, -1, 59, 513, -1, -1, -1, -1, 501, 617, -1, -1, 505, 10, -1, -1, 10, -1, 366, -1, -1, 369, 370, 367, 368, -1, -1, 41, -1, -1, 44, -1, 91, -1, 91, 366, -1, 645, 369, 370, 648, -1, 198, 40, -1, 59, 654, 41, 656, 46, 44, -1, 46, -1, 305, -1, 307, 308, 309, 310, -1, 279, 59, -1, 270, 124, 123, 61, -1, 270, -1, 38, -1, 40, 280, 42, 270, 838, -1, 2, 3, -1, -1, 844, -1, -1, 280, -1, 598, 12, 279, -1, -1, -1, 91, 605, 347, 91, -1, 707, 708, -1, 353, 354, -1, 713, 714, 0, -1, 717, 124, -1, 720, 279, 722, 271, -1, 10, 726, -1, 276, 277, -1, -1, 47, 343, 123, -1, 284, 315, 316, 317, 318, 319, 320, -1, -1, 343, 356, 295, 10, -1, 343, 751, 752, -1, 754, 755, 41, 343, 356, 44, -1, -1, 343, 356, 764, -1, -1, -1, 366, -1, 356, 369, 370, 366, 59, 356, 369, 370, -1, 41, 366, 329, 44, 369, 370, 343, 334, -1, -1, 367, 368, -1, -1, 793, -1, 110, -1, 59, 356, -1, 702, -1, -1, 705, 706, 707, -1, -1, 93, -1, 810, 713, 714, -1, -1, -1, 718, -1, -1, 326, 722, 270, -1, -1, -1, 38, 826, 729, -1, 42, -1, 280, 380, 381, 341, 342, -1, 739, -1, -1, 125, -1, -1, 745, -1, -1, 846, -1, -1, -1, 398, 2, 3, 853, -1, 757, 758, -1, -1, -1, 408, -1, 124, 765, 37, 38, -1, -1, 416, 42, 43, -1, 45, -1, 47, -1, -1, 283, 426, -1, -1, 270, -1, 198, -1, -1, 788, 789, -1, -1, -1, 280, 343, 279, 343, -1, 47, 782, 783, 801, 785, -1, 787, -1, -1, 356, 791, 356, 810, 794, 458, 796, -1, -1, 799, -1, -1, 366, -1, 467, 369, 370, 317, 318, 319, 320, -1, 829, 830, -1, -1, -1, 480, -1, -1, 837, -1, 937, 486, 841, -1, 317, 318, 319, 320, -1, 305, -1, 307, 308, 309, 310, -1, -1, 343, -1, 271, 343, 364, 110, 366, 276, 277, 369, 370, 513, -1, 356, -1, 284, 356, -1, 367, 368, 317, 318, 319, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, 347, 274, 892, 367, 368, -1, 353, 354, 281, 282, 900, -1, 902, -1, -1, 905, -1, 0, 291, 292, -1, 294, 295, 296, 297, 298, 329, 10, -1, -1, -1, 334, -1, 283, -1, -1, 367, 368, 317, 318, 319, -1, -1, -1, 917, 918, 919, 920, -1, -1, -1, 924, 925, 926, 927, -1, 929, -1, 41, 198, -1, 44, 598, -1, -1, -1, -1, -1, -1, 605, 373, -1, -1, -1, 377, 378, 59, 380, -1, 352, -1, 0, -1, 317, 318, 319, -1, -1, 367, 368, -1, 10, -1, 366, -1, 398, 369, 370, -1, 972, 973, 974, 975, 976, 305, 408, 307, 308, 309, 310, -1, 984, -1, 416, 364, -1, 366, -1, -1, 369, 370, -1, 41, 426, 10, 44, -1, 10, -1, -1, -1, -1, 271, 367, 368, -1, -1, 276, 277, -1, 59, -1, 125, -1, -1, 284, 347, -1, -1, -1, -1, -1, 353, 354, -1, 458, -1, 40, 41, -1, 46, 44, -1, 46, 467, 326, 702, -1, 10, 705, 706, -1, -1, 59, 93, -1, -1, -1, 61, -1, 341, 342, 718, -1, -1, 317, 318, 319, -1, -1, 329, -1, -1, 729, -1, 334, 10, -1, 40, 41, -1, -1, 44, 739, 46, 91, 125, -1, 91, 745, 513, 317, 318, 319, -1, -1, 317, 318, 319, 61, -1, 757, 758, -1, 38, -1, 40, -1, 42, 765, -1, -1, 46, -1, 373, 367, 368, -1, 377, 378, 123, 380, -1, -1, -1, 59, -1, -1, -1, 91, -1, -1, 788, 789, -1, -1, -1, -1, -1, 398, -1, 367, 368, -1, -1, 801, 367, 368, -1, 408, -1, -1, -1, -1, -1, -1, -1, 416, -1, -1, -1, 123, -1, -1, 267, 268, 269, 426, 271, 272, -1, 274, -1, 829, 830, -1, -1, -1, -1, -1, -1, 837, 605, -1, -1, 841, -1, 10, 291, 292, 10, 294, 295, 296, 297, -1, -1, -1, -1, 458, -1, 38, -1, 40, -1, 42, -1, -1, 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, 40, 44, -1, 46, 44, -1, 46, -1, 267, 268, 269, 270, 271, 272, -1, 274, 892, -1, 61, 59, -1, -1, 281, 282, 900, -1, 902, -1, -1, 905, -1, -1, 291, 292, 513, 294, 295, 296, 297, 298, -1, 4, 5, 366, 270, -1, 369, 370, 91, 12, -1, 91, -1, -1, -1, -1, 279, 280, -1, 702, -1, -1, 705, 706, 707, -1, -1, -1, -1, -1, 713, 714, -1, -1, -1, 718, -1, -1, -1, 722, 123, 44, 45, 123, 124, -1, 49, 50, 51, -1, -1, -1, -1, 352, -1, -1, 739, 279, 280, 62, -1, -1, 745, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, 757, 758, -1, 343, -1, -1, 343, -1, 765, -1, -1, 40, 605, 90, -1, 44, 356, 46, -1, 356, -1, -1, -1, 10, -1, -1, 366, -1, -1, 369, 370, 788, 789, -1, -1, -1, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, 343, 0, -1, -1, -1, -1, 810, 41, -1, -1, 44, 10, 46, 356, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 829, 830, 61, 343, -1, -1, -1, 347, 837, -1, -1, -1, 841, 353, 354, -1, -1, 41, -1, -1, 44, -1, 123, -1, 10, -1, 366, -1, -1, 369, 370, -1, 91, -1, 58, 59, -1, 702, -1, 63, 705, 706, 707, -1, -1, -1, -1, -1, 713, 714, 279, 280, -1, 718, 280, 41, -1, 722, 44, -1, 46, -1, 305, 892, 307, 308, 309, 310, -1, 93, -1, 900, -1, 902, 739, 61, 905, -1, -1, -1, 745, -1, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, 757, 758, 243, 244, 245, 246, -1, 248, 765, 125, -1, -1, 347, 91, -1, -1, -1, 0, 353, 354, -1, -1, 343, -1, -1, 343, -1, 10, -1, -1, -1, 788, 789, 347, -1, 356, 0, -1, 356, 353, 305, -1, 307, 308, 309, 310, 10, -1, -1, -1, -1, -1, -1, 810, 295, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 829, 830, -1, -1, 59, 41, -1, -1, 44, -1, 347, -1, 841, -1, 279, 280, 353, -1, -1, -1, -1, -1, 58, 59, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, -1, -1, -1, -1, 279, 93, -1, -1, 40, -1, -1, 892, 44, -1, 46, -1, 381, -1, 125, 900, -1, 902, -1, -1, 905, -1, 343, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, 125, 44, 356, 46, 281, 282, 283, -1, -1, -1, -1, 413, 414, 415, 291, 292, -1, 294, 295, 296, 297, 298, 91, -1, -1, -1, 428, -1, -1, -1, -1, 343, -1, -1, -1, 437, 0, 439, -1, -1, 279, 443, 444, -1, 356, -1, 10, -1, 91, -1, -1, 40, -1, -1, 123, 44, -1, 46, -1, -1, 462, -1, -1, -1, -1, -1, -1, -1, -1, 346, 472, -1, -1, -1, -1, 352, -1, 41, 480, -1, 123, -1, -1, -1, 486, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, 59, -1, -1, -1, -1, -1, -1, 91, -1, 343, -1, 508, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 356, -1, -1, 522, 523, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 294, 295, 296, 297, 298, -1, 281, 282, 283, -1, -1, 125, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, -1, -1, -1, -1, -1, -1, -1, 598, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, -1, -1, 279, 280, -1, -1, -1, 617, -1, -1, 0, -1, -1, 346, 366, -1, -1, 369, 370, 352, 10, -1, -1, -1, -1, -1, -1, -1, 279, 280, -1, 364, -1, 366, -1, 645, 369, 370, 648, -1, -1, -1, -1, 33, 654, -1, 656, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, 343, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, 356, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, -1, 343, -1, -1, 267, 268, 269, 270, 271, 272, 91, 274, 93, 94, 356, -1, 717, -1, 281, -1, -1, -1, -1, -1, -1, 726, -1, -1, 729, -1, -1, 294, 295, 296, 297, 298, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, 751, 752, -1, 754, 755, 343, -1, -1, -1, -1, -1, -1, -1, 764, -1, -1, -1, -1, 356, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, 793, -1, 58, 59, 60, 61, 62, 63, 801, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 826, -1, 91, -1, 93, 94, -1, -1, -1, -1, -1, 837, -1, -1, -1, -1, -1, -1, -1, -1, 846, -1, -1, -1, -1, -1, -1, 853, -1, -1, -1, -1, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, 345, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -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, 91, -1, 93, 94, -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, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, 326, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 341, 342, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 91, -1, 93, 94, -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, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 91, -1, 93, 94, -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, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, 364, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, 364, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, -1, 62, 63, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, -1, -1, 46, -1, -1, -1, 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, 282, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, 281, 282, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, 346, 347, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 123, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, -1, -1, 46, -1, -1, 123, 124, 125, 126, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, -1, -1, -1, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 343, -1, -1, -1, 347, 59, 60, 61, 62, 63, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, 124, 125, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, 124, 125, 126, -1, 38, 59, 40, -1, 42, -1, -1, -1, 46, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 59, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, -1, 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 0, -1, 365, 366, -1, -1, 369, 370, -1, 372, 10, -1, 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 33, 307, 308, 309, 310, -1, -1, -1, 41, -1, -1, -1, -1, 46, -1, -1, -1, 343, -1, -1, -1, 347, -1, -1, -1, -1, 59, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, 343, -1, -1, 366, 347, -1, 369, 370, -1, -1, 353, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 123, -1, 125, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -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, 91, -1, 93, 94, -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, 123, 124, 125, -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, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, -1, 280, 281, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 280, 281, 282, 283, 686, -1, -1, 689, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, 701, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, -1, 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, 356, 94, -1, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, 861, -1, 863, 123, 124, 125, 867, -1, -1, -1, -1, -1, 873, -1, -1, -1, -1, -1, 879, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, 947, -1, -1, -1, -1, 952, -1, 954, -1, 956, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 981, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, -1, -1, -1, -1, 341, 342, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 280, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, 41, 346, -1, 44, -1, 0, -1, 352, -1, -1, -1, 356, -1, -1, -1, 10, -1, -1, 59, 364, -1, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, 41, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, 345, 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, 125, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, 125, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, 294, 295, 296, 297, 298, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, 93, 94, -1, -1, 294, 295, 296, 297, 298, -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, 124, 125, 369, 370, -1, -1, -1, -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 366, 274, -1, 369, 370, -1, -1, 280, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, 94, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, 0, -1, -1, 356, -1, -1, -1, -1, -1, -1, 10, 364, -1, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, -1, 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, 125, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, -1, -1, -1, -1, 331, 332, -1, -1, 91, -1, 93, 94, -1, -1, 341, 342, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, -1, -1, -1, 91, -1, 93, 94, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -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, 267, 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, -1, 369, 370, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, 0, -1, -1, 356, -1, -1, -1, -1, -1, -1, 10, 364, -1, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, -1, 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, 125, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, -1, -1, -1, 91, -1, 93, 94, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -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, 267, 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, -1, 369, 370, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, 0, -1, -1, 356, -1, -1, -1, -1, -1, -1, 10, 364, -1, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, -1, 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, 125, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 91, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, -1, -1, -1, 91, -1, 93, 94, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, 63, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, -1, 369, 370, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, 94, 294, 295, 296, 297, 298, -1, -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 60, -1, 62, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, 356, -1, 94, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 283, 124, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, 37, 38, -1, 356, 41, 42, 43, 44, 45, 46, 47, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, 59, 60, -1, 62, 63, -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, 0, 91, -1, 93, 94, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, 124, 125, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 91, -1, 93, 94, 341, 342, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, 91, -1, 93, 94, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, 356, 267, 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, -1, 369, 370, 281, 282, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, -1, 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, 356, 94, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, -1, -1, 341, 342, 267, 268, 269, 270, 271, 272, -1, 274, 93, 94, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 0, -1, -1, 346, -1, -1, -1, -1, -1, 352, 10, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, 41, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 0, -1, -1, 346, -1, -1, -1, -1, -1, 352, 10, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, 125, -1, -1, -1, -1, 291, 292, 41, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, 37, 38, 352, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, 58, 59, 60, -1, 62, 63, 125, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, 271, 272, -1, 274, -1, 124, 125, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 294, 295, 296, 297, 298, -1, -1, 58, 59, 60, -1, 62, 63, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, 271, 272, -1, 274, 366, 124, 125, 369, 370, 37, 38, -1, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 294, 295, 296, 297, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, 94, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, 366, 124, 125, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, 37, 38, 352, -1, 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, 58, 59, 60, -1, 62, 63, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -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, 91, -1, 0, 94, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, 125, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 91, -1, -1, 94, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, -1, 271, 272, 364, 274, 366, -1, -1, 369, 370, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, 267, 268, 269, -1, 271, 272, 366, 274, -1, 369, 370, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 0, -1, 341, 342, 343, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -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, 0, 91, -1, -1, 94, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -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, 91, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, -1, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, 94, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, 345, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 356, 267, 268, 269, -1, 271, 272, -1, 274, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 356, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, 267, 268, 269, -1, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, 356, 43, 44, 45, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, 58, 59, 60, -1, 62, 63, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, 38, -1, -1, 41, -1, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 91, 274, -1, 94, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, 38, 352, -1, 41, -1, -1, 44, 267, 268, 269, -1, 271, 272, 364, 274, 366, -1, -1, 369, 370, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 343, -1, -1, 124, 125, -1, -1, -1, 38, -1, -1, 41, -1, 356, 44, -1, -1, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, 58, 59, 60, -1, 62, 63, -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, 0, -1, 93, 94, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, 94, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 0, 341, 342, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 44, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 0, -1, 93, 94, -1, -1, 346, -1, -1, -1, 10, -1, 352, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, 364, -1, 366, -1, -1, 369, 370, -1, -1, 124, 125, -1, 60, -1, 62, 63, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 93, 94, -1, -1, -1, -1, -1, 124, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, 346, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 0, -1, -1, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 44, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 0, -1, 93, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, 125, -1, 60, -1, 62, 63, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 93, -1, -1, -1, -1, -1, -1, 124, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 0, -1, -1, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 44, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, 0, -1, 93, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 364, -1, 366, 37, 38, 369, 370, -1, 42, 43, 125, 45, -1, 47, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 60, -1, 62, 63, -1, -1, -1, -1, 58, 59, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 0, -1, 93, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 125, -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, 333, 334, -1, -1, 337, 338, -1, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, 298, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, -1, -1, 341, 342, 333, 334, -1, -1, 337, 338, -1, 0, -1, -1, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 44, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, 334, -1, -1, 337, 338, -1, 0, -1, 93, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, -1, 63, -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, 0, -1, 93, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, 93, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 125, -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, 333, 334, -1, -1, 337, 338, -1, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, 0, 369, 370, -1, 281, 282, 283, -1, -1, -1, 10, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, 334, -1, 59, 337, 338, -1, 0, -1, -1, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, -1, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 44, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, 125, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, 334, -1, -1, 337, 338, -1, 0, -1, 93, -1, -1, -1, 346, -1, -1, -1, 10, -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, 0, 125, -1, -1, -1, -1, -1, -1, 41, -1, 10, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 93, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, 125, 93, 281, -1, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, 125, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 343, 281, 282, 283, 41, -1, -1, 44, -1, -1, -1, 291, 292, 356, 294, 295, 296, 297, 298, -1, -1, 58, 59, 366, -1, -1, 369, 370, -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, 333, 334, -1, 93, 337, 338, -1, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 364, 274, 366, -1, 125, 369, 370, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 0, 281, 282, 283, -1, -1, -1, -1, -1, -1, 10, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, 334, -1, -1, 337, 338, -1, -1, -1, -1, -1, -1, -1, 346, -1, 0, -1, -1, -1, 352, -1, 41, -1, -1, 44, 10, -1, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, 58, 59, -1, -1, -1, -1, -1, -1, 346, -1, -1, -1, -1, -1, 352, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, 93, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 283, -1, -1, 125, -1, -1, 93, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, 346, 0, -1, -1, -1, -1, 352, -1, -1, -1, -1, 10, -1, 59, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, 125, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, 93, -1, 281, 282, 283, -1, -1, -1, -1, -1, -1, 41, 291, 292, 44, 294, 295, 296, 297, -1, -1, 0, -1, 267, 268, 269, 270, 271, 272, 59, 274, 10, 125, -1, -1, -1, -1, 281, 282, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 0, -1, 41, 93, -1, 44, -1, 346, -1, -1, 10, -1, -1, 352, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, 364, -1, 366, -1, -1, 369, 370, -1, -1, -1, 125, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, 0, 352, -1, -1, -1, -1, -1, 93, -1, -1, 10, -1, 59, -1, -1, 366, -1, -1, 369, 370, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, -1, 125, -1, 41, -1, 0, 291, 292, 93, 294, 295, 296, 297, 298, -1, 10, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, 125, -1, -1, 281, 282, -1, 41, -1, -1, 44, -1, -1, -1, 291, 292, 93, 294, 295, 296, 297, 298, -1, -1, -1, 59, -1, -1, 352, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, 366, -1, -1, 369, 370, -1, 125, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, 93, 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, 41, -1, -1, -1, -1, 352, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, 59, 366, -1, 125, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, 93, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, 352, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, 125, 369, 370, 281, 282, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 352, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, 366, 281, 282, 369, 370, -1, -1, -1, -1, 0, -1, 291, 292, -1, 294, 295, 296, 297, 298, 10, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, 366, -1, -1, 369, 370, 281, 282, 0, -1, -1, -1, 41, -1, -1, -1, 291, 292, 10, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, 41, -1, 369, 370, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, 93, -1, -1, 59, -1, 281, 282, -1, -1, -1, -1, -1, -1, 352, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, 0, -1, -1, 366, -1, -1, 369, 370, 125, -1, 10, -1, -1, 93, -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, 41, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, 352, 10, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, 123, -1, -1, 126, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, -1, -1, -1, -1, -1, -1, 291, 292, -1, 294, 295, 296, 297, 298, -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, 366, -1, -1, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 267, 268, 269, 270, 271, 272, -1, 274, -1, -1, -1, -1, -1, -1, 281, 282, -1, -1, -1, 366, -1, -1, 369, 370, 291, 292, -1, 294, 295, 296, 297, 298, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, 366, 324, 325, 369, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, 356, 357, 358, 359, 360, 361, 362, -1, 33, 365, 366, -1, -1, 369, 370, 40, 372, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -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, 91, -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, 123, -1, -1, 126, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -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, 91, -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, 123, -1, -1, 126, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 33, 272, 273, -1, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, 59, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, 356, 357, 358, 359, 360, 361, 362, -1, 126, 365, 366, -1, -1, 369, 370, -1, 372, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 10, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, 33, -1, 321, 322, -1, 324, 325, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, 59, 60, 347, 348, -1, 350, 351, -1, 353, -1, 355, 356, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, -1, -1, -1, 91, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 126, 10, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, 33, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, 91, -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, 126, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 33, -1, 272, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 59, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, 356, 357, 358, 359, 360, 361, 362, 126, 10, 365, 366, -1, -1, 369, 370, -1, 372, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 33, -1, 272, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 59, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, 356, 357, 358, 359, 360, 361, 362, 126, -1, 365, 366, 10, -1, 369, 370, -1, 372, -1, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 33, 271, 272, 273, 274, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 59, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, 366, -1, -1, 369, 370, -1, 372, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, -1, 272, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, 10, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, 33, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 59, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, 269, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 125, 126, 293, -1, -1, 10, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, 33, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, 59, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, 366, -1, -1, 369, 370, -1, 372, -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, 126, -1, 10, -1, -1, -1, -1, -1, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, -1, 33, -1, 273, -1, 275, 276, 277, 278, 41, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, 126, 365, 366, -1, 10, 369, 370, -1, 372, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, -1, 33, -1, 273, -1, 275, 276, 277, 278, 41, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, 126, 365, 366, -1, -1, 369, 370, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, 10, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, 33, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, 59, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, 126, 10, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, 33, -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, 33, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, 125, 126, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, 366, -1, -1, 369, 370, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, 354, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, 317, -1, -1, 320, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, 33, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, 126, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, 33, -1, -1, -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, 60, 355, 62, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, 94, -1, 96, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 124, -1, 126, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, 324, 325, -1, 33, -1, -1, -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, 60, 355, 62, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 96, -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, 124, -1, 126, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, 361, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 353, -1, -1, -1, -1, -1, -1, 273, 361, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, 33, -1, -1, -1, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, 60, -1, 62, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 96, -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, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, -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, 94, -1, 96, -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, 124, -1, 126, -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, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, 304, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, 357, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, 33, -1, -1, -1, 37, 38, -1, -1, 353, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 94, -1, 96, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, -1, -1, -1, 299, 300, 301, 302, 303, 304, 305, 306, -1, -1, 309, -1, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, 94, -1, 96, -1, -1, -1, 33, -1, -1, 353, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 126, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, 94, -1, 96, -1, -1, -1, 33, -1, -1, 353, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 126, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 126, -1, -1, -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, -1, -1, -1, 94, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 124, -1, 126, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, 33, -1, -1, -1, 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, 94, -1, 96, -1, -1, -1, 33, -1, -1, 353, 37, 38, -1, -1, -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 126, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, 94, -1, 96, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, 124, -1, 126, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, -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, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, -1, -1, 339, 340, 341, 342, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, 353, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, 353, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, -1, -1, -1, -1, -1, 273, -1, 275, 276, 277, 278, -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, -1, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, 302, 303, -1, 305, 306, 307, 308, 309, 310, -1, 312, 313, 314, -1, -1, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, -1, 347, 348, -1, 350, 351, -1, -1, -1, 355, -1, 357, 358, 359, 360, 361, 362, -1, -1, 365, -1, -1, -1, -1, -1, -1, 372, }; /// /// maps symbol value to printable name. /// see yyExpecting /// protected static readonly string[] yyNames = { "end-of-file",null,null,null,null,null,null,null,null,null,"'\\n'", null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,"'!'",null,null,null,"'%'", "'&'",null,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",null,null, null,null,null,null,null,null,null,null,"':'","';'","'<'","'='","'>'", "'?'",null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,"'['",null,"']'","'^'",null,"'`'",null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,"'{'","'|'","'}'","'~'",null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,"keyword_class","keyword_module","keyword_def","keyword_begin", "keyword_if","keyword_unless","keyword_while","keyword_until", "keyword_for","keyword_undef","keyword_rescue","keyword_ensure", "keyword_end","keyword_then","keyword_elsif","keyword_else", "keyword_case","keyword_when","keyword_break","keyword_next", "keyword_redo","keyword_retry","keyword_in","keyword_do", "keyword_do_cond","keyword_do_block","keyword_do_LAMBDA", "keyword_return","keyword_yield","keyword_super","keyword_self", "keyword_nil","keyword_true","keyword_false","keyword_and", "keyword_or","keyword_not","modifier_if","modifier_unless", "modifier_while","modifier_until","modifier_rescue","keyword_alias", "keyword_BEGIN","keyword_END","keyword__LINE__","keyword__FILE__", "keyword__ENCODING__","tIDENTIFIER","tFID","tGVAR","tIVAR", "tCONSTANT","tCVAR","tLABEL","tINTEGER","tFLOAT","tCHAR","tXSTRING", "tREGEXP","tSTRING","tSTRING_PART","tSTRING_MID","tLABEL_END", "tNTH_REF","tBACK_REF","tREGEXP_END","tUPLUS","tUMINUS","tPOW","tCMP", "tEQ","tEQQ","tNEQ","tGEQ","tLEQ","tANDOP","tOROP","tMATCH","tNMATCH", "tDOT2","tDOT3","tAREF","tASET","tLSHFT","tRSHFT","tCOLON2","tCOLON3", "tOP_ASGN","tASSOC","tLPAREN","tLPAREN_ARG","tRPAREN","tLBRACK", "tLBRACE","tLBRACE_ARG","tSTAR","tAMPER","tLAMBDA","tANDDOT", "tSYMBEG","tREGEXP_BEG","tWORDS_BEG","tSYMBOLS_BEG","tSTRING_BEG", "tXSTRING_BEG","tSTRING_DVAR","tLAMBEG","tHEREDOC_BEG","tHEREDOC_END", "tLITERAL_DELIM","tHD_LITERAL_DELIM","tHD_STRING_PART", "tHD_STRING_MID","tLOWEST","tUMINUS_NUM","tLAST_TOKEN", }; /// /// printable rules for debugging. /// protected static readonly string[] yyRule = { "$accept : program", "$$1 :", "program : $$1 top_compstmt", "top_compstmt : top_stmts opt_terms", "top_stmts : none", "top_stmts : top_stmt", "top_stmts : top_stmts terms top_stmt", "top_stmts : error top_stmt", "top_stmt : stmt", "$$2 :", "top_stmt : keyword_BEGIN $$2 '{' top_compstmt '}'", "bodystmt : compstmt opt_rescue opt_else opt_ensure", "compstmt : stmts opt_terms", "stmts : none", "stmts : stmt", "stmts : stmts terms stmt", "stmts : error stmt", "$$3 :", "stmt : keyword_alias fsym $$3 fsym", "stmt : keyword_undef undef_list", "stmt : stmt modifier_if expr_value", "stmt : stmt modifier_unless expr_value", "stmt : stmt modifier_while expr_value", "stmt : stmt modifier_until expr_value", "stmt : stmt modifier_rescue stmt", "stmt : keyword_END '{' compstmt '}'", "stmt : command_asgn", "stmt : mlhs '=' command_call", "stmt : lhs '=' mrhs", "stmt : mlhs '=' arg", "stmt : mlhs '=' mrhs", "stmt : expr", "command_asgn : lhs '=' command_rhs", "command_asgn : var_lhs tOP_ASGN command_rhs", "command_asgn : primary_value '[' opt_call_args rbracket tOP_ASGN command_rhs", "command_asgn : primary_value call_op tIDENTIFIER tOP_ASGN command_rhs", "command_asgn : primary_value call_op tCONSTANT tOP_ASGN command_rhs", "command_asgn : primary_value tCOLON2 tCONSTANT tOP_ASGN command_call", "command_asgn : primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_rhs", "command_asgn : backref tOP_ASGN command_rhs", "command_rhs : command_call", "command_rhs : command_call modifier_rescue stmt", "command_rhs : command_asgn", "expr : command_call", "expr : expr keyword_and expr", "expr : expr keyword_or expr", "expr : keyword_not opt_nl expr", "expr : '!' command_call", "expr : arg", "expr_value : expr", "command_call : command", "command_call : block_command", "block_command : block_call", "block_command : block_call call_op2 operation2 command_args", "$$4 :", "cmd_brace_block : tLBRACE_ARG $$4 opt_block_param compstmt '}'", "command : operation command_args", "command : operation command_args cmd_brace_block", "command : primary_value call_op operation2 command_args", "command : primary_value call_op operation2 command_args cmd_brace_block", "command : primary_value tCOLON2 operation2 command_args", "command : primary_value tCOLON2 operation2 command_args cmd_brace_block", "command : keyword_super command_args", "command : keyword_yield command_args", "command : keyword_return call_args", "command : keyword_break call_args", "command : keyword_next call_args", "mlhs : mlhs_basic", "mlhs : tLPAREN mlhs_inner rparen", "mlhs_inner : mlhs_basic", "mlhs_inner : tLPAREN mlhs_inner rparen", "mlhs_basic : mlhs_list", "mlhs_basic : mlhs_list mlhs_item", "mlhs_basic : mlhs_list tSTAR mlhs_node", "mlhs_basic : mlhs_list tSTAR mlhs_node ',' mlhs_post", "mlhs_basic : mlhs_list tSTAR", "mlhs_basic : mlhs_list tSTAR ',' mlhs_post", "mlhs_basic : tSTAR mlhs_node", "mlhs_basic : tSTAR mlhs_node ',' mlhs_post", "mlhs_basic : tSTAR", "mlhs_basic : tSTAR ',' mlhs_post", "mlhs_item : mlhs_node", "mlhs_item : tLPAREN mlhs_inner rparen", "mlhs_list : mlhs_item ','", "mlhs_list : mlhs_list mlhs_item ','", "mlhs_post : mlhs_item", "mlhs_post : mlhs_list mlhs_item", "mlhs_node : variable", "mlhs_node : primary_value '[' opt_call_args rbracket", "mlhs_node : primary_value call_op tIDENTIFIER", "mlhs_node : primary_value tCOLON2 tIDENTIFIER", "mlhs_node : primary_value call_op tCONSTANT", "mlhs_node : primary_value tCOLON2 tCONSTANT", "mlhs_node : tCOLON3 tCONSTANT", "mlhs_node : backref", "lhs : variable", "lhs : primary_value '[' opt_call_args rbracket", "lhs : primary_value call_op tIDENTIFIER", "lhs : primary_value tCOLON2 tIDENTIFIER", "lhs : primary_value call_op tCONSTANT", "lhs : primary_value tCOLON2 tCONSTANT", "lhs : tCOLON3 tCONSTANT", "lhs : backref", "cname : tIDENTIFIER", "cname : tCONSTANT", "cpath : tCOLON3 cname", "cpath : cname", "cpath : primary_value tCOLON2 cname", "fname : tIDENTIFIER", "fname : tCONSTANT", "fname : tFID", "fname : op", "fname : reswords", "fsym : fname", "fsym : basic_symbol", "undef_list : fsym", "$$5 :", "undef_list : undef_list ',' $$5 fsym", "op : '|'", "op : '^'", "op : '&'", "op : tCMP", "op : tEQ", "op : tEQQ", "op : tMATCH", "op : tNMATCH", "op : '>'", "op : tGEQ", "op : '<'", "op : tLEQ", "op : tNEQ", "op : tLSHFT", "op : tRSHFT", "op : '+'", "op : '-'", "op : '*'", "op : tSTAR", "op : '/'", "op : '%'", "op : tPOW", "op : '!'", "op : '~'", "op : tUPLUS", "op : tUMINUS", "op : tAREF", "op : tASET", "op : '`'", "reswords : keyword__LINE__", "reswords : keyword__FILE__", "reswords : keyword__ENCODING__", "reswords : keyword_BEGIN", "reswords : keyword_END", "reswords : keyword_alias", "reswords : keyword_and", "reswords : keyword_begin", "reswords : keyword_break", "reswords : keyword_case", "reswords : keyword_class", "reswords : keyword_def", "reswords : keyword_do", "reswords : keyword_else", "reswords : keyword_elsif", "reswords : keyword_end", "reswords : keyword_ensure", "reswords : keyword_false", "reswords : keyword_for", "reswords : keyword_in", "reswords : keyword_module", "reswords : keyword_next", "reswords : keyword_nil", "reswords : keyword_not", "reswords : keyword_or", "reswords : keyword_redo", "reswords : keyword_rescue", "reswords : keyword_retry", "reswords : keyword_return", "reswords : keyword_self", "reswords : keyword_super", "reswords : keyword_then", "reswords : keyword_true", "reswords : keyword_undef", "reswords : keyword_when", "reswords : keyword_yield", "reswords : keyword_if", "reswords : keyword_unless", "reswords : keyword_while", "reswords : keyword_until", "arg : lhs '=' arg_rhs", "arg : var_lhs tOP_ASGN arg_rhs", "arg : primary_value '[' opt_call_args rbracket tOP_ASGN arg_rhs", "arg : primary_value call_op tIDENTIFIER tOP_ASGN arg_rhs", "arg : primary_value call_op tCONSTANT tOP_ASGN arg_rhs", "arg : primary_value tCOLON2 tIDENTIFIER tOP_ASGN arg_rhs", "arg : primary_value tCOLON2 tCONSTANT tOP_ASGN arg_rhs", "arg : tCOLON3 tCONSTANT tOP_ASGN arg_rhs", "arg : backref tOP_ASGN arg_rhs", "arg : arg tDOT2 arg", "arg : arg tDOT3 arg", "arg : arg '+' arg", "arg : arg '-' arg", "arg : arg '*' arg", "arg : arg '/' arg", "arg : arg '%' arg", "arg : arg tPOW arg", "arg : tUMINUS_NUM tINTEGER tPOW arg", "arg : tUMINUS_NUM tFLOAT tPOW arg", "arg : tUPLUS arg", "arg : tUMINUS arg", "arg : arg '|' arg", "arg : arg '^' arg", "arg : arg '&' arg", "arg : arg tCMP arg", "arg : arg '>' arg", "arg : arg tGEQ arg", "arg : arg '<' arg", "arg : arg tLEQ arg", "arg : arg tEQ arg", "arg : arg tEQQ arg", "arg : arg tNEQ arg", "arg : arg tMATCH arg", "arg : arg tNMATCH arg", "arg : '!' arg", "arg : '~' arg", "arg : arg tLSHFT arg", "arg : arg tRSHFT arg", "arg : arg tANDOP arg", "arg : arg tOROP arg", "arg : arg '?' arg opt_nl ':' arg", "arg : primary", "aref_args : none", "aref_args : args trailer", "aref_args : args comma assocs trailer", "aref_args : assocs trailer", "arg_rhs : arg", "arg_rhs : arg modifier_rescue arg", "paren_args : '(' opt_call_args rparen", "opt_paren_args : none", "opt_paren_args : paren_args", "opt_call_args : none", "opt_call_args : call_args", "opt_call_args : args ','", "opt_call_args : args comma assocs ','", "opt_call_args : assocs ','", "call_args : command", "call_args : args opt_block_arg", "call_args : assocs opt_block_arg", "call_args : args comma assocs opt_block_arg", "call_args : block_arg", "$$6 :", "command_args : $$6 call_args", "block_arg : tAMPER arg", "opt_block_arg : comma block_arg", "opt_block_arg : none", "comma : ','", "comma : ',' heredoc_bodies", "args : arg", "args : tSTAR arg", "args : args comma arg", "args : args comma tSTAR arg", "mrhs : args comma arg", "mrhs : args comma tSTAR arg", "mrhs : tSTAR arg", "primary : literal", "primary : string", "primary : xstring", "primary : regexp", "primary : heredoc", "primary : var_ref", "primary : backref", "primary : tFID", "$$7 :", "primary : keyword_begin $$7 bodystmt keyword_end", "$$8 :", "$$9 :", "primary : tLPAREN_ARG $$8 stmt $$9 rparen", "$$10 :", "primary : tLPAREN_ARG $$10 rparen", "primary : tLPAREN compstmt ')'", "primary : primary_value tCOLON2 tCONSTANT", "primary : tCOLON3 tCONSTANT", "primary : tLBRACK aref_args ']'", "primary : tLBRACE assoc_list '}'", "primary : keyword_return", "primary : keyword_yield opt_paren_args", "primary : keyword_not '(' expr rparen", "primary : keyword_not '(' rparen", "primary : operation brace_block", "primary : method_call", "primary : method_call brace_block", "$$11 :", "$$12 :", "primary : tLAMBDA $$11 f_larglist $$12 lambda_body", "primary : keyword_if expr_value then compstmt if_tail keyword_end", "primary : keyword_unless expr_value then compstmt opt_else keyword_end", "$$13 :", "$$14 :", "primary : keyword_while $$13 expr_value do $$14 compstmt keyword_end", "$$15 :", "$$16 :", "primary : keyword_until $$15 expr_value do $$16 compstmt keyword_end", "primary : keyword_case expr_value opt_terms case_body keyword_end", "primary : keyword_case opt_terms case_body keyword_end", "$$17 :", "$$18 :", "primary : keyword_for for_var keyword_in $$17 expr_value do $$18 compstmt keyword_end", "$$19 :", "primary : keyword_class cpath superclass $$19 bodystmt keyword_end", "$$20 :", "$$21 :", "primary : keyword_class tLSHFT expr $$20 term $$21 bodystmt keyword_end", "$$22 :", "primary : keyword_module cpath $$22 bodystmt keyword_end", "$$23 :", "$$24 :", "primary : keyword_def fname $$23 $$24 f_arglist bodystmt keyword_end", "$$25 :", "$$26 :", "primary : keyword_def singleton dot_or_colon $$25 fname $$26 f_arglist bodystmt keyword_end", "primary : keyword_break", "primary : keyword_next", "primary : keyword_redo", "primary : keyword_retry", "primary_value : primary", "then : term", "then : keyword_then", "then : term keyword_then", "do : term", "do : keyword_do_cond", "if_tail : opt_else", "if_tail : keyword_elsif expr_value then compstmt if_tail", "opt_else : none", "opt_else : keyword_else compstmt", "for_var : lhs", "for_var : mlhs", "f_marg : f_norm_arg", "f_marg : tLPAREN f_margs rparen", "f_marg_list : f_marg", "f_marg_list : f_marg_list ',' f_marg", "f_margs : f_marg_list", "f_margs : f_marg_list ',' tSTAR f_norm_arg", "f_margs : f_marg_list ',' tSTAR f_norm_arg ',' f_marg_list", "f_margs : f_marg_list ',' tSTAR", "f_margs : f_marg_list ',' tSTAR ',' f_marg_list", "f_margs : tSTAR f_norm_arg", "f_margs : tSTAR f_norm_arg ',' f_marg_list", "f_margs : tSTAR", "f_margs : tSTAR ',' f_marg_list", "block_param : f_arg ',' f_block_optarg ',' f_rest_arg opt_f_block_arg", "block_param : f_arg ',' f_block_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", "block_param : f_arg ',' f_block_optarg opt_f_block_arg", "block_param : f_arg ',' f_block_optarg ',' f_arg opt_f_block_arg", "block_param : f_arg ',' f_rest_arg opt_f_block_arg", "block_param : f_arg ','", "block_param : f_arg ',' f_rest_arg ',' f_arg opt_f_block_arg", "block_param : f_arg opt_f_block_arg", "block_param : f_block_optarg ',' f_rest_arg opt_f_block_arg", "block_param : f_block_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", "block_param : f_block_optarg opt_f_block_arg", "block_param : f_block_optarg ',' f_arg opt_f_block_arg", "block_param : f_rest_arg opt_f_block_arg", "block_param : f_rest_arg ',' f_arg opt_f_block_arg", "block_param : f_block_arg", "opt_block_param : none", "opt_block_param : block_param_def", "block_param_def : '|' opt_bv_decl '|'", "block_param_def : tOROP", "block_param_def : '|' block_param opt_bv_decl '|'", "opt_bv_decl : opt_nl", "opt_bv_decl : opt_nl ';' bv_decls opt_nl", "bv_decls : bvar", "bv_decls : bv_decls ',' bvar", "bvar : tIDENTIFIER", "bvar : f_bad_arg", "f_larglist : '(' f_args opt_bv_decl ')'", "f_larglist : f_args", "lambda_body : tLAMBEG compstmt '}'", "lambda_body : keyword_do_LAMBDA compstmt keyword_end", "$$27 :", "do_block : keyword_do_block $$27 opt_block_param compstmt keyword_end", "block_call : command do_block", "block_call : block_call call_op2 operation2 opt_paren_args", "block_call : block_call call_op2 operation2 opt_paren_args brace_block", "block_call : block_call call_op2 operation2 command_args do_block", "method_call : operation paren_args", "method_call : primary_value call_op operation2 opt_paren_args", "method_call : primary_value tCOLON2 operation2 paren_args", "method_call : primary_value tCOLON2 operation3", "method_call : primary_value call_op paren_args", "method_call : primary_value tCOLON2 paren_args", "method_call : keyword_super paren_args", "method_call : keyword_super", "method_call : primary_value '[' opt_call_args rbracket", "$$28 :", "brace_block : '{' $$28 opt_block_param compstmt '}'", "$$29 :", "brace_block : keyword_do $$29 opt_block_param compstmt keyword_end", "case_body : keyword_when args then compstmt cases", "cases : opt_else", "cases : case_body", "opt_rescue : keyword_rescue exc_list exc_var then compstmt opt_rescue", "opt_rescue : none", "exc_list : arg", "exc_list : mrhs", "exc_list : none", "exc_var : tASSOC lhs", "exc_var : none", "opt_ensure : keyword_ensure compstmt", "opt_ensure : none", "literal : numeric", "literal : symbol", "literal : words", "literal : symbols", "string : tCHAR", "string : tSTRING", "string : tSTRING_BEG tSTRING", "string : tSTRING_BEG string_rep tSTRING", "string_rep : string_interp", "string_rep : string_rep string_interp", "string_interp : tSTRING_MID", "$$30 :", "string_interp : tSTRING_PART $$30 compstmt '}'", "string_interp : tLITERAL_DELIM", "string_interp : tHD_LITERAL_DELIM heredoc_bodies", "xstring : tXSTRING_BEG tXSTRING", "xstring : tXSTRING_BEG string_rep tXSTRING", "regexp : tREGEXP_BEG tREGEXP", "regexp : tREGEXP_BEG string_rep tREGEXP", "heredoc : tHEREDOC_BEG", "heredoc_bodies : heredoc_body", "heredoc_bodies : heredoc_bodies heredoc_body", "heredoc_body : tHEREDOC_END", "heredoc_body : heredoc_string_rep tHEREDOC_END", "heredoc_string_rep : heredoc_string_interp", "heredoc_string_rep : heredoc_string_rep heredoc_string_interp", "heredoc_string_interp : tHD_STRING_MID", "$$31 :", "heredoc_string_interp : tHD_STRING_PART $$31 compstmt '}'", "words : tWORDS_BEG tSTRING", "words : tWORDS_BEG string_rep tSTRING", "symbol : basic_symbol", "symbol : tSYMBEG tSTRING_BEG string_rep tSTRING", "basic_symbol : tSYMBEG sym", "sym : fname", "sym : tIVAR", "sym : tGVAR", "sym : tCVAR", "sym : tSTRING", "sym : tSTRING_BEG tSTRING", "symbols : tSYMBOLS_BEG tSTRING", "symbols : tSYMBOLS_BEG string_rep tSTRING", "numeric : tINTEGER", "numeric : tFLOAT", "numeric : tUMINUS_NUM tINTEGER", "numeric : tUMINUS_NUM tFLOAT", "variable : tIDENTIFIER", "variable : tIVAR", "variable : tGVAR", "variable : tCVAR", "variable : tCONSTANT", "var_lhs : variable", "var_ref : variable", "var_ref : keyword_nil", "var_ref : keyword_self", "var_ref : keyword_true", "var_ref : keyword_false", "var_ref : keyword__FILE__", "var_ref : keyword__LINE__", "backref : tNTH_REF", "backref : tBACK_REF", "superclass :", "$$32 :", "superclass : '<' $$32 expr_value term", "f_arglist : '(' f_args rparen", "f_arglist : f_args term", "f_args : f_arg ',' f_optarg ',' f_rest_arg opt_f_block_arg", "f_args : f_arg ',' f_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", "f_args : f_arg ',' f_optarg opt_f_block_arg", "f_args : f_arg ',' f_optarg ',' f_arg opt_f_block_arg", "f_args : f_arg ',' f_rest_arg opt_f_block_arg", "f_args : f_arg ',' f_rest_arg ',' f_arg opt_f_block_arg", "f_args : f_arg opt_f_block_arg", "f_args : f_optarg ',' f_rest_arg opt_f_block_arg", "f_args : f_optarg ',' f_rest_arg ',' f_arg opt_f_block_arg", "f_args : f_optarg opt_f_block_arg", "f_args : f_optarg ',' f_arg opt_f_block_arg", "f_args : f_rest_arg opt_f_block_arg", "f_args : f_rest_arg ',' f_arg opt_f_block_arg", "f_args : f_block_arg", "f_args :", "f_bad_arg : tCONSTANT", "f_bad_arg : tIVAR", "f_bad_arg : tGVAR", "f_bad_arg : tCVAR", "f_norm_arg : f_bad_arg", "f_norm_arg : tIDENTIFIER", "f_arg_item : f_norm_arg", "f_arg_item : tLPAREN f_margs rparen", "f_arg : f_arg_item", "f_arg : f_arg ',' f_arg_item", "f_opt_asgn : tIDENTIFIER '='", "f_opt : f_opt_asgn arg", "f_block_opt : f_opt_asgn primary_value", "f_block_optarg : f_block_opt", "f_block_optarg : f_block_optarg ',' f_block_opt", "f_optarg : f_opt", "f_optarg : f_optarg ',' f_opt", "restarg_mark : '*'", "restarg_mark : tSTAR", "f_rest_arg : restarg_mark tIDENTIFIER", "f_rest_arg : restarg_mark", "blkarg_mark : '&'", "blkarg_mark : tAMPER", "f_block_arg : blkarg_mark tIDENTIFIER", "opt_f_block_arg : ',' f_block_arg", "opt_f_block_arg : none", "singleton : var_ref", "$$33 :", "singleton : '(' $$33 expr rparen", "assoc_list : none", "assoc_list : assocs trailer", "assocs : assoc", "assocs : assocs ',' assoc", "assoc : arg tASSOC arg", "assoc : tLABEL arg", "assoc : tLABEL_END arg", "assoc : tSTRING_BEG tLABEL_END arg", "assoc : tSTRING_BEG string_rep tLABEL_END arg", "operation : tIDENTIFIER", "operation : tCONSTANT", "operation : tFID", "operation2 : tIDENTIFIER", "operation2 : tCONSTANT", "operation2 : tFID", "operation2 : op", "operation3 : tIDENTIFIER", "operation3 : tFID", "operation3 : op", "dot_or_colon : '.'", "dot_or_colon : tCOLON2", "call_op : '.'", "call_op : tANDDOT", "call_op2 : call_op", "call_op2 : tCOLON2", "opt_terms :", "opt_terms : terms", "opt_nl :", "opt_nl : nl", "rparen : opt_nl ')'", "rbracket : opt_nl ']'", "trailer :", "trailer : nl", "trailer : comma", "term : ';'", "term : nl", "term : heredoc_body", "nl : '\\n'", "terms : term", "terms : terms term", "none :", }; /// /// debugging support, requires yyDebug. /// Set to null to suppress debugging messages. /// protected yyDebugOut yyDebug; /// /// index-checked interface to yyNames[]. /// /// single character or %token value /// token name or [illegal] or [unknown] public static string yyName(int token) { if ((token < 0) || (token > yyNames.Length)) return "[illegal]"; string name; if ((name = yyNames[token]) != null) return name; return "[unknown]"; } public static int yyToken(string name) { int token = 0; foreach (var n in yyNames) { if (n == name) return token; token++; } return yyErrorCode; } /// /// thrown for irrecoverable syntax errors and stack overflow. /// /// /// Nested for convenience, does not depend on parser class. /// public class yyException : System.Exception { public yyException(string message) : base(message) { } } /// /// must be implemented by a scanner object to supply input to the parser. /// /// /// Nested for convenience, does not depend on parser class. /// public interface yyInput { /// /// move on to next token. /// /// false if positioned beyond tokens /// IOException on input error bool Advance(); /// /// classifies current token by %token value or single character. /// /// /// Should not be called if Advance() returned false. /// int Token { get; } /// /// value associated with current token. /// /// /// Should not be called if Advance() returned false. /// object Value { get; } } public interface yyDebugOut { void push(int state, object value); void lex(int state, int token, string name, object value); void shift(int from, int to, int errorFlag); void pop(int state); void discard(int state, int token, string name, object value); void reduce(int from, int to, int rule, string text, int len); void shift(int from, int to); void accept(object value); void error(string message); void reject(); } public interface yyConsoleOut { void yyWarning(string message, object[] expected); void yyError(string message, object[] expected); } public yyConsoleOut yyConsole; /// /// (syntax) warning message. /// Can be overwritten to control message format. /// /// text to be displayed /// list of acceptable tokens, if available public void yyWarning(string message, params object[] expected) { if (yyConsole == null) return; yyConsole.yyWarning(message, expected); } /// /// (syntax) error message. /// Can be overwritten to control message format. /// /// text to be displayed /// list of acceptable tokens, if available public void yyError(string message, params object[] expected) { if (yyConsole == null) return; yyConsole.yyError(message, expected); } /// /// computes list of expected tokens on error by tracing the tables. /// /// for which to compute the list /// list of token names protected string[] yyExpecting(int state) { int token, n, len = 0; bool[] ok = new bool[yyNames.Length]; if ((n = yySindex[state]) != 0) for (token = n < 0 ? -n : 0; (token < yyNames.Length) && (n + token < yyTable.Length); ++token) if (yyCheck[n + token] == token && !ok[token] && yyNames[token] != null) { ++len; ok[token] = true; } if ((n = yyRindex[state]) != 0) for (token = n < 0 ? -n : 0; (token < yyNames.Length) && (n + token < yyTable.Length); ++token) if (yyCheck[n + token] == token && !ok[token] && yyNames[token] != null) { ++len; ok[token] = true; } string[] result = new string[len]; for (n = token = 0; n < len; ++token) if (ok[token]) result[n++] = yyNames[token]; return result; } /// /// the generated parser, with debugging messages. /// Maintains a dynamic state and value stack. /// /// scanner /// debug message writer implementing yyDebug, /// or null /// result of the last reduction, if any /// yyException on irrecoverable parse error public object yyParse(yyInput yyLex, yyDebugOut yyDebug) { this.yyDebug = yyDebug; return yyParse(yyLex); } /// /// initial size and increment of the state/value stack [default 256]. /// This is not final so that it can be overwritten outside of invocations /// of yyParse(). /// protected int yyMax; protected int yyNest; /// /// executed at the beginning of a reduce action. /// Used as $$ = yyDefault($1), prior to the user-specified action, if any. /// Can be overwritten to provide deep copy, etc. /// /// /// the generated parser, with debugging messages. /// Maintains a dynamic state and value stack. /// /// scanner /// result of the last reduction, if any /// yyException on irrecoverable parse error public object yyParse(yyInput yyLex) { yyNest++; if (yyMax <= 0) yyMax = 256; // initial size int yyState = 0; // state stack ptr int[] yyStates = new int[0]; // state stack object yyVal = null; object[] yyVals = new object[0]; // value stack int yyToken = -1; // current input int yyErrorFlag = 0; // #tokens to shift for (int yyTop = 0; ; ++yyTop) { while (yyTop >= yyStates.Length) { // dynamically increase yyStates.Push(0); yyVals.Push(null); } yyStates[yyTop] = yyState; yyVals[yyTop] = yyVal; if (yyDebug != null) yyDebug.push(yyState, yyVal); for (bool yyLoop = true; yyLoop;) { // discarding a token does not change stack int yyN; if ((yyN = yyDefRed[yyState]) == 0) { // else [default] reduce (yyN) if (yyToken < 0) { yyToken = yyLex.Advance() ? yyLex.Token : 0; if (yyDebug != null) yyDebug.lex(yyState, yyToken, yyName(yyToken), yyLex.Value); } if ((yyN = yySindex[yyState]) != 0 && ((yyN += yyToken) >= 0) && (yyN < yyTable.Length) && (yyCheck[yyN] == yyToken)) { if (yyDebug != null) yyDebug.shift(yyState, yyTable[yyN], yyErrorFlag > 0 ? yyErrorFlag - 1 : 0); yyState = yyTable[yyN]; // shift to yyN yyVal = yyLex.Value; yyToken = -1; if (yyErrorFlag > 0) --yyErrorFlag; break; } if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0 && yyN < yyTable.Length && yyCheck[yyN] == yyToken) yyN = yyTable[yyN]; // reduce (yyN) else switch (yyErrorFlag) { case 0: case 1: case 2: if (yyErrorFlag == 0) { yyError("syntax error, expecting {0}", String.Join(",", yyExpecting(yyState))); if (yyDebug != null) yyDebug.error("syntax error"); } yyErrorFlag = 3; do { if ((yyN = yySindex[yyStates[yyTop]]) != 0 && (yyN += yyErrorCode) >= 0 && yyN < yyTable.Length && yyCheck[yyN] == yyErrorCode) { if (yyDebug != null) yyDebug.shift(yyStates[yyTop], yyTable[yyN], 3); yyState = yyTable[yyN]; yyVal = yyLex.Value; yyLoop = false; break; } if (yyDebug != null) yyDebug.pop(yyStates[yyTop]); } while (--yyTop >= 0); if (!yyLoop) continue; if (yyDebug != null) yyDebug.reject(); throw new yyException("irrecoverable syntax error"); case 3: if (yyToken == 0) { yyNest--; if (yyNest <= 0) return yyVal; if (yyDebug != null) yyDebug.reject(); throw new yyException("irrecoverable syntax error at end-of-file"); } if (yyDebug != null) yyDebug.discard(yyState, yyToken, yyName(yyToken), yyLex.Value); yyToken = -1; continue; // leave stack alone } } int yyV = yyTop + 1 - yyLen[yyN]; if (yyDebug != null) yyDebug.reduce(yyState, yyStates[yyV - 1], yyN, yyRule[yyN], yyLen[yyN]); yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]); switch (yyN) { case 1: #line 181 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_BEG; if (this.locals == null) this.locals = new locals_node(null); } break; case 2: #line 186 "mrb_parse.jay" { this.tree = new_scope(((node)yyVals[0 + yyTop])); this.tree.NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 3: #line 193 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 4: #line 199 "mrb_parse.jay" { yyVal = new_begin(null); } break; case 5: #line 203 "mrb_parse.jay" { yyVal = new_begin(((node)yyVals[0 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 6: #line 208 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), newline_node(((node)yyVals[0 + yyTop]))); } break; case 7: #line 212 "mrb_parse.jay" { yyVal = new_begin(null); } break; case 9: #line 219 "mrb_parse.jay" { yyVal = local_switch(); } break; case 10: #line 223 "mrb_parse.jay" { yyError("BEGIN not supported"); local_resume(((locals_node)yyVals[-3 + yyTop])); yyVal = null; } break; case 11: #line 234 "mrb_parse.jay" { if (((node)yyVals[-2 + yyTop]) != null) { yyVal = new_rescue(((node)yyVals[-3 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); } else if (((node)yyVals[-1 + yyTop]) != null) { yyWarning("else without rescue is useless"); yyVal = push(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); } else { yyVal = ((node)yyVals[-3 + yyTop]); } if (((node)yyVals[0 + yyTop]) != null) { if (yyVal != null) { yyVal = new_ensure(((node)yyVal), ((node)yyVals[0 + yyTop])); } else { yyVal = push(((node)yyVals[0 + yyTop]), new_nil()); } } } break; case 12: #line 258 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 13: #line 264 "mrb_parse.jay" { yyVal = new_begin(null); } break; case 14: #line 268 "mrb_parse.jay" { yyVal = new_begin(((node)yyVals[0 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 15: #line 273 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), newline_node(((node)yyVals[0 + yyTop]))); } break; case 16: #line 277 "mrb_parse.jay" { yyVal = new_begin(((node)yyVals[0 + yyTop])); } break; case 17: #line 282 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_FNAME; } break; case 18: #line 283 "mrb_parse.jay" { yyVal = new_alias(((mrb_sym)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 19: #line 287 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 20: #line 291 "mrb_parse.jay" { yyVal = new_if(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop]), null); } break; case 21: #line 295 "mrb_parse.jay" { yyVal = new_unless(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop]), null); } break; case 22: #line 299 "mrb_parse.jay" { yyVal = new_while(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop])); } break; case 23: #line 303 "mrb_parse.jay" { yyVal = new_until(cond(((node)yyVals[0 + yyTop])), ((node)yyVals[-2 + yyTop])); } break; case 24: #line 307 "mrb_parse.jay" { yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 25: #line 311 "mrb_parse.jay" { yyError("END not supported"); yyVal = new_postexe(((node)yyVals[-1 + yyTop])); } break; case 27: #line 317 "mrb_parse.jay" { yyVal = new_masgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 28: #line 321 "mrb_parse.jay" { yyVal = new_asgn(((node)yyVals[-2 + yyTop]), new_array(((node)yyVals[0 + yyTop]))); } break; case 29: #line 325 "mrb_parse.jay" { yyVal = new_masgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 30: #line 329 "mrb_parse.jay" { yyVal = new_masgn(((node)yyVals[-2 + yyTop]), new_array(((node)yyVals[0 + yyTop]))); } break; case 32: #line 336 "mrb_parse.jay" { yyVal = new_asgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 33: #line 340 "mrb_parse.jay" { yyVal = new_op_asgn(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 34: #line 344 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-5 + yyTop]), intern("[]", 2), ((node)yyVals[-3 + yyTop]), (MrbTokens)'.'), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 35: #line 348 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 36: #line 352 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 37: #line 356 "mrb_parse.jay" { yyError("constant re-assignment"); yyVal = null; } break; case 38: #line 361 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, MrbTokens.tCOLON2), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 39: #line 365 "mrb_parse.jay" { backref_error(((node)yyVals[-2 + yyTop])); yyVal = new_begin(null); } break; case 41: #line 373 "mrb_parse.jay" { yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 44: #line 382 "mrb_parse.jay" { yyVal = new_and(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 45: #line 386 "mrb_parse.jay" { yyVal = new_or(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 46: #line 390 "mrb_parse.jay" { yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); } break; case 47: #line 394 "mrb_parse.jay" { yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); } break; case 49: #line 401 "mrb_parse.jay" { if (((node)yyVals[0 + yyTop]) == null) yyVal = new_nil(); else { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = ((node)yyVals[0 + yyTop]); } } break; case 54: #line 419 "mrb_parse.jay" { local_nest(); } break; case 55: #line 425 "mrb_parse.jay" { yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), true); local_unnest(); } break; case 56: #line 432 "mrb_parse.jay" { yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 57: #line 436 "mrb_parse.jay" { args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); yyVal = new_fcall(((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); } break; case 58: #line 441 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); } break; case 59: #line 445 "mrb_parse.jay" { args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); } break; case 60: #line 450 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); } break; case 61: #line 454 "mrb_parse.jay" { args_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), MrbTokens.tCOLON2); } break; case 62: #line 459 "mrb_parse.jay" { yyVal = new_super(((node)yyVals[0 + yyTop])); } break; case 63: #line 463 "mrb_parse.jay" { yyVal = new_yield(((node)yyVals[0 + yyTop])); } break; case 64: #line 467 "mrb_parse.jay" { yyVal = new_return(ret_args(((node)yyVals[0 + yyTop]))); } break; case 65: #line 471 "mrb_parse.jay" { yyVal = new_break(ret_args(((node)yyVals[0 + yyTop]))); } break; case 66: #line 475 "mrb_parse.jay" { yyVal = new_next(ret_args(((node)yyVals[0 + yyTop]))); } break; case 67: #line 481 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 68: #line 485 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 70: #line 492 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 71: #line 498 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 72: #line 502 "mrb_parse.jay" { yyVal = list1(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); } break; case 73: #line 506 "mrb_parse.jay" { yyVal = list2(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 74: #line 510 "mrb_parse.jay" { yyVal = list3(((node)yyVals[-4 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 75: #line 514 "mrb_parse.jay" { yyVal = list2(((node)yyVals[-1 + yyTop]), new_nil()); } break; case 76: #line 518 "mrb_parse.jay" { yyVal = list3(((node)yyVals[-3 + yyTop]), new_nil(), ((node)yyVals[0 + yyTop])); } break; case 77: #line 522 "mrb_parse.jay" { yyVal = list2(null, ((node)yyVals[0 + yyTop])); } break; case 78: #line 526 "mrb_parse.jay" { yyVal = list3(null, ((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 79: #line 530 "mrb_parse.jay" { yyVal = list2(null, new_nil()); } break; case 80: #line 534 "mrb_parse.jay" { yyVal = list3(null, new_nil(), ((node)yyVals[0 + yyTop])); } break; case 82: #line 541 "mrb_parse.jay" { yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); } break; case 83: #line 547 "mrb_parse.jay" { yyVal = list1(((node)yyVals[-1 + yyTop])); } break; case 84: #line 551 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); } break; case 85: #line 557 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 86: #line 561 "mrb_parse.jay" { yyVal = push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 87: #line 567 "mrb_parse.jay" { assignable(((node)yyVals[0 + yyTop])); } break; case 88: #line 571 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); } break; case 89: #line 575 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); } break; case 90: #line 579 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); } break; case 91: #line 583 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); } break; case 92: #line 587 "mrb_parse.jay" { if (this.in_def != 0 || this.in_single != 0) yyError("dynamic constant assignment"); yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 93: #line 593 "mrb_parse.jay" { if (this.in_def != 0 || this.in_single != 0) yyError("dynamic constant assignment"); yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); } break; case 94: #line 599 "mrb_parse.jay" { backref_error(((node)yyVals[0 + yyTop])); yyVal = null; } break; case 95: #line 606 "mrb_parse.jay" { assignable(((node)yyVals[0 + yyTop])); } break; case 96: #line 610 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); } break; case 97: #line 614 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); } break; case 98: #line 618 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); } break; case 99: #line 622 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, ((MrbTokens)yyVals[-1 + yyTop])); } break; case 100: #line 626 "mrb_parse.jay" { if (this.in_def != 0 || this.in_single != 0) yyError("dynamic constant assignment"); yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 101: #line 632 "mrb_parse.jay" { if (this.in_def != 0 || this.in_single != 0) yyError("dynamic constant assignment"); yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); } break; case 102: #line 638 "mrb_parse.jay" { backref_error(((node)yyVals[0 + yyTop])); yyVal = null; } break; case 103: #line 645 "mrb_parse.jay" { yyError("class/module name must be CONSTANT"); } break; case 105: #line 652 "mrb_parse.jay" { yyVal = cons(1, ((mrb_sym)yyVals[0 + yyTop])); } break; case 106: #line 656 "mrb_parse.jay" { yyVal = cons(0, ((mrb_sym)yyVals[0 + yyTop])); } break; case 107: #line 660 "mrb_parse.jay" { yyVal = cons(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 111: #line 669 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_ENDFN; yyVal = ((mrb_sym)yyVals[0 + yyTop]); } break; case 112: #line 674 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_ENDFN; yyVal = ((mrb_sym)yyVals[0 + yyTop]); } break; case 115: #line 685 "mrb_parse.jay" { yyVal = new_undef(((mrb_sym)yyVals[0 + yyTop])); } break; case 116: #line 688 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_FNAME; } break; case 117: #line 689 "mrb_parse.jay" { yyVal = push(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 118: #line 694 "mrb_parse.jay" { yyVal = intern_c('|'); } break; case 119: #line 695 "mrb_parse.jay" { yyVal = intern_c('^'); } break; case 120: #line 696 "mrb_parse.jay" { yyVal = intern_c('&'); } break; case 121: #line 697 "mrb_parse.jay" { yyVal = intern("<=>", 3); } break; case 122: #line 698 "mrb_parse.jay" { yyVal = intern("==", 2); } break; case 123: #line 699 "mrb_parse.jay" { yyVal = intern("===", 3); } break; case 124: #line 700 "mrb_parse.jay" { yyVal = intern("=~", 2); } break; case 125: #line 701 "mrb_parse.jay" { yyVal = intern("!~", 2); } break; case 126: #line 702 "mrb_parse.jay" { yyVal = intern_c('>'); } break; case 127: #line 703 "mrb_parse.jay" { yyVal = intern(">=", 2); } break; case 128: #line 704 "mrb_parse.jay" { yyVal = intern_c('<'); } break; case 129: #line 705 "mrb_parse.jay" { yyVal = intern("<=", 2); } break; case 130: #line 706 "mrb_parse.jay" { yyVal = intern("!=", 2); } break; case 131: #line 707 "mrb_parse.jay" { yyVal = intern("<<", 2); } break; case 132: #line 708 "mrb_parse.jay" { yyVal = intern(">>", 2); } break; case 133: #line 709 "mrb_parse.jay" { yyVal = intern_c('+'); } break; case 134: #line 710 "mrb_parse.jay" { yyVal = intern_c('-'); } break; case 135: #line 711 "mrb_parse.jay" { yyVal = intern_c('*'); } break; case 136: #line 712 "mrb_parse.jay" { yyVal = intern_c('*'); } break; case 137: #line 713 "mrb_parse.jay" { yyVal = intern_c('/'); } break; case 138: #line 714 "mrb_parse.jay" { yyVal = intern_c('%'); } break; case 139: #line 715 "mrb_parse.jay" { yyVal = intern("**", 2); } break; case 140: #line 716 "mrb_parse.jay" { yyVal = intern_c('!'); } break; case 141: #line 717 "mrb_parse.jay" { yyVal = intern_c('~'); } break; case 142: #line 718 "mrb_parse.jay" { yyVal = intern("+@", 2); } break; case 143: #line 719 "mrb_parse.jay" { yyVal = intern("-@", 2); } break; case 144: #line 720 "mrb_parse.jay" { yyVal = intern("[]", 2); } break; case 145: #line 721 "mrb_parse.jay" { yyVal = intern("[]=", 3); } break; case 146: #line 722 "mrb_parse.jay" { yyVal = intern_c('`'); } break; case 187: #line 740 "mrb_parse.jay" { yyVal = new_asgn(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 188: #line 744 "mrb_parse.jay" { yyVal = new_op_asgn(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 189: #line 748 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-5 + yyTop]), intern("[]", 2), ((node)yyVals[-3 + yyTop]), (MrbTokens)'.'), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 190: #line 752 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 191: #line 756 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, ((MrbTokens)yyVals[-3 + yyTop])), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 192: #line 760 "mrb_parse.jay" { yyVal = new_op_asgn(new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), null, MrbTokens.tCOLON2), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 193: #line 764 "mrb_parse.jay" { yyError("constant re-assignment"); yyVal = new_begin(null); } break; case 194: #line 769 "mrb_parse.jay" { yyError("constant re-assignment"); yyVal = new_begin(null); } break; case 195: #line 774 "mrb_parse.jay" { backref_error(((node)yyVals[-2 + yyTop])); yyVal = new_begin(null); } break; case 196: #line 779 "mrb_parse.jay" { yyVal = new_dot2(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 197: #line 783 "mrb_parse.jay" { yyVal = new_dot3(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 198: #line 787 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "+", ((node)yyVals[0 + yyTop])); } break; case 199: #line 791 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "-", ((node)yyVals[0 + yyTop])); } break; case 200: #line 795 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "*", ((node)yyVals[0 + yyTop])); } break; case 201: #line 799 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "/", ((node)yyVals[0 + yyTop])); } break; case 202: #line 803 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "%", ((node)yyVals[0 + yyTop])); } break; case 203: #line 807 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])); } break; case 204: #line 811 "mrb_parse.jay" { yyVal = call_uni_op(call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])), "-@"); } break; case 205: #line 815 "mrb_parse.jay" { yyVal = call_uni_op(call_bin_op(((node)yyVals[-2 + yyTop]), "**", ((node)yyVals[0 + yyTop])), "-@"); } break; case 206: #line 819 "mrb_parse.jay" { yyVal = call_uni_op(((node)yyVals[0 + yyTop]), "+@"); } break; case 207: #line 823 "mrb_parse.jay" { yyVal = call_uni_op(((node)yyVals[0 + yyTop]), "-@"); } break; case 208: #line 827 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "|", ((node)yyVals[0 + yyTop])); } break; case 209: #line 831 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "^", ((node)yyVals[0 + yyTop])); } break; case 210: #line 835 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "&", ((node)yyVals[0 + yyTop])); } break; case 211: #line 839 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<=>", ((node)yyVals[0 + yyTop])); } break; case 212: #line 843 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">", ((node)yyVals[0 + yyTop])); } break; case 213: #line 847 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">=", ((node)yyVals[0 + yyTop])); } break; case 214: #line 851 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<", ((node)yyVals[0 + yyTop])); } break; case 215: #line 855 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<=", ((node)yyVals[0 + yyTop])); } break; case 216: #line 859 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "==", ((node)yyVals[0 + yyTop])); } break; case 217: #line 863 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "===", ((node)yyVals[0 + yyTop])); } break; case 218: #line 867 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "!=", ((node)yyVals[0 + yyTop])); } break; case 219: #line 871 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "=~", ((node)yyVals[0 + yyTop])); } break; case 220: #line 875 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "!~", ((node)yyVals[0 + yyTop])); } break; case 221: #line 879 "mrb_parse.jay" { yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "!"); } break; case 222: #line 883 "mrb_parse.jay" { yyVal = call_uni_op(cond(((node)yyVals[0 + yyTop])), "~"); } break; case 223: #line 887 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), "<<", ((node)yyVals[0 + yyTop])); } break; case 224: #line 891 "mrb_parse.jay" { yyVal = call_bin_op(((node)yyVals[-2 + yyTop]), ">>", ((node)yyVals[0 + yyTop])); } break; case 225: #line 895 "mrb_parse.jay" { yyVal = new_and(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 226: #line 899 "mrb_parse.jay" { yyVal = new_or(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 227: #line 903 "mrb_parse.jay" { yyVal = new_if(cond(((node)yyVals[-5 + yyTop])), ((node)yyVals[-3 + yyTop]), ((node)yyVals[0 + yyTop]), true); } break; case 228: #line 907 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 230: #line 914 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 231: #line 919 "mrb_parse.jay" { yyVal = push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))); } break; case 232: #line 923 "mrb_parse.jay" { yyVal = cons(new_hash(((node)yyVals[-1 + yyTop])), null); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 233: #line 930 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = ((node)yyVals[0 + yyTop]); } break; case 234: #line 935 "mrb_parse.jay" { void_expr_error(((node)yyVals[-2 + yyTop])); yyVal = new_mod_rescue(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 235: #line 942 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 240: #line 954 "mrb_parse.jay" { yyVal = cons(((node)yyVals[-1 + yyTop]), null); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 241: #line 959 "mrb_parse.jay" { yyVal = cons(push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))), null); ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); } break; case 242: #line 964 "mrb_parse.jay" { yyVal = cons(list1(new_hash(((node)yyVals[-1 + yyTop]))), null); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 243: #line 971 "mrb_parse.jay" { yyVal = cons(list1(((node)yyVals[0 + yyTop])), null); ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 244: #line 976 "mrb_parse.jay" { yyVal = cons(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 245: #line 981 "mrb_parse.jay" { yyVal = cons(list1(new_hash(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 246: #line 986 "mrb_parse.jay" { yyVal = cons(push(((node)yyVals[-3 + yyTop]), new_hash(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[-3 + yyTop])); } break; case 247: #line 991 "mrb_parse.jay" { yyVal = cons(null, ((node)yyVals[0 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 248: #line 997 "mrb_parse.jay" { yyVal = (stack_type)this.cmdarg_stack; CMDARG_PUSH(1); } break; case 249: #line 1002 "mrb_parse.jay" { this.cmdarg_stack = ((stack_type)yyVals[-1 + yyTop]); yyVal = ((node)yyVals[0 + yyTop]); } break; case 250: #line 1009 "mrb_parse.jay" { yyVal = new_block_arg((node)((node)yyVals[0 + yyTop])); } break; case 251: #line 1015 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 252: #line 1019 "mrb_parse.jay" { yyVal = null; } break; case 255: #line 1029 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = cons(((node)yyVals[0 + yyTop]), null); ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 256: #line 1035 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = cons(new_splat(((node)yyVals[0 + yyTop])), null); ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 257: #line 1041 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 258: #line 1046 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = push(((node)yyVals[-3 + yyTop]), new_splat(((node)yyVals[0 + yyTop]))); } break; case 259: #line 1053 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 260: #line 1058 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = push(((node)yyVals[-3 + yyTop]), new_splat(((node)yyVals[0 + yyTop]))); } break; case 261: #line 1063 "mrb_parse.jay" { void_expr_error(((node)yyVals[0 + yyTop])); yyVal = list1(new_splat(((node)yyVals[0 + yyTop]))); } break; case 269: #line 1077 "mrb_parse.jay" { yyVal = new_fcall(((mrb_sym)yyVals[0 + yyTop]), null); } break; case 270: #line 1081 "mrb_parse.jay" { yyVal = (stack_type)this.cmdarg_stack; this.cmdarg_stack = 0; } break; case 271: #line 1087 "mrb_parse.jay" { this.cmdarg_stack = ((stack_type)yyVals[-2 + yyTop]); yyVal = ((node)yyVals[-1 + yyTop]); } break; case 272: #line 1092 "mrb_parse.jay" { yyVal = (stack_type)this.cmdarg_stack; this.cmdarg_stack = 0; } break; case 273: #line 1096 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_ENDARG; } break; case 274: #line 1097 "mrb_parse.jay" { this.cmdarg_stack = ((stack_type)yyVals[-3 + yyTop]); yyVal = ((node)yyVals[-2 + yyTop]); } break; case 275: #line 1101 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_ENDARG; } break; case 276: #line 1102 "mrb_parse.jay" { yyVal = new_nil(); } break; case 277: #line 1106 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 278: #line 1110 "mrb_parse.jay" { yyVal = new_colon2(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 279: #line 1114 "mrb_parse.jay" { yyVal = new_colon3(((mrb_sym)yyVals[0 + yyTop])); } break; case 280: #line 1118 "mrb_parse.jay" { yyVal = new_array(((node)yyVals[-1 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 281: #line 1123 "mrb_parse.jay" { yyVal = new_hash(((node)yyVals[-1 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[-1 + yyTop])); } break; case 282: #line 1128 "mrb_parse.jay" { yyVal = new_return(null); } break; case 283: #line 1132 "mrb_parse.jay" { yyVal = new_yield(((node)yyVals[0 + yyTop])); } break; case 284: #line 1136 "mrb_parse.jay" { yyVal = call_uni_op(cond(((node)yyVals[-1 + yyTop])), "!"); } break; case 285: #line 1140 "mrb_parse.jay" { yyVal = call_uni_op(new_nil(), "!"); } break; case 286: #line 1144 "mrb_parse.jay" { yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), cons(null, ((node)yyVals[0 + yyTop]))); } break; case 288: #line 1149 "mrb_parse.jay" { call_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); yyVal = ((node)yyVals[-1 + yyTop]); } break; case 289: #line 1154 "mrb_parse.jay" { local_nest(); yyVal = (int)this.lpar_beg; this.lpar_beg = ++this.paren_nest; } break; case 290: #line 1160 "mrb_parse.jay" { yyVal = (stack_type)this.cmdarg_stack; this.cmdarg_stack = 0; } break; case 291: #line 1165 "mrb_parse.jay" { this.lpar_beg = ((int)yyVals[-3 + yyTop]); yyVal = new_lambda(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); local_unnest(); this.cmdarg_stack = ((stack_type)yyVals[-1 + yyTop]); CMDARG_LEXPOP(); } break; case 292: #line 1176 "mrb_parse.jay" { yyVal = new_if(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); } break; case 293: #line 1184 "mrb_parse.jay" { yyVal = new_unless(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); } break; case 294: #line 1188 "mrb_parse.jay" { COND_PUSH(1); } break; case 295: #line 1188 "mrb_parse.jay" { COND_POP(); } break; case 296: #line 1191 "mrb_parse.jay" { yyVal = new_while(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); } break; case 297: #line 1195 "mrb_parse.jay" { COND_PUSH(1); } break; case 298: #line 1195 "mrb_parse.jay" { COND_POP(); } break; case 299: #line 1198 "mrb_parse.jay" { yyVal = new_until(cond(((node)yyVals[-4 + yyTop])), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); } break; case 300: #line 1205 "mrb_parse.jay" { yyVal = new_case(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); } break; case 301: #line 1209 "mrb_parse.jay" { yyVal = new_case(null, ((node)yyVals[-1 + yyTop])); } break; case 302: #line 1213 "mrb_parse.jay" { COND_PUSH(1); } break; case 303: #line 1215 "mrb_parse.jay" { COND_POP(); } break; case 304: #line 1218 "mrb_parse.jay" { yyVal = new_for(((node)yyVals[-7 + yyTop]), ((node)yyVals[-4 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-8 + yyTop])); } break; case 305: #line 1224 "mrb_parse.jay" { if (this.in_def != 0 || this.in_single != 0) yyError("class definition in method body"); yyVal = local_switch(); } break; case 306: #line 1231 "mrb_parse.jay" { yyVal = new_class(((node)yyVals[-4 + yyTop]), ((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-5 + yyTop])); local_resume(((locals_node)yyVals[-2 + yyTop])); } break; case 307: #line 1238 "mrb_parse.jay" { yyVal = (int)this.in_def; this.in_def = 0; } break; case 308: #line 1243 "mrb_parse.jay" { yyVal = cons(local_switch(), this.in_single); this.in_single = 0; } break; case 309: #line 1249 "mrb_parse.jay" { yyVal = new_sclass(((node)yyVals[-5 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-7 + yyTop])); local_resume((locals_node)((node)yyVals[-2 + yyTop]).car); this.in_def = ((int)yyVals[-4 + yyTop]); this.in_single = (int)(((node)yyVals[-2 + yyTop]).cdr); } break; case 310: #line 1258 "mrb_parse.jay" { if (this.in_def != 0 || this.in_single != 0) yyError("module definition in method body"); yyVal = local_switch(); } break; case 311: #line 1265 "mrb_parse.jay" { yyVal = new_module(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-4 + yyTop])); local_resume(((locals_node)yyVals[-2 + yyTop])); } break; case 312: #line 1271 "mrb_parse.jay" { yyVal = (stack_type)this.cmdarg_stack; this.cmdarg_stack = 0; } break; case 313: #line 1275 "mrb_parse.jay" { this.in_def++; yyVal = local_switch(); } break; case 314: #line 1282 "mrb_parse.jay" { yyVal = new_def(((mrb_sym)yyVals[-5 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-6 + yyTop])); local_resume(((locals_node)yyVals[-3 + yyTop])); this.in_def--; this.cmdarg_stack = ((stack_type)yyVals[-4 + yyTop]); } break; case 315: #line 1290 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_FNAME; yyVal = (stack_type)this.cmdarg_stack; this.cmdarg_stack = 0; } break; case 316: #line 1296 "mrb_parse.jay" { this.in_single++; this.lstate = mrb_lex_state_enum.EXPR_ENDFN; /* force for args */ yyVal = local_switch(); } break; case 317: #line 1304 "mrb_parse.jay" { yyVal = new_sdef(((node)yyVals[-7 + yyTop]), ((mrb_sym)yyVals[-4 + yyTop]), ((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop])); ((node)yyVal).SET_LINENO(((int)yyVals[-8 + yyTop])); local_resume(((locals_node)yyVals[-3 + yyTop])); this.in_single--; this.cmdarg_stack = ((stack_type)yyVals[-5 + yyTop]); } break; case 318: #line 1312 "mrb_parse.jay" { yyVal = new_break(null); } break; case 319: #line 1316 "mrb_parse.jay" { yyVal = new_next(null); } break; case 320: #line 1320 "mrb_parse.jay" { yyVal = new_redo(); } break; case 321: #line 1324 "mrb_parse.jay" { yyVal = new_retry(); } break; case 322: #line 1330 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); if (yyVal == null) yyVal = new_nil(); } break; case 329: #line 1349 "mrb_parse.jay" { yyVal = new_if(cond(((node)yyVals[-3 + yyTop])), ((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 331: #line 1356 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 332: #line 1362 "mrb_parse.jay" { yyVal = list1(list1(((node)yyVals[0 + yyTop]))); } break; case 334: #line 1369 "mrb_parse.jay" { yyVal = new_arg(((mrb_sym)yyVals[0 + yyTop])); } break; case 335: #line 1373 "mrb_parse.jay" { yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); } break; case 336: #line 1379 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 337: #line 1383 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 338: #line 1389 "mrb_parse.jay" { yyVal = list3(((node)yyVals[0 + yyTop]), null, null); } break; case 339: #line 1393 "mrb_parse.jay" { yyVal = list3(((node)yyVals[-3 + yyTop]), new_arg(((mrb_sym)yyVals[0 + yyTop])), null); } break; case 340: #line 1397 "mrb_parse.jay" { yyVal = list3(((node)yyVals[-5 + yyTop]), new_arg(((mrb_sym)yyVals[-2 + yyTop])), ((node)yyVals[0 + yyTop])); } break; case 341: #line 1401 "mrb_parse.jay" { yyVal = list3(((node)yyVals[-2 + yyTop]), -1, null); } break; case 342: #line 1405 "mrb_parse.jay" { yyVal = list3(((node)yyVals[-4 + yyTop]), -1, ((node)yyVals[0 + yyTop])); } break; case 343: #line 1409 "mrb_parse.jay" { yyVal = list3(null, new_arg(((mrb_sym)yyVals[0 + yyTop])), null); } break; case 344: #line 1413 "mrb_parse.jay" { yyVal = list3(null, new_arg(((mrb_sym)yyVals[-2 + yyTop])), ((node)yyVals[0 + yyTop])); } break; case 345: #line 1417 "mrb_parse.jay" { yyVal = list3(null, -1, null); } break; case 346: #line 1421 "mrb_parse.jay" { yyVal = list3(null, -1, ((node)yyVals[0 + yyTop])); } break; case 347: #line 1427 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 348: #line 1431 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-7 + yyTop]), ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 349: #line 1435 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 350: #line 1439 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 351: #line 1443 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-3 + yyTop]), null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 352: #line 1447 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-1 + yyTop]), null, (mrb_sym)0, null, 0); } break; case 353: #line 1451 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-5 + yyTop]), null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 354: #line 1455 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-1 + yyTop]), null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 355: #line 1459 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 356: #line 1463 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 357: #line 1467 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 358: #line 1471 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 359: #line 1475 "mrb_parse.jay" { yyVal = new_args(null, null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 360: #line 1479 "mrb_parse.jay" { yyVal = new_args(null, null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 361: #line 1483 "mrb_parse.jay" { yyVal = new_args(null, null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 363: #line 1490 "mrb_parse.jay" { this.cmd_start = true; yyVal = ((node)yyVals[0 + yyTop]); } break; case 364: #line 1497 "mrb_parse.jay" { yyVal = null; } break; case 365: #line 1501 "mrb_parse.jay" { yyVal = null; } break; case 366: #line 1505 "mrb_parse.jay" { yyVal = ((node)yyVals[-2 + yyTop]); } break; case 367: #line 1512 "mrb_parse.jay" { yyVal = null; } break; case 368: #line 1516 "mrb_parse.jay" { yyVal = null; } break; case 371: #line 1526 "mrb_parse.jay" { local_add_f(((mrb_sym)yyVals[0 + yyTop])); new_bv(((mrb_sym)yyVals[0 + yyTop])); } break; case 373: #line 1534 "mrb_parse.jay" { yyVal = ((node)yyVals[-2 + yyTop]); } break; case 374: #line 1538 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 375: #line 1544 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 376: #line 1548 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 377: #line 1554 "mrb_parse.jay" { local_nest(); } break; case 378: #line 1560 "mrb_parse.jay" { yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), false); local_unnest(); } break; case 379: #line 1567 "mrb_parse.jay" { if ((node_type)((node)yyVals[-1 + yyTop]).car == node_type.NODE_YIELD) { yyError("block given to yield"); } else { call_with_block(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } yyVal = ((node)yyVals[-1 + yyTop]); } break; case 380: #line 1577 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); } break; case 381: #line 1581 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); call_with_block((node)yyVal, ((node)yyVals[0 + yyTop])); } break; case 382: #line 1586 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-4 + yyTop]), ((mrb_sym)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), ((MrbTokens)yyVals[-3 + yyTop])); call_with_block((node)yyVal, ((node)yyVals[0 + yyTop])); } break; case 383: #line 1593 "mrb_parse.jay" { yyVal = new_fcall(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 384: #line 1597 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-2 + yyTop])); } break; case 385: #line 1601 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); } break; case 386: #line 1605 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), ((mrb_sym)yyVals[0 + yyTop]), null, MrbTokens.tCOLON2); } break; case 387: #line 1609 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), intern("call", 4), ((node)yyVals[0 + yyTop]), ((MrbTokens)yyVals[-1 + yyTop])); } break; case 388: #line 1613 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-2 + yyTop]), intern("call", 4), ((node)yyVals[0 + yyTop]), MrbTokens.tCOLON2); } break; case 389: #line 1617 "mrb_parse.jay" { yyVal = new_super(((node)yyVals[0 + yyTop])); } break; case 390: #line 1621 "mrb_parse.jay" { yyVal = new_zsuper(); } break; case 391: #line 1625 "mrb_parse.jay" { yyVal = new_call(((node)yyVals[-3 + yyTop]), intern("[]", 2), ((node)yyVals[-1 + yyTop]), (MrbTokens)'.'); } break; case 392: #line 1631 "mrb_parse.jay" { local_nest(); yyVal = (int)this.lineno; } break; case 393: #line 1637 "mrb_parse.jay" { yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), true); ((node)yyVal).SET_LINENO(((int)yyVals[-3 + yyTop])); local_unnest(); } break; case 394: #line 1643 "mrb_parse.jay" { local_nest(); yyVal = (int)this.lineno; } break; case 395: #line 1649 "mrb_parse.jay" { yyVal = new_block(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]), false); ((node)yyVal).SET_LINENO(((int)yyVals[-3 + yyTop])); local_unnest(); } break; case 396: #line 1659 "mrb_parse.jay" { yyVal = cons(cons(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])), ((node)yyVals[0 + yyTop])); } break; case 397: #line 1665 "mrb_parse.jay" { if (((node)yyVals[0 + yyTop]) != null) { yyVal = cons(cons(null, ((node)yyVals[0 + yyTop])), null); } else { yyVal = null; } } break; case 399: #line 1679 "mrb_parse.jay" { yyVal = list1(list3(((node)yyVals[-4 + yyTop]), ((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]))); if (((node)yyVals[0 + yyTop]) != null) yyVal = append(((node)yyVal), ((node)yyVals[0 + yyTop])); } break; case 401: #line 1687 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 404: #line 1695 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 406: #line 1702 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 414: #line 1717 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 415: #line 1721 "mrb_parse.jay" { yyVal = new_dstr(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); } break; case 417: #line 1728 "mrb_parse.jay" { yyVal = append(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 418: #line 1734 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 419: #line 1738 "mrb_parse.jay" { yyVal = (node)this.lex_strterm; this.lex_strterm = null; } break; case 420: #line 1744 "mrb_parse.jay" { this.lex_strterm = ((node)yyVals[-2 + yyTop]); yyVal = list2(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop])); } break; case 421: #line 1749 "mrb_parse.jay" { yyVal = list1(new_literal_delim()); } break; case 422: #line 1753 "mrb_parse.jay" { yyVal = list1(new_literal_delim()); } break; case 423: #line 1759 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 424: #line 1763 "mrb_parse.jay" { yyVal = new_dxstr(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); } break; case 425: #line 1769 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); } break; case 426: #line 1773 "mrb_parse.jay" { yyVal = new_dregx(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 430: #line 1786 "mrb_parse.jay" { parser_heredoc_info inf = parsing_heredoc_inf(); inf.push_doc(new_str(new Uint8Array(0), 0)); heredoc_end(); } break; case 431: #line 1792 "mrb_parse.jay" { heredoc_end(); } break; case 434: #line 1802 "mrb_parse.jay" { parser_heredoc_info inf = parsing_heredoc_inf(); inf.push_doc(((node)yyVals[0 + yyTop])); heredoc_treat_nextline(); } break; case 435: #line 1808 "mrb_parse.jay" { yyVal = (node)this.lex_strterm; this.lex_strterm = null; } break; case 436: #line 1814 "mrb_parse.jay" { parser_heredoc_info inf = parsing_heredoc_inf(); this.lex_strterm = ((node)yyVals[-2 + yyTop]); inf.push_doc(((node)yyVals[-3 + yyTop])); inf.push_doc(((node)yyVals[-1 + yyTop])); } break; case 437: #line 1823 "mrb_parse.jay" { yyVal = new_words(list1(((node)yyVals[0 + yyTop]))); } break; case 438: #line 1827 "mrb_parse.jay" { yyVal = new_words(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); } break; case 439: #line 1834 "mrb_parse.jay" { yyVal = new_sym(((mrb_sym)yyVals[0 + yyTop])); } break; case 440: #line 1838 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_END; yyVal = new_dsym(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); } break; case 441: #line 1845 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_END; yyVal = ((mrb_sym)yyVals[0 + yyTop]); } break; case 446: #line 1856 "mrb_parse.jay" { yyVal = new_strsym(((node)yyVals[0 + yyTop])); } break; case 447: #line 1860 "mrb_parse.jay" { yyVal = new_strsym(((node)yyVals[0 + yyTop])); } break; case 448: #line 1866 "mrb_parse.jay" { yyVal = new_symbols(list1(((node)yyVals[0 + yyTop]))); } break; case 449: #line 1870 "mrb_parse.jay" { yyVal = new_symbols(push(((node)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop]))); } break; case 452: #line 1878 "mrb_parse.jay" { yyVal = negate_lit(((node)yyVals[0 + yyTop])); } break; case 453: #line 1882 "mrb_parse.jay" { yyVal = negate_lit(((node)yyVals[0 + yyTop])); } break; case 454: #line 1888 "mrb_parse.jay" { yyVal = new_lvar(((mrb_sym)yyVals[0 + yyTop])); } break; case 455: #line 1892 "mrb_parse.jay" { yyVal = new_ivar(((mrb_sym)yyVals[0 + yyTop])); } break; case 456: #line 1896 "mrb_parse.jay" { yyVal = new_gvar(((mrb_sym)yyVals[0 + yyTop])); } break; case 457: #line 1900 "mrb_parse.jay" { yyVal = new_cvar(((mrb_sym)yyVals[0 + yyTop])); } break; case 458: #line 1904 "mrb_parse.jay" { yyVal = new_const(((mrb_sym)yyVals[0 + yyTop])); } break; case 459: #line 1910 "mrb_parse.jay" { assignable(((node)yyVals[0 + yyTop])); } break; case 460: #line 1916 "mrb_parse.jay" { yyVal = var_reference(((node)yyVals[0 + yyTop])); } break; case 461: #line 1920 "mrb_parse.jay" { yyVal = new_nil(); } break; case 462: #line 1924 "mrb_parse.jay" { yyVal = new_self(); } break; case 463: #line 1928 "mrb_parse.jay" { yyVal = new_true(); } break; case 464: #line 1932 "mrb_parse.jay" { yyVal = new_false(); } break; case 465: #line 1936 "mrb_parse.jay" { if (this.filename == null) { this.mrb_parser_set_filename("(null)"); } yyVal = new_filename(this.filename); } break; case 466: #line 1943 "mrb_parse.jay" { yyVal = new_lineno(this.lineno); } break; case 469: #line 1953 "mrb_parse.jay" { yyVal = null; } break; case 470: #line 1957 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_BEG; this.cmd_start = true; } break; case 471: #line 1962 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 472: #line 1973 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); this.lstate = mrb_lex_state_enum.EXPR_BEG; this.cmd_start = true; } break; case 473: #line 1979 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 474: #line 1985 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 475: #line 1989 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-7 + yyTop]), ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 476: #line 1993 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 477: #line 1997 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-5 + yyTop]), ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 478: #line 2001 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-3 + yyTop]), null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 479: #line 2005 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-5 + yyTop]), null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 480: #line 2009 "mrb_parse.jay" { yyVal = new_args(((node)yyVals[-1 + yyTop]), null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 481: #line 2013 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 482: #line 2017 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-5 + yyTop]), ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 483: #line 2021 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-1 + yyTop]), 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 484: #line 2025 "mrb_parse.jay" { yyVal = new_args(null, ((node)yyVals[-3 + yyTop]), 0, ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 485: #line 2029 "mrb_parse.jay" { yyVal = new_args(null, null, ((mrb_sym)yyVals[-1 + yyTop]), null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 486: #line 2033 "mrb_parse.jay" { yyVal = new_args(null, null, ((mrb_sym)yyVals[-3 + yyTop]), ((node)yyVals[-1 + yyTop]), ((mrb_sym)yyVals[0 + yyTop])); } break; case 487: #line 2037 "mrb_parse.jay" { yyVal = new_args(null, null, 0, null, ((mrb_sym)yyVals[0 + yyTop])); } break; case 488: #line 2041 "mrb_parse.jay" { local_add_f(0); yyVal = new_args(null, null, 0, null, 0); } break; case 489: #line 2048 "mrb_parse.jay" { yyError("formal argument cannot be a constant"); yyVal = null; } break; case 490: #line 2053 "mrb_parse.jay" { yyError("formal argument cannot be an instance variable"); yyVal = null; } break; case 491: #line 2058 "mrb_parse.jay" { yyError("formal argument cannot be a global variable"); yyVal = null; } break; case 492: #line 2063 "mrb_parse.jay" { yyError("formal argument cannot be a class variable"); yyVal = null; } break; case 493: #line 2070 "mrb_parse.jay" { yyVal = null; } break; case 494: #line 2074 "mrb_parse.jay" { local_add_f(((mrb_sym)yyVals[0 + yyTop])); yyVal = ((mrb_sym)yyVals[0 + yyTop]); } break; case 495: #line 2081 "mrb_parse.jay" { yyVal = new_arg(((mrb_sym)yyVals[0 + yyTop])); } break; case 496: #line 2085 "mrb_parse.jay" { yyVal = new_masgn(((node)yyVals[-1 + yyTop]), null); } break; case 497: #line 2091 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 498: #line 2095 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 499: #line 2101 "mrb_parse.jay" { local_add_f(((mrb_sym)yyVals[-1 + yyTop])); yyVal = ((mrb_sym)yyVals[-1 + yyTop]); } break; case 500: #line 2108 "mrb_parse.jay" { yyVal = cons(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 501: #line 2114 "mrb_parse.jay" { yyVal = cons(((mrb_sym)yyVals[-1 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 502: #line 2120 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 503: #line 2124 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 504: #line 2130 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); } break; case 505: #line 2134 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 508: #line 2144 "mrb_parse.jay" { local_add_f(((mrb_sym)yyVals[0 + yyTop])); yyVal = ((mrb_sym)yyVals[0 + yyTop]); } break; case 509: #line 2149 "mrb_parse.jay" { local_add_f(0); yyVal = -1; } break; case 512: #line 2160 "mrb_parse.jay" { local_add_f(((mrb_sym)yyVals[0 + yyTop])); yyVal = ((mrb_sym)yyVals[0 + yyTop]); } break; case 513: #line 2167 "mrb_parse.jay" { yyVal = ((mrb_sym)yyVals[0 + yyTop]); } break; case 514: #line 2171 "mrb_parse.jay" { local_add_f(0); yyVal = 0; } break; case 515: #line 2178 "mrb_parse.jay" { yyVal = ((node)yyVals[0 + yyTop]); if (yyVal == null) yyVal = new_nil(); } break; case 516: #line 2182 "mrb_parse.jay" { this.lstate = mrb_lex_state_enum.EXPR_BEG; } break; case 517: #line 2183 "mrb_parse.jay" { if (((int)yyVals[-1 + yyTop]) == 0) { yyError("can't define singleton method for ()."); } else { switch ((node_type)(((node)yyVals[-1 + yyTop]).car)) { case node_type.NODE_STR: case node_type.NODE_DSTR: case node_type.NODE_XSTR: case node_type.NODE_DXSTR: case node_type.NODE_DREGX: case node_type.NODE_MATCH: case node_type.NODE_FLOAT: case node_type.NODE_ARRAY: case node_type.NODE_HEREDOC: yyError("can't define singleton method for literals"); break; default: break; } } yyVal = ((node)yyVals[-1 + yyTop]); } break; case 519: #line 2210 "mrb_parse.jay" { yyVal = ((node)yyVals[-1 + yyTop]); } break; case 520: #line 2216 "mrb_parse.jay" { yyVal = list1(((node)yyVals[0 + yyTop])); ((node)yyVal).NODE_LINENO(((node)yyVals[0 + yyTop])); } break; case 521: #line 2221 "mrb_parse.jay" { yyVal = push(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 522: #line 2227 "mrb_parse.jay" { yyVal = cons(((node)yyVals[-2 + yyTop]), ((node)yyVals[0 + yyTop])); } break; case 523: #line 2231 "mrb_parse.jay" { yyVal = cons(new_sym(((mrb_sym)yyVals[-1 + yyTop])), ((node)yyVals[0 + yyTop])); } break; case 524: #line 2235 "mrb_parse.jay" { yyVal = cons(new_sym(new_strsym(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); } break; case 525: #line 2239 "mrb_parse.jay" { yyVal = cons(new_sym(new_strsym(((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); } break; case 526: #line 2243 "mrb_parse.jay" { yyVal = cons(new_dsym(push(((node)yyVals[-2 + yyTop]), ((node)yyVals[-1 + yyTop]))), ((node)yyVals[0 + yyTop])); } break; case 539: #line 2269 "mrb_parse.jay" { yyVal = (MrbTokens)'.'; } break; case 540: #line 2273 "mrb_parse.jay" { yyVal = (MrbTokens)0; } break; case 542: #line 2280 "mrb_parse.jay" { yyVal = MrbTokens.tCOLON2; } break; case 552: #line 2304 "mrb_parse.jay" { yyErrorFlag = 0; } break; case 555: #line 2310 "mrb_parse.jay" { this.lineno++; this.column = 0; } break; case 558: #line 2321 "mrb_parse.jay" { yyVal = null; } break; #line default } yyTop -= yyLen[yyN]; yyState = yyStates[yyTop]; int yyM = yyLhs[yyN]; if (yyState == 0 && yyM == 0) { if (yyDebug != null) yyDebug.shift(0, yyFinal); yyState = yyFinal; if (yyToken < 0) { yyToken = yyLex.Advance() ? yyLex.Token : 0; if (yyDebug != null) yyDebug.lex(yyState, yyToken, yyName(yyToken), yyLex.Value); } if (yyToken == 0) { if (yyDebug != null) yyDebug.accept(yyVal); yyNest--; return yyVal; } break; } if (((yyN = yyGindex[yyM]) != 0) && ((yyN += yyState) >= 0) && (yyN < yyTable.Length) && (yyCheck[yyN] == yyState)) yyState = yyTable[yyN]; else yyState = yyDgoto[yyM]; if (yyDebug != null) yyDebug.shift(yyStates[yyTop], yyState); break; } } } #line 2326 "mrb_parse.jay" } // must specify trailing } for parser class } // must specify trailing } for namespace, if any #line default