47 #define YYBISON_VERSION "2.5" 50 #define YYSKELETON_NAME "yacc.c" 62 #define YYLSP_NEEDED 0 73 #define PARSER_DEBUG 0 76 #define YYERROR_VERBOSE 1 77 #define YYSTACK_USE_ALLOCA 0 92 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0])) 94 #define YYMALLOC(size) rb_parser_malloc(parser, (size)) 95 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size)) 96 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size)) 97 #define YYFREE(ptr) rb_parser_free(parser, (ptr)) 98 #define malloc YYMALLOC 99 #define realloc YYREALLOC 100 #define calloc YYCALLOC 106 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc) 110 #define is_notop_id(id) ((id)>tLAST_OP_ID) 111 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL) 112 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL) 113 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE) 114 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET) 115 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST) 116 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS) 117 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK) 118 #define id_type(id) (is_notop_id(id) ? (int)((id)&ID_SCOPE_MASK) : -1) 120 #define is_asgn_or_id(id) ((is_notop_id(id)) && \ 121 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \ 122 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \ 123 ((id)&ID_SCOPE_MASK) == ID_CLASS)) 141 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit) 157 #define IS_lex_state_for(x, ls) ((x) & (ls)) 158 #define IS_lex_state(ls) IS_lex_state_for(lex_state, (ls)) 161 static const char *lex_state_name(
enum lex_state_e state);
166 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1)) 167 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1) 168 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1)) 169 # define BITSTACK_SET_P(stack) ((stack)&1) 171 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n)) 172 #define COND_POP() BITSTACK_POP(cond_stack) 173 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack) 174 #define COND_P() BITSTACK_SET_P(cond_stack) 176 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n)) 177 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack) 178 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack) 179 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack) 196 #define DVARS_INHERIT ((void*)1) 197 #define DVARS_TOPSCOPE NULL 198 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl)) 199 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3) 242 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)
tbl);
246 if (
tbl->pos ==
tbl->capa) {
247 tbl->capa =
tbl->capa * 2;
259 for (
i = 0;
i <
tbl->pos;
i++) {
260 if (
tbl->tbl[
i] ==
id) {
353 VALUE parsing_thread;
358 #define STR_NEW(p,n) rb_enc_str_new((p),(n),current_enc) 359 #define STR_NEW0() rb_enc_str_new(0,0,current_enc) 360 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),current_enc) 361 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),current_enc) 362 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT) 363 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), current_enc) 366 #define yyerror(msg) parser_yyerror(parser, (msg)) 368 #define lex_strterm (parser->parser_lex_strterm) 369 #define lex_state (parser->parser_lex_state) 370 #define cond_stack (parser->parser_cond_stack) 371 #define cmdarg_stack (parser->parser_cmdarg_stack) 372 #define class_nest (parser->parser_class_nest) 373 #define paren_nest (parser->parser_paren_nest) 374 #define lpar_beg (parser->parser_lpar_beg) 375 #define brace_nest (parser->parser_brace_nest) 376 #define in_single (parser->parser_in_single) 377 #define in_def (parser->parser_in_def) 378 #define compile_for_eval (parser->parser_compile_for_eval) 379 #define cur_mid (parser->parser_cur_mid) 380 #define in_defined (parser->parser_in_defined) 381 #define tokenbuf (parser->parser_tokenbuf) 382 #define tokidx (parser->parser_tokidx) 383 #define toksiz (parser->parser_toksiz) 384 #define tokline (parser->parser_tokline) 385 #define lex_input (parser->parser_lex_input) 386 #define lex_lastline (parser->parser_lex_lastline) 387 #define lex_nextline (parser->parser_lex_nextline) 388 #define lex_pbeg (parser->parser_lex_pbeg) 389 #define lex_p (parser->parser_lex_p) 390 #define lex_pend (parser->parser_lex_pend) 391 #define heredoc_end (parser->parser_heredoc_end) 392 #define command_start (parser->parser_command_start) 393 #define deferred_nodes (parser->parser_deferred_nodes) 394 #define lex_gets_ptr (parser->parser_lex_gets_ptr) 395 #define lex_gets (parser->parser_lex_gets) 396 #define lvtbl (parser->parser_lvtbl) 397 #define ruby__end__seen (parser->parser_ruby__end__seen) 398 #define ruby_sourceline (parser->parser_ruby_sourceline) 399 #define ruby_sourcefile (parser->parser_ruby_sourcefile) 400 #define ruby_sourcefile_string (parser->parser_ruby_sourcefile_string) 401 #define current_enc (parser->enc) 402 #define yydebug (parser->parser_yydebug) 405 #define ruby_eval_tree (parser->parser_eval_tree) 406 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin) 407 #define ruby_debug_lines (parser->debug_lines) 408 #define ruby_coverage (parser->coverage) 412 static int yylex(
void*,
void*);
414 static int yylex(
void*);
418 #define yyparse ruby_yyparse 421 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3)) 424 #define cond(node) cond_gen(parser, (node)) 426 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2)) 434 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node)) 435 #define void_expr0(node) void_expr_gen(parser, (node)) 436 #define void_expr(node) void_expr0((node) = remove_begin(node)) 438 #define void_stmts(node) void_stmts_gen(parser, (node)) 440 #define reduce_nodes(n) reduce_nodes_gen(parser,(n)) 442 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2)) 445 #define block_append(h,t) block_append_gen(parser,(h),(t)) 447 #define list_append(l,i) list_append_gen(parser,(l),(i)) 449 #define list_concat(h,t) list_concat_gen(parser,(h),(t)) 451 #define arg_append(h,t) arg_append_gen(parser,(h),(t)) 453 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t)) 455 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t)) 458 #define new_evstr(n) new_evstr_gen(parser,(n)) 460 #define evstr2dstr(n) evstr2dstr_gen(parser,(n)) 464 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1)) 466 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id)) 469 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 471 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 475 #define ret_args(node) ret_args_gen(parser, (node)) 478 #define new_yield(node) new_yield_gen(parser, (node)) 480 #define dsym_node(node) dsym_node_gen(parser, (node)) 483 #define gettable(id) gettable_gen(parser,(id)) 485 #define assignable(id,node) assignable_gen(parser, (id), (node)) 488 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2)) 490 #define attrset(node,id) attrset_gen(parser, (node), (id)) 493 #define rb_backref_error(n) rb_backref_error_gen(parser,(n)) 495 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2)) 499 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (attr), (op), (rhs)) 501 #define new_const_op_assign(lhs, op, rhs) new_const_op_assign_gen(parser, (lhs), (op), (rhs)) 504 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2)) 507 #define local_tbl() local_tbl_gen(parser) 512 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options)) 514 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options)) 516 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options)) 518 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match)) 520 #define get_id(id) (id) 521 #define get_value(val) (val) 523 #define value_expr(node) ((void)(node)) 524 #define remove_begin(node) (node) 525 #define rb_dvar_defined(id) 0 526 #define rb_local_defined(id) 0 527 static ID ripper_get_id(
VALUE);
528 #define get_id(id) ripper_get_id(id) 530 #define get_value(val) ripper_get_value(val) 532 #define assignable(lhs,node) assignable_gen(parser, (lhs)) 534 #define id_is_var(id) id_is_var_gen(parser, (id)) 536 #define node_assign(node1, node2) dispatch2(assign, (node1), (node2)) 540 #define new_attr_op_assign(lhs, type, attr, op, rhs) new_attr_op_assign_gen(parser, (lhs), (type), (attr), (op), (rhs)) 544 #define new_op_assign(lhs, op, rhs) new_op_assign_gen(parser, (lhs), (op), (rhs)) 547 #define formal_argument(id) formal_argument_gen(parser, (id)) 549 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name)) 551 #define new_bv(id) new_bv_gen(parser, (id)) 554 #define local_push(top) local_push_gen(parser,(top)) 556 #define local_pop() local_pop_gen(parser) 558 #define local_var(id) local_var_gen(parser, (id)) 560 #define arg_var(id) arg_var_gen(parser, (id)) 562 #define local_id(id) local_id_gen(parser, (id)) 564 #define internal_id() internal_id_gen(parser) 567 #define dyna_push() dyna_push_gen(parser) 569 #define dyna_pop(node) dyna_pop_gen(parser, (node)) 571 #define dyna_in_block() dyna_in_block_gen(parser) 572 #define dyna_var(id) local_var(id) 574 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0) 575 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1) 577 #define dvar_curr(id) dvar_curr_gen(parser, (id)) 580 #define lvar_defined(id) lvar_defined_gen(parser, (id)) 582 #define RE_OPTION_ONCE (1<<16) 583 #define RE_OPTION_ENCODING_SHIFT 8 584 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT) 585 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff) 586 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE) 587 #define RE_OPTION_MASK 0xff 588 #define RE_OPTION_ARG_ENCODING_NONE 32 590 #define NODE_STRTERM NODE_ZARRAY 591 #define NODE_HEREDOC NODE_ARRAY 592 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1)) 593 #define nd_func u1.id 594 #if SIZEOF_SHORT == 2 595 #define nd_term(node) ((signed short)(node)->u2.id) 597 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2) 599 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2) 600 #define nd_nest u3.cnt 605 #define RIPPER_VERSION "0.1.0" 618 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n)) 619 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a)) 620 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b)) 621 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c)) 622 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d)) 623 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e)) 624 #define dispatch7(n,a,b,c,d,e,f,g) ripper_dispatch7(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e), (f), (g)) 626 #define yyparse ripper_yyparse 628 #define ripper_intern(s) ID2SYM(rb_intern(s)) 629 static VALUE ripper_id2sym(
ID);
631 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \ 632 ID2SYM(id) : ripper_id2sym(id)) 635 #define arg_new() dispatch0(args_new) 636 #define arg_add(l,a) dispatch2(args_add, (l), (a)) 637 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a)) 638 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b)) 639 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b))) 640 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v)) 641 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b)) 643 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a)) 644 #define mrhs_new() dispatch0(mrhs_new) 645 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a)) 646 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a)) 648 #define mlhs_new() dispatch0(mlhs_new) 649 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a)) 650 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a)) 652 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \ 653 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk)) 655 #define blockvar_new(p,v) dispatch2(block_var, (p), (v)) 656 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a)) 657 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a)) 659 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a))) 660 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a)) 661 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b)) 663 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x)) 670 return params_new(
f, o, r,
p, k, kr, escape_Qundef(b));
672 #define new_args(f,o,r,p,t) new_args_gen(parser, (f),(o),(r),(p),(t)) 679 #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) 687 # define ifndef_ripper(x) (x) 690 # define ifndef_ripper(x) 694 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt)) 695 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 696 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 697 # define rb_warn4S(file,line,fmt,a) rb_compile_warn((file), (line), (fmt), (a)) 698 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt)) 699 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a)) 701 # define rb_warn0(fmt) ripper_warn0(parser, (fmt)) 702 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a)) 703 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a)) 704 # define rb_warn4S(file,line,fmt,a) ripper_warnS(parser, (fmt), (a)) 705 # define rb_warning0(fmt) ripper_warning0(parser, (fmt)) 706 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a)) 707 static void ripper_warn0(
struct parser_params*,
const char*);
708 static void ripper_warnI(
struct parser_params*,
const char*,
int);
709 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
710 static void ripper_warning0(
struct parser_params*,
const char*);
711 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
715 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
716 # define rb_compile_error ripper_compile_error 717 # define compile_error ripper_compile_error 718 # define PARSER_ARG parser, 720 # define rb_compile_error rb_compile_error_with_enc 721 # define compile_error parser->nerr++,rb_compile_error_with_enc 722 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc, 730 #define YYMAXDEPTH 10000 737 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0) 738 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0) 740 #define token_info_push(token) 741 #define token_info_pop(token) 754 #ifdef YYERROR_VERBOSE 755 # undef YYERROR_VERBOSE 756 # define YYERROR_VERBOSE 1 758 # define YYERROR_VERBOSE 0 762 #ifndef YYTOKEN_TABLE 763 # define YYTOKEN_TABLE 0 891 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 909 # define YYSTYPE_IS_TRIVIAL 1 910 # define yystype YYSTYPE 911 # define YYSTYPE_IS_DECLARED 1 933 #elif (defined __STDC__ || defined __C99__FUNC__ \ 934 || defined __cplusplus || defined _MSC_VER) 953 # ifdef __SIZE_TYPE__ 954 # define YYSIZE_T __SIZE_TYPE__ 955 # elif defined size_t 956 # define YYSIZE_T size_t 957 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 958 || defined __cplusplus || defined _MSC_VER) 960 # define YYSIZE_T size_t 962 # define YYSIZE_T unsigned int 966 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 969 # if defined YYENABLE_NLS && YYENABLE_NLS 971 # include <libintl.h> 972 # define YY_(msgid) dgettext ("bison-runtime", msgid) 976 # define YY_(msgid) msgid 981 #if ! defined lint || defined __GNUC__ 982 # define YYUSE(e) ((void) (e)) 991 #if (defined __STDC__ || defined __C99__FUNC__ \ 992 || defined __cplusplus || defined _MSC_VER) 1005 #if ! defined yyoverflow || YYERROR_VERBOSE 1009 # ifdef YYSTACK_USE_ALLOCA 1010 # if YYSTACK_USE_ALLOCA 1012 # define YYSTACK_ALLOC __builtin_alloca 1013 # elif defined __BUILTIN_VA_ARG_INCR 1014 # include <alloca.h> 1016 # define YYSTACK_ALLOC __alloca 1017 # elif defined _MSC_VER 1018 # include <malloc.h> 1019 # define alloca _alloca 1021 # define YYSTACK_ALLOC alloca 1022 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1023 || defined __cplusplus || defined _MSC_VER) 1024 # include <stdlib.h> 1025 # ifndef EXIT_SUCCESS 1026 # define EXIT_SUCCESS 0 1033 # ifdef YYSTACK_ALLOC 1035 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0)) 1036 # ifndef YYSTACK_ALLOC_MAXIMUM 1041 # define YYSTACK_ALLOC_MAXIMUM 4032 1044 # define YYSTACK_ALLOC YYMALLOC 1045 # define YYSTACK_FREE YYFREE 1046 # ifndef YYSTACK_ALLOC_MAXIMUM 1047 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 1049 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 1050 && ! ((defined YYMALLOC || defined malloc) \ 1051 && (defined YYFREE || defined free))) 1052 # include <stdlib.h> 1053 # ifndef EXIT_SUCCESS 1054 # define EXIT_SUCCESS 0 1058 # define YYMALLOC malloc 1059 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1060 || defined __cplusplus || defined _MSC_VER) 1065 # define YYFREE free 1066 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 1067 || defined __cplusplus || defined _MSC_VER) 1075 #if (! defined yyoverflow \ 1076 && (! defined __cplusplus \ 1077 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 1087 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 1091 # define YYSTACK_BYTES(N) \ 1092 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 1093 + YYSTACK_GAP_MAXIMUM) 1095 # define YYCOPY_NEEDED 1 1102 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 1105 YYSIZE_T yynewbytes; \ 1106 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 1107 Stack = &yyptr->Stack_alloc; \ 1108 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 1109 yyptr += yynewbytes / sizeof (*yyptr); \ 1115 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 1119 # if defined __GNUC__ && 1 < __GNUC__ 1120 # define YYCOPY(To, From, Count) \ 1121 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 1123 # define YYCOPY(To, From, Count) \ 1127 for (yyi = 0; yyi < (Count); yyi++) \ 1128 (To)[yyi] = (From)[yyi]; \ 1138 #define YYLAST 10700 1141 #define YYNTOKENS 142 1145 #define YYNRULES 620 1147 #define YYNSTATES 1057 1150 #define YYUNDEFTOK 2 1151 #define YYMAXUTOK 352 1153 #define YYTRANSLATE(YYX) \ 1154 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 1159 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1160 141, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1162 2, 2, 140, 127, 2, 2, 2, 125, 120, 2,
1163 136, 137, 123, 121, 134, 122, 133, 124, 2, 2,
1164 2, 2, 2, 2, 2, 2, 2, 2, 115, 139,
1165 117, 113, 116, 114, 2, 2, 2, 2, 2, 2,
1166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1168 2, 132, 2, 138, 119, 2, 135, 2, 2, 2,
1169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1171 2, 2, 2, 130, 118, 131, 128, 2, 79, 80,
1172 66, 67, 68, 2, 69, 83, 84, 74, 73, 70,
1173 71, 72, 77, 78, 81, 82, 2, 2, 2, 2,
1174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1184 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1185 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1186 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1187 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1188 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1189 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1190 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1191 65, 75, 76, 85, 86, 87, 88, 89, 90, 91,
1192 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1193 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1202 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1203 23, 24, 30, 35, 38, 40, 42, 46, 49, 51,
1204 52, 58, 59, 64, 68, 72, 76, 79, 83, 87,
1205 91, 95, 99, 104, 106, 110, 114, 121, 127, 133,
1206 139, 145, 149, 153, 157, 161, 163, 167, 171, 173,
1207 177, 181, 185, 188, 190, 192, 194, 196, 198, 203,
1208 204, 210, 212, 215, 219, 224, 230, 235, 241, 244,
1209 247, 250, 253, 256, 258, 262, 264, 268, 270, 273,
1210 277, 283, 286, 291, 294, 299, 301, 305, 307, 311,
1211 314, 318, 320, 324, 326, 328, 333, 337, 341, 345,
1212 349, 352, 354, 356, 358, 363, 367, 371, 375, 379,
1213 382, 384, 386, 388, 391, 393, 397, 399, 401, 403,
1214 405, 407, 409, 411, 413, 415, 417, 418, 423, 425,
1215 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1216 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1217 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1218 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1219 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1220 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1221 547, 549, 551, 553, 555, 557, 559, 561, 563, 565,
1222 569, 575, 579, 585, 592, 598, 604, 610, 616, 621,
1223 625, 629, 633, 637, 641, 645, 649, 653, 657, 662,
1224 667, 670, 673, 677, 681, 685, 689, 693, 697, 701,
1225 705, 709, 713, 717, 721, 725, 728, 731, 735, 739,
1226 743, 747, 748, 753, 760, 762, 764, 766, 769, 774,
1227 777, 781, 783, 785, 787, 789, 792, 797, 800, 802,
1228 805, 808, 813, 815, 816, 819, 822, 825, 827, 829,
1229 832, 836, 841, 845, 850, 853, 855, 857, 859, 861,
1230 863, 865, 867, 869, 871, 873, 875, 876, 881, 882,
1231 886, 887, 888, 894, 898, 902, 905, 909, 913, 915,
1232 920, 924, 926, 927, 934, 939, 943, 946, 948, 951,
1233 954, 961, 968, 969, 970, 978, 979, 980, 988, 994,
1234 999, 1000, 1001, 1011, 1012, 1019, 1020, 1021, 1030, 1031,
1235 1037, 1038, 1045, 1046, 1047, 1057, 1059, 1061, 1063, 1065,
1236 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
1237 1087, 1089, 1091, 1093, 1096, 1098, 1100, 1102, 1108, 1110,
1238 1113, 1115, 1117, 1119, 1123, 1125, 1129, 1131, 1136, 1143,
1239 1147, 1153, 1156, 1161, 1163, 1167, 1172, 1175, 1178, 1180,
1240 1183, 1184, 1191, 1200, 1205, 1212, 1217, 1220, 1227, 1230,
1241 1235, 1242, 1245, 1250, 1253, 1258, 1260, 1262, 1264, 1268,
1242 1270, 1275, 1277, 1282, 1284, 1288, 1290, 1292, 1293, 1294,
1243 1295, 1301, 1306, 1308, 1312, 1316, 1317, 1323, 1326, 1331,
1244 1337, 1343, 1346, 1347, 1353, 1354, 1360, 1364, 1365, 1370,
1245 1371, 1376, 1379, 1381, 1386, 1387, 1393, 1394, 1400, 1406,
1246 1408, 1410, 1417, 1419, 1421, 1423, 1425, 1428, 1430, 1433,
1247 1435, 1437, 1439, 1441, 1443, 1445, 1447, 1450, 1454, 1458,
1248 1462, 1466, 1470, 1471, 1475, 1477, 1480, 1484, 1488, 1489,
1249 1493, 1497, 1501, 1505, 1509, 1510, 1514, 1515, 1519, 1520,
1250 1523, 1524, 1527, 1528, 1531, 1533, 1534, 1538, 1539, 1540,
1251 1541, 1548, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565,
1252 1567, 1571, 1573, 1575, 1578, 1581, 1583, 1585, 1587, 1589,
1253 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, 1607, 1609,
1254 1611, 1613, 1615, 1617, 1619, 1620, 1625, 1628, 1632, 1635,
1255 1640, 1643, 1646, 1648, 1651, 1652, 1659, 1668, 1673, 1680,
1256 1685, 1692, 1695, 1700, 1707, 1710, 1715, 1718, 1723, 1725,
1257 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1744, 1746,
1258 1750, 1753, 1756, 1758, 1762, 1764, 1768, 1770, 1772, 1775,
1259 1777, 1781, 1785, 1787, 1791, 1793, 1797, 1799, 1801, 1804,
1260 1806, 1808, 1810, 1813, 1816, 1818, 1820, 1821, 1826, 1828,
1261 1831, 1833, 1837, 1841, 1844, 1847, 1849, 1851, 1853, 1855,
1262 1857, 1859, 1861, 1863, 1865, 1867, 1869, 1871, 1872, 1874,
1263 1875, 1877, 1880, 1883, 1884, 1886, 1888, 1890, 1892, 1894,
1270 143, 0, -1, -1, 144, 145, -1, 146, 333, -1,
1271 340, -1, 147, -1, 146, 339, 147, -1, 1, 147,
1272 -1, 154, -1, -1, 47, 148, 130, 145, 131, -1,
1273 150, 262, 230, 265, -1, 151, 333, -1, 340, -1,
1274 152, -1, 151, 339, 152, -1, 1, 154, -1, 154,
1275 -1, -1, 47, 153, 130, 145, 131, -1, -1, 45,
1276 177, 155, 177, -1, 45, 54, 54, -1, 45, 54,
1277 64, -1, 45, 54, 63, -1, 6, 178, -1, 154,
1278 40, 158, -1, 154, 41, 158, -1, 154, 42, 158,
1279 -1, 154, 43, 158, -1, 154, 44, 154, -1, 48,
1280 130, 150, 131, -1, 156, -1, 165, 113, 159, -1,
1281 297, 87, 159, -1, 215, 132, 188, 336, 87, 159,
1282 -1, 215, 133, 52, 87, 159, -1, 215, 133, 56,
1283 87, 159, -1, 215, 85, 56, 87, 159, -1, 215,
1284 85, 52, 87, 159, -1, 298, 87, 159, -1, 172,
1285 113, 195, -1, 165, 113, 184, -1, 165, 113, 195,
1286 -1, 157, -1, 172, 113, 159, -1, 172, 113, 156,
1287 -1, 159, -1, 157, 37, 157, -1, 157, 38, 157,
1288 -1, 39, 334, 157, -1, 127, 159, -1, 182, -1,
1289 157, -1, 164, -1, 160, -1, 251, -1, 251, 332,
1290 330, 190, -1, -1, 94, 162, 238, 150, 131, -1,
1291 329, -1, 163, 190, -1, 163, 190, 161, -1, 215,
1292 133, 330, 190, -1, 215, 133, 330, 190, 161, -1,
1293 215, 85, 330, 190, -1, 215, 85, 330, 190, 161,
1294 -1, 32, 190, -1, 31, 190, -1, 30, 189, -1,
1295 21, 189, -1, 22, 189, -1, 167, -1, 89, 166,
1296 335, -1, 167, -1, 89, 166, 335, -1, 169, -1,
1297 169, 168, -1, 169, 95, 171, -1, 169, 95, 171,
1298 134, 170, -1, 169, 95, -1, 169, 95, 134, 170,
1299 -1, 95, 171, -1, 95, 171, 134, 170, -1, 95,
1300 -1, 95, 134, 170, -1, 171, -1, 89, 166, 335,
1301 -1, 168, 134, -1, 169, 168, 134, -1, 168, -1,
1302 170, 134, 168, -1, 294, -1, 295, -1, 215, 132,
1303 188, 336, -1, 215, 133, 52, -1, 215, 85, 52,
1304 -1, 215, 133, 56, -1, 215, 85, 56, -1, 86,
1305 56, -1, 298, -1, 294, -1, 295, -1, 215, 132,
1306 188, 336, -1, 215, 133, 52, -1, 215, 85, 52,
1307 -1, 215, 133, 56, -1, 215, 85, 56, -1, 86,
1308 56, -1, 298, -1, 52, -1, 56, -1, 86, 173,
1309 -1, 173, -1, 215, 85, 173, -1, 52, -1, 56,
1310 -1, 53, -1, 180, -1, 181, -1, 175, -1, 290,
1311 -1, 176, -1, 292, -1, 177, -1, -1, 178, 134,
1312 179, 177, -1, 118, -1, 119, -1, 120, -1, 69,
1313 -1, 70, -1, 71, -1, 77, -1, 78, -1, 116,
1314 -1, 73, -1, 117, -1, 74, -1, 72, -1, 83,
1315 -1, 84, -1, 121, -1, 122, -1, 123, -1, 95,
1316 -1, 124, -1, 125, -1, 68, -1, 96, -1, 127,
1317 -1, 128, -1, 66, -1, 67, -1, 81, -1, 82,
1318 -1, 135, -1, 49, -1, 50, -1, 51, -1, 47,
1319 -1, 48, -1, 45, -1, 37, -1, 7, -1, 21,
1320 -1, 16, -1, 3, -1, 5, -1, 46, -1, 26,
1321 -1, 15, -1, 14, -1, 10, -1, 9, -1, 36,
1322 -1, 20, -1, 25, -1, 4, -1, 22, -1, 34,
1323 -1, 39, -1, 38, -1, 23, -1, 8, -1, 24,
1324 -1, 30, -1, 33, -1, 32, -1, 13, -1, 35,
1325 -1, 6, -1, 17, -1, 31, -1, 11, -1, 12,
1326 -1, 18, -1, 19, -1, 172, 113, 182, -1, 172,
1327 113, 182, 44, 182, -1, 297, 87, 182, -1, 297,
1328 87, 182, 44, 182, -1, 215, 132, 188, 336, 87,
1329 182, -1, 215, 133, 52, 87, 182, -1, 215, 133,
1330 56, 87, 182, -1, 215, 85, 52, 87, 182, -1,
1331 215, 85, 56, 87, 182, -1, 86, 56, 87, 182,
1332 -1, 298, 87, 182, -1, 182, 79, 182, -1, 182,
1333 80, 182, -1, 182, 121, 182, -1, 182, 122, 182,
1334 -1, 182, 123, 182, -1, 182, 124, 182, -1, 182,
1335 125, 182, -1, 182, 68, 182, -1, 126, 59, 68,
1336 182, -1, 126, 60, 68, 182, -1, 66, 182, -1,
1337 67, 182, -1, 182, 118, 182, -1, 182, 119, 182,
1338 -1, 182, 120, 182, -1, 182, 69, 182, -1, 182,
1339 116, 182, -1, 182, 73, 182, -1, 182, 117, 182,
1340 -1, 182, 74, 182, -1, 182, 70, 182, -1, 182,
1341 71, 182, -1, 182, 72, 182, -1, 182, 77, 182,
1342 -1, 182, 78, 182, -1, 127, 182, -1, 128, 182,
1343 -1, 182, 83, 182, -1, 182, 84, 182, -1, 182,
1344 75, 182, -1, 182, 76, 182, -1, -1, 46, 334,
1345 183, 182, -1, 182, 114, 182, 334, 115, 182, -1,
1346 196, -1, 182, -1, 340, -1, 194, 337, -1, 194,
1347 134, 327, 337, -1, 327, 337, -1, 136, 188, 335,
1348 -1, 340, -1, 186, -1, 340, -1, 189, -1, 194,
1349 134, -1, 194, 134, 327, 134, -1, 327, 134, -1,
1350 164, -1, 194, 193, -1, 327, 193, -1, 194, 134,
1351 327, 193, -1, 192, -1, -1, 191, 189, -1, 97,
1352 184, -1, 134, 192, -1, 340, -1, 184, -1, 95,
1353 184, -1, 194, 134, 184, -1, 194, 134, 95, 184,
1354 -1, 194, 134, 184, -1, 194, 134, 95, 184, -1,
1355 95, 184, -1, 266, -1, 267, -1, 270, -1, 271,
1356 -1, 272, -1, 277, -1, 275, -1, 278, -1, 296,
1357 -1, 298, -1, 53, -1, -1, 216, 197, 149, 226,
1358 -1, -1, 90, 198, 335, -1, -1, -1, 90, 199,
1359 157, 200, 335, -1, 89, 150, 137, -1, 215, 85,
1360 56, -1, 86, 56, -1, 92, 185, 138, -1, 93,
1361 326, 131, -1, 30, -1, 31, 136, 189, 335, -1,
1362 31, 136, 335, -1, 31, -1, -1, 46, 334, 136,
1363 201, 157, 335, -1, 39, 136, 157, 335, -1, 39,
1364 136, 335, -1, 163, 257, -1, 252, -1, 252, 257,
1365 -1, 98, 243, -1, 217, 158, 227, 150, 229, 226,
1366 -1, 218, 158, 227, 150, 230, 226, -1, -1, -1,
1367 219, 202, 158, 228, 203, 150, 226, -1, -1, -1,
1368 220, 204, 158, 228, 205, 150, 226, -1, 221, 158,
1369 333, 260, 226, -1, 221, 333, 260, 226, -1, -1,
1370 -1, 222, 231, 25, 206, 158, 228, 207, 150, 226,
1371 -1, -1, 223, 174, 299, 208, 149, 226, -1, -1,
1372 -1, 223, 83, 157, 209, 338, 210, 149, 226, -1,
1373 -1, 224, 174, 211, 149, 226, -1, -1, 225, 175,
1374 212, 301, 149, 226, -1, -1, -1, 225, 324, 332,
1375 213, 175, 214, 301, 149, 226, -1, 21, -1, 22,
1376 -1, 23, -1, 24, -1, 196, -1, 7, -1, 11,
1377 -1, 12, -1, 18, -1, 19, -1, 16, -1, 20,
1378 -1, 3, -1, 4, -1, 5, -1, 10, -1, 338,
1379 -1, 13, -1, 338, 13, -1, 338, -1, 27, -1,
1380 230, -1, 14, 158, 227, 150, 229, -1, 340, -1,
1381 15, 150, -1, 172, -1, 165, -1, 306, -1, 89,
1382 234, 335, -1, 232, -1, 233, 134, 232, -1, 233,
1383 -1, 233, 134, 95, 306, -1, 233, 134, 95, 306,
1384 134, 233, -1, 233, 134, 95, -1, 233, 134, 95,
1385 134, 233, -1, 95, 306, -1, 95, 306, 134, 233,
1386 -1, 95, -1, 95, 134, 233, -1, 311, 134, 314,
1387 323, -1, 311, 323, -1, 314, 323, -1, 322, -1,
1388 134, 235, -1, -1, 308, 134, 317, 134, 320, 236,
1389 -1, 308, 134, 317, 134, 320, 134, 308, 236, -1,
1390 308, 134, 317, 236, -1, 308, 134, 317, 134, 308,
1391 236, -1, 308, 134, 320, 236, -1, 308, 134, -1,
1392 308, 134, 320, 134, 308, 236, -1, 308, 236, -1,
1393 317, 134, 320, 236, -1, 317, 134, 320, 134, 308,
1394 236, -1, 317, 236, -1, 317, 134, 308, 236, -1,
1395 320, 236, -1, 320, 134, 308, 236, -1, 235, -1,
1396 340, -1, 239, -1, 118, 240, 118, -1, 76, -1,
1397 118, 237, 240, 118, -1, 334, -1, 334, 139, 241,
1398 334, -1, 242, -1, 241, 134, 242, -1, 52, -1,
1399 305, -1, -1, -1, -1, 244, 245, 247, 246, 248,
1400 -1, 136, 304, 240, 137, -1, 304, -1, 111, 150,
1401 131, -1, 29, 150, 10, -1, -1, 28, 250, 238,
1402 150, 10, -1, 164, 249, -1, 251, 332, 330, 187,
1403 -1, 251, 332, 330, 187, 257, -1, 251, 332, 330,
1404 190, 249, -1, 163, 186, -1, -1, 215, 133, 330,
1405 253, 187, -1, -1, 215, 85, 330, 254, 186, -1,
1406 215, 85, 331, -1, -1, 215, 133, 255, 186, -1,
1407 -1, 215, 85, 256, 186, -1, 32, 186, -1, 32,
1408 -1, 215, 132, 188, 336, -1, -1, 130, 258, 238,
1409 150, 131, -1, -1, 26, 259, 238, 150, 10, -1,
1410 17, 194, 227, 150, 261, -1, 230, -1, 260, -1,
1411 8, 263, 264, 227, 150, 262, -1, 340, -1, 184,
1412 -1, 195, -1, 340, -1, 88, 172, -1, 340, -1,
1413 9, 150, -1, 340, -1, 293, -1, 290, -1, 292,
1414 -1, 268, -1, 62, -1, 269, -1, 268, 269, -1,
1415 100, 281, 110, -1, 101, 282, 110, -1, 102, 283,
1416 65, -1, 103, 140, 110, -1, 103, 273, 110, -1,
1417 -1, 273, 274, 140, -1, 284, -1, 274, 284, -1,
1418 105, 140, 110, -1, 105, 276, 110, -1, -1, 276,
1419 274, 140, -1, 104, 140, 110, -1, 104, 279, 110,
1420 -1, 106, 140, 110, -1, 106, 280, 110, -1, -1,
1421 279, 61, 140, -1, -1, 280, 61, 140, -1, -1,
1422 281, 284, -1, -1, 282, 284, -1, -1, 283, 284,
1423 -1, 61, -1, -1, 109, 285, 289, -1, -1, -1,
1424 -1, 107, 286, 287, 288, 150, 108, -1, 54, -1,
1425 55, -1, 57, -1, 298, -1, 99, 291, -1, 175,
1426 -1, 55, -1, 54, -1, 57, -1, 99, 282, 110,
1427 -1, 59, -1, 60, -1, 126, 59, -1, 126, 60,
1428 -1, 52, -1, 55, -1, 54, -1, 56, -1, 57,
1429 -1, 34, -1, 33, -1, 35, -1, 36, -1, 50,
1430 -1, 49, -1, 51, -1, 294, -1, 295, -1, 294,
1431 -1, 295, -1, 63, -1, 64, -1, 338, -1, -1,
1432 117, 300, 158, 338, -1, 1, 338, -1, 136, 304,
1433 335, -1, 304, 338, -1, 312, 134, 314, 323, -1,
1434 312, 323, -1, 314, 323, -1, 322, -1, 134, 302,
1435 -1, -1, 308, 134, 318, 134, 320, 303, -1, 308,
1436 134, 318, 134, 320, 134, 308, 303, -1, 308, 134,
1437 318, 303, -1, 308, 134, 318, 134, 308, 303, -1,
1438 308, 134, 320, 303, -1, 308, 134, 320, 134, 308,
1439 303, -1, 308, 303, -1, 318, 134, 320, 303, -1,
1440 318, 134, 320, 134, 308, 303, -1, 318, 303, -1,
1441 318, 134, 308, 303, -1, 320, 303, -1, 320, 134,
1442 308, 303, -1, 302, -1, -1, 56, -1, 55, -1,
1443 54, -1, 57, -1, 305, -1, 52, -1, 306, -1,
1444 89, 234, 335, -1, 307, -1, 308, 134, 307, -1,
1445 58, 184, -1, 58, 215, -1, 310, -1, 311, 134,
1446 310, -1, 309, -1, 312, 134, 309, -1, 68, -1,
1447 96, -1, 313, 52, -1, 313, -1, 52, 113, 184,
1448 -1, 52, 113, 215, -1, 316, -1, 317, 134, 316,
1449 -1, 315, -1, 318, 134, 315, -1, 123, -1, 95,
1450 -1, 319, 52, -1, 319, -1, 120, -1, 97, -1,
1451 321, 52, -1, 134, 322, -1, 340, -1, 296, -1,
1452 -1, 136, 325, 157, 335, -1, 340, -1, 327, 337,
1453 -1, 328, -1, 327, 134, 328, -1, 184, 88, 184,
1454 -1, 58, 184, -1, 96, 184, -1, 52, -1, 56,
1455 -1, 53, -1, 52, -1, 56, -1, 53, -1, 180,
1456 -1, 52, -1, 53, -1, 180, -1, 133, -1, 85,
1457 -1, -1, 339, -1, -1, 141, -1, 334, 137, -1,
1458 334, 138, -1, -1, 141, -1, 134, -1, 139, -1,
1459 141, -1, 338, -1, 339, 139, -1, -1
1465 0, 855, 855, 855, 886, 897, 906, 914, 922, 928,
1466 930, 929, 950, 983, 994, 1003, 1011, 1019, 1025, 1030,
1467 1029, 1050, 1050, 1058, 1066, 1077, 1087, 1095, 1104, 1113,
1468 1126, 1139, 1148, 1160, 1161, 1171, 1176, 1197, 1202, 1207,
1469 1217, 1222, 1232, 1241, 1250, 1259, 1262, 1271, 1283, 1284,
1470 1292, 1300, 1308, 1316, 1319, 1331, 1332, 1335, 1336, 1348,
1471 1347, 1369, 1379, 1388, 1401, 1410, 1422, 1431, 1443, 1452,
1472 1461, 1469, 1477, 1487, 1488, 1498, 1499, 1509, 1517, 1525,
1473 1533, 1542, 1550, 1559, 1567, 1576, 1584, 1595, 1596, 1606,
1474 1614, 1624, 1632, 1642, 1646, 1650, 1658, 1666, 1674, 1682,
1475 1694, 1704, 1716, 1725, 1734, 1742, 1750, 1758, 1766, 1779,
1476 1792, 1803, 1811, 1814, 1822, 1830, 1840, 1841, 1842, 1843,
1477 1848, 1859, 1860, 1863, 1871, 1874, 1882, 1882, 1892, 1893,
1478 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
1479 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1480 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1924, 1924,
1481 1924, 1925, 1925, 1926, 1926, 1926, 1927, 1927, 1927, 1927,
1482 1928, 1928, 1928, 1928, 1929, 1929, 1929, 1930, 1930, 1930,
1483 1930, 1931, 1931, 1931, 1931, 1932, 1932, 1932, 1932, 1933,
1484 1933, 1933, 1933, 1934, 1934, 1934, 1934, 1935, 1935, 1938,
1485 1947, 1957, 1962, 1972, 1998, 2003, 2008, 2013, 2023, 2033,
1486 2044, 2058, 2072, 2080, 2088, 2096, 2104, 2112, 2120, 2129,
1487 2138, 2146, 2154, 2162, 2170, 2178, 2186, 2194, 2202, 2210,
1488 2218, 2226, 2234, 2242, 2253, 2261, 2269, 2277, 2285, 2293,
1489 2301, 2309, 2309, 2319, 2329, 2335, 2347, 2348, 2352, 2360,
1490 2370, 2380, 2381, 2384, 2385, 2386, 2390, 2398, 2408, 2417,
1491 2425, 2435, 2444, 2453, 2453, 2465, 2475, 2479, 2485, 2493,
1492 2501, 2515, 2531, 2545, 2560, 2570, 2571, 2572, 2573, 2574,
1493 2575, 2576, 2577, 2578, 2579, 2580, 2589, 2588, 2616, 2616,
1494 2625, 2629, 2624, 2638, 2646, 2654, 2662, 2675, 2683, 2691,
1495 2699, 2707, 2715, 2715, 2725, 2733, 2741, 2751, 2752, 2762,
1496 2766, 2778, 2790, 2790, 2790, 2801, 2801, 2801, 2812, 2823,
1497 2832, 2834, 2831, 2898, 2897, 2919, 2924, 2918, 2943, 2942,
1498 2964, 2963, 2986, 2987, 2986, 3007, 3015, 3023, 3031, 3041,
1499 3053, 3059, 3065, 3071, 3077, 3083, 3089, 3095, 3101, 3107,
1500 3117, 3123, 3128, 3129, 3136, 3141, 3144, 3145, 3158, 3159,
1501 3169, 3170, 3173, 3181, 3191, 3199, 3209, 3217, 3226, 3235,
1502 3243, 3251, 3260, 3272, 3280, 3291, 3295, 3299, 3303, 3309,
1503 3314, 3319, 3323, 3327, 3331, 3335, 3339, 3347, 3351, 3355,
1504 3359, 3363, 3367, 3371, 3375, 3379, 3385, 3386, 3392, 3401,
1505 3410, 3421, 3425, 3435, 3442, 3451, 3459, 3465, 3468, 3473,
1506 3465, 3489, 3497, 3507, 3511, 3518, 3517, 3538, 3554, 3563,
1507 3575, 3589, 3599, 3598, 3615, 3614, 3630, 3639, 3638, 3656,
1508 3655, 3672, 3680, 3688, 3703, 3702, 3722, 3721, 3742, 3754,
1509 3755, 3758, 3777, 3780, 3788, 3796, 3799, 3803, 3806, 3814,
1510 3817, 3818, 3826, 3829, 3846, 3847, 3848, 3858, 3868, 3895,
1511 3960, 3969, 3980, 3987, 3997, 4005, 4015, 4024, 4035, 4042,
1512 4060, 4069, 4079, 4088, 4099, 4106, 4117, 4124, 4139, 4146,
1513 4157, 4164, 4175, 4182, 4211, 4213, 4212, 4229, 4235, 4240,
1514 4228, 4259, 4267, 4275, 4283, 4286, 4297, 4298, 4299, 4300,
1515 4303, 4314, 4315, 4316, 4324, 4334, 4335, 4336, 4337, 4338,
1516 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4350, 4363, 4373,
1517 4381, 4391, 4392, 4395, 4404, 4403, 4412, 4424, 4434, 4442,
1518 4446, 4450, 4454, 4460, 4465, 4470, 4474, 4478, 4482, 4486,
1519 4490, 4494, 4498, 4502, 4506, 4510, 4514, 4518, 4522, 4527,
1520 4533, 4542, 4551, 4560, 4571, 4572, 4579, 4588, 4607, 4614,
1521 4627, 4639, 4651, 4659, 4676, 4684, 4700, 4701, 4704, 4709,
1522 4715, 4727, 4739, 4747, 4763, 4771, 4787, 4788, 4791, 4804,
1523 4815, 4816, 4819, 4836, 4840, 4850, 4860, 4860, 4889, 4890,
1524 4900, 4907, 4917, 4925, 4933, 4945, 4946, 4947, 4950, 4951,
1525 4952, 4953, 4956, 4957, 4958, 4961, 4966, 4973, 4974, 4977,
1526 4978, 4981, 4984, 4987, 4988, 4989, 4992, 4993, 4996, 4997,
1531 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 1536 "\"end-of-input\"",
"error",
"$undefined",
"keyword_class",
1537 "keyword_module",
"keyword_def",
"keyword_undef",
"keyword_begin",
1538 "keyword_rescue",
"keyword_ensure",
"keyword_end",
"keyword_if",
1539 "keyword_unless",
"keyword_then",
"keyword_elsif",
"keyword_else",
1540 "keyword_case",
"keyword_when",
"keyword_while",
"keyword_until",
1541 "keyword_for",
"keyword_break",
"keyword_next",
"keyword_redo",
1542 "keyword_retry",
"keyword_in",
"keyword_do",
"keyword_do_cond",
1543 "keyword_do_block",
"keyword_do_LAMBDA",
"keyword_return",
1544 "keyword_yield",
"keyword_super",
"keyword_self",
"keyword_nil",
1545 "keyword_true",
"keyword_false",
"keyword_and",
"keyword_or",
1546 "keyword_not",
"modifier_if",
"modifier_unless",
"modifier_while",
1547 "modifier_until",
"modifier_rescue",
"keyword_alias",
"keyword_defined",
1548 "keyword_BEGIN",
"keyword_END",
"keyword__LINE__",
"keyword__FILE__",
1549 "keyword__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
1550 "tCONSTANT",
"tCVAR",
"tLABEL",
"tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
1551 "tCHAR",
"tNTH_REF",
"tBACK_REF",
"tREGEXP_END",
"\"unary+\"",
1552 "\"unary-\"",
"\"**\"",
"\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
1553 "\">=\"",
"\"<=\"",
"\"&&\"",
"\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
1554 "\"...\"",
"\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"::\"",
1555 "\":: at EXPR_BEG\"",
"tOP_ASGN",
"\"=>\"",
"\"(\"",
"\"( arg\"",
1556 "\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
"\"**arg\"",
"\"&\"",
1557 "\"->\"",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
1558 "tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
1559 "tSTRING_DBEG",
"tSTRING_DEND",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1560 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1561 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
1562 "'{'",
"'}'",
"'['",
"'.'",
"','",
"'`'",
"'('",
"')'",
"']'",
"';'",
1563 "' '",
"'\\n'",
"$accept",
"program",
"$@1",
"top_compstmt",
"top_stmts",
1564 "top_stmt",
"$@2",
"bodystmt",
"compstmt",
"stmts",
"stmt_or_begin",
1565 "$@3",
"stmt",
"$@4",
"command_asgn",
"expr",
"expr_value",
1566 "command_call",
"block_command",
"cmd_brace_block",
"@5",
"fcall",
1567 "command",
"mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1568 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1569 "fitem",
"undef_list",
"$@6",
"op",
"reswords",
"arg",
"$@7",
1570 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1571 "opt_call_args",
"call_args",
"command_args",
"@8",
"block_arg",
1572 "opt_block_arg",
"args",
"mrhs",
"primary",
"@9",
"$@10",
"$@11",
"$@12",
1573 "$@13",
"$@14",
"$@15",
"$@16",
"$@17",
"$@18",
"$@19",
"@20",
"@21",
1574 "@22",
"@23",
"@24",
"$@25",
"$@26",
"primary_value",
"k_begin",
"k_if",
1575 "k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
"k_class",
1576 "k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
"opt_else",
1577 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_args_tail",
1578 "opt_block_args_tail",
"block_param",
"opt_block_param",
1579 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@27",
1580 "@28",
"@29",
"f_larglist",
"lambda_body",
"do_block",
"@30",
1581 "block_call",
"method_call",
"@31",
"@32",
"@33",
"@34",
"brace_block",
1582 "@35",
"@36",
"case_body",
"cases",
"opt_rescue",
"exc_list",
"exc_var",
1583 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1584 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1585 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1586 "xstring_contents",
"regexp_contents",
"string_content",
"@37",
"@38",
1587 "@39",
"@40",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1588 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1589 "superclass",
"$@41",
"f_arglist",
"args_tail",
"opt_args_tail",
1590 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_kw",
1591 "f_block_kw",
"f_block_kwarg",
"f_kwarg",
"kwrest_mark",
"f_kwrest",
1592 "f_opt",
"f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1593 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1594 "singleton",
"$@42",
"assoc_list",
"assocs",
"assoc",
"operation",
1595 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1596 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1605 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1606 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1607 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1608 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1609 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1610 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1611 315, 316, 317, 318, 319, 320, 130, 131, 132, 134,
1612 139, 140, 141, 138, 137, 321, 322, 142, 143, 128,
1613 129, 144, 145, 135, 136, 323, 324, 325, 326, 327,
1614 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1615 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1616 348, 349, 350, 61, 63, 58, 62, 60, 124, 94,
1617 38, 43, 45, 42, 47, 37, 351, 33, 126, 352,
1618 123, 125, 91, 46, 44, 96, 40, 41, 93, 59,
1626 0, 142, 144, 143, 145, 146, 146, 146, 146, 147,
1627 148, 147, 149, 150, 151, 151, 151, 151, 152, 153,
1628 152, 155, 154, 154, 154, 154, 154, 154, 154, 154,
1629 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1630 154, 154, 154, 154, 154, 154, 156, 156, 157, 157,
1631 157, 157, 157, 157, 158, 159, 159, 160, 160, 162,
1632 161, 163, 164, 164, 164, 164, 164, 164, 164, 164,
1633 164, 164, 164, 165, 165, 166, 166, 167, 167, 167,
1634 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
1635 169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1636 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1637 172, 173, 173, 174, 174, 174, 175, 175, 175, 175,
1638 175, 176, 176, 177, 177, 178, 179, 178, 180, 180,
1639 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1640 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
1641 180, 180, 180, 180, 180, 180, 180, 180, 181, 181,
1642 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1643 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1644 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
1645 181, 181, 181, 181, 181, 181, 181, 181, 181, 182,
1646 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1647 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1648 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1649 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1650 182, 183, 182, 182, 182, 184, 185, 185, 185, 185,
1651 186, 187, 187, 188, 188, 188, 188, 188, 189, 189,
1652 189, 189, 189, 191, 190, 192, 193, 193, 194, 194,
1653 194, 194, 195, 195, 195, 196, 196, 196, 196, 196,
1654 196, 196, 196, 196, 196, 196, 197, 196, 198, 196,
1655 199, 200, 196, 196, 196, 196, 196, 196, 196, 196,
1656 196, 196, 201, 196, 196, 196, 196, 196, 196, 196,
1657 196, 196, 202, 203, 196, 204, 205, 196, 196, 196,
1658 206, 207, 196, 208, 196, 209, 210, 196, 211, 196,
1659 212, 196, 213, 214, 196, 196, 196, 196, 196, 215,
1660 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1661 226, 227, 227, 227, 228, 228, 229, 229, 230, 230,
1662 231, 231, 232, 232, 233, 233, 234, 234, 234, 234,
1663 234, 234, 234, 234, 234, 235, 235, 235, 235, 236,
1664 236, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1665 237, 237, 237, 237, 237, 237, 238, 238, 239, 239,
1666 239, 240, 240, 241, 241, 242, 242, 244, 245, 246,
1667 243, 247, 247, 248, 248, 250, 249, 251, 251, 251,
1668 251, 252, 253, 252, 254, 252, 252, 255, 252, 256,
1669 252, 252, 252, 252, 258, 257, 259, 257, 260, 261,
1670 261, 262, 262, 263, 263, 263, 264, 264, 265, 265,
1671 266, 266, 266, 267, 268, 268, 268, 269, 270, 271,
1672 272, 272, 273, 273, 274, 274, 275, 275, 276, 276,
1673 277, 277, 278, 278, 279, 279, 280, 280, 281, 281,
1674 282, 282, 283, 283, 284, 285, 284, 286, 287, 288,
1675 284, 289, 289, 289, 289, 290, 291, 291, 291, 291,
1676 292, 293, 293, 293, 293, 294, 294, 294, 294, 294,
1677 295, 295, 295, 295, 295, 295, 295, 296, 296, 297,
1678 297, 298, 298, 299, 300, 299, 299, 301, 301, 302,
1679 302, 302, 302, 303, 303, 304, 304, 304, 304, 304,
1680 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
1681 305, 305, 305, 305, 306, 306, 307, 307, 308, 308,
1682 309, 310, 311, 311, 312, 312, 313, 313, 314, 314,
1683 315, 316, 317, 317, 318, 318, 319, 319, 320, 320,
1684 321, 321, 322, 323, 323, 324, 325, 324, 326, 326,
1685 327, 327, 328, 328, 328, 329, 329, 329, 330, 330,
1686 330, 330, 331, 331, 331, 332, 332, 333, 333, 334,
1687 334, 335, 336, 337, 337, 337, 338, 338, 339, 339,
1694 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1695 0, 5, 4, 2, 1, 1, 3, 2, 1, 0,
1696 5, 0, 4, 3, 3, 3, 2, 3, 3, 3,
1697 3, 3, 4, 1, 3, 3, 6, 5, 5, 5,
1698 5, 3, 3, 3, 3, 1, 3, 3, 1, 3,
1699 3, 3, 2, 1, 1, 1, 1, 1, 4, 0,
1700 5, 1, 2, 3, 4, 5, 4, 5, 2, 2,
1701 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
1702 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
1703 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
1704 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
1705 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
1706 1, 1, 1, 1, 1, 1, 0, 4, 1, 1,
1707 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1708 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1709 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1710 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1711 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1713 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
1714 5, 3, 5, 6, 5, 5, 5, 5, 4, 3,
1715 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
1716 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1717 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
1718 3, 0, 4, 6, 1, 1, 1, 2, 4, 2,
1719 3, 1, 1, 1, 1, 2, 4, 2, 1, 2,
1720 2, 4, 1, 0, 2, 2, 2, 1, 1, 2,
1721 3, 4, 3, 4, 2, 1, 1, 1, 1, 1,
1722 1, 1, 1, 1, 1, 1, 0, 4, 0, 3,
1723 0, 0, 5, 3, 3, 2, 3, 3, 1, 4,
1724 3, 1, 0, 6, 4, 3, 2, 1, 2, 2,
1725 6, 6, 0, 0, 7, 0, 0, 7, 5, 4,
1726 0, 0, 9, 0, 6, 0, 0, 8, 0, 5,
1727 0, 6, 0, 0, 9, 1, 1, 1, 1, 1,
1728 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1729 1, 1, 1, 2, 1, 1, 1, 5, 1, 2,
1730 1, 1, 1, 3, 1, 3, 1, 4, 6, 3,
1731 5, 2, 4, 1, 3, 4, 2, 2, 1, 2,
1732 0, 6, 8, 4, 6, 4, 2, 6, 2, 4,
1733 6, 2, 4, 2, 4, 1, 1, 1, 3, 1,
1734 4, 1, 4, 1, 3, 1, 1, 0, 0, 0,
1735 5, 4, 1, 3, 3, 0, 5, 2, 4, 5,
1736 5, 2, 0, 5, 0, 5, 3, 0, 4, 0,
1737 4, 2, 1, 4, 0, 5, 0, 5, 5, 1,
1738 1, 6, 1, 1, 1, 1, 2, 1, 2, 1,
1739 1, 1, 1, 1, 1, 1, 2, 3, 3, 3,
1740 3, 3, 0, 3, 1, 2, 3, 3, 0, 3,
1741 3, 3, 3, 3, 0, 3, 0, 3, 0, 2,
1742 0, 2, 0, 2, 1, 0, 3, 0, 0, 0,
1743 6, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1744 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1746 1, 1, 1, 1, 0, 4, 2, 3, 2, 4,
1747 2, 2, 1, 2, 0, 6, 8, 4, 6, 4,
1748 6, 2, 4, 6, 2, 4, 2, 4, 1, 0,
1749 1, 1, 1, 1, 1, 1, 1, 3, 1, 3,
1750 2, 2, 1, 3, 1, 3, 1, 1, 2, 1,
1751 3, 3, 1, 3, 1, 3, 1, 1, 2, 1,
1752 1, 1, 2, 2, 1, 1, 0, 4, 1, 2,
1753 1, 3, 3, 2, 2, 1, 1, 1, 1, 1,
1754 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
1755 1, 2, 2, 0, 1, 1, 1, 1, 1, 2,
1764 2, 0, 0, 1, 0, 347, 348, 349, 0, 340,
1765 341, 342, 345, 343, 344, 346, 335, 336, 337, 338,
1766 298, 263, 263, 511, 510, 512, 513, 609, 0, 609,
1767 10, 0, 515, 514, 516, 595, 597, 507, 506, 596,
1768 509, 501, 502, 454, 521, 522, 0, 0, 0, 0,
1769 290, 620, 620, 85, 407, 480, 478, 480, 482, 462,
1770 474, 468, 476, 0, 0, 0, 3, 607, 6, 9,
1771 33, 45, 48, 56, 263, 55, 0, 73, 0, 77,
1772 87, 0, 53, 244, 0, 286, 0, 0, 312, 315,
1773 607, 0, 0, 0, 0, 57, 307, 275, 276, 453,
1774 455, 277, 278, 279, 281, 280, 282, 451, 452, 450,
1775 517, 518, 283, 0, 284, 61, 5, 8, 168, 179,
1776 169, 192, 165, 185, 175, 174, 195, 196, 190, 173,
1777 172, 167, 193, 197, 198, 177, 166, 180, 184, 186,
1778 178, 171, 187, 194, 189, 188, 181, 191, 176, 164,
1779 183, 182, 163, 170, 161, 162, 158, 159, 160, 116,
1780 118, 117, 153, 154, 149, 131, 132, 133, 140, 137,
1781 139, 134, 135, 155, 156, 141, 142, 146, 150, 136,
1782 138, 128, 129, 130, 143, 144, 145, 147, 148, 151,
1783 152, 157, 121, 123, 125, 26, 119, 120, 122, 124,
1784 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
1785 245, 268, 71, 262, 620, 0, 517, 518, 0, 284,
1786 620, 590, 72, 70, 609, 69, 0, 620, 431, 68,
1787 609, 610, 0, 0, 21, 241, 0, 0, 335, 336,
1788 298, 301, 432, 0, 220, 0, 221, 295, 0, 19,
1789 0, 0, 607, 15, 18, 609, 75, 14, 609, 0,
1790 0, 613, 613, 246, 0, 0, 613, 588, 609, 0,
1791 0, 0, 83, 339, 0, 93, 94, 101, 309, 408,
1792 498, 497, 499, 496, 0, 495, 0, 0, 0, 0,
1793 0, 0, 0, 0, 0, 0, 0, 503, 504, 52,
1794 235, 236, 616, 617, 4, 618, 608, 0, 0, 0,
1795 0, 0, 0, 0, 436, 434, 421, 62, 306, 415,
1796 417, 0, 89, 0, 81, 78, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799 0, 0, 0, 429, 620, 427, 0, 54, 0, 0,
1800 0, 0, 607, 0, 608, 0, 361, 360, 0, 0,
1801 517, 518, 284, 111, 112, 0, 0, 114, 0, 0,
1802 517, 518, 284, 328, 188, 181, 191, 176, 158, 159,
1803 160, 116, 117, 586, 330, 585, 0, 606, 605, 0,
1804 308, 456, 0, 0, 126, 593, 295, 269, 594, 265,
1805 0, 0, 0, 259, 267, 429, 620, 427, 0, 0,
1806 0, 260, 609, 0, 300, 264, 609, 254, 620, 620,
1807 253, 609, 305, 51, 23, 25, 24, 0, 302, 0,
1808 0, 0, 429, 427, 0, 17, 0, 609, 293, 13,
1809 608, 74, 289, 291, 296, 615, 614, 247, 615, 249,
1810 297, 589, 0, 100, 503, 504, 91, 86, 0, 429,
1811 620, 427, 549, 484, 487, 485, 500, 481, 457, 479,
1812 458, 459, 483, 460, 461, 0, 464, 470, 0, 471,
1813 466, 467, 0, 472, 0, 473, 0, 0, 619, 7,
1814 27, 28, 29, 30, 31, 49, 50, 620, 620, 59,
1815 63, 620, 0, 34, 43, 0, 44, 609, 0, 79,
1816 90, 47, 46, 0, 199, 268, 42, 217, 225, 230,
1817 231, 232, 227, 229, 239, 240, 233, 234, 210, 211,
1818 237, 238, 609, 226, 228, 222, 223, 224, 212, 213,
1819 214, 215, 216, 598, 600, 599, 601, 0, 263, 426,
1820 609, 598, 600, 599, 601, 0, 263, 0, 620, 352,
1821 0, 351, 0, 0, 0, 0, 0, 0, 295, 429,
1822 620, 427, 320, 325, 111, 112, 113, 0, 524, 323,
1823 523, 429, 620, 427, 0, 0, 549, 332, 598, 599,
1824 263, 35, 201, 41, 209, 0, 199, 592, 0, 270,
1825 266, 620, 598, 599, 609, 598, 599, 591, 299, 611,
1826 250, 255, 257, 304, 22, 0, 242, 0, 32, 424,
1827 422, 208, 0, 76, 16, 609, 613, 0, 84, 97,
1828 99, 609, 598, 599, 555, 552, 551, 550, 553, 0,
1829 566, 0, 577, 567, 581, 580, 576, 549, 409, 548,
1830 412, 554, 556, 558, 534, 564, 620, 569, 620, 574,
1831 534, 579, 534, 0, 532, 488, 0, 463, 465, 475,
1832 469, 477, 218, 219, 399, 609, 0, 397, 396, 0,
1833 620, 0, 274, 0, 88, 82, 0, 0, 0, 0,
1834 0, 0, 430, 66, 0, 0, 433, 0, 0, 428,
1835 64, 620, 350, 287, 620, 620, 442, 620, 353, 620,
1836 355, 313, 354, 316, 0, 0, 319, 602, 294, 609,
1837 598, 599, 0, 0, 526, 0, 0, 111, 112, 115,
1838 609, 0, 609, 549, 0, 0, 0, 252, 418, 58,
1839 251, 0, 127, 271, 261, 0, 0, 433, 0, 0,
1840 620, 609, 11, 0, 292, 248, 92, 95, 0, 560,
1841 555, 0, 373, 364, 366, 609, 362, 609, 0, 0,
1842 541, 0, 530, 584, 568, 0, 531, 0, 544, 578,
1843 0, 546, 582, 489, 491, 492, 493, 486, 494, 555,
1844 0, 395, 609, 0, 380, 562, 620, 620, 572, 380,
1845 380, 378, 401, 0, 0, 0, 0, 0, 272, 80,
1846 200, 0, 40, 206, 39, 207, 67, 425, 612, 0,
1847 37, 204, 38, 205, 65, 423, 443, 444, 620, 445,
1848 0, 620, 358, 0, 0, 356, 0, 0, 0, 318,
1849 0, 0, 433, 0, 326, 0, 0, 433, 329, 587,
1850 609, 0, 528, 333, 419, 420, 202, 0, 256, 303,
1851 20, 570, 609, 0, 371, 0, 557, 0, 0, 0,
1852 410, 533, 559, 534, 534, 565, 620, 583, 534, 575,
1853 534, 534, 0, 0, 0, 561, 0, 398, 386, 388,
1854 0, 376, 377, 0, 391, 0, 393, 0, 437, 435,
1855 0, 416, 273, 243, 36, 203, 0, 0, 447, 359,
1856 0, 12, 449, 0, 310, 311, 0, 0, 270, 620,
1857 321, 0, 525, 324, 527, 331, 549, 363, 374, 0,
1858 369, 365, 411, 0, 0, 0, 537, 0, 539, 529,
1859 0, 545, 0, 542, 547, 0, 571, 295, 429, 400,
1860 379, 380, 380, 563, 620, 380, 573, 380, 380, 405,
1861 609, 403, 406, 60, 0, 446, 0, 102, 103, 110,
1862 0, 448, 0, 314, 317, 439, 440, 438, 0, 0,
1863 0, 0, 372, 0, 367, 414, 413, 534, 534, 534,
1864 534, 490, 602, 294, 0, 383, 0, 385, 375, 0,
1865 392, 0, 389, 394, 0, 402, 109, 429, 620, 427,
1866 620, 620, 0, 327, 0, 370, 0, 538, 0, 535,
1867 540, 543, 380, 380, 380, 380, 404, 602, 108, 609,
1868 598, 599, 441, 357, 322, 334, 368, 534, 384, 0,
1869 381, 387, 390, 433, 536, 380, 382
1875 -1, 1, 2, 66, 67, 68, 236, 567, 568, 252,
1876 253, 446, 254, 437, 70, 71, 358, 72, 73, 510,
1877 690, 243, 75, 76, 255, 77, 78, 79, 467, 80,
1878 209, 377, 378, 192, 193, 194, 195, 605, 556, 197,
1879 82, 439, 211, 260, 228, 748, 426, 427, 225, 226,
1880 213, 413, 428, 516, 83, 356, 258, 259, 635, 625,
1881 360, 847, 361, 848, 732, 988, 736, 733, 931, 594,
1882 596, 746, 936, 245, 85, 86, 87, 88, 89, 90,
1883 91, 92, 93, 94, 713, 570, 721, 844, 845, 369,
1884 773, 774, 775, 960, 899, 802, 686, 687, 803, 970,
1885 971, 278, 279, 472, 778, 658, 880, 320, 511, 95,
1886 96, 711, 704, 565, 557, 318, 508, 507, 577, 987,
1887 715, 838, 917, 921, 97, 98, 99, 100, 101, 102,
1888 103, 290, 485, 104, 294, 105, 106, 292, 296, 286,
1889 284, 288, 477, 676, 675, 793, 892, 797, 107, 285,
1890 108, 109, 216, 217, 112, 218, 219, 589, 735, 744,
1891 881, 780, 745, 661, 662, 663, 664, 665, 805, 806,
1892 666, 667, 668, 669, 808, 809, 670, 671, 672, 673,
1893 674, 782, 396, 595, 265, 429, 221, 115, 629, 559,
1894 399, 304, 423, 424, 706, 457, 571, 364, 257
1899 #define YYPACT_NINF -808 1902 -808, 134, 2562, -808, 7195, -808, -808, -808, 6718, -808,
1903 -808, -808, -808, -808, -808, -808, 7308, 7308, -808, -808,
1904 7308, 3884, 3479, -808, -808, -808, -808, 455, 6585, 17,
1905 -808, 60, -808, -808, -808, 2804, 3614, -808, -808, 2939,
1906 -808, -808, -808, -808, -808, -808, 8664, 8664, 140, 4955,
1907 462, 7647, 7986, 6977, -808, 6452, -808, -808, -808, 103,
1908 115, 126, 206, 117, 8777, 8664, -808, -25, -808, 1007,
1909 -808, 322, -808, -808, 141, 372, 352, -808, 337, 9003,
1910 -808, 379, 2918, 247, 278, -808, 8890, 8890, -808, -808,
1911 5842, 9112, 9221, 9330, 6318, 33, 65, -808, -808, 410,
1912 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1913 205, 409, -808, 441, 433, -808, -808, -808, -808, -808,
1914 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1915 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1916 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1917 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1918 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1919 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1920 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
1921 -808, -808, -808, -808, -808, 396, -808, -808, -808, -808,
1922 427, 8664, 519, 5094, 8664, 8664, 8664, 8664, -808, 468,
1923 2918, 500, -808, -808, 463, 304, 22, 344, 517, 363,
1924 479, -808, -808, -808, 5729, -808, 7308, 7308, -808, -808,
1925 5955, -808, 8890, 498, -808, 482, 491, 5233, -808, -808,
1926 -808, 497, 499, 141, -808, 361, 570, 458, 7421, -808,
1927 4955, 505, -25, -808, 1007, 17, 538, -808, 17, 8890,
1928 515, 188, 318, -808, 500, 523, 318, -808, 17, 617,
1929 338, 9439, 540, -808, 474, 572, 613, 674, -808, -808,
1930 -808, -808, -808, -808, 522, -808, 601, 669, 284, 576,
1931 752, 577, 58, 582, 759, 584, 68, 609, 612, -808,
1932 -808, -808, -808, -808, -808, -808, 6068, 8890, 8890, 8890,
1933 8890, 7421, 8890, 8890, -808, -808, -808, 588, -808, -808,
1934 -808, 8099, -808, 4955, 7086, 561, 8099, 8664, 8664, 8664,
1935 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664,
1936 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664, 8664,
1937 8664, 8664, 8664, 2012, 7308, 9718, 4312, 322, 109, 109,
1938 8890, 8890, -25, 689, 563, 651, -808, -808, 685, 691,
1939 53, 57, 100, 328, 393, 8890, 568, -808, 199, 708,
1940 -808, -808, -808, -808, 55, 223, 249, 279, 283, 301,
1941 316, 384, 417, -808, -808, -808, 33, -808, -808, 9795,
1942 -808, -808, 8777, 8777, -808, -808, 414, -808, -808, -808,
1943 8664, 8664, 7534, -808, -808, 9872, 7308, 9949, 8664, 8664,
1944 7760, -808, 17, 595, -808, -808, 17, -808, 580, 599,
1945 -808, 61, -808, -808, -808, -808, -808, 6718, -808, 8664,
1946 5364, 604, 9872, 9949, 8664, 1007, 607, 17, -808, -808,
1947 6181, 618, -808, 322, -808, 7873, -808, -808, 7986, -808,
1948 -808, -808, 482, 769, -808, -808, -808, 622, 9439, 10026,
1949 7308, 10103, 1417, -808, -808, -808, -808, -808, -808, -808,
1950 -808, -808, -808, -808, -808, 244, -808, -808, 611, -808,
1951 -808, -808, 347, -808, 623, -808, 8664, 8664, -808, -808,
1952 -808, -808, -808, -808, -808, -808, -808, 51, 51, -808,
1953 -808, 51, 8664, -808, 628, 634, -808, 17, 9439, 655,
1954 -808, -808, -808, 678, 1866, -808, -808, 570, 2240, 2240,
1955 2240, 2240, 727, 727, 3323, 3188, 2240, 2240, 3053, 3053,
1956 415, 415, 1674, 727, 727, 907, 907, 660, 40, 40,
1957 570, 570, 570, 4019, 3074, 4154, 3209, 499, 661, -808,
1958 17, 535, -808, 688, -808, 499, 3749, 737, 790, -808,
1959 4451, 799, 4729, 66, 66, 689, 8212, 737, 147, 10180,
1960 7308, 10257, -808, 322, -808, 769, -808, -25, -808, -808,
1961 -808, 10334, 7308, 9795, 4312, 8890, 1538, -808, -808, -808,
1962 4173, -808, 2648, -808, 2918, 6718, 2783, -808, 8664, 500,
1963 -808, 479, 2669, 3344, 17, 420, 444, -808, -808, -808,
1964 -808, 7534, 7760, -808, -808, 8890, 2918, 672, -808, -808,
1965 -808, 2918, 5364, 2, -808, 17, 318, 9439, 622, 701,
1966 469, 17, 207, 224, 711, -808, -808, -808, -808, 8664,
1967 -808, 947, -808, -808, -808, -808, -808, 1789, -808, -808,
1968 -808, -808, -808, -808, 680, -808, 687, 773, 694, -808,
1969 698, 783, 704, 791, -808, -808, 834, -808, -808, -808,
1970 -808, -808, 570, 570, -808, 1322, 5503, -808, -808, 5233,
1971 51, 5503, 721, 8325, -808, 622, 9439, 8777, 8664, 741,
1972 8777, 8777, -808, 588, 499, 722, 818, 8777, 8777, -808,
1973 588, 499, -808, -808, 8438, 827, -808, 597, -808, 827,
1974 -808, -808, -808, -808, 737, 70, -808, 67, 136, 17,
1975 148, 149, 8890, -25, -808, 8890, 4312, 701, 469, -808,
1976 17, 737, 61, 1789, 4312, -25, 6851, -808, 65, 372,
1977 -808, 8664, -808, -808, -808, 8664, 8664, 466, 8664, 8664,
1978 731, 61, -808, 736, -808, -808, -808, 567, 8664, -808,
1979 -808, 947, 350, -808, 738, 17, -808, 17, 72, 1789,
1980 -808, 42, -808, -808, -808, 272, -808, 1789, -808, -808,
1981 892, -808, -808, -808, -808, -808, -808, -808, -808, 762,
1982 9548, -808, 17, 764, 746, -808, 751, 694, -808, 758,
1983 760, -808, 761, 893, 775, 5233, 899, 8664, 776, 622,
1984 2918, 8664, -808, 2918, -808, 2918, -808, -808, -808, 8777,
1985 -808, 2918, -808, 2918, -808, -808, 628, -808, 826, -808,
1986 4842, 909, -808, 8890, 737, -808, 737, 5503, 5503, -808,
1987 8551, 4590, 155, 66, -808, -25, 737, -808, -808, -808,
1988 17, 737, -808, -808, -808, -808, 2918, 8664, 7760, -808,
1989 -808, -808, 17, 1011, 789, 1003, -808, 793, 5503, 5233,
1990 -808, -808, -808, 798, 803, -808, 694, -808, 804, -808,
1991 811, 804, 5616, 9548, 877, 792, 808, -808, 1910, -808,
1992 490, -808, -808, 1910, -808, 1368, -808, 1032, -808, -808,
1993 820, -808, 819, 2918, -808, 2918, 9657, 109, -808, -808,
1994 5503, -808, -808, 109, -808, -808, 737, 737, -808, 130,
1995 -808, 4312, -808, -808, -808, -808, 1538, -808, 821, 1011,
1996 434, -808, -808, 944, 832, 1789, -808, 892, -808, -808,
1997 892, -808, 892, -808, -808, 850, 792, -808, 10411, -808,
1998 -808, 830, 831, -808, 694, 835, -808, 837, 835, -808,
1999 443, -808, -808, -808, 910, -808, 796, 572, 613, 674,
2000 4312, -808, 4451, -808, -808, -808, -808, -808, 5503, 737,
2001 4312, 1011, 821, 1011, 838, -808, -808, 804, 839, 804,
2002 804, -808, 840, 841, 1910, -808, 1368, -808, -808, 1368,
2003 -808, 1368, -808, -808, 1032, -808, 769, 10488, 7308, 10565,
2004 790, 597, 737, -808, 737, 821, 1011, -808, 892, -808,
2005 -808, -808, 835, 844, 835, 835, -808, 74, 469, 17,
2006 146, 158, -808, -808, -808, -808, 821, 804, -808, 1368,
2007 -808, -808, -808, 176, -808, 835, -808
2013 -808, -808, -808, -363, -808, 27, -808, -550, -21, -808,
2014 518, -808, 15, -808, -301, -51, -86, 41, -808, -268,
2015 -808, 413, -7, 888, -153, -4, -73, -808, -416, 7,
2016 1571, -315, 889, -53, -808, -5, -808, -808, 98, -808,
2017 870, -808, 735, -808, -44, 275, -340, 87, -11, -808,
2018 -386, -188, 4, -311, -20, -808, -808, -808, -808, -808,
2019 -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
2020 -808, -808, -808, 64, -808, -808, -808, -808, -808, -808,
2021 -808, -808, -808, -808, 154, -347, -526, -34, -645, -808,
2022 -785, -779, 221, 309, 374, -808, -446, -808, -665, -808,
2023 -18, -808, -808, -808, -808, -808, -808, 248, -808, -808,
2024 -808, -808, -808, -808, -808, -93, -808, -808, -535, -808,
2025 -6, -808, -808, -808, -808, -808, -808, 918, -808, -808,
2026 -808, -808, 712, -808, -808, -808, -808, -808, -808, -808,
2027 963, -808, -142, -808, -808, -808, -808, -808, 10, -808,
2028 14, -808, 1081, 1361, 928, 1531, 1552, -808, -808, 89,
2029 -464, -372, -415, -783, -518, -723, 234, 242, 133, -808,
2030 -808, -808, 289, -708, -807, 128, 255, -808, -638, -808,
2031 228, -622, -808, -808, -808, 69, -383, -808, -348, -808,
2032 639, -26, 0, 48, -598, -208, 21, -14, -2
2038 #define YYTABLE_NINF -621 2041 116, 359, 283, 400, 362, 558, 325, 566, 659, 208,
2042 208, 229, 572, 208, 560, 526, 757, 69, 198, 69,
2043 214, 214, 199, 234, 214, 521, 610, 232, 251, 235,
2044 316, 117, 421, 273, 610, 357, 357, 617, 198, 357,
2045 724, 394, 199, 767, 741, 256, 786, 810, 723, 263,
2046 267, 600, 638, 306, 459, 261, 882, 660, 461, 273,
2047 272, 586, 689, 317, 363, 691, 84, 558, 84, 566,
2048 841, 273, 273, 273, 846, 617, 614, 627, -102, 889,
2049 215, 215, -103, 569, 215, 220, 220, -106, 305, 220,
2050 941, 314, -106, 720, 938, 630, 966, 447, 312, 313,
2051 649, 878, 695, 212, 222, 299, 196, 223, 327, -519,
2052 650, 305, 877, 84, 302, -74, 303, 274, 397, 488,
2053 262, 266, 569, 630, 972, -110, 196, 684, 215, 494,
2054 641, 852, 659, 776, 3, -102, -88, 896, 653, 654,
2055 -511, 884, 857, 274, 479, 840, 482, 576, 486, 890,
2056 215, 215, 486, 196, 215, 368, 379, 379, 231, -105,
2057 992, -108, 655, 350, 351, 352, 398, 314, 489, 685,
2058 517, -107, -109, -105, -107, 882, 297, 298, 495, 431,
2059 -104, 433, 251, 879, 901, 902, 856, -93, -511, -104,
2060 237, -94, 196, 659, 861, 315, 247, 966, 466, 316,
2061 587, -97, 231, -598, 850, 302, 941, 303, 453, 302,
2062 -598, 303, 414, -106, 1025, -106, 441, 208, 414, 208,
2063 208, 500, 501, 502, 503, 430, 449, 882, 214, 251,
2064 214, 972, -96, 630, -101, 610, 610, 889, 450, 617,
2065 729, 421, 777, 289, 815, 630, 256, 1046, 302, -98,
2066 303, 273, 740, 776, 874, 291, 357, 357, 357, 357,
2067 962, 505, 506, 445, 949, 967, 293, 84, 462, 763,
2068 -99, 315, -599, 305, 573, 574, 739, 227, 432, 659,
2069 819, -100, -96, -98, 985, -105, 882, -105, 215, -95,
2070 215, 215, -519, 220, 215, 220, 215, -107, 788, -107,
2071 791, 84, 251, 451, 273, 473, 452, 998, -510, 357,
2072 357, 422, 84, 425, 84, -104, 588, -104, -102, 256,
2073 -96, 69, 455, 215, 583, 515, 504, 930, 860, 456,
2074 515, 519, -339, 499, -512, 274, 575, -98, 302, -93,
2075 303, -96, 1008, 678, -96, 473, 295, 208, -96, 481,
2076 678, 474, 430, 475, -595, 776, -510, 776, -98, 312,
2077 313, -98, 513, 353, -513, -98, 1033, 522, -515, 654,
2078 84, 215, 215, 215, 215, 84, 215, 215, 851, -339,
2079 -339, 989, -512, 305, 677, 215, -514, 84, 274, 415,
2080 215, 474, 655, 475, 986, 466, 521, 464, 465, 590,
2081 319, -516, 770, 837, 645, 646, 647, 648, 473, 208,
2082 354, 355, -513, -505, 430, 74, -515, 74, 215, -596,
2083 84, 776, 994, 754, 215, 215, 414, 414, 765, 74,
2084 74, -520, 624, 74, -514, 826, 416, 417, 116, 215,
2085 1024, 1053, 834, 601, 603, 466, 442, 198, 273, -516,
2086 419, 199, 458, 564, 474, 69, 475, -103, -595, 456,
2087 -505, -505, 74, 208, -595, 321, 215, 215, 430, -505,
2088 618, 322, 659, 776, 620, 776, -110, 74, -508, 623,
2089 215, 611, 610, 327, 873, 617, 770, 680, 645, 646,
2090 647, 648, 326, 416, 443, 633, -520, 564, 273, 74,
2091 74, 444, -508, 74, 84, 688, 688, 758, 776, 688,
2092 56, 946, 948, 702, 84, 564, 951, -505, 953, 954,
2093 403, 709, -103, -596, 636, -508, -508, -109, 402, -596,
2094 404, 759, 274, -105, 215, 196, 348, 349, 350, 351,
2095 352, 564, 699, -94, 742, 444, -110, 703, 800, 717,
2096 -508, 719, 434, 867, -294, 710, 747, -107, 650, 469,
2097 705, 435, 436, 230, 766, 694, 716, -101, 993, 564,
2098 980, -109, 754, 208, 761, 406, 982, 1014, 430, -104,
2099 725, 410, 274, 473, 231, 208, 653, 654, 411, 749,
2100 430, 230, -100, -433, 722, 722, 231, 412, 750, -288,
2101 752, -294, -294, -288, 418, -599, 470, 471, 734, 414,
2102 655, 843, 840, 420, 705, 198, 74, 273, 438, 199,
2103 584, 440, 707, 466, 585, 1027, 1029, 1030, 1031, 474,
2104 116, 475, 476, 224, 84, 227, 84, 74, 327, 74,
2105 74, 705, 448, 74, 215, 74, 853, 69, -105, 855,
2106 74, -73, -433, 454, 460, 864, 215, -517, 84, 215,
2107 827, 74, 473, 74, 783, 813, 783, 747, 814, -96,
2108 816, 630, 74, 463, 468, 1054, 273, 496, 1039, 564,
2109 497, 357, 509, 764, 357, 812, 483, 487, 688, 215,
2110 760, 564, 490, 863, 493, 520, 84, -433, -518, -433,
2111 -433, 274, 498, 196, -517, -517, 576, 578, 474, 750,
2112 475, 478, 839, 842, 621, 842, 582, 842, 515, 74,
2113 74, 74, 74, 74, 74, 74, 74, -602, 327, 705,
2114 473, 726, 619, 622, 74, 628, 74, 632, 522, 74,
2115 705, 822, 824, 340, 341, -518, -518, 712, 830, 832,
2116 84, 679, -88, 84, 854, 84, 637, 923, 414, -284,
2117 274, 215, -268, 681, 215, 215, 862, 74, 693, 74,
2118 579, 215, 215, 74, 74, 708, 474, 812, 475, 480,
2119 273, 348, 349, 350, 351, 352, -602, 264, 74, 696,
2120 859, 697, 357, 591, 910, 327, 215, -424, 714, 215,
2121 84, -107, 812, 762, 783, 783, -284, -284, 84, 869,
2122 340, 341, 718, 473, 779, 74, 74, 580, 581, 919,
2123 473, 781, -98, 876, 768, 784, 926, 927, 785, 74,
2124 929, -602, 787, -602, -602, 789, 918, -598, 790, 922,
2125 592, 593, 840, 792, 196, 345, 346, 347, 348, 349,
2126 350, 351, 352, 74, -295, -269, 821, 943, 944, 474,
2127 828, 475, 484, 74, 895, 868, 474, 870, 475, 491,
2128 914, 955, 875, 273, 722, 893, 932, 958, 849, 84,
2129 898, 1017, 897, 74, 783, 900, 210, 210, 794, 795,
2130 210, 796, 903, 215, 905, 858, 273, 44, 45, 981,
2131 907, -295, -295, 908, 84, 829, 909, 215, 934, 911,
2132 -270, 84, 84, 811, 916, 84, 244, 246, 920, 804,
2133 937, 210, 210, 939, 592, 593, 959, 842, 1018, 1019,
2134 942, -104, 945, 957, 300, 301, 405, 947, 950, 407,
2135 408, 409, 84, 84, 770, 952, 645, 646, 647, 648,
2136 649, 973, -95, -271, 995, 991, 84, 956, 1001, 1020,
2137 650, 1021, 783, 996, 1004, 1006, 1016, 1022, 634, 1009,
2138 1015, 1011, 1026, 1028, 807, 327, -598, -599, 1049, 366,
2139 976, 651, 383, 74, 84, 74, 835, 1043, 653, 654,
2140 340, 341, 872, 74, 801, 84, 1036, 865, 924, 770,
2141 925, 645, 646, 647, 648, 74, 492, 74, 74, 887,
2142 933, 208, 655, 887, 1042, 935, 430, 401, 716, 842,
2143 287, 888, 395, 885, 891, 990, 961, 347, 348, 349,
2144 350, 351, 352, 963, 883, 597, 771, 0, 74, 705,
2145 0, 0, 772, 0, 84, 74, 84, 307, 308, 309,
2146 310, 311, 84, 0, 84, 770, 514, 645, 646, 647,
2147 648, 525, 0, 770, 0, 645, 646, 647, 648, 0,
2148 886, 210, 0, 0, 210, 210, 210, 300, 0, 0,
2149 983, 984, 215, 110, 969, 110, 645, 646, 647, 648,
2150 0, 0, 771, 0, 210, 0, 210, 210, 940, 74,
2151 771, 0, 74, 0, 74, 0, 0, 0, 0, 0,
2152 74, 0, 0, 74, 74, 0, 0, 564, 0, 0,
2153 74, 74, 0, 0, 0, 0, 811, 0, 887, 0,
2154 110, 811, 0, 811, 275, 0, 0, 965, 0, 968,
2155 0, 0, 0, 1023, 0, 74, 607, 609, 74, 74,
2156 0, 0, 0, 0, 0, 264, 0, 74, 0, 0,
2157 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2158 0, 0, 370, 380, 380, 380, 1044, 0, 1045, 997,
2159 0, 999, 0, 904, 906, 0, 1000, 807, 0, 964,
2160 609, 210, 807, 264, 807, 0, 524, 527, 528, 529,
2161 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
2162 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
2163 550, 551, 552, 0, 210, 0, 0, 0, 74, 0,
2164 0, 0, 811, 0, 811, 0, 0, 811, 1032, 811,
2165 1034, 0, 74, 0, 0, 1035, 0, 692, 0, 0,
2166 0, 0, 0, 74, 0, 0, 74, 0, 0, 0,
2167 74, 74, 1047, 0, 74, 0, 0, 0, 0, 0,
2168 0, 0, 602, 604, 0, 0, 0, 811, 0, 0,
2169 606, 210, 210, 1055, 110, 0, 210, 0, 602, 604,
2170 210, 74, 74, 807, 0, 807, 0, 0, 807, 0,
2171 807, 0, 0, 0, 0, 74, 0, 0, 0, 626,
2172 0, 525, 0, 0, 631, 0, 0, 0, 110, 0,
2173 0, 0, 0, 0, 0, 210, 0, 0, 210, 110,
2174 0, 110, 0, 74, 0, 1005, 1007, 0, 807, 1010,
2175 210, 1012, 1013, 753, 74, 0, 0, 0, 0, 0,
2176 0, 0, 275, 0, 0, 0, 609, 264, 0, 0,
2177 0, 0, 0, 111, 0, 111, 682, 683, 0, 0,
2178 0, 0, 0, 0, 799, 0, 645, 646, 647, 648,
2179 800, 0, 210, 0, 769, 0, 0, 110, 0, 0,
2180 650, 0, 110, 74, 0, 74, 0, 0, 0, 0,
2181 0, 74, 0, 74, 110, 275, 1048, 1050, 1051, 1052,
2182 111, 651, 0, 0, 276, 0, 0, 652, 653, 654,
2183 770, 0, 645, 646, 647, 648, 800, 0, 818, 1056,
2184 0, 74, 0, 0, 0, 0, 650, 110, 0, 0,
2185 276, 0, 655, 0, 0, 656, 210, 0, 0, 836,
2186 210, 0, 371, 381, 381, 381, 0, 651, 0, 0,
2187 0, 0, 210, 231, 653, 654, 0, 0, 0, 644,
2188 0, 645, 646, 647, 648, 649, 0, 0, 210, 0,
2189 0, 0, 0, 0, 0, 650, 0, 0, 655, 0,
2190 0, 210, 210, 0, 0, 0, 0, 0, 0, 0,
2191 0, 0, 0, 871, 0, 0, 651, 0, 0, 0,
2192 0, 0, 652, 653, 654, 0, 0, 0, 0, 210,
2193 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2194 0, 110, 0, 113, 0, 113, 0, 655, 0, 0,
2195 656, 0, 0, 0, 0, 0, 0, 0, 0, 275,
2196 0, 0, 912, 657, 114, 0, 114, 0, 0, 0,
2197 0, 0, 0, 210, 111, 0, 0, 606, 820, 0,
2198 823, 825, 0, 81, 0, 81, 0, 831, 833, 0,
2199 113, 0, 0, 0, 210, 928, 0, 0, 0, 0,
2200 644, 0, 645, 646, 647, 648, 649, 0, 111, 275,
2201 0, 114, 0, 264, 0, 277, 650, 0, 0, 111,
2202 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
2203 81, 866, 0, 0, 0, 823, 825, 651, 831, 833,
2204 0, 277, 276, 652, 653, 654, 0, 0, 210, 0,
2205 0, 0, 0, 372, 382, 382, 0, 0, 0, 0,
2206 0, 110, 0, 110, 0, 0, 0, 0, 655, 0,
2207 0, 656, 367, 0, 0, 0, 0, 111, 0, 0,
2208 0, 0, 111, 0, 743, 110, 0, 0, 0, 0,
2209 0, 0, 0, 0, 111, 276, 0, 210, 0, 0,
2210 0, 913, 0, 0, 0, 0, 0, 0, 0, 915,
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 110, 0, 0, 0, 111, 275, 0,
2213 210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 113, 0, 0, 915, 210, 0,
2215 0, 0, 327, 328, 329, 330, 331, 332, 333, 334,
2216 335, 336, 337, 338, 339, 114, 0, 340, 341, 0,
2217 0, 0, 0, 0, 0, 0, 0, 110, 113, 0,
2218 110, 0, 110, 0, 81, 0, 0, 275, 0, 113,
2219 0, 113, 0, 0, 0, 0, 0, 0, 342, 114,
2220 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2221 114, 111, 114, 0, 0, 0, 0, 0, 81, 0,
2222 0, 111, 0, 0, 0, 231, 0, 110, 0, 81,
2223 0, 81, 0, 277, 0, 110, 0, 0, 0, 276,
2224 0, 0, 0, 0, 0, 0, 0, 113, 0, 0,
2225 0, 644, 113, 645, 646, 647, 648, 649, 0, 0,
2226 0, 0, 0, 0, 113, 0, 0, 650, 114, 0,
2227 0, 0, 0, 114, 0, 0, 0, 0, 0, 0,
2228 0, 0, 0, 0, 0, 114, 277, 81, 651, 276,
2229 0, 380, 81, 0, 652, 653, 654, 113, 210, 0,
2230 0, 0, 0, 0, 81, 0, 110, 523, 0, 0,
2231 0, 0, 0, 0, 0, 0, 0, 0, 114, 655,
2232 698, 0, 656, 0, 0, 0, 0, 0, 0, 0,
2233 0, 110, 0, 0, 0, 0, 0, 81, 110, 110,
2234 0, 111, 110, 111, 327, 328, 329, 330, 331, 332,
2235 333, 334, 335, 336, 337, 338, 339, 0, 0, 340,
2236 341, 0, 0, 0, 0, 111, 0, 0, 0, 110,
2237 110, 0, 799, 0, 645, 646, 647, 648, 800, 0,
2238 0, 113, 0, 110, 380, 0, 0, 0, 650, 0,
2239 342, 113, 343, 344, 345, 346, 347, 348, 349, 350,
2240 351, 352, 114, 111, 0, 0, 0, 977, 276, 651,
2241 -245, 110, 114, 0, 0, 652, 653, 654, 0, 0,
2242 0, 81, 110, 0, 0, 0, 0, 0, 0, 0,
2243 277, 81, 0, 0, 0, 0, 0, 0, 0, 0,
2244 655, 0, 0, 656, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 111, 0, 0,
2246 111, 0, 111, 0, 0, 0, 0, 276, 0, 0,
2247 0, 110, 0, 110, 553, 554, 0, 0, 555, 110,
2248 277, 110, 0, 0, 0, 0, 0, 0, 162, 163,
2249 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2250 172, 0, 0, 173, 174, 175, 176, 111, 0, 0,
2251 0, 113, 0, 113, 0, 111, 0, 177, 178, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 114, 0, 114, 113, 0, 0, 179, 180,
2254 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2255 190, 81, 0, 81, 0, 0, 114, 191, 0, 0,
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 381, 0, 113, 0, 81, 0, 0, 0, 0,
2258 0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
2259 0, 0, 0, 0, 114, 0, 0, 0, 0, 277,
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261 0, 111, 0, 81, 0, 0, 0, 0, 111, 111,
2262 0, 0, 111, 0, 0, 0, 0, 113, 0, 0,
2263 113, 0, 113, 0, 0, 0, 0, 0, 798, 0,
2264 0, 0, 0, 0, 0, 0, 0, 0, 114, 111,
2265 111, 114, 0, 114, 0, 0, 0, 0, 277, 0,
2266 0, 0, 0, 111, 381, 0, 0, 81, 0, 0,
2267 81, 0, 81, 0, 0, 0, 0, 113, 523, 0,
2268 0, 0, 0, 0, 0, 113, 0, 978, 0, 0,
2269 0, 111, 0, 0, 0, 0, 0, 0, 114, 0,
2270 0, 0, 111, 0, 0, 0, 114, 0, 0, 0,
2271 0, 0, 0, 0, 0, 0, 0, 81, 327, -621,
2272 -621, -621, -621, 332, 333, 81, 0, -621, -621, 0,
2273 0, 0, 0, 340, 341, 0, 0, 0, 0, 0,
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275 0, 111, 0, 111, 0, 0, 113, 0, 0, 111,
2276 0, 111, 382, 0, 0, 0, 343, 344, 345, 346,
2277 347, 348, 349, 350, 351, 352, 0, 114, 0, 0,
2278 0, 113, 0, 0, 0, 0, 0, 0, 113, 113,
2279 0, 0, 113, 0, 0, 0, 81, 0, 0, 0,
2280 0, 0, 114, 0, 0, 0, 0, 0, 0, 114,
2281 114, 0, 0, 114, 0, 0, 0, 0, 0, 113,
2282 113, 81, 0, 0, 0, 0, 0, 0, 81, 81,
2283 0, 0, 81, 113, 0, 0, 0, 0, 0, 0,
2284 114, 114, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, 0, 0, 0, 114, 382, 0, 0, 0, 81,
2286 81, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2287 0, 0, 113, 81, 0, 0, 0, 0, 979, 0,
2288 0, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 114, 0, 0, 0, 975, 0, 0,
2290 0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 81, 0, 0, 0, 0, 0, 0, 0,
2292 0, 113, 0, 113, 0, 0, 0, 0, 0, 113,
2293 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 114, 0, 114, 0, 0, 0, 0, 0,
2295 114, 0, 114, 0, 0, 0, 0, 0, 0, 0,
2296 0, 81, 0, 81, 0, 0, 0, 0, 0, 81,
2297 0, 81, -620, 4, 0, 5, 6, 7, 8, 9,
2298 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2299 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2300 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2301 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2302 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2303 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2305 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2306 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2307 54, 55, 56, 57, 58, 59, 60, 61, 62, -602,
2308 0, 0, 0, 0, 0, 0, 0, -602, -602, -602,
2309 0, 0, -602, -602, -602, 0, -602, 0, 63, 64,
2310 65, 0, 751, 0, 0, -602, -602, -602, -602, 0,
2311 0, -620, 0, -620, 0, 0, -602, -602, 0, -602,
2312 -602, -602, -602, -602, 0, 0, 327, 328, 329, 330,
2313 331, 332, 333, 334, 335, 336, 337, 338, 339, 0,
2314 0, 340, 341, 0, 0, 0, 0, -602, -602, -602,
2315 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2316 0, 0, -602, -602, -602, 0, 755, -602, 0, 0,
2317 0, 0, 342, -602, 343, 344, 345, 346, 347, 348,
2318 349, 350, 351, 352, 0, 0, 0, -602, 0, 0,
2319 -602, 0, -106, -602, -602, -602, -602, -602, -602, -602,
2320 -602, -602, -602, -602, -602, 0, 0, 0, 0, -602,
2321 -602, -602, -602, -602, -505, 0, -602, -602, -602, 0,
2322 -602, 0, -505, -505, -505, 0, 0, -505, -505, -505,
2323 0, -505, 0, 0, 0, 0, 0, 698, 0, -505,
2324 0, -505, -505, -505, 0, 0, 0, 0, 0, 0,
2325 0, -505, -505, 0, -505, -505, -505, -505, -505, 0,
2326 0, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2327 336, 337, 338, 339, 0, 0, 340, 341, 0, 0,
2328 0, 0, -505, -505, -505, -505, -505, -505, -505, -505,
2329 -505, -505, -505, -505, -505, 0, 0, -505, -505, -505,
2330 0, -505, -505, 0, 0, 0, 0, 342, -505, 343,
2331 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2332 0, 0, -505, 0, 0, -505, 0, -505, -505, -505,
2333 -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
2334 0, 0, 0, 0, 0, -505, -505, -505, -505, -508,
2335 0, -505, -505, -505, 0, -505, 0, -508, -508, -508,
2336 0, 0, -508, -508, -508, 0, -508, 0, 0, 0,
2337 0, 0, 0, 0, -508, 0, -508, -508, -508, 0,
2338 0, 0, 0, 0, 0, 0, -508, -508, 0, -508,
2339 -508, -508, -508, -508, 0, 0, 327, 328, 329, 330,
2340 331, 332, 333, 334, 335, 336, 337, 338, 339, 0,
2341 0, 340, 341, 0, 0, 0, 0, -508, -508, -508,
2342 -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
2343 0, 0, -508, -508, -508, 0, -508, -508, 0, 0,
2344 0, 0, 342, -508, 343, 344, 345, 346, 347, 348,
2345 349, 350, 351, 352, 0, 0, 0, -508, 0, 0,
2346 -508, 0, -508, -508, -508, -508, -508, -508, -508, -508,
2347 -508, -508, -508, -508, -508, 0, 0, 0, 0, 0,
2348 -508, -508, -508, -508, -603, 0, -508, -508, -508, 0,
2349 -508, 0, -603, -603, -603, 0, 0, -603, -603, -603,
2350 0, -603, 0, 0, 0, 0, 0, 0, 0, 0,
2351 -603, -603, -603, -603, 0, 0, 0, 0, 0, 0,
2352 0, -603, -603, 0, -603, -603, -603, -603, -603, 0,
2353 0, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2354 336, 337, -621, -621, 0, 0, 340, 341, 0, 0,
2355 0, 0, -603, -603, -603, -603, -603, -603, -603, -603,
2356 -603, -603, -603, -603, -603, 0, 0, -603, -603, -603,
2357 0, 0, -603, 0, 0, 0, 0, 0, -603, 343,
2358 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2359 0, 0, -603, 0, 0, -603, 0, 0, -603, -603,
2360 -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
2361 0, 0, 0, 0, -603, -603, -603, -603, -603, -604,
2362 0, -603, -603, -603, 0, -603, 0, -604, -604, -604,
2363 0, 0, -604, -604, -604, 0, -604, 0, 0, 0,
2364 0, 0, 0, 0, 0, -604, -604, -604, -604, 0,
2365 0, 0, 0, 0, 0, 0, -604, -604, 0, -604,
2366 -604, -604, -604, -604, 0, 0, 327, 328, 329, 330,
2367 331, 332, 333, 334, 0, 336, 337, 0, 0, 0,
2368 0, 340, 341, 0, 0, 0, 0, -604, -604, -604,
2369 -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
2370 0, 0, -604, -604, -604, 0, 0, -604, 0, 0,
2371 0, 0, 0, -604, 343, 344, 345, 346, 347, 348,
2372 349, 350, 351, 352, 0, 0, 0, -604, 0, 0,
2373 -604, 0, 0, -604, -604, -604, -604, -604, -604, -604,
2374 -604, -604, -604, -604, -604, 0, 0, 0, 0, -604,
2375 -604, -604, -604, -604, -294, 0, -604, -604, -604, 0,
2376 -604, 0, -294, -294, -294, 0, 0, -294, -294, -294,
2377 0, -294, 0, 0, 0, 0, 0, 0, 0, 0,
2378 0, -294, -294, -294, 0, 0, 0, 0, 0, 0,
2379 0, -294, -294, 0, -294, -294, -294, -294, -294, 0,
2380 0, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2381 336, 337, 0, 0, 0, 0, 340, 341, 0, 0,
2382 0, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2383 -294, -294, -294, -294, -294, 0, 0, -294, -294, -294,
2384 0, 756, -294, 0, 0, 0, 0, 0, -294, 343,
2385 344, 345, 346, 347, 348, 349, 350, 351, 352, 0,
2386 0, 0, -294, 0, 0, -294, 0, -108, -294, -294,
2387 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2388 0, 0, 0, 0, 0, -294, -294, -294, -294, -432,
2389 0, -294, -294, -294, 0, -294, 0, -432, -432, -432,
2390 0, 0, -432, -432, -432, 0, -432, 0, 0, 0,
2391 0, 0, 0, 0, 0, -432, -432, -432, 0, 0,
2392 0, 0, 0, 0, 0, 0, -432, -432, 0, -432,
2393 -432, -432, -432, -432, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2395 0, 0, 0, 0, 0, 0, 0, -432, -432, -432,
2396 -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
2397 0, 0, -432, -432, -432, 0, 0, -432, 0, 0,
2398 0, 0, 0, -432, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, 0, 0, 0, 0, -432, 0, 0,
2400 0, 0, 0, -432, 0, -432, -432, -432, -432, -432,
2401 -432, -432, -432, -432, -432, 0, 0, 0, 0, -432,
2402 -432, -432, -432, -432, -285, 227, -432, -432, -432, 0,
2403 -432, 0, -285, -285, -285, 0, 0, -285, -285, -285,
2404 0, -285, 0, 0, 0, 0, 0, 0, 0, 0,
2405 0, -285, -285, -285, 0, 0, 0, 0, 0, 0,
2406 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2410 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2411 0, 0, -285, 0, 0, 0, 0, 0, -285, 0,
2412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2413 0, 0, -285, 0, 0, -285, 0, 0, -285, -285,
2414 -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2415 0, 0, 0, 0, 0, -285, -285, -285, -285, -422,
2416 0, -285, -285, -285, 0, -285, 0, -422, -422, -422,
2417 0, 0, -422, -422, -422, 0, -422, 0, 0, 0,
2418 0, 0, 0, 0, 0, -422, -422, -422, 0, 0,
2419 0, 0, 0, 0, 0, 0, -422, -422, 0, -422,
2420 -422, -422, -422, -422, 0, 0, 0, 0, 0, 0,
2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, -422, -422, -422,
2423 -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
2424 0, 0, -422, -422, -422, 0, 0, -422, 0, 0,
2425 0, 0, 0, -422, 0, 0, 0, 0, 0, 0,
2426 0, 0, 0, 0, 0, 0, 0, -422, 0, 0,
2427 0, 0, 0, -422, 0, -422, -422, -422, -422, -422,
2428 -422, -422, -422, -422, -422, 0, 0, 0, 0, -422,
2429 -422, -422, -422, -422, -301, -422, -422, -422, -422, 0,
2430 -422, 0, -301, -301, -301, 0, 0, -301, -301, -301,
2431 0, -301, 0, 0, 0, 0, 0, 0, 0, 0,
2432 0, -301, -301, 0, 0, 0, 0, 0, 0, 0,
2433 0, -301, -301, 0, -301, -301, -301, -301, -301, 0,
2434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, -301, -301, -301, -301, -301, -301, -301, -301,
2437 -301, -301, -301, -301, -301, 0, 0, -301, -301, -301,
2438 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 0, -301, 0, 0, 0, 0, 0, -301, 0,
2441 -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
2442 0, 0, 0, 0, 0, -301, -301, -301, -301, -602,
2443 224, -301, -301, -301, 0, -301, 0, -602, -602, -602,
2444 0, 0, 0, -602, -602, 0, -602, 0, 0, 0,
2445 0, 0, 0, 0, 0, -602, 0, 0, 0, 0,
2446 0, 0, 0, 0, 0, 0, -602, -602, 0, -602,
2447 -602, -602, -602, -602, 0, 0, 0, 0, 0, 0,
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2449 0, 0, 0, 0, 0, 0, 0, -602, -602, -602,
2450 -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
2451 0, 0, -602, -602, -602, 0, 700, 0, 0, 0,
2452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, -602, 0, 0,
2454 0, 0, -106, -602, 0, -602, -602, -602, -602, -602,
2455 -602, -602, -602, -602, -602, 0, 0, 0, 0, -602,
2456 -602, -602, -602, -97, -294, 0, -602, 0, -602, 0,
2457 -602, 0, -294, -294, -294, 0, 0, 0, -294, -294,
2458 0, -294, 0, -620, 0, 0, 0, 0, 0, 0,
2459 0, -620, -620, -620, 0, 0, -620, -620, -620, 0,
2460 -620, -294, -294, 0, -294, -294, -294, -294, -294, -620,
2461 -620, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2462 -620, -620, 0, -620, -620, -620, -620, -620, 0, 0,
2463 0, 0, -294, -294, -294, -294, -294, -294, -294, -294,
2464 -294, -294, -294, -294, -294, 0, 0, -294, -294, -294,
2465 0, 701, 0, 0, 0, 0, 0, 0, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, -620, 0,
2467 0, 0, -294, 0, 0, 0, 0, -108, -294, 0,
2468 -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
2469 0, -620, 0, 0, 0, -294, -294, -294, -99, 0,
2470 0, -294, 0, -294, 0, -294, 0, 0, 0, 0,
2471 0, 0, 0, -620, -620, 0, -620, 0, 0, 227,
2472 -620, 0, -620, 248, -620, 5, 6, 7, 8, 9,
2473 -620, -620, -620, 10, 11, 0, 0, -620, 12, 0,
2474 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2475 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2476 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2477 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2478 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2481 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2482 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2484 0, 0, 0, 0, 0, 0, 0, 0, 63, 64,
2485 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2486 0, -620, 248, -620, 5, 6, 7, 8, 9, 0,
2487 0, -620, 10, 11, 0, -620, -620, 12, 0, 13,
2488 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2489 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2490 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2491 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2492 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2495 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2496 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2498 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2500 -620, 248, -620, 5, 6, 7, 8, 9, 0, 0,
2501 -620, 10, 11, 0, 0, -620, 12, -620, 13, 14,
2502 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2503 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2504 0, 0, 0, 0, 0, 28, 29, 249, 31, 32,
2505 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2506 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 48, 0, 0, 49,
2509 50, 0, 51, 52, 0, 53, 0, 0, 54, 55,
2510 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2512 0, 0, 0, 0, 0, 0, 63, 64, 65, 0,
2513 0, 0, 0, 0, 0, 0, 0, 0, 0, -620,
2514 248, -620, 5, 6, 7, 8, 9, 0, 0, -620,
2515 10, 11, 0, 0, -620, 12, 0, 13, 14, 15,
2516 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2517 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2518 0, 0, 0, 0, 28, 29, 249, 31, 32, 33,
2519 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2520 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2522 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2523 0, 51, 52, 0, 53, 0, 0, 54, 55, 56,
2524 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2525 0, 0, 0, 248, 0, 5, 6, 7, 8, 9,
2526 0, -620, -620, 10, 11, 63, 64, 65, 12, 0,
2527 13, 14, 15, 16, 17, 18, 19, 0, -620, 0,
2528 -620, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2529 0, 27, 0, 0, 0, 0, 0, 28, 29, 249,
2530 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2531 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2533 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2534 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2535 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2536 0, 0, 0, 0, 0, 0, 248, 0, 5, 6,
2537 7, 8, 9, 0, 0, 0, 10, 11, 63, 64,
2538 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2539 0, -620, 0, -620, 0, 20, 21, 22, 23, 24,
2540 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2541 28, 29, 249, 31, 32, 33, 34, 35, 36, 37,
2542 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2543 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 0, 48, 0, 0, 250, 50, 0, 51, 52, 0,
2546 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2547 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2549 0, 63, 64, 65, 0, 0, 0, 0, 0, 0,
2550 0, 0, -620, 0, -620, 248, -620, 5, 6, 7,
2551 8, 9, 0, 0, 0, 10, 11, 0, 0, 0,
2552 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2553 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2554 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2555 29, 249, 31, 32, 33, 34, 35, 36, 37, 38,
2556 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2557 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2560 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2561 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2563 63, 64, 65, 0, 0, 0, 0, 0, 0, 0,
2564 0, -620, 0, -620, 248, -620, 5, 6, 7, 8,
2565 9, 0, 0, 0, 10, 11, 0, 0, 0, 12,
2566 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2567 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2568 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2569 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2570 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2571 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2573 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2574 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
2577 64, 65, 0, 0, -620, 4, 0, 5, 6, 7,
2578 8, 9, -620, 0, -620, 10, 11, 0, 0, 0,
2579 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2580 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2581 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2582 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2583 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2584 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2587 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2588 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2590 63, 64, 65, 0, 0, -620, 0, 0, 0, 0,
2591 0, 0, 0, -620, 248, -620, 5, 6, 7, 8,
2592 9, 0, 0, -620, 10, 11, 0, 0, 0, 12,
2593 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2594 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2595 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2596 249, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2597 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2598 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2600 0, 0, 49, 50, 0, 51, 52, 0, 53, 0,
2601 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2602 0, 0, 0, 0, 0, 0, 0, 248, 0, 5,
2603 6, 7, 8, 9, 0, 0, 0, 10, 11, 63,
2604 64, 65, 12, 0, 13, 14, 15, 16, 17, 18,
2605 19, 0, -620, 0, -620, 0, 20, 21, 22, 23,
2606 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2607 0, 28, 29, 249, 31, 32, 33, 34, 35, 36,
2608 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2609 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 48, 0, 0, 49, 50, 0, 51, 52,
2612 0, 53, 0, 0, 54, 55, 56, 57, 58, 59,
2613 60, 61, 62, 0, -620, 0, 0, 0, 0, 0,
2614 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2615 10, 11, 63, 64, 65, 12, 0, 13, 14, 15,
2616 16, 17, 18, 19, 0, -620, 0, -620, 0, 20,
2617 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2618 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2619 34, 35, 36, 37, 38, 39, 40, 201, 41, 42,
2620 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2623 0, 51, 52, 0, 204, 205, 206, 54, 55, 56,
2624 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2625 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2626 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2627 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2628 231, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2629 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
2630 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2631 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2633 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2634 0, 203, 50, 0, 51, 52, 0, 0, 0, 0,
2635 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2637 7, 0, 9, 0, 0, 0, 10, 11, 63, 64,
2638 65, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2639 0, 302, 0, 303, 0, 20, 21, 22, 23, 24,
2640 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2641 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2642 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2643 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2646 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2647 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2648 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
2649 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2650 17, 18, 19, 0, 0, 0, 231, 0, 20, 21,
2651 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2652 0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
2653 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2654 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 48, 0, 0, 49, 50, 0,
2657 51, 52, 0, 53, 0, 0, 54, 55, 56, 57,
2658 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2659 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2660 0, 0, 10, 11, 63, 64, 65, 12, 0, 13,
2661 14, 15, 16, 17, 18, 19, 0, 498, 0, 0,
2662 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2663 27, 0, 0, 0, 0, 0, 28, 29, 249, 31,
2664 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2665 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2668 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2669 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671 0, 0, 0, 0, 0, 0, 0, 63, 64, 65,
2672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673 498, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2674 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2675 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2676 144, 384, 385, 386, 387, 149, 150, 151, 0, 0,
2677 0, 0, 0, 152, 153, 154, 155, 388, 389, 390,
2678 391, 160, 37, 38, 392, 40, 0, 0, 0, 0,
2679 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2680 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2681 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2682 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2684 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2685 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2686 0, 0, 0, 191, 393, 118, 119, 120, 121, 122,
2687 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2688 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
2689 0, 0, 142, 143, 144, 145, 146, 147, 148, 149,
2690 150, 151, 0, 0, 0, 0, 0, 152, 153, 154,
2691 155, 156, 157, 158, 159, 160, 280, 281, 161, 282,
2692 0, 0, 0, 0, 0, 0, 0, 0, 162, 163,
2693 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
2694 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
2695 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
2698 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
2699 190, 0, 0, 0, 0, 0, 0, 191, 118, 119,
2700 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
2701 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
2702 140, 141, 0, 0, 0, 142, 143, 144, 145, 146,
2703 147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
2704 152, 153, 154, 155, 156, 157, 158, 159, 160, 233,
2705 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
2706 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
2707 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 177, 178, 0, 0, 55, 0, 0, 0, 0, 0,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
2712 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
2713 191, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2714 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2715 137, 138, 139, 140, 141, 0, 0, 0, 142, 143,
2716 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
2717 0, 0, 0, 152, 153, 154, 155, 156, 157, 158,
2718 159, 160, 0, 0, 161, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
2720 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
2721 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
2722 0, 0, 0, 177, 178, 0, 0, 55, 0, 0,
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
2725 185, 186, 187, 188, 0, 189, 190, 0, 0, 0,
2726 0, 0, 0, 191, 118, 119, 120, 121, 122, 123,
2727 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2728 134, 135, 136, 137, 138, 139, 140, 141, 0, 0,
2729 0, 142, 143, 144, 145, 146, 147, 148, 149, 150,
2730 151, 0, 0, 0, 0, 0, 152, 153, 154, 155,
2731 156, 157, 158, 159, 160, 0, 0, 161, 0, 0,
2732 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
2733 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
2734 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
2738 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
2739 5, 6, 7, 0, 9, 0, 191, 0, 10, 11,
2740 0, 0, 0, 12, 0, 13, 14, 15, 238, 239,
2741 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2742 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2743 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
2744 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2745 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 269, 0, 0, 203, 50, 0, 51,
2748 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2749 59, 60, 61, 62, 0, 0, 0, 0, 0, 5,
2750 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2751 0, 0, 12, 270, 13, 14, 15, 238, 239, 18,
2752 19, 271, 0, 0, 0, 0, 240, 241, 242, 23,
2753 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2754 0, 0, 268, 0, 0, 32, 33, 34, 35, 36,
2755 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2756 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 0, 0, 269, 0, 0, 203, 50, 0, 51, 52,
2759 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2760 60, 61, 62, 0, 0, 0, 0, 0, 5, 6,
2761 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2762 0, 12, 270, 13, 14, 15, 16, 17, 18, 19,
2763 518, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2764 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2765 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2766 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2767 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2770 53, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2771 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2773 11, 63, 64, 65, 12, 0, 13, 14, 15, 16,
2774 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2775 22, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2776 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2777 35, 36, 37, 38, 39, 40, 201, 41, 42, 0,
2778 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2781 51, 52, 0, 204, 205, 206, 54, 55, 56, 57,
2782 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2783 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2784 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2785 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2786 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2787 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2788 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2789 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2791 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2792 49, 50, 0, 51, 52, 0, 53, 0, 0, 54,
2793 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2794 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2795 0, 9, 0, 0, 0, 10, 11, 63, 64, 65,
2796 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2797 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2798 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2799 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2800 39, 40, 201, 41, 42, 0, 43, 44, 45, 0,
2801 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 202, 0, 0, 203, 50, 0, 51, 52, 0, 608,
2804 205, 206, 54, 55, 56, 57, 58, 59, 60, 61,
2805 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2807 63, 207, 65, 12, 0, 13, 14, 15, 238, 239,
2808 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
2809 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2810 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2811 36, 37, 38, 39, 40, 201, 41, 42, 0, 43,
2812 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2815 52, 0, 204, 205, 0, 54, 55, 56, 57, 58,
2816 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2818 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2819 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2820 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2821 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2822 33, 34, 35, 36, 37, 38, 39, 40, 201, 41,
2823 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2826 50, 0, 51, 52, 0, 0, 205, 206, 54, 55,
2827 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2829 9, 0, 0, 0, 10, 11, 63, 207, 65, 12,
2830 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2831 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2832 0, 0, 200, 0, 0, 0, 0, 0, 0, 29,
2833 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2834 40, 201, 41, 42, 0, 43, 44, 45, 0, 46,
2835 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
2837 0, 0, 203, 50, 0, 51, 52, 0, 608, 205,
2838 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2839 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2840 6, 7, 0, 9, 0, 0, 0, 10, 11, 63,
2841 207, 65, 12, 0, 13, 14, 15, 238, 239, 18,
2842 19, 0, 0, 0, 0, 0, 240, 241, 242, 23,
2843 24, 25, 26, 0, 0, 200, 0, 0, 0, 0,
2844 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2845 37, 38, 39, 40, 201, 41, 42, 0, 43, 44,
2846 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848 0, 0, 202, 0, 0, 203, 50, 0, 51, 52,
2849 0, 0, 205, 0, 54, 55, 56, 57, 58, 59,
2850 60, 61, 62, 0, 0, 0, 0, 0, 0, 0,
2851 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2852 10, 11, 63, 207, 65, 12, 0, 13, 14, 15,
2853 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2854 21, 22, 23, 24, 25, 26, 0, 0, 200, 0,
2855 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2856 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2857 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 202, 0, 0, 203, 50,
2860 0, 51, 52, 0, 512, 0, 0, 54, 55, 56,
2861 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2862 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2863 0, 0, 0, 10, 11, 63, 207, 65, 12, 0,
2864 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2865 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2866 0, 200, 0, 0, 0, 0, 0, 0, 29, 0,
2867 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2868 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 0, 202, 0,
2871 0, 203, 50, 0, 51, 52, 0, 204, 0, 0,
2872 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2874 7, 0, 9, 0, 0, 0, 10, 11, 63, 207,
2875 65, 12, 0, 13, 14, 15, 238, 239, 18, 19,
2876 0, 0, 0, 0, 0, 240, 241, 242, 23, 24,
2877 25, 26, 0, 0, 200, 0, 0, 0, 0, 0,
2878 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2879 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2880 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882 0, 202, 0, 0, 203, 50, 0, 51, 52, 0,
2883 817, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2884 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2886 11, 63, 207, 65, 12, 0, 13, 14, 15, 238,
2887 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2888 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
2889 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2890 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2891 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 202, 0, 0, 203, 50, 0,
2894 51, 52, 0, 512, 0, 0, 54, 55, 56, 57,
2895 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2897 0, 0, 10, 11, 63, 207, 65, 12, 0, 13,
2898 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2899 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2900 200, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2901 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2902 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
2905 203, 50, 0, 51, 52, 0, 608, 0, 0, 54,
2906 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2907 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2908 0, 9, 0, 0, 0, 10, 11, 63, 207, 65,
2909 12, 0, 13, 14, 15, 238, 239, 18, 19, 0,
2910 0, 0, 0, 0, 240, 241, 242, 23, 24, 25,
2911 26, 0, 0, 200, 0, 0, 0, 0, 0, 0,
2912 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2913 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2914 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 202, 0, 0, 203, 50, 0, 51, 52, 0, 0,
2917 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
2918 62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2920 63, 207, 65, 12, 0, 13, 14, 15, 16, 17,
2921 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2922 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
2923 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2924 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2925 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 202, 0, 0, 203, 50, 0, 51,
2928 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
2929 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
2930 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2931 0, 10, 11, 63, 207, 65, 12, 0, 13, 14,
2932 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2933 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2934 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2935 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2936 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 202, 0, 0, 203,
2939 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
2940 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2942 9, 0, 0, 0, 10, 11, 63, 64, 65, 12,
2943 0, 13, 14, 15, 238, 239, 18, 19, 0, 0,
2944 0, 0, 0, 240, 241, 242, 23, 24, 25, 26,
2945 0, 0, 200, 0, 0, 0, 0, 0, 0, 268,
2946 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2947 40, 0, 41, 42, 0, 43, 44, 45, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 269,
2950 0, 0, 323, 50, 0, 51, 52, 0, 324, 0,
2951 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2952 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2953 0, 0, 0, 10, 11, 0, 0, 0, 12, 270,
2954 13, 14, 15, 238, 239, 18, 19, 0, 0, 0,
2955 0, 0, 240, 241, 242, 23, 24, 25, 26, 0,
2956 0, 200, 0, 0, 0, 0, 0, 0, 268, 0,
2957 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2958 0, 41, 42, 0, 43, 44, 45, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 0, 0, 0, 0, 0, 365, 0,
2961 0, 49, 50, 0, 51, 52, 0, 53, 0, 0,
2962 54, 55, 56, 57, 58, 59, 60, 61, 62, 0,
2963 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2964 0, 0, 10, 11, 0, 0, 0, 12, 270, 13,
2965 14, 15, 238, 239, 18, 19, 0, 0, 0, 0,
2966 0, 240, 241, 242, 23, 24, 25, 26, 0, 0,
2967 200, 0, 0, 0, 0, 0, 0, 268, 0, 0,
2968 32, 33, 34, 373, 36, 37, 38, 374, 40, 0,
2969 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 375, 0, 0, 376, 0, 0,
2972 203, 50, 0, 51, 52, 0, 0, 0, 0, 54,
2973 55, 56, 57, 58, 59, 60, 61, 62, 0, 0,
2974 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2975 0, 10, 11, 0, 0, 0, 12, 270, 13, 14,
2976 15, 238, 239, 18, 19, 0, 0, 0, 0, 0,
2977 240, 241, 242, 23, 24, 25, 26, 0, 0, 200,
2978 0, 0, 0, 0, 0, 0, 268, 0, 0, 32,
2979 33, 34, 373, 36, 37, 38, 374, 40, 0, 41,
2980 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 376, 0, 0, 203,
2983 50, 0, 51, 52, 0, 0, 0, 0, 54, 55,
2984 56, 57, 58, 59, 60, 61, 62, 0, 0, 0,
2985 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2986 10, 11, 0, 0, 0, 12, 270, 13, 14, 15,
2987 238, 239, 18, 19, 0, 0, 0, 0, 0, 240,
2988 241, 242, 23, 24, 25, 26, 0, 0, 200, 0,
2989 0, 0, 0, 0, 0, 268, 0, 0, 32, 33,
2990 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2991 0, 43, 44, 45, 0, 0, 0, 0, 0, 0,
2992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2993 0, 0, 0, 0, 0, 269, 0, 0, 323, 50,
2994 0, 51, 52, 0, 0, 0, 0, 54, 55, 56,
2995 57, 58, 59, 60, 61, 62, 0, 0, 0, 0,
2996 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2997 11, 0, 0, 0, 12, 270, 13, 14, 15, 238,
2998 239, 18, 19, 0, 0, 0, 0, 0, 240, 241,
2999 242, 23, 24, 25, 26, 0, 0, 200, 0, 0,
3000 0, 0, 0, 0, 268, 0, 0, 32, 33, 34,
3001 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
3002 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 0, 0, 894, 0, 0, 203, 50, 0,
3005 51, 52, 0, 0, 0, 0, 54, 55, 56, 57,
3006 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
3007 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
3008 0, 0, 0, 12, 270, 13, 14, 15, 238, 239,
3009 18, 19, 0, 0, 0, 0, 0, 240, 241, 242,
3010 23, 24, 25, 26, 0, 0, 200, 0, 0, 0,
3011 0, 0, 0, 268, 0, 0, 32, 33, 34, 35,
3012 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
3013 44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 0, 0, 974, 0, 0, 203, 50, 0, 51,
3016 52, 0, 0, 0, 0, 54, 55, 56, 57, 58,
3017 59, 60, 61, 62, 0, 0, 0, 0, 0, 0,
3018 561, 562, 0, 0, 563, 0, 0, 0, 0, 0,
3019 0, 0, 0, 270, 162, 163, 164, 165, 166, 167,
3020 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3021 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3022 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3023 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3025 185, 186, 187, 188, 0, 189, 190, 598, 562, 0,
3026 0, 599, 0, 191, 0, 0, 0, 0, 0, 0,
3027 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3028 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3030 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3033 188, 0, 189, 190, 612, 554, 0, 0, 613, 0,
3034 191, 0, 0, 0, 0, 0, 0, 0, 162, 163,
3035 164, 165, 166, 167, 168, 169, 170, 0, 0, 171,
3036 172, 0, 0, 173, 174, 175, 176, 0, 0, 0,
3037 0, 0, 0, 0, 0, 0, 0, 177, 178, 0,
3038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 179, 180,
3040 181, 182, 183, 184, 185, 186, 187, 188, 0, 189,
3041 190, 615, 562, 0, 0, 616, 0, 191, 0, 0,
3042 0, 0, 0, 0, 0, 162, 163, 164, 165, 166,
3043 167, 168, 169, 170, 0, 0, 171, 172, 0, 0,
3044 173, 174, 175, 176, 0, 0, 0, 0, 0, 0,
3045 0, 0, 0, 0, 177, 178, 0, 0, 0, 0,
3046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3047 0, 0, 0, 0, 0, 179, 180, 181, 182, 183,
3048 184, 185, 186, 187, 188, 0, 189, 190, 639, 554,
3049 0, 0, 640, 0, 191, 0, 0, 0, 0, 0,
3050 0, 0, 162, 163, 164, 165, 166, 167, 168, 169,
3051 170, 0, 0, 171, 172, 0, 0, 173, 174, 175,
3052 176, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 177, 178, 0, 0, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3055 0, 0, 179, 180, 181, 182, 183, 184, 185, 186,
3056 187, 188, 0, 189, 190, 642, 562, 0, 0, 643,
3057 0, 191, 0, 0, 0, 0, 0, 0, 0, 162,
3058 163, 164, 165, 166, 167, 168, 169, 170, 0, 0,
3059 171, 172, 0, 0, 173, 174, 175, 176, 0, 0,
3060 0, 0, 0, 0, 0, 0, 0, 0, 177, 178,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 0, 0, 0, 0, 179,
3063 180, 181, 182, 183, 184, 185, 186, 187, 188, 0,
3064 189, 190, 727, 554, 0, 0, 728, 0, 191, 0,
3065 0, 0, 0, 0, 0, 0, 162, 163, 164, 165,
3066 166, 167, 168, 169, 170, 0, 0, 171, 172, 0,
3067 0, 173, 174, 175, 176, 0, 0, 0, 0, 0,
3068 0, 0, 0, 0, 0, 177, 178, 0, 0, 0,
3069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3070 0, 0, 0, 0, 0, 0, 179, 180, 181, 182,
3071 183, 184, 185, 186, 187, 188, 0, 189, 190, 730,
3072 562, 0, 0, 731, 0, 191, 0, 0, 0, 0,
3073 0, 0, 0, 162, 163, 164, 165, 166, 167, 168,
3074 169, 170, 0, 0, 171, 172, 0, 0, 173, 174,
3075 175, 176, 0, 0, 0, 0, 0, 0, 0, 0,
3076 0, 0, 177, 178, 0, 0, 0, 0, 0, 0,
3077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078 0, 0, 0, 179, 180, 181, 182, 183, 184, 185,
3079 186, 187, 188, 0, 189, 190, 737, 554, 0, 0,
3080 738, 0, 191, 0, 0, 0, 0, 0, 0, 0,
3081 162, 163, 164, 165, 166, 167, 168, 169, 170, 0,
3082 0, 171, 172, 0, 0, 173, 174, 175, 176, 0,
3083 0, 0, 0, 0, 0, 0, 0, 0, 0, 177,
3084 178, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3086 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
3087 0, 189, 190, 1002, 554, 0, 0, 1003, 0, 191,
3088 0, 0, 0, 0, 0, 0, 0, 162, 163, 164,
3089 165, 166, 167, 168, 169, 170, 0, 0, 171, 172,
3090 0, 0, 173, 174, 175, 176, 0, 0, 0, 0,
3091 0, 0, 0, 0, 0, 0, 177, 178, 0, 0,
3092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3093 0, 0, 0, 0, 0, 0, 0, 179, 180, 181,
3094 182, 183, 184, 185, 186, 187, 188, 0, 189, 190,
3095 1037, 554, 0, 0, 1038, 0, 191, 0, 0, 0,
3096 0, 0, 0, 0, 162, 163, 164, 165, 166, 167,
3097 168, 169, 170, 0, 0, 171, 172, 0, 0, 173,
3098 174, 175, 176, 0, 0, 0, 0, 0, 0, 0,
3099 0, 0, 0, 177, 178, 0, 0, 0, 0, 0,
3100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101 0, 0, 0, 0, 179, 180, 181, 182, 183, 184,
3102 185, 186, 187, 188, 0, 189, 190, 1040, 562, 0,
3103 0, 1041, 0, 191, 0, 0, 0, 0, 0, 0,
3104 0, 162, 163, 164, 165, 166, 167, 168, 169, 170,
3105 0, 0, 171, 172, 0, 0, 173, 174, 175, 176,
3106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3107 177, 178, 0, 0, 0, 0, 0, 0, 0, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109 0, 179, 180, 181, 182, 183, 184, 185, 186, 187,
3110 188, 0, 189, 190, 0, 0, 0, 0, 0, 0,
3114 #define yypact_value_is_default(yystate) \ 3115 ((yystate) == (-808)) 3117 #define yytable_value_is_error(yytable_value) \ 3118 ((yytable_value) == (-621)) 3122 2, 87, 55, 96, 90, 353, 79, 355, 472, 16,
3123 17, 22, 359, 20, 354, 326, 614, 2, 8, 4,
3124 16, 17, 8, 28, 20, 326, 412, 27, 49, 29,
3125 74, 4, 220, 53, 420, 86, 87, 420, 28, 90,
3126 575, 94, 28, 641, 594, 49, 668, 685, 574, 51,
3127 52, 399, 468, 67, 262, 51, 779, 472, 266, 79,
3128 53, 376, 508, 74, 90, 511, 2, 415, 4, 417,
3129 715, 91, 92, 93, 719, 458, 416, 440, 25, 787,
3130 16, 17, 25, 13, 20, 16, 17, 13, 67, 20,
3131 875, 26, 25, 27, 873, 443, 903, 250, 37, 38,
3132 58, 29, 518, 16, 17, 64, 8, 20, 68, 87,
3133 68, 90, 777, 49, 139, 113, 141, 53, 85, 61,
3134 51, 52, 13, 471, 907, 25, 28, 76, 64, 61,
3135 470, 729, 596, 651, 0, 113, 134, 802, 96, 97,
3136 85, 779, 740, 79, 286, 15, 288, 17, 290, 787,
3137 86, 87, 294, 55, 90, 91, 92, 93, 141, 13,
3138 939, 25, 120, 123, 124, 125, 133, 26, 110, 118,
3139 323, 13, 25, 25, 25, 898, 59, 60, 110, 230,
3140 25, 232, 203, 111, 806, 807, 736, 134, 133, 13,
3141 130, 134, 94, 657, 744, 130, 56, 1004, 271, 243,
3142 1, 134, 141, 136, 134, 139, 991, 141, 259, 139,
3143 136, 141, 214, 139, 993, 141, 237, 224, 220, 226,
3144 227, 307, 308, 309, 310, 227, 252, 950, 224, 250,
3145 226, 1014, 25, 581, 134, 621, 622, 945, 252, 622,
3146 580, 429, 657, 140, 690, 593, 250, 1026, 139, 25,
3147 141, 271, 592, 771, 772, 140, 307, 308, 309, 310,
3148 898, 312, 313, 248, 886, 903, 140, 203, 268, 632,
3149 134, 130, 136, 252, 360, 361, 591, 136, 230, 743,
3150 696, 134, 134, 134, 929, 139, 1009, 141, 224, 134,
3151 226, 227, 87, 224, 230, 226, 232, 139, 670, 141,
3152 672, 237, 323, 255, 324, 61, 258, 945, 85, 360,
3153 361, 224, 248, 226, 250, 139, 117, 141, 113, 323,
3154 113, 306, 134, 259, 375, 321, 311, 853, 743, 141,
3155 326, 324, 85, 306, 85, 271, 362, 113, 139, 134,
3156 141, 134, 964, 485, 137, 61, 140, 354, 141, 65,
3157 492, 107, 354, 109, 26, 873, 133, 875, 134, 37,
3158 38, 137, 321, 85, 85, 141, 1004, 326, 85, 97,
3159 306, 307, 308, 309, 310, 311, 312, 313, 725, 132,
3160 133, 931, 133, 362, 140, 321, 85, 323, 324, 85,
3161 326, 107, 120, 109, 929, 468, 697, 59, 60, 378,
3162 28, 85, 52, 714, 54, 55, 56, 57, 61, 416,
3163 132, 133, 133, 85, 416, 2, 133, 4, 354, 26,
3164 356, 939, 940, 611, 360, 361, 428, 429, 636, 16,
3165 17, 87, 437, 20, 133, 703, 132, 133, 440, 375,
3166 990, 1039, 710, 402, 403, 518, 85, 437, 468, 133,
3167 87, 437, 134, 355, 107, 440, 109, 113, 130, 141,
3168 132, 133, 49, 470, 136, 113, 402, 403, 470, 85,
3169 422, 134, 936, 991, 426, 993, 113, 64, 85, 431,
3170 416, 412, 868, 68, 134, 868, 52, 140, 54, 55,
3171 56, 57, 113, 132, 133, 447, 87, 399, 518, 86,
3172 87, 87, 85, 90, 440, 507, 508, 87, 1026, 511,
3173 100, 883, 884, 557, 450, 417, 888, 133, 890, 891,
3174 87, 565, 113, 130, 455, 132, 133, 113, 87, 136,
3175 134, 87, 468, 113, 470, 437, 121, 122, 123, 124,
3176 125, 443, 542, 134, 595, 87, 113, 558, 58, 570,
3177 133, 572, 54, 87, 85, 566, 600, 113, 68, 85,
3178 560, 63, 64, 136, 637, 517, 568, 134, 134, 471,
3179 917, 113, 760, 580, 625, 56, 923, 134, 580, 113,
3180 576, 113, 518, 61, 141, 592, 96, 97, 88, 600,
3181 592, 136, 134, 26, 573, 574, 141, 134, 600, 137,
3182 605, 132, 133, 141, 87, 136, 132, 133, 587, 611,
3183 120, 14, 15, 134, 614, 605, 203, 637, 136, 605,
3184 52, 130, 87, 696, 56, 997, 998, 999, 1000, 107,
3185 632, 109, 110, 136, 570, 136, 572, 224, 68, 226,
3186 227, 641, 137, 230, 580, 232, 732, 632, 113, 735,
3187 237, 113, 85, 138, 131, 748, 592, 85, 594, 595,
3188 704, 248, 61, 250, 666, 686, 668, 711, 689, 134,
3189 691, 1019, 259, 56, 134, 1047, 696, 68, 1018, 581,
3190 68, 732, 94, 635, 735, 685, 110, 110, 690, 625,
3191 621, 593, 110, 746, 110, 134, 632, 130, 85, 132,
3192 133, 637, 139, 605, 132, 133, 17, 56, 107, 711,
3193 109, 110, 714, 715, 134, 717, 25, 719, 714, 306,
3194 307, 308, 309, 310, 311, 312, 313, 26, 68, 729,
3195 61, 577, 137, 134, 321, 131, 323, 130, 697, 326,
3196 740, 700, 701, 83, 84, 132, 133, 10, 707, 708,
3197 686, 140, 134, 689, 733, 691, 134, 843, 760, 85,
3198 696, 697, 134, 140, 700, 701, 745, 354, 134, 356,
3199 85, 707, 708, 360, 361, 87, 107, 777, 109, 110,
3200 800, 121, 122, 123, 124, 125, 85, 52, 375, 134,
3201 742, 113, 843, 85, 815, 68, 732, 136, 8, 735,
3202 736, 113, 802, 131, 806, 807, 132, 133, 744, 761,
3203 83, 84, 13, 61, 134, 402, 403, 132, 133, 840,
3204 61, 134, 134, 775, 113, 52, 847, 848, 134, 416,
3205 851, 130, 134, 132, 133, 52, 838, 136, 134, 841,
3206 132, 133, 15, 52, 746, 118, 119, 120, 121, 122,
3207 123, 124, 125, 440, 85, 134, 115, 878, 879, 107,
3208 138, 109, 110, 450, 800, 134, 107, 131, 109, 110,
3209 829, 892, 134, 893, 853, 113, 855, 85, 724, 815,
3210 134, 85, 118, 470, 886, 134, 16, 17, 54, 55,
3211 20, 57, 134, 829, 134, 741, 916, 63, 64, 920,
3212 139, 132, 133, 10, 840, 87, 131, 843, 860, 10,
3213 134, 847, 848, 685, 88, 851, 46, 47, 9, 685,
3214 872, 51, 52, 134, 132, 133, 118, 929, 132, 133,
3215 137, 113, 134, 56, 64, 65, 201, 134, 134, 204,
3216 205, 206, 878, 879, 52, 134, 54, 55, 56, 57,
3217 58, 131, 134, 134, 10, 134, 892, 893, 108, 980,
3218 68, 982, 964, 131, 134, 134, 56, 988, 450, 134,
3219 970, 134, 134, 134, 685, 68, 136, 136, 134, 91,
3220 916, 89, 93, 570, 920, 572, 711, 1021, 96, 97,
3221 83, 84, 771, 580, 685, 931, 1014, 749, 844, 52,
3222 846, 54, 55, 56, 57, 592, 294, 594, 595, 781,
3223 856, 1018, 120, 785, 1020, 861, 1018, 99, 1020, 1021,
3224 57, 787, 94, 781, 790, 936, 898, 120, 121, 122,
3225 123, 124, 125, 900, 779, 396, 89, -1, 625, 1039,
3226 -1, -1, 95, -1, 980, 632, 982, 40, 41, 42,
3227 43, 44, 988, -1, 990, 52, 321, 54, 55, 56,
3228 57, 326, -1, 52, -1, 54, 55, 56, 57, -1,
3229 781, 201, -1, -1, 204, 205, 206, 207, -1, -1,
3230 926, 927, 1018, 2, 52, 4, 54, 55, 56, 57,
3231 -1, -1, 89, -1, 224, -1, 226, 227, 95, 686,
3232 89, -1, 689, -1, 691, -1, -1, -1, -1, -1,
3233 697, -1, -1, 700, 701, -1, -1, 1019, -1, -1,
3234 707, 708, -1, -1, -1, -1, 898, -1, 900, -1,
3235 49, 903, -1, 905, 53, -1, -1, 903, -1, 905,
3236 -1, -1, -1, 989, -1, 732, 411, 412, 735, 736,
3237 -1, -1, -1, -1, -1, 420, -1, 744, -1, -1,
3238 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3239 -1, -1, 91, 92, 93, 94, 1022, -1, 1024, 945,
3240 -1, 947, -1, 809, 810, -1, 952, 898, -1, 900,
3241 455, 321, 903, 458, 905, -1, 326, 327, 328, 329,
3242 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
3243 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
3244 350, 351, 352, -1, 354, -1, -1, -1, 815, -1,
3245 -1, -1, 1004, -1, 1006, -1, -1, 1009, 1004, 1011,
3246 1006, -1, 829, -1, -1, 1011, -1, 512, -1, -1,
3247 -1, -1, -1, 840, -1, -1, 843, -1, -1, -1,
3248 847, 848, 1028, -1, 851, -1, -1, -1, -1, -1,
3249 -1, -1, 402, 403, -1, -1, -1, 1049, -1, -1,
3250 410, 411, 412, 1049, 203, -1, 416, -1, 418, 419,
3251 420, 878, 879, 1004, -1, 1006, -1, -1, 1009, -1,
3252 1011, -1, -1, -1, -1, 892, -1, -1, -1, 439,
3253 -1, 576, -1, -1, 444, -1, -1, -1, 237, -1,
3254 -1, -1, -1, -1, -1, 455, -1, -1, 458, 248,
3255 -1, 250, -1, 920, -1, 961, 962, -1, 1049, 965,
3256 470, 967, 968, 608, 931, -1, -1, -1, -1, -1,
3257 -1, -1, 271, -1, -1, -1, 621, 622, -1, -1,
3258 -1, -1, -1, 2, -1, 4, 496, 497, -1, -1,
3259 -1, -1, -1, -1, 52, -1, 54, 55, 56, 57,
3260 58, -1, 512, -1, 649, -1, -1, 306, -1, -1,
3261 68, -1, 311, 980, -1, 982, -1, -1, -1, -1,
3262 -1, 988, -1, 990, 323, 324, 1032, 1033, 1034, 1035,
3263 49, 89, -1, -1, 53, -1, -1, 95, 96, 97,
3264 52, -1, 54, 55, 56, 57, 58, -1, 693, 1055,
3265 -1, 1018, -1, -1, -1, -1, 68, 356, -1, -1,
3266 79, -1, 120, -1, -1, 123, 576, -1, -1, 714,
3267 580, -1, 91, 92, 93, 94, -1, 89, -1, -1,
3268 -1, -1, 592, 141, 96, 97, -1, -1, -1, 52,
3269 -1, 54, 55, 56, 57, 58, -1, -1, 608, -1,
3270 -1, -1, -1, -1, -1, 68, -1, -1, 120, -1,
3271 -1, 621, 622, -1, -1, -1, -1, -1, -1, -1,
3272 -1, -1, -1, 768, -1, -1, 89, -1, -1, -1,
3273 -1, -1, 95, 96, 97, -1, -1, -1, -1, 649,
3274 -1, 440, -1, -1, -1, -1, -1, -1, -1, -1,
3275 -1, 450, -1, 2, -1, 4, -1, 120, -1, -1,
3276 123, -1, -1, -1, -1, -1, -1, -1, -1, 468,
3277 -1, -1, 817, 136, 2, -1, 4, -1, -1, -1,
3278 -1, -1, -1, 693, 203, -1, -1, 697, 698, -1,
3279 700, 701, -1, 2, -1, 4, -1, 707, 708, -1,
3280 49, -1, -1, -1, 714, 850, -1, -1, -1, -1,
3281 52, -1, 54, 55, 56, 57, 58, -1, 237, 518,
3282 -1, 49, -1, 868, -1, 53, 68, -1, -1, 248,
3283 -1, 250, -1, -1, -1, -1, -1, -1, -1, -1,
3284 49, 751, -1, -1, -1, 755, 756, 89, 758, 759,
3285 -1, 79, 271, 95, 96, 97, -1, -1, 768, -1,
3286 -1, -1, -1, 91, 92, 93, -1, -1, -1, -1,
3287 -1, 570, -1, 572, -1, -1, -1, -1, 120, -1,
3288 -1, 123, 91, -1, -1, -1, -1, 306, -1, -1,
3289 -1, -1, 311, -1, 136, 594, -1, -1, -1, -1,
3290 -1, -1, -1, -1, 323, 324, -1, 817, -1, -1,
3291 -1, 821, -1, -1, -1, -1, -1, -1, -1, 829,
3292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3293 -1, -1, -1, 632, -1, -1, -1, 356, 637, -1,
3294 850, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3295 -1, -1, -1, -1, 203, -1, -1, 867, 868, -1,
3296 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3297 76, 77, 78, 79, 80, 203, -1, 83, 84, -1,
3298 -1, -1, -1, -1, -1, -1, -1, 686, 237, -1,
3299 689, -1, 691, -1, 203, -1, -1, 696, -1, 248,
3300 -1, 250, -1, -1, -1, -1, -1, -1, 114, 237,
3301 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3302 248, 440, 250, -1, -1, -1, -1, -1, 237, -1,
3303 -1, 450, -1, -1, -1, 141, -1, 736, -1, 248,
3304 -1, 250, -1, 271, -1, 744, -1, -1, -1, 468,
3305 -1, -1, -1, -1, -1, -1, -1, 306, -1, -1,
3306 -1, 52, 311, 54, 55, 56, 57, 58, -1, -1,
3307 -1, -1, -1, -1, 323, -1, -1, 68, 306, -1,
3308 -1, -1, -1, 311, -1, -1, -1, -1, -1, -1,
3309 -1, -1, -1, -1, -1, 323, 324, 306, 89, 518,
3310 -1, 800, 311, -1, 95, 96, 97, 356, 1018, -1,
3311 -1, -1, -1, -1, 323, -1, 815, 326, -1, -1,
3312 -1, -1, -1, -1, -1, -1, -1, -1, 356, 120,
3313 44, -1, 123, -1, -1, -1, -1, -1, -1, -1,
3314 -1, 840, -1, -1, -1, -1, -1, 356, 847, 848,
3315 -1, 570, 851, 572, 68, 69, 70, 71, 72, 73,
3316 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3317 84, -1, -1, -1, -1, 594, -1, -1, -1, 878,
3318 879, -1, 52, -1, 54, 55, 56, 57, 58, -1,
3319 -1, 440, -1, 892, 893, -1, -1, -1, 68, -1,
3320 114, 450, 116, 117, 118, 119, 120, 121, 122, 123,
3321 124, 125, 440, 632, -1, -1, -1, 916, 637, 89,
3322 134, 920, 450, -1, -1, 95, 96, 97, -1, -1,
3323 -1, 440, 931, -1, -1, -1, -1, -1, -1, -1,
3324 468, 450, -1, -1, -1, -1, -1, -1, -1, -1,
3325 120, -1, -1, 123, -1, -1, -1, -1, -1, -1,
3326 -1, -1, -1, -1, -1, -1, -1, 686, -1, -1,
3327 689, -1, 691, -1, -1, -1, -1, 696, -1, -1,
3328 -1, 980, -1, 982, 52, 53, -1, -1, 56, 988,
3329 518, 990, -1, -1, -1, -1, -1, -1, 66, 67,
3330 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3331 78, -1, -1, 81, 82, 83, 84, 736, -1, -1,
3332 -1, 570, -1, 572, -1, 744, -1, 95, 96, -1,
3333 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3334 -1, -1, 570, -1, 572, 594, -1, -1, 116, 117,
3335 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3336 128, 570, -1, 572, -1, -1, 594, 135, -1, -1,
3337 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3338 -1, 800, -1, 632, -1, 594, -1, -1, -1, -1,
3339 -1, -1, -1, -1, -1, -1, 815, -1, -1, -1,
3340 -1, -1, -1, -1, 632, -1, -1, -1, -1, 637,
3341 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3342 -1, 840, -1, 632, -1, -1, -1, -1, 847, 848,
3343 -1, -1, 851, -1, -1, -1, -1, 686, -1, -1,
3344 689, -1, 691, -1, -1, -1, -1, -1, 676, -1,
3345 -1, -1, -1, -1, -1, -1, -1, -1, 686, 878,
3346 879, 689, -1, 691, -1, -1, -1, -1, 696, -1,
3347 -1, -1, -1, 892, 893, -1, -1, 686, -1, -1,
3348 689, -1, 691, -1, -1, -1, -1, 736, 697, -1,
3349 -1, -1, -1, -1, -1, 744, -1, 916, -1, -1,
3350 -1, 920, -1, -1, -1, -1, -1, -1, 736, -1,
3351 -1, -1, 931, -1, -1, -1, 744, -1, -1, -1,
3352 -1, -1, -1, -1, -1, -1, -1, 736, 68, 69,
3353 70, 71, 72, 73, 74, 744, -1, 77, 78, -1,
3354 -1, -1, -1, 83, 84, -1, -1, -1, -1, -1,
3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 -1, 980, -1, 982, -1, -1, 815, -1, -1, 988,
3357 -1, 990, 800, -1, -1, -1, 116, 117, 118, 119,
3358 120, 121, 122, 123, 124, 125, -1, 815, -1, -1,
3359 -1, 840, -1, -1, -1, -1, -1, -1, 847, 848,
3360 -1, -1, 851, -1, -1, -1, 815, -1, -1, -1,
3361 -1, -1, 840, -1, -1, -1, -1, -1, -1, 847,
3362 848, -1, -1, 851, -1, -1, -1, -1, -1, 878,
3363 879, 840, -1, -1, -1, -1, -1, -1, 847, 848,
3364 -1, -1, 851, 892, -1, -1, -1, -1, -1, -1,
3365 878, 879, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, -1, 892, 893, -1, -1, -1, 878,
3367 879, 920, -1, -1, -1, -1, -1, -1, -1, -1,
3368 -1, -1, 931, 892, -1, -1, -1, -1, 916, -1,
3369 -1, -1, 920, -1, -1, -1, -1, -1, -1, -1,
3370 -1, -1, -1, 931, -1, -1, -1, 916, -1, -1,
3371 -1, 920, -1, -1, -1, -1, -1, -1, -1, -1,
3372 -1, -1, 931, -1, -1, -1, -1, -1, -1, -1,
3373 -1, 980, -1, 982, -1, -1, -1, -1, -1, 988,
3374 -1, 990, -1, -1, -1, -1, -1, -1, -1, -1,
3375 -1, -1, 980, -1, 982, -1, -1, -1, -1, -1,
3376 988, -1, 990, -1, -1, -1, -1, -1, -1, -1,
3377 -1, 980, -1, 982, -1, -1, -1, -1, -1, 988,
3378 -1, 990, 0, 1, -1, 3, 4, 5, 6, 7,
3379 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3380 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3381 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3382 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3383 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3384 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3385 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3386 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3387 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3388 98, 99, 100, 101, 102, 103, 104, 105, 106, 0,
3389 -1, -1, -1, -1, -1, -1, -1, 8, 9, 10,
3390 -1, -1, 13, 14, 15, -1, 17, -1, 126, 127,
3391 128, -1, 44, -1, -1, 26, 27, 28, 29, -1,
3392 -1, 139, -1, 141, -1, -1, 37, 38, -1, 40,
3393 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3394 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3395 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3396 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3397 -1, -1, 83, 84, 85, -1, 87, 88, -1, -1,
3398 -1, -1, 114, 94, 116, 117, 118, 119, 120, 121,
3399 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3400 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
3401 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3402 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3403 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3404 -1, 17, -1, -1, -1, -1, -1, 44, -1, 25,
3405 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3406 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3407 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3408 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3409 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3410 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3411 -1, 87, 88, -1, -1, -1, -1, 114, 94, 116,
3412 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3413 -1, -1, 108, -1, -1, 111, -1, 113, 114, 115,
3414 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3415 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3416 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3417 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3418 -1, -1, -1, -1, 25, -1, 27, 28, 29, -1,
3419 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3420 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3421 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3422 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3423 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3424 -1, -1, 83, 84, 85, -1, 87, 88, -1, -1,
3425 -1, -1, 114, 94, 116, 117, 118, 119, 120, 121,
3426 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3427 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
3428 121, 122, 123, 124, 125, -1, -1, -1, -1, -1,
3429 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3430 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3431 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3432 26, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3433 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3434 -1, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3435 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3436 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3437 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3438 -1, -1, 88, -1, -1, -1, -1, -1, 94, 116,
3439 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3440 -1, -1, 108, -1, -1, 111, -1, -1, 114, 115,
3441 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3442 -1, -1, -1, -1, 130, 131, 132, 133, 134, 0,
3443 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3444 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3445 -1, -1, -1, -1, -1, 26, 27, 28, 29, -1,
3446 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3447 41, 42, 43, 44, -1, -1, 68, 69, 70, 71,
3448 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3449 -1, 83, 84, -1, -1, -1, -1, 68, 69, 70,
3450 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3451 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3452 -1, -1, -1, 94, 116, 117, 118, 119, 120, 121,
3453 122, 123, 124, 125, -1, -1, -1, 108, -1, -1,
3454 111, -1, -1, 114, 115, 116, 117, 118, 119, 120,
3455 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3456 131, 132, 133, 134, 0, -1, 137, 138, 139, -1,
3457 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3458 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3459 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3460 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3461 -1, 68, 69, 70, 71, 72, 73, 74, -1, -1,
3462 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3463 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3464 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3465 -1, 87, 88, -1, -1, -1, -1, -1, 94, 116,
3466 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
3467 -1, -1, 108, -1, -1, 111, -1, 113, 114, 115,
3468 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3469 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3470 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3471 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3472 -1, -1, -1, -1, -1, 26, 27, 28, -1, -1,
3473 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3474 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3477 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3478 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3479 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
3480 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3481 -1, -1, -1, 114, -1, 116, 117, 118, 119, 120,
3482 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3483 131, 132, 133, 134, 0, 136, 137, 138, 139, -1,
3484 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3485 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3486 -1, 27, 28, 29, -1, -1, -1, -1, -1, -1,
3487 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3490 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3491 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3492 -1, -1, 88, -1, -1, -1, -1, -1, 94, -1,
3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3494 -1, -1, 108, -1, -1, 111, -1, -1, 114, 115,
3495 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3496 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3497 -1, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3498 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3499 -1, -1, -1, -1, -1, 26, 27, 28, -1, -1,
3500 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3501 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3503 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3504 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3505 -1, -1, 83, 84, 85, -1, -1, 88, -1, -1,
3506 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
3507 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3508 -1, -1, -1, 114, -1, 116, 117, 118, 119, 120,
3509 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3510 131, 132, 133, 134, 0, 136, 137, 138, 139, -1,
3511 141, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3512 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3513 -1, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3514 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3516 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3517 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3518 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3519 -1, -1, 88, -1, -1, -1, -1, -1, 94, -1,
3520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3521 -1, -1, 108, -1, -1, -1, -1, -1, 114, -1,
3522 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3523 -1, -1, -1, -1, -1, 131, 132, 133, 134, 0,
3524 136, 137, 138, 139, -1, 141, -1, 8, 9, 10,
3525 -1, -1, -1, 14, 15, -1, 17, -1, -1, -1,
3526 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
3527 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3528 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 -1, -1, -1, -1, -1, -1, -1, 68, 69, 70,
3531 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3532 -1, -1, 83, 84, 85, -1, 87, -1, -1, -1,
3533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3534 -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
3535 -1, -1, 113, 114, -1, 116, 117, 118, 119, 120,
3536 121, 122, 123, 124, 125, -1, -1, -1, -1, 130,
3537 131, 132, 133, 134, 0, -1, 137, -1, 139, -1,
3538 141, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3539 -1, 17, -1, 0, -1, -1, -1, -1, -1, -1,
3540 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3541 17, 37, 38, -1, 40, 41, 42, 43, 44, 26,
3542 27, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3543 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3544 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3545 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3546 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3547 -1, -1, -1, -1, -1, -1, -1, -1, 85, -1,
3548 -1, -1, 108, -1, -1, -1, -1, 113, 114, -1,
3549 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
3550 -1, 108, -1, -1, -1, 131, 132, 133, 134, -1,
3551 -1, 137, -1, 139, -1, 141, -1, -1, -1, -1,
3552 -1, -1, -1, 130, 131, -1, 133, -1, -1, 136,
3553 137, -1, 139, 1, 141, 3, 4, 5, 6, 7,
3554 8, 9, 10, 11, 12, -1, -1, 15, 16, -1,
3555 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3556 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3557 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3558 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3559 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3561 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3562 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3563 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3564 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3565 -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
3566 128, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3567 -1, 139, 1, 141, 3, 4, 5, 6, 7, -1,
3568 -1, 10, 11, 12, -1, 14, 15, 16, -1, 18,
3569 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3570 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3571 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3572 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3573 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3574 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3575 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3576 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3577 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3581 139, 1, 141, 3, 4, 5, 6, 7, -1, -1,
3582 10, 11, 12, -1, -1, 15, 16, 17, 18, 19,
3583 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3584 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3585 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
3586 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3587 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3589 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3590 90, -1, 92, 93, -1, 95, -1, -1, 98, 99,
3591 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, -1, -1, -1, -1, 126, 127, 128, -1,
3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, 139,
3595 1, 141, 3, 4, 5, 6, 7, -1, -1, 10,
3596 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3597 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3598 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3599 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3600 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3601 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3602 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3603 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3604 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3605 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3606 -1, -1, -1, 1, -1, 3, 4, 5, 6, 7,
3607 -1, 9, 10, 11, 12, 126, 127, 128, 16, -1,
3608 18, 19, 20, 21, 22, 23, 24, -1, 139, -1,
3609 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3610 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3611 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3612 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3614 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3615 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3616 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3617 -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
3618 5, 6, 7, -1, -1, -1, 11, 12, 126, 127,
3619 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3620 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3621 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3622 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3623 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3624 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3626 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3627 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3628 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3630 -1, 126, 127, 128, -1, -1, -1, -1, -1, -1,
3631 -1, -1, 137, -1, 139, 1, 141, 3, 4, 5,
3632 6, 7, -1, -1, -1, 11, 12, -1, -1, -1,
3633 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3634 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3635 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3636 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3637 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3638 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3639 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3640 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3641 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3642 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3644 126, 127, 128, -1, -1, -1, -1, -1, -1, -1,
3645 -1, 137, -1, 139, 1, 141, 3, 4, 5, 6,
3646 7, -1, -1, -1, 11, 12, -1, -1, -1, 16,
3647 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3648 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3649 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3650 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3651 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3652 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3654 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3655 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
3658 127, 128, -1, -1, 131, 1, -1, 3, 4, 5,
3659 6, 7, 139, -1, 141, 11, 12, -1, -1, -1,
3660 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3661 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3662 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3663 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3664 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3665 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3667 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3668 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3669 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671 126, 127, 128, -1, -1, 131, -1, -1, -1, -1,
3672 -1, -1, -1, 139, 1, 141, 3, 4, 5, 6,
3673 7, -1, -1, 10, 11, 12, -1, -1, -1, 16,
3674 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3675 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3676 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
3677 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3678 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3679 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3681 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3682 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3683 -1, -1, -1, -1, -1, -1, -1, 1, -1, 3,
3684 4, 5, 6, 7, -1, -1, -1, 11, 12, 126,
3685 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3686 24, -1, 139, -1, 141, -1, 30, 31, 32, 33,
3687 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3688 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3689 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3690 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3691 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3692 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3693 -1, 95, -1, -1, 98, 99, 100, 101, 102, 103,
3694 104, 105, 106, -1, 108, -1, -1, -1, -1, -1,
3695 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3696 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3697 21, 22, 23, 24, -1, 139, -1, 141, -1, 30,
3698 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3699 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3700 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3701 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3703 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3704 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3705 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3706 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3707 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3708 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3709 141, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3710 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3711 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3712 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3714 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3715 -1, 89, 90, -1, 92, 93, -1, -1, -1, -1,
3716 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3717 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3718 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3719 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3720 -1, 139, -1, 141, -1, 30, 31, 32, 33, 34,
3721 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3722 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3723 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3724 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3726 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3727 -1, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3728 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3729 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
3730 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3731 22, 23, 24, -1, -1, -1, 141, -1, 30, 31,
3732 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3733 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3734 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3735 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3737 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3738 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3739 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3740 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3741 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3742 19, 20, 21, 22, 23, 24, -1, 139, -1, -1,
3743 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3744 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3745 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3746 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3748 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3749 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3750 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3752 -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
3753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3754 139, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3755 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3756 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3757 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3758 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3759 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3760 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3761 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3762 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3763 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
3764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3765 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3766 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3767 -1, -1, -1, 135, 136, 3, 4, 5, 6, 7,
3768 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
3769 18, 19, 20, 21, 22, 23, 24, 25, 26, -1,
3770 -1, -1, 30, 31, 32, 33, 34, 35, 36, 37,
3771 38, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3772 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3773 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67,
3774 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3775 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3776 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
3777 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3778 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
3779 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
3780 128, -1, -1, -1, -1, -1, -1, 135, 3, 4,
3781 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3782 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3783 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3784 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3785 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3786 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3787 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3788 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3790 95, 96, -1, -1, 99, -1, -1, -1, -1, -1,
3791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3792 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
3793 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
3794 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3795 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3796 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3797 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3798 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3799 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3801 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3802 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3803 -1, -1, -1, 95, 96, -1, -1, 99, -1, -1,
3804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3805 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
3806 122, 123, 124, 125, -1, 127, 128, -1, -1, -1,
3807 -1, -1, -1, 135, 3, 4, 5, 6, 7, 8,
3808 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
3809 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
3810 -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
3811 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
3812 49, 50, 51, 52, 53, -1, -1, 56, -1, -1,
3813 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
3814 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
3815 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
3816 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3818 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
3819 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
3820 3, 4, 5, -1, 7, -1, 135, -1, 11, 12,
3821 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3822 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3823 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3824 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3825 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3826 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
3827 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3828 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3829 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
3830 103, 104, 105, 106, -1, -1, -1, -1, -1, 3,
3831 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3832 -1, -1, 16, 126, 18, 19, 20, 21, 22, 23,
3833 24, 134, -1, -1, -1, -1, 30, 31, 32, 33,
3834 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3835 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3836 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3837 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3838 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3839 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3840 -1, -1, -1, -1, 98, 99, 100, 101, 102, 103,
3841 104, 105, 106, -1, -1, -1, -1, -1, 3, 4,
3842 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3843 -1, 16, 126, 18, 19, 20, 21, 22, 23, 24,
3844 134, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3845 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3846 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
3847 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3848 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3850 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3851 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3852 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3853 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3854 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3855 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3856 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3857 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3858 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3859 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3861 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3862 92, 93, -1, 95, 96, 97, 98, 99, 100, 101,
3863 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3864 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3865 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3866 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3867 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3868 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3869 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3870 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3872 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3873 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3874 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3875 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3876 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3877 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3878 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3879 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3880 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3881 56, 57, 58, 59, 60, -1, 62, 63, 64, -1,
3882 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3883 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3884 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3885 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
3886 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3887 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3888 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
3889 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3890 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3891 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3892 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3893 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3894 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3895 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3896 93, -1, 95, 96, -1, 98, 99, 100, 101, 102,
3897 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
3898 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3899 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
3900 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3901 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3902 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3903 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3904 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3906 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3907 90, -1, 92, 93, -1, -1, 96, 97, 98, 99,
3908 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
3909 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3910 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
3911 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3912 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3913 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3914 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3915 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3916 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3917 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3918 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3919 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3921 4, 5, -1, 7, -1, -1, -1, 11, 12, 126,
3922 127, 128, 16, -1, 18, 19, 20, 21, 22, 23,
3923 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3924 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3925 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3926 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3927 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3929 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3930 -1, -1, 96, -1, 98, 99, 100, 101, 102, 103,
3931 104, 105, 106, -1, -1, -1, -1, -1, -1, -1,
3932 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3933 11, 12, 126, 127, 128, 16, -1, 18, 19, 20,
3934 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3935 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3936 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3937 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3938 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3939 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3940 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3941 -1, 92, 93, -1, 95, -1, -1, 98, 99, 100,
3942 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
3943 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3944 -1, -1, -1, 11, 12, 126, 127, 128, 16, -1,
3945 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3946 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3947 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3948 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3949 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3951 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3952 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
3953 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
3954 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3955 5, -1, 7, -1, -1, -1, 11, 12, 126, 127,
3956 128, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3957 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3958 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3959 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3960 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3961 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3962 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3963 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3964 95, -1, -1, 98, 99, 100, 101, 102, 103, 104,
3965 105, 106, -1, -1, -1, -1, -1, -1, -1, -1,
3966 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3967 12, 126, 127, 128, 16, -1, 18, 19, 20, 21,
3968 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3969 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3970 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3971 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3972 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3973 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3974 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3975 92, 93, -1, 95, -1, -1, 98, 99, 100, 101,
3976 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
3977 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3978 -1, -1, 11, 12, 126, 127, 128, 16, -1, 18,
3979 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3980 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3981 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3982 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3983 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3984 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3985 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3986 89, 90, -1, 92, 93, -1, 95, -1, -1, 98,
3987 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
3988 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3989 -1, 7, -1, -1, -1, 11, 12, 126, 127, 128,
3990 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3991 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3992 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3993 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3994 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3995 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3997 86, -1, -1, 89, 90, -1, 92, 93, -1, -1,
3998 -1, -1, 98, 99, 100, 101, 102, 103, 104, 105,
3999 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4000 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4001 126, 127, 128, 16, -1, 18, 19, 20, 21, 22,
4002 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4003 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4004 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4005 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4006 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
4007 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4008 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4009 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4010 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4011 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4012 -1, 11, 12, 126, 127, 128, 16, -1, 18, 19,
4013 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4014 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4015 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4016 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4017 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
4018 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4019 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4020 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4021 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4022 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
4023 7, -1, -1, -1, 11, 12, 126, 127, 128, 16,
4024 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4025 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4026 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
4027 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
4028 57, -1, 59, 60, -1, 62, 63, 64, -1, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4030 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
4031 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
4032 -1, 98, 99, 100, 101, 102, 103, 104, 105, 106,
4033 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4034 -1, -1, -1, 11, 12, -1, -1, -1, 16, 126,
4035 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4036 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4037 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4038 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4039 -1, 59, 60, -1, 62, 63, 64, -1, -1, -1,
4040 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4041 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
4042 -1, 89, 90, -1, 92, 93, -1, 95, -1, -1,
4043 98, 99, 100, 101, 102, 103, 104, 105, 106, -1,
4044 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4045 -1, -1, 11, 12, -1, -1, -1, 16, 126, 18,
4046 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4047 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4048 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4049 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4050 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4051 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4052 -1, -1, -1, -1, 83, -1, -1, 86, -1, -1,
4053 89, 90, -1, 92, 93, -1, -1, -1, -1, 98,
4054 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
4055 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4056 -1, 11, 12, -1, -1, -1, 16, 126, 18, 19,
4057 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4058 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4059 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4060 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4061 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
4062 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4063 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
4064 90, -1, 92, 93, -1, -1, -1, -1, 98, 99,
4065 100, 101, 102, 103, 104, 105, 106, -1, -1, -1,
4066 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
4067 11, 12, -1, -1, -1, 16, 126, 18, 19, 20,
4068 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
4069 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4070 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
4071 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4072 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1,
4073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4074 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
4075 -1, 92, 93, -1, -1, -1, -1, 98, 99, 100,
4076 101, 102, 103, 104, 105, 106, -1, -1, -1, -1,
4077 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4078 12, -1, -1, -1, 16, 126, 18, 19, 20, 21,
4079 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4080 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4081 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4082 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
4083 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
4084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4085 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
4086 92, 93, -1, -1, -1, -1, 98, 99, 100, 101,
4087 102, 103, 104, 105, 106, -1, -1, -1, -1, -1,
4088 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4089 -1, -1, -1, 16, 126, 18, 19, 20, 21, 22,
4090 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4091 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4092 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4093 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
4094 63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
4095 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4096 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
4097 93, -1, -1, -1, -1, 98, 99, 100, 101, 102,
4098 103, 104, 105, 106, -1, -1, -1, -1, -1, -1,
4099 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4100 -1, -1, -1, 126, 66, 67, 68, 69, 70, 71,
4101 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4102 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4103 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4104 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4105 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4106 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4107 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4108 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4109 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4111 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4113 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4114 125, -1, 127, 128, 52, 53, -1, -1, 56, -1,
4115 135, -1, -1, -1, -1, -1, -1, -1, 66, 67,
4116 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4117 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4118 -1, -1, -1, -1, -1, -1, -1, 95, 96, -1,
4119 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4120 -1, -1, -1, -1, -1, -1, -1, -1, 116, 117,
4121 118, 119, 120, 121, 122, 123, 124, 125, -1, 127,
4122 128, 52, 53, -1, -1, 56, -1, 135, -1, -1,
4123 -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
4124 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4125 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4126 -1, -1, -1, -1, 95, 96, -1, -1, -1, -1,
4127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4128 -1, -1, -1, -1, -1, 116, 117, 118, 119, 120,
4129 121, 122, 123, 124, 125, -1, 127, 128, 52, 53,
4130 -1, -1, 56, -1, 135, -1, -1, -1, -1, -1,
4131 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
4132 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4133 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4134 -1, 95, 96, -1, -1, -1, -1, -1, -1, -1,
4135 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4136 -1, -1, 116, 117, 118, 119, 120, 121, 122, 123,
4137 124, 125, -1, 127, 128, 52, 53, -1, -1, 56,
4138 -1, 135, -1, -1, -1, -1, -1, -1, -1, 66,
4139 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4140 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4141 -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
4142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4143 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116,
4144 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
4145 127, 128, 52, 53, -1, -1, 56, -1, 135, -1,
4146 -1, -1, -1, -1, -1, -1, 66, 67, 68, 69,
4147 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4148 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4149 -1, -1, -1, -1, -1, 95, 96, -1, -1, -1,
4150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4151 -1, -1, -1, -1, -1, -1, 116, 117, 118, 119,
4152 120, 121, 122, 123, 124, 125, -1, 127, 128, 52,
4153 53, -1, -1, 56, -1, 135, -1, -1, -1, -1,
4154 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
4155 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4156 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4157 -1, -1, 95, 96, -1, -1, -1, -1, -1, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122,
4160 123, 124, 125, -1, 127, 128, 52, 53, -1, -1,
4161 56, -1, 135, -1, -1, -1, -1, -1, -1, -1,
4162 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4163 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4164 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4165 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4166 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4167 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
4168 -1, 127, 128, 52, 53, -1, -1, 56, -1, 135,
4169 -1, -1, -1, -1, -1, -1, -1, 66, 67, 68,
4170 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4171 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4172 -1, -1, -1, -1, -1, -1, 95, 96, -1, -1,
4173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4174 -1, -1, -1, -1, -1, -1, -1, 116, 117, 118,
4175 119, 120, 121, 122, 123, 124, 125, -1, 127, 128,
4176 52, 53, -1, -1, 56, -1, 135, -1, -1, -1,
4177 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
4178 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4179 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4180 -1, -1, -1, 95, 96, -1, -1, -1, -1, -1,
4181 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4182 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,
4183 122, 123, 124, 125, -1, 127, 128, 52, 53, -1,
4184 -1, 56, -1, 135, -1, -1, -1, -1, -1, -1,
4185 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4186 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4187 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4188 95, 96, -1, -1, -1, -1, -1, -1, -1, -1,
4189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4190 -1, 116, 117, 118, 119, 120, 121, 122, 123, 124,
4191 125, -1, 127, 128, -1, -1, -1, -1, -1, -1,
4199 0, 143, 144, 0, 1, 3, 4, 5, 6, 7,
4200 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4201 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4202 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4203 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4204 90, 92, 93, 95, 98, 99, 100, 101, 102, 103,
4205 104, 105, 106, 126, 127, 128, 145, 146, 147, 154,
4206 156, 157, 159, 160, 163, 164, 165, 167, 168, 169,
4207 171, 172, 182, 196, 215, 216, 217, 218, 219, 220,
4208 221, 222, 223, 224, 225, 251, 252, 266, 267, 268,
4209 269, 270, 271, 272, 275, 277, 278, 290, 292, 293,
4210 294, 295, 296, 297, 298, 329, 340, 147, 3, 4,
4211 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
4212 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4213 25, 26, 30, 31, 32, 33, 34, 35, 36, 37,
4214 38, 39, 45, 46, 47, 48, 49, 50, 51, 52,
4215 53, 56, 66, 67, 68, 69, 70, 71, 72, 73,
4216 74, 77, 78, 81, 82, 83, 84, 95, 96, 116,
4217 117, 118, 119, 120, 121, 122, 123, 124, 125, 127,
4218 128, 135, 175, 176, 177, 178, 180, 181, 290, 292,
4219 39, 58, 86, 89, 95, 96, 97, 127, 164, 172,
4220 182, 184, 189, 192, 194, 215, 294, 295, 297, 298,
4221 327, 328, 189, 189, 136, 190, 191, 136, 186, 190,
4222 136, 141, 334, 54, 177, 334, 148, 130, 21, 22,
4223 30, 31, 32, 163, 182, 215, 182, 56, 1, 47,
4224 89, 150, 151, 152, 154, 166, 167, 340, 198, 199,
4225 185, 194, 327, 340, 184, 326, 327, 340, 46, 86,
4226 126, 134, 171, 196, 215, 294, 295, 298, 243, 244,
4227 54, 55, 57, 175, 282, 291, 281, 282, 283, 140,
4228 273, 140, 279, 140, 276, 140, 280, 59, 60, 159,
4229 182, 182, 139, 141, 333, 338, 339, 40, 41, 42,
4230 43, 44, 37, 38, 26, 130, 186, 190, 257, 28,
4231 249, 113, 134, 89, 95, 168, 113, 68, 69, 70,
4232 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
4233 83, 84, 114, 116, 117, 118, 119, 120, 121, 122,
4234 123, 124, 125, 85, 132, 133, 197, 157, 158, 158,
4235 202, 204, 158, 333, 339, 86, 165, 172, 215, 231,
4236 294, 295, 298, 52, 56, 83, 86, 173, 174, 215,
4237 294, 295, 298, 174, 33, 34, 35, 36, 49, 50,
4238 51, 52, 56, 136, 175, 296, 324, 85, 133, 332,
4239 257, 269, 87, 87, 134, 184, 56, 184, 184, 184,
4240 113, 88, 134, 193, 340, 85, 132, 133, 87, 87,
4241 134, 193, 189, 334, 335, 189, 188, 189, 194, 327,
4242 340, 157, 335, 157, 54, 63, 64, 155, 136, 183,
4243 130, 150, 85, 133, 87, 154, 153, 166, 137, 333,
4244 339, 335, 335, 157, 138, 134, 141, 337, 134, 337,
4245 131, 337, 334, 56, 59, 60, 168, 170, 134, 85,
4246 132, 133, 245, 61, 107, 109, 110, 284, 110, 284,
4247 110, 65, 284, 110, 110, 274, 284, 110, 61, 110,
4248 110, 110, 274, 110, 61, 110, 68, 68, 139, 147,
4249 158, 158, 158, 158, 154, 157, 157, 259, 258, 94,
4250 161, 250, 95, 159, 184, 194, 195, 166, 134, 171,
4251 134, 156, 159, 172, 182, 184, 195, 182, 182, 182,
4252 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4253 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
4254 182, 182, 182, 52, 53, 56, 180, 256, 330, 331,
4255 188, 52, 53, 56, 180, 255, 330, 149, 150, 13,
4256 227, 338, 227, 158, 158, 333, 17, 260, 56, 85,
4257 132, 133, 25, 157, 52, 56, 173, 1, 117, 299,
4258 338, 85, 132, 133, 211, 325, 212, 332, 52, 56,
4259 330, 159, 182, 159, 182, 179, 182, 184, 95, 184,
4260 192, 327, 52, 56, 188, 52, 56, 328, 335, 137,
4261 335, 134, 134, 335, 177, 201, 182, 145, 131, 330,
4262 330, 182, 130, 335, 152, 200, 327, 134, 170, 52,
4263 56, 188, 52, 56, 52, 54, 55, 56, 57, 58,
4264 68, 89, 95, 96, 97, 120, 123, 136, 247, 302,
4265 304, 305, 306, 307, 308, 309, 312, 313, 314, 315,
4266 318, 319, 320, 321, 322, 286, 285, 140, 284, 140,
4267 140, 140, 182, 182, 76, 118, 238, 239, 340, 238,
4268 162, 238, 184, 134, 335, 170, 134, 113, 44, 334,
4269 87, 87, 186, 190, 254, 334, 336, 87, 87, 186,
4270 190, 253, 10, 226, 8, 262, 340, 150, 13, 150,
4271 27, 228, 338, 228, 260, 194, 226, 52, 56, 188,
4272 52, 56, 206, 209, 338, 300, 208, 52, 56, 173,
4273 188, 149, 157, 136, 301, 304, 213, 186, 187, 190,
4274 340, 44, 177, 184, 193, 87, 87, 336, 87, 87,
4275 327, 157, 131, 145, 335, 337, 168, 336, 113, 184,
4276 52, 89, 95, 232, 233, 234, 306, 304, 246, 134,
4277 303, 134, 323, 340, 52, 134, 323, 134, 303, 52,
4278 134, 303, 52, 287, 54, 55, 57, 289, 298, 52,
4279 58, 235, 237, 240, 308, 310, 311, 314, 316, 317,
4280 320, 322, 334, 150, 150, 238, 150, 95, 184, 170,
4281 182, 115, 159, 182, 159, 182, 161, 186, 138, 87,
4282 159, 182, 159, 182, 161, 187, 184, 195, 263, 340,
4283 15, 230, 340, 14, 229, 230, 230, 203, 205, 226,
4284 134, 227, 336, 158, 338, 158, 149, 336, 226, 335,
4285 304, 149, 338, 175, 257, 249, 182, 87, 134, 335,
4286 131, 184, 234, 134, 306, 134, 335, 240, 29, 111,
4287 248, 302, 307, 318, 320, 309, 314, 322, 308, 315,
4288 320, 308, 288, 113, 86, 215, 240, 118, 134, 236,
4289 134, 323, 323, 134, 236, 134, 236, 139, 10, 131,
4290 150, 10, 184, 182, 159, 182, 88, 264, 340, 150,
4291 9, 265, 340, 158, 226, 226, 150, 150, 184, 150,
4292 228, 210, 338, 226, 335, 226, 214, 335, 233, 134,
4293 95, 232, 137, 150, 150, 134, 303, 134, 303, 323,
4294 134, 303, 134, 303, 303, 150, 215, 56, 85, 118,
4295 235, 317, 320, 310, 314, 308, 316, 320, 308, 52,
4296 241, 242, 305, 131, 86, 172, 215, 294, 295, 298,
4297 227, 150, 227, 226, 226, 230, 260, 261, 207, 149,
4298 301, 134, 233, 134, 306, 10, 131, 308, 320, 308,
4299 308, 108, 52, 56, 134, 236, 134, 236, 323, 134,
4300 236, 134, 236, 236, 134, 334, 56, 85, 132, 133,
4301 150, 150, 150, 226, 149, 233, 134, 303, 134, 303,
4302 303, 303, 308, 320, 308, 308, 242, 52, 56, 188,
4303 52, 56, 262, 229, 226, 226, 233, 308, 236, 134,
4304 236, 236, 236, 336, 303, 308, 236
4307 #define yyerrok (yyerrstatus = 0) 4308 #define yyclearin (yychar = YYEMPTY) 4309 #define YYEMPTY (-2) 4312 #define YYACCEPT goto yyacceptlab 4313 #define YYABORT goto yyabortlab 4314 #define YYERROR goto yyerrorlab 4324 #define YYFAIL goto yyerrlab 4332 #define YYRECOVERING() (!!yyerrstatus) 4334 #define YYBACKUP(Token, Value) \ 4336 if (yychar == YYEMPTY && yylen == 1) \ 4345 parser_yyerror (parser, YY_("syntax error: cannot back up")); \ 4352 #define YYERRCODE 256 4359 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4360 #ifndef YYLLOC_DEFAULT 4361 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4365 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4366 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4367 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4368 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4372 (Current).first_line = (Current).last_line = \ 4373 YYRHSLOC (Rhs, 0).last_line; \ 4374 (Current).first_column = (Current).last_column = \ 4375 YYRHSLOC (Rhs, 0).last_column; \ 4383 #ifndef YY_LOCATION_PRINT 4384 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4391 # define YYLEX yylex (&yylval, YYLEX_PARAM) 4393 # define YYLEX yylex (&yylval, parser) 4401 # define YYFPRINTF fprintf 4404 # define YYDPRINTF(Args) \ 4410 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4414 YYFPRINTF (stderr, "%s ", Title); \ 4415 yy_symbol_print (stderr, \ 4416 Type, Value, parser); \ 4417 YYFPRINTF (stderr, "\n"); \ 4427 #if (defined __STDC__ || defined __C99__FUNC__ \ 4428 || defined __cplusplus || defined _MSC_VER) 4436 YYSTYPE const *
const yyvaluep;
4445 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4461 #if (defined __STDC__ || defined __C99__FUNC__ \ 4462 || defined __cplusplus || defined _MSC_VER) 4470 YYSTYPE const *
const yyvaluep;
4488 #if (defined __STDC__ || defined __C99__FUNC__ \ 4489 || defined __cplusplus || defined _MSC_VER) 4500 for (; yybottom <= yytop; yybottom++)
4502 int yybot = *yybottom;
4508 # define YY_STACK_PRINT(Bottom, Top) \ 4511 yy_stack_print ((Bottom), (Top)); \ 4519 #if (defined __STDC__ || defined __C99__FUNC__ \ 4520 || defined __cplusplus || defined _MSC_VER) 4531 int yynrhs =
yyr2[yyrule];
4533 unsigned long int yylno =
yyrline[yyrule];
4534 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4537 for (yyi = 0; yyi < yynrhs; yyi++)
4541 &(yyvsp[(yyi + 1) - (yynrhs)])
4547 # define YY_REDUCE_PRINT(Rule) \ 4550 yy_reduce_print (yyvsp, Rule, parser); \ 4559 # define YYDPRINTF(Args) 4560 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 4561 # define YY_STACK_PRINT(Bottom, Top) 4562 # define YY_REDUCE_PRINT(Rule) 4568 # define YYINITDEPTH 200 4579 # define YYMAXDEPTH 10000 4586 # if defined __GLIBC__ && defined _STRING_H 4587 # define yystrlen strlen 4590 #if (defined __STDC__ || defined __C99__FUNC__ \ 4591 || defined __cplusplus || defined _MSC_VER) 4601 for (yylen = 0; yystr[yylen]; yylen++)
4609 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 4610 # define yystpcpy stpcpy 4614 #if (defined __STDC__ || defined __C99__FUNC__ \ 4615 || defined __cplusplus || defined _MSC_VER) 4617 yystpcpy (
char *yydest,
const char *yysrc)
4626 const char *yys = yysrc;
4628 while ((*yyd++ = *yys++) !=
'\0')
4650 char const *yyp = yystr;
4657 goto do_not_strip_quotes;
4661 goto do_not_strip_quotes;
4674 do_not_strip_quotes: ;
4680 return yystpcpy (yyres, yystr) - yyres;
4699 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4701 const char *yyformat = 0;
4703 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4737 int yyn =
yypact[*yyssp];
4738 yyarg[yycount++] =
yytname[yytoken];
4744 int yyxbegin = yyn < 0 ? -yyn : 0;
4746 int yychecklim =
YYLAST - yyn + 1;
4750 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4754 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4760 yyarg[yycount++] =
yytname[yyx];
4762 if (! (yysize <= yysize1
4772 # define YYCASE_(N, S) \ 4777 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4778 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4779 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4780 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4781 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4785 yysize1 = yysize +
yystrlen (yyformat);
4790 if (*yymsg_alloc < yysize)
4792 *yymsg_alloc = 2 * yysize;
4793 if (! (yysize <= *yymsg_alloc
4805 while ((*yyp = *yyformat) !=
'\0')
4806 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4826 #if (defined __STDC__ || defined __C99__FUNC__ \ 4827 || defined __cplusplus || defined _MSC_VER) 4856 #ifdef YYPARSE_PARAM 4857 #if defined __STDC__ || defined __cplusplus 4858 int yyparse (
void *YYPARSE_PARAM);
4863 #if defined __STDC__ || defined __cplusplus 4875 #ifdef YYPARSE_PARAM 4876 #if (defined __STDC__ || defined __C99__FUNC__ \ 4877 || defined __cplusplus || defined _MSC_VER) 4883 void *YYPARSE_PARAM;
4886 #if (defined __STDC__ || defined __C99__FUNC__ \ 4887 || defined __cplusplus || defined _MSC_VER) 4940 char *yymsg = yymsgbuf;
4941 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4944 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 4955 YYDPRINTF ((stderr,
"Starting parse\n"));
4982 if (yyss + yystacksize - 1 <= yyssp)
4985 YYSIZE_T yysize = yyssp - yyss + 1;
4999 yyoverflow (
YY_(
"memory exhausted"),
5000 &yyss1, yysize *
sizeof (*yyssp),
5001 &yyvs1, yysize *
sizeof (*yyvsp),
5008 # ifndef YYSTACK_RELOCATE 5009 goto yyexhaustedlab;
5013 goto yyexhaustedlab;
5023 goto yyexhaustedlab;
5026 # undef YYSTACK_RELOCATE 5033 yyssp = yyss + yysize - 1;
5034 yyvsp = yyvs + yysize - 1;
5036 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
5037 (
unsigned long int) yystacksize));
5039 if (yyss + yystacksize - 1 <= yyssp)
5043 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5068 YYDPRINTF ((stderr,
"Reading a token: "));
5072 if (yychar <=
YYEOF)
5074 yychar = yytoken =
YYEOF;
5075 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5139 yyval = yyvsp[1-yylen];
5169 NODE *node = (yyvsp[(2) - (2)].
node);
5170 while (node->nd_next) {
5171 node = node->nd_next;
5195 (yyval.
node) = (yyvsp[(1) - (2)].node);
5267 (yyvsp[(4) - (5)].node));
5283 (yyval.
node) = (yyvsp[(1) - (4)].node);
5284 if ((yyvsp[(2) - (4)].node)) {
5285 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5287 else if ((yyvsp[(3) - (4)].node)) {
5288 rb_warn0(
"else without rescue is useless");
5291 if ((yyvsp[(4) - (4)].node)) {
5320 (yyval.
node) = (yyvsp[(1) - (2)].node);
5341 #line 1004 "parse.y" 5354 #line 1012 "parse.y" 5367 #line 1020 "parse.y" 5376 #line 1026 "parse.y" 5378 (yyval.
node) = (yyvsp[(1) - (1)].node);
5385 #line 1030 "parse.y" 5387 yyerror(
"BEGIN is permitted only at toplevel");
5398 #line 1038 "parse.y" 5402 (yyvsp[(4) - (5)].node));
5415 #line 1050 "parse.y" 5422 #line 1051 "parse.y" 5435 #line 1059 "parse.y" 5448 #line 1067 "parse.y" 5453 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5464 #line 1078 "parse.y" 5467 yyerror(
"can't make alias for the number variables");
5479 #line 1088 "parse.y" 5482 (yyval.
node) = (yyvsp[(2) - (2)].node);
5492 #line 1096 "parse.y" 5506 #line 1105 "parse.y" 5520 #line 1114 "parse.y" 5523 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5527 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5538 #line 1127 "parse.y" 5541 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5542 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5545 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5556 #line 1140 "parse.y" 5570 #line 1149 "parse.y" 5573 rb_warn0(
"END in method; use at_exit");
5577 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5587 #line 1162 "parse.y" 5591 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5592 (yyval.
node) = (yyvsp[(1) - (3)].node);
5602 #line 1172 "parse.y" 5605 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
5612 #line 1177 "parse.y" 5618 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5619 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5620 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5621 (yyvsp[(5) - (6)].
id) = 0;
5623 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5624 (yyvsp[(5) - (6)].
id) = 1;
5638 #line 1198 "parse.y" 5641 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5648 #line 1203 "parse.y" 5651 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5658 #line 1208 "parse.y" 5673 #line 1218 "parse.y" 5676 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_intern(
"::"), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5683 #line 1223 "parse.y" 5698 #line 1233 "parse.y" 5712 #line 1242 "parse.y" 5715 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5716 (yyval.
node) = (yyvsp[(1) - (3)].node);
5726 #line 1251 "parse.y" 5729 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5730 (yyval.
node) = (yyvsp[(1) - (3)].node);
5740 #line 1263 "parse.y" 5754 #line 1272 "parse.y" 5768 #line 1285 "parse.y" 5781 #line 1293 "parse.y" 5794 #line 1301 "parse.y" 5807 #line 1309 "parse.y" 5820 #line 1320 "parse.y" 5824 (yyval.
node) = (yyvsp[(1) - (1)].node);
5835 #line 1337 "parse.y" 5838 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5849 #line 1348 "parse.y" 5862 #line 1358 "parse.y" 5877 #line 1370 "parse.y" 5890 #line 1380 "parse.y" 5893 (yyval.
node) = (yyvsp[(1) - (2)].node);
5904 #line 1389 "parse.y" 5908 (yyvsp[(1) - (3)].
node)->
nd_args = (yyvsp[(2) - (3)].node);
5909 (yyvsp[(3) - (3)].
node)->
nd_iter = (yyvsp[(1) - (3)].node);
5910 (yyval.
node) = (yyvsp[(3) - (3)].node);
5922 #line 1402 "parse.y" 5925 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5936 #line 1411 "parse.y" 5940 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5941 (yyval.
node) = (yyvsp[(5) - (5)].node);
5953 #line 1423 "parse.y" 5956 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5967 #line 1432 "parse.y" 5971 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5972 (yyval.
node) = (yyvsp[(5) - (5)].node);
5984 #line 1444 "parse.y" 5998 #line 1453 "parse.y" 6012 #line 1462 "parse.y" 6025 #line 1470 "parse.y" 6038 #line 1478 "parse.y" 6051 #line 1489 "parse.y" 6054 (yyval.
node) = (yyvsp[(2) - (3)].node);
6064 #line 1500 "parse.y" 6077 #line 1510 "parse.y" 6090 #line 1518 "parse.y" 6103 #line 1526 "parse.y" 6116 #line 1534 "parse.y" 6130 #line 1543 "parse.y" 6143 #line 1551 "parse.y" 6157 #line 1560 "parse.y" 6170 #line 1568 "parse.y" 6184 #line 1577 "parse.y" 6197 #line 1585 "parse.y" 6211 #line 1597 "parse.y" 6214 (yyval.
node) = (yyvsp[(2) - (3)].node);
6224 #line 1607 "parse.y" 6237 #line 1615 "parse.y" 6250 #line 1625 "parse.y" 6263 #line 1633 "parse.y" 6276 #line 1643 "parse.y" 6285 #line 1647 "parse.y" 6294 #line 1651 "parse.y" 6297 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6307 #line 1659 "parse.y" 6310 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6320 #line 1667 "parse.y" 6323 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6333 #line 1675 "parse.y" 6336 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6346 #line 1683 "parse.y" 6350 yyerror(
"dynamic constant assignment");
6363 #line 1695 "parse.y" 6367 yyerror(
"dynamic constant assignment");
6378 #line 1705 "parse.y" 6393 #line 1717 "parse.y" 6407 #line 1726 "parse.y" 6421 #line 1735 "parse.y" 6424 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6434 #line 1743 "parse.y" 6437 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6447 #line 1751 "parse.y" 6450 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6460 #line 1759 "parse.y" 6463 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6473 #line 1767 "parse.y" 6477 yyerror(
"dynamic constant assignment");
6491 #line 1780 "parse.y" 6495 yyerror(
"dynamic constant assignment");
6509 #line 1793 "parse.y" 6523 #line 1804 "parse.y" 6526 yyerror(
"class/module name must be CONSTANT");
6536 #line 1815 "parse.y" 6549 #line 1823 "parse.y" 6562 #line 1831 "parse.y" 6575 #line 1844 "parse.y" 6578 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6585 #line 1849 "parse.y" 6589 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6599 #line 1864 "parse.y" 6612 #line 1875 "parse.y" 6625 #line 1882 "parse.y" 6632 #line 1883 "parse.y" 6645 #line 1892 "parse.y" 6652 #line 1893 "parse.y" 6659 #line 1894 "parse.y" 6666 #line 1895 "parse.y" 6673 #line 1896 "parse.y" 6680 #line 1897 "parse.y" 6687 #line 1898 "parse.y" 6694 #line 1899 "parse.y" 6701 #line 1900 "parse.y" 6708 #line 1901 "parse.y" 6715 #line 1902 "parse.y" 6722 #line 1903 "parse.y" 6729 #line 1904 "parse.y" 6736 #line 1905 "parse.y" 6743 #line 1906 "parse.y" 6750 #line 1907 "parse.y" 6757 #line 1908 "parse.y" 6764 #line 1909 "parse.y" 6771 #line 1910 "parse.y" 6778 #line 1911 "parse.y" 6785 #line 1912 "parse.y" 6792 #line 1913 "parse.y" 6799 #line 1914 "parse.y" 6806 #line 1915 "parse.y" 6813 #line 1916 "parse.y" 6820 #line 1917 "parse.y" 6827 #line 1918 "parse.y" 6834 #line 1919 "parse.y" 6841 #line 1920 "parse.y" 6848 #line 1921 "parse.y" 6855 #line 1939 "parse.y" 6869 #line 1948 "parse.y" 6884 #line 1958 "parse.y" 6887 (yyval.
node) =
new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].
id), (yyvsp[(3) - (3)].node));
6894 #line 1963 "parse.y" 6902 (yyval.
node) =
new_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(2) - (5)].
id), (yyvsp[(3) - (5)].node));
6909 #line 1973 "parse.y" 6915 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6920 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6922 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6923 (yyvsp[(5) - (6)].
id) = 0;
6925 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6926 (yyvsp[(5) - (6)].
id) = 1;
6940 #line 1999 "parse.y" 6943 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6950 #line 2004 "parse.y" 6953 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6960 #line 2009 "parse.y" 6963 (yyval.
node) =
new_attr_op_assign((yyvsp[(1) - (5)].node), ripper_intern(
"::"), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6970 #line 2014 "parse.y" 6985 #line 2024 "parse.y" 7000 #line 2034 "parse.y" 7016 #line 2045 "parse.y" 7035 #line 2059 "parse.y" 7054 #line 2073 "parse.y" 7067 #line 2081 "parse.y" 7080 #line 2089 "parse.y" 7093 #line 2097 "parse.y" 7106 #line 2105 "parse.y" 7119 #line 2113 "parse.y" 7132 #line 2121 "parse.y" 7146 #line 2130 "parse.y" 7160 #line 2139 "parse.y" 7173 #line 2147 "parse.y" 7186 #line 2155 "parse.y" 7199 #line 2163 "parse.y" 7212 #line 2171 "parse.y" 7225 #line 2179 "parse.y" 7238 #line 2187 "parse.y" 7251 #line 2195 "parse.y" 7264 #line 2203 "parse.y" 7277 #line 2211 "parse.y" 7290 #line 2219 "parse.y" 7303 #line 2227 "parse.y" 7316 #line 2235 "parse.y" 7329 #line 2243 "parse.y" 7345 #line 2254 "parse.y" 7358 #line 2262 "parse.y" 7371 #line 2270 "parse.y" 7384 #line 2278 "parse.y" 7397 #line 2286 "parse.y" 7410 #line 2294 "parse.y" 7423 #line 2302 "parse.y" 7436 #line 2309 "parse.y" 7443 #line 2310 "parse.y" 7458 #line 2320 "parse.y" 7462 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7473 #line 2330 "parse.y" 7475 (yyval.
node) = (yyvsp[(1) - (1)].node);
7482 #line 2336 "parse.y" 7486 (yyval.
node) = (yyvsp[(1) - (1)].node);
7497 #line 2349 "parse.y" 7499 (yyval.
node) = (yyvsp[(1) - (2)].node);
7506 #line 2353 "parse.y" 7519 #line 2361 "parse.y" 7532 #line 2371 "parse.y" 7535 (yyval.
node) = (yyvsp[(2) - (3)].node);
7545 #line 2387 "parse.y" 7547 (yyval.
node) = (yyvsp[(1) - (2)].node);
7554 #line 2391 "parse.y" 7567 #line 2399 "parse.y" 7580 #line 2409 "parse.y" 7594 #line 2418 "parse.y" 7607 #line 2426 "parse.y" 7622 #line 2436 "parse.y" 7636 #line 2453 "parse.y" 7646 #line 2458 "parse.y" 7650 (yyval.
node) = (yyvsp[(2) - (2)].node);
7657 #line 2466 "parse.y" 7670 #line 2476 "parse.y" 7672 (yyval.
node) = (yyvsp[(2) - (2)].node);
7679 #line 2480 "parse.y" 7688 #line 2486 "parse.y" 7701 #line 2494 "parse.y" 7714 #line 2502 "parse.y" 7718 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7733 #line 2516 "parse.y" 7752 #line 2532 "parse.y" 7756 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7771 #line 2546 "parse.y" 7776 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7791 #line 2561 "parse.y" 7804 #line 2581 "parse.y" 7817 #line 2589 "parse.y" 7831 #line 2599 "parse.y" 7835 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7841 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7854 #line 2616 "parse.y" 7861 #line 2617 "parse.y" 7874 #line 2625 "parse.y" 7884 #line 2629 "parse.y" 7891 #line 2630 "parse.y" 7895 (yyval.
node) = (yyvsp[(3) - (5)].node);
7905 #line 2639 "parse.y" 7908 (yyval.
node) = (yyvsp[(2) - (3)].node);
7918 #line 2647 "parse.y" 7931 #line 2655 "parse.y" 7944 #line 2663 "parse.y" 7947 if ((yyvsp[(2) - (3)].node) == 0) {
7951 (yyval.
node) = (yyvsp[(2) - (3)].node);
7962 #line 2676 "parse.y" 7975 #line 2684 "parse.y" 7988 #line 2692 "parse.y" 8001 #line 2700 "parse.y" 8014 #line 2708 "parse.y" 8027 #line 2715 "parse.y" 8034 #line 2716 "parse.y" 8049 #line 2726 "parse.y" 8062 #line 2734 "parse.y" 8075 #line 2742 "parse.y" 8078 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8079 (yyval.
node) = (yyvsp[(2) - (2)].node);
8090 #line 2753 "parse.y" 8094 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8095 (yyval.
node) = (yyvsp[(2) - (2)].node);
8105 #line 2763 "parse.y" 8107 (yyval.
node) = (yyvsp[(2) - (2)].node);
8114 #line 2770 "parse.y" 8117 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
8128 #line 2782 "parse.y" 8131 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8142 #line 2790 "parse.y" 8149 #line 2790 "parse.y" 8156 #line 2793 "parse.y" 8170 #line 2801 "parse.y" 8177 #line 2801 "parse.y" 8184 #line 2804 "parse.y" 8198 #line 2815 "parse.y" 8212 #line 2824 "parse.y" 8225 #line 2832 "parse.y" 8232 #line 2834 "parse.y" 8239 #line 2837 "parse.y" 8284 m->nd_next = (yyvsp[(2) - (9)].
node);
8293 tbl[0] = 1; tbl[1] =
id;
8294 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
8305 #line 2898 "parse.y" 8308 yyerror(
"class definition in method body");
8320 #line 2909 "parse.y" 8323 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8335 #line 2919 "parse.y" 8345 #line 2924 "parse.y" 8356 #line 2931 "parse.y" 8373 #line 2943 "parse.y" 8376 yyerror(
"module definition in method body");
8388 #line 2954 "parse.y" 8403 #line 2964 "parse.y" 8415 #line 2973 "parse.y" 8434 #line 2986 "parse.y" 8441 #line 2987 "parse.y" 8452 #line 2995 "parse.y" 8457 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8470 #line 3008 "parse.y" 8483 #line 3016 "parse.y" 8496 #line 3024 "parse.y" 8509 #line 3032 "parse.y" 8522 #line 3042 "parse.y" 8526 (yyval.
node) = (yyvsp[(1) - (1)].node);
8537 #line 3054 "parse.y" 8546 #line 3060 "parse.y" 8555 #line 3066 "parse.y" 8564 #line 3072 "parse.y" 8573 #line 3078 "parse.y" 8582 #line 3084 "parse.y" 8591 #line 3090 "parse.y" 8600 #line 3096 "parse.y" 8609 #line 3102 "parse.y" 8618 #line 3108 "parse.y" 8631 #line 3118 "parse.y" 8640 #line 3148 "parse.y" 8643 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8654 #line 3160 "parse.y" 8657 (yyval.
node) = (yyvsp[(2) - (2)].node);
8667 #line 3174 "parse.y" 8680 #line 3182 "parse.y" 8683 (yyval.
node) = (yyvsp[(2) - (3)].node);
8693 #line 3192 "parse.y" 8706 #line 3200 "parse.y" 8719 #line 3210 "parse.y" 8732 #line 3218 "parse.y" 8746 #line 3227 "parse.y" 8760 #line 3236 "parse.y" 8773 #line 3244 "parse.y" 8786 #line 3252 "parse.y" 8800 #line 3261 "parse.y" 8817 #line 3273 "parse.y" 8830 #line 3281 "parse.y" 8843 #line 3292 "parse.y" 8845 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
8852 #line 3296 "parse.y" 8861 #line 3300 "parse.y" 8870 #line 3304 "parse.y" 8879 #line 3310 "parse.y" 8881 (yyval.
node) = (yyvsp[(2) - (2)].node);
8888 #line 3314 "parse.y" 8897 #line 3320 "parse.y" 8899 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
8906 #line 3324 "parse.y" 8908 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
8915 #line 3328 "parse.y" 8924 #line 3332 "parse.y" 8926 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8933 #line 3336 "parse.y" 8942 #line 3340 "parse.y" 8955 #line 3348 "parse.y" 8957 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8964 #line 3352 "parse.y" 8973 #line 3356 "parse.y" 8982 #line 3360 "parse.y" 8984 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
8991 #line 3364 "parse.y" 9000 #line 3368 "parse.y" 9009 #line 3372 "parse.y" 9018 #line 3376 "parse.y" 9027 #line 3380 "parse.y" 9036 #line 3387 "parse.y" 9045 #line 3393 "parse.y" 9059 #line 3402 "parse.y" 9073 #line 3411 "parse.y" 9076 (yyval.
node) = (yyvsp[(2) - (4)].node);
9086 #line 3422 "parse.y" 9095 #line 3426 "parse.y" 9108 #line 3452 "parse.y" 9121 #line 3460 "parse.y" 9130 #line 3465 "parse.y" 9139 #line 3468 "parse.y" 9149 #line 3473 "parse.y" 9158 #line 3477 "parse.y" 9174 #line 3490 "parse.y" 9177 (yyval.
node) = (yyvsp[(2) - (4)].node);
9187 #line 3498 "parse.y" 9190 (yyval.
node) = (yyvsp[(1) - (1)].node);
9200 #line 3508 "parse.y" 9202 (yyval.
node) = (yyvsp[(2) - (3)].node);
9209 #line 3512 "parse.y" 9211 (yyval.
node) = (yyvsp[(2) - (3)].node);
9218 #line 3518 "parse.y" 9230 #line 3527 "parse.y" 9245 #line 3539 "parse.y" 9254 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
9255 (yyval.
node) = (yyvsp[(2) - (2)].node);
9266 #line 3555 "parse.y" 9269 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9280 #line 3564 "parse.y" 9284 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9285 (yyval.
node) = (yyvsp[(5) - (5)].node);
9297 #line 3576 "parse.y" 9301 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
9302 (yyval.
node) = (yyvsp[(5) - (5)].node);
9314 #line 3590 "parse.y" 9317 (yyval.
node) = (yyvsp[(1) - (2)].node);
9328 #line 3599 "parse.y" 9339 #line 3605 "parse.y" 9342 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9354 #line 3615 "parse.y" 9365 #line 3621 "parse.y" 9368 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(5) - (5)].node));
9380 #line 3631 "parse.y" 9383 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
9393 #line 3639 "parse.y" 9404 #line 3645 "parse.y" 9420 #line 3656 "parse.y" 9431 #line 3662 "parse.y" 9447 #line 3673 "parse.y" 9460 #line 3681 "parse.y" 9473 #line 3689 "parse.y" 9476 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9479 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
9490 #line 3703 "parse.y" 9503 #line 3712 "parse.y" 9518 #line 3722 "parse.y" 9531 #line 3731 "parse.y" 9546 #line 3745 "parse.y" 9549 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9559 #line 3761 "parse.y" 9562 if ((yyvsp[(3) - (6)].node)) {
9566 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
9581 #line 3781 "parse.y" 9594 #line 3789 "parse.y" 9607 #line 3800 "parse.y" 9609 (yyval.
node) = (yyvsp[(2) - (2)].node);
9616 #line 3807 "parse.y" 9619 (yyval.
node) = (yyvsp[(2) - (2)].node);
9629 #line 3819 "parse.y" 9642 #line 3830 "parse.y" 9645 NODE *node = (yyvsp[(1) - (1)].
node);
9652 (yyval.
node) = node;
9662 #line 3849 "parse.y" 9675 #line 3859 "parse.y" 9678 (yyval.
node) = (yyvsp[(2) - (3)].node);
9688 #line 3869 "parse.y" 9691 NODE *node = (yyvsp[(2) - (3)].
node);
9708 (yyval.
node) = node;
9718 #line 3896 "parse.y" 9722 NODE *node = (yyvsp[(2) - (3)].
node);
9730 VALUE src = node->nd_lit;
9750 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9756 prev->nd_next =
list->nd_next;
9769 if (!node->nd_next) {
9770 VALUE src = node->nd_lit;
9776 (yyval.
node) = node;
9786 #line 3961 "parse.y" 9800 #line 3970 "parse.y" 9803 (yyval.
node) = (yyvsp[(2) - (3)].node);
9813 #line 3980 "parse.y" 9826 #line 3988 "parse.y" 9839 #line 4006 "parse.y" 9852 #line 4016 "parse.y" 9866 #line 4025 "parse.y" 9869 (yyval.
node) = (yyvsp[(2) - (3)].node);
9879 #line 4035 "parse.y" 9892 #line 4043 "parse.y" 9913 #line 4061 "parse.y" 9927 #line 4070 "parse.y" 9930 (yyval.
node) = (yyvsp[(2) - (3)].node);
9940 #line 4080 "parse.y" 9954 #line 4089 "parse.y" 9957 (yyval.
node) = (yyvsp[(2) - (3)].node);
9967 #line 4099 "parse.y" 9980 #line 4107 "parse.y" 9993 #line 4117 "parse.y" 10006 #line 4125 "parse.y" 10023 #line 4139 "parse.y" 10036 #line 4147 "parse.y" 10049 #line 4157 "parse.y" 10062 #line 4165 "parse.y" 10075 #line 4175 "parse.y" 10088 #line 4183 "parse.y" 10120 #line 4213 "parse.y" 10131 #line 4219 "parse.y" 10146 #line 4229 "parse.y" 10158 #line 4235 "parse.y" 10169 #line 4240 "parse.y" 10179 #line 4245 "parse.y" 10186 if ((yyvsp[(5) - (6)].node)) (yyvsp[(5) - (6)].node)->flags &= ~
NODE_FL_NEWLINE;
10197 #line 4260 "parse.y" 10210 #line 4268 "parse.y" 10223 #line 4276 "parse.y" 10236 #line 4287 "parse.y" 10240 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10250 #line 4304 "parse.y" 10264 #line 4317 "parse.y" 10277 #line 4325 "parse.y" 10290 #line 4341 "parse.y" 10297 #line 4342 "parse.y" 10304 #line 4343 "parse.y" 10311 #line 4344 "parse.y" 10318 #line 4345 "parse.y" 10325 #line 4346 "parse.y" 10332 #line 4347 "parse.y" 10339 #line 4351 "parse.y" 10357 #line 4364 "parse.y" 10370 #line 4374 "parse.y" 10383 #line 4382 "parse.y" 10396 #line 4396 "parse.y" 10409 #line 4404 "parse.y" 10419 #line 4409 "parse.y" 10421 (yyval.
node) = (yyvsp[(3) - (4)].node);
10428 #line 4413 "parse.y" 10443 #line 4425 "parse.y" 10446 (yyval.
node) = (yyvsp[(2) - (3)].node);
10458 #line 4435 "parse.y" 10460 (yyval.
node) = (yyvsp[(1) - (2)].node);
10469 #line 4443 "parse.y" 10471 (yyval.
node) =
new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].
id));
10478 #line 4447 "parse.y" 10487 #line 4451 "parse.y" 10496 #line 4455 "parse.y" 10505 #line 4461 "parse.y" 10507 (yyval.
node) = (yyvsp[(2) - (2)].node);
10514 #line 4465 "parse.y" 10523 #line 4471 "parse.y" 10525 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id),
Qnone, (yyvsp[(6) - (6)].
node));
10532 #line 4475 "parse.y" 10534 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].node));
10541 #line 4479 "parse.y" 10550 #line 4483 "parse.y" 10552 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node),
Qnone, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10559 #line 4487 "parse.y" 10568 #line 4491 "parse.y" 10570 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node),
Qnone, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10577 #line 4495 "parse.y" 10586 #line 4499 "parse.y" 10595 #line 4503 "parse.y" 10597 (yyval.
node) =
new_args(
Qnone, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
node));
10604 #line 4507 "parse.y" 10613 #line 4511 "parse.y" 10622 #line 4515 "parse.y" 10631 #line 4519 "parse.y" 10640 #line 4523 "parse.y" 10649 #line 4527 "parse.y" 10659 #line 4534 "parse.y" 10662 yyerror(
"formal argument cannot be a constant");
10673 #line 4543 "parse.y" 10676 yyerror(
"formal argument cannot be an instance variable");
10687 #line 4552 "parse.y" 10690 yyerror(
"formal argument cannot be a global variable");
10701 #line 4561 "parse.y" 10704 yyerror(
"formal argument cannot be a class variable");
10715 #line 4573 "parse.y" 10718 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10725 #line 4580 "parse.y" 10739 #line 4589 "parse.y" 10761 #line 4615 "parse.y" 10764 (yyval.
node) = (yyvsp[(1) - (3)].node);
10777 #line 4628 "parse.y" 10792 #line 4640 "parse.y" 10807 #line 4652 "parse.y" 10810 (yyval.
node) = (yyvsp[(1) - (1)].node);
10820 #line 4660 "parse.y" 10823 NODE *kws = (yyvsp[(1) - (3)].
node);
10825 while (kws->nd_next) {
10826 kws = kws->nd_next;
10828 kws->nd_next = (yyvsp[(3) - (3)].
node);
10829 (yyval.
node) = (yyvsp[(1) - (3)].node);
10839 #line 4677 "parse.y" 10842 (yyval.
node) = (yyvsp[(1) - (1)].node);
10852 #line 4685 "parse.y" 10855 NODE *kws = (yyvsp[(1) - (3)].
node);
10857 while (kws->nd_next) {
10858 kws = kws->nd_next;
10860 kws->nd_next = (yyvsp[(3) - (3)].
node);
10861 (yyval.
node) = (yyvsp[(1) - (3)].node);
10871 #line 4705 "parse.y" 10874 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10881 #line 4710 "parse.y" 10890 #line 4716 "parse.y" 10905 #line 4728 "parse.y" 10920 #line 4740 "parse.y" 10923 (yyval.
node) = (yyvsp[(1) - (1)].node);
10933 #line 4748 "parse.y" 10936 NODE *opts = (yyvsp[(1) - (3)].
node);
10938 while (opts->nd_next) {
10939 opts = opts->nd_next;
10941 opts->nd_next = (yyvsp[(3) - (3)].
node);
10942 (yyval.
node) = (yyvsp[(1) - (3)].node);
10952 #line 4764 "parse.y" 10955 (yyval.
node) = (yyvsp[(1) - (1)].node);
10965 #line 4772 "parse.y" 10968 NODE *opts = (yyvsp[(1) - (3)].
node);
10970 while (opts->nd_next) {
10971 opts = opts->nd_next;
10973 opts->nd_next = (yyvsp[(3) - (3)].
node);
10974 (yyval.
node) = (yyvsp[(1) - (3)].node);
10984 #line 4792 "parse.y" 10988 yyerror(
"rest argument must be local variable");
10992 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11002 #line 4805 "parse.y" 11016 #line 4820 "parse.y" 11020 yyerror(
"block argument must be local variable");
11022 yyerror(
"duplicated block argument name");
11026 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11036 #line 4837 "parse.y" 11038 (yyval.
id) = (yyvsp[(2) - (2)].
id);
11045 #line 4841 "parse.y" 11058 #line 4851 "parse.y" 11062 (yyval.
node) = (yyvsp[(1) - (1)].node);
11073 #line 4860 "parse.y" 11080 #line 4861 "parse.y" 11083 if ((yyvsp[(3) - (4)].node) == 0) {
11084 yyerror(
"can't define singleton method for ().");
11087 switch (
nd_type((yyvsp[(3) - (4)].node))) {
11096 yyerror(
"can't define singleton method for literals");
11102 (yyval.
node) = (yyvsp[(3) - (4)].node);
11112 #line 4891 "parse.y" 11115 (yyval.
node) = (yyvsp[(1) - (2)].node);
11125 #line 4908 "parse.y" 11138 #line 4918 "parse.y" 11151 #line 4926 "parse.y" 11164 #line 4934 "parse.y" 11177 #line 4992 "parse.y" 11184 #line 4997 "parse.y" 11191 #line 5001 "parse.y" 11204 #line 11203 "parse.c" 11233 if (0 <= yystate && yystate <=
YYLAST &&
yycheck[yystate] == *yyssp)
11253 #if ! YYERROR_VERBOSE 11256 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 11259 char const *yymsgp =
YY_(
"syntax error");
11260 int yysyntax_error_status;
11262 if (yysyntax_error_status == 0)
11264 else if (yysyntax_error_status == 1)
11266 if (yymsg != yymsgbuf)
11272 yymsg_alloc =
sizeof yymsgbuf;
11273 yysyntax_error_status = 2;
11282 if (yysyntax_error_status == 2)
11283 goto yyexhaustedlab;
11285 # undef YYSYNTAX_ERROR 11291 if (yyerrstatus == 3)
11296 if (yychar <=
YYEOF)
11299 if (yychar ==
YYEOF)
11305 yytoken, &
yylval, parser);
11361 yystos[yystate], yyvsp, parser);
11391 #if !defined(yyoverflow) || YYERROR_VERBOSE 11407 yydestruct (
"Cleanup: discarding lookahead",
11408 yytoken, &
yylval, parser);
11414 while (yyssp != yyss)
11417 yystos[*yyssp], yyvsp, parser);
11424 #if YYERROR_VERBOSE 11425 if (yymsg != yymsgbuf)
11429 return YYID (yyresult);
11435 #line 5009 "parse.y" 11440 # define yylval (*((YYSTYPE*)(parser->parser_yylval))) 11449 # define nextc() parser_nextc(parser) 11450 # define pushback(c) parser_pushback(parser, (c)) 11451 # define newtok() parser_newtok(parser) 11452 # define tokspace(n) parser_tokspace(parser, (n)) 11453 # define tokadd(c) parser_tokadd(parser, (c)) 11454 # define tok_hex(numlen) parser_tok_hex(parser, (numlen)) 11455 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e)) 11456 # define tokadd_escape(e) parser_tokadd_escape(parser, (e)) 11457 # define regx_options() parser_regx_options(parser) 11458 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e)) 11459 # define parse_string(n) parser_parse_string(parser,(n)) 11460 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc)) 11461 # define here_document(n) parser_here_document(parser,(n)) 11462 # define heredoc_identifier() parser_heredoc_identifier(parser) 11463 # define heredoc_restore(n) parser_heredoc_restore(parser,(n)) 11464 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i)) 11467 # define set_yylval_str(x) (yylval.node = NEW_STR(x)) 11468 # define set_yylval_num(x) (yylval.num = (x)) 11469 # define set_yylval_id(x) (yylval.id = (x)) 11470 # define set_yylval_name(x) (yylval.id = (x)) 11471 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x)) 11472 # define set_yylval_node(x) (yylval.node = (x)) 11473 # define yylval_id() (yylval.id) 11475 static inline VALUE 11476 ripper_yylval_id(
ID x)
11480 # define set_yylval_str(x) (void)(x) 11481 # define set_yylval_num(x) (void)(x) 11482 # define set_yylval_id(x) (void)(x) 11483 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x)) 11484 # define set_yylval_literal(x) (void)(x) 11485 # define set_yylval_node(x) (void)(x) 11486 # define yylval_id() yylval.id 11490 #define ripper_flush(p) (void)(p) 11492 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p) 11494 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)) 11501 return lex_p > parser->tokp;
11514 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11516 if (!ripper_has_scan_event(parser))
return;
11517 yylval_rval = ripper_scan_event_val(parser, t);
11521 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11523 if (!ripper_has_scan_event(parser))
return;
11524 (void)ripper_scan_event_val(parser, t);
11528 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11531 const char *saved_tokp = parser->tokp;
11534 parser->tokp =
lex_pbeg + parser->delayed_col;
11536 parser->delayed =
Qnil;
11538 parser->tokp = saved_tokp;
11549 #undef SIGN_EXTEND_CHAR 11551 # define SIGN_EXTEND_CHAR(c) ((signed char)(c)) 11554 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128) 11557 #define parser_encoding_name() (current_enc->name) 11558 #define parser_mbclen() mbclen((lex_p-1),lex_pend,current_enc) 11559 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,current_enc) 11560 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p))) 11561 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,current_enc)) 11563 #define parser_isascii() ISASCII(*(lex_p-1)) 11573 column = (((column - 1) / 8) + 1) * 8;
11585 if (*
p !=
' ' && *
p !=
'\t') {
11592 #undef token_info_push 11609 #undef token_info_pop 11616 if (!ptinfo)
return;
11622 if (linenum == ptinfo->
linenum) {
11630 "mismatched indentations at '%s' with '%s' at %d",
11643 const int max_line_margin = 30;
11644 const char *
p, *pe;
11652 if (*
p ==
'\n')
break;
11659 if (*pe ==
'\n')
break;
11666 const char *pre =
"", *post =
"";
11668 if (len > max_line_margin * 2 + 10) {
11669 if (
lex_p -
p > max_line_margin) {
11673 if (pe -
lex_p > max_line_margin) {
11685 p2 =
buf; pe =
buf + len;
11688 if (*p2 !=
'\t') *p2 =
' ';
11708 CONST_ID(script_lines,
"SCRIPT_LINES__");
11724 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11727 RBASIC(lines)->klass = 0;
11729 RARRAY(lines)->as.heap.len = n;
11779 parser->parser_ruby_sourceline);
11789 if (parser->nerr) {
11799 return (
VALUE)tree;
11825 char *beg, *end, *pend;
11835 while (end < pend) {
11836 if (*end++ ==
'\n')
break;
11846 if (
NIL_P(line))
return line;
11950 node =
yycompile(parser, fname, start);
11957 #define STR_FUNC_ESCAPE 0x01 11958 #define STR_FUNC_EXPAND 0x02 11959 #define STR_FUNC_REGEXP 0x04 11960 #define STR_FUNC_QWORDS 0x08 11961 #define STR_FUNC_SYMBOL 0x10 11962 #define STR_FUNC_INDENT 0x20 11992 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend) 11993 #define lex_eol_p() (lex_p >= lex_pend) 11994 #define peek(c) peek_n((c), 0) 11995 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n]) 12018 if (
NIL_P(parser->delayed)) {
12022 parser->tokp,
lex_pend - parser->tokp);
12024 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
12028 parser->tokp,
lex_pend - parser->tokp);
12044 c = (
unsigned char)*
lex_p++;
12045 if (c ==
'\r' &&
peek(
'\n')) {
12056 if (c == -1)
return;
12063 #define was_bol() (lex_p == lex_pbeg + 1) 12065 #define tokfix() (tokenbuf[tokidx]='\0') 12066 #define tok() tokenbuf 12067 #define toklen() tokidx 12068 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0) 12115 yyerror(
"invalid hex escape");
12122 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n)) 12127 int string_literal,
int symbol_literal,
int regexp_literal)
12147 yyerror(
"invalid Unicode escape");
12150 if (codepoint > 0x10ffff) {
12151 yyerror(
"invalid Unicode codepoint (too large)");
12155 if (regexp_literal) {
12158 else if (codepoint >= 0x80) {
12160 if (string_literal)
tokaddmbc(codepoint, *encp);
12162 else if (string_literal) {
12165 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
12168 yyerror(
"unterminated Unicode escape");
12172 if (regexp_literal) {
tokadd(
'}'); }
12178 yyerror(
"invalid Unicode escape");
12182 if (regexp_literal) {
12185 else if (codepoint >= 0x80) {
12187 if (string_literal)
tokaddmbc(codepoint, *encp);
12189 else if (string_literal) {
12197 #define ESCAPE_CONTROL 1 12198 #define ESCAPE_META 2 12207 switch (c =
nextc()) {
12232 case '0':
case '1':
case '2':
case '3':
12233 case '4':
case '5':
case '6':
case '7':
12241 if (numlen == 0)
return 0;
12252 if ((c =
nextc()) !=
'-') {
12256 if ((c =
nextc()) ==
'\\') {
12257 if (
peek(
'u'))
goto eof;
12260 else if (c == -1 || !
ISASCII(c))
goto eof;
12262 return ((c & 0xff) | 0x80);
12266 if ((c =
nextc()) !=
'-') {
12272 if ((c =
nextc())==
'\\') {
12273 if (
peek(
'u'))
goto eof;
12278 else if (c == -1 || !
ISASCII(c))
goto eof;
12283 yyerror(
"Invalid escape character syntax");
12306 switch (c =
nextc()) {
12310 case '0':
case '1':
case '2':
case '3':
12311 case '4':
case '5':
case '6':
case '7':
12314 if (numlen == 0)
goto eof;
12323 if (numlen == 0)
return -1;
12330 if ((c =
nextc()) !=
'-') {
12340 if ((c =
nextc()) !=
'-') {
12352 if ((c =
nextc()) ==
'\\') {
12355 else if (c == -1)
goto eof;
12361 yyerror(
"Invalid escape character syntax");
12428 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c)) 12434 case '$':
case '*':
case '+':
case '.':
12435 case '?':
case '^':
case '|':
12436 case ')':
case ']':
case '}':
case '>':
12445 int func,
int term,
int paren,
long *nest,
12449 int has_nonascii = 0;
12452 static const char mixed_msg[] =
"%s mixed within %s source";
12454 #define mixed_error(enc1, enc2) if (!errbuf) { \ 12455 size_t len = sizeof(mixed_msg) - 4; \ 12456 len += strlen(rb_enc_name(enc1)); \ 12457 len += strlen(rb_enc_name(enc2)); \ 12458 errbuf = ALLOCA_N(char, len); \ 12459 snprintf(errbuf, len, mixed_msg, \ 12460 rb_enc_name(enc1), \ 12461 rb_enc_name(enc2)); \ 12464 #define mixed_escape(beg, enc1, enc2) do { \ 12465 const char *pos = lex_p; \ 12467 mixed_error((enc1), (enc2)); \ 12471 while ((c =
nextc()) != -1) {
12472 if (paren && c == paren) {
12475 else if (c == term) {
12476 if (!nest || !*nest) {
12484 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12489 else if (c ==
'\\') {
12490 const char *beg =
lex_p - 1;
12511 if (has_nonascii &&
enc != *encp) {
12517 if (c == -1)
return -1;
12530 if (has_nonascii &&
enc != *encp) {
12543 else if (c != term && !(paren && c == paren)) {
12553 if (
enc != *encp) {
12566 if (
enc != *encp) {
12577 #define NEW_STRTERM(func, term, paren) \ 12578 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0) 12584 if (!
NIL_P(parser->delayed)) {
12585 ptrdiff_t len =
lex_p - parser->tokp;
12590 parser->tokp =
lex_p;
12594 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc)) 12596 #define flush_string_content(enc) ((void)(enc)) 12603 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0) 12604 #define SPECIAL_PUNCT(idx) ( \ 12605 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \ 12606 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \ 12607 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \ 12608 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \ 12609 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \ 12617 #undef SPECIAL_PUNCT 12623 if (c <= 0x20 || 0x7e < c)
return 0;
12637 if ((c = *
p) ==
'-') {
12646 if ((c = *
p) ==
'@') {
12666 int func = (int)quote->nd_func;
12678 if (c == term && !quote->nd_nest) {
12680 quote->nd_func = -1;
12742 while ((c =
nextc()) != -1 && c != term) {
12789 line = here->nd_orig;
12803 const char *eos,
long len,
int indent)
12812 if (n < 0 || (n > 0 &&
p[len] !=
'\n' &&
p[len] !=
'\r'))
return FALSE;
12813 return strncmp(eos,
p, len) == 0;
12820 if (!
NIL_P(parser->delayed))
12823 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12826 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) 12828 #define dispatch_heredoc_end() ((void)0) 12834 int c,
func, indent = 0;
12835 const char *eos, *
p, *pend;
12844 if ((c =
nextc()) == -1) {
12848 if (
NIL_P(parser->delayed)) {
12853 ((len =
lex_p - parser->tokp) > 0 &&
12877 switch (pend[-1]) {
12879 if (--pend ==
p || pend[-1] !=
'\r') {
12893 if (
nextc() == -1) {
12914 if (parser->
eofp)
goto error;
12924 if ((c =
nextc()) == -1)
goto error;
12941 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12946 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1) 12953 yyerror(
"formal argument must be local variable");
12971 if (len > 5 &&
name[nlen = len - 5] ==
'-') {
12975 if (len > 4 &&
name[nlen = len - 4] ==
'-') {
13011 for (
i = 0;
i < n; ++
i) {
13049 case 't':
case 'T':
13055 case 'f':
case 'F':
13078 static const char *
13086 if (str[
i-1] ==
'*' && str[
i-2] ==
'-') {
13087 return str +
i + 1;
13092 if (
i + 1 >= len)
return 0;
13093 if (str[
i+1] !=
'-') {
13096 else if (str[
i-1] !=
'-') {
13100 return str +
i + 2;
13115 const char *beg, *end, *vbeg, *vend;
13116 #define str_copy(_s, _p, _n) ((_s) \ 13117 ? (void)(rb_str_resize((_s), (_n)), \ 13118 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \ 13119 : (void)((_s) = STR_NEW((_p), (_n)))) 13121 if (len <= 7)
return FALSE;
13125 len = end - beg - 3;
13136 for (; len > 0 && *str; str++, --len) {
13138 case '\'':
case '"':
case ':':
case ';':
13143 for (beg = str; len > 0; str++, --len) {
13145 case '\'':
case '"':
case ':':
case ';':
13153 for (end = str; len > 0 &&
ISSPACE(*str); str++, --len);
13155 if (*str !=
':')
continue;
13157 do str++;
while (--len > 0 &&
ISSPACE(*str));
13160 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
13161 if (*str ==
'\\') {
13173 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --len, str++);
13176 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
13181 for (
i = 0;
i < n; ++
i) {
13182 if (s[
i] ==
'-') s[
i] =
'_';
13189 n = (*
p->length)(parser, vbeg, n);
13209 const char *beg = str;
13213 if (send - str <= 6)
return;
13215 case 'C':
case 'c': str += 6;
continue;
13216 case 'O':
case 'o': str += 5;
continue;
13217 case 'D':
case 'd': str += 4;
continue;
13218 case 'I':
case 'i': str += 3;
continue;
13219 case 'N':
case 'n': str += 2;
continue;
13220 case 'G':
case 'g': str += 1;
continue;
13221 case '=':
case ':':
13234 if (++str >= send)
return;
13237 if (*str !=
'=' && *str !=
':')
return;
13242 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
13258 (
unsigned char)
lex_p[0] == 0xbb &&
13259 (
unsigned char)
lex_p[1] == 0xbf) {
13273 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY) 13274 #define IS_END() IS_lex_state(EXPR_END_ANY) 13275 #define IS_BEG() IS_lex_state(EXPR_BEG_ANY) 13276 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) 13277 #define IS_LABEL_POSSIBLE() ((IS_lex_state(EXPR_BEG | EXPR_ENDFN) && !cmd_state) || IS_ARG()) 13278 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1)) 13279 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT) 13282 #define ambiguous_operator(op, syn) ( \ 13283 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \ 13284 rb_warning0("even though it seems like "syn"")) 13286 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn)) 13288 #define warn_balanced(op, syn) ((void) \ 13289 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN|EXPR_ENDARG) && \ 13290 space_seen && !ISSPACE(c) && \ 13291 (ambiguous_operator(op, syn), 0))) 13297 int space_seen = 0;
13303 int fallthru =
FALSE;
13329 switch (c =
nextc()) {
13337 case ' ':
case '\t':
case '\f':
case '\r':
13341 while ((c =
nextc())) {
13343 case ' ':
case '\t':
case '\f':
case '\r':
13352 ripper_dispatch_scan_event(parser,
tSP);
13365 ripper_dispatch_scan_event(parser,
tCOMMENT);
13370 if (
IS_lex_state(EXPR_BEG | EXPR_VALUE | EXPR_CLASS | EXPR_FNAME | EXPR_DOT)) {
13379 while ((c =
nextc())) {
13381 case ' ':
case '\t':
case '\f':
case '\r':
13386 if ((c =
nextc()) !=
'.') {
13399 parser->tokp =
lex_p;
13402 goto normal_newline;
13411 if ((c =
nextc()) ==
'*') {
13412 if ((c =
nextc()) ==
'=') {
13419 rb_warning0(
"`**' interpreted as argument prefix");
13438 rb_warning0(
"`*' interpreted as argument prefix");
13477 int first_p =
TRUE;
13486 ripper_dispatch_scan_event(parser,
tEMBDOC);
13495 if (c !=
'=')
continue;
13496 if (strncmp(
lex_p,
"end", 3) == 0 &&
13510 if ((c =
nextc()) ==
'=') {
13511 if ((c =
nextc()) ==
'=') {
13520 else if (c ==
'>') {
13532 (!
IS_ARG() || space_seen)) {
13545 if ((c =
nextc()) ==
'>') {
13552 if ((c =
nextc()) ==
'=') {
13566 if ((c =
nextc()) ==
'=') {
13570 if ((c =
nextc()) ==
'=') {
13638 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13655 else if (c ==
'\\') {
13684 if ((c =
nextc()) ==
'&') {
13686 if ((c =
nextc()) ==
'=') {
13694 else if (c ==
'=') {
13701 rb_warning0(
"`&' interpreted as argument prefix");
13715 if ((c =
nextc()) ==
'|') {
13717 if ((c =
nextc()) ==
'=') {
13797 if ((c =
nextc()) ==
'.') {
13798 if ((c =
nextc()) ==
'.') {
13806 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13812 case '0':
case '1':
case '2':
case '3':
case '4':
13813 case '5':
case '6':
case '7':
case '8':
case '9':
13815 int is_float, seen_point, seen_e, nondigit;
13817 is_float = seen_point = seen_e = nondigit = 0;
13820 if (c ==
'-' || c ==
'+') {
13825 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0) 13828 if (c ==
'x' || c ==
'X') {
13834 if (nondigit)
break;
13841 }
while ((c =
nextc()) != -1);
13845 if (
toklen() == start) {
13848 else if (nondigit)
goto trailing_uc;
13852 if (c ==
'b' || c ==
'B') {
13855 if (c ==
'0' || c ==
'1') {
13858 if (nondigit)
break;
13862 if (c !=
'0' && c !=
'1')
break;
13865 }
while ((c =
nextc()) != -1);
13869 if (
toklen() == start) {
13872 else if (nondigit)
goto trailing_uc;
13876 if (c ==
'd' || c ==
'D') {
13882 if (nondigit)
break;
13889 }
while ((c =
nextc()) != -1);
13893 if (
toklen() == start) {
13896 else if (nondigit)
goto trailing_uc;
13904 if (c ==
'o' || c ==
'O') {
13907 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13911 if (c >=
'0' && c <=
'7') {
13916 if (nondigit)
break;
13920 if (c < '0' || c >
'9')
break;
13921 if (c >
'7')
goto invalid_octal;
13924 }
while ((c =
nextc()) != -1);
13928 if (nondigit)
goto trailing_uc;
13937 if (c >
'7' && c <=
'9') {
13939 yyerror(
"Invalid octal digit");
13941 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13953 case '0':
case '1':
case '2':
case '3':
case '4':
13954 case '5':
case '6':
case '7':
case '8':
case '9':
13960 if (nondigit)
goto trailing_uc;
13961 if (seen_point || seen_e) {
13966 if (c0 == -1 || !
ISDIGIT(c0)) {
13994 if (c !=
'-' && c !=
'+')
continue;
14000 if (nondigit)
goto decode_num;
14015 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
14021 if (
errno == ERANGE) {
14082 if ((c =
nextc()) ==
'=') {
14098 if ((c =
nextc()) ==
'=') {
14118 if ((c =
nextc()) !=
'@') {
14145 if ((c =
nextc()) ==
']') {
14146 if ((c =
nextc()) ==
'=') {
14158 else if (
IS_ARG() && space_seen) {
14193 ripper_dispatch_scan_event(parser,
tSP);
14207 if (c == -1 || !
ISALNUM(c)) {
14214 yyerror(
"unknown type of %string");
14218 if (c == -1 || term == -1) {
14223 if (term ==
'(') term =
')';
14224 else if (term ==
'[') term =
']';
14225 else if (term ==
'{') term =
'}';
14226 else if (term ==
'<') term =
'>';
14276 yyerror(
"unknown type of %string");
14280 if ((c =
nextc()) ==
'=') {
14357 case '1':
case '2':
case '3':
14358 case '4':
case '5':
case '6':
14359 case '7':
case '8':
case '9':
14364 }
while (c != -1 &&
ISDIGIT(c));
14410 ripper_dispatch_scan_event(parser,
k__END__);
14433 switch (
tok()[0]) {
14434 case '@':
case '$':
14438 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14451 switch (
tok()[0]) {
14458 if (
tok()[1] ==
'@')
14504 if (
state == EXPR_FNAME) {
14520 if (
state & (EXPR_BEG | EXPR_ENDARG))
14524 if (
state & (EXPR_BEG | EXPR_VALUE))
14527 if (kw->
id[0] != kw->
id[1])
14578 if (!
NIL_P(parser->delayed)) {
14579 ripper_dispatch_delayed_token(parser, t);
14583 ripper_dispatch_scan_event(parser, t);
14625 if (orig == (
NODE*)1)
return;
14634 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg)) 14641 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg)) 14650 if (h == 0)
return tail;
14691 end->nd_next =
tail;
14692 h->nd_end =
tail->nd_end;
14703 if (
list->nd_next) {
14710 list->nd_alen += 1;
14712 list->nd_next->nd_end =
last->nd_next;
14722 if (
head->nd_next) {
14731 if (
tail->nd_next) {
14732 head->nd_next->nd_end =
tail->nd_next->nd_end;
14776 if (htype ==
NODE_DSTR && (headlast =
head->nd_next->nd_end->nd_head) &&
14779 lit = headlast->nd_lit;
14782 lit =
head->nd_lit;
14808 head->nd_alen +=
tail->nd_alen - 1;
14809 head->nd_next->nd_end->nd_next =
tail->nd_next;
14810 head->nd_next->nd_end =
tail->nd_next->nd_end;
14813 else if (htype ==
NODE_DSTR && (headlast =
head->nd_next->nd_end->nd_head) &&
14815 lit = headlast->nd_lit;
14969 static const char *
14972 static const char names[][12] = {
14973 "EXPR_BEG",
"EXPR_END",
"EXPR_ENDARG",
"EXPR_ENDFN",
"EXPR_ARG",
14974 "EXPR_CMDARG",
"EXPR_MID",
"EXPR_FNAME",
"EXPR_DOT",
"EXPR_CLASS",
14994 # define assignable_result(x) get_value(lhs) 14995 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs) 14997 # define assignable_result(x) (x) 15002 yyerror(
"Can't change the value of self");
15005 yyerror(
"Can't assign to nil");
15008 yyerror(
"Can't assign to true");
15011 yyerror(
"Can't assign to false");
15014 yyerror(
"Can't assign to __FILE__");
15017 yyerror(
"Can't assign to __LINE__");
15020 yyerror(
"Can't assign to __ENCODING__");
15054 yyerror(
"dynamic constant assignment");
15063 #undef assignable_result 15064 #undef parser_yyerror 15071 if (
name == idUScore)
return 1;
15078 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1)) 15086 yyerror(
"duplicated argument name");
15098 yyerror(
"duplicated argument name");
15198 if (!node2)
return node1;
15201 if (node1->nd_head)
15202 node1->nd_head =
arg_concat(node1->nd_head, node2);
15214 node1->nd_body =
list_concat(node1->nd_body, node2);
15223 if (!node1)
return NEW_LIST(node2);
15228 node1->nd_head =
arg_append(node1->nd_head, node2);
15249 if (!lhs)
return 0;
15261 lhs->nd_value = rhs;
15266 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
15302 while (node->nd_next) {
15303 node = node->nd_next;
15305 node = node->nd_head;
15309 node = node->nd_body;
15313 if (!node->nd_body) {
15314 node = node->nd_else;
15317 else if (!node->nd_else) {
15318 node = node->nd_body;
15322 node = node->nd_else;
15328 node = node->nd_2nd;
15342 const char *useless = 0;
15349 switch (node->nd_mid) {
15380 useless =
"a variable";
15383 useless =
"a constant";
15390 useless =
"a literal";
15415 useless =
"defined?";
15423 rb_warnS(
"possibly useless use of %s in void context", useless);
15436 if (!node->nd_next)
return;
15438 node = node->nd_next;
15445 NODE **n = &node, *n1 = node;
15447 *n = n1 = n1->nd_body;
15455 NODE *node = *body;
15461 #define subnodes(n1, n2) \ 15462 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \ 15463 (!node->n2) ? (body = &node->n1, 1) : \ 15464 (reduce_nodes(&node->n1), body = &node->n2, 1)) 15474 *body = node = node->nd_stts;
15478 *body = node = node->nd_body;
15482 body = &node->nd_end->nd_head;
15488 body = &node->nd_body;
15497 if (node->nd_else) {
15498 body = &node->nd_resq;
15516 if (!node)
return 1;
15519 if (!(node = node->nd_head))
break;
15523 }
while ((node = node->nd_next) != 0);
15542 yyerror(
"multiple assignment in conditional");
15556 if (!node->nd_value)
return 1;
15559 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15581 for (node = *rootnode; node; node = next) {
15585 next = node->nd_next;
15586 head = node->nd_head;
15612 if (node == 0)
return 0;
15620 return cond0(parser, node);
15626 if (!node)
return 1;
15647 if (node == 0)
return 0;
15654 rb_warn0(
"string literal in condition");
15664 node->nd_1st =
cond0(parser, node->nd_1st);
15665 node->nd_2nd =
cond0(parser, node->nd_2nd);
15670 node->nd_beg =
range_op(parser, node->nd_beg);
15671 node->nd_end =
range_op(parser, node->nd_end);
15704 if (node == 0)
return 0;
15705 return cond0(parser, node);
15713 NODE *node = left, *second;
15737 if (node->nd_next == 0) {
15738 node = node->nd_head;
15759 switch (
TYPE(node->nd_lit)) {
15788 node2->nd_head = node1;
15802 args->pre_init = m ? m->nd_next : 0;
15805 args->post_init =
p ?
p->nd_next : 0;
15806 args->first_post_arg =
p ?
p->nd_pid : 0;
15808 args->rest_arg = r;
15810 args->opt_args = o;
15829 args->block_arg = b;
15856 lit = node->nd_lit;
15875 ID vid = lhs->nd_vid;
15877 lhs->nd_value = rhs;
15880 asgn->nd_aid = vid;
15883 else if (op ==
tANDOP) {
15884 lhs->nd_value = rhs;
15906 else if (op ==
tANDOP) {
15922 else if (op ==
tANDOP) {
15938 return dispatch3(opassign, lhs, op, rhs);
15944 VALUE recv = dispatch3(field, lhs,
type, attr);
15945 return dispatch3(opassign, recv, op, rhs);
15955 if (!local->
used)
return;
15960 rb_bug(
"local->used->pos != local->vars->pos");
15962 for (
i = 0;
i <
cnt; ++
i) {
15978 local->
used = !(inherit_dvars &&
16007 int cnt = cnt_args + cnt_vars;
16011 if (
cnt <= 0)
return 0;
16015 for (
i = 0, j = cnt_args+1;
i < cnt_vars; ++
i) {
16049 vars =
lvtbl->vars;
16051 used =
lvtbl->used;
16056 if (used) used = used->
prev;
16072 static const struct vtable *
16080 return lvtbl->args;
16088 if ((tmp =
lvtbl->used) != 0) {
16104 while (
lvtbl->args != lvargs) {
16106 if (!
lvtbl->args) {
16128 vars =
lvtbl->vars;
16129 used =
lvtbl->used;
16142 if (used) used = used->
prev;
16195 "regexp encoding option '%c' differs from source encoding '%s'",
16224 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
16229 long len = name_end -
name;
16230 const char *s = (
const char *)
name;
16247 rb_warningS(
"named capture conflicts a local variable - %s",
16327 NODE *scope = node;
16330 if (!node)
return node;
16334 node = node->nd_body;
16338 node = node->nd_body;
16345 prelude->nd_body = node;
16346 scope->nd_body = prelude;
16349 scope->nd_body = node;
16359 NODE *scope = node;
16362 if (!node)
return node;
16366 node = node->nd_body;
16370 node = node->nd_body;
16386 prelude->nd_body = node;
16387 scope->nd_body = prelude;
16390 scope->nd_body = node;
16396 static const struct {
16421 #define op_tbl_count numberof(op_tbl) 16423 #ifndef ENABLE_SELECTOR_NAMESPACE 16424 #define ENABLE_SELECTOR_NAMESPACE 0 16431 #if ENABLE_SELECTOR_NAMESPACE 16443 #if ENABLE_SELECTOR_NAMESPACE 16450 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
16452 if (key1->id == key2->id && key1->klass == key2->klass) {
16459 ivar2_hash(
struct ivar2_key *
key)
16461 return (
key->id << 8) ^ (
key->klass >> 2);
16475 #if ENABLE_SELECTOR_NAMESPACE 16483 (void)lex_state_name(-1);
16512 if (m >= e)
return 0;
16516 else if (*m ==
'-') {
16530 return m == e ? mb + 1 : 0;
16545 #define IDSET_ATTRSET_FOR_SYNTAX ((1U<<ID_LOCAL)|(1U<<ID_CONST)) 16546 #define IDSET_ATTRSET_FOR_INTERN (~(~0U<<(1<<ID_SCOPE_SHIFT)) & ~(1U<<ID_ATTRSET)) 16551 const char *m =
name;
16552 const char *e = m + len;
16555 if (!m || len <= 0)
return -1;
16575 case '<': ++m;
break;
16576 case '=':
if (*++m ==
'>') ++m;
break;
16583 case '>':
case '=': ++m;
break;
16589 case '~': ++m;
break;
16590 case '=':
if (*++m ==
'=') ++m;
break;
16591 default:
return -1;
16596 if (*++m ==
'*') ++m;
16599 case '+':
case '-':
16600 if (*++m ==
'@') ++m;
16603 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16608 if (*++m !=
']')
return -1;
16609 if (*++m ==
'=') ++m;
16613 if (len == 1)
return ID_JUNK;
16615 case '=':
case '~': ++m;
break;
16616 default:
return -1;
16628 case '!':
case '?':
16632 if (m + 1 < e || *m !=
'=')
break;
16635 if (!(allowed_atttset & (1
U <<
type)))
return -1;
16642 return m == e ?
type : -1;
16708 str = (
VALUE)&fake_str;
16722 const char *
name, *m, *e;
16744 if (
len < 2)
goto junk;
16753 if (
len < 3)
goto junk;
16758 if (
len < 2)
goto junk;
16795 else if (
id == 0) {
16867 name[0] = (char)
id;
16890 if (
RBASIC(str)->klass == 0)
16913 if (
RBASIC(str)->klass == 0)
16926 if (!str)
return 0;
17180 parser->delayed =
Qnil;
17182 parser->result =
Qnil;
17183 parser->parsing_thread =
Qnil;
17184 parser->toplevel_p =
TRUE;
17193 #define parser_mark ripper_parser_mark 17194 #define parser_free ripper_parser_free 17229 if (
p->parser_tokenbuf) {
17230 xfree(
p->parser_tokenbuf);
17232 for (local =
p->parser_lvtbl; local; local =
prev) {
17245 size_t size =
sizeof(*p);
17247 if (!ptr)
return 0;
17248 size +=
p->parser_toksiz;
17249 for (local =
p->parser_lvtbl; local; local = local->
prev) {
17250 size +=
sizeof(*local);
17270 #undef rb_reserved_word 17359 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE)) 17360 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0) 17361 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \ 17362 (n)->u3.cnt = (c), (p)) 17390 if (ptr && (n = parser->
heap) !=
NULL) {
17392 if (n->
u1.
node == ptr) {
17409 while ((n = *prev) !=
NULL) {
17410 if (n->u1.node == ptr) {
17423 #ifdef RIPPER_DEBUG 17424 extern int rb_is_pointer_to_heap(
VALUE);
17430 if (x ==
Qfalse)
return x;
17431 if (x ==
Qtrue)
return x;
17432 if (x ==
Qnil)
return x;
17437 if (!rb_is_pointer_to_heap(x))
17450 return ((
NODE *)x)->nd_rval;
17459 #define validate(x) ((x) = get_value(x)) 17471 return rb_funcall(parser->value, mid, 1, a);
17479 return rb_funcall(parser->value, mid, 2, a, b);
17488 return rb_funcall(parser->value, mid, 3, a, b, c);
17498 return rb_funcall(parser->value, mid, 4, a, b, c, d);
17509 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
17522 return rb_funcall(parser->value, mid, 7, a, b, c, d, e,
f, g);
17525 static const struct kw_assoc {
17528 } keyword_to_name[] = {
17581 keyword_id_to_str(
ID id)
17583 const struct kw_assoc *a;
17585 for (a = keyword_to_name; a->id; a++) {
17592 #undef ripper_id2sym 17594 ripper_id2sym(
ID id)
17604 if ((
name = keyword_id_to_str(
id))) {
17617 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
17635 ripper_get_value(
VALUE v)
17642 return nd->nd_rval;
17646 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
17651 va_start(
args, fmt);
17658 ripper_warn0(
struct parser_params *parser,
const char *fmt)
17664 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
17671 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
17678 ripper_warning0(
struct parser_params *parser,
const char *fmt)
17684 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
17697 ripper_s_allocate(
VALUE klass)
17709 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0) 17725 VALUE src, fname, lineno;
17738 if (
NIL_P(fname)) {
17753 struct ripper_args {
17760 ripper_parse0(
VALUE parser_v)
17766 ripper_yyparse((
void*)parser);
17767 return parser->result;
17771 ripper_ensure(
VALUE parser_v)
17776 parser->parsing_thread =
Qnil;
17787 ripper_parse(
VALUE self)
17792 if (!ripper_initialized_p(parser)) {
17795 if (!
NIL_P(parser->parsing_thread)) {
17802 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17804 return parser->result;
17815 ripper_column(
VALUE self)
17821 if (!ripper_initialized_p(parser)) {
17824 if (
NIL_P(parser->parsing_thread))
return Qnil;
17836 ripper_filename(
VALUE self)
17841 if (!ripper_initialized_p(parser)) {
17855 ripper_lineno(
VALUE self)
17860 if (!ripper_initialized_p(parser)) {
17863 if (
NIL_P(parser->parsing_thread))
return Qnil;
17867 #ifdef RIPPER_DEBUG 17903 InitVM_ripper(
void)
17919 #ifdef RIPPER_DEBUG #define STRNCASECMP(s1, s2, n)
RUBY_EXTERN VALUE rb_cString
void rb_define_global_const(const char *, VALUE)
char * parser_ruby_sourcefile
static const char id_type_names[][9]
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
struct local_vars * parser_lvtbl
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
static ID internal_id_gen(struct parser_params *)
int rb_enc_codelen(int c, rb_encoding *enc)
#define NEW_OP_ASGN_AND(i, val)
#define YY_REDUCE_PRINT(Rule)
#define shadowing_lvar(name)
#define MBCLEN_CHARFOUND_P(ret)
static void arg_ambiguous_gen(struct parser_params *parser)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define RE_OPTION_ENCODING_IDX(o)
#define NEW_OP_ASGN1(p, id, a)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static void Init_id(void)
void rb_bug(const char *fmt,...)
#define mixed_escape(beg, enc1, enc2)
static const yytype_uint8 yyr2[]
int rb_is_local_name(VALUE name)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
void rb_enc_copy(VALUE obj1, VALUE obj2)
static const struct kwtable * reserved_word(const char *, unsigned int)
int rb_is_class_name(VALUE name)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
int rb_is_attrset_name(VALUE name)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
static NODE * negate_lit(NODE *)
#define dispatch_heredoc_end()
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
int parser_ruby__end__seen
static void local_push_gen(struct parser_params *, int)
static int vtable_size(const struct vtable *tbl)
#define formal_argument(id)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
VALUE rb_range_new(VALUE, VALUE, int)
#define YY_STACK_PRINT(Bottom, Top)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
ID rb_check_id(volatile VALUE *namep)
Returns ID for the given name if it is interned already, or 0.
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
static int nodeline(NODE *node)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
static NODE * arg_blk_pass(NODE *, NODE *)
#define IS_LABEL_POSSIBLE()
#define is_asgn_or_id(id)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
int parser_compile_for_eval
int parser_token_info_enabled
#define parser_precise_mbclen()
static ID formal_argument_gen(struct parser_params *, ID)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e - 0x20+31)/32]
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
static ID register_symid(ID, const char *, long, rb_encoding *)
unsigned short int yytype_uint16
VALUE rb_str_cat(VALUE, const char *, long)
ID rb_intern_str(VALUE str)
VALUE rb_reg_check_preprocess(VALUE)
#define RE_OPTION_ENCODING(e)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
#define set_yylval_str(x)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define TypedData_Wrap_Struct(klass, data_type, sval)
#define yytable_value_is_error(yytable_value)
#define IDSET_ATTRSET_FOR_SYNTAX
#define ADD2HEAP(n, c, p)
VALUE rb_parser_encoding(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
stack_type parser_cmdarg_stack
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
int rb_is_method_name(VALUE name)
static ID * local_tbl_gen(struct parser_params *)
VALUE rb_ary_push(VALUE ary, VALUE item)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define NEW_CLASS(n, b, s)
SSL_METHOD *(* func)(void)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
unsigned short int yytype_uint16
static int parser_yylex(struct parser_params *parser)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
#define new_args_tail(k, kr, b)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE op_sym[tLAST_OP_ID]
int rb_is_junk_name(VALUE name)
static int parser_regx_options(struct parser_params *)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
struct RString::@73::@74 heap
static VALUE coverage(VALUE fname, int n)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
int rb_enc_str_coderange(VALUE)
static void ripper_init_eventids1_table(VALUE self)
void rb_raise(VALUE exc, const char *fmt,...)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static const yytype_uint16 yyprhs[]
#define RSTRING_GETMEM(str, ptrvar, lenvar)
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define attrset(node, id)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
#define new_const_op_assign(lhs, op, rhs)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
#define nd_set_type(n, t)
static size_t parser_memsize(const void *ptr)
static NODE * new_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
static void fixpos(NODE *, NODE *)
void rb_gc_mark(VALUE ptr)
static NODE * gettable_gen(struct parser_params *, ID)
#define rb_enc_islower(c, enc)
static struct symbols global_symbols
static NODE * cond0(struct parser_params *, NODE *)
void rb_gc_mark_parser(void)
#define reg_compile(str, options)
static int local_var_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static int dvar_defined_gen(struct parser_params *, ID, int)
static NODE * new_yield_gen(struct parser_params *, NODE *)
#define RE_OPTION_ENCODING_NONE(o)
static char * parser_tokspace(struct parser_params *parser, int n)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
#define tokadd_string(f, t, p, n, e)
VALUE rb_str_buf_append(VALUE, VALUE)
#define is_identchar(p, e, enc)
#define RUBY_DTRACE_PARSE_BEGIN(arg0, arg1)
VALUE parser_ruby_sourcefile_string
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
static NODE * remove_begin(NODE *)
static int is_global_name_punct(const char c)
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
void rb_gc_force_recycle(VALUE p)
static const yytype_int16 yytable[]
NODE * parser_deferred_nodes
VALUE rb_str_buf_cat(VALUE, const char *, long)
void rb_name_error(ID id, const char *fmt,...)
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
static NODE * new_const_op_assign_gen(struct parser_params *parser, NODE *lhs, ID op, NODE *rhs)
#define parser_warn(node, mesg)
#define RUBY_DTRACE_PARSE_END(arg0, arg1)
#define RB_TYPE_P(obj, type)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
int st_lookup(st_table *, st_data_t, st_data_t *)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
int rb_is_instance_name(VALUE name)
static void parser_free(void *ptr)
enum lex_state_e parser_lex_state
int rb_is_local_id(ID id)
VALUE parser_lex_lastline
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
static void parser_initialize(struct parser_params *parser)
#define scan_hex(s, l, e)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define lex_goto_eol(parser)
void rb_compile_error_append(const char *fmt,...)
void rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt,...)
VALUE rb_parser_get_yydebug(VALUE self)
#define NEW_PRELUDE(p, b)
RUBY_EXTERN VALUE rb_cObject
#define match_op(node1, node2)
static enum node_type nodetype(NODE *node)
#define NEW_STRTERM(func, term, paren)
static const struct magic_comment magic_comments[]
#define rb_enc_isascii(c, enc)
#define reg_named_capture_assign(regexp, match)
struct parser_params * parser
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
VALUE rb_get_coverages(void)
static int e_option_supplied(struct parser_params *parser)
static struct vtable * vtable_alloc(struct vtable *prev)
#define token_info_push(token)
static int rb_str_symname_type(VALUE name, unsigned int allowed_atttset)
VALUE rb_obj_as_string(VALUE)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static const yytype_uint16 yyrline[]
#define NEW_UNLESS(c, t, e)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
NODE * rb_parser_compile_file_path(volatile VALUE vparser, VALUE fname, VALUE file, int start)
void st_add_direct(st_table *, st_data_t, st_data_t)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
int rb_is_attrset_id(ID id)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
static NODE * dsym_node_gen(struct parser_params *, NODE *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
void rb_define_const(VALUE, const char *, VALUE)
static NODE * new_attr_op_assign_gen(struct parser_params *parser, NODE *lhs, ID attr, ID op, NODE *rhs)
rb_atomic_t cnt[RUBY_NSIG]
static void no_blockarg(struct parser_params *parser, NODE *node)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
static void parser_tokadd(struct parser_params *parser, int c)
static YYSIZE_T yystrlen(char *yystr) const
static void ripper_init_eventids1(void)
static int sym_check_asciionly(VALUE str)
static ID intern_str(VALUE str)
char ary[RSTRING_EMBED_LEN_MAX+1]
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define ALLOCA_N(type, n)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define warn_balanced(op, syn)
#define NEW_OP_CDECL(v, op, val)
#define ENC_CODERANGE_UNKNOWN
static void void_expr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
#define ENC_CODERANGE_BROKEN
#define rb_enc_isupper(c, enc)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
static VALUE debug_lines(VALUE fname)
#define IS_AFTER_OPERATOR()
const char * parser_lex_pend
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
#define IDSET_ATTRSET_FOR_INTERN
#define set_yylval_num(x)
#define parser_encoding_name()
token_info * parser_token_info
#define new_op_assign(lhs, op, rhs)
VALUE rb_make_backtrace(void)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
#define NEW_WHEN(c, t, e)
static const yytype_int16 yycheck[]
VALUE rb_str_resize(VALUE, long)
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
#define NEW_DASGN(v, val)
#define flush_string_content(enc)
int rb_str_hash_cmp(VALUE, VALUE)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static int parser_yyerror(struct parser_params *, const char *)
#define RUBY_DTRACE_PARSE_END_ENABLED()
#define REALLOC_N(var, type, n)
static const yytype_int16 yypgoto[]
static int parser_tokadd_mbchar(struct parser_params *parser, int c)
void rb_gc_mark_symbols(void)
int rb_symname_p(const char *name)
VALUE rb_sprintf(const char *format,...)
#define NEW_OP_ASGN_OR(i, val)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define rb_enc_isspace(c, enc)
#define ruby_sourcefile_string
#define parser_warning(node, mesg)
#define mixed_error(enc1, enc2)
#define reg_fragment_setenc(str, options)
static int value_expr_gen(struct parser_params *, NODE *)
static const yytype_int16 yyrhs[]
const char * rb_id2name(ID id)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define NEW_RESCUE(b, res, e)
static const char * magic_comment_marker(const char *str, long len)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static const yytype_uint8 yytranslate[]
unsigned char buf[MIME_BUF_SIZE]
static char * parser_newtok(struct parser_params *parser)
static void fixup_nodes(NODE **)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
#define rb_enc_isdigit(c, enc)
unsigned char yytype_uint8
#define list_concat(h, t)
static int options(unsigned char *cp)
#define heredoc_restore(n)
stack_type parser_cond_stack
#define IS_lex_state_for(x, ls)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void ripper_init_eventids2(void)
#define heredoc_identifier()
#define rb_enc_ispunct(c, enc)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
void rb_mark_tbl(st_table *tbl)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define NEW_ENSURE(b, en)
#define token_info_pop(token)
static int arg_var_gen(struct parser_params *, ID)
#define call_bin_op(recv, id, arg1)
#define rb_warn4S(file, line, fmt, a)
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
static VALUE yycompile0(VALUE arg)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
#define assignable_result(x)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
#define ENCODING_IS_ASCII8BIT(obj)
#define dvar_defined_get(id)
#define RUBY_DTRACE_PARSE_BEGIN_ENABLED()
#define rb_enc_isalpha(c, enc)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, NODE *)
static int vtable_included(const struct vtable *tbl, ID id)
ID rb_intern(const char *name)
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
#define parser_is_identchar()
#define set_yylval_node(x)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void vtable_free(struct vtable *tbl)
static int rb_enc_symname_type(const char *name, long len, rb_encoding *enc, unsigned int allowed_atttset)
#define reg_fragment_check(str, options)
VALUE rb_usascii_str_new2(const char *)
const struct vtable * vars
int rb_const_defined_at(VALUE, ID)
st_table * st_init_table_with_size(const struct st_hash_type *, st_index_t)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define YYSTACK_ALLOC_MAXIMUM
#define set_yylval_name(x)
#define NEW_GASGN(v, val)
static const struct @96 op_tbl[]
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
static void parser_pushback(struct parser_params *parser, int c)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
static const yytype_uint16 yydefact[]
static int parser_here_document(struct parser_params *, NODE *)
int rb_is_const_name(VALUE name)
static NODE * ret_args_gen(struct parser_params *, NODE *)
void rb_set_errinfo(VALUE err)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
NODE * parser_lex_strterm
int rb_is_global_id(ID id)
static void local_pop_gen(struct parser_params *)
static int simple_re_meta(int c)
#define NEW_UNTIL(c, b, n)
#define new_attr_op_assign(lhs, type, attr, op, rhs)
#define aryset(node1, node2)
static const struct st_hash_type symhash
#define list_append(l, i)
#define tokaddmbc(c, enc)
#define STR_NEW3(p, n, e, func)
static const yytype_int16 yypact[]
void rb_compile_warning(const char *file, int line, const char *fmt,...)
VALUE rb_check_string_type(VALUE)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define yypact_value_is_default(yystate)
static int symbols_i(VALUE sym, ID value, VALUE ary)
static void parser_prepare(struct parser_params *parser)
static struct parser_params * parser_new(void)
#define NEW_WHILE(c, b, n)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
#define new_args(f, o, r, p, t)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define NEW_POSTARG(i, v)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
VALUE rb_parser_new(void)
static void void_stmts_gen(struct parser_params *, NODE *)
struct rb_encoding_entry * list
static const yytype_int16 yydefgoto[]
static NODE * parser_compile_string(volatile VALUE vparser, VALUE fname, VALUE s, int line)
#define NEW_CVASGN(v, val)
static int yylex(void *, void *)
int rb_is_global_name(VALUE name)
#define NEW_OP_ASGN2(r, i, o, val)
#define NEW_MATCH3(r, n2)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define node_assign(node1, node2)
#define NEW_OPT_ARG(i, v)
static unsigned int hash(const char *str, unsigned int len)
static int parser_parse_string(struct parser_params *, NODE *)
VALUE rb_ary_new2(long capa)
VALUE rb_filesystem_str_new_cstr(const char *)
#define ruby_eval_tree_begin
#define is_instance_id(id)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
ID rb_intern2(const char *name, long len)
const char * parser_lex_pbeg
static NODE * cond_gen(struct parser_params *, NODE *)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_const_get_at(VALUE, ID)
static int is_private_local_id(ID name)
static int comment_at_top(struct parser_params *parser)
const char * parser_lex_p
static void dispose_string(VALUE str)
static int parser_nextc(struct parser_params *parser)
#define read_escape(flags, e)
static const char *const yytname[]
static char * yystpcpy(char *yydest, const char *yysrc)
int parser_ruby_sourceline
#define call_uni_op(recv, id)
static ID register_symid_str(ID, VALUE)
#define StringValuePtr(v)
static ID shadowing_lvar_gen(struct parser_params *, ID)
VALUE rb_str_new_frozen(VALUE)
static int token_info_get_column(struct parser_params *parser, const char *token)
unsigned char yytype_uint8
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static NODE * yycompile(struct parser_params *parser, VALUE fname, int line)
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
static void vtable_add(struct vtable *tbl, ID id)
int rb_is_class_id(ID id)
#define NEW_CALL(r, m, a)
static const yytype_uint16 yystos[]
static int is_static_content(NODE *node)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_enc_find_index(const char *name)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_parser_end_seen_p(VALUE vparser)
static int parser_heredoc_identifier(struct parser_params *parser)
int rb_is_const_id(ID id)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
static const struct vtable * dyna_push_gen(struct parser_params *)
#define CONST_ID(var, str)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_str_intern(VALUE)
#define NEW_MATCH2(n1, n2)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
static void new_bv_gen(struct parser_params *, ID)
#define assignable(id, node)
st_table * st_init_numtable_with_size(st_index_t)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static NODE * range_op(struct parser_params *parser, NODE *node)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
ID rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
int rb_parse_in_eval(void)
NODE * rb_compile_file(const char *f, VALUE file, int start)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define rb_node_newnode(type, a1, a2, a3)
#define nd_set_line(n, l)
VALUE rb_vsprintf(const char *, va_list)
#define block_append(h, t)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
struct token_info token_info
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_hash_aset(VALUE, VALUE, VALUE)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
int rb_is_instance_id(ID id)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define ENCODING_SET(obj, i)
int rb_local_defined(ID id)
#define IS_LABEL_SUFFIX(n)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
NODE * rb_parser_compile_string_path(volatile VALUE vparser, VALUE f, VALUE s, int line)
static VALUE lex_getline(struct parser_params *parser)
VALUE rb_sym_all_symbols(void)
#define rb_enc_prev_char(s, p, e, enc)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static int parser_peek_variable_name(struct parser_params *parser)
VALUE rb_attr_get(VALUE, ID)
#define is_attrset_id(id)
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#define NEW_CDECL(v, val, path)
#define rb_backref_error(n)
#define NEW_DEFS(r, i, a, d)
static void ripper_init_eventids2_table(VALUE self)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
static NODE * new_args_tail_gen(struct parser_params *, NODE *, ID, ID)
#define rb_warningS(fmt, a)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
rb_encoding * rb_enc_from_index(int index)
VALUE rb_str_new(const char *, long)