// (see accompanying GPPGcopyright.rtf) // GPPG version 1.3.6 // Machine: DESKTOP-A6LT9RI // DateTime: 02.10.2018 18:24:41 // UserName: ????????? // Input file // options: no-lines gplex using System; using System.Collections.Generic; using System.Globalization; using System.Text; using QUT.Gppg; using PascalABCCompiler.SyntaxTree; using PascalABCSavParser; using PascalABCCompiler.ParserTools; using PascalABCCompiler.Errors; using System.Linq; namespace GPPGParserScanner { public enum Tokens { error=1,EOF=2,tkDirectiveName=3,tkAmpersend=4,tkColon=5,tkDotDot=6, tkPoint=7,tkRoundOpen=8,tkRoundClose=9,tkSemiColon=10,tkSquareOpen=11,tkSquareClose=12, tkQuestion=13,tkQuestionPoint=14,tkDoubleQuestion=15,tkQuestionSquareOpen=16,tkSizeOf=17,tkTypeOf=18, tkWhere=19,tkArray=20,tkCase=21,tkClass=22,tkAuto=23,tkStatic=24, tkConst=25,tkConstructor=26,tkDestructor=27,tkElse=28,tkExcept=29,tkFile=30, tkFor=31,tkForeach=32,tkFunction=33,tkMatch=34,tkWhen=35,tkIf=36, tkImplementation=37,tkInherited=38,tkInterface=39,tkProcedure=40,tkOperator=41,tkProperty=42, tkRaise=43,tkRecord=44,tkSet=45,tkType=46,tkThen=47,tkUses=48, tkVar=49,tkWhile=50,tkWith=51,tkNil=52,tkGoto=53,tkOf=54, tkLabel=55,tkLock=56,tkProgram=57,tkEvent=58,tkDefault=59,tkTemplate=60, tkPacked=61,tkExports=62,tkResourceString=63,tkThreadvar=64,tkSealed=65,tkPartial=66, tkTo=67,tkDownto=68,tkLoop=69,tkSequence=70,tkYield=71,tkNew=72, tkOn=73,tkName=74,tkPrivate=75,tkProtected=76,tkPublic=77,tkInternal=78, tkRead=79,tkWrite=80,tkParseModeExpression=81,tkParseModeStatement=82,tkParseModeType=83,tkBegin=84, tkEnd=85,tkAsmBody=86,tkILCode=87,tkError=88,INVISIBLE=89,tkRepeat=90, tkUntil=91,tkDo=92,tkComma=93,tkFinally=94,tkTry=95,tkInitialization=96, tkFinalization=97,tkUnit=98,tkLibrary=99,tkExternal=100,tkParams=101,tkNamespace=102, tkAssign=103,tkPlusEqual=104,tkMinusEqual=105,tkMultEqual=106,tkDivEqual=107,tkMinus=108, tkPlus=109,tkSlash=110,tkStar=111,tkStarStar=112,tkEqual=113,tkGreater=114, tkGreaterEqual=115,tkLower=116,tkLowerEqual=117,tkNotEqual=118,tkCSharpStyleOr=119,tkArrow=120, tkOr=121,tkXor=122,tkAnd=123,tkDiv=124,tkMod=125,tkShl=126, tkShr=127,tkNot=128,tkAs=129,tkIn=130,tkIs=131,tkImplicit=132, tkExplicit=133,tkAddressOf=134,tkDeref=135,tkIdentifier=136,tkStringLiteral=137,tkFormatStringLiteral=138, tkAsciiChar=139,tkAbstract=140,tkForward=141,tkOverload=142,tkReintroduce=143,tkOverride=144, tkVirtual=145,tkExtensionMethod=146,tkInteger=147,tkFloat=148,tkHex=149}; // Abstract base class for GPLEX scanners public abstract class ScanBase : AbstractScanner { private LexLocation __yylloc = new LexLocation(); public override LexLocation yylloc { get { return __yylloc; } set { __yylloc = value; } } protected virtual bool yywrap() { return true; } } public partial class GPPGParser: ShiftReduceParser { // Verbatim content from ABCPascal.y // ��� ���������� ����������� � ����� GPPGParser, �������������� ����� ������, ������������ �������� gppg public syntax_tree_node root; // �������� ���� ��������������� ������ public List errors; public string current_file_name; public int max_errors = 10; public PT parsertools; public List CompilerDirectives; public ParserLambdaHelper lambdaHelper = new ParserLambdaHelper(); public GPPGParser(AbstractScanner scanner) : base(scanner) { } // End verbatim content from ABCPascal.y #pragma warning disable 649 private static Dictionary aliasses; #pragma warning restore 649 private static Rule[] rules = new Rule[896]; private static State[] states = new State[1471]; private static string[] nonTerms = new string[] { "parse_goal", "unit_key_word", "class_or_static", "assignment", "optional_array_initializer", "attribute_declarations", "ot_visibility_specifier", "one_attribute", "attribute_variable", "const_factor", "const_variable_2", "const_term", "const_variable", "literal_or_number", "unsigned_number", "program_block", "optional_var", "class_attribute", "class_attributes", "class_attributes1", "member_list_section", "optional_component_list_seq_end", "const_decl", "only_const_decl", "const_decl_sect", "object_type", "record_type", "member_list", "method_decl_list", "field_or_const_definition_list", "case_stmt", "case_list", "program_decl_sect_list", "int_decl_sect_list1", "inclass_decl_sect_list1", "interface_decl_sect_list", "decl_sect_list", "decl_sect_list1", "inclass_decl_sect_list", "field_or_const_definition", "abc_decl_sect", "decl_sect", "int_decl_sect", "type_decl", "simple_type_decl", "simple_field_or_const_definition", "res_str_decl_sect", "method_decl_withattr", "method_or_property_decl", "property_definition", "fp_sect", "default_expr", "tuple", "expr_as_stmt", "exception_block", "external_block", "exception_handler", "exception_handler_list", "exception_identifier", "typed_const_list1", "typed_const_list", "optional_expr_list", "elem_list", "optional_expr_list_with_bracket", "expr_list", "const_elem_list1", "const_func_expr_list", "case_label_list", "const_elem_list", "optional_const_func_expr_list", "elem_list1", "enumeration_id", "expr_l1_list", "enumeration_id_list", "const_simple_expr", "term", "simple_term", "typed_const", "typed_const_plus", "typed_var_init_expression", "expr", "expr_with_func_decl_lambda", "const_expr", "elem", "range_expr", "const_elem", "array_const", "factor", "relop_expr", "expr_dq", "expr_l1", "expr_l1_func_decl_lambda", "simple_expr", "range_term", "range_factor", "external_directive_ident", "init_const_expr", "case_label", "variable", "var_reference", "optional_read_expr", "simple_expr_or_nothing", "var_question_point", "for_cycle_type", "format_expr", "foreach_stmt", "for_stmt", "loop_stmt", "yield_stmt", "yield_sequence_stmt", "fp_list", "fp_sect_list", "file_type", "sequence_type", "var_address", "goto_stmt", "func_name_ident", "param_name", "const_field_name", "func_name_with_template_args", "identifier_or_keyword", "unit_name", "exception_variable", "const_name", "func_meth_name_ident", "label_name", "type_decl_identifier", "template_identifier_with_equal", "program_param", "identifier", "identifier_keyword_operatorname", "func_class_name_ident", "visibility_specifier", "property_specifier_directives", "non_reserved", "if_stmt", "initialization_part", "template_arguments", "label_list", "ident_or_keyword_pointseparator_list", "ident_list", "param_name_list", "inherited_message", "implementation_part", "interface_part", "abc_interface_part", "simple_type_list", "literal", "one_literal", "literal_list", "label_decl_sect", "lock_stmt", "func_name", "proc_name", "optional_proc_name", "qualified_identifier", "new_expr", "allowable_expr_as_stmt", "parts", "inclass_block", "block", "proc_func_external_block", "exception_class_type_identifier", "simple_type_identifier", "base_class_name", "base_classes_names_list", "optional_base_classes", "one_compiler_directive", "optional_head_compiler_directives", "head_compiler_directives", "program_heading_2", "optional_tk_point", "program_param_list", "optional_semicolon", "operator_name_ident", "const_relop", "const_addop", "assign_operator", "const_mulop", "relop", "addop", "mulop", "sign", "overload_operator", "typecast_op", "property_specifiers", "write_property_specifiers", "read_property_specifiers", "array_defaultproperty", "meth_modificators", "optional_method_modificators", "optional_method_modificators1", "meth_modificator", "property_modificator", "proc_call", "proc_func_constr_destr_decl", "proc_func_decl", "inclass_proc_func_decl", "inclass_proc_func_decl_noclass", "constr_destr_decl", "inclass_constr_destr_decl", "method_decl", "proc_func_constr_destr_decl_with_attr", "proc_func_decl_noclass", "method_header", "proc_type_decl", "procedural_type_kind", "proc_header", "procedural_type", "constr_destr_header", "proc_func_header", "func_header", "method_procfunc_header", "int_func_header", "int_proc_header", "property_interface", "program_file", "program_header", "parameter_decl", "parameter_decl_list", "property_parameter_list", "const_set", "question_expr", "question_constexpr", "record_const", "const_field_list_1", "const_field_list", "const_field", "repeat_stmt", "raise_stmt", "pointer_type", "attribute_declaration", "one_or_some_attribute", "stmt_list", "else_case", "exception_block_else_branch", "compound_stmt", "string_type", "sizeof_expr", "simple_prim_property_definition", "simple_property_definition", "stmt_or_expression", "unlabelled_stmt", "stmt", "case_item", "set_type", "as_is_expr", "as_is_constexpr", "is_expr", "as_expr", "power_expr", "power_constexpr", "unsized_array_type", "simple_type_or_", "simple_type", "foreach_stmt_ident_dype_opt", "fptype", "type_ref", "fptype_noproctype", "array_type", "template_param", "template_empty_param", "structured_type", "unpacked_structured_type", "empty_template_type_reference", "simple_or_template_type_reference", "type_ref_or_secific", "for_stmt_decl_or_assign", "type_decl_type", "type_ref_and_secific_list", "type_decl_sect", "try_handler", "class_or_interface_keyword", "optional_tk_do", "keyword", "reserved_keyword", "typeof_expr", "simple_fp_sect", "template_param_list", "template_empty_param_list", "template_type_params", "template_type_empty_params", "template_type", "try_stmt", "uses_clause", "used_units_list", "unit_file", "used_unit_name", "unit_header", "var_decl_sect", "var_decl", "var_decl_part", "field_definition", "var_stmt", "where_part", "where_part_list", "optional_where_section", "while_stmt", "with_stmt", "variable_as_type", "dotted_identifier", "func_decl_lambda", "expl_func_decl_lambda", "lambda_type_ref", "lambda_type_ref_noproctype", "full_lambda_fp_list", "lambda_simple_fp_sect", "lambda_function_body", "lambda_procedure_body", "optional_full_lambda_fp_list", "field_in_unnamed_object", "list_fields_in_unnamed_object", "func_class_name_ident_list", "rem_lambda", "variable_list", "var_ident_list", "tkAssignOrEqual", "pattern", "pattern_optional_var", "match_with", "pattern_case", "pattern_cases", "pattern_out_param", "pattern_out_param_optional_var", "pattern_out_param_list", "pattern_out_param_list_optional_var", "$accept", }; static GPPGParser() { states[0] = new State(new int[]{57,1378,11,575,81,1453,83,1458,82,1465,3,-25,48,-25,84,-25,55,-25,25,-25,63,-25,46,-25,49,-25,58,-25,40,-25,33,-25,24,-25,22,-25,26,-25,27,-25,98,-200,99,-200,102,-200},new int[]{-1,1,-217,3,-218,4,-287,1390,-6,1391,-232,959,-159,1452}); states[1] = new State(new int[]{2,2}); states[2] = new State(-1); states[3] = new State(-2); states[4] = new State(new int[]{3,1374,48,-12,84,-12,55,-12,25,-12,63,-12,46,-12,49,-12,58,-12,11,-12,40,-12,33,-12,24,-12,22,-12,26,-12,27,-12},new int[]{-169,5,-170,1372,-168,1377}); states[5] = new State(-36,new int[]{-285,6}); states[6] = new State(new int[]{48,14,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,84,-60},new int[]{-16,7,-33,114,-37,1309,-38,1310}); states[7] = new State(new int[]{7,9,10,10,5,11,93,12,6,13,2,-24},new int[]{-172,8}); states[8] = new State(-18); states[9] = new State(-19); states[10] = new State(-20); states[11] = new State(-21); states[12] = new State(-22); states[13] = new State(-23); states[14] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-286,15,-288,113,-140,19,-121,112,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[15] = new State(new int[]{10,16,93,17}); states[16] = new State(-37); states[17] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-288,18,-140,19,-121,112,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[18] = new State(-39); states[19] = new State(new int[]{7,20,130,110,10,-40,93,-40}); states[20] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-121,21,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[21] = new State(-35); states[22] = new State(-724); states[23] = new State(-721); states[24] = new State(-722); states[25] = new State(-739); states[26] = new State(-740); states[27] = new State(-723); states[28] = new State(-741); states[29] = new State(-742); states[30] = new State(-725); states[31] = new State(-747); states[32] = new State(-743); states[33] = new State(-744); states[34] = new State(-745); states[35] = new State(-746); states[36] = new State(-748); states[37] = new State(-749); states[38] = new State(-750); states[39] = new State(-751); states[40] = new State(-752); states[41] = new State(-753); states[42] = new State(-754); states[43] = new State(-755); states[44] = new State(-756); states[45] = new State(-757); states[46] = new State(-758); states[47] = new State(-759); states[48] = new State(-760); states[49] = new State(-761); states[50] = new State(-762); states[51] = new State(-763); states[52] = new State(-764); states[53] = new State(-765); states[54] = new State(-766); states[55] = new State(-767); states[56] = new State(-768); states[57] = new State(-769); states[58] = new State(-770); states[59] = new State(-771); states[60] = new State(-772); states[61] = new State(-773); states[62] = new State(-774); states[63] = new State(-775); states[64] = new State(-776); states[65] = new State(-777); states[66] = new State(-778); states[67] = new State(-779); states[68] = new State(-780); states[69] = new State(-781); states[70] = new State(-782); states[71] = new State(-783); states[72] = new State(-784); states[73] = new State(-785); states[74] = new State(-786); states[75] = new State(-787); states[76] = new State(-788); states[77] = new State(-789); states[78] = new State(-790); states[79] = new State(-791); states[80] = new State(-792); states[81] = new State(-793); states[82] = new State(-794); states[83] = new State(-795); states[84] = new State(-796); states[85] = new State(-797); states[86] = new State(-798); states[87] = new State(-799); states[88] = new State(-800); states[89] = new State(-801); states[90] = new State(-802); states[91] = new State(-803); states[92] = new State(-804); states[93] = new State(-805); states[94] = new State(-806); states[95] = new State(-807); states[96] = new State(-808); states[97] = new State(-809); states[98] = new State(-810); states[99] = new State(-811); states[100] = new State(-812); states[101] = new State(-813); states[102] = new State(-814); states[103] = new State(-815); states[104] = new State(-816); states[105] = new State(-817); states[106] = new State(-818); states[107] = new State(-726); states[108] = new State(-819); states[109] = new State(-820); states[110] = new State(new int[]{137,111}); states[111] = new State(-41); states[112] = new State(-34); states[113] = new State(-38); states[114] = new State(new int[]{84,116},new int[]{-237,115}); states[115] = new State(-32); states[116] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473},new int[]{-234,117,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[117] = new State(new int[]{85,118,10,119}); states[118] = new State(-509); states[119] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473},new int[]{-244,120,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[120] = new State(-511); states[121] = new State(-471); states[122] = new State(-474); states[123] = new State(new int[]{103,374,104,375,105,376,106,377,107,378,85,-507,10,-507,91,-507,94,-507,29,-507,97,-507,28,-507,93,-507,12,-507,9,-507,92,-507,80,-507,79,-507,2,-507,78,-507,77,-507,76,-507,75,-507},new int[]{-178,124}); states[124] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815},new int[]{-82,125,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[125] = new State(-501); states[126] = new State(-571); states[127] = new State(new int[]{13,128,85,-573,10,-573,91,-573,94,-573,29,-573,97,-573,28,-573,93,-573,12,-573,9,-573,92,-573,80,-573,79,-573,2,-573,78,-573,77,-573,76,-573,75,-573,6,-573}); states[128] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,129,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[129] = new State(new int[]{5,130,13,128}); states[130] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,131,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[131] = new State(new int[]{13,128,85,-584,10,-584,91,-584,94,-584,29,-584,97,-584,28,-584,93,-584,12,-584,9,-584,92,-584,80,-584,79,-584,2,-584,78,-584,77,-584,76,-584,75,-584,5,-584,6,-584,47,-584,54,-584,134,-584,136,-584,74,-584,72,-584,41,-584,38,-584,8,-584,17,-584,18,-584,137,-584,139,-584,138,-584,147,-584,149,-584,148,-584,53,-584,84,-584,36,-584,21,-584,90,-584,50,-584,31,-584,51,-584,95,-584,43,-584,32,-584,49,-584,56,-584,71,-584,69,-584,34,-584,67,-584,68,-584}); states[132] = new State(new int[]{15,133,13,-575,85,-575,10,-575,91,-575,94,-575,29,-575,97,-575,28,-575,93,-575,12,-575,9,-575,92,-575,80,-575,79,-575,2,-575,78,-575,77,-575,76,-575,75,-575,5,-575,6,-575,47,-575,54,-575,134,-575,136,-575,74,-575,72,-575,41,-575,38,-575,8,-575,17,-575,18,-575,137,-575,139,-575,138,-575,147,-575,149,-575,148,-575,53,-575,84,-575,36,-575,21,-575,90,-575,50,-575,31,-575,51,-575,95,-575,43,-575,32,-575,49,-575,56,-575,71,-575,69,-575,34,-575,67,-575,68,-575}); states[133] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-89,134,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594}); states[134] = new State(new int[]{113,289,118,290,116,291,114,292,117,293,115,294,130,295,15,-580,13,-580,85,-580,10,-580,91,-580,94,-580,29,-580,97,-580,28,-580,93,-580,12,-580,9,-580,92,-580,80,-580,79,-580,2,-580,78,-580,77,-580,76,-580,75,-580,5,-580,6,-580,47,-580,54,-580,134,-580,136,-580,74,-580,72,-580,41,-580,38,-580,8,-580,17,-580,18,-580,137,-580,139,-580,138,-580,147,-580,149,-580,148,-580,53,-580,84,-580,36,-580,21,-580,90,-580,50,-580,31,-580,51,-580,95,-580,43,-580,32,-580,49,-580,56,-580,71,-580,69,-580,34,-580,67,-580,68,-580},new int[]{-180,135}); states[135] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-93,136,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,642,-250,594}); states[136] = new State(new int[]{109,301,108,302,121,303,122,304,119,305,113,-602,118,-602,116,-602,114,-602,117,-602,115,-602,130,-602,15,-602,13,-602,85,-602,10,-602,91,-602,94,-602,29,-602,97,-602,28,-602,93,-602,12,-602,9,-602,92,-602,80,-602,79,-602,2,-602,78,-602,77,-602,76,-602,75,-602,5,-602,6,-602,47,-602,54,-602,134,-602,136,-602,74,-602,72,-602,41,-602,38,-602,8,-602,17,-602,18,-602,137,-602,139,-602,138,-602,147,-602,149,-602,148,-602,53,-602,84,-602,36,-602,21,-602,90,-602,50,-602,31,-602,51,-602,95,-602,43,-602,32,-602,49,-602,56,-602,71,-602,69,-602,34,-602,67,-602,68,-602},new int[]{-181,137}); states[137] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-76,138,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,642,-250,594}); states[138] = new State(new int[]{131,307,129,309,111,311,110,312,124,313,125,314,126,315,127,316,123,317,5,-634,109,-634,108,-634,121,-634,122,-634,119,-634,113,-634,118,-634,116,-634,114,-634,117,-634,115,-634,130,-634,15,-634,13,-634,85,-634,10,-634,91,-634,94,-634,29,-634,97,-634,28,-634,93,-634,12,-634,9,-634,92,-634,80,-634,79,-634,2,-634,78,-634,77,-634,76,-634,75,-634,6,-634,47,-634,54,-634,134,-634,136,-634,74,-634,72,-634,41,-634,38,-634,8,-634,17,-634,18,-634,137,-634,139,-634,138,-634,147,-634,149,-634,148,-634,53,-634,84,-634,36,-634,21,-634,90,-634,50,-634,31,-634,51,-634,95,-634,43,-634,32,-634,49,-634,56,-634,71,-634,69,-634,34,-634,67,-634,68,-634},new int[]{-182,139}); states[139] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250},new int[]{-88,140,-251,141,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-77,497}); states[140] = new State(new int[]{131,-651,129,-651,111,-651,110,-651,124,-651,125,-651,126,-651,127,-651,123,-651,5,-651,109,-651,108,-651,121,-651,122,-651,119,-651,113,-651,118,-651,116,-651,114,-651,117,-651,115,-651,130,-651,15,-651,13,-651,85,-651,10,-651,91,-651,94,-651,29,-651,97,-651,28,-651,93,-651,12,-651,9,-651,92,-651,80,-651,79,-651,2,-651,78,-651,77,-651,76,-651,75,-651,6,-651,47,-651,54,-651,134,-651,136,-651,74,-651,72,-651,41,-651,38,-651,8,-651,17,-651,18,-651,137,-651,139,-651,138,-651,147,-651,149,-651,148,-651,53,-651,84,-651,36,-651,21,-651,90,-651,50,-651,31,-651,51,-651,95,-651,43,-651,32,-651,49,-651,56,-651,71,-651,69,-651,34,-651,67,-651,68,-651,112,-646}); states[141] = new State(-652); states[142] = new State(-663); states[143] = new State(new int[]{7,144,131,-664,129,-664,111,-664,110,-664,124,-664,125,-664,126,-664,127,-664,123,-664,5,-664,109,-664,108,-664,121,-664,122,-664,119,-664,113,-664,118,-664,116,-664,114,-664,117,-664,115,-664,130,-664,15,-664,13,-664,85,-664,10,-664,91,-664,94,-664,29,-664,97,-664,28,-664,93,-664,12,-664,9,-664,92,-664,80,-664,79,-664,2,-664,78,-664,77,-664,76,-664,75,-664,112,-664,6,-664,47,-664,54,-664,134,-664,136,-664,74,-664,72,-664,41,-664,38,-664,8,-664,17,-664,18,-664,137,-664,139,-664,138,-664,147,-664,149,-664,148,-664,53,-664,84,-664,36,-664,21,-664,90,-664,50,-664,31,-664,51,-664,95,-664,43,-664,32,-664,49,-664,56,-664,71,-664,69,-664,34,-664,67,-664,68,-664}); states[144] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-121,145,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[145] = new State(-692); states[146] = new State(-671); states[147] = new State(new int[]{137,149,139,150,7,-710,131,-710,129,-710,111,-710,110,-710,124,-710,125,-710,126,-710,127,-710,123,-710,5,-710,109,-710,108,-710,121,-710,122,-710,119,-710,113,-710,118,-710,116,-710,114,-710,117,-710,115,-710,130,-710,15,-710,13,-710,85,-710,10,-710,91,-710,94,-710,29,-710,97,-710,28,-710,93,-710,12,-710,9,-710,92,-710,80,-710,79,-710,2,-710,78,-710,77,-710,76,-710,75,-710,112,-710,6,-710,47,-710,54,-710,134,-710,136,-710,74,-710,72,-710,41,-710,38,-710,8,-710,17,-710,18,-710,138,-710,147,-710,149,-710,148,-710,53,-710,84,-710,36,-710,21,-710,90,-710,50,-710,31,-710,51,-710,95,-710,43,-710,32,-710,49,-710,56,-710,71,-710,69,-710,34,-710,67,-710,68,-710,120,-710,103,-710,4,-710,135,-710,11,-710},new int[]{-149,148}); states[148] = new State(-713); states[149] = new State(-708); states[150] = new State(-709); states[151] = new State(-712); states[152] = new State(-711); states[153] = new State(-672); states[154] = new State(-177); states[155] = new State(-178); states[156] = new State(-179); states[157] = new State(-665); states[158] = new State(new int[]{8,159}); states[159] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-266,160,-164,162,-130,196,-134,24,-135,27}); states[160] = new State(new int[]{9,161}); states[161] = new State(-661); states[162] = new State(new int[]{7,163,4,166,116,168,9,-587,129,-587,131,-587,111,-587,110,-587,124,-587,125,-587,126,-587,127,-587,123,-587,109,-587,108,-587,121,-587,122,-587,113,-587,118,-587,114,-587,117,-587,115,-587,130,-587,13,-587,6,-587,93,-587,12,-587,5,-587,10,-587,85,-587,91,-587,94,-587,29,-587,97,-587,28,-587,92,-587,80,-587,79,-587,2,-587,78,-587,77,-587,76,-587,75,-587,11,-587,8,-587,119,-587,15,-587,47,-587,54,-587,134,-587,136,-587,74,-587,72,-587,41,-587,38,-587,17,-587,18,-587,137,-587,139,-587,138,-587,147,-587,149,-587,148,-587,53,-587,84,-587,36,-587,21,-587,90,-587,50,-587,31,-587,51,-587,95,-587,43,-587,32,-587,49,-587,56,-587,71,-587,69,-587,34,-587,67,-587,68,-587,112,-587},new int[]{-281,165}); states[163] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-121,164,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[164] = new State(-247); states[165] = new State(-588); states[166] = new State(new int[]{116,168},new int[]{-281,167}); states[167] = new State(-589); states[168] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-279,169,-261,264,-255,173,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-263,552,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,553,-207,526,-206,527,-283,554}); states[169] = new State(new int[]{114,170,93,171}); states[170] = new State(-221); states[171] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-261,172,-255,173,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-263,552,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,553,-207,526,-206,527,-283,554}); states[172] = new State(-225); states[173] = new State(new int[]{13,174,114,-229,93,-229,113,-229,9,-229,10,-229,120,-229,103,-229,85,-229,91,-229,94,-229,29,-229,97,-229,28,-229,12,-229,92,-229,80,-229,79,-229,2,-229,78,-229,77,-229,76,-229,75,-229,130,-229}); states[174] = new State(-230); states[175] = new State(new int[]{6,1307,109,1294,108,1295,121,1296,122,1297,13,-234,114,-234,93,-234,113,-234,9,-234,10,-234,120,-234,103,-234,85,-234,91,-234,94,-234,29,-234,97,-234,28,-234,12,-234,92,-234,80,-234,79,-234,2,-234,78,-234,77,-234,76,-234,75,-234,130,-234},new int[]{-177,176}); states[176] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152},new int[]{-94,177,-95,266,-164,431,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151}); states[177] = new State(new int[]{111,217,110,218,124,219,125,220,126,221,127,222,123,223,6,-238,109,-238,108,-238,121,-238,122,-238,13,-238,114,-238,93,-238,113,-238,9,-238,10,-238,120,-238,103,-238,85,-238,91,-238,94,-238,29,-238,97,-238,28,-238,12,-238,92,-238,80,-238,79,-238,2,-238,78,-238,77,-238,76,-238,75,-238,130,-238},new int[]{-179,178}); states[178] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152},new int[]{-95,179,-164,431,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151}); states[179] = new State(new int[]{8,180,111,-240,110,-240,124,-240,125,-240,126,-240,127,-240,123,-240,6,-240,109,-240,108,-240,121,-240,122,-240,13,-240,114,-240,93,-240,113,-240,9,-240,10,-240,120,-240,103,-240,85,-240,91,-240,94,-240,29,-240,97,-240,28,-240,12,-240,92,-240,80,-240,79,-240,2,-240,78,-240,77,-240,76,-240,75,-240,130,-240}); states[180] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333,9,-172},new int[]{-69,181,-66,183,-86,412,-83,186,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[181] = new State(new int[]{9,182}); states[182] = new State(-245); states[183] = new State(new int[]{93,184,9,-171,12,-171}); states[184] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-86,185,-83,186,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[185] = new State(-174); states[186] = new State(new int[]{13,187,6,1305,93,-175,9,-175,12,-175,5,-175}); states[187] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,188,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[188] = new State(new int[]{5,189,13,187}); states[189] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,190,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[190] = new State(new int[]{13,187,6,-116,93,-116,9,-116,12,-116,5,-116,10,-116,85,-116,91,-116,94,-116,29,-116,97,-116,28,-116,92,-116,80,-116,79,-116,2,-116,78,-116,77,-116,76,-116,75,-116}); states[191] = new State(new int[]{109,1294,108,1295,121,1296,122,1297,113,1298,118,1299,116,1300,114,1301,117,1302,115,1303,130,1304,13,-113,6,-113,93,-113,9,-113,12,-113,5,-113,10,-113,85,-113,91,-113,94,-113,29,-113,97,-113,28,-113,92,-113,80,-113,79,-113,2,-113,78,-113,77,-113,76,-113,75,-113},new int[]{-177,192,-176,1292}); states[192] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-12,193,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426}); states[193] = new State(new int[]{129,215,131,216,111,217,110,218,124,219,125,220,126,221,127,222,123,223,109,-125,108,-125,121,-125,122,-125,113,-125,118,-125,116,-125,114,-125,117,-125,115,-125,130,-125,13,-125,6,-125,93,-125,9,-125,12,-125,5,-125,10,-125,85,-125,91,-125,94,-125,29,-125,97,-125,28,-125,92,-125,80,-125,79,-125,2,-125,78,-125,77,-125,76,-125,75,-125},new int[]{-185,194,-179,197}); states[194] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-266,195,-164,162,-130,196,-134,24,-135,27}); states[195] = new State(-130); states[196] = new State(-246); states[197] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-10,198,-252,1291,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424}); states[198] = new State(new int[]{112,199,129,-135,131,-135,111,-135,110,-135,124,-135,125,-135,126,-135,127,-135,123,-135,109,-135,108,-135,121,-135,122,-135,113,-135,118,-135,116,-135,114,-135,117,-135,115,-135,130,-135,13,-135,6,-135,93,-135,9,-135,12,-135,5,-135,10,-135,85,-135,91,-135,94,-135,29,-135,97,-135,28,-135,92,-135,80,-135,79,-135,2,-135,78,-135,77,-135,76,-135,75,-135}); states[199] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-10,200,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424}); states[200] = new State(-131); states[201] = new State(new int[]{4,203,7,205,135,207,8,208,11,1288,112,-144,129,-144,131,-144,111,-144,110,-144,124,-144,125,-144,126,-144,127,-144,123,-144,109,-144,108,-144,121,-144,122,-144,113,-144,118,-144,116,-144,114,-144,117,-144,115,-144,130,-144,13,-144,6,-144,93,-144,9,-144,12,-144,5,-144,10,-144,85,-144,91,-144,94,-144,29,-144,97,-144,28,-144,92,-144,80,-144,79,-144,2,-144,78,-144,77,-144,76,-144,75,-144},new int[]{-11,202}); states[202] = new State(-161); states[203] = new State(new int[]{116,168},new int[]{-281,204}); states[204] = new State(-162); states[205] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-121,206,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[206] = new State(-163); states[207] = new State(-164); states[208] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333,9,-168},new int[]{-70,209,-67,211,-83,1287,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[209] = new State(new int[]{9,210}); states[210] = new State(-165); states[211] = new State(new int[]{93,212,9,-167}); states[212] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,213,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[213] = new State(new int[]{13,187,93,-170,9,-170}); states[214] = new State(new int[]{129,215,131,216,111,217,110,218,124,219,125,220,126,221,127,222,123,223,109,-124,108,-124,121,-124,122,-124,113,-124,118,-124,116,-124,114,-124,117,-124,115,-124,130,-124,13,-124,6,-124,93,-124,9,-124,12,-124,5,-124,10,-124,85,-124,91,-124,94,-124,29,-124,97,-124,28,-124,92,-124,80,-124,79,-124,2,-124,78,-124,77,-124,76,-124,75,-124},new int[]{-185,194,-179,197}); states[215] = new State(-640); states[216] = new State(-641); states[217] = new State(-137); states[218] = new State(-138); states[219] = new State(-139); states[220] = new State(-140); states[221] = new State(-141); states[222] = new State(-142); states[223] = new State(-143); states[224] = new State(new int[]{112,199,129,-132,131,-132,111,-132,110,-132,124,-132,125,-132,126,-132,127,-132,123,-132,109,-132,108,-132,121,-132,122,-132,113,-132,118,-132,116,-132,114,-132,117,-132,115,-132,130,-132,13,-132,6,-132,93,-132,9,-132,12,-132,5,-132,10,-132,85,-132,91,-132,94,-132,29,-132,97,-132,28,-132,92,-132,80,-132,79,-132,2,-132,78,-132,77,-132,76,-132,75,-132}); states[225] = new State(-156); states[226] = new State(new int[]{22,1276,136,23,79,25,80,26,74,28,72,29,11,-742,16,-742,8,-742,7,-742,135,-742,4,-742,14,-742,103,-742,104,-742,105,-742,106,-742,107,-742,85,-742,10,-742,5,-742,91,-742,94,-742,29,-742,97,-742,120,-742,131,-742,129,-742,111,-742,110,-742,124,-742,125,-742,126,-742,127,-742,123,-742,109,-742,108,-742,121,-742,122,-742,119,-742,113,-742,118,-742,116,-742,114,-742,117,-742,115,-742,130,-742,15,-742,13,-742,28,-742,93,-742,12,-742,9,-742,92,-742,2,-742,78,-742,77,-742,76,-742,75,-742,112,-742,6,-742,47,-742,54,-742,134,-742,41,-742,38,-742,17,-742,18,-742,137,-742,139,-742,138,-742,147,-742,149,-742,148,-742,53,-742,84,-742,36,-742,21,-742,90,-742,50,-742,31,-742,51,-742,95,-742,43,-742,32,-742,49,-742,56,-742,71,-742,69,-742,34,-742,67,-742,68,-742},new int[]{-266,227,-164,162,-130,196,-134,24,-135,27}); states[227] = new State(new int[]{11,229,8,584,85,-599,10,-599,91,-599,94,-599,29,-599,97,-599,131,-599,129,-599,111,-599,110,-599,124,-599,125,-599,126,-599,127,-599,123,-599,5,-599,109,-599,108,-599,121,-599,122,-599,119,-599,113,-599,118,-599,116,-599,114,-599,117,-599,115,-599,130,-599,15,-599,13,-599,28,-599,93,-599,12,-599,9,-599,92,-599,80,-599,79,-599,2,-599,78,-599,77,-599,76,-599,75,-599,6,-599,47,-599,54,-599,134,-599,136,-599,74,-599,72,-599,41,-599,38,-599,17,-599,18,-599,137,-599,139,-599,138,-599,147,-599,149,-599,148,-599,53,-599,84,-599,36,-599,21,-599,90,-599,50,-599,31,-599,51,-599,95,-599,43,-599,32,-599,49,-599,56,-599,71,-599,69,-599,34,-599,67,-599,68,-599,112,-599},new int[]{-64,228}); states[228] = new State(-592); states[229] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815,12,-701},new int[]{-62,230,-65,587,-82,588,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[230] = new State(new int[]{12,231}); states[231] = new State(new int[]{8,233,85,-591,10,-591,91,-591,94,-591,29,-591,97,-591,131,-591,129,-591,111,-591,110,-591,124,-591,125,-591,126,-591,127,-591,123,-591,5,-591,109,-591,108,-591,121,-591,122,-591,119,-591,113,-591,118,-591,116,-591,114,-591,117,-591,115,-591,130,-591,15,-591,13,-591,28,-591,93,-591,12,-591,9,-591,92,-591,80,-591,79,-591,2,-591,78,-591,77,-591,76,-591,75,-591,6,-591,47,-591,54,-591,134,-591,136,-591,74,-591,72,-591,41,-591,38,-591,17,-591,18,-591,137,-591,139,-591,138,-591,147,-591,149,-591,148,-591,53,-591,84,-591,36,-591,21,-591,90,-591,50,-591,31,-591,51,-591,95,-591,43,-591,32,-591,49,-591,56,-591,71,-591,69,-591,34,-591,67,-591,68,-591,112,-591},new int[]{-5,232}); states[232] = new State(-593); states[233] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,784,128,420,109,332,108,333,59,158,9,-186},new int[]{-61,234,-60,236,-79,787,-78,239,-83,240,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-87,795,-225,796,-52,788}); states[234] = new State(new int[]{9,235}); states[235] = new State(-590); states[236] = new State(new int[]{93,237,9,-187}); states[237] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,784,128,420,109,332,108,333,59,158},new int[]{-79,238,-78,239,-83,240,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-87,795,-225,796,-52,788}); states[238] = new State(-189); states[239] = new State(-401); states[240] = new State(new int[]{13,187,93,-180,9,-180,85,-180,10,-180,91,-180,94,-180,29,-180,97,-180,28,-180,12,-180,92,-180,80,-180,79,-180,2,-180,78,-180,77,-180,76,-180,75,-180}); states[241] = new State(-157); states[242] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,243,-134,24,-135,27}); states[243] = new State(-158); states[244] = new State(-159); states[245] = new State(new int[]{8,246}); states[246] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-266,247,-164,162,-130,196,-134,24,-135,27}); states[247] = new State(new int[]{9,248}); states[248] = new State(-581); states[249] = new State(-160); states[250] = new State(new int[]{8,251}); states[251] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-266,252,-265,254,-164,256,-130,196,-134,24,-135,27}); states[252] = new State(new int[]{9,253}); states[253] = new State(-582); states[254] = new State(new int[]{9,255}); states[255] = new State(-583); states[256] = new State(new int[]{7,163,4,257,116,259,118,1274,9,-587},new int[]{-281,165,-282,1275}); states[257] = new State(new int[]{116,259,118,1274},new int[]{-281,167,-282,258}); states[258] = new State(-586); states[259] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543,114,-228,93,-228},new int[]{-279,169,-280,260,-261,264,-255,173,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-263,552,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,553,-207,526,-206,527,-283,554,-262,1273}); states[260] = new State(new int[]{114,261,93,262}); states[261] = new State(-223); states[262] = new State(-228,new int[]{-262,263}); states[263] = new State(-227); states[264] = new State(-224); states[265] = new State(new int[]{111,217,110,218,124,219,125,220,126,221,127,222,123,223,6,-237,109,-237,108,-237,121,-237,122,-237,13,-237,114,-237,93,-237,113,-237,9,-237,10,-237,120,-237,103,-237,85,-237,91,-237,94,-237,29,-237,97,-237,28,-237,12,-237,92,-237,80,-237,79,-237,2,-237,78,-237,77,-237,76,-237,75,-237,130,-237},new int[]{-179,178}); states[266] = new State(new int[]{8,180,111,-239,110,-239,124,-239,125,-239,126,-239,127,-239,123,-239,6,-239,109,-239,108,-239,121,-239,122,-239,13,-239,114,-239,93,-239,113,-239,9,-239,10,-239,120,-239,103,-239,85,-239,91,-239,94,-239,29,-239,97,-239,28,-239,12,-239,92,-239,80,-239,79,-239,2,-239,78,-239,77,-239,76,-239,75,-239,130,-239}); states[267] = new State(new int[]{7,163,120,268,116,168,8,-241,111,-241,110,-241,124,-241,125,-241,126,-241,127,-241,123,-241,6,-241,109,-241,108,-241,121,-241,122,-241,13,-241,114,-241,93,-241,113,-241,9,-241,10,-241,103,-241,85,-241,91,-241,94,-241,29,-241,97,-241,28,-241,12,-241,92,-241,80,-241,79,-241,2,-241,78,-241,77,-241,76,-241,75,-241,130,-241},new int[]{-281,583}); states[268] = new State(new int[]{8,270,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-261,269,-255,173,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-263,552,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,553,-207,526,-206,527,-283,554}); states[269] = new State(-276); states[270] = new State(new int[]{9,271,136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-74,276,-72,282,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[271] = new State(new int[]{120,272,114,-280,93,-280,113,-280,9,-280,10,-280,103,-280,85,-280,91,-280,94,-280,29,-280,97,-280,28,-280,12,-280,92,-280,80,-280,79,-280,2,-280,78,-280,77,-280,76,-280,75,-280,130,-280}); states[272] = new State(new int[]{8,274,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-261,273,-255,173,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-263,552,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,553,-207,526,-206,527,-283,554}); states[273] = new State(-278); states[274] = new State(new int[]{9,275,136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-74,276,-72,282,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[275] = new State(new int[]{120,272,114,-282,93,-282,113,-282,9,-282,10,-282,103,-282,85,-282,91,-282,94,-282,29,-282,97,-282,28,-282,12,-282,92,-282,80,-282,79,-282,2,-282,78,-282,77,-282,76,-282,75,-282,130,-282}); states[276] = new State(new int[]{9,277,93,901}); states[277] = new State(new int[]{120,278,13,-236,114,-236,93,-236,113,-236,9,-236,10,-236,103,-236,85,-236,91,-236,94,-236,29,-236,97,-236,28,-236,12,-236,92,-236,80,-236,79,-236,2,-236,78,-236,77,-236,76,-236,75,-236,130,-236}); states[278] = new State(new int[]{8,280,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-261,279,-255,173,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-263,552,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,553,-207,526,-206,527,-283,554}); states[279] = new State(-279); states[280] = new State(new int[]{9,281,136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-74,276,-72,282,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[281] = new State(new int[]{120,272,114,-283,93,-283,113,-283,9,-283,10,-283,103,-283,85,-283,91,-283,94,-283,29,-283,97,-283,28,-283,12,-283,92,-283,80,-283,79,-283,2,-283,78,-283,77,-283,76,-283,75,-283,130,-283}); states[282] = new State(new int[]{93,283}); states[283] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-72,284,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[284] = new State(-248); states[285] = new State(new int[]{113,286,93,-250,9,-250}); states[286] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,287,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[287] = new State(-251); states[288] = new State(new int[]{113,289,118,290,116,291,114,292,117,293,115,294,130,295,15,-579,13,-579,85,-579,10,-579,91,-579,94,-579,29,-579,97,-579,28,-579,93,-579,12,-579,9,-579,92,-579,80,-579,79,-579,2,-579,78,-579,77,-579,76,-579,75,-579,5,-579,6,-579,47,-579,54,-579,134,-579,136,-579,74,-579,72,-579,41,-579,38,-579,8,-579,17,-579,18,-579,137,-579,139,-579,138,-579,147,-579,149,-579,148,-579,53,-579,84,-579,36,-579,21,-579,90,-579,50,-579,31,-579,51,-579,95,-579,43,-579,32,-579,49,-579,56,-579,71,-579,69,-579,34,-579,67,-579,68,-579},new int[]{-180,135}); states[289] = new State(-626); states[290] = new State(-627); states[291] = new State(-628); states[292] = new State(-629); states[293] = new State(-630); states[294] = new State(-631); states[295] = new State(-632); states[296] = new State(new int[]{5,297,109,301,108,302,121,303,122,304,119,305,113,-601,118,-601,116,-601,114,-601,117,-601,115,-601,130,-601,15,-601,13,-601,85,-601,10,-601,91,-601,94,-601,29,-601,97,-601,28,-601,93,-601,12,-601,9,-601,92,-601,80,-601,79,-601,2,-601,78,-601,77,-601,76,-601,75,-601,6,-601},new int[]{-181,137}); states[297] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,-621,85,-621,10,-621,91,-621,94,-621,29,-621,97,-621,28,-621,93,-621,12,-621,9,-621,92,-621,2,-621,78,-621,77,-621,76,-621,75,-621,6,-621},new int[]{-102,298,-93,643,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,642,-250,594}); states[298] = new State(new int[]{5,299,85,-622,10,-622,91,-622,94,-622,29,-622,97,-622,28,-622,93,-622,12,-622,9,-622,92,-622,80,-622,79,-622,2,-622,78,-622,77,-622,76,-622,75,-622,6,-622}); states[299] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-93,300,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,642,-250,594}); states[300] = new State(new int[]{109,301,108,302,121,303,122,304,119,305,85,-624,10,-624,91,-624,94,-624,29,-624,97,-624,28,-624,93,-624,12,-624,9,-624,92,-624,80,-624,79,-624,2,-624,78,-624,77,-624,76,-624,75,-624,6,-624},new int[]{-181,137}); states[301] = new State(-635); states[302] = new State(-636); states[303] = new State(-637); states[304] = new State(-638); states[305] = new State(-639); states[306] = new State(new int[]{131,307,129,309,111,311,110,312,124,313,125,314,126,315,127,316,123,317,5,-633,109,-633,108,-633,121,-633,122,-633,119,-633,113,-633,118,-633,116,-633,114,-633,117,-633,115,-633,130,-633,15,-633,13,-633,85,-633,10,-633,91,-633,94,-633,29,-633,97,-633,28,-633,93,-633,12,-633,9,-633,92,-633,80,-633,79,-633,2,-633,78,-633,77,-633,76,-633,75,-633,6,-633,47,-633,54,-633,134,-633,136,-633,74,-633,72,-633,41,-633,38,-633,8,-633,17,-633,18,-633,137,-633,139,-633,138,-633,147,-633,149,-633,148,-633,53,-633,84,-633,36,-633,21,-633,90,-633,50,-633,31,-633,51,-633,95,-633,43,-633,32,-633,49,-633,56,-633,71,-633,69,-633,34,-633,67,-633,68,-633},new int[]{-182,139}); states[307] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-266,308,-164,162,-130,196,-134,24,-135,27}); states[308] = new State(-645); states[309] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-266,310,-164,162,-130,196,-134,24,-135,27}); states[310] = new State(-644); states[311] = new State(-654); states[312] = new State(-655); states[313] = new State(-656); states[314] = new State(-657); states[315] = new State(-658); states[316] = new State(-659); states[317] = new State(-660); states[318] = new State(new int[]{131,-648,129,-648,111,-648,110,-648,124,-648,125,-648,126,-648,127,-648,123,-648,5,-648,109,-648,108,-648,121,-648,122,-648,119,-648,113,-648,118,-648,116,-648,114,-648,117,-648,115,-648,130,-648,15,-648,13,-648,85,-648,10,-648,91,-648,94,-648,29,-648,97,-648,28,-648,93,-648,12,-648,9,-648,92,-648,80,-648,79,-648,2,-648,78,-648,77,-648,76,-648,75,-648,6,-648,47,-648,54,-648,134,-648,136,-648,74,-648,72,-648,41,-648,38,-648,8,-648,17,-648,18,-648,137,-648,139,-648,138,-648,147,-648,149,-648,148,-648,53,-648,84,-648,36,-648,21,-648,90,-648,50,-648,31,-648,51,-648,95,-648,43,-648,32,-648,49,-648,56,-648,71,-648,69,-648,34,-648,67,-648,68,-648,112,-646}); states[319] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638,12,-703},new int[]{-63,320,-71,322,-84,1272,-81,325,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[320] = new State(new int[]{12,321}); states[321] = new State(-666); states[322] = new State(new int[]{93,323,12,-702}); states[323] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-84,324,-81,325,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[324] = new State(-705); states[325] = new State(new int[]{6,326,93,-706,12,-706}); states[326] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,327,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[327] = new State(-707); states[328] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250},new int[]{-88,329,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494}); states[329] = new State(-667); states[330] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250},new int[]{-88,331,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494}); states[331] = new State(-668); states[332] = new State(-154); states[333] = new State(-155); states[334] = new State(-669); states[335] = new State(new int[]{134,1271,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-99,336,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605}); states[336] = new State(new int[]{11,337,16,344,8,971,7,974,135,976,4,977,103,-675,104,-675,105,-675,106,-675,107,-675,85,-675,10,-675,91,-675,94,-675,29,-675,97,-675,131,-675,129,-675,111,-675,110,-675,124,-675,125,-675,126,-675,127,-675,123,-675,5,-675,109,-675,108,-675,121,-675,122,-675,119,-675,113,-675,118,-675,116,-675,114,-675,117,-675,115,-675,130,-675,15,-675,13,-675,28,-675,93,-675,12,-675,9,-675,92,-675,80,-675,79,-675,2,-675,78,-675,77,-675,76,-675,75,-675,112,-675,6,-675,47,-675,54,-675,134,-675,136,-675,74,-675,72,-675,41,-675,38,-675,17,-675,18,-675,137,-675,139,-675,138,-675,147,-675,149,-675,148,-675,53,-675,84,-675,36,-675,21,-675,90,-675,50,-675,31,-675,51,-675,95,-675,43,-675,32,-675,49,-675,56,-675,71,-675,69,-675,34,-675,67,-675,68,-675}); states[337] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815},new int[]{-65,338,-82,588,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[338] = new State(new int[]{12,339,93,340}); states[339] = new State(-693); states[340] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815},new int[]{-82,341,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[341] = new State(-568); states[342] = new State(-678); states[343] = new State(new int[]{11,337,16,344,8,971,7,974,135,976,4,977,14,980,103,-676,104,-676,105,-676,106,-676,107,-676,85,-676,10,-676,91,-676,94,-676,29,-676,97,-676,131,-676,129,-676,111,-676,110,-676,124,-676,125,-676,126,-676,127,-676,123,-676,5,-676,109,-676,108,-676,121,-676,122,-676,119,-676,113,-676,118,-676,116,-676,114,-676,117,-676,115,-676,130,-676,15,-676,13,-676,28,-676,93,-676,12,-676,9,-676,92,-676,80,-676,79,-676,2,-676,78,-676,77,-676,76,-676,75,-676,112,-676,6,-676,47,-676,54,-676,134,-676,136,-676,74,-676,72,-676,41,-676,38,-676,17,-676,18,-676,137,-676,139,-676,138,-676,147,-676,149,-676,148,-676,53,-676,84,-676,36,-676,21,-676,90,-676,50,-676,31,-676,51,-676,95,-676,43,-676,32,-676,49,-676,56,-676,71,-676,69,-676,34,-676,67,-676,68,-676}); states[344] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-105,345,-93,347,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,642,-250,594}); states[345] = new State(new int[]{12,346}); states[346] = new State(-694); states[347] = new State(new int[]{5,297,109,301,108,302,121,303,122,304,119,305},new int[]{-181,137}); states[348] = new State(-686); states[349] = new State(-687); states[350] = new State(new int[]{108,352,109,353,110,354,111,355,113,356,114,357,115,358,116,359,117,360,118,361,121,362,122,363,123,364,124,365,125,366,126,367,127,368,128,369,130,370,132,371,133,372,103,374,104,375,105,376,106,377,107,378,112,379},new int[]{-184,351,-178,373}); states[351] = new State(-714); states[352] = new State(-821); states[353] = new State(-822); states[354] = new State(-823); states[355] = new State(-824); states[356] = new State(-825); states[357] = new State(-826); states[358] = new State(-827); states[359] = new State(-828); states[360] = new State(-829); states[361] = new State(-830); states[362] = new State(-831); states[363] = new State(-832); states[364] = new State(-833); states[365] = new State(-834); states[366] = new State(-835); states[367] = new State(-836); states[368] = new State(-837); states[369] = new State(-838); states[370] = new State(-839); states[371] = new State(-840); states[372] = new State(-841); states[373] = new State(-842); states[374] = new State(-844); states[375] = new State(-845); states[376] = new State(-846); states[377] = new State(-847); states[378] = new State(-848); states[379] = new State(-843); states[380] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,381,-134,24,-135,27}); states[381] = new State(-688); states[382] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,383,-91,385,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[383] = new State(new int[]{9,384}); states[384] = new State(-689); states[385] = new State(new int[]{93,386,13,128,9,-573}); states[386] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-73,387,-91,909,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[387] = new State(new int[]{93,907,5,399,10,-868,9,-868},new int[]{-304,388}); states[388] = new State(new int[]{10,391,9,-856},new int[]{-310,389}); states[389] = new State(new int[]{9,390}); states[390] = new State(-662); states[391] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-306,392,-307,814,-141,395,-130,693,-134,24,-135,27}); states[392] = new State(new int[]{10,393,9,-857}); states[393] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-307,394,-141,395,-130,693,-134,24,-135,27}); states[394] = new State(-866); states[395] = new State(new int[]{93,397,5,399,10,-868,9,-868},new int[]{-304,396}); states[396] = new State(-867); states[397] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,398,-134,24,-135,27}); states[398] = new State(-332); states[399] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,400,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[400] = new State(-869); states[401] = new State(-465); states[402] = new State(new int[]{13,403,113,-213,93,-213,9,-213,10,-213,120,-213,114,-213,103,-213,85,-213,91,-213,94,-213,29,-213,97,-213,28,-213,12,-213,92,-213,80,-213,79,-213,2,-213,78,-213,77,-213,76,-213,75,-213,130,-213}); states[403] = new State(-214); states[404] = new State(new int[]{11,405,7,-721,120,-721,116,-721,8,-721,111,-721,110,-721,124,-721,125,-721,126,-721,127,-721,123,-721,6,-721,109,-721,108,-721,121,-721,122,-721,13,-721,113,-721,93,-721,9,-721,10,-721,114,-721,103,-721,85,-721,91,-721,94,-721,29,-721,97,-721,28,-721,12,-721,92,-721,80,-721,79,-721,2,-721,78,-721,77,-721,76,-721,75,-721,130,-721}); states[405] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,406,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[406] = new State(new int[]{12,407,13,187}); states[407] = new State(-271); states[408] = new State(-145); states[409] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333,12,-172},new int[]{-69,410,-66,183,-86,412,-83,186,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[410] = new State(new int[]{12,411}); states[411] = new State(-153); states[412] = new State(-173); states[413] = new State(-146); states[414] = new State(-147); states[415] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-10,416,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424}); states[416] = new State(-148); states[417] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,418,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[418] = new State(new int[]{9,419,13,187}); states[419] = new State(-149); states[420] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-10,421,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424}); states[421] = new State(-150); states[422] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-10,423,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424}); states[423] = new State(-151); states[424] = new State(-152); states[425] = new State(-133); states[426] = new State(-134); states[427] = new State(-115); states[428] = new State(-242); states[429] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152},new int[]{-95,430,-164,431,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151}); states[430] = new State(new int[]{8,180,111,-243,110,-243,124,-243,125,-243,126,-243,127,-243,123,-243,6,-243,109,-243,108,-243,121,-243,122,-243,13,-243,114,-243,93,-243,113,-243,9,-243,10,-243,120,-243,103,-243,85,-243,91,-243,94,-243,29,-243,97,-243,28,-243,12,-243,92,-243,80,-243,79,-243,2,-243,78,-243,77,-243,76,-243,75,-243,130,-243}); states[431] = new State(new int[]{7,163,8,-241,111,-241,110,-241,124,-241,125,-241,126,-241,127,-241,123,-241,6,-241,109,-241,108,-241,121,-241,122,-241,13,-241,114,-241,93,-241,113,-241,9,-241,10,-241,120,-241,103,-241,85,-241,91,-241,94,-241,29,-241,97,-241,28,-241,12,-241,92,-241,80,-241,79,-241,2,-241,78,-241,77,-241,76,-241,75,-241,130,-241}); states[432] = new State(-244); states[433] = new State(new int[]{9,434,136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-74,276,-72,282,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[434] = new State(new int[]{120,272}); states[435] = new State(-215); states[436] = new State(-216); states[437] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,438,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[438] = new State(-252); states[439] = new State(-217); states[440] = new State(-253); states[441] = new State(-255); states[442] = new State(new int[]{11,443,54,1269}); states[443] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,898,12,-267,93,-267},new int[]{-147,444,-254,1268,-255,1267,-85,175,-94,265,-95,266,-164,431,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151}); states[444] = new State(new int[]{12,445,93,1265}); states[445] = new State(new int[]{54,446}); states[446] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,447,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[447] = new State(-261); states[448] = new State(-262); states[449] = new State(-256); states[450] = new State(new int[]{8,1112,19,-303,11,-303,85,-303,78,-303,77,-303,76,-303,75,-303,25,-303,136,-303,79,-303,80,-303,74,-303,72,-303,58,-303,24,-303,22,-303,40,-303,33,-303,26,-303,27,-303,42,-303},new int[]{-167,451}); states[451] = new State(new int[]{19,1103,11,-310,85,-310,78,-310,77,-310,76,-310,75,-310,25,-310,136,-310,79,-310,80,-310,74,-310,72,-310,58,-310,24,-310,22,-310,40,-310,33,-310,26,-310,27,-310,42,-310},new int[]{-297,452,-296,1101,-295,1123}); states[452] = new State(new int[]{11,575,85,-327,78,-327,77,-327,76,-327,75,-327,25,-200,136,-200,79,-200,80,-200,74,-200,72,-200,58,-200,24,-200,22,-200,40,-200,33,-200,26,-200,27,-200,42,-200},new int[]{-21,453,-28,1081,-30,457,-40,1082,-6,1083,-232,959,-29,1222,-49,1224,-48,463,-50,1223}); states[453] = new State(new int[]{85,454,78,1077,77,1078,76,1079,75,1080},new int[]{-7,455}); states[454] = new State(-285); states[455] = new State(new int[]{11,575,85,-327,78,-327,77,-327,76,-327,75,-327,25,-200,136,-200,79,-200,80,-200,74,-200,72,-200,58,-200,24,-200,22,-200,40,-200,33,-200,26,-200,27,-200,42,-200},new int[]{-28,456,-30,457,-40,1082,-6,1083,-232,959,-29,1222,-49,1224,-48,463,-50,1223}); states[456] = new State(-322); states[457] = new State(new int[]{10,459,85,-333,78,-333,77,-333,76,-333,75,-333},new int[]{-174,458}); states[458] = new State(-328); states[459] = new State(new int[]{11,575,85,-334,78,-334,77,-334,76,-334,75,-334,25,-200,136,-200,79,-200,80,-200,74,-200,72,-200,58,-200,24,-200,22,-200,40,-200,33,-200,26,-200,27,-200,42,-200},new int[]{-40,460,-29,461,-6,1083,-232,959,-49,1224,-48,463,-50,1223}); states[460] = new State(-336); states[461] = new State(new int[]{11,575,85,-330,78,-330,77,-330,76,-330,75,-330,24,-200,22,-200,40,-200,33,-200,26,-200,27,-200,42,-200},new int[]{-49,462,-48,463,-6,464,-232,959,-50,1223}); states[462] = new State(-339); states[463] = new State(-340); states[464] = new State(new int[]{24,1192,22,1193,40,1096,33,1131,26,1207,27,1214,11,575,42,1150},new int[]{-205,465,-232,466,-202,467,-240,468,-3,469,-213,1194,-211,1025,-208,1095,-212,1130,-210,1195,-198,1218,-199,1219,-201,1220,-241,1221}); states[465] = new State(-349); states[466] = new State(-199); states[467] = new State(-350); states[468] = new State(-368); states[469] = new State(new int[]{26,471,40,1096,33,1131,42,1150},new int[]{-213,470,-199,1023,-241,1024,-211,1025,-208,1095,-212,1130}); states[470] = new State(-353); states[471] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,8,-363,103,-363,10,-363},new int[]{-155,472,-154,1006,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[472] = new State(new int[]{8,530,103,-449,10,-449},new int[]{-111,473}); states[473] = new State(new int[]{103,475,10,995},new int[]{-191,474}); states[474] = new State(-360); states[475] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,476,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[476] = new State(new int[]{10,477}); states[477] = new State(-408); states[478] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,85,-549,10,-549,91,-549,94,-549,29,-549,97,-549,28,-549,93,-549,12,-549,9,-549,92,-549,2,-549,78,-549,77,-549,76,-549,75,-549},new int[]{-130,381,-134,24,-135,27}); states[479] = new State(new int[]{49,983,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,383,-91,385,-99,480,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[480] = new State(new int[]{93,481,11,337,16,344,8,971,7,974,135,976,4,977,14,980,131,-676,129,-676,111,-676,110,-676,124,-676,125,-676,126,-676,127,-676,123,-676,5,-676,109,-676,108,-676,121,-676,122,-676,119,-676,113,-676,118,-676,116,-676,114,-676,117,-676,115,-676,130,-676,15,-676,13,-676,9,-676,112,-676}); states[481] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-315,482,-99,979,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605}); states[482] = new State(new int[]{9,483,93,969}); states[483] = new State(new int[]{103,374,104,375,105,376,106,377,107,378},new int[]{-178,484}); states[484] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,485,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[485] = new State(-502); states[486] = new State(-690); states[487] = new State(-691); states[488] = new State(new int[]{7,489,131,-670,129,-670,111,-670,110,-670,124,-670,125,-670,126,-670,127,-670,123,-670,5,-670,109,-670,108,-670,121,-670,122,-670,119,-670,113,-670,118,-670,116,-670,114,-670,117,-670,115,-670,130,-670,15,-670,13,-670,85,-670,10,-670,91,-670,94,-670,29,-670,97,-670,28,-670,93,-670,12,-670,9,-670,92,-670,80,-670,79,-670,2,-670,78,-670,77,-670,76,-670,75,-670,112,-670,6,-670,47,-670,54,-670,134,-670,136,-670,74,-670,72,-670,41,-670,38,-670,8,-670,17,-670,18,-670,137,-670,139,-670,138,-670,147,-670,149,-670,148,-670,53,-670,84,-670,36,-670,21,-670,90,-670,50,-670,31,-670,51,-670,95,-670,43,-670,32,-670,49,-670,56,-670,71,-670,69,-670,34,-670,67,-670,68,-670}); states[489] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,350},new int[]{-131,490,-130,491,-134,24,-135,27,-275,492,-133,31,-175,493}); states[490] = new State(-697); states[491] = new State(-727); states[492] = new State(-728); states[493] = new State(-729); states[494] = new State(-677); states[495] = new State(-649); states[496] = new State(-650); states[497] = new State(new int[]{112,498}); states[498] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250},new int[]{-88,499,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494}); states[499] = new State(-647); states[500] = new State(-653); states[501] = new State(new int[]{8,502,131,-642,129,-642,111,-642,110,-642,124,-642,125,-642,126,-642,127,-642,123,-642,5,-642,109,-642,108,-642,121,-642,122,-642,119,-642,113,-642,118,-642,116,-642,114,-642,117,-642,115,-642,130,-642,15,-642,13,-642,85,-642,10,-642,91,-642,94,-642,29,-642,97,-642,28,-642,93,-642,12,-642,9,-642,92,-642,80,-642,79,-642,2,-642,78,-642,77,-642,76,-642,75,-642,6,-642,47,-642,54,-642,134,-642,136,-642,74,-642,72,-642,41,-642,38,-642,17,-642,18,-642,137,-642,139,-642,138,-642,147,-642,149,-642,148,-642,53,-642,84,-642,36,-642,21,-642,90,-642,50,-642,31,-642,51,-642,95,-642,43,-642,32,-642,49,-642,56,-642,71,-642,69,-642,34,-642,67,-642,68,-642}); states[502] = new State(new int[]{49,507,136,23,79,25,80,26,74,28,72,29},new int[]{-325,503,-323,968,-318,961,-266,962,-164,162,-130,196,-134,24,-135,27}); states[503] = new State(new int[]{9,504,10,505,93,966}); states[504] = new State(-603); states[505] = new State(new int[]{49,507,136,23,79,25,80,26,74,28,72,29},new int[]{-323,506,-318,961,-266,962,-164,162,-130,196,-134,24,-135,27}); states[506] = new State(-610); states[507] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,508,-134,24,-135,27}); states[508] = new State(new int[]{5,509,9,-613,10,-613,93,-613}); states[509] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,510,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[510] = new State(-612); states[511] = new State(-257); states[512] = new State(new int[]{54,513}); states[513] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,514,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[514] = new State(-268); states[515] = new State(-258); states[516] = new State(new int[]{54,517,114,-270,93,-270,113,-270,9,-270,10,-270,120,-270,103,-270,85,-270,91,-270,94,-270,29,-270,97,-270,28,-270,12,-270,92,-270,80,-270,79,-270,2,-270,78,-270,77,-270,76,-270,75,-270,130,-270}); states[517] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,518,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[518] = new State(-269); states[519] = new State(-259); states[520] = new State(new int[]{54,521}); states[521] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,522,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[522] = new State(-260); states[523] = new State(new int[]{20,442,44,450,45,512,30,516,70,520},new int[]{-264,524,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519}); states[524] = new State(-254); states[525] = new State(-218); states[526] = new State(-272); states[527] = new State(-273); states[528] = new State(new int[]{8,530,114,-449,93,-449,113,-449,9,-449,10,-449,120,-449,103,-449,85,-449,91,-449,94,-449,29,-449,97,-449,28,-449,12,-449,92,-449,80,-449,79,-449,2,-449,78,-449,77,-449,76,-449,75,-449,130,-449},new int[]{-111,529}); states[529] = new State(-274); states[530] = new State(new int[]{9,531,11,575,136,-200,79,-200,80,-200,74,-200,72,-200,49,-200,25,-200,101,-200},new int[]{-112,532,-51,960,-6,536,-232,959}); states[531] = new State(-450); states[532] = new State(new int[]{9,533,10,534}); states[533] = new State(-451); states[534] = new State(new int[]{11,575,136,-200,79,-200,80,-200,74,-200,72,-200,49,-200,25,-200,101,-200},new int[]{-51,535,-6,536,-232,959}); states[535] = new State(-453); states[536] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,559,25,565,101,571,11,575},new int[]{-278,537,-232,466,-142,538,-118,558,-130,557,-134,24,-135,27}); states[537] = new State(-454); states[538] = new State(new int[]{5,539,93,555}); states[539] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,540,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[540] = new State(new int[]{103,541,9,-455,10,-455}); states[541] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,542,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[542] = new State(new int[]{13,187,9,-459,10,-459}); states[543] = new State(new int[]{8,530,5,-449},new int[]{-111,544}); states[544] = new State(new int[]{5,545}); states[545] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,546,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[546] = new State(-275); states[547] = new State(new int[]{120,548,113,-219,93,-219,9,-219,10,-219,114,-219,103,-219,85,-219,91,-219,94,-219,29,-219,97,-219,28,-219,12,-219,92,-219,80,-219,79,-219,2,-219,78,-219,77,-219,76,-219,75,-219,130,-219}); states[548] = new State(new int[]{8,550,136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-261,549,-255,173,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-263,552,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,553,-207,526,-206,527,-283,554}); states[549] = new State(-277); states[550] = new State(new int[]{9,551,136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-74,276,-72,282,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[551] = new State(new int[]{120,272,114,-281,93,-281,113,-281,9,-281,10,-281,103,-281,85,-281,91,-281,94,-281,29,-281,97,-281,28,-281,12,-281,92,-281,80,-281,79,-281,2,-281,78,-281,77,-281,76,-281,75,-281,130,-281}); states[552] = new State(-231); states[553] = new State(-232); states[554] = new State(new int[]{120,548,114,-233,93,-233,113,-233,9,-233,10,-233,103,-233,85,-233,91,-233,94,-233,29,-233,97,-233,28,-233,12,-233,92,-233,80,-233,79,-233,2,-233,78,-233,77,-233,76,-233,75,-233,130,-233}); states[555] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-118,556,-130,557,-134,24,-135,27}); states[556] = new State(-463); states[557] = new State(-464); states[558] = new State(-462); states[559] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-142,560,-118,558,-130,557,-134,24,-135,27}); states[560] = new State(new int[]{5,561,93,555}); states[561] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,562,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[562] = new State(new int[]{103,563,9,-456,10,-456}); states[563] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,564,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[564] = new State(new int[]{13,187,9,-460,10,-460}); states[565] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-142,566,-118,558,-130,557,-134,24,-135,27}); states[566] = new State(new int[]{5,567,93,555}); states[567] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,568,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[568] = new State(new int[]{103,569,9,-457,10,-457}); states[569] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,570,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[570] = new State(new int[]{13,187,9,-461,10,-461}); states[571] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-142,572,-118,558,-130,557,-134,24,-135,27}); states[572] = new State(new int[]{5,573,93,555}); states[573] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,574,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[574] = new State(-458); states[575] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-233,576,-8,958,-9,580,-164,581,-130,953,-134,24,-135,27,-283,956}); states[576] = new State(new int[]{12,577,93,578}); states[577] = new State(-201); states[578] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-8,579,-9,580,-164,581,-130,953,-134,24,-135,27,-283,956}); states[579] = new State(-203); states[580] = new State(-204); states[581] = new State(new int[]{7,163,8,584,116,168,12,-599,93,-599},new int[]{-64,582,-281,583}); states[582] = new State(-680); states[583] = new State(-220); states[584] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815,9,-701},new int[]{-62,585,-65,587,-82,588,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[585] = new State(new int[]{9,586}); states[586] = new State(-600); states[587] = new State(new int[]{93,340,12,-700,9,-700}); states[588] = new State(-567); states[589] = new State(new int[]{120,590,11,-686,16,-686,8,-686,7,-686,135,-686,4,-686,14,-686,131,-686,129,-686,111,-686,110,-686,124,-686,125,-686,126,-686,127,-686,123,-686,5,-686,109,-686,108,-686,121,-686,122,-686,119,-686,113,-686,118,-686,116,-686,114,-686,117,-686,115,-686,130,-686,15,-686,13,-686,85,-686,10,-686,91,-686,94,-686,29,-686,97,-686,28,-686,93,-686,12,-686,9,-686,92,-686,80,-686,79,-686,2,-686,78,-686,77,-686,76,-686,75,-686,112,-686}); states[590] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,591,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[591] = new State(-849); states[592] = new State(new int[]{13,128,85,-872,10,-872,91,-872,94,-872,29,-872,97,-872,28,-872,93,-872,12,-872,9,-872,92,-872,80,-872,79,-872,2,-872,78,-872,77,-872,76,-872,75,-872}); states[593] = new State(new int[]{109,301,108,302,121,303,122,304,119,305,113,-601,118,-601,116,-601,114,-601,117,-601,115,-601,130,-601,15,-601,5,-601,13,-601,85,-601,10,-601,91,-601,94,-601,29,-601,97,-601,28,-601,93,-601,12,-601,9,-601,92,-601,80,-601,79,-601,2,-601,78,-601,77,-601,76,-601,75,-601,6,-601,47,-601,54,-601,134,-601,136,-601,74,-601,72,-601,41,-601,38,-601,8,-601,17,-601,18,-601,137,-601,139,-601,138,-601,147,-601,149,-601,148,-601,53,-601,84,-601,36,-601,21,-601,90,-601,50,-601,31,-601,51,-601,95,-601,43,-601,32,-601,49,-601,56,-601,71,-601,69,-601,34,-601,67,-601,68,-601},new int[]{-181,137}); states[594] = new State(-643); states[595] = new State(-576); states[596] = new State(-873); states[597] = new State(-874); states[598] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,599,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[599] = new State(new int[]{47,600,13,128}); states[600] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,601,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[601] = new State(new int[]{28,602,85,-512,10,-512,91,-512,94,-512,29,-512,97,-512,93,-512,12,-512,9,-512,92,-512,80,-512,79,-512,2,-512,78,-512,77,-512,76,-512,75,-512}); states[602] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,603,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[603] = new State(-513); states[604] = new State(new int[]{7,144}); states[605] = new State(new int[]{7,489}); states[606] = new State(-475); states[607] = new State(-476); states[608] = new State(new int[]{147,610,148,611,136,23,79,25,80,26,74,28,72,29},new int[]{-126,609,-130,612,-134,24,-135,27}); states[609] = new State(-508); states[610] = new State(-92); states[611] = new State(-93); states[612] = new State(-94); states[613] = new State(-477); states[614] = new State(-478); states[615] = new State(-479); states[616] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,617,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[617] = new State(new int[]{54,618,13,128}); states[618] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333,28,626,85,-529},new int[]{-32,619,-235,950,-245,952,-68,943,-98,949,-86,948,-83,186,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[619] = new State(new int[]{10,622,28,626,85,-529},new int[]{-235,620}); states[620] = new State(new int[]{85,621}); states[621] = new State(-520); states[622] = new State(new int[]{28,626,136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333,85,-529},new int[]{-235,623,-245,625,-68,943,-98,949,-86,948,-83,186,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[623] = new State(new int[]{85,624}); states[624] = new State(-521); states[625] = new State(-524); states[626] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,85,-473},new int[]{-234,627,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[627] = new State(new int[]{10,119,85,-530}); states[628] = new State(-510); states[629] = new State(new int[]{11,-686,16,-686,8,-686,7,-686,135,-686,4,-686,14,-686,103,-686,104,-686,105,-686,106,-686,107,-686,85,-686,10,-686,91,-686,94,-686,29,-686,97,-686,5,-94}); states[630] = new State(new int[]{7,-177,5,-92}); states[631] = new State(new int[]{7,-179,5,-93}); states[632] = new State(-480); states[633] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,91,-473,10,-473},new int[]{-234,634,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[634] = new State(new int[]{91,635,10,119}); states[635] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,636,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[636] = new State(-531); states[637] = new State(-574); states[638] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,-621,85,-621,10,-621,91,-621,94,-621,29,-621,97,-621,28,-621,93,-621,12,-621,9,-621,92,-621,2,-621,78,-621,77,-621,76,-621,75,-621,6,-621},new int[]{-102,639,-93,643,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,642,-250,594}); states[639] = new State(new int[]{5,640,85,-623,10,-623,91,-623,94,-623,29,-623,97,-623,28,-623,93,-623,12,-623,9,-623,92,-623,80,-623,79,-623,2,-623,78,-623,77,-623,76,-623,75,-623,6,-623}); states[640] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-93,641,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,642,-250,594}); states[641] = new State(new int[]{109,301,108,302,121,303,122,304,119,305,85,-625,10,-625,91,-625,94,-625,29,-625,97,-625,28,-625,93,-625,12,-625,9,-625,92,-625,80,-625,79,-625,2,-625,78,-625,77,-625,76,-625,75,-625,6,-625},new int[]{-181,137}); states[642] = new State(-642); states[643] = new State(new int[]{109,301,108,302,121,303,122,304,119,305,5,-620,85,-620,10,-620,91,-620,94,-620,29,-620,97,-620,28,-620,93,-620,12,-620,9,-620,92,-620,80,-620,79,-620,2,-620,78,-620,77,-620,76,-620,75,-620,6,-620},new int[]{-181,137}); states[644] = new State(-481); states[645] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,646,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[646] = new State(new int[]{13,128,92,935,134,-534,136,-534,79,-534,80,-534,74,-534,72,-534,41,-534,38,-534,8,-534,17,-534,18,-534,137,-534,139,-534,138,-534,147,-534,149,-534,148,-534,53,-534,84,-534,36,-534,21,-534,90,-534,50,-534,31,-534,51,-534,95,-534,43,-534,32,-534,49,-534,56,-534,71,-534,69,-534,34,-534,85,-534,10,-534,91,-534,94,-534,29,-534,97,-534,28,-534,93,-534,12,-534,9,-534,2,-534,78,-534,77,-534,76,-534,75,-534},new int[]{-274,647}); states[647] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,648,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[648] = new State(-532); states[649] = new State(-482); states[650] = new State(new int[]{49,942,136,-543,79,-543,80,-543,74,-543,72,-543},new int[]{-17,651}); states[651] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,652,-134,24,-135,27}); states[652] = new State(new int[]{103,938,5,939},new int[]{-268,653}); states[653] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,654,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[654] = new State(new int[]{13,128,67,936,68,937},new int[]{-104,655}); states[655] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,656,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[656] = new State(new int[]{13,128,92,935,134,-534,136,-534,79,-534,80,-534,74,-534,72,-534,41,-534,38,-534,8,-534,17,-534,18,-534,137,-534,139,-534,138,-534,147,-534,149,-534,148,-534,53,-534,84,-534,36,-534,21,-534,90,-534,50,-534,31,-534,51,-534,95,-534,43,-534,32,-534,49,-534,56,-534,71,-534,69,-534,34,-534,85,-534,10,-534,91,-534,94,-534,29,-534,97,-534,28,-534,93,-534,12,-534,9,-534,2,-534,78,-534,77,-534,76,-534,75,-534},new int[]{-274,657}); states[657] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,658,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[658] = new State(-541); states[659] = new State(-483); states[660] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815},new int[]{-65,661,-82,588,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[661] = new State(new int[]{92,662,93,340}); states[662] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,663,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[663] = new State(-548); states[664] = new State(-484); states[665] = new State(-485); states[666] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,94,-473,29,-473},new int[]{-234,667,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[667] = new State(new int[]{10,119,94,669,29,861},new int[]{-272,668}); states[668] = new State(-550); states[669] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473},new int[]{-234,670,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[670] = new State(new int[]{85,671,10,119}); states[671] = new State(-551); states[672] = new State(-486); states[673] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638,85,-565,10,-565,91,-565,94,-565,29,-565,97,-565,28,-565,93,-565,12,-565,9,-565,92,-565,2,-565,78,-565,77,-565,76,-565,75,-565},new int[]{-81,674,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[674] = new State(-566); states[675] = new State(-487); states[676] = new State(new int[]{49,846,136,23,79,25,80,26,74,28,72,29},new int[]{-130,677,-134,24,-135,27}); states[677] = new State(new int[]{5,844,130,-540},new int[]{-256,678}); states[678] = new State(new int[]{130,679}); states[679] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,680,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[680] = new State(new int[]{92,681,13,128}); states[681] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,682,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[682] = new State(-536); states[683] = new State(-488); states[684] = new State(new int[]{8,686,136,23,79,25,80,26,74,28,72,29},new int[]{-292,685,-141,694,-130,693,-134,24,-135,27}); states[685] = new State(-498); states[686] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,687,-134,24,-135,27}); states[687] = new State(new int[]{93,688}); states[688] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-141,689,-130,693,-134,24,-135,27}); states[689] = new State(new int[]{9,690,93,397}); states[690] = new State(new int[]{103,691}); states[691] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,692,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[692] = new State(-500); states[693] = new State(-331); states[694] = new State(new int[]{5,695,93,397,103,842}); states[695] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,696,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[696] = new State(new int[]{103,840,113,841,85,-393,10,-393,91,-393,94,-393,29,-393,97,-393,28,-393,93,-393,12,-393,9,-393,92,-393,80,-393,79,-393,2,-393,78,-393,77,-393,76,-393,75,-393},new int[]{-317,697}); states[697] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,767,128,420,109,332,108,333,59,158,33,800,40,815},new int[]{-80,698,-79,699,-78,239,-83,240,-75,191,-12,214,-10,224,-13,201,-130,700,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-87,795,-225,796,-52,788,-303,799}); states[698] = new State(-395); states[699] = new State(-396); states[700] = new State(new int[]{120,701,4,-156,7,-156,135,-156,8,-156,11,-156,112,-156,129,-156,131,-156,111,-156,110,-156,124,-156,125,-156,126,-156,127,-156,123,-156,109,-156,108,-156,121,-156,122,-156,113,-156,118,-156,116,-156,114,-156,117,-156,115,-156,130,-156,13,-156,85,-156,10,-156,91,-156,94,-156,29,-156,97,-156,28,-156,93,-156,12,-156,9,-156,92,-156,80,-156,79,-156,2,-156,78,-156,77,-156,76,-156,75,-156}); states[701] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,702,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[702] = new State(-398); states[703] = new State(-875); states[704] = new State(-876); states[705] = new State(-877); states[706] = new State(-878); states[707] = new State(-879); states[708] = new State(-880); states[709] = new State(-881); states[710] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,711,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[711] = new State(new int[]{92,712,13,128}); states[712] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,713,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[713] = new State(-535); states[714] = new State(-489); states[715] = new State(-569); states[716] = new State(-570); states[717] = new State(-490); states[718] = new State(-491); states[719] = new State(new int[]{70,721,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,720,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[720] = new State(new int[]{13,128,85,-496,10,-496,91,-496,94,-496,29,-496,97,-496,28,-496,93,-496,12,-496,9,-496,92,-496,80,-496,79,-496,2,-496,78,-496,77,-496,76,-496,75,-496}); states[721] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,722,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[722] = new State(new int[]{13,128,85,-497,10,-497,91,-497,94,-497,29,-497,97,-497,28,-497,93,-497,12,-497,9,-497,92,-497,80,-497,79,-497,2,-497,78,-497,77,-497,76,-497,75,-497}); states[723] = new State(-492); states[724] = new State(-493); states[725] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,726,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[726] = new State(new int[]{92,727,13,128}); states[727] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,728,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[728] = new State(-495); states[729] = new State(-494); states[730] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,731,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[731] = new State(new int[]{51,732,13,128}); states[732] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-322,733,-321,764,-319,740,-266,747,-164,162,-130,196,-134,24,-135,27}); states[733] = new State(new int[]{10,736,28,626,85,-529},new int[]{-235,734}); states[734] = new State(new int[]{85,735}); states[735] = new State(-514); states[736] = new State(new int[]{28,626,136,23,79,25,80,26,74,28,72,29,85,-529},new int[]{-235,737,-321,739,-319,740,-266,747,-164,162,-130,196,-134,24,-135,27}); states[737] = new State(new int[]{85,738}); states[738] = new State(-515); states[739] = new State(-517); states[740] = new State(new int[]{35,741,5,745}); states[741] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,742,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[742] = new State(new int[]{5,743,13,128}); states[743] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,28,-473,85,-473},new int[]{-243,744,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[744] = new State(-518); states[745] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,28,-473,85,-473},new int[]{-243,746,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[746] = new State(-519); states[747] = new State(new int[]{8,748}); states[748] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,756},new int[]{-326,749,-324,763,-130,753,-134,24,-135,27,-319,760,-266,747,-164,162}); states[749] = new State(new int[]{9,750,10,751,93,761}); states[750] = new State(-605); states[751] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,756},new int[]{-324,752,-130,753,-134,24,-135,27,-319,760,-266,747,-164,162}); states[752] = new State(-607); states[753] = new State(new int[]{5,754,9,-616,10,-616,93,-616,7,-246,4,-246,116,-246,8,-246}); states[754] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,755,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[755] = new State(-615); states[756] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,757,-134,24,-135,27}); states[757] = new State(new int[]{5,758,9,-618,10,-618,93,-618}); states[758] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,759,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[759] = new State(-617); states[760] = new State(-619); states[761] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,49,756},new int[]{-324,762,-130,753,-134,24,-135,27,-319,760,-266,747,-164,162}); states[762] = new State(-608); states[763] = new State(-606); states[764] = new State(-516); states[765] = new State(-882); states[766] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,720,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[767] = new State(new int[]{9,779,136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,784,128,420,109,332,108,333,59,158},new int[]{-83,768,-61,769,-225,773,-87,775,-227,777,-75,191,-12,214,-10,224,-13,201,-130,783,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-60,236,-79,787,-78,239,-52,788,-226,789,-228,798,-119,792}); states[768] = new State(new int[]{9,419,13,187,93,-180}); states[769] = new State(new int[]{9,770}); states[770] = new State(new int[]{120,771,85,-183,10,-183,91,-183,94,-183,29,-183,97,-183,28,-183,93,-183,12,-183,9,-183,92,-183,80,-183,79,-183,2,-183,78,-183,77,-183,76,-183,75,-183}); states[771] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,772,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[772] = new State(-400); states[773] = new State(new int[]{9,774,93,-182}); states[774] = new State(-184); states[775] = new State(new int[]{9,776,93,-181}); states[776] = new State(-185); states[777] = new State(new int[]{9,778}); states[778] = new State(-190); states[779] = new State(new int[]{5,399,120,-868},new int[]{-304,780}); states[780] = new State(new int[]{120,781}); states[781] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,782,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[782] = new State(-399); states[783] = new State(new int[]{4,-156,7,-156,135,-156,8,-156,11,-156,112,-156,129,-156,131,-156,111,-156,110,-156,124,-156,125,-156,126,-156,127,-156,123,-156,109,-156,108,-156,121,-156,122,-156,113,-156,118,-156,116,-156,114,-156,117,-156,115,-156,130,-156,9,-156,13,-156,93,-156,5,-196}); states[784] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,784,128,420,109,332,108,333,59,158,9,-186},new int[]{-83,768,-61,785,-225,773,-87,775,-227,777,-75,191,-12,214,-10,224,-13,201,-130,783,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-60,236,-79,787,-78,239,-52,788,-226,789,-228,798,-119,792}); states[785] = new State(new int[]{9,786}); states[786] = new State(-183); states[787] = new State(-188); states[788] = new State(-402); states[789] = new State(new int[]{10,790,9,-191}); states[790] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,9,-192},new int[]{-228,791,-119,792,-130,797,-134,24,-135,27}); states[791] = new State(-194); states[792] = new State(new int[]{5,793}); states[793] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,784,128,420,109,332,108,333},new int[]{-78,794,-83,240,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-87,795,-225,796}); states[794] = new State(-195); states[795] = new State(-181); states[796] = new State(-182); states[797] = new State(-196); states[798] = new State(-193); states[799] = new State(-397); states[800] = new State(new int[]{8,804,5,399,120,-868},new int[]{-304,801}); states[801] = new State(new int[]{120,802}); states[802] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,803,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[803] = new State(-859); states[804] = new State(new int[]{9,805,136,23,79,25,80,26,74,28,72,29},new int[]{-306,809,-307,814,-141,395,-130,693,-134,24,-135,27}); states[805] = new State(new int[]{5,399,120,-868},new int[]{-304,806}); states[806] = new State(new int[]{120,807}); states[807] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,808,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[808] = new State(-860); states[809] = new State(new int[]{9,810,10,393}); states[810] = new State(new int[]{5,399,120,-868},new int[]{-304,811}); states[811] = new State(new int[]{120,812}); states[812] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,813,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[813] = new State(-861); states[814] = new State(-865); states[815] = new State(new int[]{120,816,8,832}); states[816] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,819,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766,43,673},new int[]{-309,817,-195,818,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-237,820,-136,821,-298,822,-229,823,-107,824,-106,825,-31,826,-284,827,-152,828,-109,829,-230,830,-4,831}); states[817] = new State(-862); states[818] = new State(-883); states[819] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,383,-91,385,-99,480,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[820] = new State(-884); states[821] = new State(-885); states[822] = new State(-886); states[823] = new State(-887); states[824] = new State(-888); states[825] = new State(-889); states[826] = new State(-890); states[827] = new State(-891); states[828] = new State(-892); states[829] = new State(-893); states[830] = new State(-894); states[831] = new State(-895); states[832] = new State(new int[]{9,833,136,23,79,25,80,26,74,28,72,29},new int[]{-306,836,-307,814,-141,395,-130,693,-134,24,-135,27}); states[833] = new State(new int[]{120,834}); states[834] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,819,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766,43,673},new int[]{-309,835,-195,818,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-237,820,-136,821,-298,822,-229,823,-107,824,-106,825,-31,826,-284,827,-152,828,-109,829,-230,830,-4,831}); states[835] = new State(-863); states[836] = new State(new int[]{9,837,10,393}); states[837] = new State(new int[]{120,838}); states[838] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,819,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766,43,673},new int[]{-309,839,-195,818,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-237,820,-136,821,-298,822,-229,823,-107,824,-106,825,-31,826,-284,827,-152,828,-109,829,-230,830,-4,831}); states[839] = new State(-864); states[840] = new State(-391); states[841] = new State(-392); states[842] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,843,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[843] = new State(-394); states[844] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,845,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[845] = new State(-539); states[846] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,847,-134,24,-135,27}); states[847] = new State(new int[]{5,848,130,854}); states[848] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,849,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[849] = new State(new int[]{130,850}); states[850] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,851,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[851] = new State(new int[]{92,852,13,128}); states[852] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,853,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[853] = new State(-537); states[854] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,855,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[855] = new State(new int[]{92,856,13,128}); states[856] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473,28,-473,93,-473,12,-473,9,-473,92,-473,2,-473,78,-473,77,-473,76,-473,75,-473},new int[]{-243,857,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[857] = new State(-538); states[858] = new State(new int[]{5,859}); states[859] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473,91,-473,94,-473,29,-473,97,-473},new int[]{-244,860,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[860] = new State(-472); states[861] = new State(new int[]{73,869,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,85,-473},new int[]{-55,862,-58,864,-57,881,-234,882,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[862] = new State(new int[]{85,863}); states[863] = new State(-552); states[864] = new State(new int[]{10,866,28,879,85,-558},new int[]{-236,865}); states[865] = new State(-553); states[866] = new State(new int[]{73,869,28,879,85,-558},new int[]{-57,867,-236,868}); states[867] = new State(-557); states[868] = new State(-554); states[869] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-59,870,-163,873,-164,874,-130,875,-134,24,-135,27,-123,876}); states[870] = new State(new int[]{92,871}); states[871] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,28,-473,85,-473},new int[]{-243,872,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[872] = new State(-560); states[873] = new State(-561); states[874] = new State(new int[]{7,163,92,-563}); states[875] = new State(new int[]{7,-246,92,-246,5,-564}); states[876] = new State(new int[]{5,877}); states[877] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-163,878,-164,874,-130,196,-134,24,-135,27}); states[878] = new State(-562); states[879] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,85,-473},new int[]{-234,880,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[880] = new State(new int[]{10,119,85,-559}); states[881] = new State(-556); states[882] = new State(new int[]{10,119,85,-555}); states[883] = new State(new int[]{9,910,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,383,-91,884,-130,914,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[884] = new State(new int[]{93,885,13,128,9,-573}); states[885] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-73,886,-91,909,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[886] = new State(new int[]{93,907,5,399,10,-868,9,-868},new int[]{-304,887}); states[887] = new State(new int[]{10,391,9,-856},new int[]{-310,888}); states[888] = new State(new int[]{9,889}); states[889] = new State(new int[]{5,894,7,-662,131,-662,129,-662,111,-662,110,-662,124,-662,125,-662,126,-662,127,-662,123,-662,109,-662,108,-662,121,-662,122,-662,119,-662,113,-662,118,-662,116,-662,114,-662,117,-662,115,-662,130,-662,15,-662,13,-662,85,-662,10,-662,91,-662,94,-662,29,-662,97,-662,28,-662,93,-662,12,-662,9,-662,92,-662,80,-662,79,-662,2,-662,78,-662,77,-662,76,-662,75,-662,112,-662,120,-870},new int[]{-314,890,-305,891}); states[890] = new State(-854); states[891] = new State(new int[]{120,892}); states[892] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,893,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[893] = new State(-858); states[894] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,898,135,437,20,442,44,450,45,512,30,516,70,520,61,523},new int[]{-259,895,-255,896,-85,175,-94,265,-95,266,-164,897,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,903,-231,904,-263,905,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-283,906}); states[895] = new State(-871); states[896] = new State(-466); states[897] = new State(new int[]{7,163,116,168,8,-241,111,-241,110,-241,124,-241,125,-241,126,-241,127,-241,123,-241,6,-241,109,-241,108,-241,121,-241,122,-241,120,-241},new int[]{-281,583}); states[898] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-74,899,-72,282,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[899] = new State(new int[]{9,900,93,901}); states[900] = new State(-236); states[901] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-72,902,-258,285,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[902] = new State(-249); states[903] = new State(-467); states[904] = new State(-468); states[905] = new State(-469); states[906] = new State(-470); states[907] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,908,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[908] = new State(new int[]{13,128,93,-112,5,-112,10,-112,9,-112}); states[909] = new State(new int[]{13,128,93,-111,5,-111,10,-111,9,-111}); states[910] = new State(new int[]{5,894,120,-870},new int[]{-305,911}); states[911] = new State(new int[]{120,912}); states[912] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,913,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[913] = new State(-850); states[914] = new State(new int[]{5,915,10,927,11,-686,16,-686,8,-686,7,-686,135,-686,4,-686,14,-686,131,-686,129,-686,111,-686,110,-686,124,-686,125,-686,126,-686,127,-686,123,-686,109,-686,108,-686,121,-686,122,-686,119,-686,113,-686,118,-686,116,-686,114,-686,117,-686,115,-686,130,-686,15,-686,93,-686,13,-686,9,-686,112,-686}); states[915] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,916,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[916] = new State(new int[]{9,917,10,921}); states[917] = new State(new int[]{5,894,120,-870},new int[]{-305,918}); states[918] = new State(new int[]{120,919}); states[919] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,920,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[920] = new State(-851); states[921] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-306,922,-307,814,-141,395,-130,693,-134,24,-135,27}); states[922] = new State(new int[]{9,923,10,393}); states[923] = new State(new int[]{5,894,120,-870},new int[]{-305,924}); states[924] = new State(new int[]{120,925}); states[925] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,926,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[926] = new State(-853); states[927] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-306,928,-307,814,-141,395,-130,693,-134,24,-135,27}); states[928] = new State(new int[]{9,929,10,393}); states[929] = new State(new int[]{5,894,120,-870},new int[]{-305,930}); states[930] = new State(new int[]{120,931}); states[931] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,84,116,36,598,50,645,90,633,31,650,32,676,21,616,95,666,56,710,71,766},new int[]{-308,932,-91,592,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-237,596,-136,597,-298,703,-229,704,-107,705,-106,706,-31,707,-284,708,-152,709,-109,765}); states[932] = new State(-852); states[933] = new State(-572); states[934] = new State(-855); states[935] = new State(-533); states[936] = new State(-546); states[937] = new State(-547); states[938] = new State(-544); states[939] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-164,940,-130,196,-134,24,-135,27}); states[940] = new State(new int[]{103,941,7,163}); states[941] = new State(-545); states[942] = new State(-542); states[943] = new State(new int[]{5,944,93,946}); states[944] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473,28,-473,85,-473},new int[]{-243,945,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[945] = new State(-525); states[946] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-98,947,-86,948,-83,186,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[947] = new State(-527); states[948] = new State(-528); states[949] = new State(-526); states[950] = new State(new int[]{85,951}); states[951] = new State(-522); states[952] = new State(-523); states[953] = new State(new int[]{5,954,7,-246,8,-246,116,-246,12,-246,93,-246}); states[954] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-9,955,-164,581,-130,196,-134,24,-135,27,-283,956}); states[955] = new State(-205); states[956] = new State(new int[]{8,584,12,-599,93,-599},new int[]{-64,957}); states[957] = new State(-681); states[958] = new State(-202); states[959] = new State(-198); states[960] = new State(-452); states[961] = new State(-614); states[962] = new State(new int[]{8,963}); states[963] = new State(new int[]{49,507,136,23,79,25,80,26,74,28,72,29},new int[]{-325,964,-323,968,-318,961,-266,962,-164,162,-130,196,-134,24,-135,27}); states[964] = new State(new int[]{9,965,10,505,93,966}); states[965] = new State(-604); states[966] = new State(new int[]{49,507,136,23,79,25,80,26,74,28,72,29},new int[]{-323,967,-318,961,-266,962,-164,162,-130,196,-134,24,-135,27}); states[967] = new State(-611); states[968] = new State(-609); states[969] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-99,970,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605}); states[970] = new State(new int[]{11,337,16,344,8,971,7,974,135,976,4,977,9,-504,93,-504}); states[971] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815,9,-701},new int[]{-62,972,-65,587,-82,588,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[972] = new State(new int[]{9,973}); states[973] = new State(-695); states[974] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,350},new int[]{-131,975,-130,491,-134,24,-135,27,-275,492,-133,31,-175,493}); states[975] = new State(-696); states[976] = new State(-698); states[977] = new State(new int[]{116,168},new int[]{-281,978}); states[978] = new State(-699); states[979] = new State(new int[]{11,337,16,344,8,971,7,974,135,976,4,977,9,-503,93,-503}); states[980] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,38,380,8,382,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156},new int[]{-99,981,-103,982,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605}); states[981] = new State(new int[]{11,337,16,344,8,971,7,974,135,976,4,977,14,980,103,-673,104,-673,105,-673,106,-673,107,-673,85,-673,10,-673,91,-673,94,-673,29,-673,97,-673,131,-673,129,-673,111,-673,110,-673,124,-673,125,-673,126,-673,127,-673,123,-673,5,-673,109,-673,108,-673,121,-673,122,-673,119,-673,113,-673,118,-673,116,-673,114,-673,117,-673,115,-673,130,-673,15,-673,13,-673,28,-673,93,-673,12,-673,9,-673,92,-673,80,-673,79,-673,2,-673,78,-673,77,-673,76,-673,75,-673,112,-673,6,-673,47,-673,54,-673,134,-673,136,-673,74,-673,72,-673,41,-673,38,-673,17,-673,18,-673,137,-673,139,-673,138,-673,147,-673,149,-673,148,-673,53,-673,84,-673,36,-673,21,-673,90,-673,50,-673,31,-673,51,-673,95,-673,43,-673,32,-673,49,-673,56,-673,71,-673,69,-673,34,-673,67,-673,68,-673}); states[982] = new State(-674); states[983] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,984,-134,24,-135,27}); states[984] = new State(new int[]{93,985}); states[985] = new State(new int[]{49,993},new int[]{-316,986}); states[986] = new State(new int[]{9,987,93,990}); states[987] = new State(new int[]{103,988}); states[988] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,989,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[989] = new State(-499); states[990] = new State(new int[]{49,991}); states[991] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,992,-134,24,-135,27}); states[992] = new State(-506); states[993] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,994,-134,24,-135,27}); states[994] = new State(-505); states[995] = new State(new int[]{140,999,142,1000,143,1001,144,1002,146,1003,145,1004,100,-715,84,-715,55,-715,25,-715,63,-715,46,-715,49,-715,58,-715,11,-715,24,-715,22,-715,40,-715,33,-715,26,-715,27,-715,42,-715,85,-715,78,-715,77,-715,76,-715,75,-715,19,-715,141,-715,37,-715},new int[]{-190,996,-193,1005}); states[996] = new State(new int[]{10,997}); states[997] = new State(new int[]{140,999,142,1000,143,1001,144,1002,146,1003,145,1004,100,-716,84,-716,55,-716,25,-716,63,-716,46,-716,49,-716,58,-716,11,-716,24,-716,22,-716,40,-716,33,-716,26,-716,27,-716,42,-716,85,-716,78,-716,77,-716,76,-716,75,-716,19,-716,141,-716,37,-716},new int[]{-193,998}); states[998] = new State(-720); states[999] = new State(-730); states[1000] = new State(-731); states[1001] = new State(-732); states[1002] = new State(-733); states[1003] = new State(-734); states[1004] = new State(-735); states[1005] = new State(-719); states[1006] = new State(-362); states[1007] = new State(-426); states[1008] = new State(-427); states[1009] = new State(new int[]{8,-432,103,-432,10,-432,5,-432,7,-429}); states[1010] = new State(new int[]{116,1012,8,-435,103,-435,10,-435,7,-435,5,-435},new int[]{-138,1011}); states[1011] = new State(-436); states[1012] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-141,1013,-130,693,-134,24,-135,27}); states[1013] = new State(new int[]{114,1014,93,397}); states[1014] = new State(-309); states[1015] = new State(-437); states[1016] = new State(new int[]{116,1012,8,-433,103,-433,10,-433,5,-433},new int[]{-138,1017}); states[1017] = new State(-434); states[1018] = new State(new int[]{7,1019}); states[1019] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350},new int[]{-125,1020,-132,1021,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016}); states[1020] = new State(-428); states[1021] = new State(-431); states[1022] = new State(-430); states[1023] = new State(-419); states[1024] = new State(-370); states[1025] = new State(new int[]{100,1198,11,-356,24,-356,22,-356,40,-356,33,-356,26,-356,27,-356,42,-356,85,-356,78,-356,77,-356,76,-356,75,-356,55,-63,25,-63,63,-63,46,-63,49,-63,58,-63,84,-63},new int[]{-160,1026,-39,1027,-35,1030,-56,1197}); states[1026] = new State(-420); states[1027] = new State(new int[]{84,116},new int[]{-237,1028}); states[1028] = new State(new int[]{10,1029}); states[1029] = new State(-447); states[1030] = new State(new int[]{55,1033,25,1054,63,1058,46,1247,49,1253,58,1263,84,-62},new int[]{-41,1031,-151,1032,-25,1039,-47,1056,-271,1060,-290,1249}); states[1031] = new State(-64); states[1032] = new State(-80); states[1033] = new State(new int[]{147,610,148,611,136,23,79,25,80,26,74,28,72,29},new int[]{-139,1034,-126,1038,-130,612,-134,24,-135,27}); states[1034] = new State(new int[]{10,1035,93,1036}); states[1035] = new State(-89); states[1036] = new State(new int[]{147,610,148,611,136,23,79,25,80,26,74,28,72,29},new int[]{-126,1037,-130,612,-134,24,-135,27}); states[1037] = new State(-91); states[1038] = new State(-90); states[1039] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-81,25,-81,63,-81,46,-81,49,-81,58,-81,84,-81},new int[]{-23,1040,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1040] = new State(-96); states[1041] = new State(new int[]{10,1042}); states[1042] = new State(-105); states[1043] = new State(new int[]{113,1044,5,1049}); states[1044] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,1047,128,420,109,332,108,333},new int[]{-97,1045,-83,1046,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-87,1048}); states[1045] = new State(-106); states[1046] = new State(new int[]{13,187,10,-108,85,-108,78,-108,77,-108,76,-108,75,-108}); states[1047] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,784,128,420,109,332,108,333,59,158,9,-186},new int[]{-83,768,-61,785,-225,773,-87,775,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-60,236,-79,787,-78,239,-52,788}); states[1048] = new State(-109); states[1049] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,1050,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1050] = new State(new int[]{113,1051}); states[1051] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,784,128,420,109,332,108,333},new int[]{-78,1052,-83,240,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427,-87,795,-225,796}); states[1052] = new State(-107); states[1053] = new State(-110); states[1054] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-23,1055,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1055] = new State(-95); states[1056] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-82,25,-82,63,-82,46,-82,49,-82,58,-82,84,-82},new int[]{-23,1057,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1057] = new State(-98); states[1058] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-23,1059,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1059] = new State(-97); states[1060] = new State(new int[]{11,575,55,-83,25,-83,63,-83,46,-83,49,-83,58,-83,84,-83,136,-200,79,-200,80,-200,74,-200,72,-200},new int[]{-44,1061,-6,1062,-232,959}); states[1061] = new State(-100); states[1062] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,11,575},new int[]{-45,1063,-232,466,-127,1064,-130,1239,-134,24,-135,27,-128,1244}); states[1063] = new State(-197); states[1064] = new State(new int[]{113,1065}); states[1065] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543,65,1233,66,1234,140,1235,23,1236,24,1237,22,-291,39,-291,60,-291},new int[]{-269,1066,-258,1068,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547,-26,1069,-19,1070,-20,1231,-18,1238}); states[1066] = new State(new int[]{10,1067}); states[1067] = new State(-206); states[1068] = new State(-211); states[1069] = new State(-212); states[1070] = new State(new int[]{22,1225,39,1226,60,1227},new int[]{-273,1071}); states[1071] = new State(new int[]{8,1112,19,-303,11,-303,85,-303,78,-303,77,-303,76,-303,75,-303,25,-303,136,-303,79,-303,80,-303,74,-303,72,-303,58,-303,24,-303,22,-303,40,-303,33,-303,26,-303,27,-303,42,-303,10,-303},new int[]{-167,1072}); states[1072] = new State(new int[]{19,1103,11,-310,85,-310,78,-310,77,-310,76,-310,75,-310,25,-310,136,-310,79,-310,80,-310,74,-310,72,-310,58,-310,24,-310,22,-310,40,-310,33,-310,26,-310,27,-310,42,-310,10,-310},new int[]{-297,1073,-296,1101,-295,1123}); states[1073] = new State(new int[]{11,575,10,-301,85,-327,78,-327,77,-327,76,-327,75,-327,25,-200,136,-200,79,-200,80,-200,74,-200,72,-200,58,-200,24,-200,22,-200,40,-200,33,-200,26,-200,27,-200,42,-200},new int[]{-22,1074,-21,1075,-28,1081,-30,457,-40,1082,-6,1083,-232,959,-29,1222,-49,1224,-48,463,-50,1223}); states[1074] = new State(-284); states[1075] = new State(new int[]{85,1076,78,1077,77,1078,76,1079,75,1080},new int[]{-7,455}); states[1076] = new State(-302); states[1077] = new State(-323); states[1078] = new State(-324); states[1079] = new State(-325); states[1080] = new State(-326); states[1081] = new State(-321); states[1082] = new State(-335); states[1083] = new State(new int[]{25,1085,136,23,79,25,80,26,74,28,72,29,58,1089,24,1192,22,1193,11,575,40,1096,33,1131,26,1207,27,1214,42,1150},new int[]{-46,1084,-232,466,-205,465,-202,467,-240,468,-293,1087,-292,1088,-141,694,-130,693,-134,24,-135,27,-3,1093,-213,1194,-211,1025,-208,1095,-212,1130,-210,1195,-198,1218,-199,1219,-201,1220,-241,1221}); states[1084] = new State(-337); states[1085] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-24,1086,-124,1043,-130,1053,-134,24,-135,27}); states[1086] = new State(-342); states[1087] = new State(-343); states[1088] = new State(-347); states[1089] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-141,1090,-130,693,-134,24,-135,27}); states[1090] = new State(new int[]{5,1091,93,397}); states[1091] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,1092,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1092] = new State(-348); states[1093] = new State(new int[]{26,471,136,23,79,25,80,26,74,28,72,29,58,1089,40,1096,33,1131,42,1150},new int[]{-293,1094,-213,470,-199,1023,-241,1024,-292,1088,-141,694,-130,693,-134,24,-135,27,-211,1025,-208,1095,-212,1130}); states[1094] = new State(-344); states[1095] = new State(-357); states[1096] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350},new int[]{-154,1097,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1097] = new State(new int[]{8,530,10,-449,103,-449},new int[]{-111,1098}); states[1098] = new State(new int[]{10,1128,103,-717},new int[]{-191,1099,-192,1124}); states[1099] = new State(new int[]{19,1103,100,-310,84,-310,55,-310,25,-310,63,-310,46,-310,49,-310,58,-310,11,-310,24,-310,22,-310,40,-310,33,-310,26,-310,27,-310,42,-310,85,-310,78,-310,77,-310,76,-310,75,-310,141,-310,37,-310},new int[]{-297,1100,-296,1101,-295,1123}); states[1100] = new State(-438); states[1101] = new State(new int[]{19,1103,11,-311,85,-311,78,-311,77,-311,76,-311,75,-311,25,-311,136,-311,79,-311,80,-311,74,-311,72,-311,58,-311,24,-311,22,-311,40,-311,33,-311,26,-311,27,-311,42,-311,10,-311,100,-311,84,-311,55,-311,63,-311,46,-311,49,-311,141,-311,37,-311},new int[]{-295,1102}); states[1102] = new State(-313); states[1103] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-141,1104,-130,693,-134,24,-135,27}); states[1104] = new State(new int[]{5,1105,93,397}); states[1105] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,1111,45,512,30,516,70,520,61,523,40,528,33,543,22,1120,26,1121},new int[]{-270,1106,-267,1122,-258,1110,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1106] = new State(new int[]{10,1107,93,1108}); states[1107] = new State(-314); states[1108] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,1111,45,512,30,516,70,520,61,523,40,528,33,543,22,1120,26,1121},new int[]{-267,1109,-258,1110,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1109] = new State(-316); states[1110] = new State(-317); states[1111] = new State(new int[]{8,1112,10,-319,93,-319,19,-303,11,-303,85,-303,78,-303,77,-303,76,-303,75,-303,25,-303,136,-303,79,-303,80,-303,74,-303,72,-303,58,-303,24,-303,22,-303,40,-303,33,-303,26,-303,27,-303,42,-303},new int[]{-167,451}); states[1112] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-166,1113,-165,1119,-164,1117,-130,196,-134,24,-135,27,-283,1118}); states[1113] = new State(new int[]{9,1114,93,1115}); states[1114] = new State(-304); states[1115] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-165,1116,-164,1117,-130,196,-134,24,-135,27,-283,1118}); states[1116] = new State(-306); states[1117] = new State(new int[]{7,163,116,168,9,-307,93,-307},new int[]{-281,583}); states[1118] = new State(-308); states[1119] = new State(-305); states[1120] = new State(-318); states[1121] = new State(-320); states[1122] = new State(-315); states[1123] = new State(-312); states[1124] = new State(new int[]{103,1125}); states[1125] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,1126,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[1126] = new State(new int[]{10,1127}); states[1127] = new State(-423); states[1128] = new State(new int[]{140,999,142,1000,143,1001,144,1002,146,1003,145,1004,19,-715,100,-715,84,-715,55,-715,25,-715,63,-715,46,-715,49,-715,58,-715,11,-715,24,-715,22,-715,40,-715,33,-715,26,-715,27,-715,42,-715,85,-715,78,-715,77,-715,76,-715,75,-715,141,-715},new int[]{-190,1129,-193,1005}); states[1129] = new State(new int[]{10,997,103,-718}); states[1130] = new State(-358); states[1131] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350},new int[]{-153,1132,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1132] = new State(new int[]{8,530,5,-449,10,-449,103,-449},new int[]{-111,1133}); states[1133] = new State(new int[]{5,1136,10,1128,103,-717},new int[]{-191,1134,-192,1146}); states[1134] = new State(new int[]{19,1103,100,-310,84,-310,55,-310,25,-310,63,-310,46,-310,49,-310,58,-310,11,-310,24,-310,22,-310,40,-310,33,-310,26,-310,27,-310,42,-310,85,-310,78,-310,77,-310,76,-310,75,-310,141,-310,37,-310},new int[]{-297,1135,-296,1101,-295,1123}); states[1135] = new State(-439); states[1136] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,1137,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1137] = new State(new int[]{10,1128,103,-717},new int[]{-191,1138,-192,1140}); states[1138] = new State(new int[]{19,1103,100,-310,84,-310,55,-310,25,-310,63,-310,46,-310,49,-310,58,-310,11,-310,24,-310,22,-310,40,-310,33,-310,26,-310,27,-310,42,-310,85,-310,78,-310,77,-310,76,-310,75,-310,141,-310,37,-310},new int[]{-297,1139,-296,1101,-295,1123}); states[1139] = new State(-440); states[1140] = new State(new int[]{103,1141}); states[1141] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,33,800,40,815},new int[]{-92,1142,-91,1144,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-302,1145,-303,934}); states[1142] = new State(new int[]{10,1143}); states[1143] = new State(-421); states[1144] = new State(new int[]{13,128,10,-577}); states[1145] = new State(-578); states[1146] = new State(new int[]{103,1147}); states[1147] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,33,800,40,815},new int[]{-92,1148,-91,1144,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-302,1145,-303,934}); states[1148] = new State(new int[]{10,1149}); states[1149] = new State(-422); states[1150] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35},new int[]{-156,1151,-130,1190,-134,24,-135,27,-133,1191}); states[1151] = new State(new int[]{7,1175,11,1181,5,-376},new int[]{-216,1152,-221,1178}); states[1152] = new State(new int[]{79,1164,80,1170,10,-383},new int[]{-186,1153}); states[1153] = new State(new int[]{10,1154}); states[1154] = new State(new int[]{59,1159,145,1161,144,1162,140,1163,11,-373,24,-373,22,-373,40,-373,33,-373,26,-373,27,-373,42,-373,85,-373,78,-373,77,-373,76,-373,75,-373},new int[]{-189,1155,-194,1156}); states[1155] = new State(-371); states[1156] = new State(new int[]{10,1157}); states[1157] = new State(new int[]{59,1159,11,-373,24,-373,22,-373,40,-373,33,-373,26,-373,27,-373,42,-373,85,-373,78,-373,77,-373,76,-373,75,-373},new int[]{-189,1158}); states[1158] = new State(-372); states[1159] = new State(new int[]{10,1160}); states[1160] = new State(-374); states[1161] = new State(-736); states[1162] = new State(-737); states[1163] = new State(-738); states[1164] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815,10,-382},new int[]{-101,1165,-82,1169,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[1165] = new State(new int[]{80,1167,10,-386},new int[]{-187,1166}); states[1166] = new State(-384); states[1167] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,1168,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[1168] = new State(-387); states[1169] = new State(-381); states[1170] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,1171,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[1171] = new State(new int[]{79,1173,10,-388},new int[]{-188,1172}); states[1172] = new State(-385); states[1173] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,5,638,33,800,40,815,10,-382},new int[]{-101,1174,-82,1169,-81,126,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-302,933,-303,934}); states[1174] = new State(-389); states[1175] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35},new int[]{-130,1176,-133,1177,-134,24,-135,27}); states[1176] = new State(-366); states[1177] = new State(-367); states[1178] = new State(new int[]{5,1179}); states[1179] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,1180,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1180] = new State(-375); states[1181] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-220,1182,-219,1189,-141,1186,-130,693,-134,24,-135,27}); states[1182] = new State(new int[]{12,1183,10,1184}); states[1183] = new State(-377); states[1184] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-219,1185,-141,1186,-130,693,-134,24,-135,27}); states[1185] = new State(-379); states[1186] = new State(new int[]{5,1187,93,397}); states[1187] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,1188,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1188] = new State(-380); states[1189] = new State(-378); states[1190] = new State(-364); states[1191] = new State(-365); states[1192] = new State(-345); states[1193] = new State(-346); states[1194] = new State(-354); states[1195] = new State(new int[]{100,1198,11,-355,24,-355,22,-355,40,-355,33,-355,26,-355,27,-355,42,-355,85,-355,78,-355,77,-355,76,-355,75,-355,55,-63,25,-63,63,-63,46,-63,49,-63,58,-63,84,-63},new int[]{-160,1196,-39,1027,-35,1030,-56,1197}); states[1196] = new State(-406); states[1197] = new State(-448); states[1198] = new State(new int[]{10,1206,136,23,79,25,80,26,74,28,72,29,137,149,139,150,138,152},new int[]{-96,1199,-130,1203,-134,24,-135,27,-148,1204,-150,147,-149,151}); states[1199] = new State(new int[]{74,1200,10,1205}); states[1200] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,137,149,139,150,138,152},new int[]{-96,1201,-130,1203,-134,24,-135,27,-148,1204,-150,147,-149,151}); states[1201] = new State(new int[]{10,1202}); states[1202] = new State(-441); states[1203] = new State(-444); states[1204] = new State(-445); states[1205] = new State(-442); states[1206] = new State(-443); states[1207] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,8,-363,103,-363,10,-363},new int[]{-155,1208,-154,1006,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1208] = new State(new int[]{8,530,103,-449,10,-449},new int[]{-111,1209}); states[1209] = new State(new int[]{103,1211,10,995},new int[]{-191,1210}); states[1210] = new State(-359); states[1211] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,1212,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[1212] = new State(new int[]{10,1213}); states[1213] = new State(-407); states[1214] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,8,-363,10,-363},new int[]{-155,1215,-154,1006,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1215] = new State(new int[]{8,530,10,-449},new int[]{-111,1216}); states[1216] = new State(new int[]{10,995},new int[]{-191,1217}); states[1217] = new State(-361); states[1218] = new State(-351); states[1219] = new State(-418); states[1220] = new State(-352); states[1221] = new State(-369); states[1222] = new State(new int[]{11,575,85,-329,78,-329,77,-329,76,-329,75,-329,24,-200,22,-200,40,-200,33,-200,26,-200,27,-200,42,-200},new int[]{-49,462,-48,463,-6,464,-232,959,-50,1223}); states[1223] = new State(-341); states[1224] = new State(-338); states[1225] = new State(-295); states[1226] = new State(-296); states[1227] = new State(new int[]{22,1228,44,1229,39,1230,8,-297,19,-297,11,-297,85,-297,78,-297,77,-297,76,-297,75,-297,25,-297,136,-297,79,-297,80,-297,74,-297,72,-297,58,-297,24,-297,40,-297,33,-297,26,-297,27,-297,42,-297,10,-297}); states[1228] = new State(-298); states[1229] = new State(-299); states[1230] = new State(-300); states[1231] = new State(new int[]{65,1233,66,1234,140,1235,23,1236,24,1237,22,-292,39,-292,60,-292},new int[]{-18,1232}); states[1232] = new State(-294); states[1233] = new State(-286); states[1234] = new State(-287); states[1235] = new State(-288); states[1236] = new State(-289); states[1237] = new State(-290); states[1238] = new State(-293); states[1239] = new State(new int[]{116,1241,113,-208},new int[]{-138,1240}); states[1240] = new State(-209); states[1241] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-141,1242,-130,693,-134,24,-135,27}); states[1242] = new State(new int[]{115,1243,114,1014,93,397}); states[1243] = new State(-210); states[1244] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543,65,1233,66,1234,140,1235,23,1236,24,1237,22,-291,39,-291,60,-291},new int[]{-269,1245,-258,1068,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547,-26,1069,-19,1070,-20,1231,-18,1238}); states[1245] = new State(new int[]{10,1246}); states[1246] = new State(-207); states[1247] = new State(new int[]{11,575,136,-200,79,-200,80,-200,74,-200,72,-200},new int[]{-44,1248,-6,1062,-232,959}); states[1248] = new State(-99); states[1249] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-84,25,-84,63,-84,46,-84,49,-84,58,-84,84,-84},new int[]{-291,1250,-292,1251,-141,694,-130,693,-134,24,-135,27}); states[1250] = new State(-103); states[1251] = new State(new int[]{10,1252}); states[1252] = new State(-390); states[1253] = new State(new int[]{8,1255,136,23,79,25,80,26,74,28,72,29},new int[]{-291,1254,-292,1251,-141,694,-130,693,-134,24,-135,27}); states[1254] = new State(-101); states[1255] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,1256,-134,24,-135,27}); states[1256] = new State(new int[]{93,1257}); states[1257] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-141,1258,-130,693,-134,24,-135,27}); states[1258] = new State(new int[]{9,1259,93,397}); states[1259] = new State(new int[]{103,1260}); states[1260] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-91,1261,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595}); states[1261] = new State(new int[]{10,1262,13,128}); states[1262] = new State(-104); states[1263] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-291,1264,-292,1251,-141,694,-130,693,-134,24,-135,27}); states[1264] = new State(-102); states[1265] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,898,12,-267,93,-267},new int[]{-254,1266,-255,1267,-85,175,-94,265,-95,266,-164,431,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151}); states[1266] = new State(-265); states[1267] = new State(-266); states[1268] = new State(-264); states[1269] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-258,1270,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1270] = new State(-263); states[1271] = new State(-679); states[1272] = new State(-704); states[1273] = new State(-226); states[1274] = new State(-222); states[1275] = new State(-585); states[1276] = new State(new int[]{8,1277}); states[1277] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,41,350,38,380,8,382,17,245,18,250},new int[]{-312,1278,-311,1286,-130,1282,-134,24,-135,27,-89,1285,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594}); states[1278] = new State(new int[]{9,1279,93,1280}); states[1279] = new State(-594); states[1280] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,41,350,38,380,8,382,17,245,18,250},new int[]{-311,1281,-130,1282,-134,24,-135,27,-89,1285,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594}); states[1281] = new State(-598); states[1282] = new State(new int[]{103,1283,11,-686,16,-686,8,-686,7,-686,135,-686,4,-686,14,-686,131,-686,129,-686,111,-686,110,-686,124,-686,125,-686,126,-686,127,-686,123,-686,109,-686,108,-686,121,-686,122,-686,119,-686,113,-686,118,-686,116,-686,114,-686,117,-686,115,-686,130,-686,9,-686,93,-686,112,-686}); states[1283] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250},new int[]{-89,1284,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594}); states[1284] = new State(new int[]{113,289,118,290,116,291,114,292,117,293,115,294,130,295,9,-595,93,-595},new int[]{-180,135}); states[1285] = new State(new int[]{113,289,118,290,116,291,114,292,117,293,115,294,130,295,9,-596,93,-596},new int[]{-180,135}); states[1286] = new State(-597); states[1287] = new State(new int[]{13,187,93,-169,9,-169}); states[1288] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333,12,-172},new int[]{-69,1289,-66,183,-86,412,-83,186,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[1289] = new State(new int[]{12,1290}); states[1290] = new State(-166); states[1291] = new State(-136); states[1292] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-75,1293,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426}); states[1293] = new State(new int[]{109,1294,108,1295,121,1296,122,1297,13,-114,6,-114,93,-114,9,-114,12,-114,5,-114,10,-114,85,-114,91,-114,94,-114,29,-114,97,-114,28,-114,92,-114,80,-114,79,-114,2,-114,78,-114,77,-114,76,-114,75,-114},new int[]{-177,192}); states[1294] = new State(-126); states[1295] = new State(-127); states[1296] = new State(-128); states[1297] = new State(-129); states[1298] = new State(-117); states[1299] = new State(-118); states[1300] = new State(-119); states[1301] = new State(-120); states[1302] = new State(-121); states[1303] = new State(-122); states[1304] = new State(-123); states[1305] = new State(new int[]{136,23,79,25,80,26,74,28,72,226,137,149,139,150,138,152,38,242,17,245,18,250,11,409,147,154,149,155,148,156,52,414,134,415,8,417,128,420,109,332,108,333},new int[]{-83,1306,-75,191,-12,214,-10,224,-13,201,-130,225,-134,24,-135,27,-148,241,-150,147,-149,151,-239,244,-277,249,-222,408,-15,413,-183,422,-157,424,-248,425,-252,426,-224,427}); states[1306] = new State(new int[]{13,187,93,-176,9,-176,12,-176,5,-176}); states[1307] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152},new int[]{-85,1308,-94,265,-95,266,-164,431,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151}); states[1308] = new State(new int[]{109,1294,108,1295,121,1296,122,1297,13,-235,114,-235,93,-235,113,-235,9,-235,10,-235,120,-235,103,-235,85,-235,91,-235,94,-235,29,-235,97,-235,28,-235,12,-235,92,-235,80,-235,79,-235,2,-235,78,-235,77,-235,76,-235,75,-235,130,-235},new int[]{-177,176}); states[1309] = new State(-33); states[1310] = new State(new int[]{55,1033,25,1054,63,1058,46,1247,49,1253,58,1263,11,575,84,-59,85,-59,96,-59,40,-200,33,-200,24,-200,22,-200,26,-200,27,-200},new int[]{-42,1311,-151,1312,-25,1313,-47,1314,-271,1315,-290,1316,-203,1317,-6,1318,-232,959}); states[1311] = new State(-61); states[1312] = new State(-71); states[1313] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-72,25,-72,63,-72,46,-72,49,-72,58,-72,11,-72,40,-72,33,-72,24,-72,22,-72,26,-72,27,-72,84,-72,85,-72,96,-72},new int[]{-23,1040,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1314] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-73,25,-73,63,-73,46,-73,49,-73,58,-73,11,-73,40,-73,33,-73,24,-73,22,-73,26,-73,27,-73,84,-73,85,-73,96,-73},new int[]{-23,1057,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1315] = new State(new int[]{11,575,55,-74,25,-74,63,-74,46,-74,49,-74,58,-74,40,-74,33,-74,24,-74,22,-74,26,-74,27,-74,84,-74,85,-74,96,-74,136,-200,79,-200,80,-200,74,-200,72,-200},new int[]{-44,1061,-6,1062,-232,959}); states[1316] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,55,-75,25,-75,63,-75,46,-75,49,-75,58,-75,11,-75,40,-75,33,-75,24,-75,22,-75,26,-75,27,-75,84,-75,85,-75,96,-75},new int[]{-291,1250,-292,1251,-141,694,-130,693,-134,24,-135,27}); states[1317] = new State(-76); states[1318] = new State(new int[]{40,1331,33,1338,24,1192,22,1193,26,1366,27,1214,11,575},new int[]{-196,1319,-232,466,-197,1320,-204,1321,-211,1322,-208,1095,-212,1130,-3,1355,-200,1363,-210,1364}); states[1319] = new State(-79); states[1320] = new State(-77); states[1321] = new State(-409); states[1322] = new State(new int[]{141,1324,100,1198,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,84,-60},new int[]{-162,1323,-161,1326,-37,1327,-38,1310,-56,1330}); states[1323] = new State(-411); states[1324] = new State(new int[]{10,1325}); states[1325] = new State(-417); states[1326] = new State(-424); states[1327] = new State(new int[]{84,116},new int[]{-237,1328}); states[1328] = new State(new int[]{10,1329}); states[1329] = new State(-446); states[1330] = new State(-425); states[1331] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350},new int[]{-154,1332,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1332] = new State(new int[]{8,530,10,-449,103,-449},new int[]{-111,1333}); states[1333] = new State(new int[]{10,1128,103,-717},new int[]{-191,1099,-192,1334}); states[1334] = new State(new int[]{103,1335}); states[1335] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,1336,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[1336] = new State(new int[]{10,1337}); states[1337] = new State(-416); states[1338] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350},new int[]{-153,1339,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1339] = new State(new int[]{8,530,5,-449,10,-449,103,-449},new int[]{-111,1340}); states[1340] = new State(new int[]{5,1341,10,1128,103,-717},new int[]{-191,1134,-192,1349}); states[1341] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,1342,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1342] = new State(new int[]{10,1128,103,-717},new int[]{-191,1138,-192,1343}); states[1343] = new State(new int[]{103,1344}); states[1344] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,33,800,40,815},new int[]{-91,1345,-302,1347,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-303,934}); states[1345] = new State(new int[]{10,1346,13,128}); states[1346] = new State(-412); states[1347] = new State(new int[]{10,1348}); states[1348] = new State(-414); states[1349] = new State(new int[]{103,1350}); states[1350] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,883,17,245,18,250,33,800,40,815},new int[]{-91,1351,-302,1353,-90,132,-89,288,-93,593,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,589,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-303,934}); states[1351] = new State(new int[]{10,1352,13,128}); states[1352] = new State(-413); states[1353] = new State(new int[]{10,1354}); states[1354] = new State(-415); states[1355] = new State(new int[]{26,1357,40,1331,33,1338},new int[]{-204,1356,-211,1322,-208,1095,-212,1130}); states[1356] = new State(-410); states[1357] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,8,-363,103,-363,10,-363},new int[]{-155,1358,-154,1006,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1358] = new State(new int[]{8,530,103,-449,10,-449},new int[]{-111,1359}); states[1359] = new State(new int[]{103,1360,10,995},new int[]{-191,474}); states[1360] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,1361,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[1361] = new State(new int[]{10,1362}); states[1362] = new State(-405); states[1363] = new State(-78); states[1364] = new State(-60,new int[]{-161,1365,-37,1327,-38,1310}); states[1365] = new State(-403); states[1366] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350,8,-363,103,-363,10,-363},new int[]{-155,1367,-154,1006,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1367] = new State(new int[]{8,530,103,-449,10,-449},new int[]{-111,1368}); states[1368] = new State(new int[]{103,1369,10,995},new int[]{-191,1210}); states[1369] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,154,149,155,148,156,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,10,-473},new int[]{-243,1370,-4,122,-100,123,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729}); states[1370] = new State(new int[]{10,1371}); states[1371] = new State(-404); states[1372] = new State(new int[]{3,1374,48,-13,84,-13,55,-13,25,-13,63,-13,46,-13,49,-13,58,-13,11,-13,40,-13,33,-13,24,-13,22,-13,26,-13,27,-13,39,-13,85,-13,96,-13},new int[]{-168,1373}); states[1373] = new State(-15); states[1374] = new State(new int[]{136,1375,137,1376}); states[1375] = new State(-16); states[1376] = new State(-17); states[1377] = new State(-14); states[1378] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-130,1379,-134,24,-135,27}); states[1379] = new State(new int[]{10,1381,8,1382},new int[]{-171,1380}); states[1380] = new State(-26); states[1381] = new State(-27); states[1382] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-173,1383,-129,1389,-130,1388,-134,24,-135,27}); states[1383] = new State(new int[]{9,1384,93,1386}); states[1384] = new State(new int[]{10,1385}); states[1385] = new State(-28); states[1386] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-129,1387,-130,1388,-134,24,-135,27}); states[1387] = new State(-30); states[1388] = new State(-31); states[1389] = new State(-29); states[1390] = new State(-3); states[1391] = new State(new int[]{98,1446,99,1447,102,1448,11,575},new int[]{-289,1392,-232,466,-2,1441}); states[1392] = new State(new int[]{39,1413,48,-36,55,-36,25,-36,63,-36,46,-36,49,-36,58,-36,11,-36,40,-36,33,-36,24,-36,22,-36,26,-36,27,-36,85,-36,96,-36,84,-36},new int[]{-145,1393,-146,1410,-285,1439}); states[1393] = new State(new int[]{37,1407},new int[]{-144,1394}); states[1394] = new State(new int[]{85,1397,96,1398,84,1404},new int[]{-137,1395}); states[1395] = new State(new int[]{7,1396}); states[1396] = new State(-42); states[1397] = new State(-52); states[1398] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,97,-473,10,-473},new int[]{-234,1399,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[1399] = new State(new int[]{85,1400,97,1401,10,119}); states[1400] = new State(-53); states[1401] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473},new int[]{-234,1402,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[1402] = new State(new int[]{85,1403,10,119}); states[1403] = new State(-54); states[1404] = new State(new int[]{134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,478,8,479,17,245,18,250,137,149,139,150,138,152,147,630,149,155,148,631,53,608,84,116,36,598,21,616,90,633,50,645,31,650,51,660,95,666,43,673,32,676,49,684,56,710,71,719,69,725,34,730,85,-473,10,-473},new int[]{-234,1405,-244,628,-243,121,-4,122,-100,123,-115,335,-99,343,-130,629,-134,24,-135,27,-175,349,-239,486,-277,487,-14,604,-148,146,-150,147,-149,151,-15,153,-53,605,-103,494,-195,606,-116,607,-237,613,-136,614,-31,615,-229,632,-298,644,-107,649,-299,659,-143,664,-284,665,-230,672,-106,675,-294,683,-54,714,-158,715,-157,716,-152,717,-109,718,-110,723,-108,724,-320,729,-126,858}); states[1405] = new State(new int[]{85,1406,10,119}); states[1406] = new State(-55); states[1407] = new State(-36,new int[]{-285,1408}); states[1408] = new State(new int[]{48,14,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,85,-60,96,-60,84,-60},new int[]{-37,1409,-38,1310}); states[1409] = new State(-50); states[1410] = new State(new int[]{85,1397,96,1398,84,1404},new int[]{-137,1411}); states[1411] = new State(new int[]{7,1412}); states[1412] = new State(-43); states[1413] = new State(-36,new int[]{-285,1414}); states[1414] = new State(new int[]{48,14,25,-57,63,-57,46,-57,49,-57,58,-57,11,-57,40,-57,33,-57,37,-57},new int[]{-36,1415,-34,1416}); states[1415] = new State(-49); states[1416] = new State(new int[]{25,1054,63,1058,46,1247,49,1253,58,1263,11,575,37,-56,40,-200,33,-200},new int[]{-43,1417,-25,1418,-47,1419,-271,1420,-290,1421,-215,1422,-6,1423,-232,959,-214,1438}); states[1417] = new State(-58); states[1418] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,25,-65,63,-65,46,-65,49,-65,58,-65,11,-65,40,-65,33,-65,37,-65},new int[]{-23,1040,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1419] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,25,-66,63,-66,46,-66,49,-66,58,-66,11,-66,40,-66,33,-66,37,-66},new int[]{-23,1057,-24,1041,-124,1043,-130,1053,-134,24,-135,27}); states[1420] = new State(new int[]{11,575,25,-67,63,-67,46,-67,49,-67,58,-67,40,-67,33,-67,37,-67,136,-200,79,-200,80,-200,74,-200,72,-200},new int[]{-44,1061,-6,1062,-232,959}); states[1421] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,25,-68,63,-68,46,-68,49,-68,58,-68,11,-68,40,-68,33,-68,37,-68},new int[]{-291,1250,-292,1251,-141,694,-130,693,-134,24,-135,27}); states[1422] = new State(-69); states[1423] = new State(new int[]{40,1430,11,575,33,1433},new int[]{-208,1424,-232,466,-212,1427}); states[1424] = new State(new int[]{141,1425,25,-85,63,-85,46,-85,49,-85,58,-85,11,-85,40,-85,33,-85,37,-85}); states[1425] = new State(new int[]{10,1426}); states[1426] = new State(-86); states[1427] = new State(new int[]{141,1428,25,-87,63,-87,46,-87,49,-87,58,-87,11,-87,40,-87,33,-87,37,-87}); states[1428] = new State(new int[]{10,1429}); states[1429] = new State(-88); states[1430] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350},new int[]{-154,1431,-153,1007,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1431] = new State(new int[]{8,530,10,-449},new int[]{-111,1432}); states[1432] = new State(new int[]{10,995},new int[]{-191,1099}); states[1433] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,41,350},new int[]{-153,1434,-125,1008,-120,1009,-117,1010,-130,1015,-134,24,-135,27,-175,1016,-313,1018,-132,1022}); states[1434] = new State(new int[]{8,530,5,-449,10,-449},new int[]{-111,1435}); states[1435] = new State(new int[]{5,1436,10,995},new int[]{-191,1134}); states[1436] = new State(new int[]{136,404,79,25,80,26,74,28,72,29,147,154,149,155,148,156,109,332,108,333,137,149,139,150,138,152,8,433,135,437,20,442,44,450,45,512,30,516,70,520,61,523,40,528,33,543},new int[]{-257,1437,-258,401,-255,402,-85,175,-94,265,-95,266,-164,267,-130,196,-134,24,-135,27,-15,428,-183,429,-148,432,-150,147,-149,151,-238,435,-231,436,-263,439,-264,440,-260,441,-253,448,-27,449,-246,511,-113,515,-114,519,-209,525,-207,526,-206,527,-283,547}); states[1437] = new State(new int[]{10,995},new int[]{-191,1138}); states[1438] = new State(-70); states[1439] = new State(new int[]{48,14,55,-60,25,-60,63,-60,46,-60,49,-60,58,-60,11,-60,40,-60,33,-60,24,-60,22,-60,26,-60,27,-60,85,-60,96,-60,84,-60},new int[]{-37,1440,-38,1310}); states[1440] = new State(-51); states[1441] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-122,1442,-130,1445,-134,24,-135,27}); states[1442] = new State(new int[]{10,1443}); states[1443] = new State(new int[]{3,1374,39,-12,85,-12,96,-12,84,-12,48,-12,55,-12,25,-12,63,-12,46,-12,49,-12,58,-12,11,-12,40,-12,33,-12,24,-12,22,-12,26,-12,27,-12},new int[]{-169,1444,-170,1372,-168,1377}); states[1444] = new State(-44); states[1445] = new State(-48); states[1446] = new State(-46); states[1447] = new State(-47); states[1448] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-140,1449,-121,112,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[1449] = new State(new int[]{10,1450,7,20}); states[1450] = new State(new int[]{3,1374,39,-12,85,-12,96,-12,84,-12,48,-12,55,-12,25,-12,63,-12,46,-12,49,-12,58,-12,11,-12,40,-12,33,-12,24,-12,22,-12,26,-12,27,-12},new int[]{-169,1451,-170,1372,-168,1377}); states[1451] = new State(-45); states[1452] = new State(-4); states[1453] = new State(new int[]{46,1455,52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,382,17,245,18,250,5,638},new int[]{-81,1454,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,334,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637}); states[1454] = new State(-5); states[1455] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-127,1456,-130,1457,-134,24,-135,27}); states[1456] = new State(-6); states[1457] = new State(new int[]{116,1012,2,-208},new int[]{-138,1240}); states[1458] = new State(new int[]{136,23,79,25,80,26,74,28,72,29},new int[]{-300,1459,-301,1460,-130,1464,-134,24,-135,27}); states[1459] = new State(-7); states[1460] = new State(new int[]{7,1461,116,168,2,-684},new int[]{-281,1463}); states[1461] = new State(new int[]{136,23,79,25,80,26,74,28,72,29,78,32,77,33,76,34,75,35,65,36,60,37,121,38,18,39,17,40,59,41,19,42,122,43,123,44,124,45,125,46,126,47,127,48,128,49,129,50,130,51,131,52,20,53,70,54,84,55,21,56,22,57,25,58,26,59,27,60,68,61,92,62,28,63,29,64,30,65,23,66,97,67,94,68,31,69,32,70,33,71,36,72,37,73,38,74,96,75,39,76,40,77,42,78,43,79,44,80,90,81,45,82,95,83,46,84,24,85,47,86,67,87,91,88,48,89,49,90,50,91,51,92,52,93,53,94,54,95,55,96,57,97,98,98,99,99,102,100,100,101,101,102,58,103,71,104,34,105,35,106,41,108,85,109},new int[]{-121,1462,-130,22,-134,24,-135,27,-275,30,-133,31,-276,107}); states[1462] = new State(-683); states[1463] = new State(-685); states[1464] = new State(-682); states[1465] = new State(new int[]{52,142,137,149,139,150,138,152,147,154,149,155,148,156,59,158,11,319,128,328,109,332,108,333,134,342,136,23,79,25,80,26,74,28,72,226,41,350,38,380,8,479,17,245,18,250,5,638,49,684},new int[]{-242,1466,-81,1467,-91,127,-90,132,-89,288,-93,296,-76,306,-88,318,-14,143,-148,146,-150,147,-149,151,-15,153,-52,157,-183,330,-100,1468,-115,335,-99,343,-130,348,-134,24,-135,27,-175,349,-239,486,-277,487,-53,488,-103,494,-157,495,-251,496,-77,497,-247,500,-249,501,-250,594,-223,595,-105,637,-4,1469,-294,1470}); states[1466] = new State(-8); states[1467] = new State(-9); states[1468] = new State(new int[]{103,374,104,375,105,376,106,377,107,378,131,-669,129,-669,111,-669,110,-669,124,-669,125,-669,126,-669,127,-669,123,-669,5,-669,109,-669,108,-669,121,-669,122,-669,119,-669,113,-669,118,-669,116,-669,114,-669,117,-669,115,-669,130,-669,15,-669,13,-669,2,-669,112,-669},new int[]{-178,124}); states[1469] = new State(-10); states[1470] = new State(-11); rules[1] = new Rule(-327, new int[]{-1,2}); rules[2] = new Rule(-1, new int[]{-217}); rules[3] = new Rule(-1, new int[]{-287}); rules[4] = new Rule(-1, new int[]{-159}); rules[5] = new Rule(-159, new int[]{81,-81}); rules[6] = new Rule(-159, new int[]{81,46,-127}); rules[7] = new Rule(-159, new int[]{83,-300}); rules[8] = new Rule(-159, new int[]{82,-242}); rules[9] = new Rule(-242, new int[]{-81}); rules[10] = new Rule(-242, new int[]{-4}); rules[11] = new Rule(-242, new int[]{-294}); rules[12] = new Rule(-169, new int[]{}); rules[13] = new Rule(-169, new int[]{-170}); rules[14] = new Rule(-170, new int[]{-168}); rules[15] = new Rule(-170, new int[]{-170,-168}); rules[16] = new Rule(-168, new int[]{3,136}); rules[17] = new Rule(-168, new int[]{3,137}); rules[18] = new Rule(-217, new int[]{-218,-169,-285,-16,-172}); rules[19] = new Rule(-172, new int[]{7}); rules[20] = new Rule(-172, new int[]{10}); rules[21] = new Rule(-172, new int[]{5}); rules[22] = new Rule(-172, new int[]{93}); rules[23] = new Rule(-172, new int[]{6}); rules[24] = new Rule(-172, new int[]{}); rules[25] = new Rule(-218, new int[]{}); rules[26] = new Rule(-218, new int[]{57,-130,-171}); rules[27] = new Rule(-171, new int[]{10}); rules[28] = new Rule(-171, new int[]{8,-173,9,10}); rules[29] = new Rule(-173, new int[]{-129}); rules[30] = new Rule(-173, new int[]{-173,93,-129}); rules[31] = new Rule(-129, new int[]{-130}); rules[32] = new Rule(-16, new int[]{-33,-237}); rules[33] = new Rule(-33, new int[]{-37}); rules[34] = new Rule(-140, new int[]{-121}); rules[35] = new Rule(-140, new int[]{-140,7,-121}); rules[36] = new Rule(-285, new int[]{}); rules[37] = new Rule(-285, new int[]{-285,48,-286,10}); rules[38] = new Rule(-286, new int[]{-288}); rules[39] = new Rule(-286, new int[]{-286,93,-288}); rules[40] = new Rule(-288, new int[]{-140}); rules[41] = new Rule(-288, new int[]{-140,130,137}); rules[42] = new Rule(-287, new int[]{-6,-289,-145,-144,-137,7}); rules[43] = new Rule(-287, new int[]{-6,-289,-146,-137,7}); rules[44] = new Rule(-289, new int[]{-2,-122,10,-169}); rules[45] = new Rule(-289, new int[]{102,-140,10,-169}); rules[46] = new Rule(-2, new int[]{98}); rules[47] = new Rule(-2, new int[]{99}); rules[48] = new Rule(-122, new int[]{-130}); rules[49] = new Rule(-145, new int[]{39,-285,-36}); rules[50] = new Rule(-144, new int[]{37,-285,-37}); rules[51] = new Rule(-146, new int[]{-285,-37}); rules[52] = new Rule(-137, new int[]{85}); rules[53] = new Rule(-137, new int[]{96,-234,85}); rules[54] = new Rule(-137, new int[]{96,-234,97,-234,85}); rules[55] = new Rule(-137, new int[]{84,-234,85}); rules[56] = new Rule(-36, new int[]{-34}); rules[57] = new Rule(-34, new int[]{}); rules[58] = new Rule(-34, new int[]{-34,-43}); rules[59] = new Rule(-37, new int[]{-38}); rules[60] = new Rule(-38, new int[]{}); rules[61] = new Rule(-38, new int[]{-38,-42}); rules[62] = new Rule(-39, new int[]{-35}); rules[63] = new Rule(-35, new int[]{}); rules[64] = new Rule(-35, new int[]{-35,-41}); rules[65] = new Rule(-43, new int[]{-25}); rules[66] = new Rule(-43, new int[]{-47}); rules[67] = new Rule(-43, new int[]{-271}); rules[68] = new Rule(-43, new int[]{-290}); rules[69] = new Rule(-43, new int[]{-215}); rules[70] = new Rule(-43, new int[]{-214}); rules[71] = new Rule(-42, new int[]{-151}); rules[72] = new Rule(-42, new int[]{-25}); rules[73] = new Rule(-42, new int[]{-47}); rules[74] = new Rule(-42, new int[]{-271}); rules[75] = new Rule(-42, new int[]{-290}); rules[76] = new Rule(-42, new int[]{-203}); rules[77] = new Rule(-196, new int[]{-197}); rules[78] = new Rule(-196, new int[]{-200}); rules[79] = new Rule(-203, new int[]{-6,-196}); rules[80] = new Rule(-41, new int[]{-151}); rules[81] = new Rule(-41, new int[]{-25}); rules[82] = new Rule(-41, new int[]{-47}); rules[83] = new Rule(-41, new int[]{-271}); rules[84] = new Rule(-41, new int[]{-290}); rules[85] = new Rule(-215, new int[]{-6,-208}); rules[86] = new Rule(-215, new int[]{-6,-208,141,10}); rules[87] = new Rule(-214, new int[]{-6,-212}); rules[88] = new Rule(-214, new int[]{-6,-212,141,10}); rules[89] = new Rule(-151, new int[]{55,-139,10}); rules[90] = new Rule(-139, new int[]{-126}); rules[91] = new Rule(-139, new int[]{-139,93,-126}); rules[92] = new Rule(-126, new int[]{147}); rules[93] = new Rule(-126, new int[]{148}); rules[94] = new Rule(-126, new int[]{-130}); rules[95] = new Rule(-25, new int[]{25,-23}); rules[96] = new Rule(-25, new int[]{-25,-23}); rules[97] = new Rule(-47, new int[]{63,-23}); rules[98] = new Rule(-47, new int[]{-47,-23}); rules[99] = new Rule(-271, new int[]{46,-44}); rules[100] = new Rule(-271, new int[]{-271,-44}); rules[101] = new Rule(-290, new int[]{49,-291}); rules[102] = new Rule(-290, new int[]{58,-291}); rules[103] = new Rule(-290, new int[]{-290,-291}); rules[104] = new Rule(-290, new int[]{49,8,-130,93,-141,9,103,-91,10}); rules[105] = new Rule(-23, new int[]{-24,10}); rules[106] = new Rule(-24, new int[]{-124,113,-97}); rules[107] = new Rule(-24, new int[]{-124,5,-258,113,-78}); rules[108] = new Rule(-97, new int[]{-83}); rules[109] = new Rule(-97, new int[]{-87}); rules[110] = new Rule(-124, new int[]{-130}); rules[111] = new Rule(-73, new int[]{-91}); rules[112] = new Rule(-73, new int[]{-73,93,-91}); rules[113] = new Rule(-83, new int[]{-75}); rules[114] = new Rule(-83, new int[]{-75,-176,-75}); rules[115] = new Rule(-83, new int[]{-224}); rules[116] = new Rule(-224, new int[]{-83,13,-83,5,-83}); rules[117] = new Rule(-176, new int[]{113}); rules[118] = new Rule(-176, new int[]{118}); rules[119] = new Rule(-176, new int[]{116}); rules[120] = new Rule(-176, new int[]{114}); rules[121] = new Rule(-176, new int[]{117}); rules[122] = new Rule(-176, new int[]{115}); rules[123] = new Rule(-176, new int[]{130}); rules[124] = new Rule(-75, new int[]{-12}); rules[125] = new Rule(-75, new int[]{-75,-177,-12}); rules[126] = new Rule(-177, new int[]{109}); rules[127] = new Rule(-177, new int[]{108}); rules[128] = new Rule(-177, new int[]{121}); rules[129] = new Rule(-177, new int[]{122}); rules[130] = new Rule(-248, new int[]{-12,-185,-266}); rules[131] = new Rule(-252, new int[]{-10,112,-10}); rules[132] = new Rule(-12, new int[]{-10}); rules[133] = new Rule(-12, new int[]{-248}); rules[134] = new Rule(-12, new int[]{-252}); rules[135] = new Rule(-12, new int[]{-12,-179,-10}); rules[136] = new Rule(-12, new int[]{-12,-179,-252}); rules[137] = new Rule(-179, new int[]{111}); rules[138] = new Rule(-179, new int[]{110}); rules[139] = new Rule(-179, new int[]{124}); rules[140] = new Rule(-179, new int[]{125}); rules[141] = new Rule(-179, new int[]{126}); rules[142] = new Rule(-179, new int[]{127}); rules[143] = new Rule(-179, new int[]{123}); rules[144] = new Rule(-10, new int[]{-13}); rules[145] = new Rule(-10, new int[]{-222}); rules[146] = new Rule(-10, new int[]{-15}); rules[147] = new Rule(-10, new int[]{52}); rules[148] = new Rule(-10, new int[]{134,-10}); rules[149] = new Rule(-10, new int[]{8,-83,9}); rules[150] = new Rule(-10, new int[]{128,-10}); rules[151] = new Rule(-10, new int[]{-183,-10}); rules[152] = new Rule(-10, new int[]{-157}); rules[153] = new Rule(-222, new int[]{11,-69,12}); rules[154] = new Rule(-183, new int[]{109}); rules[155] = new Rule(-183, new int[]{108}); rules[156] = new Rule(-13, new int[]{-130}); rules[157] = new Rule(-13, new int[]{-148}); rules[158] = new Rule(-13, new int[]{38,-130}); rules[159] = new Rule(-13, new int[]{-239}); rules[160] = new Rule(-13, new int[]{-277}); rules[161] = new Rule(-13, new int[]{-13,-11}); rules[162] = new Rule(-13, new int[]{-13,4,-281}); rules[163] = new Rule(-11, new int[]{7,-121}); rules[164] = new Rule(-11, new int[]{135}); rules[165] = new Rule(-11, new int[]{8,-70,9}); rules[166] = new Rule(-11, new int[]{11,-69,12}); rules[167] = new Rule(-70, new int[]{-67}); rules[168] = new Rule(-70, new int[]{}); rules[169] = new Rule(-67, new int[]{-83}); rules[170] = new Rule(-67, new int[]{-67,93,-83}); rules[171] = new Rule(-69, new int[]{-66}); rules[172] = new Rule(-69, new int[]{}); rules[173] = new Rule(-66, new int[]{-86}); rules[174] = new Rule(-66, new int[]{-66,93,-86}); rules[175] = new Rule(-86, new int[]{-83}); rules[176] = new Rule(-86, new int[]{-83,6,-83}); rules[177] = new Rule(-15, new int[]{147}); rules[178] = new Rule(-15, new int[]{149}); rules[179] = new Rule(-15, new int[]{148}); rules[180] = new Rule(-78, new int[]{-83}); rules[181] = new Rule(-78, new int[]{-87}); rules[182] = new Rule(-78, new int[]{-225}); rules[183] = new Rule(-87, new int[]{8,-61,9}); rules[184] = new Rule(-87, new int[]{8,-225,9}); rules[185] = new Rule(-87, new int[]{8,-87,9}); rules[186] = new Rule(-61, new int[]{}); rules[187] = new Rule(-61, new int[]{-60}); rules[188] = new Rule(-60, new int[]{-79}); rules[189] = new Rule(-60, new int[]{-60,93,-79}); rules[190] = new Rule(-225, new int[]{8,-227,9}); rules[191] = new Rule(-227, new int[]{-226}); rules[192] = new Rule(-227, new int[]{-226,10}); rules[193] = new Rule(-226, new int[]{-228}); rules[194] = new Rule(-226, new int[]{-226,10,-228}); rules[195] = new Rule(-228, new int[]{-119,5,-78}); rules[196] = new Rule(-119, new int[]{-130}); rules[197] = new Rule(-44, new int[]{-6,-45}); rules[198] = new Rule(-6, new int[]{-232}); rules[199] = new Rule(-6, new int[]{-6,-232}); rules[200] = new Rule(-6, new int[]{}); rules[201] = new Rule(-232, new int[]{11,-233,12}); rules[202] = new Rule(-233, new int[]{-8}); rules[203] = new Rule(-233, new int[]{-233,93,-8}); rules[204] = new Rule(-8, new int[]{-9}); rules[205] = new Rule(-8, new int[]{-130,5,-9}); rules[206] = new Rule(-45, new int[]{-127,113,-269,10}); rules[207] = new Rule(-45, new int[]{-128,-269,10}); rules[208] = new Rule(-127, new int[]{-130}); rules[209] = new Rule(-127, new int[]{-130,-138}); rules[210] = new Rule(-128, new int[]{-130,116,-141,115}); rules[211] = new Rule(-269, new int[]{-258}); rules[212] = new Rule(-269, new int[]{-26}); rules[213] = new Rule(-258, new int[]{-255}); rules[214] = new Rule(-258, new int[]{-255,13}); rules[215] = new Rule(-258, new int[]{-238}); rules[216] = new Rule(-258, new int[]{-231}); rules[217] = new Rule(-258, new int[]{-263}); rules[218] = new Rule(-258, new int[]{-209}); rules[219] = new Rule(-258, new int[]{-283}); rules[220] = new Rule(-283, new int[]{-164,-281}); rules[221] = new Rule(-281, new int[]{116,-279,114}); rules[222] = new Rule(-282, new int[]{118}); rules[223] = new Rule(-282, new int[]{116,-280,114}); rules[224] = new Rule(-279, new int[]{-261}); rules[225] = new Rule(-279, new int[]{-279,93,-261}); rules[226] = new Rule(-280, new int[]{-262}); rules[227] = new Rule(-280, new int[]{-280,93,-262}); rules[228] = new Rule(-262, new int[]{}); rules[229] = new Rule(-261, new int[]{-255}); rules[230] = new Rule(-261, new int[]{-255,13}); rules[231] = new Rule(-261, new int[]{-263}); rules[232] = new Rule(-261, new int[]{-209}); rules[233] = new Rule(-261, new int[]{-283}); rules[234] = new Rule(-255, new int[]{-85}); rules[235] = new Rule(-255, new int[]{-85,6,-85}); rules[236] = new Rule(-255, new int[]{8,-74,9}); rules[237] = new Rule(-85, new int[]{-94}); rules[238] = new Rule(-85, new int[]{-85,-177,-94}); rules[239] = new Rule(-94, new int[]{-95}); rules[240] = new Rule(-94, new int[]{-94,-179,-95}); rules[241] = new Rule(-95, new int[]{-164}); rules[242] = new Rule(-95, new int[]{-15}); rules[243] = new Rule(-95, new int[]{-183,-95}); rules[244] = new Rule(-95, new int[]{-148}); rules[245] = new Rule(-95, new int[]{-95,8,-69,9}); rules[246] = new Rule(-164, new int[]{-130}); rules[247] = new Rule(-164, new int[]{-164,7,-121}); rules[248] = new Rule(-74, new int[]{-72,93,-72}); rules[249] = new Rule(-74, new int[]{-74,93,-72}); rules[250] = new Rule(-72, new int[]{-258}); rules[251] = new Rule(-72, new int[]{-258,113,-81}); rules[252] = new Rule(-231, new int[]{135,-257}); rules[253] = new Rule(-263, new int[]{-264}); rules[254] = new Rule(-263, new int[]{61,-264}); rules[255] = new Rule(-264, new int[]{-260}); rules[256] = new Rule(-264, new int[]{-27}); rules[257] = new Rule(-264, new int[]{-246}); rules[258] = new Rule(-264, new int[]{-113}); rules[259] = new Rule(-264, new int[]{-114}); rules[260] = new Rule(-114, new int[]{70,54,-258}); rules[261] = new Rule(-260, new int[]{20,11,-147,12,54,-258}); rules[262] = new Rule(-260, new int[]{-253}); rules[263] = new Rule(-253, new int[]{20,54,-258}); rules[264] = new Rule(-147, new int[]{-254}); rules[265] = new Rule(-147, new int[]{-147,93,-254}); rules[266] = new Rule(-254, new int[]{-255}); rules[267] = new Rule(-254, new int[]{}); rules[268] = new Rule(-246, new int[]{45,54,-258}); rules[269] = new Rule(-113, new int[]{30,54,-258}); rules[270] = new Rule(-113, new int[]{30}); rules[271] = new Rule(-238, new int[]{136,11,-83,12}); rules[272] = new Rule(-209, new int[]{-207}); rules[273] = new Rule(-207, new int[]{-206}); rules[274] = new Rule(-206, new int[]{40,-111}); rules[275] = new Rule(-206, new int[]{33,-111,5,-257}); rules[276] = new Rule(-206, new int[]{-164,120,-261}); rules[277] = new Rule(-206, new int[]{-283,120,-261}); rules[278] = new Rule(-206, new int[]{8,9,120,-261}); rules[279] = new Rule(-206, new int[]{8,-74,9,120,-261}); rules[280] = new Rule(-206, new int[]{-164,120,8,9}); rules[281] = new Rule(-206, new int[]{-283,120,8,9}); rules[282] = new Rule(-206, new int[]{8,9,120,8,9}); rules[283] = new Rule(-206, new int[]{8,-74,9,120,8,9}); rules[284] = new Rule(-26, new int[]{-19,-273,-167,-297,-22}); rules[285] = new Rule(-27, new int[]{44,-167,-297,-21,85}); rules[286] = new Rule(-18, new int[]{65}); rules[287] = new Rule(-18, new int[]{66}); rules[288] = new Rule(-18, new int[]{140}); rules[289] = new Rule(-18, new int[]{23}); rules[290] = new Rule(-18, new int[]{24}); rules[291] = new Rule(-19, new int[]{}); rules[292] = new Rule(-19, new int[]{-20}); rules[293] = new Rule(-20, new int[]{-18}); rules[294] = new Rule(-20, new int[]{-20,-18}); rules[295] = new Rule(-273, new int[]{22}); rules[296] = new Rule(-273, new int[]{39}); rules[297] = new Rule(-273, new int[]{60}); rules[298] = new Rule(-273, new int[]{60,22}); rules[299] = new Rule(-273, new int[]{60,44}); rules[300] = new Rule(-273, new int[]{60,39}); rules[301] = new Rule(-22, new int[]{}); rules[302] = new Rule(-22, new int[]{-21,85}); rules[303] = new Rule(-167, new int[]{}); rules[304] = new Rule(-167, new int[]{8,-166,9}); rules[305] = new Rule(-166, new int[]{-165}); rules[306] = new Rule(-166, new int[]{-166,93,-165}); rules[307] = new Rule(-165, new int[]{-164}); rules[308] = new Rule(-165, new int[]{-283}); rules[309] = new Rule(-138, new int[]{116,-141,114}); rules[310] = new Rule(-297, new int[]{}); rules[311] = new Rule(-297, new int[]{-296}); rules[312] = new Rule(-296, new int[]{-295}); rules[313] = new Rule(-296, new int[]{-296,-295}); rules[314] = new Rule(-295, new int[]{19,-141,5,-270,10}); rules[315] = new Rule(-270, new int[]{-267}); rules[316] = new Rule(-270, new int[]{-270,93,-267}); rules[317] = new Rule(-267, new int[]{-258}); rules[318] = new Rule(-267, new int[]{22}); rules[319] = new Rule(-267, new int[]{44}); rules[320] = new Rule(-267, new int[]{26}); rules[321] = new Rule(-21, new int[]{-28}); rules[322] = new Rule(-21, new int[]{-21,-7,-28}); rules[323] = new Rule(-7, new int[]{78}); rules[324] = new Rule(-7, new int[]{77}); rules[325] = new Rule(-7, new int[]{76}); rules[326] = new Rule(-7, new int[]{75}); rules[327] = new Rule(-28, new int[]{}); rules[328] = new Rule(-28, new int[]{-30,-174}); rules[329] = new Rule(-28, new int[]{-29}); rules[330] = new Rule(-28, new int[]{-30,10,-29}); rules[331] = new Rule(-141, new int[]{-130}); rules[332] = new Rule(-141, new int[]{-141,93,-130}); rules[333] = new Rule(-174, new int[]{}); rules[334] = new Rule(-174, new int[]{10}); rules[335] = new Rule(-30, new int[]{-40}); rules[336] = new Rule(-30, new int[]{-30,10,-40}); rules[337] = new Rule(-40, new int[]{-6,-46}); rules[338] = new Rule(-29, new int[]{-49}); rules[339] = new Rule(-29, new int[]{-29,-49}); rules[340] = new Rule(-49, new int[]{-48}); rules[341] = new Rule(-49, new int[]{-50}); rules[342] = new Rule(-46, new int[]{25,-24}); rules[343] = new Rule(-46, new int[]{-293}); rules[344] = new Rule(-46, new int[]{-3,-293}); rules[345] = new Rule(-3, new int[]{24}); rules[346] = new Rule(-3, new int[]{22}); rules[347] = new Rule(-293, new int[]{-292}); rules[348] = new Rule(-293, new int[]{58,-141,5,-258}); rules[349] = new Rule(-48, new int[]{-6,-205}); rules[350] = new Rule(-48, new int[]{-6,-202}); rules[351] = new Rule(-202, new int[]{-198}); rules[352] = new Rule(-202, new int[]{-201}); rules[353] = new Rule(-205, new int[]{-3,-213}); rules[354] = new Rule(-205, new int[]{-213}); rules[355] = new Rule(-205, new int[]{-210}); rules[356] = new Rule(-213, new int[]{-211}); rules[357] = new Rule(-211, new int[]{-208}); rules[358] = new Rule(-211, new int[]{-212}); rules[359] = new Rule(-210, new int[]{26,-155,-111,-191}); rules[360] = new Rule(-210, new int[]{-3,26,-155,-111,-191}); rules[361] = new Rule(-210, new int[]{27,-155,-111,-191}); rules[362] = new Rule(-155, new int[]{-154}); rules[363] = new Rule(-155, new int[]{}); rules[364] = new Rule(-156, new int[]{-130}); rules[365] = new Rule(-156, new int[]{-133}); rules[366] = new Rule(-156, new int[]{-156,7,-130}); rules[367] = new Rule(-156, new int[]{-156,7,-133}); rules[368] = new Rule(-50, new int[]{-6,-240}); rules[369] = new Rule(-240, new int[]{-241}); rules[370] = new Rule(-240, new int[]{-3,-241}); rules[371] = new Rule(-241, new int[]{42,-156,-216,-186,10,-189}); rules[372] = new Rule(-241, new int[]{42,-156,-216,-186,10,-194,10,-189}); rules[373] = new Rule(-189, new int[]{}); rules[374] = new Rule(-189, new int[]{59,10}); rules[375] = new Rule(-216, new int[]{-221,5,-257}); rules[376] = new Rule(-221, new int[]{}); rules[377] = new Rule(-221, new int[]{11,-220,12}); rules[378] = new Rule(-220, new int[]{-219}); rules[379] = new Rule(-220, new int[]{-220,10,-219}); rules[380] = new Rule(-219, new int[]{-141,5,-257}); rules[381] = new Rule(-101, new int[]{-82}); rules[382] = new Rule(-101, new int[]{}); rules[383] = new Rule(-186, new int[]{}); rules[384] = new Rule(-186, new int[]{79,-101,-187}); rules[385] = new Rule(-186, new int[]{80,-243,-188}); rules[386] = new Rule(-187, new int[]{}); rules[387] = new Rule(-187, new int[]{80,-243}); rules[388] = new Rule(-188, new int[]{}); rules[389] = new Rule(-188, new int[]{79,-101}); rules[390] = new Rule(-291, new int[]{-292,10}); rules[391] = new Rule(-317, new int[]{103}); rules[392] = new Rule(-317, new int[]{113}); rules[393] = new Rule(-292, new int[]{-141,5,-258}); rules[394] = new Rule(-292, new int[]{-141,103,-81}); rules[395] = new Rule(-292, new int[]{-141,5,-258,-317,-80}); rules[396] = new Rule(-80, new int[]{-79}); rules[397] = new Rule(-80, new int[]{-303}); rules[398] = new Rule(-80, new int[]{-130,120,-308}); rules[399] = new Rule(-80, new int[]{8,9,-304,120,-308}); rules[400] = new Rule(-80, new int[]{8,-61,9,120,-308}); rules[401] = new Rule(-79, new int[]{-78}); rules[402] = new Rule(-79, new int[]{-52}); rules[403] = new Rule(-200, new int[]{-210,-161}); rules[404] = new Rule(-200, new int[]{26,-155,-111,103,-243,10}); rules[405] = new Rule(-200, new int[]{-3,26,-155,-111,103,-243,10}); rules[406] = new Rule(-201, new int[]{-210,-160}); rules[407] = new Rule(-201, new int[]{26,-155,-111,103,-243,10}); rules[408] = new Rule(-201, new int[]{-3,26,-155,-111,103,-243,10}); rules[409] = new Rule(-197, new int[]{-204}); rules[410] = new Rule(-197, new int[]{-3,-204}); rules[411] = new Rule(-204, new int[]{-211,-162}); rules[412] = new Rule(-204, new int[]{33,-153,-111,5,-257,-192,103,-91,10}); rules[413] = new Rule(-204, new int[]{33,-153,-111,-192,103,-91,10}); rules[414] = new Rule(-204, new int[]{33,-153,-111,5,-257,-192,103,-302,10}); rules[415] = new Rule(-204, new int[]{33,-153,-111,-192,103,-302,10}); rules[416] = new Rule(-204, new int[]{40,-154,-111,-192,103,-243,10}); rules[417] = new Rule(-204, new int[]{-211,141,10}); rules[418] = new Rule(-198, new int[]{-199}); rules[419] = new Rule(-198, new int[]{-3,-199}); rules[420] = new Rule(-199, new int[]{-211,-160}); rules[421] = new Rule(-199, new int[]{33,-153,-111,5,-257,-192,103,-92,10}); rules[422] = new Rule(-199, new int[]{33,-153,-111,-192,103,-92,10}); rules[423] = new Rule(-199, new int[]{40,-154,-111,-192,103,-243,10}); rules[424] = new Rule(-162, new int[]{-161}); rules[425] = new Rule(-162, new int[]{-56}); rules[426] = new Rule(-154, new int[]{-153}); rules[427] = new Rule(-153, new int[]{-125}); rules[428] = new Rule(-153, new int[]{-313,7,-125}); rules[429] = new Rule(-132, new int[]{-120}); rules[430] = new Rule(-313, new int[]{-132}); rules[431] = new Rule(-313, new int[]{-313,7,-132}); rules[432] = new Rule(-125, new int[]{-120}); rules[433] = new Rule(-125, new int[]{-175}); rules[434] = new Rule(-125, new int[]{-175,-138}); rules[435] = new Rule(-120, new int[]{-117}); rules[436] = new Rule(-120, new int[]{-117,-138}); rules[437] = new Rule(-117, new int[]{-130}); rules[438] = new Rule(-208, new int[]{40,-154,-111,-191,-297}); rules[439] = new Rule(-212, new int[]{33,-153,-111,-191,-297}); rules[440] = new Rule(-212, new int[]{33,-153,-111,5,-257,-191,-297}); rules[441] = new Rule(-56, new int[]{100,-96,74,-96,10}); rules[442] = new Rule(-56, new int[]{100,-96,10}); rules[443] = new Rule(-56, new int[]{100,10}); rules[444] = new Rule(-96, new int[]{-130}); rules[445] = new Rule(-96, new int[]{-148}); rules[446] = new Rule(-161, new int[]{-37,-237,10}); rules[447] = new Rule(-160, new int[]{-39,-237,10}); rules[448] = new Rule(-160, new int[]{-56}); rules[449] = new Rule(-111, new int[]{}); rules[450] = new Rule(-111, new int[]{8,9}); rules[451] = new Rule(-111, new int[]{8,-112,9}); rules[452] = new Rule(-112, new int[]{-51}); rules[453] = new Rule(-112, new int[]{-112,10,-51}); rules[454] = new Rule(-51, new int[]{-6,-278}); rules[455] = new Rule(-278, new int[]{-142,5,-257}); rules[456] = new Rule(-278, new int[]{49,-142,5,-257}); rules[457] = new Rule(-278, new int[]{25,-142,5,-257}); rules[458] = new Rule(-278, new int[]{101,-142,5,-257}); rules[459] = new Rule(-278, new int[]{-142,5,-257,103,-83}); rules[460] = new Rule(-278, new int[]{49,-142,5,-257,103,-83}); rules[461] = new Rule(-278, new int[]{25,-142,5,-257,103,-83}); rules[462] = new Rule(-142, new int[]{-118}); rules[463] = new Rule(-142, new int[]{-142,93,-118}); rules[464] = new Rule(-118, new int[]{-130}); rules[465] = new Rule(-257, new int[]{-258}); rules[466] = new Rule(-259, new int[]{-255}); rules[467] = new Rule(-259, new int[]{-238}); rules[468] = new Rule(-259, new int[]{-231}); rules[469] = new Rule(-259, new int[]{-263}); rules[470] = new Rule(-259, new int[]{-283}); rules[471] = new Rule(-244, new int[]{-243}); rules[472] = new Rule(-244, new int[]{-126,5,-244}); rules[473] = new Rule(-243, new int[]{}); rules[474] = new Rule(-243, new int[]{-4}); rules[475] = new Rule(-243, new int[]{-195}); rules[476] = new Rule(-243, new int[]{-116}); rules[477] = new Rule(-243, new int[]{-237}); rules[478] = new Rule(-243, new int[]{-136}); rules[479] = new Rule(-243, new int[]{-31}); rules[480] = new Rule(-243, new int[]{-229}); rules[481] = new Rule(-243, new int[]{-298}); rules[482] = new Rule(-243, new int[]{-107}); rules[483] = new Rule(-243, new int[]{-299}); rules[484] = new Rule(-243, new int[]{-143}); rules[485] = new Rule(-243, new int[]{-284}); rules[486] = new Rule(-243, new int[]{-230}); rules[487] = new Rule(-243, new int[]{-106}); rules[488] = new Rule(-243, new int[]{-294}); rules[489] = new Rule(-243, new int[]{-54}); rules[490] = new Rule(-243, new int[]{-152}); rules[491] = new Rule(-243, new int[]{-109}); rules[492] = new Rule(-243, new int[]{-110}); rules[493] = new Rule(-243, new int[]{-108}); rules[494] = new Rule(-243, new int[]{-320}); rules[495] = new Rule(-108, new int[]{69,-91,92,-243}); rules[496] = new Rule(-109, new int[]{71,-91}); rules[497] = new Rule(-110, new int[]{71,70,-91}); rules[498] = new Rule(-294, new int[]{49,-292}); rules[499] = new Rule(-294, new int[]{8,49,-130,93,-316,9,103,-81}); rules[500] = new Rule(-294, new int[]{49,8,-130,93,-141,9,103,-81}); rules[501] = new Rule(-4, new int[]{-100,-178,-82}); rules[502] = new Rule(-4, new int[]{8,-99,93,-315,9,-178,-81}); rules[503] = new Rule(-315, new int[]{-99}); rules[504] = new Rule(-315, new int[]{-315,93,-99}); rules[505] = new Rule(-316, new int[]{49,-130}); rules[506] = new Rule(-316, new int[]{-316,93,49,-130}); rules[507] = new Rule(-195, new int[]{-100}); rules[508] = new Rule(-116, new int[]{53,-126}); rules[509] = new Rule(-237, new int[]{84,-234,85}); rules[510] = new Rule(-234, new int[]{-244}); rules[511] = new Rule(-234, new int[]{-234,10,-244}); rules[512] = new Rule(-136, new int[]{36,-91,47,-243}); rules[513] = new Rule(-136, new int[]{36,-91,47,-243,28,-243}); rules[514] = new Rule(-320, new int[]{34,-91,51,-322,-235,85}); rules[515] = new Rule(-320, new int[]{34,-91,51,-322,10,-235,85}); rules[516] = new Rule(-322, new int[]{-321}); rules[517] = new Rule(-322, new int[]{-322,10,-321}); rules[518] = new Rule(-321, new int[]{-319,35,-91,5,-243}); rules[519] = new Rule(-321, new int[]{-319,5,-243}); rules[520] = new Rule(-31, new int[]{21,-91,54,-32,-235,85}); rules[521] = new Rule(-31, new int[]{21,-91,54,-32,10,-235,85}); rules[522] = new Rule(-31, new int[]{21,-91,54,-235,85}); rules[523] = new Rule(-32, new int[]{-245}); rules[524] = new Rule(-32, new int[]{-32,10,-245}); rules[525] = new Rule(-245, new int[]{-68,5,-243}); rules[526] = new Rule(-68, new int[]{-98}); rules[527] = new Rule(-68, new int[]{-68,93,-98}); rules[528] = new Rule(-98, new int[]{-86}); rules[529] = new Rule(-235, new int[]{}); rules[530] = new Rule(-235, new int[]{28,-234}); rules[531] = new Rule(-229, new int[]{90,-234,91,-81}); rules[532] = new Rule(-298, new int[]{50,-91,-274,-243}); rules[533] = new Rule(-274, new int[]{92}); rules[534] = new Rule(-274, new int[]{}); rules[535] = new Rule(-152, new int[]{56,-91,92,-243}); rules[536] = new Rule(-106, new int[]{32,-130,-256,130,-91,92,-243}); rules[537] = new Rule(-106, new int[]{32,49,-130,5,-258,130,-91,92,-243}); rules[538] = new Rule(-106, new int[]{32,49,-130,130,-91,92,-243}); rules[539] = new Rule(-256, new int[]{5,-258}); rules[540] = new Rule(-256, new int[]{}); rules[541] = new Rule(-107, new int[]{31,-17,-130,-268,-91,-104,-91,-274,-243}); rules[542] = new Rule(-17, new int[]{49}); rules[543] = new Rule(-17, new int[]{}); rules[544] = new Rule(-268, new int[]{103}); rules[545] = new Rule(-268, new int[]{5,-164,103}); rules[546] = new Rule(-104, new int[]{67}); rules[547] = new Rule(-104, new int[]{68}); rules[548] = new Rule(-299, new int[]{51,-65,92,-243}); rules[549] = new Rule(-143, new int[]{38}); rules[550] = new Rule(-284, new int[]{95,-234,-272}); rules[551] = new Rule(-272, new int[]{94,-234,85}); rules[552] = new Rule(-272, new int[]{29,-55,85}); rules[553] = new Rule(-55, new int[]{-58,-236}); rules[554] = new Rule(-55, new int[]{-58,10,-236}); rules[555] = new Rule(-55, new int[]{-234}); rules[556] = new Rule(-58, new int[]{-57}); rules[557] = new Rule(-58, new int[]{-58,10,-57}); rules[558] = new Rule(-236, new int[]{}); rules[559] = new Rule(-236, new int[]{28,-234}); rules[560] = new Rule(-57, new int[]{73,-59,92,-243}); rules[561] = new Rule(-59, new int[]{-163}); rules[562] = new Rule(-59, new int[]{-123,5,-163}); rules[563] = new Rule(-163, new int[]{-164}); rules[564] = new Rule(-123, new int[]{-130}); rules[565] = new Rule(-230, new int[]{43}); rules[566] = new Rule(-230, new int[]{43,-81}); rules[567] = new Rule(-65, new int[]{-82}); rules[568] = new Rule(-65, new int[]{-65,93,-82}); rules[569] = new Rule(-54, new int[]{-158}); rules[570] = new Rule(-158, new int[]{-157}); rules[571] = new Rule(-82, new int[]{-81}); rules[572] = new Rule(-82, new int[]{-302}); rules[573] = new Rule(-81, new int[]{-91}); rules[574] = new Rule(-81, new int[]{-105}); rules[575] = new Rule(-91, new int[]{-90}); rules[576] = new Rule(-91, new int[]{-223}); rules[577] = new Rule(-92, new int[]{-91}); rules[578] = new Rule(-92, new int[]{-302}); rules[579] = new Rule(-90, new int[]{-89}); rules[580] = new Rule(-90, new int[]{-90,15,-89}); rules[581] = new Rule(-239, new int[]{17,8,-266,9}); rules[582] = new Rule(-277, new int[]{18,8,-266,9}); rules[583] = new Rule(-277, new int[]{18,8,-265,9}); rules[584] = new Rule(-223, new int[]{-91,13,-91,5,-91}); rules[585] = new Rule(-265, new int[]{-164,-282}); rules[586] = new Rule(-265, new int[]{-164,4,-282}); rules[587] = new Rule(-266, new int[]{-164}); rules[588] = new Rule(-266, new int[]{-164,-281}); rules[589] = new Rule(-266, new int[]{-164,4,-281}); rules[590] = new Rule(-5, new int[]{8,-61,9}); rules[591] = new Rule(-5, new int[]{}); rules[592] = new Rule(-157, new int[]{72,-266,-64}); rules[593] = new Rule(-157, new int[]{72,-266,11,-62,12,-5}); rules[594] = new Rule(-157, new int[]{72,22,8,-312,9}); rules[595] = new Rule(-311, new int[]{-130,103,-89}); rules[596] = new Rule(-311, new int[]{-89}); rules[597] = new Rule(-312, new int[]{-311}); rules[598] = new Rule(-312, new int[]{-312,93,-311}); rules[599] = new Rule(-64, new int[]{}); rules[600] = new Rule(-64, new int[]{8,-62,9}); rules[601] = new Rule(-89, new int[]{-93}); rules[602] = new Rule(-89, new int[]{-89,-180,-93}); rules[603] = new Rule(-89, new int[]{-249,8,-325,9}); rules[604] = new Rule(-318, new int[]{-266,8,-325,9}); rules[605] = new Rule(-319, new int[]{-266,8,-326,9}); rules[606] = new Rule(-326, new int[]{-324}); rules[607] = new Rule(-326, new int[]{-326,10,-324}); rules[608] = new Rule(-326, new int[]{-326,93,-324}); rules[609] = new Rule(-325, new int[]{-323}); rules[610] = new Rule(-325, new int[]{-325,10,-323}); rules[611] = new Rule(-325, new int[]{-325,93,-323}); rules[612] = new Rule(-323, new int[]{49,-130,5,-258}); rules[613] = new Rule(-323, new int[]{49,-130}); rules[614] = new Rule(-323, new int[]{-318}); rules[615] = new Rule(-324, new int[]{-130,5,-258}); rules[616] = new Rule(-324, new int[]{-130}); rules[617] = new Rule(-324, new int[]{49,-130,5,-258}); rules[618] = new Rule(-324, new int[]{49,-130}); rules[619] = new Rule(-324, new int[]{-319}); rules[620] = new Rule(-102, new int[]{-93}); rules[621] = new Rule(-102, new int[]{}); rules[622] = new Rule(-105, new int[]{-93,5,-102}); rules[623] = new Rule(-105, new int[]{5,-102}); rules[624] = new Rule(-105, new int[]{-93,5,-102,5,-93}); rules[625] = new Rule(-105, new int[]{5,-102,5,-93}); rules[626] = new Rule(-180, new int[]{113}); rules[627] = new Rule(-180, new int[]{118}); rules[628] = new Rule(-180, new int[]{116}); rules[629] = new Rule(-180, new int[]{114}); rules[630] = new Rule(-180, new int[]{117}); rules[631] = new Rule(-180, new int[]{115}); rules[632] = new Rule(-180, new int[]{130}); rules[633] = new Rule(-93, new int[]{-76}); rules[634] = new Rule(-93, new int[]{-93,-181,-76}); rules[635] = new Rule(-181, new int[]{109}); rules[636] = new Rule(-181, new int[]{108}); rules[637] = new Rule(-181, new int[]{121}); rules[638] = new Rule(-181, new int[]{122}); rules[639] = new Rule(-181, new int[]{119}); rules[640] = new Rule(-185, new int[]{129}); rules[641] = new Rule(-185, new int[]{131}); rules[642] = new Rule(-247, new int[]{-249}); rules[643] = new Rule(-247, new int[]{-250}); rules[644] = new Rule(-250, new int[]{-76,129,-266}); rules[645] = new Rule(-249, new int[]{-76,131,-266}); rules[646] = new Rule(-77, new int[]{-88}); rules[647] = new Rule(-251, new int[]{-77,112,-88}); rules[648] = new Rule(-76, new int[]{-88}); rules[649] = new Rule(-76, new int[]{-157}); rules[650] = new Rule(-76, new int[]{-251}); rules[651] = new Rule(-76, new int[]{-76,-182,-88}); rules[652] = new Rule(-76, new int[]{-76,-182,-251}); rules[653] = new Rule(-76, new int[]{-247}); rules[654] = new Rule(-182, new int[]{111}); rules[655] = new Rule(-182, new int[]{110}); rules[656] = new Rule(-182, new int[]{124}); rules[657] = new Rule(-182, new int[]{125}); rules[658] = new Rule(-182, new int[]{126}); rules[659] = new Rule(-182, new int[]{127}); rules[660] = new Rule(-182, new int[]{123}); rules[661] = new Rule(-52, new int[]{59,8,-266,9}); rules[662] = new Rule(-53, new int[]{8,-91,93,-73,-304,-310,9}); rules[663] = new Rule(-88, new int[]{52}); rules[664] = new Rule(-88, new int[]{-14}); rules[665] = new Rule(-88, new int[]{-52}); rules[666] = new Rule(-88, new int[]{11,-63,12}); rules[667] = new Rule(-88, new int[]{128,-88}); rules[668] = new Rule(-88, new int[]{-183,-88}); rules[669] = new Rule(-88, new int[]{-100}); rules[670] = new Rule(-88, new int[]{-53}); rules[671] = new Rule(-14, new int[]{-148}); rules[672] = new Rule(-14, new int[]{-15}); rules[673] = new Rule(-103, new int[]{-99,14,-99}); rules[674] = new Rule(-103, new int[]{-99,14,-103}); rules[675] = new Rule(-100, new int[]{-115,-99}); rules[676] = new Rule(-100, new int[]{-99}); rules[677] = new Rule(-100, new int[]{-103}); rules[678] = new Rule(-115, new int[]{134}); rules[679] = new Rule(-115, new int[]{-115,134}); rules[680] = new Rule(-9, new int[]{-164,-64}); rules[681] = new Rule(-9, new int[]{-283,-64}); rules[682] = new Rule(-301, new int[]{-130}); rules[683] = new Rule(-301, new int[]{-301,7,-121}); rules[684] = new Rule(-300, new int[]{-301}); rules[685] = new Rule(-300, new int[]{-301,-281}); rules[686] = new Rule(-99, new int[]{-130}); rules[687] = new Rule(-99, new int[]{-175}); rules[688] = new Rule(-99, new int[]{38,-130}); rules[689] = new Rule(-99, new int[]{8,-81,9}); rules[690] = new Rule(-99, new int[]{-239}); rules[691] = new Rule(-99, new int[]{-277}); rules[692] = new Rule(-99, new int[]{-14,7,-121}); rules[693] = new Rule(-99, new int[]{-99,11,-65,12}); rules[694] = new Rule(-99, new int[]{-99,16,-105,12}); rules[695] = new Rule(-99, new int[]{-99,8,-62,9}); rules[696] = new Rule(-99, new int[]{-99,7,-131}); rules[697] = new Rule(-99, new int[]{-53,7,-131}); rules[698] = new Rule(-99, new int[]{-99,135}); rules[699] = new Rule(-99, new int[]{-99,4,-281}); rules[700] = new Rule(-62, new int[]{-65}); rules[701] = new Rule(-62, new int[]{}); rules[702] = new Rule(-63, new int[]{-71}); rules[703] = new Rule(-63, new int[]{}); rules[704] = new Rule(-71, new int[]{-84}); rules[705] = new Rule(-71, new int[]{-71,93,-84}); rules[706] = new Rule(-84, new int[]{-81}); rules[707] = new Rule(-84, new int[]{-81,6,-81}); rules[708] = new Rule(-149, new int[]{137}); rules[709] = new Rule(-149, new int[]{139}); rules[710] = new Rule(-148, new int[]{-150}); rules[711] = new Rule(-148, new int[]{138}); rules[712] = new Rule(-150, new int[]{-149}); rules[713] = new Rule(-150, new int[]{-150,-149}); rules[714] = new Rule(-175, new int[]{41,-184}); rules[715] = new Rule(-191, new int[]{10}); rules[716] = new Rule(-191, new int[]{10,-190,10}); rules[717] = new Rule(-192, new int[]{}); rules[718] = new Rule(-192, new int[]{10,-190}); rules[719] = new Rule(-190, new int[]{-193}); rules[720] = new Rule(-190, new int[]{-190,10,-193}); rules[721] = new Rule(-130, new int[]{136}); rules[722] = new Rule(-130, new int[]{-134}); rules[723] = new Rule(-130, new int[]{-135}); rules[724] = new Rule(-121, new int[]{-130}); rules[725] = new Rule(-121, new int[]{-275}); rules[726] = new Rule(-121, new int[]{-276}); rules[727] = new Rule(-131, new int[]{-130}); rules[728] = new Rule(-131, new int[]{-275}); rules[729] = new Rule(-131, new int[]{-175}); rules[730] = new Rule(-193, new int[]{140}); rules[731] = new Rule(-193, new int[]{142}); rules[732] = new Rule(-193, new int[]{143}); rules[733] = new Rule(-193, new int[]{144}); rules[734] = new Rule(-193, new int[]{146}); rules[735] = new Rule(-193, new int[]{145}); rules[736] = new Rule(-194, new int[]{145}); rules[737] = new Rule(-194, new int[]{144}); rules[738] = new Rule(-194, new int[]{140}); rules[739] = new Rule(-134, new int[]{79}); rules[740] = new Rule(-134, new int[]{80}); rules[741] = new Rule(-135, new int[]{74}); rules[742] = new Rule(-135, new int[]{72}); rules[743] = new Rule(-133, new int[]{78}); rules[744] = new Rule(-133, new int[]{77}); rules[745] = new Rule(-133, new int[]{76}); rules[746] = new Rule(-133, new int[]{75}); rules[747] = new Rule(-275, new int[]{-133}); rules[748] = new Rule(-275, new int[]{65}); rules[749] = new Rule(-275, new int[]{60}); rules[750] = new Rule(-275, new int[]{121}); rules[751] = new Rule(-275, new int[]{18}); rules[752] = new Rule(-275, new int[]{17}); rules[753] = new Rule(-275, new int[]{59}); rules[754] = new Rule(-275, new int[]{19}); rules[755] = new Rule(-275, new int[]{122}); rules[756] = new Rule(-275, new int[]{123}); rules[757] = new Rule(-275, new int[]{124}); rules[758] = new Rule(-275, new int[]{125}); rules[759] = new Rule(-275, new int[]{126}); rules[760] = new Rule(-275, new int[]{127}); rules[761] = new Rule(-275, new int[]{128}); rules[762] = new Rule(-275, new int[]{129}); rules[763] = new Rule(-275, new int[]{130}); rules[764] = new Rule(-275, new int[]{131}); rules[765] = new Rule(-275, new int[]{20}); rules[766] = new Rule(-275, new int[]{70}); rules[767] = new Rule(-275, new int[]{84}); rules[768] = new Rule(-275, new int[]{21}); rules[769] = new Rule(-275, new int[]{22}); rules[770] = new Rule(-275, new int[]{25}); rules[771] = new Rule(-275, new int[]{26}); rules[772] = new Rule(-275, new int[]{27}); rules[773] = new Rule(-275, new int[]{68}); rules[774] = new Rule(-275, new int[]{92}); rules[775] = new Rule(-275, new int[]{28}); rules[776] = new Rule(-275, new int[]{29}); rules[777] = new Rule(-275, new int[]{30}); rules[778] = new Rule(-275, new int[]{23}); rules[779] = new Rule(-275, new int[]{97}); rules[780] = new Rule(-275, new int[]{94}); rules[781] = new Rule(-275, new int[]{31}); rules[782] = new Rule(-275, new int[]{32}); rules[783] = new Rule(-275, new int[]{33}); rules[784] = new Rule(-275, new int[]{36}); rules[785] = new Rule(-275, new int[]{37}); rules[786] = new Rule(-275, new int[]{38}); rules[787] = new Rule(-275, new int[]{96}); rules[788] = new Rule(-275, new int[]{39}); rules[789] = new Rule(-275, new int[]{40}); rules[790] = new Rule(-275, new int[]{42}); rules[791] = new Rule(-275, new int[]{43}); rules[792] = new Rule(-275, new int[]{44}); rules[793] = new Rule(-275, new int[]{90}); rules[794] = new Rule(-275, new int[]{45}); rules[795] = new Rule(-275, new int[]{95}); rules[796] = new Rule(-275, new int[]{46}); rules[797] = new Rule(-275, new int[]{24}); rules[798] = new Rule(-275, new int[]{47}); rules[799] = new Rule(-275, new int[]{67}); rules[800] = new Rule(-275, new int[]{91}); rules[801] = new Rule(-275, new int[]{48}); rules[802] = new Rule(-275, new int[]{49}); rules[803] = new Rule(-275, new int[]{50}); rules[804] = new Rule(-275, new int[]{51}); rules[805] = new Rule(-275, new int[]{52}); rules[806] = new Rule(-275, new int[]{53}); rules[807] = new Rule(-275, new int[]{54}); rules[808] = new Rule(-275, new int[]{55}); rules[809] = new Rule(-275, new int[]{57}); rules[810] = new Rule(-275, new int[]{98}); rules[811] = new Rule(-275, new int[]{99}); rules[812] = new Rule(-275, new int[]{102}); rules[813] = new Rule(-275, new int[]{100}); rules[814] = new Rule(-275, new int[]{101}); rules[815] = new Rule(-275, new int[]{58}); rules[816] = new Rule(-275, new int[]{71}); rules[817] = new Rule(-275, new int[]{34}); rules[818] = new Rule(-275, new int[]{35}); rules[819] = new Rule(-276, new int[]{41}); rules[820] = new Rule(-276, new int[]{85}); rules[821] = new Rule(-184, new int[]{108}); rules[822] = new Rule(-184, new int[]{109}); rules[823] = new Rule(-184, new int[]{110}); rules[824] = new Rule(-184, new int[]{111}); rules[825] = new Rule(-184, new int[]{113}); rules[826] = new Rule(-184, new int[]{114}); rules[827] = new Rule(-184, new int[]{115}); rules[828] = new Rule(-184, new int[]{116}); rules[829] = new Rule(-184, new int[]{117}); rules[830] = new Rule(-184, new int[]{118}); rules[831] = new Rule(-184, new int[]{121}); rules[832] = new Rule(-184, new int[]{122}); rules[833] = new Rule(-184, new int[]{123}); rules[834] = new Rule(-184, new int[]{124}); rules[835] = new Rule(-184, new int[]{125}); rules[836] = new Rule(-184, new int[]{126}); rules[837] = new Rule(-184, new int[]{127}); rules[838] = new Rule(-184, new int[]{128}); rules[839] = new Rule(-184, new int[]{130}); rules[840] = new Rule(-184, new int[]{132}); rules[841] = new Rule(-184, new int[]{133}); rules[842] = new Rule(-184, new int[]{-178}); rules[843] = new Rule(-184, new int[]{112}); rules[844] = new Rule(-178, new int[]{103}); rules[845] = new Rule(-178, new int[]{104}); rules[846] = new Rule(-178, new int[]{105}); rules[847] = new Rule(-178, new int[]{106}); rules[848] = new Rule(-178, new int[]{107}); rules[849] = new Rule(-302, new int[]{-130,120,-308}); rules[850] = new Rule(-302, new int[]{8,9,-305,120,-308}); rules[851] = new Rule(-302, new int[]{8,-130,5,-257,9,-305,120,-308}); rules[852] = new Rule(-302, new int[]{8,-130,10,-306,9,-305,120,-308}); rules[853] = new Rule(-302, new int[]{8,-130,5,-257,10,-306,9,-305,120,-308}); rules[854] = new Rule(-302, new int[]{8,-91,93,-73,-304,-310,9,-314}); rules[855] = new Rule(-302, new int[]{-303}); rules[856] = new Rule(-310, new int[]{}); rules[857] = new Rule(-310, new int[]{10,-306}); rules[858] = new Rule(-314, new int[]{-305,120,-308}); rules[859] = new Rule(-303, new int[]{33,-304,120,-308}); rules[860] = new Rule(-303, new int[]{33,8,9,-304,120,-308}); rules[861] = new Rule(-303, new int[]{33,8,-306,9,-304,120,-308}); rules[862] = new Rule(-303, new int[]{40,120,-309}); rules[863] = new Rule(-303, new int[]{40,8,9,120,-309}); rules[864] = new Rule(-303, new int[]{40,8,-306,9,120,-309}); rules[865] = new Rule(-306, new int[]{-307}); rules[866] = new Rule(-306, new int[]{-306,10,-307}); rules[867] = new Rule(-307, new int[]{-141,-304}); rules[868] = new Rule(-304, new int[]{}); rules[869] = new Rule(-304, new int[]{5,-257}); rules[870] = new Rule(-305, new int[]{}); rules[871] = new Rule(-305, new int[]{5,-259}); rules[872] = new Rule(-308, new int[]{-91}); rules[873] = new Rule(-308, new int[]{-237}); rules[874] = new Rule(-308, new int[]{-136}); rules[875] = new Rule(-308, new int[]{-298}); rules[876] = new Rule(-308, new int[]{-229}); rules[877] = new Rule(-308, new int[]{-107}); rules[878] = new Rule(-308, new int[]{-106}); rules[879] = new Rule(-308, new int[]{-31}); rules[880] = new Rule(-308, new int[]{-284}); rules[881] = new Rule(-308, new int[]{-152}); rules[882] = new Rule(-308, new int[]{-109}); rules[883] = new Rule(-309, new int[]{-195}); rules[884] = new Rule(-309, new int[]{-237}); rules[885] = new Rule(-309, new int[]{-136}); rules[886] = new Rule(-309, new int[]{-298}); rules[887] = new Rule(-309, new int[]{-229}); rules[888] = new Rule(-309, new int[]{-107}); rules[889] = new Rule(-309, new int[]{-106}); rules[890] = new Rule(-309, new int[]{-31}); rules[891] = new Rule(-309, new int[]{-284}); rules[892] = new Rule(-309, new int[]{-152}); rules[893] = new Rule(-309, new int[]{-109}); rules[894] = new Rule(-309, new int[]{-230}); rules[895] = new Rule(-309, new int[]{-4}); } protected override void Initialize() { this.InitSpecialTokens((int)Tokens.error, (int)Tokens.EOF); this.InitStates(states); this.InitRules(rules); this.InitNonTerminals(nonTerms); } protected override void DoAction(int action) { CurrentSemanticValue = new Union(); switch (action) { case 2: // parse_goal -> program_file { root = ValueStack[ValueStack.Depth-1].stn; } break; case 3: // parse_goal -> unit_file { root = ValueStack[ValueStack.Depth-1].stn; } break; case 4: // parse_goal -> parts { root = ValueStack[ValueStack.Depth-1].stn; } break; case 5: // parts -> tkParseModeExpression, expr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 6: // parts -> tkParseModeExpression, tkType, type_decl_identifier { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].id; } break; case 7: // parts -> tkParseModeType, variable_as_type { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 8: // parts -> tkParseModeStatement, stmt_or_expression { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 9: // stmt_or_expression -> expr { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);} break; case 10: // stmt_or_expression -> assignment { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 11: // stmt_or_expression -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 12: // optional_head_compiler_directives -> /* empty */ { CurrentSemanticValue.ob = null; } break; case 13: // optional_head_compiler_directives -> head_compiler_directives { CurrentSemanticValue.ob = null; } break; case 14: // head_compiler_directives -> one_compiler_directive { CurrentSemanticValue.ob = null; } break; case 15: // head_compiler_directives -> head_compiler_directives, one_compiler_directive { CurrentSemanticValue.ob = null; } break; case 16: // one_compiler_directive -> tkDirectiveName, tkIdentifier { parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); CurrentSemanticValue.ob = null; } break; case 17: // one_compiler_directive -> tkDirectiveName, tkStringLiteral { parsertools.AddErrorFromResource("UNSUPPORTED_OLD_DIRECTIVES",CurrentLocationSpan); CurrentSemanticValue.ob = null; } break; case 18: // program_file -> program_header, optional_head_compiler_directives, uses_clause, // program_block, optional_tk_point { CurrentSemanticValue.stn = NewProgramModule(ValueStack[ValueStack.Depth-5].stn as program_name, ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].stn as uses_list, ValueStack[ValueStack.Depth-2].stn, ValueStack[ValueStack.Depth-1].ob, CurrentLocationSpan); } break; case 19: // optional_tk_point -> tkPoint { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 20: // optional_tk_point -> tkSemiColon { CurrentSemanticValue.ob = null; } break; case 21: // optional_tk_point -> tkColon { CurrentSemanticValue.ob = null; } break; case 22: // optional_tk_point -> tkComma { CurrentSemanticValue.ob = null; } break; case 23: // optional_tk_point -> tkDotDot { CurrentSemanticValue.ob = null; } break; case 25: // program_header -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 26: // program_header -> tkProgram, identifier, program_heading_2 { CurrentSemanticValue.stn = new program_name(ValueStack[ValueStack.Depth-2].id,CurrentLocationSpan); } break; case 27: // program_heading_2 -> tkSemiColon { CurrentSemanticValue.ob = null; } break; case 28: // program_heading_2 -> tkRoundOpen, program_param_list, tkRoundClose, tkSemiColon { CurrentSemanticValue.ob = null; } break; case 29: // program_param_list -> program_param { CurrentSemanticValue.ob = null; } break; case 30: // program_param_list -> program_param_list, tkComma, program_param { CurrentSemanticValue.ob = null; } break; case 31: // program_param -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 32: // program_block -> program_decl_sect_list, compound_stmt { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-2].stn as declarations, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 33: // program_decl_sect_list -> decl_sect_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 34: // ident_or_keyword_pointseparator_list -> identifier_or_keyword { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 35: // ident_or_keyword_pointseparator_list -> ident_or_keyword_pointseparator_list, // tkPoint, identifier_or_keyword { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 36: // uses_clause -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 37: // uses_clause -> uses_clause, tkUses, used_units_list, tkSemiColon { if (parsertools.build_tree_for_formatter) { if (ValueStack[ValueStack.Depth-4].stn == null) { CurrentSemanticValue.stn = new uses_closure(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan); } else { (ValueStack[ValueStack.Depth-4].stn as uses_closure).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn; } } else { if (ValueStack[ValueStack.Depth-4].stn == null) { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } else { (ValueStack[ValueStack.Depth-4].stn as uses_list).AddUsesList(ValueStack[ValueStack.Depth-2].stn as uses_list,CurrentLocationSpan); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-4].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } } } break; case 38: // used_units_list -> used_unit_name { CurrentSemanticValue.stn = new uses_list(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace,CurrentLocationSpan); } break; case 39: // used_units_list -> used_units_list, tkComma, used_unit_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as uses_list).Add(ValueStack[ValueStack.Depth-1].stn as unit_or_namespace, CurrentLocationSpan); } break; case 40: // used_unit_name -> ident_or_keyword_pointseparator_list { CurrentSemanticValue.stn = new unit_or_namespace(ValueStack[ValueStack.Depth-1].stn as ident_list,CurrentLocationSpan); } break; case 41: // used_unit_name -> ident_or_keyword_pointseparator_list, tkIn, tkStringLiteral { CurrentSemanticValue.stn = new uses_unit_in(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].stn as string_const, CurrentLocationSpan); } break; case 42: // unit_file -> attribute_declarations, unit_header, interface_part, // implementation_part, initialization_part, tkPoint { CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-5].stn as unit_name, ValueStack[ValueStack.Depth-4].stn as interface_node, ValueStack[ValueStack.Depth-3].stn as implementation_node, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-6].stn as attribute_list, CurrentLocationSpan); } break; case 43: // unit_file -> attribute_declarations, unit_header, abc_interface_part, // initialization_part, tkPoint { CurrentSemanticValue.stn = new unit_module(ValueStack[ValueStack.Depth-4].stn as unit_name, ValueStack[ValueStack.Depth-3].stn as interface_node, null, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).initialization_sect, (ValueStack[ValueStack.Depth-2].stn as initfinal_part).finalization_sect, ValueStack[ValueStack.Depth-5].stn as attribute_list, CurrentLocationSpan); } break; case 44: // unit_header -> unit_key_word, unit_name, tkSemiColon, // optional_head_compiler_directives { CurrentSemanticValue.stn = NewUnitHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].id, CurrentLocationSpan); } break; case 45: // unit_header -> tkNamespace, ident_or_keyword_pointseparator_list, tkSemiColon, // optional_head_compiler_directives { CurrentSemanticValue.stn = NewNamespaceHeading(new ident(ValueStack[ValueStack.Depth-4].ti.text, LocationStack[LocationStack.Depth-4]), ValueStack[ValueStack.Depth-3].stn as ident_list, CurrentLocationSpan); } break; case 46: // unit_key_word -> tkUnit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 47: // unit_key_word -> tkLibrary { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 48: // unit_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 49: // interface_part -> tkInterface, uses_clause, interface_decl_sect_list { CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 50: // implementation_part -> tkImplementation, uses_clause, decl_sect_list { CurrentSemanticValue.stn = new implementation_node(ValueStack[ValueStack.Depth-2].stn as uses_list, ValueStack[ValueStack.Depth-1].stn as declarations, null, LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1])); } break; case 51: // abc_interface_part -> uses_clause, decl_sect_list { CurrentSemanticValue.stn = new interface_node(ValueStack[ValueStack.Depth-1].stn as declarations, ValueStack[ValueStack.Depth-2].stn as uses_list, null, null); } break; case 52: // initialization_part -> tkEnd { CurrentSemanticValue.stn = new initfinal_part(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 53: // initialization_part -> tkInitialization, stmt_list, tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); } break; case 54: // initialization_part -> tkInitialization, stmt_list, tkFinalization, stmt_list, // tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-5].ti, ValueStack[ValueStack.Depth-4].stn as statement_list, ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, CurrentLocationSpan); } break; case 55: // initialization_part -> tkBegin, stmt_list, tkEnd { CurrentSemanticValue.stn = new initfinal_part(ValueStack[ValueStack.Depth-3].ti, ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].ti, null, null, CurrentLocationSpan); } break; case 56: // interface_decl_sect_list -> int_decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 57: // int_decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); if (GlobalDecls==null) GlobalDecls = CurrentSemanticValue.stn as declarations; } break; case 58: // int_decl_sect_list1 -> int_decl_sect_list1, int_decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 59: // decl_sect_list -> decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 60: // decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); if (GlobalDecls==null) GlobalDecls = CurrentSemanticValue.stn as declarations; } break; case 61: // decl_sect_list1 -> decl_sect_list1, decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 62: // inclass_decl_sect_list -> inclass_decl_sect_list1 { if ((ValueStack[ValueStack.Depth-1].stn as declarations).Count > 0) CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; else CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 63: // inclass_decl_sect_list1 -> /* empty */ { CurrentSemanticValue.stn = new declarations(); } break; case 64: // inclass_decl_sect_list1 -> inclass_decl_sect_list1, abc_decl_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as declarations).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 65: // int_decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 66: // int_decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 67: // int_decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 68: // int_decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 69: // int_decl_sect -> int_proc_header { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 70: // int_decl_sect -> int_func_header { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 71: // decl_sect -> label_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 72: // decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 73: // decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 74: // decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 75: // decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 76: // decl_sect -> proc_func_constr_destr_decl_with_attr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 77: // proc_func_constr_destr_decl -> proc_func_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 78: // proc_func_constr_destr_decl -> constr_destr_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 79: // proc_func_constr_destr_decl_with_attr -> attribute_declarations, // proc_func_constr_destr_decl { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).AssignAttrList(ValueStack[ValueStack.Depth-2].stn as attribute_list); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 80: // abc_decl_sect -> label_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 81: // abc_decl_sect -> const_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 82: // abc_decl_sect -> res_str_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 83: // abc_decl_sect -> type_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 84: // abc_decl_sect -> var_decl_sect { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 85: // int_proc_header -> attribute_declarations, proc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; } break; case 86: // int_proc_header -> attribute_declarations, proc_header, tkForward, tkSemiColon { CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); } break; case 87: // int_func_header -> attribute_declarations, func_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; (CurrentSemanticValue.td as procedure_header).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; } break; case 88: // int_func_header -> attribute_declarations, func_header, tkForward, tkSemiColon { CurrentSemanticValue.td = NewProcedureHeader(ValueStack[ValueStack.Depth-4].stn as attribute_list, ValueStack[ValueStack.Depth-3].td as procedure_header, ValueStack[ValueStack.Depth-2].id as procedure_attribute, CurrentLocationSpan); } break; case 89: // label_decl_sect -> tkLabel, label_list, tkSemiColon { CurrentSemanticValue.stn = new label_definitions(ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); } break; case 90: // label_list -> label_name { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 91: // label_list -> label_list, tkComma, label_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 92: // label_name -> tkInteger { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan); } break; case 93: // label_name -> tkFloat { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ex.ToString(), CurrentLocationSpan); } break; case 94: // label_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 95: // const_decl_sect -> tkConst, const_decl { CurrentSemanticValue.stn = new consts_definitions_list(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); } break; case 96: // const_decl_sect -> const_decl_sect, const_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as consts_definitions_list).Add(ValueStack[ValueStack.Depth-1].stn as const_definition, CurrentLocationSpan); } break; case 97: // res_str_decl_sect -> tkResourceString, const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 98: // res_str_decl_sect -> res_str_decl_sect, const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 99: // type_decl_sect -> tkType, type_decl { CurrentSemanticValue.stn = new type_declarations(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); } break; case 100: // type_decl_sect -> type_decl_sect, type_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as type_declarations).Add(ValueStack[ValueStack.Depth-1].stn as type_declaration, CurrentLocationSpan); } break; case 101: // var_decl_sect -> tkVar, var_decl { CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 102: // var_decl_sect -> tkEvent, var_decl { CurrentSemanticValue.stn = new variable_definitions(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); (ValueStack[ValueStack.Depth-1].stn as var_def_statement).is_event = true; } break; case 103: // var_decl_sect -> var_decl_sect, var_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as variable_definitions).Add(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 104: // var_decl_sect -> tkVar, tkRoundOpen, identifier, tkComma, ident_list, // tkRoundClose, tkAssign, expr_l1, tkSemiColon { (ValueStack[ValueStack.Depth-5].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-7].id); ValueStack[ValueStack.Depth-5].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 105: // const_decl -> only_const_decl, tkSemiColon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 106: // only_const_decl -> const_name, tkEqual, init_const_expr { CurrentSemanticValue.stn = new simple_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 107: // only_const_decl -> const_name, tkColon, type_ref, tkEqual, typed_const { CurrentSemanticValue.stn = new typed_const_definition(ValueStack[ValueStack.Depth-5].id, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-3].td, CurrentLocationSpan); } break; case 108: // init_const_expr -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 109: // init_const_expr -> array_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 110: // const_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 111: // expr_l1_list -> expr_l1 { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 112: // expr_l1_list -> expr_l1_list, tkComma, expr_l1 { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 113: // const_expr -> const_simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 114: // const_expr -> const_simple_expr, const_relop, const_simple_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 115: // const_expr -> question_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 116: // question_constexpr -> const_expr, tkQuestion, const_expr, tkColon, const_expr { CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 117: // const_relop -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 118: // const_relop -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 119: // const_relop -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 120: // const_relop -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 121: // const_relop -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 122: // const_relop -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 123: // const_relop -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 124: // const_simple_expr -> const_term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 125: // const_simple_expr -> const_simple_expr, const_addop, const_term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 126: // const_addop -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 127: // const_addop -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 128: // const_addop -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 129: // const_addop -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 130: // as_is_constexpr -> const_term, typecast_op, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsConstexpr(ValueStack[ValueStack.Depth-3].ex, (op_typecast)ValueStack[ValueStack.Depth-2].ob, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 131: // power_constexpr -> const_factor, tkStarStar, const_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 132: // const_term -> const_factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 133: // const_term -> as_is_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 134: // const_term -> power_constexpr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 135: // const_term -> const_term, const_mulop, const_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 136: // const_term -> const_term, const_mulop, power_constexpr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 137: // const_mulop -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 138: // const_mulop -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 139: // const_mulop -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 140: // const_mulop -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 141: // const_mulop -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 142: // const_mulop -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 143: // const_mulop -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 144: // const_factor -> const_variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 145: // const_factor -> const_set { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 146: // const_factor -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 147: // const_factor -> tkNil { CurrentSemanticValue.ex = new nil_const(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 148: // const_factor -> tkAddressOf, const_factor { CurrentSemanticValue.ex = new get_address(ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); } break; case 149: // const_factor -> tkRoundOpen, const_expr, tkRoundClose { CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 150: // const_factor -> tkNot, const_factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 151: // const_factor -> sign, const_factor { // ������ ��������� ����� �������� if (ValueStack[ValueStack.Depth-2].op.type == Operators.Minus) { var i64 = ValueStack[ValueStack.Depth-1].ex as int64_const; if (i64 != null && i64.val == (Int64)Int32.MaxValue + 1) { CurrentSemanticValue.ex = new int32_const(Int32.MinValue,CurrentLocationSpan); break; } var ui64 = ValueStack[ValueStack.Depth-1].ex as uint64_const; if (ui64 != null && ui64.val == (UInt64)Int64.MaxValue + 1) { CurrentSemanticValue.ex = new int64_const(Int64.MinValue,CurrentLocationSpan); break; } if (ui64 != null && ui64.val > (UInt64)Int64.MaxValue + 1) { parsertools.AddErrorFromResource("BAD_INT2",CurrentLocationSpan); break; } // ����� ������� ���������� ��������� � �������������� ������� } CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 152: // const_factor -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 153: // const_set -> tkSquareOpen, const_elem_list, tkSquareClose { CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 154: // sign -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 155: // sign -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 156: // const_variable -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 157: // const_variable -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 158: // const_variable -> tkInherited, identifier { CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 159: // const_variable -> sizeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 160: // const_variable -> typeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 161: // const_variable -> const_variable, const_variable_2 { CurrentSemanticValue.ex = NewConstVariable(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 162: // const_variable -> const_variable, tkAmpersend, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 163: // const_variable_2 -> tkPoint, identifier_or_keyword { CurrentSemanticValue.ex = new dot_node(null, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 164: // const_variable_2 -> tkDeref { CurrentSemanticValue.ex = new roof_dereference(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 165: // const_variable_2 -> tkRoundOpen, optional_const_func_expr_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 166: // const_variable_2 -> tkSquareOpen, const_elem_list, tkSquareClose { CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 167: // optional_const_func_expr_list -> const_func_expr_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 168: // optional_const_func_expr_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 169: // const_func_expr_list -> const_expr { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 170: // const_func_expr_list -> const_func_expr_list, tkComma, const_expr { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 171: // const_elem_list -> const_elem_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 173: // const_elem_list1 -> const_elem { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 174: // const_elem_list1 -> const_elem_list1, tkComma, const_elem { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 175: // const_elem -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 176: // const_elem -> const_expr, tkDotDot, const_expr { CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 177: // unsigned_number -> tkInteger { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 178: // unsigned_number -> tkHex { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 179: // unsigned_number -> tkFloat { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 180: // typed_const -> const_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 181: // typed_const -> array_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 182: // typed_const -> record_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 183: // array_const -> tkRoundOpen, typed_const_list, tkRoundClose { CurrentSemanticValue.ex = new array_const(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 184: // array_const -> tkRoundOpen, record_const, tkRoundClose { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 185: // array_const -> tkRoundOpen, array_const, tkRoundClose { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 187: // typed_const_list -> typed_const_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 188: // typed_const_list1 -> typed_const_plus { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 189: // typed_const_list1 -> typed_const_list1, tkComma, typed_const_plus { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 190: // record_const -> tkRoundOpen, const_field_list, tkRoundClose { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 191: // const_field_list -> const_field_list_1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 192: // const_field_list -> const_field_list_1, tkSemiColon { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } break; case 193: // const_field_list_1 -> const_field { CurrentSemanticValue.ex = new record_const(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); } break; case 194: // const_field_list_1 -> const_field_list_1, tkSemiColon, const_field { CurrentSemanticValue.ex = (ValueStack[ValueStack.Depth-3].ex as record_const).Add(ValueStack[ValueStack.Depth-1].stn as record_const_definition, CurrentLocationSpan); } break; case 195: // const_field -> const_field_name, tkColon, typed_const { CurrentSemanticValue.stn = new record_const_definition(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 196: // const_field_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 197: // type_decl -> attribute_declarations, simple_type_decl { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = LocationStack[LocationStack.Depth-1]; } break; case 198: // attribute_declarations -> attribute_declaration { CurrentSemanticValue.stn = new attribute_list(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); } break; case 199: // attribute_declarations -> attribute_declarations, attribute_declaration { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as simple_attribute_list, CurrentLocationSpan); } break; case 200: // attribute_declarations -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 201: // attribute_declaration -> tkSquareOpen, one_or_some_attribute, tkSquareClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 202: // one_or_some_attribute -> one_attribute { CurrentSemanticValue.stn = new simple_attribute_list(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); } break; case 203: // one_or_some_attribute -> one_or_some_attribute, tkComma, one_attribute { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as simple_attribute_list).Add(ValueStack[ValueStack.Depth-1].stn as attribute, CurrentLocationSpan); } break; case 204: // one_attribute -> attribute_variable { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 205: // one_attribute -> identifier, tkColon, attribute_variable { (ValueStack[ValueStack.Depth-1].stn as attribute).qualifier = ValueStack[ValueStack.Depth-3].id; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 206: // simple_type_decl -> type_decl_identifier, tkEqual, type_decl_type, tkSemiColon { CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-4].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 207: // simple_type_decl -> template_identifier_with_equal, type_decl_type, tkSemiColon { CurrentSemanticValue.stn = new type_declaration(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 208: // type_decl_identifier -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 209: // type_decl_identifier -> identifier, template_arguments { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; case 210: // template_identifier_with_equal -> identifier, tkLower, ident_list, // tkGreaterEqual { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-4].id.name, ValueStack[ValueStack.Depth-2].stn as ident_list, CurrentLocationSpan); } break; case 211: // type_decl_type -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 212: // type_decl_type -> object_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 213: // type_ref -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 214: // type_ref -> simple_type, tkQuestion { if (parsertools.build_tree_for_formatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 215: // type_ref -> string_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 216: // type_ref -> pointer_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 217: // type_ref -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 218: // type_ref -> procedural_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 219: // type_ref -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 220: // template_type -> simple_type_identifier, template_type_params { CurrentSemanticValue.td = new template_type_reference(ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 221: // template_type_params -> tkLower, template_param_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 222: // template_type_empty_params -> tkNotEqual { var ntr = new named_type_reference(new ident(""), CurrentLocationSpan); CurrentSemanticValue.stn = new template_param_list(ntr, CurrentLocationSpan); ntr.source_context = new SourceContext(CurrentSemanticValue.stn.source_context.end_position.line_num, CurrentSemanticValue.stn.source_context.end_position.column_num, CurrentSemanticValue.stn.source_context.begin_position.line_num, CurrentSemanticValue.stn.source_context.begin_position.column_num); } break; case 223: // template_type_empty_params -> tkLower, template_empty_param_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 224: // template_param_list -> template_param { CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 225: // template_param_list -> template_param_list, tkComma, template_param { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 226: // template_empty_param_list -> template_empty_param { CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 227: // template_empty_param_list -> template_empty_param_list, tkComma, // template_empty_param { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 228: // template_empty_param -> /* empty */ { CurrentSemanticValue.td = new named_type_reference(new ident(""), CurrentLocationSpan); } break; case 229: // template_param -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 230: // template_param -> simple_type, tkQuestion { if (parsertools.build_tree_for_formatter) { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } else { var l = new List(); l.Add(new ident("System")); l.Add(new ident("Nullable")); CurrentSemanticValue.td = new template_type_reference(new named_type_reference(l), new template_param_list(ValueStack[ValueStack.Depth-2].td), CurrentLocationSpan); } } break; case 231: // template_param -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 232: // template_param -> procedural_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 233: // template_param -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 234: // simple_type -> range_expr { CurrentSemanticValue.td = parsertools.ConvertDotNodeOrIdentToNamedTypeReference(ValueStack[ValueStack.Depth-1].ex); } break; case 235: // simple_type -> range_expr, tkDotDot, range_expr { CurrentSemanticValue.td = new diapason(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 236: // simple_type -> tkRoundOpen, enumeration_id_list, tkRoundClose { CurrentSemanticValue.td = new enum_type_definition(ValueStack[ValueStack.Depth-2].stn as enumerator_list, CurrentLocationSpan); } break; case 237: // range_expr -> range_term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 238: // range_expr -> range_expr, const_addop, range_term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 239: // range_term -> range_factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 240: // range_term -> range_term, const_mulop, range_factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 241: // range_factor -> simple_type_identifier { CurrentSemanticValue.ex = parsertools.ConvertNamedTypeReferenceToDotNodeOrIdent(ValueStack[ValueStack.Depth-1].td as named_type_reference); } break; case 242: // range_factor -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 243: // range_factor -> sign, range_factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 244: // range_factor -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 245: // range_factor -> range_factor, tkRoundOpen, const_elem_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value, ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 246: // simple_type_identifier -> identifier { CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 247: // simple_type_identifier -> simple_type_identifier, tkPoint, // identifier_or_keyword { CurrentSemanticValue.td = (ValueStack[ValueStack.Depth-3].td as named_type_reference).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 248: // enumeration_id_list -> enumeration_id, tkComma, enumeration_id { CurrentSemanticValue.stn = new enumerator_list(ValueStack[ValueStack.Depth-3].stn as enumerator, CurrentLocationSpan); (CurrentSemanticValue.stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); } break; case 249: // enumeration_id_list -> enumeration_id_list, tkComma, enumeration_id { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as enumerator_list).Add(ValueStack[ValueStack.Depth-1].stn as enumerator, CurrentLocationSpan); } break; case 250: // enumeration_id -> type_ref { CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan); } break; case 251: // enumeration_id -> type_ref, tkEqual, expr { CurrentSemanticValue.stn = new enumerator(ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 252: // pointer_type -> tkDeref, fptype { CurrentSemanticValue.td = new ref_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 253: // structured_type -> unpacked_structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 254: // structured_type -> tkPacked, unpacked_structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 255: // unpacked_structured_type -> array_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 256: // unpacked_structured_type -> record_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 257: // unpacked_structured_type -> set_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 258: // unpacked_structured_type -> file_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 259: // unpacked_structured_type -> sequence_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 260: // sequence_type -> tkSequence, tkOf, type_ref { CurrentSemanticValue.td = new sequence_type(ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 261: // array_type -> tkArray, tkSquareOpen, simple_type_list, tkSquareClose, tkOf, // type_ref { CurrentSemanticValue.td = new array_type(ValueStack[ValueStack.Depth-4].stn as indexers_types, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 262: // array_type -> unsized_array_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 263: // unsized_array_type -> tkArray, tkOf, type_ref { CurrentSemanticValue.td = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 264: // simple_type_list -> simple_type_or_ { CurrentSemanticValue.stn = new indexers_types(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 265: // simple_type_list -> simple_type_list, tkComma, simple_type_or_ { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as indexers_types).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 266: // simple_type_or_ -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 267: // simple_type_or_ -> /* empty */ { CurrentSemanticValue.td = null; } break; case 268: // set_type -> tkSet, tkOf, type_ref { CurrentSemanticValue.td = new set_type_definition(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 269: // file_type -> tkFile, tkOf, type_ref { CurrentSemanticValue.td = new file_type(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 270: // file_type -> tkFile { CurrentSemanticValue.td = new file_type(); CurrentSemanticValue.td.source_context = CurrentLocationSpan; } break; case 271: // string_type -> tkIdentifier, tkSquareOpen, const_expr, tkSquareClose { CurrentSemanticValue.td = new string_num_definition(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-4].id, CurrentLocationSpan); } break; case 272: // procedural_type -> procedural_type_kind { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 273: // procedural_type_kind -> proc_type_decl { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 274: // proc_type_decl -> tkProcedure, fp_list { CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-1].stn as formal_parameters,null,null,false,false,null,null,CurrentLocationSpan); } break; case 275: // proc_type_decl -> tkFunction, fp_list, tkColon, fptype { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, null, null, null, ValueStack[ValueStack.Depth-1].td as type_definition, CurrentLocationSpan); } break; case 276: // proc_type_decl -> simple_type_identifier, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 277: // proc_type_decl -> template_type, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-3].td,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 278: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, template_param { CurrentSemanticValue.td = new modern_proc_type(null,null,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 279: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // template_param { CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-4].stn as enumerator_list,ValueStack[ValueStack.Depth-1].td,CurrentLocationSpan); } break; case 280: // proc_type_decl -> simple_type_identifier, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); } break; case 281: // proc_type_decl -> template_type, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(ValueStack[ValueStack.Depth-4].td,null,null,CurrentLocationSpan); } break; case 282: // proc_type_decl -> tkRoundOpen, tkRoundClose, tkArrow, tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(null,null,null,CurrentLocationSpan); } break; case 283: // proc_type_decl -> tkRoundOpen, enumeration_id_list, tkRoundClose, tkArrow, // tkRoundOpen, tkRoundClose { CurrentSemanticValue.td = new modern_proc_type(null,ValueStack[ValueStack.Depth-5].stn as enumerator_list,null,CurrentLocationSpan); } break; case 284: // object_type -> class_attributes, class_or_interface_keyword, // optional_base_classes, optional_where_section, // optional_component_list_seq_end { CurrentSemanticValue.td = NewObjectType((class_attribute)ValueStack[ValueStack.Depth-5].ob, ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].stn as named_type_reference_list, ValueStack[ValueStack.Depth-2].stn as where_definition_list, ValueStack[ValueStack.Depth-1].stn as class_body_list, CurrentLocationSpan); class_definition cd = CurrentSemanticValue.td as class_definition; if (cd == null || cd.body == null) break; var ccnt = cd.body.DescendantNodes().OfType().ToArray(); var cm = new class_members(access_modifer.private_modifer); foreach (var prop in ccnt) { var td = prop.property_type; var ra = prop.accessors?.read_accessor; if (ValueStack[ValueStack.Depth-4].ti.text.ToLower() == "interface" && ra != null && (ra.pr != null || ra.accessor_name != null)) parsertools.AddErrorFromResource("INVALID_INTERFACE_MEMBER",ra.source_context); if (ra != null && ra.pr != null) { if (prop.parameter_list != null) parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context); var rapr = ra.pr as procedure_definition; (rapr.proc_header as function_header).return_type = td; cm.Add(rapr); if (prop.attr == definition_attribute.Static) { rapr.proc_header.class_keyword = true; procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static); pa.source_context = rapr.proc_header.source_context; rapr.proc_header.proc_attributes = new procedure_attributes_list(pa); } } var wa = prop.accessors?.write_accessor; if (ValueStack[ValueStack.Depth-4].ti.text.ToLower() == "interface" && wa != null && (wa.pr != null || wa.accessor_name != null)) parsertools.AddErrorFromResource("INVALID_INTERFACE_MEMBER",wa.source_context); if (wa != null && wa.pr != null) { if (prop.parameter_list != null) parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context); var wapr = wa.pr as procedure_definition; wapr.proc_header.parameters.params_list[0].vars_type = td; cm.Add(wapr); if (prop.attr == definition_attribute.Static) { wapr.proc_header.class_keyword = true; procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static); pa.source_context = wapr.proc_header.source_context; wapr.proc_header.proc_attributes = new procedure_attributes_list(pa); } } } if (cm.Count>0) cd.body.Insert(0, cm); } break; case 285: // record_type -> tkRecord, optional_base_classes, optional_where_section, // member_list_section, tkEnd { CurrentSemanticValue.td = NewRecordType(ValueStack[ValueStack.Depth-4].stn as named_type_reference_list, ValueStack[ValueStack.Depth-3].stn as where_definition_list, ValueStack[ValueStack.Depth-2].stn as class_body_list, CurrentLocationSpan); class_definition cd = CurrentSemanticValue.td as class_definition; if (cd == null || cd.body == null) break; var ccnt = cd.body.DescendantNodes().OfType().ToArray(); var cm = new class_members(access_modifer.private_modifer); foreach (var prop in ccnt) { var td = prop.property_type; var ra = prop.accessors?.read_accessor; if (ra != null && ra.pr != null) { if (prop.parameter_list != null) parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context); var rapr = ra.pr as procedure_definition; (rapr.proc_header as function_header).return_type = td; cm.Add(rapr); if (prop.attr == definition_attribute.Static) { rapr.proc_header.class_keyword = true; procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static); pa.source_context = rapr.proc_header.source_context; rapr.proc_header.proc_attributes = new procedure_attributes_list(pa); } } var wa = prop.accessors?.write_accessor; if (wa != null && wa.pr != null && prop.parameter_list == null) { if (prop.parameter_list != null) parsertools.AddErrorFromResource("EXTENDED_INDEXED_PROPERTIES",ra.source_context); var wapr = wa.pr as procedure_definition; wapr.proc_header.parameters.params_list[0].vars_type = td; cm.Add(wapr); if (prop.attr == definition_attribute.Static) { wapr.proc_header.class_keyword = true; procedure_attribute pa = new procedure_attribute(proc_attribute.attr_static); pa.source_context = wapr.proc_header.source_context; wapr.proc_header.proc_attributes = new procedure_attributes_list(pa); } } } if (cm.Count>0) cd.body.Insert(0, cm); } break; case 286: // class_attribute -> tkSealed { CurrentSemanticValue.ob = class_attribute.Sealed; } break; case 287: // class_attribute -> tkPartial { CurrentSemanticValue.ob = class_attribute.Partial; } break; case 288: // class_attribute -> tkAbstract { CurrentSemanticValue.ob = class_attribute.Abstract; } break; case 289: // class_attribute -> tkAuto { CurrentSemanticValue.ob = class_attribute.Auto; } break; case 290: // class_attribute -> tkStatic { CurrentSemanticValue.ob = class_attribute.Static; } break; case 291: // class_attributes -> /* empty */ { CurrentSemanticValue.ob = class_attribute.None; } break; case 292: // class_attributes -> class_attributes1 { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; } break; case 293: // class_attributes1 -> class_attribute { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ob; } break; case 294: // class_attributes1 -> class_attributes1, class_attribute { CurrentSemanticValue.ob = ((class_attribute)ValueStack[ValueStack.Depth-2].ob) | ((class_attribute)ValueStack[ValueStack.Depth-1].ob); //$$ = $1; } break; case 295: // class_or_interface_keyword -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 296: // class_or_interface_keyword -> tkInterface { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 297: // class_or_interface_keyword -> tkTemplate { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-1].ti); } break; case 298: // class_or_interface_keyword -> tkTemplate, tkClass { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "c", CurrentLocationSpan); } break; case 299: // class_or_interface_keyword -> tkTemplate, tkRecord { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "r", CurrentLocationSpan); } break; case 300: // class_or_interface_keyword -> tkTemplate, tkInterface { CurrentSemanticValue.ti = NewClassOrInterfaceKeyword(ValueStack[ValueStack.Depth-2].ti, "i", CurrentLocationSpan); } break; case 301: // optional_component_list_seq_end -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 302: // optional_component_list_seq_end -> member_list_section, tkEnd { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 304: // optional_base_classes -> tkRoundOpen, base_classes_names_list, tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 305: // base_classes_names_list -> base_class_name { CurrentSemanticValue.stn = new named_type_reference_list(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); } break; case 306: // base_classes_names_list -> base_classes_names_list, tkComma, base_class_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as named_type_reference_list).Add(ValueStack[ValueStack.Depth-1].stn as named_type_reference, CurrentLocationSpan); } break; case 307: // base_class_name -> simple_type_identifier { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 308: // base_class_name -> template_type { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 309: // template_arguments -> tkLower, ident_list, tkGreater { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 310: // optional_where_section -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 311: // optional_where_section -> where_part_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 312: // where_part_list -> where_part { CurrentSemanticValue.stn = new where_definition_list(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); } break; case 313: // where_part_list -> where_part_list, where_part { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as where_definition_list).Add(ValueStack[ValueStack.Depth-1].stn as where_definition, CurrentLocationSpan); } break; case 314: // where_part -> tkWhere, ident_list, tkColon, type_ref_and_secific_list, // tkSemiColon { CurrentSemanticValue.stn = new where_definition(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-2].stn as where_type_specificator_list, CurrentLocationSpan); } break; case 315: // type_ref_and_secific_list -> type_ref_or_secific { CurrentSemanticValue.stn = new where_type_specificator_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 316: // type_ref_and_secific_list -> type_ref_and_secific_list, tkComma, // type_ref_or_secific { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as where_type_specificator_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 317: // type_ref_or_secific -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 318: // type_ref_or_secific -> tkClass { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefClass, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 319: // type_ref_or_secific -> tkRecord { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefValueType, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 320: // type_ref_or_secific -> tkConstructor { CurrentSemanticValue.td = new declaration_specificator(DeclarationSpecificator.WhereDefConstructor, ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 321: // member_list_section -> member_list { CurrentSemanticValue.stn = new class_body_list(ValueStack[ValueStack.Depth-1].stn as class_members, CurrentLocationSpan); } break; case 322: // member_list_section -> member_list_section, ot_visibility_specifier, // member_list { (ValueStack[ValueStack.Depth-1].stn as class_members).access_mod = ValueStack[ValueStack.Depth-2].stn as access_modifer_node; (ValueStack[ValueStack.Depth-3].stn as class_body_list).Add(ValueStack[ValueStack.Depth-1].stn as class_members,CurrentLocationSpan); if ((ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks[0].Count == 0) (ValueStack[ValueStack.Depth-3].stn as class_body_list).class_def_blocks.RemoveAt(0); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; } break; case 323: // ot_visibility_specifier -> tkInternal { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.internal_modifer, CurrentLocationSpan); } break; case 324: // ot_visibility_specifier -> tkPublic { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.public_modifer, CurrentLocationSpan); } break; case 325: // ot_visibility_specifier -> tkProtected { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.protected_modifer, CurrentLocationSpan); } break; case 326: // ot_visibility_specifier -> tkPrivate { CurrentSemanticValue.stn = new access_modifer_node(access_modifer.private_modifer, CurrentLocationSpan); } break; case 327: // member_list -> /* empty */ { CurrentSemanticValue.stn = new class_members(); } break; case 328: // member_list -> field_or_const_definition_list, optional_semicolon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 329: // member_list -> method_decl_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 330: // member_list -> field_or_const_definition_list, tkSemiColon, method_decl_list { (ValueStack[ValueStack.Depth-3].stn as class_members).members.AddRange((ValueStack[ValueStack.Depth-1].stn as class_members).members); (ValueStack[ValueStack.Depth-3].stn as class_members).source_context = CurrentLocationSpan; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn; } break; case 331: // ident_list -> identifier { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 332: // ident_list -> ident_list, tkComma, identifier { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 333: // optional_semicolon -> /* empty */ { CurrentSemanticValue.ob = null; } break; case 334: // optional_semicolon -> tkSemiColon { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; case 335: // field_or_const_definition_list -> field_or_const_definition { CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 336: // field_or_const_definition_list -> field_or_const_definition_list, tkSemiColon, // field_or_const_definition { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 337: // field_or_const_definition -> attribute_declarations, // simple_field_or_const_definition { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 338: // method_decl_list -> method_or_property_decl { CurrentSemanticValue.stn = new class_members(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 339: // method_decl_list -> method_decl_list, method_or_property_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-2].stn as class_members).Add(ValueStack[ValueStack.Depth-1].stn as declaration, CurrentLocationSpan); } break; case 340: // method_or_property_decl -> method_decl_withattr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 341: // method_or_property_decl -> property_definition { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 342: // simple_field_or_const_definition -> tkConst, only_const_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 343: // simple_field_or_const_definition -> field_definition { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 344: // simple_field_or_const_definition -> class_or_static, field_definition { (ValueStack[ValueStack.Depth-1].stn as var_def_statement).var_attr = definition_attribute.Static; (ValueStack[ValueStack.Depth-1].stn as var_def_statement).source_context = CurrentLocationSpan; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 345: // class_or_static -> tkStatic { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 346: // class_or_static -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 347: // field_definition -> var_decl_part { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 348: // field_definition -> tkEvent, ident_list, tkColon, type_ref { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, true, CurrentLocationSpan); } break; case 349: // method_decl_withattr -> attribute_declarations, method_header { (ValueStack[ValueStack.Depth-1].td as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].td; } break; case 350: // method_decl_withattr -> attribute_declarations, method_decl { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; if (ValueStack[ValueStack.Depth-1].stn is procedure_definition && (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 351: // method_decl -> inclass_proc_func_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 352: // method_decl -> inclass_constr_destr_decl { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 353: // method_header -> class_or_static, method_procfunc_header { (ValueStack[ValueStack.Depth-1].td as procedure_header).class_keyword = true; CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 354: // method_header -> method_procfunc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 355: // method_header -> constr_destr_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 356: // method_procfunc_header -> proc_func_header { CurrentSemanticValue.td = NewProcfuncHeading(ValueStack[ValueStack.Depth-1].td as procedure_header); } break; case 357: // proc_func_header -> proc_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 358: // proc_func_header -> func_header { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 359: // constr_destr_header -> tkConstructor, optional_proc_name, fp_list, // optional_method_modificators { CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,false,null,null,CurrentLocationSpan); } break; case 360: // constr_destr_header -> class_or_static, tkConstructor, optional_proc_name, // fp_list, optional_method_modificators { CurrentSemanticValue.td = new constructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name,false,true,null,null,CurrentLocationSpan); } break; case 361: // constr_destr_header -> tkDestructor, optional_proc_name, fp_list, // optional_method_modificators { CurrentSemanticValue.td = new destructor(null,ValueStack[ValueStack.Depth-2].stn as formal_parameters,ValueStack[ValueStack.Depth-1].stn as procedure_attributes_list,ValueStack[ValueStack.Depth-3].stn as method_name, false,false,null,null,CurrentLocationSpan); } break; case 362: // optional_proc_name -> proc_name { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 363: // optional_proc_name -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 364: // qualified_identifier -> identifier { CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); } break; case 365: // qualified_identifier -> visibility_specifier { CurrentSemanticValue.stn = new method_name(null,null,ValueStack[ValueStack.Depth-1].id,null,CurrentLocationSpan); } break; case 366: // qualified_identifier -> qualified_identifier, tkPoint, identifier { CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 367: // qualified_identifier -> qualified_identifier, tkPoint, visibility_specifier { CurrentSemanticValue.stn = NewQualifiedIdentifier(ValueStack[ValueStack.Depth-3].stn as method_name, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 368: // property_definition -> attribute_declarations, simple_prim_property_definition { CurrentSemanticValue.stn = NewPropertyDefinition(ValueStack[ValueStack.Depth-2].stn as attribute_list, ValueStack[ValueStack.Depth-1].stn as declaration, LocationStack[LocationStack.Depth-1]); } break; case 369: // simple_prim_property_definition -> simple_property_definition { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 370: // simple_prim_property_definition -> class_or_static, simple_property_definition { CurrentSemanticValue.stn = NewSimplePrimPropertyDefinition(ValueStack[ValueStack.Depth-1].stn as simple_property, CurrentLocationSpan); } break; case 371: // simple_property_definition -> tkProperty, qualified_identifier, // property_interface, property_specifiers, // tkSemiColon, array_defaultproperty { CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-5].stn as method_name, ValueStack[ValueStack.Depth-4].stn as property_interface, ValueStack[ValueStack.Depth-3].stn as property_accessors, proc_attribute.attr_none, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); } break; case 372: // simple_property_definition -> tkProperty, qualified_identifier, // property_interface, property_specifiers, // tkSemiColon, property_modificator, tkSemiColon, // array_defaultproperty { proc_attribute pa = proc_attribute.attr_none; if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "virtual") pa = proc_attribute.attr_virtual; else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "override") pa = proc_attribute.attr_override; else if (ValueStack[ValueStack.Depth-3].id.name.ToLower() == "abstract") pa = proc_attribute.attr_abstract; CurrentSemanticValue.stn = NewSimplePropertyDefinition(ValueStack[ValueStack.Depth-7].stn as method_name, ValueStack[ValueStack.Depth-6].stn as property_interface, ValueStack[ValueStack.Depth-5].stn as property_accessors, pa, ValueStack[ValueStack.Depth-1].stn as property_array_default, CurrentLocationSpan); } break; case 373: // array_defaultproperty -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 374: // array_defaultproperty -> tkDefault, tkSemiColon { CurrentSemanticValue.stn = new property_array_default(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 375: // property_interface -> property_parameter_list, tkColon, fptype { CurrentSemanticValue.stn = new property_interface(ValueStack[ValueStack.Depth-3].stn as property_parameter_list, ValueStack[ValueStack.Depth-1].td, null, CurrentLocationSpan); } break; case 376: // property_parameter_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 377: // property_parameter_list -> tkSquareOpen, parameter_decl_list, tkSquareClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 378: // parameter_decl_list -> parameter_decl { CurrentSemanticValue.stn = new property_parameter_list(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); } break; case 379: // parameter_decl_list -> parameter_decl_list, tkSemiColon, parameter_decl { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as property_parameter_list).Add(ValueStack[ValueStack.Depth-1].stn as property_parameter, CurrentLocationSpan); } break; case 380: // parameter_decl -> ident_list, tkColon, fptype { CurrentSemanticValue.stn = new property_parameter(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 381: // optional_read_expr -> expr_with_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 382: // optional_read_expr -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 384: // property_specifiers -> tkRead, optional_read_expr, write_property_specifiers { if (ValueStack[ValueStack.Depth-2].ex == null || ValueStack[ValueStack.Depth-2].ex is ident) // ����������� �������� { CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-2].ex as ident, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } else // ����������� �������� { var id = NewId("#GetGen", LocationStack[LocationStack.Depth-2]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-2].ex, id, LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 ��������� ��� �������������� } } break; case 385: // property_specifiers -> tkWrite, unlabelled_stmt, read_property_specifiers { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, null, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); } else if (ValueStack[ValueStack.Depth-2].stn is procedure_call && (ValueStack[ValueStack.Depth-2].stn as procedure_call).is_ident) // ����������� �������� { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, (ValueStack[ValueStack.Depth-2].stn as procedure_call).func_name as ident, null, null, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // ������ �������� - � ��������������� } else // ����������� �������� { var id = NewId("#SetGen", LocationStack[LocationStack.Depth-2]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-2].stn as statement,id,LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-3].id, id, pr, ValueStack[ValueStack.Depth-2].stn as statement, ValueStack[ValueStack.Depth-1].stn as property_accessors, CurrentLocationSpan); // $2 ��������� ��� �������������� } } break; case 387: // write_property_specifiers -> tkWrite, unlabelled_stmt { if (ValueStack[ValueStack.Depth-1].stn is empty_statement) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, null, null, null, null, CurrentLocationSpan); } else if (ValueStack[ValueStack.Depth-1].stn is procedure_call && (ValueStack[ValueStack.Depth-1].stn as procedure_call).is_ident) { CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, (ValueStack[ValueStack.Depth-1].stn as procedure_call).func_name as ident, null, null, null, CurrentLocationSpan); // ������ �������� - � ��������������� } else { var id = NewId("#SetGen", LocationStack[LocationStack.Depth-1]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassWriteProc(ValueStack[ValueStack.Depth-1].stn as statement,id,LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn = NewPropertySpecifiersWrite(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } } break; case 389: // read_property_specifiers -> tkRead, optional_read_expr { if (ValueStack[ValueStack.Depth-1].ex == null || ValueStack[ValueStack.Depth-1].ex is ident) { CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-1].ex as ident, null, null, null, CurrentLocationSpan); } else { var id = NewId("#GetGen", LocationStack[LocationStack.Depth-1]); procedure_definition pr = null; if (!parsertools.build_tree_for_formatter) pr = CreateAndAddToClassReadFunc(ValueStack[ValueStack.Depth-1].ex,id,LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn = NewPropertySpecifiersRead(ValueStack[ValueStack.Depth-2].id, id, pr, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } } break; case 390: // var_decl -> var_decl_part, tkSemiColon { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 393: // var_decl_part -> ident_list, tkColon, type_ref { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, false, CurrentLocationSpan); } break; case 394: // var_decl_part -> ident_list, tkAssign, expr { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-3].stn as ident_list, null, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); } break; case 395: // var_decl_part -> ident_list, tkColon, type_ref, tkAssignOrEqual, // typed_var_init_expression { CurrentSemanticValue.stn = new var_def_statement(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); } break; case 396: // typed_var_init_expression -> typed_const_plus { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 397: // typed_var_init_expression -> expl_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 398: // typed_var_init_expression -> identifier, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 399: // typed_var_init_expression -> tkRoundOpen, tkRoundClose, lambda_type_ref, // tkArrow, lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 400: // typed_var_init_expression -> tkRoundOpen, typed_const_list, tkRoundClose, // tkArrow, lambda_function_body { var el = ValueStack[ValueStack.Depth-4].stn as expression_list; var cnt = el.Count; var idList = new ident_list(); idList.source_context = LocationStack[LocationStack.Depth-4]; for (int j = 0; j < cnt; j++) { if (!(el.expressions[j] is ident)) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",el.expressions[j].source_context); idList.idents.Add(el.expressions[j] as ident); } var any = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-4]); var formalPars = new formal_parameters(new typed_parameters(idList, any, parametr_kind.none, null, LocationStack[LocationStack.Depth-4]), LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, any, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 401: // typed_const_plus -> typed_const { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 402: // typed_const_plus -> default_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 403: // constr_destr_decl -> constr_destr_header, block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); } break; case 404: // constr_destr_decl -> tkConstructor, optional_proc_name, fp_list, tkAssign, // unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,false,null,null,CurrentLocationSpan); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), CurrentLocationSpan); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 405: // constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name, // fp_list, tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,true,null,null,CurrentLocationSpan); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), CurrentLocationSpan); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 406: // inclass_constr_destr_decl -> constr_destr_header, inclass_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as block, CurrentLocationSpan); } break; case 407: // inclass_constr_destr_decl -> tkConstructor, optional_proc_name, fp_list, // tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,false,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), CurrentLocationSpan); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 408: // inclass_constr_destr_decl -> class_or_static, tkConstructor, optional_proc_name, // fp_list, tkAssign, unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-1]); var tmp = new constructor(null,ValueStack[ValueStack.Depth-4].stn as formal_parameters,new procedure_attributes_list(new List(),CurrentLocationSpan),ValueStack[ValueStack.Depth-5].stn as method_name,false,true,null,null,LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4])); CurrentSemanticValue.stn = new procedure_definition(tmp as procedure_header, new block(null,new statement_list(ValueStack[ValueStack.Depth-2].stn as statement,LocationStack[LocationStack.Depth-2]),LocationStack[LocationStack.Depth-2]), CurrentLocationSpan); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 409: // proc_func_decl -> proc_func_decl_noclass { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 410: // proc_func_decl -> class_or_static, proc_func_decl_noclass { (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 411: // proc_func_decl_noclass -> proc_func_header, proc_func_external_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); } break; case 412: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators1, tkAssign, expr_l1, // tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); } break; case 413: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, expr_l1, // tkSemiColon { if (ValueStack[ValueStack.Depth-2].ex is dot_question_node) parsertools.AddErrorFromResource("DOT_QUECTION_IN_SHORT_FUN",LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 414: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators1, tkAssign, // func_decl_lambda, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); } break; case 415: // proc_func_decl_noclass -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, // func_decl_lambda, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 416: // proc_func_decl_noclass -> tkProcedure, proc_name, fp_list, // optional_method_modificators1, tkAssign, // unlabelled_stmt, tkSemiColon { if (ValueStack[ValueStack.Depth-2].stn is empty_statement) parsertools.AddErrorFromResource("EMPTY_STATEMENT_IN_SHORT_PROC_DEFINITION",LocationStack[LocationStack.Depth-2]); CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); } break; case 417: // proc_func_decl_noclass -> proc_func_header, tkForward, tkSemiColon { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-3].td as procedure_header, null, CurrentLocationSpan); (CurrentSemanticValue.stn as procedure_definition).proc_header.proc_attributes.Add((procedure_attribute)ValueStack[ValueStack.Depth-2].id, ValueStack[ValueStack.Depth-2].id.source_context); } break; case 418: // inclass_proc_func_decl -> inclass_proc_func_decl_noclass { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 419: // inclass_proc_func_decl -> class_or_static, inclass_proc_func_decl_noclass { if ((ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header != null) (ValueStack[ValueStack.Depth-1].stn as procedure_definition).proc_header.class_keyword = true; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 420: // inclass_proc_func_decl_noclass -> proc_func_header, inclass_block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, ValueStack[ValueStack.Depth-1].stn as proc_block, CurrentLocationSpan); } break; case 421: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, tkColon, // fptype, optional_method_modificators1, // tkAssign, expr_l1_func_decl_lambda, // tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-7].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-8].stn as method_name, ValueStack[ValueStack.Depth-5].td as type_definition, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-9].Merge(LocationStack[LocationStack.Depth-4])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 422: // inclass_proc_func_decl_noclass -> tkFunction, func_name, fp_list, // optional_method_modificators1, tkAssign, // expr_l1_func_decl_lambda, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortFuncDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, null, ValueStack[ValueStack.Depth-2].ex, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 423: // inclass_proc_func_decl_noclass -> tkProcedure, proc_name, fp_list, // optional_method_modificators1, tkAssign, // unlabelled_stmt, tkSemiColon { CurrentSemanticValue.stn = SyntaxTreeBuilder.BuildShortProcDefinition(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-4].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-2].stn as statement, LocationStack[LocationStack.Depth-7].Merge(LocationStack[LocationStack.Depth-4])); if (parsertools.build_tree_for_formatter) CurrentSemanticValue.stn = new short_func_definition(CurrentSemanticValue.stn as procedure_definition); } break; case 424: // proc_func_external_block -> block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 425: // proc_func_external_block -> external_block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 426: // proc_name -> func_name { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 427: // func_name -> func_meth_name_ident { CurrentSemanticValue.stn = new method_name(null,null, ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 428: // func_name -> func_class_name_ident_list, tkPoint, func_meth_name_ident { var ln = ValueStack[ValueStack.Depth-3].ob as List; var cnt = ln.Count; if (cnt == 1) CurrentSemanticValue.stn = new method_name(null, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); else CurrentSemanticValue.stn = new method_name(ln, ln[cnt-1], ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 429: // func_class_name_ident -> func_name_with_template_args { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 430: // func_class_name_ident_list -> func_class_name_ident { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].id); } break; case 431: // func_class_name_ident_list -> func_class_name_ident_list, tkPoint, // func_class_name_ident { (ValueStack[ValueStack.Depth-3].ob as List).Add(ValueStack[ValueStack.Depth-1].id); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 432: // func_meth_name_ident -> func_name_with_template_args { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 433: // func_meth_name_ident -> operator_name_ident { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 434: // func_meth_name_ident -> operator_name_ident, template_arguments { CurrentSemanticValue.id = new template_operator_name(null, ValueStack[ValueStack.Depth-1].stn as ident_list, ValueStack[ValueStack.Depth-2].ex as operator_name_ident, CurrentLocationSpan); } break; case 435: // func_name_with_template_args -> func_name_ident { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 436: // func_name_with_template_args -> func_name_ident, template_arguments { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; case 437: // func_name_ident -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 438: // proc_header -> tkProcedure, proc_name, fp_list, optional_method_modificators, // optional_where_section { CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, CurrentLocationSpan); } break; case 439: // func_header -> tkFunction, func_name, fp_list, optional_method_modificators, // optional_where_section { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-4].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, null, CurrentLocationSpan); } break; case 440: // func_header -> tkFunction, func_name, fp_list, tkColon, fptype, // optional_method_modificators, optional_where_section { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-2].stn as procedure_attributes_list, ValueStack[ValueStack.Depth-6].stn as method_name, ValueStack[ValueStack.Depth-1].stn as where_definition_list, ValueStack[ValueStack.Depth-3].td as type_definition, CurrentLocationSpan); } break; case 441: // external_block -> tkExternal, external_directive_ident, tkName, // external_directive_ident, tkSemiColon { CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 442: // external_block -> tkExternal, external_directive_ident, tkSemiColon { CurrentSemanticValue.stn = new external_directive(ValueStack[ValueStack.Depth-2].ex, null, CurrentLocationSpan); } break; case 443: // external_block -> tkExternal, tkSemiColon { CurrentSemanticValue.stn = new external_directive(null, null, CurrentLocationSpan); } break; case 444: // external_directive_ident -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 445: // external_directive_ident -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 446: // block -> decl_sect_list, compound_stmt, tkSemiColon { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); } break; case 447: // inclass_block -> inclass_decl_sect_list, compound_stmt, tkSemiColon { CurrentSemanticValue.stn = new block(ValueStack[ValueStack.Depth-3].stn as declarations, ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); } break; case 448: // inclass_block -> external_block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 449: // fp_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 450: // fp_list -> tkRoundOpen, tkRoundClose { CurrentSemanticValue.stn = null; } break; case 451: // fp_list -> tkRoundOpen, fp_sect_list, tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; if (CurrentSemanticValue.stn != null) CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 452: // fp_sect_list -> fp_sect { CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 453: // fp_sect_list -> fp_sect_list, tkSemiColon, fp_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 454: // fp_sect -> attribute_declarations, simple_fp_sect { (ValueStack[ValueStack.Depth-1].stn as declaration).attributes = ValueStack[ValueStack.Depth-2].stn as attribute_list; CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 455: // simple_fp_sect -> param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); } break; case 456: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.var_parametr, null, CurrentLocationSpan); } break; case 457: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.const_parametr, null, CurrentLocationSpan); } break; case 458: // simple_fp_sect -> tkParams, param_name_list, tkColon, fptype { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td,parametr_kind.params_parametr,null, CurrentLocationSpan); } break; case 459: // simple_fp_sect -> param_name_list, tkColon, fptype, tkAssign, const_expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.none, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 460: // simple_fp_sect -> tkVar, param_name_list, tkColon, fptype, tkAssign, const_expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.var_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 461: // simple_fp_sect -> tkConst, param_name_list, tkColon, fptype, tkAssign, // const_expr { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-5].stn as ident_list, ValueStack[ValueStack.Depth-3].td, parametr_kind.const_parametr, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 462: // param_name_list -> param_name { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 463: // param_name_list -> param_name_list, tkComma, param_name { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 464: // param_name -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 465: // fptype -> type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 466: // fptype_noproctype -> simple_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 467: // fptype_noproctype -> string_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 468: // fptype_noproctype -> pointer_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 469: // fptype_noproctype -> structured_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 470: // fptype_noproctype -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 471: // stmt -> unlabelled_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 472: // stmt -> label_name, tkColon, stmt { CurrentSemanticValue.stn = new labeled_statement(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 473: // unlabelled_stmt -> /* empty */ { CurrentSemanticValue.stn = new empty_statement(); CurrentSemanticValue.stn.source_context = null; } break; case 474: // unlabelled_stmt -> assignment { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 475: // unlabelled_stmt -> proc_call { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 476: // unlabelled_stmt -> goto_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 477: // unlabelled_stmt -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 478: // unlabelled_stmt -> if_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 479: // unlabelled_stmt -> case_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 480: // unlabelled_stmt -> repeat_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 481: // unlabelled_stmt -> while_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 482: // unlabelled_stmt -> for_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 483: // unlabelled_stmt -> with_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 484: // unlabelled_stmt -> inherited_message { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 485: // unlabelled_stmt -> try_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 486: // unlabelled_stmt -> raise_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 487: // unlabelled_stmt -> foreach_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 488: // unlabelled_stmt -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 489: // unlabelled_stmt -> expr_as_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 490: // unlabelled_stmt -> lock_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 491: // unlabelled_stmt -> yield_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 492: // unlabelled_stmt -> yield_sequence_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 493: // unlabelled_stmt -> loop_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 494: // unlabelled_stmt -> match_with { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 495: // loop_stmt -> tkLoop, expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new loop_stmt(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].stn as statement,CurrentLocationSpan); } break; case 496: // yield_stmt -> tkYield, expr_l1 { CurrentSemanticValue.stn = new yield_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 497: // yield_sequence_stmt -> tkYield, tkSequence, expr_l1 { CurrentSemanticValue.stn = new yield_sequence_node(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 498: // var_stmt -> tkVar, var_decl_part { CurrentSemanticValue.stn = new var_statement(ValueStack[ValueStack.Depth-1].stn as var_def_statement, CurrentLocationSpan); } break; case 499: // var_stmt -> tkRoundOpen, tkVar, identifier, tkComma, var_ident_list, // tkRoundClose, tkAssign, expr { (ValueStack[ValueStack.Depth-4].ob as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id); (ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].ob as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 500: // var_stmt -> tkVar, tkRoundOpen, identifier, tkComma, ident_list, tkRoundClose, // tkAssign, expr { (ValueStack[ValueStack.Depth-4].stn as ident_list).Insert(0,ValueStack[ValueStack.Depth-6].id); ValueStack[ValueStack.Depth-4].stn.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_var_tuple(ValueStack[ValueStack.Depth-4].stn as ident_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 501: // assignment -> var_reference, assign_operator, expr_with_func_decl_lambda { CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 502: // assignment -> tkRoundOpen, variable, tkComma, variable_list, tkRoundClose, // assign_operator, expr { if (ValueStack[ValueStack.Depth-2].op.type != Operators.Assignment) parsertools.AddErrorFromResource("ONLY_BASE_ASSIGNMENT_FOR_TUPLE",LocationStack[LocationStack.Depth-2]); (ValueStack[ValueStack.Depth-4].ob as addressed_value_list).Insert(0,ValueStack[ValueStack.Depth-6].ex as addressed_value); (ValueStack[ValueStack.Depth-4].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.stn = new assign_tuple(ValueStack[ValueStack.Depth-4].ob as addressed_value_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 503: // variable_list -> variable { CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]); } break; case 504: // variable_list -> variable_list, tkComma, variable { (ValueStack[ValueStack.Depth-3].ob as addressed_value_list).Add(ValueStack[ValueStack.Depth-1].ex as addressed_value); (ValueStack[ValueStack.Depth-3].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 505: // var_ident_list -> tkVar, identifier { CurrentSemanticValue.ob = new ident_list(ValueStack[ValueStack.Depth-1].id,CurrentLocationSpan); } break; case 506: // var_ident_list -> var_ident_list, tkComma, tkVar, identifier { (ValueStack[ValueStack.Depth-4].ob as ident_list).Add(ValueStack[ValueStack.Depth-1].id); (ValueStack[ValueStack.Depth-4].ob as ident_list).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-4].ob; } break; case 507: // proc_call -> var_reference { CurrentSemanticValue.stn = new procedure_call(ValueStack[ValueStack.Depth-1].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex is ident, CurrentLocationSpan); } break; case 508: // goto_stmt -> tkGoto, label_name { CurrentSemanticValue.stn = new goto_statement(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; case 509: // compound_stmt -> tkBegin, stmt_list, tkEnd { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; (CurrentSemanticValue.stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; (CurrentSemanticValue.stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 510: // stmt_list -> stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, LocationStack[LocationStack.Depth-1]); } break; case 511: // stmt_list -> stmt_list, tkSemiColon, stmt { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as statement_list).Add(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 512: // if_stmt -> tkIf, expr_l1, tkThen, unlabelled_stmt { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 513: // if_stmt -> tkIf, expr_l1, tkThen, unlabelled_stmt, tkElse, unlabelled_stmt { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as statement, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 514: // match_with -> tkMatch, expr_l1, tkWith, pattern_cases, else_case, tkEnd { CurrentSemanticValue.stn = new match_with(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as pattern_cases, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 515: // match_with -> tkMatch, expr_l1, tkWith, pattern_cases, tkSemiColon, else_case, // tkEnd { CurrentSemanticValue.stn = new match_with(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].stn as pattern_cases, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 516: // pattern_cases -> pattern_case { CurrentSemanticValue.stn = new pattern_cases(ValueStack[ValueStack.Depth-1].stn as pattern_case); } break; case 517: // pattern_cases -> pattern_cases, tkSemiColon, pattern_case { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as pattern_cases).Add(ValueStack[ValueStack.Depth-1].stn as pattern_case); } break; case 518: // pattern_case -> pattern_optional_var, tkWhen, expr_l1, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-5].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].ex, CurrentLocationSpan); } break; case 519: // pattern_case -> pattern_optional_var, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new pattern_case(ValueStack[ValueStack.Depth-3].stn as pattern_node, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; case 520: // case_stmt -> tkCase, expr_l1, tkOf, case_list, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 521: // case_stmt -> tkCase, expr_l1, tkOf, case_list, tkSemiColon, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].stn as case_variants, ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 522: // case_stmt -> tkCase, expr_l1, tkOf, else_case, tkEnd { CurrentSemanticValue.stn = new case_node(ValueStack[ValueStack.Depth-4].ex, NewCaseItem(new empty_statement(), null), ValueStack[ValueStack.Depth-2].stn as statement, CurrentLocationSpan); } break; case 523: // case_list -> case_item { if (ValueStack[ValueStack.Depth-1].stn is empty_statement) CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, null); else CurrentSemanticValue.stn = NewCaseItem(ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 524: // case_list -> case_list, tkSemiColon, case_item { CurrentSemanticValue.stn = AddCaseItem(ValueStack[ValueStack.Depth-3].stn as case_variants, ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 525: // case_item -> case_label_list, tkColon, unlabelled_stmt { CurrentSemanticValue.stn = new case_variant(ValueStack[ValueStack.Depth-3].stn as expression_list, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 526: // case_label_list -> case_label { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 527: // case_label_list -> case_label_list, tkComma, case_label { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 528: // case_label -> const_elem { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 529: // else_case -> /* empty */ { CurrentSemanticValue.stn = null;} break; case 530: // else_case -> tkElse, stmt_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 531: // repeat_stmt -> tkRepeat, stmt_list, tkUntil, expr { CurrentSemanticValue.stn = new repeat_node(ValueStack[ValueStack.Depth-3].stn as statement_list, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); (ValueStack[ValueStack.Depth-3].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-4].ti; (ValueStack[ValueStack.Depth-3].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-2].ti; ValueStack[ValueStack.Depth-3].stn.source_context = LocationStack[LocationStack.Depth-4].Merge(LocationStack[LocationStack.Depth-2]); } break; case 532: // while_stmt -> tkWhile, expr_l1, optional_tk_do, unlabelled_stmt { CurrentSemanticValue.stn = NewWhileStmt(ValueStack[ValueStack.Depth-4].ti, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 533: // optional_tk_do -> tkDo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 534: // optional_tk_do -> /* empty */ { CurrentSemanticValue.ti = null; } break; case 535: // lock_stmt -> tkLock, expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new lock_stmt(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 536: // foreach_stmt -> tkForeach, identifier, foreach_stmt_ident_dype_opt, tkIn, // expr_l1, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-6].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); if (ValueStack[ValueStack.Depth-5].td == null) parsertools.AddWarningFromResource("USING_UNLOCAL_FOREACH_VARIABLE", ValueStack[ValueStack.Depth-6].id.source_context); } break; case 537: // foreach_stmt -> tkForeach, tkVar, identifier, tkColon, type_ref, tkIn, expr_l1, // tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-5].td, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 538: // foreach_stmt -> tkForeach, tkVar, identifier, tkIn, expr_l1, tkDo, // unlabelled_stmt { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-5].id, new no_type_foreach(), ValueStack[ValueStack.Depth-3].ex, (statement)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 539: // foreach_stmt_ident_dype_opt -> tkColon, type_ref { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 541: // for_stmt -> tkFor, optional_var, identifier, for_stmt_decl_or_assign, expr_l1, // for_cycle_type, expr_l1, optional_tk_do, unlabelled_stmt { CurrentSemanticValue.stn = NewForStmt((bool)ValueStack[ValueStack.Depth-8].ob, ValueStack[ValueStack.Depth-7].id, ValueStack[ValueStack.Depth-6].td, ValueStack[ValueStack.Depth-5].ex, (for_cycle_type)ValueStack[ValueStack.Depth-4].ob, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-2].ti, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 542: // optional_var -> tkVar { CurrentSemanticValue.ob = true; } break; case 543: // optional_var -> /* empty */ { CurrentSemanticValue.ob = false; } break; case 545: // for_stmt_decl_or_assign -> tkColon, simple_type_identifier, tkAssign { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-2].td; } break; case 546: // for_cycle_type -> tkTo { CurrentSemanticValue.ob = for_cycle_type.to; } break; case 547: // for_cycle_type -> tkDownto { CurrentSemanticValue.ob = for_cycle_type.downto; } break; case 548: // with_stmt -> tkWith, expr_list, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new with_statement(ValueStack[ValueStack.Depth-1].stn as statement, ValueStack[ValueStack.Depth-3].stn as expression_list, CurrentLocationSpan); } break; case 549: // inherited_message -> tkInherited { CurrentSemanticValue.stn = new inherited_message(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 550: // try_stmt -> tkTry, stmt_list, try_handler { CurrentSemanticValue.stn = new try_stmt(ValueStack[ValueStack.Depth-2].stn as statement_list, ValueStack[ValueStack.Depth-1].stn as try_handler, CurrentLocationSpan); (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; ValueStack[ValueStack.Depth-2].stn.source_context = LocationStack[LocationStack.Depth-3].Merge(LocationStack[LocationStack.Depth-2]); } break; case 551: // try_handler -> tkFinally, stmt_list, tkEnd { CurrentSemanticValue.stn = new try_handler_finally(ValueStack[ValueStack.Depth-2].stn as statement_list, CurrentLocationSpan); (ValueStack[ValueStack.Depth-2].stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-3].ti; (ValueStack[ValueStack.Depth-2].stn as statement_list).right_logical_bracket = ValueStack[ValueStack.Depth-1].ti; } break; case 552: // try_handler -> tkExcept, exception_block, tkEnd { CurrentSemanticValue.stn = new try_handler_except((exception_block)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); if ((ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list != null) { (ValueStack[ValueStack.Depth-2].stn as exception_block).stmt_list.source_context = CurrentLocationSpan; (ValueStack[ValueStack.Depth-2].stn as exception_block).source_context = CurrentLocationSpan; } } break; case 553: // exception_block -> exception_handler_list, exception_block_else_branch { CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-2].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 554: // exception_block -> exception_handler_list, tkSemiColon, // exception_block_else_branch { CurrentSemanticValue.stn = new exception_block(null, (exception_handler_list)ValueStack[ValueStack.Depth-3].stn, (statement_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 555: // exception_block -> stmt_list { CurrentSemanticValue.stn = new exception_block(ValueStack[ValueStack.Depth-1].stn as statement_list, null, null, LocationStack[LocationStack.Depth-1]); } break; case 556: // exception_handler_list -> exception_handler { CurrentSemanticValue.stn = new exception_handler_list(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); } break; case 557: // exception_handler_list -> exception_handler_list, tkSemiColon, // exception_handler { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as exception_handler_list).Add(ValueStack[ValueStack.Depth-1].stn as exception_handler, CurrentLocationSpan); } break; case 558: // exception_block_else_branch -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 559: // exception_block_else_branch -> tkElse, stmt_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 560: // exception_handler -> tkOn, exception_identifier, tkDo, unlabelled_stmt { CurrentSemanticValue.stn = new exception_handler((ValueStack[ValueStack.Depth-3].stn as exception_ident).variable, (ValueStack[ValueStack.Depth-3].stn as exception_ident).type_name, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 561: // exception_identifier -> exception_class_type_identifier { CurrentSemanticValue.stn = new exception_ident(null, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 562: // exception_identifier -> exception_variable, tkColon, // exception_class_type_identifier { CurrentSemanticValue.stn = new exception_ident(ValueStack[ValueStack.Depth-3].id, (named_type_reference)ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 563: // exception_class_type_identifier -> simple_type_identifier { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 564: // exception_variable -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 565: // raise_stmt -> tkRaise { CurrentSemanticValue.stn = new raise_stmt(); CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; case 566: // raise_stmt -> tkRaise, expr { CurrentSemanticValue.stn = new raise_stmt(ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 567: // expr_list -> expr_with_func_decl_lambda { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 568: // expr_list -> expr_list, tkComma, expr_with_func_decl_lambda { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 569: // expr_as_stmt -> allowable_expr_as_stmt { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 570: // allowable_expr_as_stmt -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 571: // expr_with_func_decl_lambda -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 572: // expr_with_func_decl_lambda -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 573: // expr -> expr_l1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 574: // expr -> format_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 575: // expr_l1 -> expr_dq { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 576: // expr_l1 -> question_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 577: // expr_l1_func_decl_lambda -> expr_l1 { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 578: // expr_l1_func_decl_lambda -> func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 579: // expr_dq -> relop_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 580: // expr_dq -> expr_dq, tkDoubleQuestion, relop_expr { CurrentSemanticValue.ex = new double_question_node(ValueStack[ValueStack.Depth-3].ex as expression, ValueStack[ValueStack.Depth-1].ex as expression, CurrentLocationSpan);} break; case 581: // sizeof_expr -> tkSizeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new sizeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, null, CurrentLocationSpan); } break; case 582: // typeof_expr -> tkTypeOf, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new typeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 583: // typeof_expr -> tkTypeOf, tkRoundOpen, empty_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new typeof_operator((named_type_reference)ValueStack[ValueStack.Depth-2].td, CurrentLocationSpan); } break; case 584: // question_expr -> expr_l1, tkQuestion, expr_l1, tkColon, expr_l1 { if (ValueStack[ValueStack.Depth-3].ex is nil_const && ValueStack[ValueStack.Depth-1].ex is nil_const) parsertools.AddErrorFromResource("TWO_NILS_IN_QUESTION_EXPR",LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 585: // empty_template_type_reference -> simple_type_identifier, // template_type_empty_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-2].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 586: // empty_template_type_reference -> simple_type_identifier, tkAmpersend, // template_type_empty_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-3].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 587: // simple_or_template_type_reference -> simple_type_identifier { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 588: // simple_or_template_type_reference -> simple_type_identifier, // template_type_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-2].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 589: // simple_or_template_type_reference -> simple_type_identifier, tkAmpersend, // template_type_params { CurrentSemanticValue.td = new template_type_reference((named_type_reference)ValueStack[ValueStack.Depth-3].td, (template_param_list)ValueStack[ValueStack.Depth-1].stn, CurrentLocationSpan); } break; case 590: // optional_array_initializer -> tkRoundOpen, typed_const_list, tkRoundClose { CurrentSemanticValue.stn = new array_const((expression_list)ValueStack[ValueStack.Depth-2].stn, CurrentLocationSpan); } break; case 592: // new_expr -> tkNew, simple_or_template_type_reference, // optional_expr_list_with_bracket { CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-2].td, ValueStack[ValueStack.Depth-1].stn as expression_list, false, null, CurrentLocationSpan); } break; case 593: // new_expr -> tkNew, simple_or_template_type_reference, tkSquareOpen, // optional_expr_list, tkSquareClose, optional_array_initializer { var el = ValueStack[ValueStack.Depth-3].stn as expression_list; if (el == null) { var cnt = 0; var ac = ValueStack[ValueStack.Depth-1].stn as array_const; if (ac != null && ac.elements != null) cnt = ac.elements.Count; else parsertools.AddErrorFromResource("WITHOUT_INIT_AND_SIZE",LocationStack[LocationStack.Depth-2]); el = new expression_list(new int32_const(cnt),LocationStack[LocationStack.Depth-6]); } CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-5].td, el, true, ValueStack[ValueStack.Depth-1].stn as array_const, CurrentLocationSpan); } break; case 594: // new_expr -> tkNew, tkClass, tkRoundOpen, list_fields_in_unnamed_object, // tkRoundClose { // sugared node var l = ValueStack[ValueStack.Depth-2].ob as name_assign_expr_list; var exprs = l.name_expr.Select(x=>x.expr).ToList(); var typename = "AnonymousType#"+Guid(); var type = new named_type_reference(typename,LocationStack[LocationStack.Depth-5]); // node new_expr - for code generation of new node var ne = new new_expr(type, new expression_list(exprs), CurrentLocationSpan); // node unnamed_type_object - for formatting and code generation (new node and Anonymous class) CurrentSemanticValue.ex = new unnamed_type_object(l, true, ne, CurrentLocationSpan); } break; case 595: // field_in_unnamed_object -> identifier, tkAssign, relop_expr { CurrentSemanticValue.ob = new name_assign_expr(ValueStack[ValueStack.Depth-3].id,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 596: // field_in_unnamed_object -> relop_expr { ident name = null; var id = ValueStack[ValueStack.Depth-1].ex as ident; dot_node dot; if (id != null) name = id; else { dot = ValueStack[ValueStack.Depth-1].ex as dot_node; if (dot != null) { name = dot.right as ident; } } if (name == null) parsertools.errors.Add(new bad_anon_type(parsertools.CurrentFileName, LocationStack[LocationStack.Depth-1], null)); CurrentSemanticValue.ob = new name_assign_expr(name,ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan); } break; case 597: // list_fields_in_unnamed_object -> field_in_unnamed_object { var l = new name_assign_expr_list(); CurrentSemanticValue.ob = l.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); } break; case 598: // list_fields_in_unnamed_object -> list_fields_in_unnamed_object, tkComma, // field_in_unnamed_object { var nel = ValueStack[ValueStack.Depth-3].ob as name_assign_expr_list; var ss = nel.name_expr.Select(ne=>ne.name.name).FirstOrDefault(x=>string.Compare(x,(ValueStack[ValueStack.Depth-1].ob as name_assign_expr).name.name,true)==0); if (ss != null) parsertools.errors.Add(new anon_type_duplicate_name(parsertools.CurrentFileName, LocationStack[LocationStack.Depth-1], null)); nel.Add(ValueStack[ValueStack.Depth-1].ob as name_assign_expr); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; case 599: // optional_expr_list_with_bracket -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 600: // optional_expr_list_with_bracket -> tkRoundOpen, optional_expr_list, // tkRoundClose { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 601: // relop_expr -> simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 602: // relop_expr -> relop_expr, relop, simple_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 603: // relop_expr -> is_expr, tkRoundOpen, pattern_out_param_list, tkRoundClose { var isTypeCheck = ValueStack[ValueStack.Depth-4].ex as typecast_node; var deconstructorPattern = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, isTypeCheck.type_def, CurrentLocationSpan); CurrentSemanticValue.ex = new is_pattern_expr(isTypeCheck.expr, deconstructorPattern, CurrentLocationSpan); } break; case 604: // pattern -> simple_or_template_type_reference, tkRoundOpen, // pattern_out_param_list, tkRoundClose { CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, ValueStack[ValueStack.Depth-4].td, CurrentLocationSpan); } break; case 605: // pattern_optional_var -> simple_or_template_type_reference, tkRoundOpen, // pattern_out_param_list_optional_var, tkRoundClose { CurrentSemanticValue.stn = new deconstructor_pattern(ValueStack[ValueStack.Depth-2].ob as List, ValueStack[ValueStack.Depth-4].td, CurrentLocationSpan); } break; case 606: // pattern_out_param_list_optional_var -> pattern_out_param_optional_var { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter); } break; case 607: // pattern_out_param_list_optional_var -> pattern_out_param_list_optional_var, // tkSemiColon, // pattern_out_param_optional_var { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter); CurrentSemanticValue.ob = list; } break; case 608: // pattern_out_param_list_optional_var -> pattern_out_param_list_optional_var, // tkComma, // pattern_out_param_optional_var { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter); CurrentSemanticValue.ob = list; } break; case 609: // pattern_out_param_list -> pattern_out_param { CurrentSemanticValue.ob = new List(); (CurrentSemanticValue.ob as List).Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter); } break; case 610: // pattern_out_param_list -> pattern_out_param_list, tkSemiColon, // pattern_out_param { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter); CurrentSemanticValue.ob = list; } break; case 611: // pattern_out_param_list -> pattern_out_param_list, tkComma, pattern_out_param { var list = ValueStack[ValueStack.Depth-3].ob as List; list.Add(ValueStack[ValueStack.Depth-1].stn as pattern_deconstructor_parameter); CurrentSemanticValue.ob = list; } break; case 612: // pattern_out_param -> tkVar, identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 613: // pattern_out_param -> tkVar, identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 614: // pattern_out_param -> pattern { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 615: // pattern_out_param_optional_var -> identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 616: // pattern_out_param_optional_var -> identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 617: // pattern_out_param_optional_var -> tkVar, identifier, tkColon, type_ref { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 618: // pattern_out_param_optional_var -> tkVar, identifier { CurrentSemanticValue.stn = new var_deconstructor_parameter(ValueStack[ValueStack.Depth-1].id, null, CurrentLocationSpan); } break; case 619: // pattern_out_param_optional_var -> pattern_optional_var { CurrentSemanticValue.stn = new recursive_deconstructor_parameter(ValueStack[ValueStack.Depth-1].stn as pattern_node, CurrentLocationSpan); } break; case 620: // simple_expr_or_nothing -> simple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 621: // simple_expr_or_nothing -> /* empty */ { CurrentSemanticValue.ex = null; } break; case 622: // format_expr -> simple_expr, tkColon, simple_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 623: // format_expr -> tkColon, simple_expr_or_nothing { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-1].ex, null, CurrentLocationSpan); } break; case 624: // format_expr -> simple_expr, tkColon, simple_expr_or_nothing, tkColon, // simple_expr { CurrentSemanticValue.ex = new format_expr(ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 625: // format_expr -> tkColon, simple_expr_or_nothing, tkColon, simple_expr { CurrentSemanticValue.ex = new format_expr(null, ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 626: // relop -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 627: // relop -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 628: // relop -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 629: // relop -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 630: // relop -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 631: // relop -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 632: // relop -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 633: // simple_expr -> term { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 634: // simple_expr -> simple_expr, addop, term { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 635: // addop -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 636: // addop -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 637: // addop -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 638: // addop -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 639: // addop -> tkCSharpStyleOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 640: // typecast_op -> tkAs { CurrentSemanticValue.ob = op_typecast.as_op; } break; case 641: // typecast_op -> tkIs { CurrentSemanticValue.ob = op_typecast.is_op; } break; case 642: // as_is_expr -> is_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 643: // as_is_expr -> as_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 644: // as_expr -> term, tkAs, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.as_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 645: // is_expr -> term, tkIs, simple_or_template_type_reference { CurrentSemanticValue.ex = NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.is_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; case 646: // simple_term -> factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 647: // power_expr -> simple_term, tkStarStar, factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 648: // term -> factor { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 649: // term -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 650: // term -> power_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 651: // term -> term, mulop, factor { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 652: // term -> term, mulop, power_expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex,ValueStack[ValueStack.Depth-1].ex,(ValueStack[ValueStack.Depth-2].op).type, CurrentLocationSpan); } break; case 653: // term -> as_is_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 654: // mulop -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 655: // mulop -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 656: // mulop -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 657: // mulop -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 658: // mulop -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 659: // mulop -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 660: // mulop -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 661: // default_expr -> tkDefault, tkRoundOpen, simple_or_template_type_reference, // tkRoundClose { CurrentSemanticValue.ex = new default_operator(ValueStack[ValueStack.Depth-2].td as named_type_reference, CurrentLocationSpan); } break; case 662: // tuple -> tkRoundOpen, expr_l1, tkComma, expr_l1_list, lambda_type_ref, // optional_full_lambda_fp_list, tkRoundClose { /*if ($5 != null) parsertools.AddErrorFromResource("BAD_TUPLE",@5); if ($6 != null) parsertools.AddErrorFromResource("BAD_TUPLE",@6);*/ if ((ValueStack[ValueStack.Depth-4].stn as expression_list).Count>6) parsertools.AddErrorFromResource("TUPLE_ELEMENTS_COUNT_MUST_BE_LESSEQUAL_7",CurrentLocationSpan); (ValueStack[ValueStack.Depth-4].stn as expression_list).Insert(0,ValueStack[ValueStack.Depth-6].ex); CurrentSemanticValue.ex = new tuple_node(ValueStack[ValueStack.Depth-4].stn as expression_list,CurrentLocationSpan); } break; case 663: // factor -> tkNil { CurrentSemanticValue.ex = new nil_const(); CurrentSemanticValue.ex.source_context = CurrentLocationSpan; } break; case 664: // factor -> literal_or_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 665: // factor -> default_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 666: // factor -> tkSquareOpen, elem_list, tkSquareClose { CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 667: // factor -> tkNot, factor { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 668: // factor -> sign, factor { if (ValueStack[ValueStack.Depth-2].op.type == Operators.Minus) { var i64 = ValueStack[ValueStack.Depth-1].ex as int64_const; if (i64 != null && i64.val == (Int64)Int32.MaxValue + 1) { CurrentSemanticValue.ex = new int32_const(Int32.MinValue,CurrentLocationSpan); break; } var ui64 = ValueStack[ValueStack.Depth-1].ex as uint64_const; if (ui64 != null && ui64.val == (UInt64)Int64.MaxValue + 1) { CurrentSemanticValue.ex = new int64_const(Int64.MinValue,CurrentLocationSpan); break; } if (ui64 != null && ui64.val > (UInt64)Int64.MaxValue + 1) { parsertools.AddErrorFromResource("BAD_INT2",CurrentLocationSpan); break; } // ����� ������� ���������� ��������� � �������������� ������� } CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; case 669: // factor -> var_reference { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 670: // factor -> tuple { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 671: // literal_or_number -> literal { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 672: // literal_or_number -> unsigned_number { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 673: // var_question_point -> variable, tkQuestionPoint, variable { CurrentSemanticValue.ex = new dot_question_node(ValueStack[ValueStack.Depth-3].ex as addressed_value,ValueStack[ValueStack.Depth-1].ex as addressed_value,CurrentLocationSpan); } break; case 674: // var_question_point -> variable, tkQuestionPoint, var_question_point { CurrentSemanticValue.ex = new dot_question_node(ValueStack[ValueStack.Depth-3].ex as addressed_value,ValueStack[ValueStack.Depth-1].ex as addressed_value,CurrentLocationSpan); } break; case 675: // var_reference -> var_address, variable { CurrentSemanticValue.ex = NewVarReference(ValueStack[ValueStack.Depth-2].stn as get_address, ValueStack[ValueStack.Depth-1].ex as addressed_value, CurrentLocationSpan); } break; case 676: // var_reference -> variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 677: // var_reference -> var_question_point { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 678: // var_address -> tkAddressOf { CurrentSemanticValue.stn = NewVarAddress(CurrentLocationSpan); } break; case 679: // var_address -> var_address, tkAddressOf { CurrentSemanticValue.stn = NewVarAddress(ValueStack[ValueStack.Depth-2].stn as get_address, CurrentLocationSpan); } break; case 680: // attribute_variable -> simple_type_identifier, optional_expr_list_with_bracket { CurrentSemanticValue.stn = new attribute(null, ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); } break; case 681: // attribute_variable -> template_type, optional_expr_list_with_bracket { CurrentSemanticValue.stn = new attribute(null, ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as expression_list, CurrentLocationSpan); } break; case 682: // dotted_identifier -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 683: // dotted_identifier -> dotted_identifier, tkPoint, identifier_or_keyword { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 684: // variable_as_type -> dotted_identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex;} break; case 685: // variable_as_type -> dotted_identifier, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-2].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 686: // variable -> identifier { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; case 687: // variable -> operator_name_ident { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 688: // variable -> tkInherited, identifier { CurrentSemanticValue.ex = new inherited_ident(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 689: // variable -> tkRoundOpen, expr, tkRoundClose { if (!parsertools.build_tree_for_formatter) { ValueStack[ValueStack.Depth-2].ex.source_context = CurrentLocationSpan; CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-2].ex; } else CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; case 690: // variable -> sizeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 691: // variable -> typeof_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 692: // variable -> literal_or_number, tkPoint, identifier_or_keyword { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 693: // variable -> variable, tkSquareOpen, expr_list, tkSquareClose { var el = ValueStack[ValueStack.Depth-2].stn as expression_list; // SSM 10/03/16 if (el.Count==1 && el.expressions[0] is format_expr) { var fe = el.expressions[0] as format_expr; if (!parsertools.build_tree_for_formatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } else CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-4].ex as addressed_value,el, CurrentLocationSpan); } break; case 694: // variable -> variable, tkQuestionSquareOpen, format_expr, tkSquareClose { var fe = ValueStack[ValueStack.Depth-2].ex as format_expr; // SSM 9/01/17 if (!parsertools.build_tree_for_formatter) { if (fe.expr == null) fe.expr = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); if (fe.format1 == null) fe.format1 = new int32_const(int.MaxValue,LocationStack[LocationStack.Depth-2]); } CurrentSemanticValue.ex = new slice_expr_question(ValueStack[ValueStack.Depth-4].ex as addressed_value,fe.expr,fe.format1,fe.format2,CurrentLocationSpan); } break; case 695: // variable -> variable, tkRoundOpen, optional_expr_list, tkRoundClose { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value,ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; case 696: // variable -> variable, tkPoint, identifier_keyword_operatorname { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 697: // variable -> tuple, tkPoint, identifier_keyword_operatorname { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; case 698: // variable -> variable, tkDeref { CurrentSemanticValue.ex = new roof_dereference(ValueStack[ValueStack.Depth-2].ex as addressed_value,CurrentLocationSpan); } break; case 699: // variable -> variable, tkAmpersend, template_type_params { CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; case 700: // optional_expr_list -> expr_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 701: // optional_expr_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 702: // elem_list -> elem_list1 { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 703: // elem_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 704: // elem_list1 -> elem { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 705: // elem_list1 -> elem_list1, tkComma, elem { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 706: // elem -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 707: // elem -> expr, tkDotDot, expr { CurrentSemanticValue.ex = new diapason_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 708: // one_literal -> tkStringLiteral { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 709: // one_literal -> tkAsciiChar { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; case 710: // literal -> literal_list { CurrentSemanticValue.ex = NewLiteral(ValueStack[ValueStack.Depth-1].stn as literal_const_line); } break; case 711: // literal -> tkFormatStringLiteral { if (parsertools.build_tree_for_formatter) { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as string_const; } else { CurrentSemanticValue.ex = NewFormatString(ValueStack[ValueStack.Depth-1].stn as string_const); } } break; case 712: // literal_list -> one_literal { CurrentSemanticValue.stn = new literal_const_line(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); } break; case 713: // literal_list -> literal_list, one_literal { var line = ValueStack[ValueStack.Depth-2].stn as literal_const_line; if (line.literals.Last() is string_const && ValueStack[ValueStack.Depth-1].ex is string_const) parsertools.AddErrorFromResource("TWO_STRING_LITERALS_IN_SUCCESSION",LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.stn = line.Add(ValueStack[ValueStack.Depth-1].ex as literal, CurrentLocationSpan); } break; case 714: // operator_name_ident -> tkOperator, overload_operator { CurrentSemanticValue.ex = new operator_name_ident((ValueStack[ValueStack.Depth-1].op as op_type_node).text, (ValueStack[ValueStack.Depth-1].op as op_type_node).type, CurrentLocationSpan); } break; case 715: // optional_method_modificators -> tkSemiColon { CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); } break; case 716: // optional_method_modificators -> tkSemiColon, meth_modificators, tkSemiColon { //parsertools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; } break; case 717: // optional_method_modificators1 -> /* empty */ { CurrentSemanticValue.stn = new procedure_attributes_list(new List(),CurrentLocationSpan); } break; case 718: // optional_method_modificators1 -> tkSemiColon, meth_modificators { //parsertools.AddModifier((procedure_attributes_list)$2, proc_attribute.attr_overload); CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 719: // meth_modificators -> meth_modificator { CurrentSemanticValue.stn = new procedure_attributes_list(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); } break; case 720: // meth_modificators -> meth_modificators, tkSemiColon, meth_modificator { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as procedure_attributes_list).Add(ValueStack[ValueStack.Depth-1].id as procedure_attribute, CurrentLocationSpan); } break; case 721: // identifier -> tkIdentifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 722: // identifier -> property_specifier_directives { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 723: // identifier -> non_reserved { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 724: // identifier_or_keyword -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 725: // identifier_or_keyword -> keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 726: // identifier_or_keyword -> reserved_keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 727: // identifier_keyword_operatorname -> identifier { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 728: // identifier_keyword_operatorname -> keyword { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-1].ti.text, CurrentLocationSpan); } break; case 729: // identifier_keyword_operatorname -> operator_name_ident { CurrentSemanticValue.id = (ident)ValueStack[ValueStack.Depth-1].ex; } break; case 730: // meth_modificator -> tkAbstract { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 731: // meth_modificator -> tkOverload { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; parsertools.AddWarningFromResource("OVERLOAD_IS_NOT_USED", ValueStack[ValueStack.Depth-1].id.source_context); } break; case 732: // meth_modificator -> tkReintroduce { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 733: // meth_modificator -> tkOverride { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 734: // meth_modificator -> tkExtensionMethod { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 735: // meth_modificator -> tkVirtual { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 736: // property_modificator -> tkVirtual { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 737: // property_modificator -> tkOverride { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 738: // property_modificator -> tkAbstract { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 739: // property_specifier_directives -> tkRead { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 740: // property_specifier_directives -> tkWrite { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 741: // non_reserved -> tkName { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 742: // non_reserved -> tkNew { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 743: // visibility_specifier -> tkInternal { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 744: // visibility_specifier -> tkPublic { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 745: // visibility_specifier -> tkProtected { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 746: // visibility_specifier -> tkPrivate { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; case 747: // keyword -> visibility_specifier { CurrentSemanticValue.ti = new token_info(ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; case 748: // keyword -> tkSealed { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 749: // keyword -> tkTemplate { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 750: // keyword -> tkOr { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 751: // keyword -> tkTypeOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 752: // keyword -> tkSizeOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 753: // keyword -> tkDefault { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 754: // keyword -> tkWhere { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 755: // keyword -> tkXor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 756: // keyword -> tkAnd { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 757: // keyword -> tkDiv { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 758: // keyword -> tkMod { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 759: // keyword -> tkShl { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 760: // keyword -> tkShr { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 761: // keyword -> tkNot { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 762: // keyword -> tkAs { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 763: // keyword -> tkIn { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 764: // keyword -> tkIs { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].op; } break; case 765: // keyword -> tkArray { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 766: // keyword -> tkSequence { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 767: // keyword -> tkBegin { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 768: // keyword -> tkCase { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 769: // keyword -> tkClass { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 770: // keyword -> tkConst { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 771: // keyword -> tkConstructor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 772: // keyword -> tkDestructor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 773: // keyword -> tkDownto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 774: // keyword -> tkDo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 775: // keyword -> tkElse { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 776: // keyword -> tkExcept { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 777: // keyword -> tkFile { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 778: // keyword -> tkAuto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 779: // keyword -> tkFinalization { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 780: // keyword -> tkFinally { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 781: // keyword -> tkFor { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 782: // keyword -> tkForeach { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 783: // keyword -> tkFunction { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 784: // keyword -> tkIf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 785: // keyword -> tkImplementation { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 786: // keyword -> tkInherited { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 787: // keyword -> tkInitialization { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 788: // keyword -> tkInterface { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 789: // keyword -> tkProcedure { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 790: // keyword -> tkProperty { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 791: // keyword -> tkRaise { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 792: // keyword -> tkRecord { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 793: // keyword -> tkRepeat { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 794: // keyword -> tkSet { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 795: // keyword -> tkTry { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 796: // keyword -> tkType { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 797: // keyword -> tkStatic { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 798: // keyword -> tkThen { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 799: // keyword -> tkTo { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 800: // keyword -> tkUntil { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 801: // keyword -> tkUses { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 802: // keyword -> tkVar { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 803: // keyword -> tkWhile { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 804: // keyword -> tkWith { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 805: // keyword -> tkNil { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 806: // keyword -> tkGoto { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 807: // keyword -> tkOf { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 808: // keyword -> tkLabel { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 809: // keyword -> tkProgram { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 810: // keyword -> tkUnit { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 811: // keyword -> tkLibrary { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 812: // keyword -> tkNamespace { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 813: // keyword -> tkExternal { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 814: // keyword -> tkParams { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 815: // keyword -> tkEvent { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 816: // keyword -> tkYield { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 817: // keyword -> tkMatch { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 818: // keyword -> tkWhen { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 819: // reserved_keyword -> tkOperator { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 820: // reserved_keyword -> tkEnd { CurrentSemanticValue.ti = ValueStack[ValueStack.Depth-1].ti; } break; case 821: // overload_operator -> tkMinus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 822: // overload_operator -> tkPlus { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 823: // overload_operator -> tkSlash { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 824: // overload_operator -> tkStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 825: // overload_operator -> tkEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 826: // overload_operator -> tkGreater { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 827: // overload_operator -> tkGreaterEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 828: // overload_operator -> tkLower { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 829: // overload_operator -> tkLowerEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 830: // overload_operator -> tkNotEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 831: // overload_operator -> tkOr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 832: // overload_operator -> tkXor { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 833: // overload_operator -> tkAnd { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 834: // overload_operator -> tkDiv { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 835: // overload_operator -> tkMod { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 836: // overload_operator -> tkShl { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 837: // overload_operator -> tkShr { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 838: // overload_operator -> tkNot { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 839: // overload_operator -> tkIn { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 840: // overload_operator -> tkImplicit { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 841: // overload_operator -> tkExplicit { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 842: // overload_operator -> assign_operator { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 843: // overload_operator -> tkStarStar { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 844: // assign_operator -> tkAssign { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 845: // assign_operator -> tkPlusEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 846: // assign_operator -> tkMinusEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 847: // assign_operator -> tkMultEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 848: // assign_operator -> tkDivEqual { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; case 849: // func_decl_lambda -> identifier, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-3].id, LocationStack[LocationStack.Depth-3]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), parametr_kind.none, null, LocationStack[LocationStack.Depth-3]), LocationStack[LocationStack.Depth-3]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 850: // func_decl_lambda -> tkRoundOpen, tkRoundClose, lambda_type_ref_noproctype, // tkArrow, lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 851: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-5].td, parametr_kind.none, null, loc), loc); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 852: // func_decl_lambda -> tkRoundOpen, identifier, tkSemiColon, full_lambda_fp_list, // tkRoundClose, lambda_type_ref_noproctype, tkArrow, // lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-7].id, LocationStack[LocationStack.Depth-7]); var formalPars = new formal_parameters(new typed_parameters(idList, new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null), parametr_kind.none, null, LocationStack[LocationStack.Depth-7]), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 853: // func_decl_lambda -> tkRoundOpen, identifier, tkColon, fptype, tkSemiColon, // full_lambda_fp_list, tkRoundClose, // lambda_type_ref_noproctype, tkArrow, lambda_function_body { var idList = new ident_list(ValueStack[ValueStack.Depth-9].id, LocationStack[LocationStack.Depth-9]); var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7]); var formalPars = new formal_parameters(new typed_parameters(idList, ValueStack[ValueStack.Depth-7].td, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-9],LocationStack[LocationStack.Depth-8],LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5])); for (int i = 0; i < (ValueStack[ValueStack.Depth-5].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-5].stn as formal_parameters).params_list[i]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, CurrentLocationSpan); } break; case 854: // func_decl_lambda -> tkRoundOpen, expr_l1, tkComma, expr_l1_list, // lambda_type_ref, optional_full_lambda_fp_list, // tkRoundClose, rem_lambda { var pair = ValueStack[ValueStack.Depth-1].ob as pair_type_stlist; if (ValueStack[ValueStack.Depth-4].td is lambda_inferred_type) { var formal_pars = new formal_parameters(); var idd = ValueStack[ValueStack.Depth-7].ex as ident; if (idd==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]); var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); var new_typed_pars = new typed_parameters(new ident_list(idd, idd.source_context), lambda_inf_type, parametr_kind.none, null, idd.source_context); formal_pars.Add(new_typed_pars); foreach (var id in (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions) { var idd1 = id as ident; if (idd1==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",id.source_context); lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); new_typed_pars = new typed_parameters(new ident_list(idd1, idd1.source_context), lambda_inf_type, parametr_kind.none, null, idd1.source_context); formal_pars.Add(new_typed_pars); } if (ValueStack[ValueStack.Depth-3].stn != null) for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++) formal_pars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]); formal_pars.source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formal_pars, pair.tn, pair.exprs, CurrentLocationSpan); } else { var loc = LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5]); var idd = ValueStack[ValueStack.Depth-7].ex as ident; if (idd==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",LocationStack[LocationStack.Depth-7]); var idList = new ident_list(idd, loc); var iddlist = (ValueStack[ValueStack.Depth-5].stn as expression_list).expressions; for (int j = 0; j < iddlist.Count; j++) { var idd2 = iddlist[j] as ident; if (idd2==null) parsertools.AddErrorFromResource("ONE_TKIDENTIFIER",idd2.source_context); idList.Add(idd2); } var parsType = ValueStack[ValueStack.Depth-4].td; var formalPars = new formal_parameters(new typed_parameters(idList, parsType, parametr_kind.none, null, loc), LexLocation.MergeAll(LocationStack[LocationStack.Depth-7],LocationStack[LocationStack.Depth-6],LocationStack[LocationStack.Depth-5],LocationStack[LocationStack.Depth-4],LocationStack[LocationStack.Depth-3])); if (ValueStack[ValueStack.Depth-3].stn != null) for (int i = 0; i < (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Count; i++) formalPars.Add((ValueStack[ValueStack.Depth-3].stn as formal_parameters).params_list[i]); CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), formalPars, pair.tn, pair.exprs, CurrentLocationSpan); } } break; case 855: // func_decl_lambda -> expl_func_decl_lambda { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; case 856: // optional_full_lambda_fp_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; case 857: // optional_full_lambda_fp_list -> tkSemiColon, full_lambda_fp_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 858: // rem_lambda -> lambda_type_ref_noproctype, tkArrow, lambda_function_body { CurrentSemanticValue.ob = new pair_type_stlist(ValueStack[ValueStack.Depth-3].td,ValueStack[ValueStack.Depth-1].stn as statement_list); } break; case 859: // expl_func_decl_lambda -> tkFunction, lambda_type_ref, tkArrow, // lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 860: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, tkRoundClose, lambda_type_ref, // tkArrow, lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 861: // expl_func_decl_lambda -> tkFunction, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, lambda_type_ref, tkArrow, // lambda_function_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-5].stn as formal_parameters, ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].stn as statement_list, 1, CurrentLocationSpan); } break; case 862: // expl_func_decl_lambda -> tkProcedure, tkArrow, lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 863: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, tkRoundClose, tkArrow, // lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), null, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 864: // expl_func_decl_lambda -> tkProcedure, tkRoundOpen, full_lambda_fp_list, // tkRoundClose, tkArrow, lambda_procedure_body { CurrentSemanticValue.ex = new function_lambda_definition(lambdaHelper.CreateLambdaName(), ValueStack[ValueStack.Depth-4].stn as formal_parameters, null, ValueStack[ValueStack.Depth-1].stn as statement_list, 2, CurrentLocationSpan); } break; case 865: // full_lambda_fp_list -> lambda_simple_fp_sect { var typed_pars = ValueStack[ValueStack.Depth-1].stn as typed_parameters; if (typed_pars.vars_type is lambda_inferred_type) { CurrentSemanticValue.stn = new formal_parameters(); foreach (var id in typed_pars.idents.idents) { var lambda_inf_type = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); var new_typed_pars = new typed_parameters(new ident_list(id, id.source_context), lambda_inf_type, parametr_kind.none, null, id.source_context); (CurrentSemanticValue.stn as formal_parameters).Add(new_typed_pars); } CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } else { CurrentSemanticValue.stn = new formal_parameters(typed_pars, CurrentLocationSpan); } } break; case 866: // full_lambda_fp_list -> full_lambda_fp_list, tkSemiColon, lambda_simple_fp_sect { CurrentSemanticValue.stn =(ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; case 867: // lambda_simple_fp_sect -> ident_list, lambda_type_ref { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-2].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); } break; case 868: // lambda_type_ref -> /* empty */ { CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); } break; case 869: // lambda_type_ref -> tkColon, fptype { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 870: // lambda_type_ref_noproctype -> /* empty */ { CurrentSemanticValue.td = new lambda_inferred_type(new PascalABCCompiler.TreeRealization.lambda_any_type_node(), null); } break; case 871: // lambda_type_ref_noproctype -> tkColon, fptype_noproctype { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; case 872: // lambda_function_body -> expr_l1 { CurrentSemanticValue.stn = NewLambdaBody(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; case 873: // lambda_function_body -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 874: // lambda_function_body -> if_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 875: // lambda_function_body -> while_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 876: // lambda_function_body -> repeat_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 877: // lambda_function_body -> for_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 878: // lambda_function_body -> foreach_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 879: // lambda_function_body -> case_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 880: // lambda_function_body -> try_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 881: // lambda_function_body -> lock_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 882: // lambda_function_body -> yield_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 883: // lambda_procedure_body -> proc_call { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 884: // lambda_procedure_body -> compound_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; case 885: // lambda_procedure_body -> if_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 886: // lambda_procedure_body -> while_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 887: // lambda_procedure_body -> repeat_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 888: // lambda_procedure_body -> for_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 889: // lambda_procedure_body -> foreach_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 890: // lambda_procedure_body -> case_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 891: // lambda_procedure_body -> try_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 892: // lambda_procedure_body -> lock_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 893: // lambda_procedure_body -> yield_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 894: // lambda_procedure_body -> raise_stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; case 895: // lambda_procedure_body -> assignment { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; } } protected override string TerminalToString(int terminal) { if (aliasses != null && aliasses.ContainsKey(terminal)) return aliasses[terminal]; else if (((Tokens)terminal).ToString() != terminal.ToString(CultureInfo.InvariantCulture)) return ((Tokens)terminal).ToString(); else return CharToString((char)terminal); } } }