47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYLSP_NEEDED 0
73 #define YYERROR_VERBOSE 1
74 #define YYSTACK_USE_ALLOCA 0
88 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
90 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
91 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
92 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
93 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
94 #define malloc YYMALLOC
95 #define realloc YYREALLOC
96 #define calloc YYCALLOC
101 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
105 #define is_notop_id(id) ((id)>tLAST_TOKEN)
106 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
107 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
108 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
109 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
110 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
111 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
112 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
114 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
115 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
116 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
117 ((id)&ID_SCOPE_MASK) == ID_CLASS))
136 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
137 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
138 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
139 # define BITSTACK_SET_P(stack) ((stack)&1)
141 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
142 #define COND_POP() BITSTACK_POP(cond_stack)
143 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
144 #define COND_P() BITSTACK_SET_P(cond_stack)
146 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
147 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
148 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
149 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
166 #define DVARS_INHERIT ((void*)1)
167 #define DVARS_TOPSCOPE NULL
168 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
169 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
192 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
199 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
212 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
229 for (i = 0; i < tbl->
pos; i++) {
230 if (tbl->
tbl[i] ==
id) {
314 VALUE parser_ruby_sourcefile_string;
322 VALUE parsing_thread;
327 #define UTF8_ENC() (parser->utf8 ? parser->utf8 : \
328 (parser->utf8 = rb_utf8_encoding()))
329 #define STR_NEW(p,n) rb_enc_str_new((p),(n),parser->enc)
330 #define STR_NEW0() rb_enc_str_new(0,0,parser->enc)
331 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),parser->enc)
332 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),parser->enc)
333 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
334 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), parser->enc)
337 #define yyerror(msg) parser_yyerror(parser, (msg))
339 #define lex_strterm (parser->parser_lex_strterm)
340 #define lex_state (parser->parser_lex_state)
341 #define cond_stack (parser->parser_cond_stack)
342 #define cmdarg_stack (parser->parser_cmdarg_stack)
343 #define class_nest (parser->parser_class_nest)
344 #define paren_nest (parser->parser_paren_nest)
345 #define lpar_beg (parser->parser_lpar_beg)
346 #define in_single (parser->parser_in_single)
347 #define in_def (parser->parser_in_def)
348 #define compile_for_eval (parser->parser_compile_for_eval)
349 #define cur_mid (parser->parser_cur_mid)
350 #define in_defined (parser->parser_in_defined)
351 #define tokenbuf (parser->parser_tokenbuf)
352 #define tokidx (parser->parser_tokidx)
353 #define toksiz (parser->parser_toksiz)
354 #define lex_input (parser->parser_lex_input)
355 #define lex_lastline (parser->parser_lex_lastline)
356 #define lex_nextline (parser->parser_lex_nextline)
357 #define lex_pbeg (parser->parser_lex_pbeg)
358 #define lex_p (parser->parser_lex_p)
359 #define lex_pend (parser->parser_lex_pend)
360 #define heredoc_end (parser->parser_heredoc_end)
361 #define command_start (parser->parser_command_start)
362 #define deferred_nodes (parser->parser_deferred_nodes)
363 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
364 #define lex_gets (parser->parser_lex_gets)
365 #define lvtbl (parser->parser_lvtbl)
366 #define ruby__end__seen (parser->parser_ruby__end__seen)
367 #define ruby_sourceline (parser->parser_ruby_sourceline)
368 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
369 #define current_enc (parser->enc)
370 #define yydebug (parser->parser_yydebug)
373 #define ruby_eval_tree (parser->parser_eval_tree)
374 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
375 #define ruby_debug_lines (parser->debug_lines)
376 #define ruby_coverage (parser->coverage)
380 static int yylex(
void*,
void*);
382 static int yylex(
void*);
386 #define yyparse ruby_yyparse
389 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
392 #define cond(node) cond_gen(parser, (node))
394 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
402 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
403 #define void_expr0(node) void_expr_gen(parser, (node))
404 #define void_expr(node) void_expr0((node) = remove_begin(node))
406 #define void_stmts(node) void_stmts_gen(parser, (node))
408 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
410 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
413 #define block_append(h,t) block_append_gen(parser,(h),(t))
415 #define list_append(l,i) list_append_gen(parser,(l),(i))
417 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
419 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
421 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
423 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
426 #define new_evstr(n) new_evstr_gen(parser,(n))
428 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
432 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
434 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
437 #define new_args(f,o,r,p,b) new_args_gen(parser, (f),(o),(r),(p),(b))
441 #define ret_args(node) ret_args_gen(parser, (node))
444 #define new_yield(node) new_yield_gen(parser, (node))
447 #define gettable(id) gettable_gen(parser,(id))
449 #define assignable(id,node) assignable_gen(parser, (id), (node))
452 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
454 #define attrset(node,id) attrset_gen(parser, (node), (id))
457 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
459 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
462 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
465 #define local_tbl() local_tbl_gen(parser)
470 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
472 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
474 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
476 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
478 #define get_id(id) (id)
479 #define get_value(val) (val)
481 #define remove_begin(node) (node)
482 #define rb_dvar_defined(id) 0
483 #define rb_local_defined(id) 0
484 static ID ripper_get_id(
VALUE);
485 #define get_id(id) ripper_get_id(id)
487 #define get_value(val) ripper_get_value(val)
489 #define assignable(lhs,node) assignable_gen(parser, (lhs))
491 #define id_is_var(id) id_is_var_gen(parser, (id))
495 #define formal_argument(id) formal_argument_gen(parser, (id))
497 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
499 #define new_bv(id) new_bv_gen(parser, (id))
502 #define local_push(top) local_push_gen(parser,(top))
504 #define local_pop() local_pop_gen(parser)
506 #define local_var(id) local_var_gen(parser, (id));
508 #define arg_var(id) arg_var_gen(parser, (id))
510 #define local_id(id) local_id_gen(parser, (id))
512 #define internal_id() internal_id_gen(parser)
515 #define dyna_push() dyna_push_gen(parser)
517 #define dyna_pop(node) dyna_pop_gen(parser, (node))
519 #define dyna_in_block() dyna_in_block_gen(parser)
520 #define dyna_var(id) local_var(id)
522 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
523 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
525 #define dvar_curr(id) dvar_curr_gen(parser, (id))
528 #define lvar_defined(id) lvar_defined_gen(parser, (id))
530 #define RE_OPTION_ONCE (1<<16)
531 #define RE_OPTION_ENCODING_SHIFT 8
532 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
533 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
534 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
535 #define RE_OPTION_MASK 0xff
536 #define RE_OPTION_ARG_ENCODING_NONE 32
538 #define NODE_STRTERM NODE_ZARRAY
539 #define NODE_HEREDOC NODE_ARRAY
540 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
541 #define nd_func u1.id
542 #if SIZEOF_SHORT == 2
543 #define nd_term(node) ((signed short)(node)->u2.id)
545 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
547 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
548 #define nd_nest u3.cnt
553 #define RIPPER_VERSION "0.1.0"
557 static ID ripper_id_gets;
566 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
567 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
568 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
569 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
570 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
571 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
573 #define yyparse ripper_yyparse
575 #define ripper_intern(s) ID2SYM(rb_intern(s))
578 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
579 ID2SYM(id) : ripper_id2sym(id))
582 #define arg_new() dispatch0(args_new)
583 #define arg_add(l,a) dispatch2(args_add, (l), (a))
584 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
585 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
586 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
587 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
588 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
590 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
591 #define mrhs_new() dispatch0(mrhs_new)
592 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
593 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
595 #define mlhs_new() dispatch0(mlhs_new)
596 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
597 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
599 #define params_new(pars, opts, rest, pars2, blk) \
600 dispatch5(params, (pars), (opts), (rest), (pars2), (blk))
602 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
603 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
604 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
606 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
607 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
608 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
610 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
617 # define ifndef_ripper(x) (x)
619 # define ifndef_ripper(x)
623 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
624 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
625 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
626 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
627 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
629 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
630 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
631 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
632 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
633 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
634 static void ripper_warn0(
struct parser_params*,
const char*);
635 static void ripper_warnI(
struct parser_params*,
const char*,
int);
637 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
639 static void ripper_warning0(
struct parser_params*,
const char*);
640 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
644 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
645 # define rb_compile_error ripper_compile_error
646 # define compile_error ripper_compile_error
647 # define PARSER_ARG parser,
649 # define rb_compile_error rb_compile_error_with_enc
650 # define compile_error parser->nerr++,rb_compile_error_with_enc
651 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
659 #define YYMAXDEPTH 10000
666 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
667 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
669 #define token_info_push(token)
670 #define token_info_pop(token)
683 #ifdef YYERROR_VERBOSE
684 # undef YYERROR_VERBOSE
685 # define YYERROR_VERBOSE 1
687 # define YYERROR_VERBOSE 0
691 #ifndef YYTOKEN_TABLE
692 # define YYTOKEN_TABLE 0
825 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
843 # define YYSTYPE_IS_TRIVIAL 1
844 # define yystype YYSTYPE
845 # define YYSTYPE_IS_DECLARED 1
867 #elif (defined __STDC__ || defined __C99__FUNC__ \
868 || defined __cplusplus || defined _MSC_VER)
887 # ifdef __SIZE_TYPE__
888 # define YYSIZE_T __SIZE_TYPE__
889 # elif defined size_t
890 # define YYSIZE_T size_t
891 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
892 || defined __cplusplus || defined _MSC_VER)
894 # define YYSIZE_T size_t
896 # define YYSIZE_T unsigned int
900 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
903 # if defined YYENABLE_NLS && YYENABLE_NLS
905 # include <libintl.h>
906 # define YY_(msgid) dgettext ("bison-runtime", msgid)
910 # define YY_(msgid) msgid
915 #if ! defined lint || defined __GNUC__
916 # define YYUSE(e) ((void) (e))
925 #if (defined __STDC__ || defined __C99__FUNC__ \
926 || defined __cplusplus || defined _MSC_VER)
939 #if ! defined yyoverflow || YYERROR_VERBOSE
943 # ifdef YYSTACK_USE_ALLOCA
944 # if YYSTACK_USE_ALLOCA
946 # define YYSTACK_ALLOC __builtin_alloca
947 # elif defined __BUILTIN_VA_ARG_INCR
950 # define YYSTACK_ALLOC __alloca
951 # elif defined _MSC_VER
953 # define alloca _alloca
955 # define YYSTACK_ALLOC alloca
956 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
957 || defined __cplusplus || defined _MSC_VER)
959 # ifndef EXIT_SUCCESS
960 # define EXIT_SUCCESS 0
967 # ifdef YYSTACK_ALLOC
969 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
970 # ifndef YYSTACK_ALLOC_MAXIMUM
975 # define YYSTACK_ALLOC_MAXIMUM 4032
978 # define YYSTACK_ALLOC YYMALLOC
979 # define YYSTACK_FREE YYFREE
980 # ifndef YYSTACK_ALLOC_MAXIMUM
981 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
983 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
984 && ! ((defined YYMALLOC || defined malloc) \
985 && (defined YYFREE || defined free)))
987 # ifndef EXIT_SUCCESS
988 # define EXIT_SUCCESS 0
992 # define YYMALLOC malloc
993 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
994 || defined __cplusplus || defined _MSC_VER)
1000 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1001 || defined __cplusplus || defined _MSC_VER)
1009 #if (! defined yyoverflow \
1010 && (! defined __cplusplus \
1011 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1021 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1025 # define YYSTACK_BYTES(N) \
1026 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1027 + YYSTACK_GAP_MAXIMUM)
1029 # define YYCOPY_NEEDED 1
1036 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1039 YYSIZE_T yynewbytes; \
1040 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1041 Stack = &yyptr->Stack_alloc; \
1042 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1043 yyptr += yynewbytes / sizeof (*yyptr); \
1049 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1053 # if defined __GNUC__ && 1 < __GNUC__
1054 # define YYCOPY(To, From, Count) \
1055 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1057 # define YYCOPY(To, From, Count) \
1061 for (yyi = 0; yyi < (Count); yyi++) \
1062 (To)[yyi] = (From)[yyi]; \
1072 #define YYLAST 10748
1075 #define YYNTOKENS 148
1079 #define YYNRULES 573
1081 #define YYNSTATES 991
1084 #define YYUNDEFTOK 2
1085 #define YYMAXUTOK 375
1087 #define YYTRANSLATE(YYX) \
1088 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1093 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1094 147, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1095 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1096 2, 2, 146, 123, 2, 2, 2, 121, 116, 2,
1097 142, 143, 119, 117, 140, 118, 139, 120, 2, 2,
1098 2, 2, 2, 2, 2, 2, 2, 2, 111, 145,
1099 113, 109, 112, 110, 2, 2, 2, 2, 2, 2,
1100 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1102 2, 138, 2, 144, 115, 2, 141, 2, 2, 2,
1103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1104 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1105 2, 2, 2, 136, 114, 137, 124, 2, 2, 2,
1106 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1107 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1108 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1112 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1113 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1115 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1116 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1117 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1118 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1119 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1120 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1121 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1122 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1123 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1124 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1125 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1126 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1127 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1128 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1129 105, 106, 107, 108, 122, 125, 126, 127, 128, 129,
1130 130, 131, 132, 133, 134, 135
1138 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1139 23, 24, 30, 35, 38, 40, 42, 46, 49, 50,
1140 55, 59, 63, 67, 70, 74, 78, 82, 86, 90,
1141 95, 97, 101, 105, 112, 118, 124, 130, 136, 140,
1142 144, 148, 152, 154, 158, 162, 164, 168, 172, 176,
1143 179, 181, 183, 185, 187, 189, 194, 199, 200, 206,
1144 209, 213, 218, 224, 229, 235, 238, 241, 244, 247,
1145 250, 252, 256, 258, 262, 264, 267, 271, 277, 280,
1146 285, 288, 293, 295, 299, 301, 305, 308, 312, 314,
1147 318, 320, 322, 327, 331, 335, 339, 343, 346, 348,
1148 350, 352, 357, 361, 365, 369, 373, 376, 378, 380,
1149 382, 385, 387, 391, 393, 395, 397, 399, 401, 403,
1150 405, 407, 409, 411, 412, 417, 419, 421, 423, 425,
1151 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1152 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1153 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1154 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1155 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1156 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1157 547, 549, 551, 553, 555, 557, 561, 567, 571, 577,
1158 584, 590, 596, 602, 608, 613, 617, 621, 625, 629,
1159 633, 637, 641, 645, 649, 654, 659, 662, 665, 669,
1160 673, 677, 681, 685, 689, 693, 697, 701, 705, 709,
1161 713, 717, 720, 723, 727, 731, 735, 739, 740, 745,
1162 752, 754, 756, 758, 761, 766, 769, 773, 775, 777,
1163 779, 781, 784, 789, 792, 794, 797, 800, 805, 807,
1164 808, 811, 814, 817, 819, 821, 824, 828, 833, 837,
1165 842, 845, 847, 849, 851, 853, 855, 857, 859, 861,
1166 863, 864, 869, 870, 875, 879, 883, 886, 890, 894,
1167 896, 901, 905, 907, 908, 915, 920, 924, 927, 929,
1168 932, 935, 942, 949, 950, 951, 959, 960, 961, 969,
1169 975, 980, 981, 982, 992, 993, 1000, 1001, 1002, 1011,
1170 1012, 1018, 1019, 1026, 1027, 1028, 1038, 1040, 1042, 1044,
1171 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064,
1172 1066, 1068, 1070, 1072, 1074, 1077, 1079, 1081, 1083, 1089,
1173 1091, 1094, 1096, 1098, 1100, 1104, 1106, 1110, 1112, 1117,
1174 1124, 1128, 1134, 1137, 1142, 1144, 1148, 1155, 1164, 1169,
1175 1176, 1181, 1184, 1191, 1194, 1199, 1206, 1209, 1214, 1217,
1176 1222, 1224, 1226, 1228, 1232, 1234, 1239, 1241, 1244, 1246,
1177 1250, 1252, 1254, 1255, 1256, 1261, 1266, 1268, 1272, 1276,
1178 1277, 1283, 1286, 1291, 1296, 1299, 1304, 1309, 1313, 1317,
1179 1321, 1324, 1326, 1331, 1332, 1338, 1339, 1345, 1351, 1353,
1180 1355, 1362, 1364, 1366, 1368, 1370, 1373, 1375, 1378, 1380,
1181 1382, 1384, 1386, 1388, 1390, 1392, 1395, 1399, 1403, 1407,
1182 1411, 1415, 1416, 1420, 1422, 1425, 1429, 1433, 1434, 1438,
1183 1439, 1442, 1443, 1446, 1447, 1450, 1452, 1453, 1457, 1458,
1184 1459, 1465, 1467, 1469, 1471, 1473, 1476, 1478, 1480, 1482,
1185 1484, 1488, 1490, 1492, 1495, 1498, 1500, 1502, 1504, 1506,
1186 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526,
1187 1528, 1530, 1532, 1534, 1536, 1537, 1542, 1545, 1549, 1552,
1188 1559, 1568, 1573, 1580, 1585, 1592, 1595, 1600, 1607, 1610,
1189 1615, 1618, 1623, 1625, 1626, 1628, 1630, 1632, 1634, 1636,
1190 1638, 1640, 1644, 1646, 1650, 1654, 1658, 1660, 1664, 1666,
1191 1670, 1672, 1674, 1677, 1679, 1681, 1683, 1686, 1689, 1691,
1192 1693, 1694, 1699, 1701, 1704, 1706, 1710, 1714, 1717, 1719,
1193 1721, 1723, 1725, 1727, 1729, 1731, 1733, 1735, 1737, 1739,
1194 1741, 1742, 1744, 1745, 1747, 1750, 1753, 1754, 1756, 1758,
1195 1760, 1762, 1764, 1767
1201 149, 0, -1, -1, 150, 151, -1, 152, 314, -1,
1202 321, -1, 153, -1, 152, 320, 153, -1, 1, 153,
1203 -1, 158, -1, -1, 47, 154, 136, 151, 137, -1,
1204 156, 256, 231, 259, -1, 157, 314, -1, 321, -1,
1205 158, -1, 157, 320, 158, -1, 1, 158, -1, -1,
1206 45, 180, 159, 180, -1, 45, 54, 54, -1, 45,
1207 54, 64, -1, 45, 54, 63, -1, 6, 181, -1,
1208 158, 40, 162, -1, 158, 41, 162, -1, 158, 42,
1209 162, -1, 158, 43, 162, -1, 158, 44, 158, -1,
1210 48, 136, 156, 137, -1, 160, -1, 168, 109, 163,
1211 -1, 286, 87, 163, -1, 216, 138, 191, 317, 87,
1212 163, -1, 216, 139, 52, 87, 163, -1, 216, 139,
1213 56, 87, 163, -1, 216, 85, 56, 87, 163, -1,
1214 216, 85, 52, 87, 163, -1, 287, 87, 163, -1,
1215 175, 109, 198, -1, 168, 109, 187, -1, 168, 109,
1216 198, -1, 161, -1, 175, 109, 163, -1, 175, 109,
1217 160, -1, 163, -1, 161, 37, 161, -1, 161, 38,
1218 161, -1, 39, 315, 161, -1, 123, 163, -1, 185,
1219 -1, 161, -1, 167, -1, 164, -1, 249, -1, 249,
1220 139, 311, 193, -1, 249, 85, 311, 193, -1, -1,
1221 94, 166, 237, 156, 137, -1, 310, 193, -1, 310,
1222 193, 165, -1, 216, 139, 311, 193, -1, 216, 139,
1223 311, 193, 165, -1, 216, 85, 311, 193, -1, 216,
1224 85, 311, 193, 165, -1, 32, 193, -1, 31, 193,
1225 -1, 30, 192, -1, 21, 192, -1, 22, 192, -1,
1226 170, -1, 89, 169, 316, -1, 170, -1, 89, 169,
1227 316, -1, 172, -1, 172, 171, -1, 172, 95, 174,
1228 -1, 172, 95, 174, 140, 173, -1, 172, 95, -1,
1229 172, 95, 140, 173, -1, 95, 174, -1, 95, 174,
1230 140, 173, -1, 95, -1, 95, 140, 173, -1, 174,
1231 -1, 89, 169, 316, -1, 171, 140, -1, 172, 171,
1232 140, -1, 171, -1, 173, 140, 171, -1, 283, -1,
1233 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1234 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1235 85, 56, -1, 86, 56, -1, 287, -1, 283, -1,
1236 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1237 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1238 85, 56, -1, 86, 56, -1, 287, -1, 52, -1,
1239 56, -1, 86, 176, -1, 176, -1, 216, 85, 176,
1240 -1, 52, -1, 56, -1, 53, -1, 183, -1, 184,
1241 -1, 178, -1, 279, -1, 179, -1, 281, -1, 180,
1242 -1, -1, 181, 140, 182, 180, -1, 114, -1, 115,
1243 -1, 116, -1, 69, -1, 70, -1, 71, -1, 77,
1244 -1, 78, -1, 112, -1, 73, -1, 113, -1, 74,
1245 -1, 72, -1, 83, -1, 84, -1, 117, -1, 118,
1246 -1, 119, -1, 95, -1, 120, -1, 121, -1, 68,
1247 -1, 123, -1, 124, -1, 66, -1, 67, -1, 81,
1248 -1, 82, -1, 141, -1, 49, -1, 50, -1, 51,
1249 -1, 47, -1, 48, -1, 45, -1, 37, -1, 7,
1250 -1, 21, -1, 16, -1, 3, -1, 5, -1, 46,
1251 -1, 26, -1, 15, -1, 14, -1, 10, -1, 9,
1252 -1, 36, -1, 20, -1, 25, -1, 4, -1, 22,
1253 -1, 34, -1, 39, -1, 38, -1, 23, -1, 8,
1254 -1, 24, -1, 30, -1, 33, -1, 32, -1, 13,
1255 -1, 35, -1, 6, -1, 17, -1, 31, -1, 11,
1256 -1, 12, -1, 18, -1, 19, -1, 175, 109, 185,
1257 -1, 175, 109, 185, 44, 185, -1, 286, 87, 185,
1258 -1, 286, 87, 185, 44, 185, -1, 216, 138, 191,
1259 317, 87, 185, -1, 216, 139, 52, 87, 185, -1,
1260 216, 139, 56, 87, 185, -1, 216, 85, 52, 87,
1261 185, -1, 216, 85, 56, 87, 185, -1, 86, 56,
1262 87, 185, -1, 287, 87, 185, -1, 185, 79, 185,
1263 -1, 185, 80, 185, -1, 185, 117, 185, -1, 185,
1264 118, 185, -1, 185, 119, 185, -1, 185, 120, 185,
1265 -1, 185, 121, 185, -1, 185, 68, 185, -1, 122,
1266 59, 68, 185, -1, 122, 60, 68, 185, -1, 66,
1267 185, -1, 67, 185, -1, 185, 114, 185, -1, 185,
1268 115, 185, -1, 185, 116, 185, -1, 185, 69, 185,
1269 -1, 185, 112, 185, -1, 185, 73, 185, -1, 185,
1270 113, 185, -1, 185, 74, 185, -1, 185, 70, 185,
1271 -1, 185, 71, 185, -1, 185, 72, 185, -1, 185,
1272 77, 185, -1, 185, 78, 185, -1, 123, 185, -1,
1273 124, 185, -1, 185, 83, 185, -1, 185, 84, 185,
1274 -1, 185, 75, 185, -1, 185, 76, 185, -1, -1,
1275 46, 315, 186, 185, -1, 185, 110, 185, 315, 111,
1276 185, -1, 199, -1, 185, -1, 321, -1, 197, 318,
1277 -1, 197, 140, 308, 318, -1, 308, 318, -1, 142,
1278 191, 316, -1, 321, -1, 189, -1, 321, -1, 192,
1279 -1, 197, 140, -1, 197, 140, 308, 140, -1, 308,
1280 140, -1, 167, -1, 197, 196, -1, 308, 196, -1,
1281 197, 140, 308, 196, -1, 195, -1, -1, 194, 192,
1282 -1, 96, 187, -1, 140, 195, -1, 321, -1, 187,
1283 -1, 95, 187, -1, 197, 140, 187, -1, 197, 140,
1284 95, 187, -1, 197, 140, 187, -1, 197, 140, 95,
1285 187, -1, 95, 187, -1, 260, -1, 261, -1, 264,
1286 -1, 265, -1, 266, -1, 269, -1, 285, -1, 287,
1287 -1, 53, -1, -1, 217, 200, 155, 227, -1, -1,
1288 90, 161, 201, 316, -1, 89, 156, 143, -1, 216,
1289 85, 56, -1, 86, 56, -1, 92, 188, 144, -1,
1290 93, 307, 137, -1, 30, -1, 31, 142, 192, 316,
1291 -1, 31, 142, 316, -1, 31, -1, -1, 46, 315,
1292 142, 202, 161, 316, -1, 39, 142, 161, 316, -1,
1293 39, 142, 316, -1, 310, 251, -1, 250, -1, 250,
1294 251, -1, 97, 242, -1, 218, 162, 228, 156, 230,
1295 227, -1, 219, 162, 228, 156, 231, 227, -1, -1,
1296 -1, 220, 203, 162, 229, 204, 156, 227, -1, -1,
1297 -1, 221, 205, 162, 229, 206, 156, 227, -1, 222,
1298 162, 314, 254, 227, -1, 222, 314, 254, 227, -1,
1299 -1, -1, 223, 232, 25, 207, 162, 229, 208, 156,
1300 227, -1, -1, 224, 177, 288, 209, 155, 227, -1,
1301 -1, -1, 224, 83, 161, 210, 319, 211, 155, 227,
1302 -1, -1, 225, 177, 212, 155, 227, -1, -1, 226,
1303 178, 213, 290, 155, 227, -1, -1, -1, 226, 305,
1304 313, 214, 178, 215, 290, 155, 227, -1, 21, -1,
1305 22, -1, 23, -1, 24, -1, 199, -1, 7, -1,
1306 11, -1, 12, -1, 18, -1, 19, -1, 16, -1,
1307 20, -1, 3, -1, 4, -1, 5, -1, 10, -1,
1308 319, -1, 13, -1, 319, 13, -1, 319, -1, 27,
1309 -1, 231, -1, 14, 162, 228, 156, 230, -1, 321,
1310 -1, 15, 156, -1, 175, -1, 168, -1, 293, -1,
1311 89, 235, 316, -1, 233, -1, 234, 140, 233, -1,
1312 234, -1, 234, 140, 95, 293, -1, 234, 140, 95,
1313 293, 140, 234, -1, 234, 140, 95, -1, 234, 140,
1314 95, 140, 234, -1, 95, 293, -1, 95, 293, 140,
1315 234, -1, 95, -1, 95, 140, 234, -1, 295, 140,
1316 298, 140, 301, 304, -1, 295, 140, 298, 140, 301,
1317 140, 295, 304, -1, 295, 140, 298, 304, -1, 295,
1318 140, 298, 140, 295, 304, -1, 295, 140, 301, 304,
1319 -1, 295, 140, -1, 295, 140, 301, 140, 295, 304,
1320 -1, 295, 304, -1, 298, 140, 301, 304, -1, 298,
1321 140, 301, 140, 295, 304, -1, 298, 304, -1, 298,
1322 140, 295, 304, -1, 301, 304, -1, 301, 140, 295,
1323 304, -1, 303, -1, 321, -1, 238, -1, 114, 239,
1324 114, -1, 76, -1, 114, 236, 239, 114, -1, 321,
1325 -1, 145, 240, -1, 241, -1, 240, 140, 241, -1,
1326 52, -1, 292, -1, -1, -1, 243, 244, 245, 246,
1327 -1, 142, 291, 239, 316, -1, 291, -1, 107, 156,
1328 137, -1, 29, 156, 10, -1, -1, 28, 248, 237,
1329 156, 10, -1, 167, 247, -1, 249, 139, 311, 190,
1330 -1, 249, 85, 311, 190, -1, 310, 189, -1, 216,
1331 139, 311, 190, -1, 216, 85, 311, 189, -1, 216,
1332 85, 312, -1, 216, 139, 189, -1, 216, 85, 189,
1333 -1, 32, 189, -1, 32, -1, 216, 138, 191, 317,
1334 -1, -1, 136, 252, 237, 156, 137, -1, -1, 26,
1335 253, 237, 156, 10, -1, 17, 197, 228, 156, 255,
1336 -1, 231, -1, 254, -1, 8, 257, 258, 228, 156,
1337 256, -1, 321, -1, 187, -1, 198, -1, 321, -1,
1338 88, 175, -1, 321, -1, 9, 156, -1, 321, -1,
1339 282, -1, 279, -1, 281, -1, 262, -1, 62, -1,
1340 263, -1, 262, 263, -1, 99, 271, 106, -1, 100,
1341 272, 106, -1, 101, 273, 65, -1, 102, 146, 106,
1342 -1, 102, 267, 106, -1, -1, 267, 268, 146, -1,
1343 274, -1, 268, 274, -1, 103, 146, 106, -1, 103,
1344 270, 106, -1, -1, 270, 61, 146, -1, -1, 271,
1345 274, -1, -1, 272, 274, -1, -1, 273, 274, -1,
1346 61, -1, -1, 105, 275, 278, -1, -1, -1, 104,
1347 276, 277, 156, 137, -1, 54, -1, 55, -1, 57,
1348 -1, 287, -1, 98, 280, -1, 178, -1, 55, -1,
1349 54, -1, 57, -1, 98, 272, 106, -1, 59, -1,
1350 60, -1, 122, 59, -1, 122, 60, -1, 52, -1,
1351 55, -1, 54, -1, 56, -1, 57, -1, 34, -1,
1352 33, -1, 35, -1, 36, -1, 50, -1, 49, -1,
1353 51, -1, 283, -1, 284, -1, 283, -1, 284, -1,
1354 63, -1, 64, -1, 319, -1, -1, 113, 289, 162,
1355 319, -1, 1, 319, -1, 142, 291, 316, -1, 291,
1356 319, -1, 295, 140, 299, 140, 301, 304, -1, 295,
1357 140, 299, 140, 301, 140, 295, 304, -1, 295, 140,
1358 299, 304, -1, 295, 140, 299, 140, 295, 304, -1,
1359 295, 140, 301, 304, -1, 295, 140, 301, 140, 295,
1360 304, -1, 295, 304, -1, 299, 140, 301, 304, -1,
1361 299, 140, 301, 140, 295, 304, -1, 299, 304, -1,
1362 299, 140, 295, 304, -1, 301, 304, -1, 301, 140,
1363 295, 304, -1, 303, -1, -1, 56, -1, 55, -1,
1364 54, -1, 57, -1, 292, -1, 52, -1, 293, -1,
1365 89, 235, 316, -1, 294, -1, 295, 140, 294, -1,
1366 52, 109, 187, -1, 52, 109, 216, -1, 297, -1,
1367 298, 140, 297, -1, 296, -1, 299, 140, 296, -1,
1368 119, -1, 95, -1, 300, 52, -1, 300, -1, 116,
1369 -1, 96, -1, 302, 52, -1, 140, 303, -1, 321,
1370 -1, 285, -1, -1, 142, 306, 161, 316, -1, 321,
1371 -1, 308, 318, -1, 309, -1, 308, 140, 309, -1,
1372 187, 88, 187, -1, 58, 187, -1, 52, -1, 56,
1373 -1, 53, -1, 52, -1, 56, -1, 53, -1, 183,
1374 -1, 52, -1, 53, -1, 183, -1, 139, -1, 85,
1375 -1, -1, 320, -1, -1, 147, -1, 315, 143, -1,
1376 315, 144, -1, -1, 147, -1, 140, -1, 145, -1,
1377 147, -1, 319, -1, 320, 145, -1, -1
1383 0, 786, 786, 786, 817, 828, 837, 845, 853, 859,
1384 861, 860, 884, 917, 928, 937, 945, 953, 959, 959,
1385 967, 975, 986, 996, 1004, 1013, 1022, 1035, 1048, 1057,
1386 1069, 1070, 1080, 1109, 1130, 1147, 1164, 1175, 1192, 1202,
1387 1211, 1220, 1229, 1232, 1241, 1253, 1254, 1262, 1270, 1278,
1388 1286, 1289, 1301, 1302, 1305, 1306, 1315, 1327, 1326, 1348,
1389 1357, 1369, 1378, 1390, 1399, 1411, 1420, 1429, 1437, 1445,
1390 1455, 1456, 1466, 1467, 1477, 1485, 1493, 1501, 1510, 1518,
1391 1527, 1535, 1544, 1552, 1563, 1564, 1574, 1582, 1592, 1600,
1392 1610, 1614, 1618, 1626, 1634, 1642, 1650, 1662, 1672, 1684,
1393 1693, 1702, 1710, 1718, 1726, 1734, 1747, 1760, 1771, 1779,
1394 1782, 1790, 1798, 1808, 1809, 1810, 1811, 1816, 1827, 1828,
1395 1831, 1839, 1842, 1850, 1850, 1860, 1861, 1862, 1863, 1864,
1396 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874,
1397 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884,
1398 1885, 1886, 1887, 1888, 1891, 1891, 1891, 1892, 1892, 1893,
1399 1893, 1893, 1894, 1894, 1894, 1894, 1895, 1895, 1895, 1895,
1400 1896, 1896, 1896, 1897, 1897, 1897, 1897, 1898, 1898, 1898,
1401 1898, 1899, 1899, 1899, 1899, 1900, 1900, 1900, 1900, 1901,
1402 1901, 1901, 1901, 1902, 1902, 1905, 1914, 1924, 1953, 1984,
1403 2010, 2027, 2044, 2061, 2072, 2083, 2094, 2108, 2122, 2130,
1404 2138, 2146, 2154, 2162, 2170, 2179, 2188, 2196, 2204, 2212,
1405 2220, 2228, 2236, 2244, 2252, 2260, 2268, 2276, 2284, 2292,
1406 2303, 2311, 2319, 2327, 2335, 2343, 2351, 2359, 2359, 2369,
1407 2379, 2385, 2397, 2398, 2402, 2410, 2420, 2430, 2431, 2434,
1408 2435, 2436, 2440, 2448, 2458, 2467, 2475, 2485, 2494, 2503,
1409 2503, 2515, 2525, 2529, 2535, 2543, 2551, 2565, 2581, 2595,
1410 2610, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628,
1411 2637, 2636, 2661, 2661, 2670, 2678, 2686, 2694, 2707, 2715,
1412 2723, 2731, 2739, 2747, 2747, 2757, 2765, 2773, 2784, 2785,
1413 2796, 2800, 2812, 2824, 2824, 2824, 2835, 2835, 2835, 2846,
1414 2857, 2866, 2868, 2865, 2932, 2931, 2953, 2958, 2952, 2977,
1415 2976, 2998, 2997, 3020, 3021, 3020, 3041, 3049, 3057, 3065,
1416 3075, 3087, 3093, 3099, 3105, 3111, 3117, 3123, 3129, 3135,
1417 3141, 3151, 3157, 3162, 3163, 3170, 3175, 3178, 3179, 3192,
1418 3193, 3203, 3204, 3207, 3215, 3225, 3233, 3243, 3251, 3260,
1419 3269, 3277, 3285, 3294, 3306, 3314, 3324, 3332, 3340, 3348,
1420 3356, 3364, 3373, 3381, 3389, 3397, 3405, 3413, 3421, 3429,
1421 3437, 3447, 3448, 3454, 3463, 3472, 3483, 3484, 3494, 3501,
1422 3510, 3518, 3524, 3527, 3524, 3545, 3553, 3563, 3567, 3574,
1423 3573, 3594, 3610, 3619, 3630, 3639, 3649, 3659, 3667, 3678,
1424 3689, 3697, 3705, 3720, 3719, 3739, 3738, 3759, 3771, 3772,
1425 3775, 3794, 3797, 3805, 3813, 3816, 3820, 3823, 3831, 3834,
1426 3835, 3843, 3846, 3863, 3864, 3865, 3875, 3885, 3912, 3977,
1427 3986, 3997, 4004, 4014, 4022, 4032, 4041, 4052, 4059, 4070,
1428 4077, 4088, 4095, 4106, 4113, 4142, 4144, 4143, 4160, 4166,
1429 4159, 4185, 4193, 4201, 4209, 4212, 4223, 4224, 4225, 4226,
1430 4229, 4259, 4260, 4261, 4269, 4279, 4280, 4281, 4282, 4283,
1431 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4295, 4308, 4318,
1432 4326, 4336, 4337, 4340, 4349, 4348, 4356, 4368, 4378, 4386,
1433 4394, 4402, 4410, 4418, 4426, 4434, 4442, 4450, 4458, 4466,
1434 4474, 4482, 4490, 4499, 4508, 4517, 4526, 4535, 4546, 4547,
1435 4554, 4563, 4582, 4589, 4602, 4614, 4626, 4634, 4650, 4658,
1436 4674, 4675, 4678, 4691, 4702, 4703, 4706, 4723, 4727, 4737,
1437 4747, 4747, 4776, 4777, 4787, 4794, 4804, 4812, 4822, 4823,
1438 4824, 4827, 4828, 4829, 4830, 4833, 4834, 4835, 4838, 4843,
1439 4850, 4851, 4854, 4855, 4858, 4861, 4864, 4865, 4866, 4869,
1440 4870, 4873, 4874, 4878
1444 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1449 "$end",
"error",
"$undefined",
"keyword_class",
"keyword_module",
1450 "keyword_def",
"keyword_undef",
"keyword_begin",
"keyword_rescue",
1451 "keyword_ensure",
"keyword_end",
"keyword_if",
"keyword_unless",
1452 "keyword_then",
"keyword_elsif",
"keyword_else",
"keyword_case",
1453 "keyword_when",
"keyword_while",
"keyword_until",
"keyword_for",
1454 "keyword_break",
"keyword_next",
"keyword_redo",
"keyword_retry",
1455 "keyword_in",
"keyword_do",
"keyword_do_cond",
"keyword_do_block",
1456 "keyword_do_LAMBDA",
"keyword_return",
"keyword_yield",
"keyword_super",
1457 "keyword_self",
"keyword_nil",
"keyword_true",
"keyword_false",
1458 "keyword_and",
"keyword_or",
"keyword_not",
"modifier_if",
1459 "modifier_unless",
"modifier_while",
"modifier_until",
"modifier_rescue",
1460 "keyword_alias",
"keyword_defined",
"keyword_BEGIN",
"keyword_END",
1461 "keyword__LINE__",
"keyword__FILE__",
"keyword__ENCODING__",
1462 "tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
"tCONSTANT",
"tCVAR",
"tLABEL",
1463 "tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
1464 "tBACK_REF",
"tREGEXP_END",
"tUPLUS",
"tUMINUS",
"tPOW",
"tCMP",
"tEQ",
1465 "tEQQ",
"tNEQ",
"tGEQ",
"tLEQ",
"tANDOP",
"tOROP",
"tMATCH",
"tNMATCH",
1466 "tDOT2",
"tDOT3",
"tAREF",
"tASET",
"tLSHFT",
"tRSHFT",
"tCOLON2",
1467 "tCOLON3",
"tOP_ASGN",
"tASSOC",
"tLPAREN",
"tLPAREN_ARG",
"tRPAREN",
1468 "tLBRACK",
"tLBRACE",
"tLBRACE_ARG",
"tSTAR",
"tAMPER",
"tLAMBDA",
1469 "tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
"tWORDS_BEG",
1470 "tQWORDS_BEG",
"tSTRING_DBEG",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1471 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1472 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"idNULL",
1473 "idRespond_to",
"idIFUNC",
"idCFUNC",
"id_core_set_method_alias",
1474 "id_core_set_variable_alias",
"id_core_undef_method",
1475 "id_core_define_method",
"id_core_define_singleton_method",
1476 "id_core_set_postexe",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"'.'",
"','",
1477 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
1478 "$@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"$@2",
"bodystmt",
1479 "compstmt",
"stmts",
"stmt",
"$@3",
"command_asgn",
"expr",
"expr_value",
1480 "command_call",
"block_command",
"cmd_brace_block",
"@4",
"command",
1481 "mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1482 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1483 "fitem",
"undef_list",
"$@5",
"op",
"reswords",
"arg",
"$@6",
1484 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1485 "opt_call_args",
"call_args",
"command_args",
"@7",
"block_arg",
1486 "opt_block_arg",
"args",
"mrhs",
"primary",
"@8",
"$@9",
"$@10",
"$@11",
1487 "$@12",
"$@13",
"$@14",
"$@15",
"$@16",
"@17",
"@18",
"@19",
"@20",
1488 "@21",
"$@22",
"$@23",
"primary_value",
"k_begin",
"k_if",
"k_unless",
1489 "k_while",
"k_until",
"k_case",
"k_for",
"k_class",
"k_module",
"k_def",
1490 "k_end",
"then",
"do",
"if_tail",
"opt_else",
"for_var",
"f_marg",
1491 "f_marg_list",
"f_margs",
"block_param",
"opt_block_param",
1492 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@24",
1493 "@25",
"f_larglist",
"lambda_body",
"do_block",
"@26",
"block_call",
1494 "method_call",
"brace_block",
"@27",
"@28",
"case_body",
"cases",
1495 "opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
"literal",
"strings",
1496 "string",
"string1",
"xstring",
"regexp",
"words",
"word_list",
"word",
1497 "qwords",
"qword_list",
"string_contents",
"xstring_contents",
1498 "regexp_contents",
"string_content",
"@29",
"@30",
"@31",
"string_dvar",
1499 "symbol",
"sym",
"dsym",
"numeric",
"user_variable",
"keyword_variable",
1500 "var_ref",
"var_lhs",
"backref",
"superclass",
"$@32",
"f_arglist",
1501 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_opt",
1502 "f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1503 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1504 "singleton",
"$@33",
"assoc_list",
"assocs",
"assoc",
"operation",
1505 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1506 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1515 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1516 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1517 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1518 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1519 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1520 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1521 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1522 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1523 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1524 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1525 355, 356, 357, 358, 359, 360, 361, 362, 363, 61,
1526 63, 58, 62, 60, 124, 94, 38, 43, 45, 42,
1527 47, 37, 364, 33, 126, 365, 366, 367, 368, 369,
1528 370, 371, 372, 373, 374, 375, 123, 125, 91, 46,
1529 44, 96, 40, 41, 93, 59, 32, 10
1536 0, 148, 150, 149, 151, 152, 152, 152, 152, 153,
1537 154, 153, 155, 156, 157, 157, 157, 157, 159, 158,
1538 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1539 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1540 158, 158, 158, 160, 160, 161, 161, 161, 161, 161,
1541 161, 162, 163, 163, 164, 164, 164, 166, 165, 167,
1542 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1543 168, 168, 169, 169, 170, 170, 170, 170, 170, 170,
1544 170, 170, 170, 170, 171, 171, 172, 172, 173, 173,
1545 174, 174, 174, 174, 174, 174, 174, 174, 174, 175,
1546 175, 175, 175, 175, 175, 175, 175, 175, 176, 176,
1547 177, 177, 177, 178, 178, 178, 178, 178, 179, 179,
1548 180, 180, 181, 182, 181, 183, 183, 183, 183, 183,
1549 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1550 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1551 183, 183, 183, 183, 184, 184, 184, 184, 184, 184,
1552 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1553 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1554 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1555 184, 184, 184, 184, 184, 185, 185, 185, 185, 185,
1556 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1557 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1558 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1559 185, 185, 185, 185, 185, 185, 185, 186, 185, 185,
1560 185, 187, 188, 188, 188, 188, 189, 190, 190, 191,
1561 191, 191, 191, 191, 192, 192, 192, 192, 192, 194,
1562 193, 195, 196, 196, 197, 197, 197, 197, 198, 198,
1563 198, 199, 199, 199, 199, 199, 199, 199, 199, 199,
1564 200, 199, 201, 199, 199, 199, 199, 199, 199, 199,
1565 199, 199, 199, 202, 199, 199, 199, 199, 199, 199,
1566 199, 199, 199, 203, 204, 199, 205, 206, 199, 199,
1567 199, 207, 208, 199, 209, 199, 210, 211, 199, 212,
1568 199, 213, 199, 214, 215, 199, 199, 199, 199, 199,
1569 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1570 226, 227, 228, 228, 228, 229, 229, 230, 230, 231,
1571 231, 232, 232, 233, 233, 234, 234, 235, 235, 235,
1572 235, 235, 235, 235, 235, 235, 236, 236, 236, 236,
1573 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1574 236, 237, 237, 238, 238, 238, 239, 239, 240, 240,
1575 241, 241, 243, 244, 242, 245, 245, 246, 246, 248,
1576 247, 249, 249, 249, 250, 250, 250, 250, 250, 250,
1577 250, 250, 250, 252, 251, 253, 251, 254, 255, 255,
1578 256, 256, 257, 257, 257, 258, 258, 259, 259, 260,
1579 260, 260, 261, 262, 262, 262, 263, 264, 265, 266,
1580 266, 267, 267, 268, 268, 269, 269, 270, 270, 271,
1581 271, 272, 272, 273, 273, 274, 275, 274, 276, 277,
1582 274, 278, 278, 278, 278, 279, 280, 280, 280, 280,
1583 281, 282, 282, 282, 282, 283, 283, 283, 283, 283,
1584 284, 284, 284, 284, 284, 284, 284, 285, 285, 286,
1585 286, 287, 287, 288, 289, 288, 288, 290, 290, 291,
1586 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
1587 291, 291, 291, 291, 292, 292, 292, 292, 293, 293,
1588 294, 294, 295, 295, 296, 297, 298, 298, 299, 299,
1589 300, 300, 301, 301, 302, 302, 303, 304, 304, 305,
1590 306, 305, 307, 307, 308, 308, 309, 309, 310, 310,
1591 310, 311, 311, 311, 311, 312, 312, 312, 313, 313,
1592 314, 314, 315, 315, 316, 317, 318, 318, 318, 319,
1599 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1600 0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
1601 3, 3, 3, 2, 3, 3, 3, 3, 3, 4,
1602 1, 3, 3, 6, 5, 5, 5, 5, 3, 3,
1603 3, 3, 1, 3, 3, 1, 3, 3, 3, 2,
1604 1, 1, 1, 1, 1, 4, 4, 0, 5, 2,
1605 3, 4, 5, 4, 5, 2, 2, 2, 2, 2,
1606 1, 3, 1, 3, 1, 2, 3, 5, 2, 4,
1607 2, 4, 1, 3, 1, 3, 2, 3, 1, 3,
1608 1, 1, 4, 3, 3, 3, 3, 2, 1, 1,
1609 1, 4, 3, 3, 3, 3, 2, 1, 1, 1,
1610 2, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1611 1, 1, 1, 0, 4, 1, 1, 1, 1, 1,
1612 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1613 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1614 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1615 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1616 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1618 1, 1, 1, 1, 1, 3, 5, 3, 5, 6,
1619 5, 5, 5, 5, 4, 3, 3, 3, 3, 3,
1620 3, 3, 3, 3, 4, 4, 2, 2, 3, 3,
1621 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1622 3, 2, 2, 3, 3, 3, 3, 0, 4, 6,
1623 1, 1, 1, 2, 4, 2, 3, 1, 1, 1,
1624 1, 2, 4, 2, 1, 2, 2, 4, 1, 0,
1625 2, 2, 2, 1, 1, 2, 3, 4, 3, 4,
1626 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1627 0, 4, 0, 4, 3, 3, 2, 3, 3, 1,
1628 4, 3, 1, 0, 6, 4, 3, 2, 1, 2,
1629 2, 6, 6, 0, 0, 7, 0, 0, 7, 5,
1630 4, 0, 0, 9, 0, 6, 0, 0, 8, 0,
1631 5, 0, 6, 0, 0, 9, 1, 1, 1, 1,
1632 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1633 1, 1, 1, 1, 2, 1, 1, 1, 5, 1,
1634 2, 1, 1, 1, 3, 1, 3, 1, 4, 6,
1635 3, 5, 2, 4, 1, 3, 6, 8, 4, 6,
1636 4, 2, 6, 2, 4, 6, 2, 4, 2, 4,
1637 1, 1, 1, 3, 1, 4, 1, 2, 1, 3,
1638 1, 1, 0, 0, 4, 4, 1, 3, 3, 0,
1639 5, 2, 4, 4, 2, 4, 4, 3, 3, 3,
1640 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1641 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1642 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1643 3, 0, 3, 1, 2, 3, 3, 0, 3, 0,
1644 2, 0, 2, 0, 2, 1, 0, 3, 0, 0,
1645 5, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1646 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1648 1, 1, 1, 1, 0, 4, 2, 3, 2, 6,
1649 8, 4, 6, 4, 6, 2, 4, 6, 2, 4,
1650 2, 4, 1, 0, 1, 1, 1, 1, 1, 1,
1651 1, 3, 1, 3, 3, 3, 1, 3, 1, 3,
1652 1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
1653 0, 4, 1, 2, 1, 3, 3, 2, 1, 1,
1654 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1655 0, 1, 0, 1, 2, 2, 0, 1, 1, 1,
1664 2, 0, 0, 1, 0, 338, 339, 340, 0, 331,
1665 332, 333, 336, 334, 335, 337, 326, 327, 328, 329,
1666 289, 259, 259, 481, 480, 482, 483, 562, 0, 562,
1667 10, 0, 485, 484, 486, 475, 550, 477, 476, 478,
1668 479, 471, 472, 433, 491, 492, 0, 0, 0, 0,
1669 0, 573, 573, 82, 392, 451, 449, 451, 453, 441,
1670 447, 0, 0, 0, 3, 560, 6, 9, 30, 42,
1671 45, 53, 52, 0, 70, 0, 74, 84, 0, 50,
1672 240, 0, 280, 0, 0, 303, 306, 560, 0, 0,
1673 0, 0, 54, 298, 271, 272, 432, 434, 273, 274,
1674 275, 276, 430, 431, 429, 487, 488, 277, 0, 278,
1675 259, 5, 8, 164, 175, 165, 188, 161, 181, 171,
1676 170, 191, 192, 186, 169, 168, 163, 189, 193, 194,
1677 173, 162, 176, 180, 182, 174, 167, 183, 190, 185,
1678 184, 177, 187, 172, 160, 179, 178, 159, 166, 157,
1679 158, 154, 155, 156, 113, 115, 114, 149, 150, 146,
1680 128, 129, 130, 137, 134, 136, 131, 132, 151, 152,
1681 138, 139, 143, 133, 135, 125, 126, 127, 140, 141,
1682 142, 144, 145, 147, 148, 153, 118, 120, 122, 23,
1683 116, 117, 119, 121, 0, 0, 0, 0, 0, 0,
1684 0, 254, 0, 241, 264, 68, 258, 573, 0, 487,
1685 488, 0, 278, 573, 544, 69, 67, 562, 66, 0,
1686 573, 410, 65, 562, 563, 0, 0, 18, 237, 0,
1687 0, 326, 327, 289, 292, 411, 216, 0, 0, 217,
1688 286, 0, 0, 0, 560, 15, 562, 72, 14, 282,
1689 0, 566, 566, 242, 0, 0, 566, 542, 562, 0,
1690 0, 0, 80, 330, 0, 90, 91, 98, 300, 393,
1691 468, 467, 469, 466, 0, 465, 0, 0, 0, 0,
1692 0, 0, 0, 473, 474, 49, 231, 232, 569, 570,
1693 4, 571, 561, 0, 0, 0, 0, 0, 0, 0,
1694 399, 401, 0, 86, 0, 78, 75, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 573, 0, 0, 51, 0,
1698 0, 0, 0, 560, 0, 561, 0, 352, 351, 0,
1699 0, 487, 488, 278, 108, 109, 0, 0, 111, 0,
1700 0, 487, 488, 278, 319, 184, 177, 187, 172, 154,
1701 155, 156, 113, 114, 540, 321, 539, 0, 0, 0,
1702 415, 413, 299, 435, 0, 0, 404, 59, 297, 123,
1703 547, 286, 265, 261, 0, 0, 0, 255, 263, 0,
1704 573, 0, 0, 0, 0, 256, 562, 0, 291, 260,
1705 562, 250, 573, 573, 249, 562, 296, 48, 20, 22,
1706 21, 0, 293, 0, 0, 0, 0, 0, 0, 17,
1707 562, 284, 13, 561, 71, 562, 287, 568, 567, 243,
1708 568, 245, 288, 543, 0, 97, 473, 474, 88, 83,
1709 0, 0, 573, 0, 513, 455, 458, 456, 470, 452,
1710 436, 450, 437, 438, 454, 439, 440, 0, 443, 445,
1711 0, 446, 0, 0, 572, 7, 24, 25, 26, 27,
1712 28, 46, 47, 573, 0, 31, 40, 0, 41, 562,
1713 0, 76, 87, 44, 43, 0, 195, 264, 39, 213,
1714 221, 226, 227, 228, 223, 225, 235, 236, 229, 230,
1715 206, 207, 233, 234, 562, 222, 224, 218, 219, 220,
1716 208, 209, 210, 211, 212, 551, 556, 552, 557, 409,
1717 259, 407, 562, 551, 553, 552, 554, 408, 259, 0,
1718 573, 343, 0, 342, 0, 0, 0, 0, 0, 0,
1719 286, 0, 573, 0, 311, 316, 108, 109, 110, 0,
1720 494, 314, 493, 0, 573, 0, 0, 0, 513, 559,
1721 558, 323, 551, 552, 259, 259, 573, 573, 32, 197,
1722 38, 205, 57, 60, 0, 195, 546, 0, 266, 262,
1723 573, 555, 552, 562, 551, 552, 545, 290, 564, 246,
1724 251, 253, 295, 19, 0, 238, 0, 29, 0, 573,
1725 204, 73, 16, 283, 566, 0, 81, 94, 96, 562,
1726 551, 552, 519, 516, 515, 514, 517, 0, 531, 535,
1727 534, 530, 513, 0, 396, 518, 520, 522, 573, 528,
1728 573, 533, 573, 0, 512, 459, 0, 442, 444, 448,
1729 214, 215, 384, 573, 0, 382, 381, 270, 0, 85,
1730 79, 0, 0, 0, 0, 0, 0, 406, 63, 0,
1731 412, 0, 0, 248, 405, 61, 247, 341, 281, 573,
1732 573, 421, 573, 344, 573, 346, 304, 345, 307, 0,
1733 0, 310, 555, 285, 562, 551, 552, 0, 0, 496,
1734 0, 0, 108, 109, 112, 562, 0, 562, 513, 0,
1735 0, 0, 403, 56, 402, 55, 0, 0, 0, 573,
1736 124, 267, 257, 0, 0, 412, 0, 0, 573, 562,
1737 11, 244, 89, 92, 0, 519, 0, 364, 355, 357,
1738 562, 353, 573, 0, 0, 394, 0, 505, 538, 0,
1739 508, 532, 0, 510, 536, 0, 461, 462, 463, 457,
1740 464, 519, 0, 573, 0, 573, 526, 573, 573, 380,
1741 386, 0, 0, 268, 77, 196, 0, 37, 202, 36,
1742 203, 64, 565, 0, 34, 200, 35, 201, 62, 422,
1743 423, 573, 424, 0, 573, 349, 0, 0, 347, 0,
1744 0, 0, 309, 0, 0, 412, 0, 317, 0, 0,
1745 412, 320, 541, 562, 0, 498, 324, 0, 0, 198,
1746 0, 0, 252, 294, 524, 562, 0, 362, 0, 521,
1747 562, 0, 0, 523, 573, 573, 537, 573, 529, 573,
1748 573, 0, 0, 390, 387, 388, 391, 0, 383, 371,
1749 373, 0, 376, 0, 378, 400, 269, 239, 33, 199,
1750 0, 0, 426, 350, 0, 12, 428, 0, 301, 302,
1751 0, 0, 266, 573, 312, 0, 495, 315, 497, 322,
1752 513, 416, 414, 0, 354, 365, 0, 360, 356, 395,
1753 398, 397, 0, 501, 0, 503, 0, 509, 0, 506,
1754 511, 460, 0, 525, 0, 385, 573, 573, 573, 527,
1755 573, 573, 0, 425, 0, 99, 100, 107, 0, 427,
1756 0, 305, 308, 418, 419, 417, 0, 0, 0, 58,
1757 0, 363, 0, 358, 573, 573, 573, 573, 286, 0,
1758 389, 0, 368, 0, 370, 377, 0, 374, 379, 106,
1759 0, 573, 0, 573, 573, 0, 318, 0, 361, 0,
1760 502, 0, 499, 504, 507, 555, 285, 573, 573, 573,
1761 573, 555, 105, 562, 551, 552, 420, 348, 313, 325,
1762 359, 573, 369, 0, 366, 372, 375, 412, 500, 573,
1769 -1, 1, 2, 64, 65, 66, 229, 539, 540, 244,
1770 245, 421, 68, 69, 339, 70, 71, 583, 719, 72,
1771 73, 246, 74, 75, 76, 449, 77, 202, 358, 359,
1772 186, 187, 188, 189, 584, 536, 191, 79, 423, 204,
1773 250, 529, 674, 410, 411, 218, 219, 206, 397, 412,
1774 488, 80, 337, 435, 604, 341, 800, 342, 801, 697,
1775 926, 701, 698, 875, 566, 568, 711, 880, 237, 82,
1776 83, 84, 85, 86, 87, 88, 89, 90, 91, 678,
1777 542, 686, 797, 798, 350, 738, 739, 740, 763, 654,
1778 655, 764, 844, 845, 268, 269, 454, 633, 745, 301,
1779 483, 92, 93, 388, 577, 576, 549, 925, 680, 791,
1780 861, 865, 94, 95, 96, 97, 98, 99, 100, 280,
1781 467, 101, 282, 276, 274, 278, 459, 646, 645, 755,
1782 759, 102, 275, 103, 104, 209, 210, 107, 211, 212,
1783 561, 700, 709, 710, 635, 636, 637, 638, 639, 766,
1784 767, 640, 641, 642, 643, 836, 747, 377, 567, 255,
1785 413, 214, 238, 608, 531, 571, 290, 407, 408, 670,
1791 #define YYPACT_NINF -747
1794 -747, 81, 2552, -747, 7102, -747, -747, -747, 6615, -747,
1795 -747, -747, -747, -747, -747, -747, 7320, 7320, -747, -747,
1796 7320, 3237, 2814, -747, -747, -747, -747, 100, 6476, -31,
1797 -747, -26, -747, -747, -747, 5715, 2955, -747, -747, 5842,
1798 -747, -747, -747, -747, -747, -747, 8519, 8519, 83, 4434,
1799 8628, 7538, 7865, 6878, -747, 6337, -747, -747, -747, -24,
1800 29, 252, 8737, 8519, -747, 193, -747, 1104, -747, 458,
1801 -747, -747, 129, 77, -747, 69, 8846, -747, 139, 2797,
1802 22, 41, -747, 8628, 8628, -747, -747, 5078, 8951, 9056,
1803 9161, 5588, 33, 46, -747, -747, 157, -747, -747, -747,
1804 -747, -747, -747, -747, -747, 25, 58, -747, 179, 613,
1805 51, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1806 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1807 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1808 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1809 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1810 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1811 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1812 -747, -747, -747, -747, -747, -747, -747, -747, -747, 134,
1813 -747, -747, -747, -747, 182, 8519, 279, 4564, 8519, 8519,
1814 8519, -747, 263, 2797, 260, -747, -747, 237, 207, 43,
1815 206, 298, 254, 265, -747, -747, -747, 4969, -747, 7320,
1816 7320, -747, -747, 5208, -747, 8628, 661, -747, 272, 287,
1817 4694, -747, -747, -747, 295, 307, -747, 304, 51, 416,
1818 619, 7211, 4434, 384, 193, 1104, -31, 399, -747, 458,
1819 419, 221, 300, -747, 260, 430, 300, -747, -31, 497,
1820 501, 9266, 442, -747, 351, 366, 383, 409, -747, -747,
1821 -747, -747, -747, -747, 644, -747, 754, 813, 605, 464,
1822 819, 478, 68, 530, 532, -747, -747, -747, -747, -747,
1823 -747, -747, 5317, 8628, 8628, 8628, 8628, 7211, 8628, 8628,
1824 -747, -747, 7974, -747, 4434, 6990, 470, 7974, 8519, 8519,
1825 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1826 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1827 8519, 8519, 8519, 8519, 9548, 7320, 9625, 3609, 458, 86,
1828 86, 8628, 8628, 193, 597, 480, 562, -747, -747, 454,
1829 601, 54, 76, 99, 331, 349, 8628, 481, -747, 45,
1830 473, -747, -747, -747, -747, 217, 286, 305, 318, 321,
1831 347, 363, 376, 381, -747, -747, -747, 391, 10549, 10549,
1832 -747, -747, -747, -747, 8737, 8737, -747, 535, -747, -747,
1833 -747, 388, -747, -747, 8519, 8519, 7429, -747, -747, 9702,
1834 7320, 9779, 8519, 8519, 7647, -747, -31, 492, -747, -747,
1835 -31, -747, 506, 539, -747, 106, -747, -747, -747, -747,
1836 -747, 6615, -747, 8519, 4029, 508, 9702, 9779, 8519, 1104,
1837 -31, -747, -747, 5445, 541, -31, -747, 7756, -747, -747,
1838 7865, -747, -747, -747, 272, 510, -747, -747, -747, 543,
1839 9266, 9856, 7320, 9933, 774, -747, -747, -747, -747, -747,
1840 -747, -747, -747, -747, -747, -747, -747, 313, -747, -747,
1841 491, -747, 8519, 8519, -747, -747, -747, -747, -747, -747,
1842 -747, -747, -747, 32, 8519, -747, 545, 546, -747, -31,
1843 9266, 551, -747, -747, -747, 566, 9473, -747, -747, 416,
1844 2184, 2184, 2184, 2184, 781, 781, 2273, 2938, 2184, 2184,
1845 1364, 1364, 662, 662, 2656, 781, 781, 927, 927, 768,
1846 397, 397, 416, 416, 416, 3378, 6083, 3464, 6197, -747,
1847 307, -747, -31, 647, -747, 660, -747, -747, 3096, 650,
1848 688, -747, 3754, 685, 4174, 56, 56, 597, 8083, 650,
1849 112, 10010, 7320, 10087, -747, 458, -747, 510, -747, 193,
1850 -747, -747, -747, 10164, 7320, 10241, 3609, 8628, 1131, -747,
1851 -747, -747, -747, -747, 1739, 1739, 32, 32, -747, 10608,
1852 -747, 2797, -747, -747, 6615, 10627, -747, 8519, 260, -747,
1853 265, 5969, 2673, -31, 490, 500, -747, -747, -747, -747,
1854 7429, 7647, -747, -747, 8628, 2797, 570, -747, 307, 307,
1855 2797, 213, 1104, -747, 300, 9266, 543, 505, 282, -31,
1856 38, 261, 603, -747, -747, -747, -747, 972, -747, -747,
1857 -747, -747, 1223, 66, -747, -747, -747, -747, 580, -747,
1858 583, 683, 589, 687, -747, -747, 893, -747, -747, -747,
1859 416, 416, -747, 576, 4839, -747, -747, 604, 8192, -747,
1860 543, 9266, 8737, 8519, 630, 8737, 8737, -747, 535, 608,
1861 677, 8737, 8737, -747, -747, 535, -747, -747, -747, 8301,
1862 740, -747, 588, -747, 740, -747, -747, -747, -747, 650,
1863 44, -747, 239, 257, -31, 141, 145, 8628, 193, -747,
1864 8628, 3609, 505, 282, -747, -31, 650, 106, 1223, 3609,
1865 193, 6754, -747, -747, -747, -747, 4839, 4694, 8519, 32,
1866 -747, -747, -747, 8519, 8519, 507, 8519, 8519, 636, 106,
1867 -747, -747, -747, 291, 8519, -747, 972, 457, -747, 651,
1868 -31, -747, 639, 4839, 4694, -747, 1223, -747, -747, 1223,
1869 -747, -747, 598, -747, -747, 4694, -747, -747, -747, -747,
1870 -747, 681, 1017, 639, 679, 654, -747, 656, 657, -747,
1871 -747, 789, 8519, 664, 543, 2797, 8519, -747, 2797, -747,
1872 2797, -747, -747, 8737, -747, 2797, -747, 2797, -747, 545,
1873 -747, 713, -747, 4304, 796, -747, 8628, 650, -747, 650,
1874 4839, 4839, -747, 8410, 3899, 189, 56, -747, 193, 650,
1875 -747, -747, -747, -31, 650, -747, -747, 799, 673, 2797,
1876 4694, 8519, 7647, -747, -747, -31, 884, 671, 1079, -747,
1877 -31, 803, 686, -747, 676, 678, -747, 684, -747, 694,
1878 684, 690, 9371, -747, 699, -747, -747, 711, -747, 1251,
1879 -747, 1251, -747, 598, -747, -747, 700, 2797, -747, 2797,
1880 9476, 86, -747, -747, 4839, -747, -747, 86, -747, -747,
1881 650, 650, -747, 365, -747, 3609, -747, -747, -747, -747,
1882 1131, -747, -747, 706, -747, 707, 884, 716, -747, -747,
1883 -747, -747, 1223, -747, 598, -747, 598, -747, 598, -747,
1884 -747, -747, 790, 520, 1017, -747, 708, 715, 684, -747,
1885 717, 684, 797, -747, 523, 366, 383, 409, 3609, -747,
1886 3754, -747, -747, -747, -747, -747, 4839, 650, 3609, -747,
1887 884, 707, 884, 721, 684, 727, 684, 684, -747, 10318,
1888 -747, 1251, -747, 598, -747, -747, 598, -747, -747, 510,
1889 10395, 7320, 10472, 688, 588, 650, -747, 650, 707, 884,
1890 -747, 598, -747, -747, -747, 730, 731, 684, 735, 684,
1891 684, 55, 282, -31, 128, 158, -747, -747, -747, -747,
1892 707, 684, -747, 598, -747, -747, -747, 163, -747, 684,
1899 -747, -747, -747, 452, -747, 28, -747, -545, 277, -747,
1900 39, -747, -293, 184, -58, 71, -747, -169, -747, -7,
1901 791, -142, -13, -37, -747, -396, -29, 1623, -312, 788,
1902 -54, -747, -25, -747, -747, 20, -747, 1066, -747, -45,
1903 -747, 11, 47, -324, 115, 5, -747, -322, -196, 53,
1904 -295, 8, -747, -747, -747, -747, -747, -747, -747, -747,
1905 -747, -747, -747, -747, -747, -747, -747, -747, 2, -747,
1906 -747, -747, -747, -747, -747, -747, -747, -747, -747, 205,
1907 -338, -516, -72, -618, -747, -722, -671, 147, -747, -489,
1908 -747, -600, -747, -12, -747, -747, -747, -747, -747, -747,
1909 -747, -747, -747, 798, -747, -747, -531, -747, -50, -747,
1910 -747, -747, -747, -747, -747, 811, -747, -747, -747, -747,
1911 -747, -747, -747, -747, 856, -747, -140, -747, -747, -747,
1912 -747, 7, -747, 12, -747, 1268, 1605, 823, 1289, 1575,
1913 -747, -747, 35, -387, -697, -568, -690, 273, -696, -746,
1914 72, 181, -747, -526, -747, -449, 270, -747, -747, -747,
1915 97, -360, 758, -276, -747, -747, -56, -4, 278, -585,
1922 #define YYTABLE_NINF -574
1925 111, 273, 544, 227, 81, 644, 81, 254, 725, 201,
1926 201, 532, 498, 201, 493, 192, 689, 405, 208, 208,
1927 193, 706, 208, 225, 262, 228, 340, 222, 190, 343,
1928 688, 344, 112, 221, 733, 192, 247, 375, 441, 306,
1929 193, 67, 443, 67, 596, 558, 559, 292, 190, 253,
1930 257, 81, 208, 838, 616, 264, 833, 541, 530, 741,
1931 538, 263, 794, -93, 208, 846, 799, 634, -103, 207,
1932 207, 291, 380, 207, 589, 190, 593, 380, 264, -99,
1933 596, 3, 589, 685, 263, 208, 208, 716, 717, 208,
1934 349, 360, 360, 291, 660, 743, 263, 263, 263, 541,
1935 430, -100, 574, 575, 251, 909, 888, -330, 652, 805,
1936 230, 190, -489, 213, 213, 387, 224, 213, 378, 644,
1937 810, 386, 279, 530, -107, 538, 334, 768, 619, 470,
1938 -489, 205, 215, 285, -99, 216, 461, -106, 464, 240,
1939 468, -102, 830, 298, 299, -490, 653, -93, 252, 256,
1940 390, 609, -99, 392, 393, 885, 809, 300, 560, 833,
1941 -330, -330, 489, 847, 814, -90, -102, -100, 741, 827,
1942 -104, -104, 379, 744, 471, 281, -101, 609, -93, 335,
1943 336, -93, 381, 644, 803, -93, 302, 381, 432, 288,
1944 288, 289, 289, 220, -90, 909, 838, -551, -91, 81,
1945 -103, 288, -103, 289, 769, 398, 833, 846, 888, 303,
1946 201, 398, 201, 201, -101, 931, -91, 405, 414, 208,
1947 835, 208, 208, 839, 448, 208, 433, 208, 694, 247,
1948 820, 288, 81, 289, 249, 476, 477, 478, 479, -98,
1949 705, 596, 223, 81, 81, 742, 221, 224, 307, 386,
1950 291, 704, -97, 224, 444, 923, 56, 486, 741, 644,
1951 741, 958, 497, 264, -103, 774, 384, 338, 338, 263,
1952 207, 338, 207, -102, 389, -102, 491, 609, 589, 589,
1953 429, -93, -105, 545, 546, -95, -95, 547, 980, 609,
1954 874, 247, 399, -490, 81, 208, 208, 208, 208, 81,
1955 208, 208, -481, -104, 208, -104, 81, 264, -101, 208,
1956 -101, 283, 284, 263, 213, -100, 213, -412, 741, 933,
1957 475, 813, -71, 907, 223, 910, 243, 648, 201, -92,
1958 927, 67, 406, 414, 409, 391, 480, 208, 288, 81,
1959 289, 403, 924, 208, 208, 400, 401, 537, 395, 291,
1960 586, 588, 804, -85, 528, 487, -481, -548, 208, 254,
1961 487, 437, 741, -107, 741, 562, 935, -285, 438, 493,
1962 -95, -480, 394, 485, 455, -549, -412, 396, 494, -94,
1963 793, -551, 548, 957, 790, 402, 208, 208, 987, 426,
1964 -482, 741, 588, 201, 722, 254, 603, -96, 414, -552,
1965 731, -95, 208, -483, -95, 404, -485, 415, -95, 417,
1966 398, 398, 537, 448, 422, 968, -475, 456, 457, 528,
1967 -285, -285, 111, 424, -552, -480, 81, -412, 192, -412,
1968 -412, 644, -484, 193, -478, 81, 451, 217, 537, 657,
1969 440, 190, 400, 427, -482, 201, 528, 438, -486, 220,
1970 414, -487, 264, 448, 208, 578, 580, -483, 263, 647,
1971 -485, -475, 596, 67, 537, 308, -478, -548, -488, -475,
1972 -475, 528, 612, -548, 243, 428, 569, 338, 338, 338,
1973 338, 656, 481, 482, 308, -549, -484, -478, -478, 452,
1974 453, -549, 264, 590, -278, 298, 299, -106, 263, 781,
1975 589, 416, -486, 497, -487, -487, 788, 425, -70, 735,
1976 664, 623, 624, 625, 626, -475, 331, 332, 333, 243,
1977 -478, -488, -488, 918, 434, 338, 338, 431, 669, 920,
1978 570, -555, 722, 556, 614, 668, 676, 557, 681, 551,
1979 555, 667, 721, 675, 81, 201, 81, -278, -278, 673,
1980 414, 687, 687, 445, 208, 588, 254, 201, 563, 720,
1981 446, 447, 414, 436, 537, 699, 208, 442, 81, 208,
1982 465, 528, 676, 676, 656, 656, 537, 726, 732, 713,
1983 715, 243, 450, 528, 469, 673, 673, 727, 398, 669,
1984 -555, 192, 552, 553, 821, -286, 193, 826, 472, -102,
1985 473, 690, 796, 793, 190, 939, 208, 676, 950, -104,
1986 492, 564, 565, 773, 548, 669, -101, 264, 550, 667,
1987 673, 712, 714, 263, 448, 474, 554, 973, 761, 582,
1988 623, 624, 625, 626, 789, 598, 748, 649, 748, 806,
1989 748, -555, 808, -555, -555, 607, 600, -551, -286, -286,
1990 735, 770, 623, 624, 625, 626, 81, 816, 564, 565,
1991 677, 951, 952, 264, 208, 627, 455, 208, 208, 263,
1992 463, 628, 629, 208, 208, 662, 609, 792, 795, 601,
1993 795, -85, 795, 615, 597, -264, 658, 627, 599, 824,
1994 669, 661, 630, 602, 629, 631, 679, 728, 683, 208,
1995 385, 669, 208, 81, 807, 455, 428, 730, 611, 456,
1996 457, 81, 734, 613, 630, 418, 815, 656, 81, 81,
1997 746, 762, -107, 749, 419, 420, 398, 856, -106, 752,
1998 308, 190, 487, 494, 671, 751, 777, 779, 867, 754,
1999 770, 776, 784, 786, -265, 81, 81, 672, 456, 457,
2000 458, 707, 782, -98, 691, 793, -102, 81, 872, -97,
2001 110, 770, 110, 748, 783, 748, 748, 659, 735, -104,
2002 623, 624, 625, 626, 110, 110, 822, 254, 110, 329,
2003 330, 331, 332, 333, 762, 208, -101, -93, 729, 862,
2004 842, 828, 866, 848, 849, 81, 851, 853, 208, 855,
2005 -95, 860, 81, 81, -266, 864, 81, 110, 110, 881,
2006 882, 886, 687, 890, 876, 455, 892, -92, 894, 682,
2007 110, 684, 81, 891, 896, 905, 622, 901, 623, 624,
2008 625, 626, 748, 748, 898, 748, 308, 748, 748, 904,
2009 -267, 110, 110, 929, 903, 110, 938, 930, 941, 308,
2010 263, 321, 322, 949, 858, 943, 932, 946, 456, 457,
2011 460, 959, 914, 627, 321, 322, 81, 961, 263, 628,
2012 629, 795, -551, -552, 455, 983, 606, 81, 364, 347,
2013 455, 338, 977, 825, 338, 329, 330, 331, 332, 333,
2014 630, 382, 940, 631, 802, 326, 327, 328, 329, 330,
2015 331, 332, 333, 976, 748, 748, 748, 383, 748, 748,
2016 750, 811, 753, 277, 376, 928, 632, 456, 457, 462,
2017 81, 906, 81, 456, 457, 466, 765, 834, 81, 0,
2018 81, 771, 748, 748, 748, 748, 735, 0, 623, 624,
2019 625, 626, 0, 0, 201, 0, 0, 756, 757, 414,
2020 758, 681, 795, 208, 0, 110, 44, 45, 0, 528,
2021 0, 0, 0, 537, 0, 748, 748, 748, 748, 669,
2022 528, 0, 0, 736, 0, 110, 0, 110, 110, 748,
2023 338, 110, 0, 110, 0, 812, 0, 748, 110, 0,
2024 0, 0, 0, 817, 818, 308, 0, 0, 0, 110,
2025 110, 0, 868, 0, 869, 0, 0, 823, 0, 0,
2026 321, 322, 0, 0, 877, 0, 0, 0, 829, 879,
2027 831, 832, 837, 0, 735, 840, 623, 624, 625, 626,
2028 0, 0, 841, 0, 0, 850, 0, 852, 854, 0,
2029 0, 0, 0, 328, 329, 330, 331, 332, 333, 0,
2030 110, 110, 110, 110, 110, 110, 110, 110, 0, 0,
2031 110, 736, 110, 0, 0, 110, 0, 737, 0, 843,
2032 863, 623, 624, 625, 626, 921, 922, 870, 871, 0,
2033 0, 873, 203, 203, 0, 0, 203, 0, 0, 0,
2034 0, 878, 0, 110, 0, 110, 0, 883, 0, 110,
2035 110, 0, 0, 884, 893, 895, 0, 897, 889, 899,
2036 900, 0, 236, 239, 110, 0, 0, 203, 203, 0,
2037 0, 0, 0, 0, 908, 0, 911, 0, 286, 287,
2038 0, 735, 956, 623, 624, 625, 626, 0, 0, 0,
2039 0, 919, 110, 110, 293, 294, 295, 296, 297, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 110, 0,
2041 978, 0, 979, 0, 0, 934, 0, 936, 736, 0,
2042 0, 937, 0, 0, 887, 0, 942, 944, 945, 0,
2043 947, 948, 110, 622, 0, 623, 624, 625, 626, 0,
2044 0, 110, 0, 0, 0, 953, 0, 954, 0, 0,
2045 0, 0, 0, 955, 960, 962, 963, 964, 0, 0,
2046 110, 0, 0, 0, 967, 0, 969, 0, 0, 970,
2047 627, 0, 0, 0, 0, 0, 628, 629, 0, 0,
2048 0, 0, 0, 0, 981, 0, 0, 982, 984, 985,
2049 986, 0, 0, 0, 0, 0, 0, 630, 0, 0,
2050 631, 988, 0, 0, 0, 0, 989, 0, 0, 990,
2051 0, 203, 0, 0, 203, 203, 286, 0, 0, 0,
2052 105, 0, 105, 708, 0, 622, 0, 623, 624, 625,
2053 626, 0, 0, 203, 0, 203, 203, 0, 0, 0,
2054 0, 108, 0, 108, 0, 0, 0, 0, 0, 0,
2055 110, 0, 110, 761, 0, 623, 624, 625, 626, 0,
2056 110, 0, 627, 0, 0, 0, 0, 105, 628, 629,
2057 0, 265, 110, 0, 110, 110, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0, 108, 630,
2059 627, 0, 631, 0, 265, 0, 628, 629, 0, 0,
2060 0, 0, 0, 0, 0, 0, 351, 361, 361, 361,
2061 0, 0, 110, 0, 0, 0, 0, 630, 203, 0,
2062 631, 0, 0, 496, 499, 500, 501, 502, 503, 504,
2063 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2064 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2065 0, 203, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
2067 110, 0, 0, 110, 110, 0, 0, 0, 0, 110,
2068 110, 0, 308, 309, 310, 311, 312, 313, 314, 315,
2069 316, 317, 318, -574, -574, 0, 0, 321, 322, 0,
2070 579, 581, 0, 0, 0, 110, 0, 0, 110, 110,
2071 585, 203, 203, 0, 0, 105, 203, 110, 579, 581,
2072 203, 0, 0, 0, 110, 110, 324, 325, 326, 327,
2073 328, 329, 330, 331, 332, 333, 108, 0, 0, 605,
2074 0, 0, 0, 0, 610, 0, 0, 0, 105, 0,
2075 0, 110, 110, 203, 0, 0, 203, 0, 0, 105,
2076 105, 0, 0, 110, 0, 0, 0, 0, 203, 108,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 265,
2078 108, 108, 0, 0, 0, 0, 0, 0, 650, 651,
2079 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2080 203, 110, 0, 0, 110, 0, 0, 0, 110, 110,
2081 105, 0, 110, 0, 0, 105, 0, 0, 0, 0,
2082 0, 0, 105, 265, 0, 0, 0, 109, 110, 109,
2083 0, 108, 0, 0, 0, 0, 108, 0, 0, 0,
2084 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2085 0, 0, 0, 0, 0, 105, 0, 106, 0, 106,
2086 0, 0, 0, 0, 203, 0, 0, 0, 203, 0,
2087 0, 0, 110, 0, 109, 78, 108, 78, 267, 0,
2088 203, 0, 0, 110, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 267, 0, 203, 106, 0, 0, 0, 266, 0,
2091 0, 0, 0, 353, 363, 363, 203, 203, 0, 0,
2092 0, 0, 78, 0, 0, 0, 110, 0, 110, 0,
2093 0, 266, 0, 0, 110, 0, 110, 0, 0, 0,
2094 0, 0, 105, 352, 362, 362, 362, 0, 0, 0,
2095 0, 105, 0, 0, 0, 0, 0, 0, 0, 110,
2096 0, 348, 0, 108, 0, 0, 0, 0, 265, 0,
2097 0, 0, 108, 0, 203, 0, 0, 0, 585, 775,
2098 0, 778, 780, 0, 0, 0, 0, 785, 787, -573,
2099 0, 0, 0, 0, 0, 203, 0, -573, -573, -573,
2100 0, 0, -573, -573, -573, 0, -573, 0, 265, 0,
2101 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2102 0, 0, 109, 0, 0, 0, -573, -573, 0, -573,
2103 -573, -573, -573, -573, 819, 0, 0, 0, 0, 778,
2104 780, 0, 785, 787, 0, 0, 0, 0, 0, 0,
2105 203, 0, 106, 0, 0, 109, 0, 0, 0, 0,
2106 105, 0, 105, 0, 0, 0, 109, 109, 0, 0,
2107 78, 0, 0, 0, -573, 0, 0, 0, 0, 0,
2108 0, 108, 0, 108, 105, 106, 267, 0, 203, 0,
2109 0, 0, 857, 0, 0, 0, 106, 106, 0, 859,
2110 0, 0, 0, 78, 0, 108, 0, 0, 0, 0,
2111 0, 0, 0, 0, 78, 78, 266, 109, 0, 203,
2112 0, 0, 109, 0, 0, 0, -573, 0, -573, 109,
2113 267, 220, -573, 265, -573, 0, -573, 859, 203, 0,
2114 0, 0, 0, 0, 0, 0, 0, 106, 0, 0,
2115 0, 0, 106, 0, 0, 0, 0, 0, 0, 106,
2116 266, 0, 109, 0, 0, 78, 0, 0, 0, 0,
2117 78, 0, 105, 0, 0, 0, 0, 78, 0, 265,
2118 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2119 0, 0, 106, 108, 0, 0, 0, 0, 0, 0,
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 78, 0, 0, 0, 0, 0, 0, 0, 0, 105,
2122 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
2123 0, 0, 0, 0, 105, 105, 0, 0, 0, 0,
2124 108, 0, 0, 0, 0, 0, 0, 0, 108, 109,
2125 0, 0, 0, 0, 0, 108, 108, 0, 109, 0,
2126 0, 105, 105, 0, 0, 0, 0, 203, 0, 0,
2127 0, 0, 0, 105, 0, 267, 0, 0, 0, 106,
2128 0, 0, 108, 108, 0, 0, 0, 0, 106, 0,
2129 0, 0, 0, 0, 108, 0, 0, 78, 0, 0,
2130 0, 0, 0, 0, 0, 266, 78, 0, 0, 0,
2131 0, 105, 0, 0, 0, 267, 0, 0, 105, 105,
2132 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 108, 0, 0, 0, 0, 0, 105, 108,
2134 108, 0, 0, 108, 0, 266, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
2136 361, 0, 0, 0, 0, 0, 0, 109, 0, 109,
2137 0, 0, 0, 0, 0, 0, 0, 0, 915, 0,
2138 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2139 0, 109, 0, 105, 0, 0, 0, 106, 0, 106,
2140 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 108, 78, 0, 78, 0, 0,
2142 0, 106, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 105, 0, 105, 78,
2144 267, 0, 0, 0, 105, 0, 105, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 108, 0, 108,
2146 0, 0, 0, 0, 0, 108, 0, 108, 0, 0,
2147 266, 760, 0, 0, 0, 0, 0, 0, 0, 109,
2148 0, 0, 0, 0, 0, 0, 267, 0, 0, 0,
2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 308, -574, -574, -574, -574, 313, 314, 106,
2151 0, -574, -574, 0, 0, 0, 266, 321, 322, 0,
2152 0, 0, 0, 0, 0, 0, 109, 78, 0, 0,
2153 0, 0, 0, 0, 109, 495, 0, 0, 0, 0,
2154 0, 109, 109, 0, 0, 0, 324, 325, 326, 327,
2155 328, 329, 330, 331, 332, 333, 106, 0, 0, 0,
2156 0, 0, 0, 0, 106, 0, 0, 0, 109, 109,
2157 0, 106, 106, 0, 78, 0, 0, 0, 0, 0,
2158 109, 0, 78, 0, 0, 0, 0, 0, 0, 78,
2159 78, 308, 309, 310, 311, 312, 313, 314, 106, 106,
2160 317, 318, 0, 0, 0, 0, 321, 322, 0, 0,
2161 106, 0, 0, 0, 0, 0, 78, 78, 109, 0,
2162 0, 0, 0, 0, 0, 109, 109, 0, 78, 109,
2163 0, 0, 0, 0, 0, 324, 325, 326, 327, 328,
2164 329, 330, 331, 332, 333, 109, 0, 0, 106, 0,
2165 0, 0, 0, 0, 0, 106, 106, 0, 0, 106,
2166 0, 0, 0, 0, 0, 0, 78, 363, 0, 0,
2167 0, 0, 0, 78, 78, 106, 0, 78, 0, 0,
2168 0, 0, 0, 0, 0, 917, 0, 0, 0, 109,
2169 0, 0, 0, 78, 0, 0, 0, 362, 0, 0,
2170 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 916, 0, 0, 0, 106,
2172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 106, 0, 0, 913, 0, 0, 0, 78, 0, 0,
2174 0, 0, 0, 109, 0, 109, 0, 0, 78, 0,
2175 0, 109, 0, 109, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 106, 0, 106, 0, 0, 0, 0,
2178 0, 106, 0, 106, 0, 0, 0, 0, 0, 0,
2179 0, 78, 0, 78, 0, 0, 0, 0, 0, 78,
2180 0, 78, -573, 4, 0, 5, 6, 7, 8, 9,
2181 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2182 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2183 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2184 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2185 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2186 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2189 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2190 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2192 0, 0, 0, -285, 61, 62, 63, 0, 0, 0,
2193 0, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2194 -285, 0, 0, 0, 0, 0, 0, -573, 0, -573,
2195 -285, -285, -285, 0, 0, 0, 0, 0, 0, 0,
2196 -285, -285, 0, -285, -285, -285, -285, -285, 0, 0,
2197 0, 0, 0, 0, 308, 309, 310, 311, 312, 313,
2198 314, 315, 316, 317, 318, 319, 320, 0, 0, 321,
2199 322, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2200 -285, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2201 724, -285, 0, 0, 0, 0, 323, -285, 324, 325,
2202 326, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2203 -285, 0, -105, -285, -285, -285, -285, -285, -285, -285,
2204 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2205 0, 0, 0, 224, 0, 0, 0, 0, 0, 0,
2206 -285, -285, -285, -285, -411, 0, -285, -285, -285, 0,
2207 -285, 0, -411, -411, -411, 0, 0, -411, -411, -411,
2208 0, -411, 0, 0, 0, 0, 0, 0, 0, 0,
2209 -411, -411, -411, 0, 0, 0, 0, 0, 0, 0,
2210 0, -411, -411, 0, -411, -411, -411, -411, -411, 0,
2211 0, 0, 0, 0, 0, 308, 309, 310, 311, 312,
2212 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2213 321, 322, -411, -411, -411, -411, -411, -411, -411, -411,
2214 -411, -411, -411, -411, -411, 0, 0, -411, -411, -411,
2215 0, 0, -411, 0, 0, 0, 0, 323, -411, 324,
2216 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
2217 0, 0, 0, 0, -411, 0, -411, -411, -411, -411,
2218 -411, -411, -411, -411, -411, -411, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 -411, -411, -411, -411, -411, -279, 220, -411, -411, -411,
2221 0, -411, 0, -279, -279, -279, 0, 0, -279, -279,
2222 -279, 0, -279, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, -279, -279, -279, 0, 0, 0, 0, 0,
2224 0, 0, -279, -279, 0, -279, -279, -279, -279, -279,
2225 0, 0, 0, 0, 0, 0, 308, 309, 310, 311,
2226 312, 313, 314, 315, 0, 317, 318, 0, 0, 0,
2227 0, 321, 322, -279, -279, -279, -279, -279, -279, -279,
2228 -279, -279, -279, -279, -279, -279, 0, 0, -279, -279,
2229 -279, 0, 0, -279, 0, 0, 0, 0, 0, -279,
2230 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2231 0, 0, -279, 0, 0, -279, -279, -279, -279, -279,
2232 -279, -279, -279, -279, -279, -279, -279, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0, -279, -279, -279, -279, -573, 0, -279, -279,
2235 -279, 0, -279, 0, -573, -573, -573, 0, 0, -573,
2236 -573, -573, 0, -573, 0, 0, 0, 0, 0, 0,
2237 0, 0, -573, -573, -573, 0, 0, 0, 0, 0,
2238 0, 0, 0, -573, -573, 0, -573, -573, -573, -573,
2239 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, -573, -573, -573, -573, -573, -573,
2242 -573, -573, -573, -573, -573, -573, -573, 0, 0, -573,
2243 -573, -573, 0, 0, -573, 0, 0, 0, 0, 0,
2244 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, -573, 0, -573, -573,
2246 -573, -573, -573, -573, -573, -573, -573, -573, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248 0, 0, -573, -573, -573, -573, -573, -292, 220, -573,
2249 -573, -573, 0, -573, 0, -292, -292, -292, 0, 0,
2250 -292, -292, -292, 0, -292, 0, 0, 0, 0, 0,
2251 0, 0, 0, 0, -292, -292, 0, 0, 0, 0,
2252 0, 0, 0, 0, -292, -292, 0, -292, -292, -292,
2253 -292, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, -292, -292, -292, -292, -292,
2256 -292, -292, -292, -292, -292, -292, -292, -292, 0, 0,
2257 -292, -292, -292, 0, 0, -292, 0, 0, 0, 0,
2258 0, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2259 0, 0, 0, 0, 0, 0, 0, -292, 0, -292,
2260 -292, -292, -292, -292, -292, -292, -292, -292, -292, 0,
2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 0, -292, -292, -292, -292, -555, 217,
2263 -292, -292, -292, 0, -292, 0, -555, -555, -555, 0,
2264 0, 0, -555, -555, 0, -555, 0, 0, 0, 0,
2265 0, 0, 0, 0, -555, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, -555, -555, 0, -555, -555,
2267 -555, -555, -555, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2269 0, 0, 0, 0, 0, 0, -555, -555, -555, -555,
2270 -555, -555, -555, -555, -555, -555, -555, -555, -555, 0,
2271 0, -555, -555, -555, -285, 665, 0, 0, 0, 0,
2272 0, 0, -285, -285, -285, 0, 0, 0, -285, -285,
2273 0, -285, 0, 0, 0, 0, 0, -103, -555, 0,
2274 -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
2275 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2276 0, 0, 0, 0, -555, -555, -555, -555, -94, 0,
2277 0, -555, 0, -555, 0, -555, 0, 0, 0, 0,
2278 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2279 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2280 0, 666, 0, 0, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2282 0, 0, 0, -105, -285, 0, -285, -285, -285, -285,
2283 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, -285, -285, -285, -96, 0, 0, -285, 0, -285,
2286 241, -285, 5, 6, 7, 8, 9, -573, -573, -573,
2287 10, 11, 0, 0, -573, 12, 0, 13, 14, 15,
2288 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2289 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2290 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2291 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2292 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2295 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2296 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2298 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2300 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2301 8, 9, 0, 0, -573, 10, 11, 0, -573, -573,
2302 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2303 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2304 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2305 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2306 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2307 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2309 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2310 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, -573,
2315 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2316 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2317 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2318 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2319 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2320 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2321 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2324 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2325 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2327 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2328 4, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2329 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2330 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2331 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2332 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
2333 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2334 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2336 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2337 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2338 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2340 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2341 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2342 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2343 8, 9, 0, 0, -573, 10, 11, 0, 0, -573,
2344 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2345 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2346 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2347 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2348 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2349 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2351 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2352 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2354 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2355 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2356 8, 9, 0, -573, -573, 10, 11, 0, 0, -573,
2357 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2358 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2359 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2360 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2361 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2362 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2364 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2365 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2367 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2368 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2369 8, 9, 0, 0, 0, 10, 11, 0, 0, -573,
2370 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2371 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2372 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2373 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2374 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2375 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2377 48, 0, 0, 242, 50, 0, 51, 52, 0, 53,
2378 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2380 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2381 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2382 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2383 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2384 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2385 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2386 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2387 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2388 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2390 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2391 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2393 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2394 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2395 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2396 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2397 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2398 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2399 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2400 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2401 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2404 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2406 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, -573, 0, 0, 0, 0, 0, 0, 0, -573,
2409 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2410 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
2411 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2412 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2413 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2414 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2415 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2417 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2418 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2419 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2421 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2422 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2423 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2424 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2425 21, 22, 23, 24, 25, 26, 0, 0, 194, 0,
2426 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2427 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2428 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2430 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2431 0, 51, 52, 0, 198, 199, 54, 55, 56, 57,
2432 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2433 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2434 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2435 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2436 22, 23, 24, 25, 26, 0, 224, 27, 0, 0,
2437 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2438 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2439 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2441 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2442 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2443 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2445 61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
2446 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2447 11, 0, 0, 288, 12, 289, 13, 14, 15, 16,
2448 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2449 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2450 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2451 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2452 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2455 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2456 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2457 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2458 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2459 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2460 23, 24, 25, 26, 0, 224, 27, 0, 0, 0,
2461 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
2462 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2463 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2465 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2466 52, 0, 53, 0, 54, 55, 56, 57, 58, 59,
2467 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2468 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
2469 62, 63, 0, 0, 0, 0, 0, 0, 5, 6,
2470 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2471 0, 12, 474, 13, 14, 15, 16, 17, 18, 19,
2472 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2473 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2474 28, 29, 0, 31, 32, 33, 34, 35, 36, 37,
2475 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2476 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2478 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2479 53, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2481 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2484 474, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2485 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2486 132, 133, 134, 135, 136, 0, 0, 0, 137, 138,
2487 139, 365, 366, 367, 368, 144, 145, 146, 0, 0,
2488 0, 0, 0, 147, 148, 149, 150, 369, 370, 371,
2489 372, 155, 37, 38, 373, 40, 0, 0, 0, 0,
2490 0, 0, 0, 0, 157, 158, 159, 160, 161, 162,
2491 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2492 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2495 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2496 0, 183, 184, 0, 0, 0, 0, 0, -548, -548,
2497 -548, 0, -548, 0, 0, 0, -548, -548, 0, 185,
2498 374, -548, 0, -548, -548, -548, -548, -548, -548, -548,
2499 0, -548, 0, 0, 0, -548, -548, -548, -548, -548,
2500 -548, -548, 0, 0, -548, 0, 0, 0, 0, 0,
2501 0, -548, 0, 0, -548, -548, -548, -548, -548, -548,
2502 -548, -548, -548, -548, -548, -548, 0, -548, -548, -548,
2503 0, -548, -548, 0, 0, 0, 0, 0, 0, 0,
2504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2505 0, -548, 0, 0, -548, -548, 0, -548, -548, 0,
2506 -548, -548, -548, -548, -548, -548, -548, -548, -548, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 0, -548, -548, -548,
2509 0, 0, 0, 0, 0, -549, -549, -549, 0, -549,
2510 0, -548, 0, -549, -549, 0, 0, -548, -549, 0,
2511 -549, -549, -549, -549, -549, -549, -549, 0, -549, 0,
2512 0, 0, -549, -549, -549, -549, -549, -549, -549, 0,
2513 0, -549, 0, 0, 0, 0, 0, 0, -549, 0,
2514 0, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2515 -549, -549, -549, 0, -549, -549, -549, 0, -549, -549,
2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 0, 0, 0, 0, 0, 0, -549, 0,
2518 0, -549, -549, 0, -549, -549, 0, -549, -549, -549,
2519 -549, -549, -549, -549, -549, -549, 0, 0, 0, 0,
2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2521 0, 0, 0, 0, -549, -549, -549, 0, 0, 0,
2522 0, 0, -551, -551, -551, 0, -551, 0, -549, 0,
2523 -551, -551, 0, 0, -549, -551, 0, -551, -551, -551,
2524 -551, -551, -551, -551, 0, 0, 0, 0, 0, -551,
2525 -551, -551, -551, -551, -551, -551, 0, 0, -551, 0,
2526 0, 0, 0, 0, 0, -551, 0, 0, -551, -551,
2527 -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
2528 0, -551, -551, -551, 0, -551, -551, 0, 0, 0,
2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2530 0, 0, 0, 0, 0, -551, 723, 0, -551, -551,
2531 0, -551, -551, 0, -551, -551, -551, -551, -551, -551,
2532 -551, -551, -551, 0, 0, 0, 0, 0, -103, 0,
2533 0, 0, 0, 0, 0, 0, -553, -553, -553, 0,
2534 -553, -551, -551, -551, -553, -553, 0, 0, 0, -553,
2535 0, -553, -553, -553, -553, -553, -553, -553, 0, 0,
2536 0, -551, 0, -553, -553, -553, -553, -553, -553, -553,
2537 0, 0, -553, 0, 0, 0, 0, 0, 0, -553,
2538 0, 0, -553, -553, -553, -553, -553, -553, -553, -553,
2539 -553, -553, -553, -553, 0, -553, -553, -553, 0, -553,
2540 -553, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541 0, 0, 0, 0, 0, 0, 0, 0, 0, -553,
2542 0, 0, -553, -553, 0, -553, -553, 0, -553, -553,
2543 -553, -553, -553, -553, -553, -553, -553, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 -554, -554, -554, 0, -554, -553, -553, -553, -554, -554,
2546 0, 0, 0, -554, 0, -554, -554, -554, -554, -554,
2547 -554, -554, 0, 0, 0, -553, 0, -554, -554, -554,
2548 -554, -554, -554, -554, 0, 0, -554, 0, 0, 0,
2549 0, 0, 0, -554, 0, 0, -554, -554, -554, -554,
2550 -554, -554, -554, -554, -554, -554, -554, -554, 0, -554,
2551 -554, -554, 0, -554, -554, 0, 0, 0, 0, 0,
2552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2553 0, 0, 0, -554, 0, 0, -554, -554, 0, -554,
2554 -554, 0, -554, -554, -554, -554, -554, -554, -554, -554,
2555 -554, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2556 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2557 -554, -554, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2559 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2560 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2561 133, 134, 135, 136, 0, 0, 0, 137, 138, 139,
2562 140, 141, 142, 143, 144, 145, 146, 0, 0, 0,
2563 0, 0, 147, 148, 149, 150, 151, 152, 153, 154,
2564 155, 270, 271, 156, 272, 0, 0, 0, 0, 0,
2565 0, 0, 0, 157, 158, 159, 160, 161, 162, 163,
2566 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2567 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2568 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2570 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2571 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 185, 113,
2573 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2574 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2575 134, 135, 136, 0, 0, 0, 137, 138, 139, 140,
2576 141, 142, 143, 144, 145, 146, 0, 0, 0, 0,
2577 0, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2578 226, 0, 156, 0, 0, 0, 0, 0, 0, 0,
2579 0, 0, 157, 158, 159, 160, 161, 162, 163, 164,
2580 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2581 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582 0, 172, 0, 0, 55, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2584 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2585 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 0, 0, 0, 0, 0, 0, 0, 185, 113, 114,
2587 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2588 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2589 135, 136, 0, 0, 0, 137, 138, 139, 140, 141,
2590 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
2591 147, 148, 149, 150, 151, 152, 153, 154, 155, 0,
2592 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2594 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2596 172, 0, 0, 55, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2598 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2600 0, 0, 0, 0, 0, 0, 185, 113, 114, 115,
2601 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2602 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2603 136, 0, 0, 0, 137, 138, 139, 140, 141, 142,
2604 143, 144, 145, 146, 0, 0, 0, 0, 0, 147,
2605 148, 149, 150, 151, 152, 153, 154, 155, 0, 0,
2606 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2608 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2612 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2613 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2614 11, 0, 0, 0, 12, 185, 13, 14, 15, 231,
2615 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2616 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2617 0, 0, 0, 0, 258, 0, 0, 32, 33, 34,
2618 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2619 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, 0, 0, 0, 259, 0, 0, 197, 50, 0,
2622 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2623 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2624 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2625 260, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2626 15, 231, 232, 18, 19, 0, 0, 0, 261, 0,
2627 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2628 0, 0, 0, 0, 0, 0, 258, 0, 0, 32,
2629 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2630 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2632 0, 0, 0, 0, 0, 0, 259, 0, 0, 197,
2633 50, 0, 51, 52, 0, 0, 0, 54, 55, 56,
2634 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2635 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2636 0, 0, 260, 10, 11, 0, 0, 0, 12, 0,
2637 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2638 490, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2639 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2640 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2641 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2643 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2644 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2645 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2646 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2647 0, 0, 10, 11, 61, 62, 63, 12, 0, 13,
2648 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2649 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2650 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2651 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2652 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2655 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2656 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2657 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2658 0, 10, 11, 61, 62, 63, 12, 0, 13, 14,
2659 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2660 20, 21, 22, 23, 24, 25, 26, 0, 0, 194,
2661 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2662 33, 34, 35, 36, 37, 38, 39, 40, 195, 41,
2663 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2666 50, 0, 51, 52, 0, 198, 199, 54, 55, 56,
2667 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2668 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2669 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2670 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2671 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2672 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2673 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2674 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2677 0, 51, 52, 0, 587, 199, 54, 55, 56, 57,
2678 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2679 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2680 11, 61, 200, 63, 12, 0, 13, 14, 15, 231,
2681 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2682 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2683 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2684 35, 36, 37, 38, 39, 40, 195, 41, 42, 0,
2685 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2688 51, 52, 0, 198, 0, 54, 55, 56, 57, 58,
2689 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2690 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2691 61, 200, 63, 12, 0, 13, 14, 15, 231, 232,
2692 18, 19, 0, 0, 0, 0, 0, 233, 234, 235,
2693 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2694 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2695 36, 37, 38, 39, 40, 195, 41, 42, 0, 43,
2696 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2699 52, 0, 0, 199, 54, 55, 56, 57, 58, 59,
2700 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2701 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2702 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2703 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2704 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2705 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2706 37, 38, 39, 40, 195, 41, 42, 0, 43, 44,
2707 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 196, 0, 0, 197, 50, 0, 51, 52,
2710 0, 587, 0, 54, 55, 56, 57, 58, 59, 60,
2711 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2712 7, 0, 9, 0, 0, 0, 10, 11, 61, 200,
2713 63, 12, 0, 13, 14, 15, 231, 232, 18, 19,
2714 0, 0, 0, 0, 0, 233, 234, 235, 23, 24,
2715 25, 26, 0, 0, 194, 0, 0, 0, 0, 0,
2716 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2717 38, 39, 40, 195, 41, 42, 0, 43, 44, 45,
2718 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 0, 196, 0, 0, 197, 50, 0, 51, 52, 0,
2721 0, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2722 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2723 0, 9, 0, 0, 0, 10, 11, 61, 200, 63,
2724 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2725 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2726 26, 0, 0, 194, 0, 0, 0, 0, 0, 0,
2727 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2728 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2729 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731 196, 0, 0, 197, 50, 0, 51, 52, 0, 484,
2732 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2733 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2734 9, 0, 0, 0, 10, 11, 61, 200, 63, 12,
2735 0, 13, 14, 15, 231, 232, 18, 19, 0, 0,
2736 0, 0, 0, 233, 234, 235, 23, 24, 25, 26,
2737 0, 0, 194, 0, 0, 0, 0, 0, 0, 29,
2738 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2739 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2740 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
2742 0, 0, 197, 50, 0, 51, 52, 0, 198, 0,
2743 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
2744 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2745 0, 0, 0, 10, 11, 61, 200, 63, 12, 0,
2746 13, 14, 15, 231, 232, 18, 19, 0, 0, 0,
2747 0, 0, 233, 234, 235, 23, 24, 25, 26, 0,
2748 0, 194, 0, 0, 0, 0, 0, 0, 29, 0,
2749 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2750 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
2753 0, 197, 50, 0, 51, 52, 0, 772, 0, 54,
2754 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2755 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2756 0, 0, 10, 11, 61, 200, 63, 12, 0, 13,
2757 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2758 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2759 194, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2760 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2761 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
2764 197, 50, 0, 51, 52, 0, 484, 0, 54, 55,
2765 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2766 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2767 0, 10, 11, 61, 200, 63, 12, 0, 13, 14,
2768 15, 231, 232, 18, 19, 0, 0, 0, 0, 0,
2769 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2770 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2771 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2772 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2775 50, 0, 51, 52, 0, 587, 0, 54, 55, 56,
2776 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2777 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2778 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2779 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2780 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2781 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2782 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2783 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2786 0, 51, 52, 0, 0, 0, 54, 55, 56, 57,
2787 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2788 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2789 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2790 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2791 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2792 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2793 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2794 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2797 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2798 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2799 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2800 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2801 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2802 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2803 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2804 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2805 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2807 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2808 52, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2809 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2810 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2811 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2812 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2813 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2814 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2815 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2816 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2819 0, 305, 0, 54, 55, 56, 57, 58, 59, 60,
2820 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2821 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2822 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2823 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2824 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2825 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2826 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 346, 0, 0,
2829 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2830 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2831 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2832 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2833 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2834 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2835 0, 0, 258, 0, 0, 32, 33, 34, 354, 36,
2836 37, 38, 355, 40, 0, 41, 42, 0, 43, 44,
2837 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 356,
2839 0, 0, 357, 0, 0, 197, 50, 0, 51, 52,
2840 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2841 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2842 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2843 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2844 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2845 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2846 32, 33, 34, 354, 36, 37, 38, 355, 40, 0,
2847 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 357, 0, 0,
2850 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2851 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2852 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2853 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2854 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2855 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2856 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2857 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2858 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2861 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2862 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2863 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2864 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2865 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2866 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2867 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2868 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 902, 0, 0,
2871 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2872 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2873 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2874 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2875 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2876 24, 25, 26, 0, 0, 194, 0, 663, 0, 0,
2877 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2878 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2879 45, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2880 317, 318, 319, 320, 0, 0, 321, 322, 0, 0,
2881 0, 0, 912, 0, 0, 197, 50, 0, 51, 52,
2882 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2883 0, 0, 0, 323, 0, 324, 325, 326, 327, 328,
2884 329, 330, 331, 332, 333, 0, 0, 0, 260, 0,
2885 525, 526, 0, 0, 527, 0, 0, 0, 0, 0,
2886 0, 0, 0, -241, 157, 158, 159, 160, 161, 162,
2887 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2888 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2892 0, 183, 184, 0, 0, 0, 0, 533, 534, 0,
2893 0, 535, 0, 0, 0, 0, 0, 0, 0, 185,
2894 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2895 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2899 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2900 0, 0, 0, 0, 591, 526, 0, 0, 592, 0,
2901 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
2902 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
2903 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
2907 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
2908 0, 594, 534, 0, 0, 595, 0, 0, 0, 0,
2909 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
2910 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
2911 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
2912 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2914 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2915 182, 0, 183, 184, 0, 0, 0, 0, 617, 526,
2916 0, 0, 618, 0, 0, 0, 0, 0, 0, 0,
2917 185, 220, 157, 158, 159, 160, 161, 162, 163, 164,
2918 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2919 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 172, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2922 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2923 184, 0, 0, 0, 0, 620, 534, 0, 0, 621,
2924 0, 0, 0, 0, 0, 0, 0, 185, 220, 157,
2925 158, 159, 160, 161, 162, 163, 164, 165, 0, 0,
2926 166, 167, 0, 0, 168, 169, 170, 171, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 173, 174, 175, 176, 177,
2930 178, 179, 180, 181, 182, 0, 183, 184, 0, 0,
2931 0, 0, 692, 526, 0, 0, 693, 0, 0, 0,
2932 0, 0, 0, 0, 185, 220, 157, 158, 159, 160,
2933 161, 162, 163, 164, 165, 0, 0, 166, 167, 0,
2934 0, 168, 169, 170, 171, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
2936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2937 0, 0, 173, 174, 175, 176, 177, 178, 179, 180,
2938 181, 182, 0, 183, 184, 0, 0, 0, 0, 695,
2939 534, 0, 0, 696, 0, 0, 0, 0, 0, 0,
2940 0, 185, 220, 157, 158, 159, 160, 161, 162, 163,
2941 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2942 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2945 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2946 183, 184, 0, 0, 0, 0, 702, 526, 0, 0,
2947 703, 0, 0, 0, 0, 0, 0, 0, 185, 220,
2948 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2949 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2953 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2954 0, 0, 0, 572, 534, 0, 0, 573, 0, 0,
2955 0, 0, 0, 0, 0, 185, 220, 157, 158, 159,
2956 160, 161, 162, 163, 164, 165, 0, 0, 166, 167,
2957 0, 0, 168, 169, 170, 171, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 172, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 173, 174, 175, 176, 177, 178, 179,
2961 180, 181, 182, 0, 183, 184, 0, 0, 0, 0,
2962 965, 526, 0, 0, 966, 0, 0, 0, 0, 0,
2963 0, 0, 185, 220, 157, 158, 159, 160, 161, 162,
2964 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2965 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2969 0, 183, 184, 0, 0, 0, 0, 971, 526, 0,
2970 0, 972, 0, 0, 0, 0, 0, 0, 0, 185,
2971 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2972 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2976 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2977 0, 0, 0, 0, 974, 534, 0, 0, 975, 0,
2978 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
2979 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
2980 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
2984 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
2985 0, 572, 534, 0, 0, 573, 0, 0, 0, 0,
2986 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
2987 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
2988 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
2990 0, 0, 718, 0, 0, 0, 0, 0, 0, 0,
2991 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2992 182, 663, 183, 184, 0, 0, 308, 309, 310, 311,
2993 312, 313, 314, 315, 316, 317, 318, 319, 320, 0,
2994 185, 321, 322, 0, 0, 308, 309, 310, 311, 312,
2995 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2996 321, 322, 0, 0, 0, 0, 0, 0, 323, 0,
2997 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2998 0, 0, 0, 0, 0, 0, 0, 323, 0, 324,
2999 325, 326, 327, 328, 329, 330, 331, 332, 333
3002 #define yypact_value_is_default(yystate) \
3003 ((yystate) == (-747))
3005 #define yytable_value_is_error(yytable_value) \
3006 ((yytable_value) == (-574))
3010 2, 55, 340, 28, 2, 454, 4, 52, 593, 16,
3011 17, 335, 307, 20, 307, 8, 547, 213, 16, 17,
3012 8, 566, 20, 27, 53, 29, 84, 22, 8, 87,
3013 546, 87, 4, 22, 619, 28, 49, 91, 252, 76,
3014 28, 2, 256, 4, 404, 357, 1, 65, 28, 51,
3015 52, 49, 50, 749, 450, 53, 746, 13, 334, 627,
3016 336, 53, 680, 25, 62, 762, 684, 454, 13, 16,
3017 17, 65, 26, 20, 396, 55, 400, 26, 76, 25,
3018 440, 0, 404, 27, 76, 83, 84, 576, 577, 87,
3019 88, 89, 90, 87, 490, 29, 88, 89, 90, 13,
3020 242, 25, 378, 379, 51, 851, 828, 85, 76, 694,
3021 136, 91, 87, 16, 17, 110, 147, 20, 85, 568,
3022 705, 110, 146, 399, 25, 401, 85, 653, 452, 61,
3023 87, 16, 17, 62, 109, 20, 276, 25, 278, 56,
3024 280, 13, 742, 37, 38, 87, 114, 109, 51, 52,
3025 195, 427, 109, 198, 199, 826, 701, 28, 113, 849,
3026 138, 139, 304, 763, 709, 140, 25, 109, 736, 737,
3027 25, 13, 139, 107, 106, 146, 13, 453, 140, 138,
3028 139, 143, 136, 632, 140, 147, 109, 136, 244, 145,
3029 145, 147, 147, 142, 140, 941, 892, 142, 140, 197,
3030 145, 145, 147, 147, 653, 207, 896, 904, 930, 140,
3031 217, 213, 219, 220, 25, 886, 140, 413, 220, 217,
3032 746, 219, 220, 749, 261, 223, 244, 225, 552, 242,
3033 719, 145, 230, 147, 50, 293, 294, 295, 296, 140,
3034 564, 601, 142, 241, 242, 632, 235, 147, 109, 238,
3035 244, 563, 140, 147, 258, 873, 99, 302, 826, 708,
3036 828, 932, 307, 261, 25, 661, 87, 83, 84, 261,
3037 217, 87, 219, 145, 140, 147, 305, 553, 600, 601,
3038 241, 140, 25, 341, 342, 140, 25, 343, 959, 565,
3039 806, 304, 85, 87, 292, 293, 294, 295, 296, 297,
3040 298, 299, 85, 145, 302, 147, 304, 305, 145, 307,
3041 147, 59, 60, 305, 217, 109, 219, 26, 886, 887,
3042 292, 708, 109, 849, 142, 851, 49, 467, 335, 140,
3043 875, 292, 217, 335, 219, 56, 297, 335, 145, 337,
3044 147, 87, 873, 341, 342, 138, 139, 336, 88, 343,
3045 395, 396, 690, 140, 334, 302, 139, 26, 356, 404,
3046 307, 140, 930, 109, 932, 359, 892, 85, 147, 662,
3047 109, 85, 109, 302, 61, 26, 85, 140, 307, 140,
3048 15, 142, 17, 928, 679, 87, 384, 385, 973, 85,
3049 85, 959, 437, 400, 590, 440, 421, 140, 400, 142,
3050 614, 140, 400, 85, 143, 140, 85, 223, 147, 225,
3051 412, 413, 401, 450, 142, 941, 85, 104, 105, 399,
3052 138, 139, 424, 136, 142, 139, 424, 136, 421, 138,
3053 139, 880, 85, 421, 85, 433, 85, 142, 427, 484,
3054 140, 421, 138, 139, 139, 452, 426, 147, 85, 142,
3055 452, 85, 450, 490, 452, 384, 385, 139, 450, 146,
3056 139, 85, 822, 424, 453, 68, 85, 136, 85, 138,
3057 139, 451, 433, 142, 197, 87, 85, 293, 294, 295,
3058 296, 483, 298, 299, 68, 136, 139, 138, 139, 138,
3059 139, 142, 490, 396, 85, 37, 38, 109, 490, 668,
3060 822, 223, 139, 548, 138, 139, 675, 230, 109, 52,
3061 514, 54, 55, 56, 57, 139, 119, 120, 121, 242,
3062 139, 138, 139, 861, 246, 341, 342, 143, 532, 867,
3063 139, 26, 728, 52, 437, 530, 538, 56, 540, 85,
3064 356, 530, 587, 538, 542, 552, 544, 138, 139, 538,
3065 552, 545, 546, 56, 552, 600, 601, 564, 85, 584,
3066 59, 60, 564, 144, 553, 559, 564, 137, 566, 567,
3067 106, 551, 574, 575, 576, 577, 565, 87, 615, 574,
3068 575, 304, 140, 563, 106, 574, 575, 87, 590, 593,
3069 85, 584, 138, 139, 87, 85, 584, 140, 68, 109,
3070 68, 548, 14, 15, 584, 85, 604, 609, 85, 109,
3071 140, 138, 139, 658, 17, 619, 109, 615, 56, 608,
3072 609, 574, 575, 615, 661, 145, 25, 951, 52, 94,
3073 54, 55, 56, 57, 679, 143, 638, 146, 640, 697,
3074 642, 136, 700, 138, 139, 137, 140, 142, 138, 139,
3075 52, 653, 54, 55, 56, 57, 654, 711, 138, 139,
3076 10, 138, 139, 661, 662, 89, 61, 665, 666, 661,
3077 65, 95, 96, 671, 672, 109, 952, 679, 680, 140,
3078 682, 140, 684, 140, 406, 140, 140, 89, 410, 734,
3079 694, 140, 116, 415, 96, 119, 8, 600, 13, 697,
3080 87, 705, 700, 701, 698, 61, 87, 137, 430, 104,
3081 105, 709, 109, 435, 116, 54, 710, 719, 716, 717,
3082 140, 145, 109, 140, 63, 64, 728, 772, 109, 140,
3083 68, 711, 679, 662, 87, 52, 665, 666, 796, 52,
3084 742, 111, 671, 672, 140, 743, 744, 87, 104, 105,
3085 106, 567, 144, 140, 549, 15, 109, 755, 803, 140,
3086 2, 763, 4, 765, 87, 767, 768, 489, 52, 109,
3087 54, 55, 56, 57, 16, 17, 140, 822, 20, 117,
3088 118, 119, 120, 121, 145, 783, 109, 140, 604, 791,
3089 109, 140, 794, 114, 140, 793, 140, 140, 796, 10,
3090 140, 88, 800, 801, 140, 9, 804, 49, 50, 10,
3091 137, 140, 806, 10, 808, 61, 140, 140, 140, 542,
3092 62, 544, 820, 137, 140, 114, 52, 137, 54, 55,
3093 56, 57, 834, 835, 140, 837, 68, 839, 840, 140,
3094 140, 83, 84, 137, 842, 87, 56, 140, 140, 68,
3095 842, 83, 84, 56, 783, 140, 140, 140, 104, 105,
3096 106, 140, 860, 89, 83, 84, 864, 140, 860, 95,
3097 96, 873, 142, 142, 61, 140, 424, 875, 90, 88,
3098 61, 697, 954, 736, 700, 117, 118, 119, 120, 121,
3099 116, 93, 904, 119, 689, 114, 115, 116, 117, 118,
3100 119, 120, 121, 953, 906, 907, 908, 96, 910, 911,
3101 640, 706, 642, 57, 91, 880, 142, 104, 105, 106,
3102 918, 849, 920, 104, 105, 106, 653, 746, 926, -1,
3103 928, 654, 934, 935, 936, 937, 52, -1, 54, 55,
3104 56, 57, -1, -1, 951, -1, -1, 54, 55, 951,
3105 57, 953, 954, 951, -1, 197, 63, 64, -1, 939,
3106 -1, -1, -1, 952, -1, 967, 968, 969, 970, 973,
3107 950, -1, -1, 89, -1, 217, -1, 219, 220, 981,
3108 796, 223, -1, 225, -1, 707, -1, 989, 230, -1,
3109 -1, -1, -1, 716, 717, 68, -1, -1, -1, 241,
3110 242, -1, 797, -1, 799, -1, -1, 729, -1, -1,
3111 83, 84, -1, -1, 809, -1, -1, -1, 740, 814,
3112 743, 744, 749, -1, 52, 752, 54, 55, 56, 57,
3113 -1, -1, 755, -1, -1, 765, -1, 767, 768, -1,
3114 -1, -1, -1, 116, 117, 118, 119, 120, 121, -1,
3115 292, 293, 294, 295, 296, 297, 298, 299, -1, -1,
3116 302, 89, 304, -1, -1, 307, -1, 95, -1, 52,
3117 793, 54, 55, 56, 57, 870, 871, 800, 801, -1,
3118 -1, 804, 16, 17, -1, -1, 20, -1, -1, -1,
3119 -1, 813, -1, 335, -1, 337, -1, 820, -1, 341,
3120 342, -1, -1, 825, 834, 835, -1, 837, 830, 839,
3121 840, -1, 46, 47, 356, -1, -1, 51, 52, -1,
3122 -1, -1, -1, -1, 851, -1, 853, -1, 62, 63,
3123 -1, 52, 927, 54, 55, 56, 57, -1, -1, -1,
3124 -1, 864, 384, 385, 40, 41, 42, 43, 44, -1,
3125 -1, -1, -1, -1, -1, -1, -1, -1, 400, -1,
3126 955, -1, 957, -1, -1, 892, -1, 894, 89, -1,
3127 -1, 898, -1, -1, 95, -1, 906, 907, 908, -1,
3128 910, 911, 424, 52, -1, 54, 55, 56, 57, -1,
3129 -1, 433, -1, -1, -1, 918, -1, 920, -1, -1,
3130 -1, -1, -1, 926, 934, 935, 936, 937, -1, -1,
3131 452, -1, -1, -1, 941, -1, 943, -1, -1, 946,
3132 89, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3133 -1, -1, -1, -1, 961, -1, -1, 967, 968, 969,
3134 970, -1, -1, -1, -1, -1, -1, 116, -1, -1,
3135 119, 981, -1, -1, -1, -1, 983, -1, -1, 989,
3136 -1, 195, -1, -1, 198, 199, 200, -1, -1, -1,
3137 2, -1, 4, 142, -1, 52, -1, 54, 55, 56,
3138 57, -1, -1, 217, -1, 219, 220, -1, -1, -1,
3139 -1, 2, -1, 4, -1, -1, -1, -1, -1, -1,
3140 542, -1, 544, 52, -1, 54, 55, 56, 57, -1,
3141 552, -1, 89, -1, -1, -1, -1, 49, 95, 96,
3142 -1, 53, 564, -1, 566, 567, -1, -1, -1, -1,
3143 -1, -1, -1, -1, -1, -1, -1, -1, 49, 116,
3144 89, -1, 119, -1, 76, -1, 95, 96, -1, -1,
3145 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
3146 -1, -1, 604, -1, -1, -1, -1, 116, 302, -1,
3147 119, -1, -1, 307, 308, 309, 310, 311, 312, 313,
3148 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
3149 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
3150 -1, 335, -1, -1, -1, -1, -1, -1, -1, -1,
3151 -1, -1, 654, -1, -1, -1, -1, -1, -1, -1,
3152 662, -1, -1, 665, 666, -1, -1, -1, -1, 671,
3153 672, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3154 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3155 384, 385, -1, -1, -1, 697, -1, -1, 700, 701,
3156 394, 395, 396, -1, -1, 197, 400, 709, 402, 403,
3157 404, -1, -1, -1, 716, 717, 112, 113, 114, 115,
3158 116, 117, 118, 119, 120, 121, 197, -1, -1, 423,
3159 -1, -1, -1, -1, 428, -1, -1, -1, 230, -1,
3160 -1, 743, 744, 437, -1, -1, 440, -1, -1, 241,
3161 242, -1, -1, 755, -1, -1, -1, -1, 452, 230,
3162 -1, -1, -1, -1, -1, -1, -1, -1, -1, 261,
3163 241, 242, -1, -1, -1, -1, -1, -1, 472, 473,
3164 -1, 783, -1, -1, -1, -1, -1, -1, -1, -1,
3165 484, 793, -1, -1, 796, -1, -1, -1, 800, 801,
3166 292, -1, 804, -1, -1, 297, -1, -1, -1, -1,
3167 -1, -1, 304, 305, -1, -1, -1, 2, 820, 4,
3168 -1, 292, -1, -1, -1, -1, 297, -1, -1, -1,
3169 -1, -1, -1, 304, -1, -1, -1, -1, -1, -1,
3170 -1, -1, -1, -1, -1, 337, -1, 2, -1, 4,
3171 -1, -1, -1, -1, 548, -1, -1, -1, 552, -1,
3172 -1, -1, 864, -1, 49, 2, 337, 4, 53, -1,
3173 564, -1, -1, 875, -1, -1, -1, -1, -1, -1,
3174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3175 -1, 76, -1, 587, 49, -1, -1, -1, 53, -1,
3176 -1, -1, -1, 88, 89, 90, 600, 601, -1, -1,
3177 -1, -1, 49, -1, -1, -1, 918, -1, 920, -1,
3178 -1, 76, -1, -1, 926, -1, 928, -1, -1, -1,
3179 -1, -1, 424, 88, 89, 90, 91, -1, -1, -1,
3180 -1, 433, -1, -1, -1, -1, -1, -1, -1, 951,
3181 -1, 88, -1, 424, -1, -1, -1, -1, 450, -1,
3182 -1, -1, 433, -1, 658, -1, -1, -1, 662, 663,
3183 -1, 665, 666, -1, -1, -1, -1, 671, 672, 0,
3184 -1, -1, -1, -1, -1, 679, -1, 8, 9, 10,
3185 -1, -1, 13, 14, 15, -1, 17, -1, 490, -1,
3186 -1, -1, -1, -1, -1, -1, 27, -1, -1, -1,
3187 -1, -1, 197, -1, -1, -1, 37, 38, -1, 40,
3188 41, 42, 43, 44, 718, -1, -1, -1, -1, 723,
3189 724, -1, 726, 727, -1, -1, -1, -1, -1, -1,
3190 734, -1, 197, -1, -1, 230, -1, -1, -1, -1,
3191 542, -1, 544, -1, -1, -1, 241, 242, -1, -1,
3192 197, -1, -1, -1, 85, -1, -1, -1, -1, -1,
3193 -1, 542, -1, 544, 566, 230, 261, -1, 772, -1,
3194 -1, -1, 776, -1, -1, -1, 241, 242, -1, 783,
3195 -1, -1, -1, 230, -1, 566, -1, -1, -1, -1,
3196 -1, -1, -1, -1, 241, 242, 261, 292, -1, 803,
3197 -1, -1, 297, -1, -1, -1, 137, -1, 139, 304,
3198 305, 142, 143, 615, 145, -1, 147, 821, 822, -1,
3199 -1, -1, -1, -1, -1, -1, -1, 292, -1, -1,
3200 -1, -1, 297, -1, -1, -1, -1, -1, -1, 304,
3201 305, -1, 337, -1, -1, 292, -1, -1, -1, -1,
3202 297, -1, 654, -1, -1, -1, -1, 304, -1, 661,
3203 307, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3204 -1, -1, 337, 654, -1, -1, -1, -1, -1, -1,
3205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3206 337, -1, -1, -1, -1, -1, -1, -1, -1, 701,
3207 -1, -1, -1, -1, -1, -1, -1, 709, -1, -1,
3208 -1, -1, -1, -1, 716, 717, -1, -1, -1, -1,
3209 701, -1, -1, -1, -1, -1, -1, -1, 709, 424,
3210 -1, -1, -1, -1, -1, 716, 717, -1, 433, -1,
3211 -1, 743, 744, -1, -1, -1, -1, 951, -1, -1,
3212 -1, -1, -1, 755, -1, 450, -1, -1, -1, 424,
3213 -1, -1, 743, 744, -1, -1, -1, -1, 433, -1,
3214 -1, -1, -1, -1, 755, -1, -1, 424, -1, -1,
3215 -1, -1, -1, -1, -1, 450, 433, -1, -1, -1,
3216 -1, 793, -1, -1, -1, 490, -1, -1, 800, 801,
3217 -1, -1, 804, -1, -1, -1, -1, -1, -1, -1,
3218 -1, -1, 793, -1, -1, -1, -1, -1, 820, 800,
3219 801, -1, -1, 804, -1, 490, -1, -1, -1, -1,
3220 -1, -1, -1, -1, -1, -1, -1, -1, -1, 820,
3221 842, -1, -1, -1, -1, -1, -1, 542, -1, 544,
3222 -1, -1, -1, -1, -1, -1, -1, -1, 860, -1,
3223 -1, -1, 864, -1, -1, -1, -1, -1, -1, -1,
3224 -1, 566, -1, 875, -1, -1, -1, 542, -1, 544,
3225 -1, -1, -1, 864, -1, -1, -1, -1, -1, -1,
3226 -1, -1, -1, -1, 875, 542, -1, 544, -1, -1,
3227 -1, 566, -1, -1, -1, -1, -1, -1, -1, -1,
3228 -1, -1, -1, -1, -1, -1, 918, -1, 920, 566,
3229 615, -1, -1, -1, 926, -1, 928, -1, -1, -1,
3230 -1, -1, -1, -1, -1, -1, -1, 918, -1, 920,
3231 -1, -1, -1, -1, -1, 926, -1, 928, -1, -1,
3232 615, 646, -1, -1, -1, -1, -1, -1, -1, 654,
3233 -1, -1, -1, -1, -1, -1, 661, -1, -1, -1,
3234 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3235 -1, -1, 68, 69, 70, 71, 72, 73, 74, 654,
3236 -1, 77, 78, -1, -1, -1, 661, 83, 84, -1,
3237 -1, -1, -1, -1, -1, -1, 701, 654, -1, -1,
3238 -1, -1, -1, -1, 709, 662, -1, -1, -1, -1,
3239 -1, 716, 717, -1, -1, -1, 112, 113, 114, 115,
3240 116, 117, 118, 119, 120, 121, 701, -1, -1, -1,
3241 -1, -1, -1, -1, 709, -1, -1, -1, 743, 744,
3242 -1, 716, 717, -1, 701, -1, -1, -1, -1, -1,
3243 755, -1, 709, -1, -1, -1, -1, -1, -1, 716,
3244 717, 68, 69, 70, 71, 72, 73, 74, 743, 744,
3245 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3246 755, -1, -1, -1, -1, -1, 743, 744, 793, -1,
3247 -1, -1, -1, -1, -1, 800, 801, -1, 755, 804,
3248 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
3249 117, 118, 119, 120, 121, 820, -1, -1, 793, -1,
3250 -1, -1, -1, -1, -1, 800, 801, -1, -1, 804,
3251 -1, -1, -1, -1, -1, -1, 793, 842, -1, -1,
3252 -1, -1, -1, 800, 801, 820, -1, 804, -1, -1,
3253 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3254 -1, -1, -1, 820, -1, -1, -1, 842, -1, -1,
3255 875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3256 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3258 875, -1, -1, 860, -1, -1, -1, 864, -1, -1,
3259 -1, -1, -1, 918, -1, 920, -1, -1, 875, -1,
3260 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3261 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3262 -1, -1, -1, 918, -1, 920, -1, -1, -1, -1,
3263 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3264 -1, 918, -1, 920, -1, -1, -1, -1, -1, 926,
3265 -1, 928, 0, 1, -1, 3, 4, 5, 6, 7,
3266 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3267 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3268 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3269 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3270 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3271 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3272 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3273 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3274 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3275 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3277 -1, -1, -1, 0, 122, 123, 124, -1, -1, -1,
3278 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3279 17, -1, -1, -1, -1, -1, -1, 145, -1, 147,
3280 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3281 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3282 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3283 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3284 84, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3285 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3286 87, 88, -1, -1, -1, -1, 110, 94, 112, 113,
3287 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3288 107, -1, 109, 110, 111, 112, 113, 114, 115, 116,
3289 117, 118, 119, 120, 121, -1, -1, -1, -1, -1,
3290 -1, -1, -1, 147, -1, -1, -1, -1, -1, -1,
3291 137, 138, 139, 140, 0, -1, 143, 144, 145, -1,
3292 147, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3293 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3294 26, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3295 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3296 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3297 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3298 83, 84, 68, 69, 70, 71, 72, 73, 74, 75,
3299 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3300 -1, -1, 88, -1, -1, -1, -1, 110, 94, 112,
3301 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3302 -1, -1, -1, -1, 110, -1, 112, 113, 114, 115,
3303 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3304 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3305 136, 137, 138, 139, 140, 0, 142, 143, 144, 145,
3306 -1, 147, -1, 8, 9, 10, -1, -1, 13, 14,
3307 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3308 -1, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3309 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3310 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3311 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3312 -1, 83, 84, 68, 69, 70, 71, 72, 73, 74,
3313 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3314 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3315 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3316 -1, -1, 107, -1, -1, 110, 111, 112, 113, 114,
3317 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
3318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3319 -1, -1, 137, 138, 139, 140, 0, -1, 143, 144,
3320 145, -1, 147, -1, 8, 9, 10, -1, -1, 13,
3321 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3322 -1, -1, 26, 27, 28, -1, -1, -1, -1, -1,
3323 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3324 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3326 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3327 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3328 84, 85, -1, -1, 88, -1, -1, -1, -1, -1,
3329 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3330 -1, -1, -1, -1, -1, -1, 110, -1, 112, 113,
3331 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3333 -1, -1, 136, 137, 138, 139, 140, 0, 142, 143,
3334 144, 145, -1, 147, -1, 8, 9, 10, -1, -1,
3335 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3336 -1, -1, -1, -1, 27, 28, -1, -1, -1, -1,
3337 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3338 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3340 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3341 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3342 83, 84, 85, -1, -1, 88, -1, -1, -1, -1,
3343 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
3344 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
3345 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3347 -1, -1, -1, -1, 137, 138, 139, 140, 0, 142,
3348 143, 144, 145, -1, 147, -1, 8, 9, 10, -1,
3349 -1, -1, 14, 15, -1, 17, -1, -1, -1, -1,
3350 -1, -1, -1, -1, 26, -1, -1, -1, -1, -1,
3351 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3352 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3354 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3355 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3356 -1, 83, 84, 85, 0, 87, -1, -1, -1, -1,
3357 -1, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3358 -1, 17, -1, -1, -1, -1, -1, 109, 110, -1,
3359 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3360 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3361 -1, -1, -1, -1, 136, 137, 138, 139, 140, -1,
3362 -1, 143, -1, 145, -1, 147, -1, -1, -1, -1,
3363 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3364 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3365 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3367 -1, -1, -1, 109, 110, -1, 112, 113, 114, 115,
3368 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3370 -1, 137, 138, 139, 140, -1, -1, 143, -1, 145,
3371 1, 147, 3, 4, 5, 6, 7, 8, 9, 10,
3372 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3373 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3374 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3375 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3376 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3377 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3379 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3380 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3381 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3383 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3385 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3386 6, 7, -1, -1, 10, 11, 12, -1, 14, 15,
3387 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3388 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3389 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3390 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3391 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3392 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3394 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3395 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3397 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3398 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3399 -1, -1, -1, -1, -1, -1, -1, -1, -1, 145,
3400 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3401 11, 12, -1, -1, 15, 16, 17, 18, 19, 20,
3402 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3403 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3404 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3405 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3406 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3408 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3409 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3410 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3412 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3413 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
3414 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3415 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3416 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3417 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3418 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3419 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3421 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3422 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3423 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3425 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3426 -1, -1, -1, -1, -1, -1, 137, -1, -1, -1,
3427 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3428 6, 7, -1, -1, 10, 11, 12, -1, -1, 15,
3429 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3430 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3431 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3432 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3433 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3434 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3436 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3437 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3439 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3440 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3441 6, 7, -1, 9, 10, 11, 12, -1, -1, 145,
3442 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3443 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3444 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3445 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3446 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3447 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3449 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3450 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3452 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3453 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3454 6, 7, -1, -1, -1, 11, 12, -1, -1, 145,
3455 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3456 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3457 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3458 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3459 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3460 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3461 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3462 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3463 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3465 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3466 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3467 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3468 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3469 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3470 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3471 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3472 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3473 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3475 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3476 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3478 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3479 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3480 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3481 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3482 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3483 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3484 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3485 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3486 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3488 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3489 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3491 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3493 -1, 137, -1, -1, -1, -1, -1, -1, -1, 145,
3494 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3495 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
3496 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3497 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3498 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3499 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3500 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3502 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3503 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3504 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3506 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3507 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3508 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3509 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3510 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3511 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3512 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3513 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3515 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3516 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3517 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3518 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3519 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3520 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3521 32, 33, 34, 35, 36, -1, 147, 39, -1, -1,
3522 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3523 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3524 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3526 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3527 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3528 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 122, 123, 124, -1, -1, -1, -1, -1, -1, -1,
3531 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3532 12, -1, -1, 145, 16, 147, 18, 19, 20, 21,
3533 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3534 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3535 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3536 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3537 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3539 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3540 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3541 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3542 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
3543 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3544 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3545 33, 34, 35, 36, -1, 147, 39, -1, -1, -1,
3546 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3547 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3548 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3550 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3551 93, -1, 95, -1, 97, 98, 99, 100, 101, 102,
3552 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3553 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3554 123, 124, -1, -1, -1, -1, -1, -1, 3, 4,
3555 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3556 -1, 16, 145, 18, 19, 20, 21, 22, 23, 24,
3557 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3558 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3559 45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
3560 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3561 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3563 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3564 95, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3566 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 145, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3570 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3571 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3572 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3573 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3574 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3575 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3576 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3577 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3578 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3580 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3581 -1, 123, 124, -1, -1, -1, -1, -1, 3, 4,
3582 5, -1, 7, -1, -1, -1, 11, 12, -1, 141,
3583 142, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3584 -1, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3585 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3586 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3587 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3588 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3590 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3591 95, 96, 97, 98, 99, 100, 101, 102, 103, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3594 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3595 -1, 136, -1, 11, 12, -1, -1, 142, 16, -1,
3596 18, 19, 20, 21, 22, 23, 24, -1, 26, -1,
3597 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3598 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3599 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3600 58, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3602 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3603 -1, 89, 90, -1, 92, 93, -1, 95, 96, 97,
3604 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3606 -1, -1, -1, -1, 122, 123, 124, -1, -1, -1,
3607 -1, -1, 3, 4, 5, -1, 7, -1, 136, -1,
3608 11, 12, -1, -1, 142, 16, -1, 18, 19, 20,
3609 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3610 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3611 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3612 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3613 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3614 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3615 -1, -1, -1, -1, -1, 86, 87, -1, 89, 90,
3616 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3617 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
3618 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3619 7, 122, 123, 124, 11, 12, -1, -1, -1, 16,
3620 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3621 -1, 142, -1, 30, 31, 32, 33, 34, 35, 36,
3622 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3623 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3624 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3625 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3626 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3627 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3628 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3630 3, 4, 5, -1, 7, 122, 123, 124, 11, 12,
3631 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3632 23, 24, -1, -1, -1, 142, -1, 30, 31, 32,
3633 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3634 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3635 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3636 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3638 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3639 93, -1, 95, 96, 97, 98, 99, 100, 101, 102,
3640 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3642 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
3644 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3645 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3646 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
3647 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
3648 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3649 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
3650 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
3651 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
3652 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3655 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3656 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, -1, -1, -1, 141, 3,
3658 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3659 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3660 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
3661 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
3662 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3663 54, -1, 56, -1, -1, -1, -1, -1, -1, -1,
3664 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
3665 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
3666 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3667 -1, 95, -1, -1, 98, -1, -1, -1, -1, -1,
3668 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
3669 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
3670 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671 -1, -1, -1, -1, -1, -1, -1, 141, 3, 4,
3672 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3673 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3674 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3675 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3676 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3677 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3678 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3679 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3681 95, -1, -1, 98, -1, -1, -1, -1, -1, -1,
3682 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3683 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3685 -1, -1, -1, -1, -1, -1, 141, 3, 4, 5,
3686 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3687 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3688 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3689 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
3690 46, 47, 48, 49, 50, 51, 52, 53, -1, -1,
3691 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3692 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
3693 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
3694 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
3695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3696 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
3697 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
3698 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3699 12, -1, -1, -1, 16, 141, 18, 19, 20, 21,
3700 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3701 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3702 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3703 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3704 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3706 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3707 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3708 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3709 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3710 122, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3711 20, 21, 22, 23, 24, -1, -1, -1, 140, -1,
3712 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3713 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3714 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3715 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3717 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3718 90, -1, 92, 93, -1, -1, -1, 97, 98, 99,
3719 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3720 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3721 -1, -1, 122, 11, 12, -1, -1, -1, 16, -1,
3722 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3723 140, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3724 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3725 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3726 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3728 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3729 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3730 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3731 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3732 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3733 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3734 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3735 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3736 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3737 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3739 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3740 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3741 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3742 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3743 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3744 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3745 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3746 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3747 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3748 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3750 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3751 90, -1, 92, 93, -1, 95, 96, 97, 98, 99,
3752 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3753 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3754 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3755 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3756 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3757 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3758 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3759 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3760 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3761 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3762 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3763 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3764 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3765 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3766 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3767 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3768 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3769 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3770 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3771 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3772 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3773 92, 93, -1, 95, -1, 97, 98, 99, 100, 101,
3774 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3775 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3776 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3777 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3778 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3779 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3780 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3781 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3782 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3783 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3784 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3785 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3786 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3787 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3788 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3789 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3790 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3791 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3792 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3794 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3795 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3796 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3797 5, -1, 7, -1, -1, -1, 11, 12, 122, 123,
3798 124, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3799 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3800 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3801 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3802 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3803 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3805 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3806 -1, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3807 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3808 -1, 7, -1, -1, -1, 11, 12, 122, 123, 124,
3809 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3810 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3811 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3812 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3813 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3814 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3816 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3817 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3818 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3819 7, -1, -1, -1, 11, 12, 122, 123, 124, 16,
3820 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3821 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3822 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3823 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3824 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3825 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3826 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3827 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3828 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3829 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3830 -1, -1, -1, 11, 12, 122, 123, 124, 16, -1,
3831 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3832 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3833 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3834 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3835 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3837 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3838 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3839 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3840 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3841 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3842 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3843 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3844 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3845 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3846 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3848 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3849 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3850 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3851 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3852 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3853 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3854 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3855 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3856 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3857 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3859 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3860 90, -1, 92, 93, -1, 95, -1, 97, 98, 99,
3861 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3862 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3863 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3864 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3865 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3866 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3867 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3868 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3870 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3871 -1, 92, 93, -1, -1, -1, 97, 98, 99, 100,
3872 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3873 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3874 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3875 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3876 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3877 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3878 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3879 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3881 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3882 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3883 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3884 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3885 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3886 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3887 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3888 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3889 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3890 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3892 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3893 93, -1, -1, -1, 97, 98, 99, 100, 101, 102,
3894 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3895 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3896 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3897 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3898 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3899 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3900 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3901 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3902 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3903 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3904 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3905 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3906 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3907 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3908 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3909 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3910 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3911 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3913 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3914 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3915 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3916 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3917 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3918 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3919 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3920 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3921 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3922 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3923 -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
3924 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3925 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3926 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3927 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3928 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3929 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3930 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3931 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3932 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3933 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3934 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3935 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
3936 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3937 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3938 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3939 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3940 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3941 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3942 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3943 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3945 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3946 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3947 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3948 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3949 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3950 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3951 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3952 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3953 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3955 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3956 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
3957 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3958 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3959 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3960 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3961 34, 35, 36, -1, -1, 39, -1, 44, -1, -1,
3962 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3963 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3964 64, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3965 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3966 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3967 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3968 -1, -1, -1, 110, -1, 112, 113, 114, 115, 116,
3969 117, 118, 119, 120, 121, -1, -1, -1, 122, -1,
3970 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3971 -1, -1, -1, 140, 66, 67, 68, 69, 70, 71,
3972 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3973 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3974 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3975 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3976 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3977 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
3978 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
3979 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3980 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3981 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3982 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3983 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3984 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3985 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
3986 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
3987 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3988 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3989 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
3990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3991 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
3992 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
3993 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
3994 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
3995 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
3996 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
3997 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
3998 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3999 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4000 121, -1, 123, 124, -1, -1, -1, -1, 52, 53,
4001 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4002 141, 142, 66, 67, 68, 69, 70, 71, 72, 73,
4003 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4004 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4005 -1, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
4007 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
4008 124, -1, -1, -1, -1, 52, 53, -1, -1, 56,
4009 -1, -1, -1, -1, -1, -1, -1, 141, 142, 66,
4010 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4011 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4012 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
4013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4014 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
4015 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
4016 -1, -1, 52, 53, -1, -1, 56, -1, -1, -1,
4017 -1, -1, -1, -1, 141, 142, 66, 67, 68, 69,
4018 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4019 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4020 -1, -1, -1, -1, -1, 95, -1, -1, -1, -1,
4021 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4022 -1, -1, 112, 113, 114, 115, 116, 117, 118, 119,
4023 120, 121, -1, 123, 124, -1, -1, -1, -1, 52,
4024 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
4025 -1, 141, 142, 66, 67, 68, 69, 70, 71, 72,
4026 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4027 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4028 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
4030 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
4031 123, 124, -1, -1, -1, -1, 52, 53, -1, -1,
4032 56, -1, -1, -1, -1, -1, -1, -1, 141, 142,
4033 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4034 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4035 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4036 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4037 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
4038 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
4039 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
4040 -1, -1, -1, -1, -1, 141, 142, 66, 67, 68,
4041 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4042 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4043 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
4044 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4045 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
4046 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
4047 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4048 -1, -1, 141, 142, 66, 67, 68, 69, 70, 71,
4049 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4050 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4051 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
4052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4053 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4054 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
4055 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
4056 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4057 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4059 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4060 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
4061 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
4062 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
4063 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
4064 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4065 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4066 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
4067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4068 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
4069 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
4070 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4071 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
4072 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4073 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4074 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
4075 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
4076 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4077 121, 44, 123, 124, -1, -1, 68, 69, 70, 71,
4078 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
4079 141, 83, 84, -1, -1, 68, 69, 70, 71, 72,
4080 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
4081 83, 84, -1, -1, -1, -1, -1, -1, 110, -1,
4082 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4083 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
4084 113, 114, 115, 116, 117, 118, 119, 120, 121
4091 0, 149, 150, 0, 1, 3, 4, 5, 6, 7,
4092 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4093 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4094 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4095 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4096 90, 92, 93, 95, 97, 98, 99, 100, 101, 102,
4097 103, 122, 123, 124, 151, 152, 153, 158, 160, 161,
4098 163, 164, 167, 168, 170, 171, 172, 174, 175, 185,
4099 199, 216, 217, 218, 219, 220, 221, 222, 223, 224,
4100 225, 226, 249, 250, 260, 261, 262, 263, 264, 265,
4101 266, 269, 279, 281, 282, 283, 284, 285, 286, 287,
4102 310, 321, 153, 3, 4, 5, 6, 7, 8, 9,
4103 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4104 20, 21, 22, 23, 24, 25, 26, 30, 31, 32,
4105 33, 34, 35, 36, 37, 38, 39, 45, 46, 47,
4106 48, 49, 50, 51, 52, 53, 56, 66, 67, 68,
4107 69, 70, 71, 72, 73, 74, 77, 78, 81, 82,
4108 83, 84, 95, 112, 113, 114, 115, 116, 117, 118,
4109 119, 120, 121, 123, 124, 141, 178, 179, 180, 181,
4110 183, 184, 279, 281, 39, 58, 86, 89, 95, 96,
4111 123, 167, 175, 185, 187, 192, 195, 197, 216, 283,
4112 284, 286, 287, 308, 309, 192, 192, 142, 193, 194,
4113 142, 189, 193, 142, 147, 315, 54, 180, 315, 154,
4114 136, 21, 22, 30, 31, 32, 185, 216, 310, 185,
4115 56, 1, 89, 156, 157, 158, 169, 170, 321, 161,
4116 188, 197, 308, 321, 187, 307, 308, 321, 46, 86,
4117 122, 140, 174, 199, 216, 283, 284, 287, 242, 243,
4118 54, 55, 57, 178, 272, 280, 271, 272, 273, 146,
4119 267, 146, 270, 59, 60, 163, 185, 185, 145, 147,
4120 314, 319, 320, 40, 41, 42, 43, 44, 37, 38,
4121 28, 247, 109, 140, 89, 95, 171, 109, 68, 69,
4122 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4123 80, 83, 84, 110, 112, 113, 114, 115, 116, 117,
4124 118, 119, 120, 121, 85, 138, 139, 200, 161, 162,
4125 162, 203, 205, 162, 314, 320, 86, 168, 175, 216,
4126 232, 283, 284, 287, 52, 56, 83, 86, 176, 177,
4127 216, 283, 284, 287, 177, 33, 34, 35, 36, 49,
4128 50, 51, 52, 56, 142, 178, 285, 305, 85, 139,
4129 26, 136, 251, 263, 87, 87, 189, 193, 251, 140,
4130 187, 56, 187, 187, 109, 88, 140, 196, 321, 85,
4131 138, 139, 87, 87, 140, 196, 192, 315, 316, 192,
4132 191, 192, 197, 308, 321, 161, 316, 161, 54, 63,
4133 64, 159, 142, 186, 136, 156, 85, 139, 87, 158,
4134 169, 143, 314, 320, 316, 201, 144, 140, 147, 318,
4135 140, 318, 137, 318, 315, 56, 59, 60, 171, 173,
4136 140, 85, 138, 139, 244, 61, 104, 105, 106, 274,
4137 106, 274, 106, 65, 274, 106, 106, 268, 274, 106,
4138 61, 106, 68, 68, 145, 153, 162, 162, 162, 162,
4139 158, 161, 161, 248, 95, 163, 187, 197, 198, 169,
4140 140, 174, 140, 160, 163, 175, 185, 187, 198, 185,
4141 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4142 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4143 185, 185, 185, 185, 185, 52, 53, 56, 183, 189,
4144 311, 312, 191, 52, 53, 56, 183, 189, 311, 155,
4145 156, 13, 228, 319, 228, 162, 162, 314, 17, 254,
4146 56, 85, 138, 139, 25, 161, 52, 56, 176, 1,
4147 113, 288, 319, 85, 138, 139, 212, 306, 213, 85,
4148 139, 313, 52, 56, 311, 311, 253, 252, 163, 185,
4149 163, 185, 94, 165, 182, 185, 187, 95, 187, 195,
4150 308, 52, 56, 191, 52, 56, 309, 316, 143, 316,
4151 140, 140, 316, 180, 202, 185, 151, 137, 311, 311,
4152 185, 316, 158, 316, 308, 140, 173, 52, 56, 191,
4153 52, 56, 52, 54, 55, 56, 57, 89, 95, 96,
4154 116, 119, 142, 245, 291, 292, 293, 294, 295, 296,
4155 299, 300, 301, 302, 303, 276, 275, 146, 274, 146,
4156 185, 185, 76, 114, 237, 238, 321, 187, 140, 316,
4157 173, 140, 109, 44, 315, 87, 87, 189, 193, 315,
4158 317, 87, 87, 189, 190, 193, 321, 10, 227, 8,
4159 256, 321, 156, 13, 156, 27, 229, 319, 229, 254,
4160 197, 227, 52, 56, 191, 52, 56, 207, 210, 319,
4161 289, 209, 52, 56, 176, 191, 155, 161, 142, 290,
4162 291, 214, 190, 193, 190, 193, 237, 237, 44, 166,
4163 180, 187, 196, 87, 87, 317, 87, 87, 308, 161,
4164 137, 318, 171, 317, 109, 52, 89, 95, 233, 234,
4165 235, 293, 291, 29, 107, 246, 140, 304, 321, 140,
4166 304, 52, 140, 304, 52, 277, 54, 55, 57, 278,
4167 287, 52, 145, 236, 239, 295, 297, 298, 301, 303,
4168 321, 156, 95, 187, 173, 185, 111, 163, 185, 163,
4169 185, 165, 144, 87, 163, 185, 163, 185, 165, 187,
4170 198, 257, 321, 15, 231, 321, 14, 230, 231, 231,
4171 204, 206, 227, 140, 228, 317, 162, 319, 162, 155,
4172 317, 227, 316, 291, 155, 319, 178, 156, 156, 185,
4173 237, 87, 140, 316, 187, 235, 140, 293, 140, 316,
4174 239, 156, 156, 294, 299, 301, 303, 295, 296, 301,
4175 295, 156, 109, 52, 240, 241, 292, 239, 114, 140,
4176 304, 140, 304, 140, 304, 10, 187, 185, 163, 185,
4177 88, 258, 321, 156, 9, 259, 321, 162, 227, 227,
4178 156, 156, 187, 156, 229, 211, 319, 227, 316, 227,
4179 215, 10, 137, 156, 316, 234, 140, 95, 233, 316,
4180 10, 137, 140, 304, 140, 304, 140, 304, 140, 304,
4181 304, 137, 86, 216, 140, 114, 298, 301, 295, 297,
4182 301, 295, 86, 175, 216, 283, 284, 287, 228, 156,
4183 228, 227, 227, 231, 254, 255, 208, 155, 290, 137,
4184 140, 234, 140, 293, 295, 301, 295, 295, 56, 85,
4185 241, 140, 304, 140, 304, 304, 140, 304, 304, 56,
4186 85, 138, 139, 156, 156, 156, 227, 155, 234, 140,
4187 304, 140, 304, 304, 304, 52, 56, 295, 301, 295,
4188 295, 52, 56, 191, 52, 56, 256, 230, 227, 227,
4189 234, 295, 304, 140, 304, 304, 304, 317, 304, 295,
4193 #define yyerrok (yyerrstatus = 0)
4194 #define yyclearin (yychar = YYEMPTY)
4195 #define YYEMPTY (-2)
4198 #define YYACCEPT goto yyacceptlab
4199 #define YYABORT goto yyabortlab
4200 #define YYERROR goto yyerrorlab
4210 #define YYFAIL goto yyerrlab
4218 #define YYRECOVERING() (!!yyerrstatus)
4220 #define YYBACKUP(Token, Value) \
4222 if (yychar == YYEMPTY && yylen == 1) \
4231 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4238 #define YYERRCODE 256
4245 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4246 #ifndef YYLLOC_DEFAULT
4247 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4251 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4252 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4253 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4254 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4258 (Current).first_line = (Current).last_line = \
4259 YYRHSLOC (Rhs, 0).last_line; \
4260 (Current).first_column = (Current).last_column = \
4261 YYRHSLOC (Rhs, 0).last_column; \
4269 #ifndef YY_LOCATION_PRINT
4270 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4277 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4279 # define YYLEX yylex (&yylval, parser)
4287 # define YYFPRINTF fprintf
4290 # define YYDPRINTF(Args) \
4296 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4300 YYFPRINTF (stderr, "%s ", Title); \
4301 yy_symbol_print (stderr, \
4302 Type, Value, parser); \
4303 YYFPRINTF (stderr, "\n"); \
4313 #if (defined __STDC__ || defined __C99__FUNC__ \
4314 || defined __cplusplus || defined _MSC_VER)
4331 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4347 #if (defined __STDC__ || defined __C99__FUNC__ \
4348 || defined __cplusplus || defined _MSC_VER)
4361 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4363 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4374 #if (defined __STDC__ || defined __C99__FUNC__ \
4375 || defined __cplusplus || defined _MSC_VER)
4386 for (; yybottom <= yytop; yybottom++)
4388 int yybot = *yybottom;
4394 # define YY_STACK_PRINT(Bottom, Top) \
4397 yy_stack_print ((Bottom), (Top)); \
4405 #if (defined __STDC__ || defined __C99__FUNC__ \
4406 || defined __cplusplus || defined _MSC_VER)
4417 int yynrhs = yyr2[yyrule];
4419 unsigned long int yylno = yyrline[yyrule];
4420 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4423 for (yyi = 0; yyi < yynrhs; yyi++)
4427 &(yyvsp[(yyi + 1) - (yynrhs)])
4433 # define YY_REDUCE_PRINT(Rule) \
4436 yy_reduce_print (yyvsp, Rule, parser); \
4445 # define YYDPRINTF(Args)
4446 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4447 # define YY_STACK_PRINT(Bottom, Top)
4448 # define YY_REDUCE_PRINT(Rule)
4454 # define YYINITDEPTH 200
4465 # define YYMAXDEPTH 10000
4472 # if defined __GLIBC__ && defined _STRING_H
4473 # define yystrlen strlen
4476 #if (defined __STDC__ || defined __C99__FUNC__ \
4477 || defined __cplusplus || defined _MSC_VER)
4487 for (yylen = 0; yystr[yylen]; yylen++)
4495 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4496 # define yystpcpy stpcpy
4500 #if (defined __STDC__ || defined __C99__FUNC__ \
4501 || defined __cplusplus || defined _MSC_VER)
4503 yystpcpy (
char *yydest,
const char *yysrc)
4512 const char *yys = yysrc;
4514 while ((*yyd++ = *yys++) !=
'\0')
4536 char const *yyp = yystr;
4543 goto do_not_strip_quotes;
4547 goto do_not_strip_quotes;
4560 do_not_strip_quotes: ;
4566 return yystpcpy (yyres, yystr) - yyres;
4585 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4587 const char *yyformat = 0;
4589 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4623 int yyn = yypact[*yyssp];
4624 yyarg[yycount++] = yytname[yytoken];
4630 int yyxbegin = yyn < 0 ? -yyn : 0;
4632 int yychecklim =
YYLAST - yyn + 1;
4636 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4637 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4640 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4646 yyarg[yycount++] = yytname[yyx];
4647 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4648 if (! (yysize <= yysize1
4658 # define YYCASE_(N, S) \
4663 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4664 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4665 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4666 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4667 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4671 yysize1 = yysize +
yystrlen (yyformat);
4676 if (*yymsg_alloc < yysize)
4678 *yymsg_alloc = 2 * yysize;
4679 if (! (yysize <= *yymsg_alloc
4691 while ((*yyp = *yyformat) !=
'\0')
4692 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4712 #if (defined __STDC__ || defined __C99__FUNC__ \
4713 || defined __cplusplus || defined _MSC_VER)
4742 #ifdef YYPARSE_PARAM
4743 #if defined __STDC__ || defined __cplusplus
4749 #if defined __STDC__ || defined __cplusplus
4761 #ifdef YYPARSE_PARAM
4762 #if (defined __STDC__ || defined __C99__FUNC__ \
4763 || defined __cplusplus || defined _MSC_VER)
4769 void *YYPARSE_PARAM;
4772 #if (defined __STDC__ || defined __C99__FUNC__ \
4773 || defined __cplusplus || defined _MSC_VER)
4826 char *yymsg = yymsgbuf;
4827 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4830 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4841 YYDPRINTF ((stderr,
"Starting parse\n"));
4868 if (yyss + yystacksize - 1 <= yyssp)
4871 YYSIZE_T yysize = yyssp - yyss + 1;
4885 yyoverflow (
YY_(
"memory exhausted"),
4886 &yyss1, yysize *
sizeof (*yyssp),
4887 &yyvs1, yysize *
sizeof (*yyvsp),
4894 # ifndef YYSTACK_RELOCATE
4895 goto yyexhaustedlab;
4899 goto yyexhaustedlab;
4909 goto yyexhaustedlab;
4912 # undef YYSTACK_RELOCATE
4919 yyssp = yyss + yysize - 1;
4920 yyvsp = yyvs + yysize - 1;
4922 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
4923 (
unsigned long int) yystacksize));
4925 if (yyss + yystacksize - 1 <= yyssp)
4929 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
4945 yyn = yypact[yystate];
4954 YYDPRINTF ((stderr,
"Reading a token: "));
4958 if (yychar <=
YYEOF)
4960 yychar = yytoken =
YYEOF;
4961 YYDPRINTF ((stderr,
"Now at end of input.\n"));
4972 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5004 yyn = yydefact[yystate];
5025 yyval = yyvsp[1-yylen];
5034 #line 786 "ripper.y"
5048 #line 795 "ripper.y"
5055 NODE *node = (yyvsp[(2) - (2)].
val);
5056 while (node->nd_next) {
5057 node = node->nd_next;
5064 (yyval.
val) = (yyvsp[(2) - (2)].val);
5065 parser->result = dispatch1(program, (yyval.
val));
5074 #line 818 "ripper.y"
5081 (yyval.
val) = (yyvsp[(1) - (2)].val);
5088 #line 829 "ripper.y"
5093 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5102 #line 838 "ripper.y"
5107 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5115 #line 846 "ripper.y"
5120 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5128 #line 854 "ripper.y"
5137 #line 861 "ripper.y"
5152 #line 871 "ripper.y"
5156 (yyvsp[(4) - (5)].val));
5161 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].val));
5169 #line 888 "ripper.y"
5172 (yyval.
val) = (yyvsp[(1) - (4)].val);
5173 if ((yyvsp[(2) - (4)].val)) {
5174 (yyval.
val) =
NEW_RESCUE((yyvsp[(1) - (4)].val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].val));
5176 else if ((yyvsp[(3) - (4)].val)) {
5177 rb_warn0(
"else without rescue is useless");
5180 if ((yyvsp[(4) - (4)].val)) {
5190 (yyval.
val) = dispatch4(bodystmt,
5202 #line 918 "ripper.y"
5209 (yyval.
val) = (yyvsp[(1) - (2)].val);
5216 #line 929 "ripper.y"
5221 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5230 #line 938 "ripper.y"
5235 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5243 #line 946 "ripper.y"
5248 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5256 #line 954 "ripper.y"
5265 #line 959 "ripper.y"
5272 #line 960 "ripper.y"
5275 (yyval.
val) =
NEW_ALIAS((yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
5277 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
5285 #line 968 "ripper.y"
5290 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5298 #line 976 "ripper.y"
5303 buf[1] = (char)(yyvsp[(3) - (3)].val)->nd_nth;
5306 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5314 #line 987 "ripper.y"
5317 yyerror(
"can't make alias for the number variables");
5320 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5321 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5329 #line 997 "ripper.y"
5332 (yyval.
val) = (yyvsp[(2) - (2)].val);
5334 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].val));
5342 #line 1005 "ripper.y"
5348 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5356 #line 1014 "ripper.y"
5362 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5370 #line 1023 "ripper.y"
5374 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val)->nd_body, 0);
5377 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val), 1);
5380 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5388 #line 1036 "ripper.y"
5392 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val)->nd_body, 0);
5395 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val), 1);
5398 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5406 #line 1049 "ripper.y"
5412 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5420 #line 1058 "ripper.y"
5423 rb_warn0(
"END in method; use at_exit");
5427 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].val) , 0 ));
5429 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].val));
5437 #line 1071 "ripper.y"
5441 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5442 (yyval.
val) = (yyvsp[(1) - (3)].val);
5444 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5452 #line 1081 "ripper.y"
5456 if ((yyvsp[(1) - (3)].val)) {
5458 if ((yyvsp[(2) - (3)].val) ==
tOROP) {
5459 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5465 else if ((yyvsp[(2) - (3)].val) ==
tANDOP) {
5466 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5470 (yyval.
val) = (yyvsp[(1) - (3)].val);
5478 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
5486 #line 1110 "ripper.y"
5492 if (!(yyvsp[(3) - (6)].val)) (yyvsp[(3) - (6)].
val) =
NEW_ZARRAY();
5493 args =
arg_concat((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
5494 if ((yyvsp[(5) - (6)].val) ==
tOROP) {
5495 (yyvsp[(5) - (6)].
val) = 0;
5497 else if ((yyvsp[(5) - (6)].val) ==
tANDOP) {
5498 (yyvsp[(5) - (6)].
val) = 1;
5503 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].val),
escape_Qundef((yyvsp[(3) - (6)].val)));
5504 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
5512 #line 1131 "ripper.y"
5516 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5517 (yyvsp[(4) - (5)].
val) = 0;
5519 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5520 (yyvsp[(4) - (5)].
val) = 1;
5522 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5525 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
5526 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5534 #line 1148 "ripper.y"
5538 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5539 (yyvsp[(4) - (5)].
val) = 0;
5541 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5542 (yyvsp[(4) - (5)].
val) = 1;
5544 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5547 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
5548 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5556 #line 1165 "ripper.y"
5559 yyerror(
"constant re-assignment");
5562 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
5563 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5564 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5572 #line 1176 "ripper.y"
5576 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5577 (yyvsp[(4) - (5)].
val) = 0;
5579 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5580 (yyvsp[(4) - (5)].
val) = 1;
5582 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5585 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_intern(
"::"), (yyvsp[(3) - (5)].
val));
5586 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5594 #line 1193 "ripper.y"
5600 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].val)), (yyvsp[(3) - (3)].val));
5601 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5609 #line 1203 "ripper.y"
5615 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5623 #line 1212 "ripper.y"
5626 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5627 (yyval.
val) = (yyvsp[(1) - (3)].val);
5629 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5637 #line 1221 "ripper.y"
5640 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5641 (yyval.
val) = (yyvsp[(1) - (3)].val);
5643 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5651 #line 1233 "ripper.y"
5657 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5665 #line 1242 "ripper.y"
5671 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5679 #line 1255 "ripper.y"
5684 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"and"), (yyvsp[(3) - (3)].
val));
5692 #line 1263 "ripper.y"
5697 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"or"), (yyvsp[(3) - (3)].
val));
5705 #line 1271 "ripper.y"
5718 #line 1279 "ripper.y"
5731 #line 1290 "ripper.y"
5735 (yyval.
val) = (yyvsp[(1) - (1)].val);
5738 (yyval.
val) = (yyvsp[(1) - (1)].val);
5746 #line 1307 "ripper.y"
5749 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5751 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
5752 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5760 #line 1316 "ripper.y"
5763 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5765 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_intern(
"::"), (yyvsp[(3) - (4)].
val));
5766 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5774 #line 1327 "ripper.y"
5787 #line 1337 "ripper.y"
5790 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
5793 (yyval.
val) = dispatch2(brace_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
5802 #line 1349 "ripper.y"
5805 (yyval.
val) =
NEW_FCALL((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
5808 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
5816 #line 1358 "ripper.y"
5821 (yyval.
val) = (yyvsp[(3) - (3)].val);
5824 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
5825 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5833 #line 1370 "ripper.y"
5836 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5847 #line 1379 "ripper.y"
5851 (yyvsp[(5) - (5)].
val)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val));
5852 (yyval.
val) = (yyvsp[(5) - (5)].val);
5856 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5864 #line 1391 "ripper.y"
5867 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5878 #line 1400 "ripper.y"
5882 (yyvsp[(5) - (5)].
val)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val));
5883 (yyval.
val) = (yyvsp[(5) - (5)].val);
5887 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5895 #line 1412 "ripper.y"
5901 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].val));
5909 #line 1421 "ripper.y"
5915 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].val));
5923 #line 1430 "ripper.y"
5928 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].val));
5936 #line 1438 "ripper.y"
5941 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].val));
5949 #line 1446 "ripper.y"
5954 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].val));
5962 #line 1457 "ripper.y"
5965 (yyval.
val) = (yyvsp[(2) - (3)].val);
5967 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
5975 #line 1468 "ripper.y"
5980 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
5988 #line 1478 "ripper.y"
5993 (yyval.
val) = (yyvsp[(1) - (1)].val);
6001 #line 1486 "ripper.y"
6006 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
6014 #line 1494 "ripper.y"
6017 (yyval.
val) =
NEW_MASGN((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6019 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6027 #line 1502 "ripper.y"
6032 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
6033 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].val), (yyvsp[(5) - (5)].
val));
6041 #line 1511 "ripper.y"
6046 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].val),
Qnil);
6054 #line 1519 "ripper.y"
6059 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].val),
Qnil);
6060 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].
val));
6068 #line 1528 "ripper.y"
6073 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6081 #line 1536 "ripper.y"
6086 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6087 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
6095 #line 1545 "ripper.y"
6100 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6108 #line 1553 "ripper.y"
6113 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6114 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6122 #line 1565 "ripper.y"
6125 (yyval.
val) = (yyvsp[(2) - (3)].val);
6127 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
6135 #line 1575 "ripper.y"
6140 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6148 #line 1583 "ripper.y"
6153 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
6161 #line 1593 "ripper.y"
6166 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6174 #line 1601 "ripper.y"
6179 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6187 #line 1611 "ripper.y"
6196 #line 1615 "ripper.y"
6205 #line 1619 "ripper.y"
6208 (yyval.
val) =
aryset((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
6210 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
6218 #line 1627 "ripper.y"
6221 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6223 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6231 #line 1635 "ripper.y"
6234 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6236 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6244 #line 1643 "ripper.y"
6247 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6249 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6257 #line 1651 "ripper.y"
6261 yyerror(
"dynamic constant assignment");
6265 yyerror(
"dynamic constant assignment");
6266 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6274 #line 1663 "ripper.y"
6278 yyerror(
"dynamic constant assignment");
6281 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].val));
6289 #line 1673 "ripper.y"
6295 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].val));
6296 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6304 #line 1685 "ripper.y"
6310 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6318 #line 1694 "ripper.y"
6324 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6332 #line 1703 "ripper.y"
6335 (yyval.
val) =
aryset((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
6337 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
6345 #line 1711 "ripper.y"
6348 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6350 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6358 #line 1719 "ripper.y"
6361 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6363 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
6371 #line 1727 "ripper.y"
6374 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6376 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6384 #line 1735 "ripper.y"
6388 yyerror(
"dynamic constant assignment");
6391 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6393 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6402 #line 1748 "ripper.y"
6406 yyerror(
"dynamic constant assignment");
6409 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].val));
6411 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6420 #line 1761 "ripper.y"
6426 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].val));
6434 #line 1772 "ripper.y"
6437 yyerror(
"class/module name must be CONSTANT");
6439 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].val));
6447 #line 1783 "ripper.y"
6452 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].val));
6460 #line 1791 "ripper.y"
6465 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].val));
6473 #line 1799 "ripper.y"
6478 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6486 #line 1812 "ripper.y"
6489 (yyval.
val) = (yyvsp[(1) - (1)].val);
6496 #line 1817 "ripper.y"
6500 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6502 (yyval.
val) = (yyvsp[(1) - (1)].val);
6510 #line 1832 "ripper.y"
6515 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].val));
6523 #line 1843 "ripper.y"
6536 #line 1850 "ripper.y"
6543 #line 1851 "ripper.y"
6548 rb_ary_push((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].val));
6556 #line 1860 "ripper.y"
6563 #line 1861 "ripper.y"
6570 #line 1862 "ripper.y"
6577 #line 1863 "ripper.y"
6584 #line 1864 "ripper.y"
6591 #line 1865 "ripper.y"
6598 #line 1866 "ripper.y"
6605 #line 1867 "ripper.y"
6612 #line 1868 "ripper.y"
6619 #line 1869 "ripper.y"
6626 #line 1870 "ripper.y"
6633 #line 1871 "ripper.y"
6640 #line 1872 "ripper.y"
6647 #line 1873 "ripper.y"
6654 #line 1874 "ripper.y"
6661 #line 1875 "ripper.y"
6668 #line 1876 "ripper.y"
6675 #line 1877 "ripper.y"
6682 #line 1878 "ripper.y"
6689 #line 1879 "ripper.y"
6696 #line 1880 "ripper.y"
6703 #line 1881 "ripper.y"
6710 #line 1882 "ripper.y"
6717 #line 1883 "ripper.y"
6724 #line 1884 "ripper.y"
6731 #line 1885 "ripper.y"
6738 #line 1886 "ripper.y"
6745 #line 1887 "ripper.y"
6752 #line 1888 "ripper.y"
6759 #line 1906 "ripper.y"
6765 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6773 #line 1915 "ripper.y"
6780 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].val)));
6788 #line 1925 "ripper.y"
6792 if ((yyvsp[(1) - (3)].val)) {
6794 if ((yyvsp[(2) - (3)].val) ==
tOROP) {
6795 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
6801 else if ((yyvsp[(2) - (3)].val) ==
tANDOP) {
6802 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
6806 (yyval.
val) = (yyvsp[(1) - (3)].val);
6814 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
6822 #line 1954 "ripper.y"
6827 if ((yyvsp[(1) - (5)].val)) {
6829 if ((yyvsp[(2) - (5)].val) ==
tOROP) {
6830 (yyvsp[(1) - (5)].
val)->
nd_value = (yyvsp[(3) - (5)].val);
6836 else if ((yyvsp[(2) - (5)].val) ==
tANDOP) {
6837 (yyvsp[(1) - (5)].
val)->
nd_value = (yyvsp[(3) - (5)].val);
6841 (yyval.
val) = (yyvsp[(1) - (5)].val);
6849 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].
val));
6850 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].val));
6858 #line 1985 "ripper.y"
6864 if (!(yyvsp[(3) - (6)].val)) (yyvsp[(3) - (6)].
val) =
NEW_ZARRAY();
6866 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
6869 args =
arg_concat((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
6871 if ((yyvsp[(5) - (6)].val) ==
tOROP) {
6872 (yyvsp[(5) - (6)].
val) = 0;
6874 else if ((yyvsp[(5) - (6)].val) ==
tANDOP) {
6875 (yyvsp[(5) - (6)].
val) = 1;
6880 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].val),
escape_Qundef((yyvsp[(3) - (6)].val)));
6881 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
6889 #line 2011 "ripper.y"
6893 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6894 (yyvsp[(4) - (5)].
val) = 0;
6896 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6897 (yyvsp[(4) - (5)].
val) = 1;
6899 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6902 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
6903 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6911 #line 2028 "ripper.y"
6915 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6916 (yyvsp[(4) - (5)].
val) = 0;
6918 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6919 (yyvsp[(4) - (5)].
val) = 1;
6921 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6924 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
6925 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6933 #line 2045 "ripper.y"
6937 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6938 (yyvsp[(4) - (5)].
val) = 0;
6940 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6941 (yyvsp[(4) - (5)].
val) = 1;
6943 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6946 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_intern(
"::"), (yyvsp[(3) - (5)].
val));
6947 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6955 #line 2062 "ripper.y"
6958 yyerror(
"constant re-assignment");
6961 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
6962 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6963 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6971 #line 2073 "ripper.y"
6974 yyerror(
"constant re-assignment");
6977 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].val));
6978 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
6979 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6987 #line 2084 "ripper.y"
6993 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].val));
6994 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
6995 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
7003 #line 2095 "ripper.y"
7008 (yyval.
val) =
NEW_DOT2((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7014 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7022 #line 2109 "ripper.y"
7027 (yyval.
val) =
NEW_DOT3((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7033 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7041 #line 2123 "ripper.y"
7046 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
7054 #line 2131 "ripper.y"
7059 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
7067 #line 2139 "ripper.y"
7072 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
7080 #line 2147 "ripper.y"
7085 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
7093 #line 2155 "ripper.y"
7098 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
7106 #line 2163 "ripper.y"
7111 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"**"), (yyvsp[(3) - (3)].
val));
7119 #line 2171 "ripper.y"
7124 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].val),
ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7133 #line 2180 "ripper.y"
7138 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].val),
ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
7147 #line 2189 "ripper.y"
7160 #line 2197 "ripper.y"
7173 #line 2205 "ripper.y"
7178 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
7186 #line 2213 "ripper.y"
7191 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
7199 #line 2221 "ripper.y"
7204 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
7212 #line 2229 "ripper.y"
7217 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<=>"), (yyvsp[(3) - (3)].
val));
7225 #line 2237 "ripper.y"
7230 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
7238 #line 2245 "ripper.y"
7243 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
">="), (yyvsp[(3) - (3)].
val));
7251 #line 2253 "ripper.y"
7256 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7264 #line 2261 "ripper.y"
7269 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<="), (yyvsp[(3) - (3)].
val));
7277 #line 2269 "ripper.y"
7282 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"=="), (yyvsp[(3) - (3)].
val));
7290 #line 2277 "ripper.y"
7295 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"==="), (yyvsp[(3) - (3)].
val));
7303 #line 2285 "ripper.y"
7308 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"!="), (yyvsp[(3) - (3)].
val));
7316 #line 2293 "ripper.y"
7319 (yyval.
val) =
match_op((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7324 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"=~"), (yyvsp[(3) - (3)].
val));
7332 #line 2304 "ripper.y"
7337 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"!~"), (yyvsp[(3) - (3)].
val));
7345 #line 2312 "ripper.y"
7350 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7358 #line 2320 "ripper.y"
7363 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7371 #line 2328 "ripper.y"
7376 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<<"), (yyvsp[(3) - (3)].
val));
7384 #line 2336 "ripper.y"
7389 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
">>"), (yyvsp[(3) - (3)].
val));
7397 #line 2344 "ripper.y"
7402 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"&&"), (yyvsp[(3) - (3)].
val));
7410 #line 2352 "ripper.y"
7415 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"||"), (yyvsp[(3) - (3)].
val));
7423 #line 2359 "ripper.y"
7430 #line 2360 "ripper.y"
7437 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].val));
7445 #line 2370 "ripper.y"
7449 (yyval.
val) =
NEW_IF(
cond((yyvsp[(1) - (6)].val)), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].val));
7452 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].val));
7460 #line 2380 "ripper.y"
7462 (yyval.
val) = (yyvsp[(1) - (1)].val);
7469 #line 2386 "ripper.y"
7473 (yyval.
val) = (yyvsp[(1) - (1)].val);
7476 (yyval.
val) = (yyvsp[(1) - (1)].val);
7484 #line 2399 "ripper.y"
7486 (yyval.
val) = (yyvsp[(1) - (2)].val);
7493 #line 2403 "ripper.y"
7498 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
7506 #line 2411 "ripper.y"
7511 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7519 #line 2421 "ripper.y"
7522 (yyval.
val) = (yyvsp[(2) - (3)].val);
7532 #line 2437 "ripper.y"
7534 (yyval.
val) = (yyvsp[(1) - (2)].val);
7541 #line 2441 "ripper.y"
7546 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
7554 #line 2449 "ripper.y"
7559 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7567 #line 2459 "ripper.y"
7573 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7581 #line 2468 "ripper.y"
7586 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
7594 #line 2476 "ripper.y"
7600 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7601 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7609 #line 2486 "ripper.y"
7615 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7623 #line 2497 "ripper.y"
7625 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7632 #line 2503 "ripper.y"
7642 #line 2508 "ripper.y"
7646 (yyval.
val) = (yyvsp[(2) - (2)].val);
7653 #line 2516 "ripper.y"
7658 (yyval.
val) = (yyvsp[(2) - (2)].val);
7666 #line 2526 "ripper.y"
7668 (yyval.
val) = (yyvsp[(2) - (2)].val);
7675 #line 2530 "ripper.y"
7684 #line 2536 "ripper.y"
7689 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7697 #line 2544 "ripper.y"
7702 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7710 #line 2552 "ripper.y"
7714 if ((n1 =
splat_array((yyvsp[(1) - (3)].val))) != 0) {
7721 (yyval.
val) = arg_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7729 #line 2566 "ripper.y"
7740 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].
val));
7748 #line 2582 "ripper.y"
7752 if ((n1 =
splat_array((yyvsp[(1) - (3)].val))) != 0) {
7759 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].val)), (yyvsp[(3) - (3)].val));
7767 #line 2596 "ripper.y"
7772 (n1 =
splat_array((yyvsp[(1) - (4)].val))) != 0) {
7779 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].val)), (yyvsp[(4) - (4)].val));
7787 #line 2611 "ripper.y"
7792 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7800 #line 2629 "ripper.y"
7805 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].val)), arg_new());
7813 #line 2637 "ripper.y"
7825 #line 2645 "ripper.y"
7828 if ((yyvsp[(3) - (4)].val) ==
NULL) {
7834 nd_set_line((yyvsp[(3) - (4)].val), (yyvsp[(2) - (4)].num));
7839 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].val));
7847 #line 2661 "ripper.y"
7854 #line 2662 "ripper.y"
7856 rb_warning0(
"(...) interpreted as grouped expression");
7858 (yyval.
val) = (yyvsp[(2) - (4)].val);
7860 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].val));
7868 #line 2671 "ripper.y"
7871 (yyval.
val) = (yyvsp[(2) - (3)].val);
7873 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].val));
7881 #line 2679 "ripper.y"
7886 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7894 #line 2687 "ripper.y"
7899 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].val));
7907 #line 2695 "ripper.y"
7910 if ((yyvsp[(2) - (3)].val) == 0) {
7914 (yyval.
val) = (yyvsp[(2) - (3)].val);
7925 #line 2708 "ripper.y"
7938 #line 2716 "ripper.y"
7951 #line 2724 "ripper.y"
7956 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].val)));
7964 #line 2732 "ripper.y"
7969 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
7977 #line 2740 "ripper.y"
7990 #line 2747 "ripper.y"
7997 #line 2748 "ripper.y"
8004 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].val));
8012 #line 2758 "ripper.y"
8025 #line 2766 "ripper.y"
8038 #line 2774 "ripper.y"
8042 (yyval.
val) = (yyvsp[(2) - (2)].val);
8043 fixpos((yyvsp[(2) - (2)].val)->
nd_iter, (yyvsp[(2) - (2)].val));
8045 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].val)), arg_new());
8046 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
8054 #line 2786 "ripper.y"
8058 (yyvsp[(2) - (2)].
val)->
nd_iter = (yyvsp[(1) - (2)].val);
8059 (yyval.
val) = (yyvsp[(2) - (2)].val);
8062 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
8070 #line 2797 "ripper.y"
8072 (yyval.
val) = (yyvsp[(2) - (2)].val);
8079 #line 2804 "ripper.y"
8082 (yyval.
val) =
NEW_IF(
cond((yyvsp[(2) - (6)].val)), (yyvsp[(4) - (6)].val), (yyvsp[(5) - (6)].
val));
8085 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val),
escape_Qundef((yyvsp[(5) - (6)].val)));
8093 #line 2816 "ripper.y"
8096 (yyval.
val) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].val)), (yyvsp[(4) - (6)].val), (yyvsp[(5) - (6)].
val));
8099 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val),
escape_Qundef((yyvsp[(5) - (6)].val)));
8107 #line 2824 "ripper.y"
8114 #line 2824 "ripper.y"
8121 #line 2827 "ripper.y"
8127 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].val), (yyvsp[(6) - (7)].
val));
8135 #line 2835 "ripper.y"
8142 #line 2835 "ripper.y"
8149 #line 2838 "ripper.y"
8155 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].val), (yyvsp[(6) - (7)].
val));
8163 #line 2849 "ripper.y"
8166 (yyval.
val) =
NEW_CASE((yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
8169 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
8177 #line 2858 "ripper.y"
8180 (yyval.
val) =
NEW_CASE(0, (yyvsp[(3) - (4)].val));
8182 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].val));
8190 #line 2866 "ripper.y"
8197 #line 2868 "ripper.y"
8204 #line 2871 "ripper.y"
8249 m->nd_next = (yyvsp[(2) - (9)].
val);
8258 tbl[0] = 1; tbl[1] =
id;
8259 (yyval.
val) =
NEW_FOR(0, (yyvsp[(5) - (9)].val), scope);
8262 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].val));
8270 #line 2932 "ripper.y"
8273 yyerror(
"class definition in method body");
8285 #line 2943 "ripper.y"
8288 (yyval.
val) =
NEW_CLASS((yyvsp[(2) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(3) - (6)].val));
8291 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val));
8300 #line 2953 "ripper.y"
8310 #line 2958 "ripper.y"
8321 #line 2965 "ripper.y"
8327 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].val), (yyvsp[(7) - (8)].
val));
8338 #line 2977 "ripper.y"
8341 yyerror(
"module definition in method body");
8353 #line 2988 "ripper.y"
8359 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
8368 #line 2998 "ripper.y"
8380 #line 3007 "ripper.y"
8388 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].val));
8399 #line 3020 "ripper.y"
8406 #line 3021 "ripper.y"
8417 #line 3029 "ripper.y"
8422 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].val), body);
8425 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].val));
8435 #line 3042 "ripper.y"
8440 (yyval.
val) = dispatch1(
break, arg_new());
8448 #line 3050 "ripper.y"
8453 (yyval.
val) = dispatch1(next, arg_new());
8461 #line 3058 "ripper.y"
8474 #line 3066 "ripper.y"
8487 #line 3076 "ripper.y"
8491 (yyval.
val) = (yyvsp[(1) - (1)].val);
8494 (yyval.
val) = (yyvsp[(1) - (1)].val);
8502 #line 3088 "ripper.y"
8511 #line 3094 "ripper.y"
8520 #line 3100 "ripper.y"
8529 #line 3106 "ripper.y"
8538 #line 3112 "ripper.y"
8547 #line 3118 "ripper.y"
8556 #line 3124 "ripper.y"
8565 #line 3130 "ripper.y"
8574 #line 3136 "ripper.y"
8583 #line 3142 "ripper.y"
8596 #line 3152 "ripper.y"
8605 #line 3160 "ripper.y"
8612 #line 3166 "ripper.y"
8613 { (yyval.
val) = (yyvsp[(2) - (2)].val); }
8619 #line 3173 "ripper.y"
8626 #line 3182 "ripper.y"
8629 (yyval.
val) =
NEW_IF(
cond((yyvsp[(2) - (5)].val)), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
8632 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val),
escape_Qundef((yyvsp[(5) - (5)].val)));
8640 #line 3194 "ripper.y"
8643 (yyval.
val) = (yyvsp[(2) - (2)].val);
8645 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].val));
8653 #line 3208 "ripper.y"
8658 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8666 #line 3216 "ripper.y"
8669 (yyval.
val) = (yyvsp[(2) - (3)].val);
8671 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
8679 #line 3226 "ripper.y"
8684 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8692 #line 3234 "ripper.y"
8697 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
8705 #line 3244 "ripper.y"
8710 (yyval.
val) = (yyvsp[(1) - (1)].val);
8718 #line 3252 "ripper.y"
8724 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].val), (yyval.
val));
8732 #line 3261 "ripper.y"
8738 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].val), (yyval.
val));
8746 #line 3270 "ripper.y"
8751 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].val),
Qnil);
8759 #line 3278 "ripper.y"
8764 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].val), (yyvsp[(5) - (5)].
val));
8772 #line 3286 "ripper.y"
8778 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8786 #line 3295 "ripper.y"
8795 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8803 #line 3307 "ripper.y"
8808 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8816 #line 3315 "ripper.y"
8821 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8829 #line 3325 "ripper.y"
8832 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), 0, (yyvsp[(6) - (6)].
val));
8834 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
Qnil,
escape_Qundef((yyvsp[(6) - (6)].val)));
8842 #line 3333 "ripper.y"
8845 (yyval.
val) =
new_args((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].val));
8847 (yyval.
val) = params_new((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val),
escape_Qundef((yyvsp[(8) - (8)].val)));
8855 #line 3341 "ripper.y"
8858 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, 0, (yyvsp[(4) - (4)].val));
8868 #line 3349 "ripper.y"
8871 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), 0, (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8873 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val),
Qnil, (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8881 #line 3357 "ripper.y"
8884 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
8894 #line 3365 "ripper.y"
8897 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 1, 0, 0);
8900 dispatch1(excessed_comma, (yyval.
val));
8908 #line 3374 "ripper.y"
8911 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), 0, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8913 (yyval.
val) = params_new((yyvsp[(1) - (6)].val),
Qnil, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8921 #line 3382 "ripper.y"
8924 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 0, 0, (yyvsp[(2) - (2)].
val));
8934 #line 3390 "ripper.y"
8937 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
8947 #line 3398 "ripper.y"
8950 (yyval.
val) =
new_args(0, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8952 (yyval.
val) = params_new(
Qnil, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8960 #line 3406 "ripper.y"
8963 (yyval.
val) =
new_args(0, (yyvsp[(1) - (2)].val), 0, 0, (yyvsp[(2) - (2)].
val));
8973 #line 3414 "ripper.y"
8976 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8986 #line 3422 "ripper.y"
8989 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (2)].val), 0, (yyvsp[(2) - (2)].
val));
8999 #line 3430 "ripper.y"
9002 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9012 #line 3438 "ripper.y"
9015 (yyval.
val) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].val));
9025 #line 3449 "ripper.y"
9034 #line 3455 "ripper.y"
9048 #line 3464 "ripper.y"
9062 #line 3473 "ripper.y"
9065 (yyval.
val) = (yyvsp[(2) - (4)].val);
9075 #line 3485 "ripper.y"
9080 (yyval.
val) = (yyvsp[(2) - (2)].val);
9088 #line 3497 "ripper.y"
9097 #line 3504 "ripper.y"
9106 #line 3511 "ripper.y"
9119 #line 3519 "ripper.y"
9128 #line 3524 "ripper.y"
9137 #line 3527 "ripper.y"
9147 #line 3533 "ripper.y"
9151 (yyval.
val) = (yyvsp[(3) - (4)].val);
9154 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (4)].val), (yyvsp[(4) - (4)].
val));
9163 #line 3546 "ripper.y"
9168 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].val));
9176 #line 3554 "ripper.y"
9181 (yyval.
val) = (yyvsp[(1) - (1)].val);
9189 #line 3564 "ripper.y"
9191 (yyval.
val) = (yyvsp[(2) - (3)].val);
9198 #line 3568 "ripper.y"
9200 (yyval.
val) = (yyvsp[(2) - (3)].val);
9207 #line 3574 "ripper.y"
9219 #line 3583 "ripper.y"
9222 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
9225 (yyval.
val) = dispatch2(do_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
9234 #line 3595 "ripper.y"
9243 (yyvsp[(2) - (2)].
val)->
nd_iter = (yyvsp[(1) - (2)].val);
9244 (yyval.
val) = (yyvsp[(2) - (2)].val);
9247 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9255 #line 3611 "ripper.y"
9258 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9260 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
9261 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9269 #line 3620 "ripper.y"
9272 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9274 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_intern(
"::"), (yyvsp[(3) - (4)].
val));
9275 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9283 #line 3631 "ripper.y"
9286 (yyval.
val) =
NEW_FCALL((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9289 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].val)), (yyvsp[(2) - (2)].
val));
9297 #line 3640 "ripper.y"
9300 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9303 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
9304 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9312 #line 3650 "ripper.y"
9315 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9318 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
9319 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
9327 #line 3660 "ripper.y"
9330 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val), 0);
9332 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (3)].val),
ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
9340 #line 3668 "ripper.y"
9348 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(3) - (3)].
val));
9356 #line 3679 "ripper.y"
9364 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(3) - (3)].
val));
9372 #line 3690 "ripper.y"
9377 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].val));
9385 #line 3698 "ripper.y"
9398 #line 3706 "ripper.y"
9401 if ((yyvsp[(1) - (4)].val) &&
nd_type((yyvsp[(1) - (4)].val)) ==
NODE_SELF)
9404 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val),
tAREF, (yyvsp[(3) - (4)].val));
9407 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
9415 #line 3720 "ripper.y"
9428 #line 3729 "ripper.y"
9431 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
9434 (yyval.
val) = dispatch2(brace_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
9443 #line 3739 "ripper.y"
9456 #line 3748 "ripper.y"
9459 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
9462 (yyval.
val) = dispatch2(do_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
9471 #line 3762 "ripper.y"
9474 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
9476 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val),
escape_Qundef((yyvsp[(5) - (5)].val)));
9484 #line 3778 "ripper.y"
9487 if ((yyvsp[(3) - (6)].val)) {
9489 (yyvsp[(5) - (6)].
val) =
block_append((yyvsp[(3) - (6)].val), (yyvsp[(5) - (6)].
val));
9491 (yyval.
val) =
NEW_RESBODY((yyvsp[(2) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
9492 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
9494 (yyval.
val) = dispatch4(rescue,
9506 #line 3798 "ripper.y"
9519 #line 3806 "ripper.y"
9522 if (!((yyval.
val) =
splat_array((yyvsp[(1) - (1)].val)))) (yyval.
val) = (yyvsp[(1) - (1)].val);
9524 (yyval.
val) = (yyvsp[(1) - (1)].val);
9532 #line 3817 "ripper.y"
9534 (yyval.
val) = (yyvsp[(2) - (2)].val);
9541 #line 3824 "ripper.y"
9544 (yyval.
val) = (yyvsp[(2) - (2)].val);
9546 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].val));
9554 #line 3836 "ripper.y"
9559 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].val));
9567 #line 3847 "ripper.y"
9570 NODE *node = (yyvsp[(1) - (1)].
val);
9579 (yyval.
val) = (yyvsp[(1) - (1)].val);
9587 #line 3866 "ripper.y"
9592 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9600 #line 3876 "ripper.y"
9603 (yyval.
val) = (yyvsp[(2) - (3)].val);
9605 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].val));
9613 #line 3886 "ripper.y"
9616 NODE *node = (yyvsp[(2) - (3)].
val);
9635 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].val));
9643 #line 3913 "ripper.y"
9647 NODE *node = (yyvsp[(2) - (3)].
val);
9655 VALUE src = node->nd_lit;
9671 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9673 VALUE tail = list->nd_head->nd_lit;
9675 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9681 prev->nd_next = list->nd_next;
9694 if (!node->nd_next) {
9695 VALUE src = node->nd_lit;
9703 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
9711 #line 3978 "ripper.y"
9717 (yyval.
val) = dispatch1(array, (yyval.
val));
9725 #line 3987 "ripper.y"
9728 (yyval.
val) = (yyvsp[(2) - (3)].val);
9730 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].val));
9738 #line 3997 "ripper.y"
9751 #line 4005 "ripper.y"
9756 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
9764 #line 4017 "ripper.y"
9767 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9774 #line 4023 "ripper.y"
9779 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9787 #line 4033 "ripper.y"
9793 (yyval.
val) = dispatch1(array, (yyval.
val));
9801 #line 4042 "ripper.y"
9804 (yyval.
val) = (yyvsp[(2) - (3)].val);
9806 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].val));
9814 #line 4052 "ripper.y"
9827 #line 4060 "ripper.y"
9832 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
9840 #line 4070 "ripper.y"
9853 #line 4078 "ripper.y"
9858 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9866 #line 4088 "ripper.y"
9879 #line 4096 "ripper.y"
9884 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9892 #line 4106 "ripper.y"
9905 #line 4114 "ripper.y"
9908 NODE *head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].val);
9929 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9937 #line 4144 "ripper.y"
9948 #line 4150 "ripper.y"
9955 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].val));
9963 #line 4160 "ripper.y"
9975 #line 4166 "ripper.y"
9986 #line 4172 "ripper.y"
9992 if ((yyvsp[(4) - (5)].val)) (yyvsp[(4) - (5)].val)->flags &= ~
NODE_FL_NEWLINE;
9995 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(4) - (5)].val));
10003 #line 4186 "ripper.y"
10008 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10016 #line 4194 "ripper.y"
10021 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10029 #line 4202 "ripper.y"
10034 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10042 #line 4213 "ripper.y"
10046 (yyval.
val) = (yyvsp[(2) - (2)].val);
10048 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].val));
10056 #line 4230 "ripper.y"
10060 if (!((yyval.
val) = (yyvsp[(2) - (3)].
val))) {
10081 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].val));
10089 #line 4262 "ripper.y"
10102 #line 4270 "ripper.y"
10115 #line 4286 "ripper.y"
10122 #line 4287 "ripper.y"
10129 #line 4288 "ripper.y"
10136 #line 4289 "ripper.y"
10143 #line 4290 "ripper.y"
10150 #line 4291 "ripper.y"
10157 #line 4292 "ripper.y"
10164 #line 4296 "ripper.y"
10169 if (id_is_var(
get_id((yyvsp[(1) - (1)].val)))) {
10170 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10173 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].val));
10182 #line 4309 "ripper.y"
10187 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
10195 #line 4319 "ripper.y"
10200 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10208 #line 4327 "ripper.y"
10213 (yyval.
val) = dispatch1(var_field, (yyval.
val));
10221 #line 4341 "ripper.y"
10234 #line 4349 "ripper.y"
10243 #line 4353 "ripper.y"
10245 (yyval.
val) = (yyvsp[(3) - (4)].val);
10252 #line 4357 "ripper.y"
10267 #line 4369 "ripper.y"
10270 (yyval.
val) = (yyvsp[(2) - (3)].val);
10272 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].val));
10282 #line 4379 "ripper.y"
10284 (yyval.
val) = (yyvsp[(1) - (2)].val);
10293 #line 4387 "ripper.y"
10296 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), 0, (yyvsp[(6) - (6)].
val));
10298 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
Qnil,
escape_Qundef((yyvsp[(6) - (6)].val)));
10306 #line 4395 "ripper.y"
10309 (yyval.
val) =
new_args((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].val));
10311 (yyval.
val) = params_new((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val),
escape_Qundef((yyvsp[(8) - (8)].val)));
10319 #line 4403 "ripper.y"
10322 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, 0, (yyvsp[(4) - (4)].val));
10332 #line 4411 "ripper.y"
10335 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), 0, (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
10337 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val),
Qnil, (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
10345 #line 4419 "ripper.y"
10348 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
10358 #line 4427 "ripper.y"
10361 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), 0, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
10363 (yyval.
val) = params_new((yyvsp[(1) - (6)].val),
Qnil, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
10371 #line 4435 "ripper.y"
10374 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 0, 0, (yyvsp[(2) - (2)].
val));
10384 #line 4443 "ripper.y"
10387 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
10397 #line 4451 "ripper.y"
10400 (yyval.
val) =
new_args(0, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
10402 (yyval.
val) = params_new(
Qnil, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
10410 #line 4459 "ripper.y"
10413 (yyval.
val) =
new_args(0, (yyvsp[(1) - (2)].val), 0, 0, (yyvsp[(2) - (2)].
val));
10423 #line 4467 "ripper.y"
10426 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
10436 #line 4475 "ripper.y"
10439 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (2)].val), 0, (yyvsp[(2) - (2)].
val));
10449 #line 4483 "ripper.y"
10452 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
10462 #line 4491 "ripper.y"
10465 (yyval.
val) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].val));
10475 #line 4499 "ripper.y"
10488 #line 4509 "ripper.y"
10491 yyerror(
"formal argument cannot be a constant");
10494 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10502 #line 4518 "ripper.y"
10505 yyerror(
"formal argument cannot be an instance variable");
10508 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10516 #line 4527 "ripper.y"
10519 yyerror(
"formal argument cannot be a global variable");
10522 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10530 #line 4536 "ripper.y"
10533 yyerror(
"formal argument cannot be a class variable");
10536 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
10544 #line 4548 "ripper.y"
10547 (yyval.
val) = (yyvsp[(1) - (1)].val);
10554 #line 4555 "ripper.y"
10568 #line 4564 "ripper.y"
10580 (yyval.
val)->
nd_next = (yyvsp[(2) - (3)].val);
10582 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
10590 #line 4585 "ripper.y"
10599 #line 4590 "ripper.y"
10602 (yyval.
val) = (yyvsp[(1) - (3)].val);
10615 #line 4603 "ripper.y"
10630 #line 4615 "ripper.y"
10645 #line 4627 "ripper.y"
10648 (yyval.
val) = (yyvsp[(1) - (1)].val);
10658 #line 4635 "ripper.y"
10661 NODE *opts = (yyvsp[(1) - (3)].
val);
10663 while (opts->nd_next) {
10664 opts = opts->nd_next;
10666 opts->nd_next = (yyvsp[(3) - (3)].
val);
10667 (yyval.
val) = (yyvsp[(1) - (3)].val);
10677 #line 4651 "ripper.y"
10680 (yyval.
val) = (yyvsp[(1) - (1)].val);
10690 #line 4659 "ripper.y"
10693 NODE *opts = (yyvsp[(1) - (3)].
val);
10695 while (opts->nd_next) {
10696 opts = opts->nd_next;
10698 opts->nd_next = (yyvsp[(3) - (3)].
val);
10699 (yyval.
val) = (yyvsp[(1) - (3)].val);
10709 #line 4679 "ripper.y"
10713 yyerror(
"rest argument must be local variable");
10717 (yyval.
val) = (yyvsp[(2) - (2)].val);
10719 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].val));
10727 #line 4692 "ripper.y"
10733 (yyval.
val) = dispatch1(rest_param,
Qnil);
10741 #line 4707 "ripper.y"
10745 yyerror(
"block argument must be local variable");
10747 yyerror(
"duplicated block argument name");
10751 (yyval.
val) = (yyvsp[(2) - (2)].val);
10753 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].val));
10761 #line 4724 "ripper.y"
10763 (yyval.
val) = (yyvsp[(2) - (2)].val);
10770 #line 4728 "ripper.y"
10783 #line 4738 "ripper.y"
10787 (yyval.
val) = (yyvsp[(1) - (1)].val);
10790 (yyval.
val) = (yyvsp[(1) - (1)].val);
10798 #line 4747 "ripper.y"
10805 #line 4748 "ripper.y"
10808 if ((yyvsp[(3) - (4)].val) == 0) {
10809 yyerror(
"can't define singleton method for ().");
10812 switch (
nd_type((yyvsp[(3) - (4)].val))) {
10821 yyerror(
"can't define singleton method for literals");
10827 (yyval.
val) = (yyvsp[(3) - (4)].val);
10829 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].val));
10837 #line 4778 "ripper.y"
10840 (yyval.
val) = (yyvsp[(1) - (2)].val);
10842 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].val));
10850 #line 4790 "ripper.y"
10859 #line 4795 "ripper.y"
10872 #line 4805 "ripper.y"
10877 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
10885 #line 4813 "ripper.y"
10890 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
10898 #line 4841 "ripper.y"
10899 { (yyval.
val) = (yyvsp[(1) - (1)].val); }
10905 #line 4846 "ripper.y"
10906 { (yyval.
val) = (yyvsp[(1) - (1)].val); }
10912 #line 4869 "ripper.y"
10919 #line 4874 "ripper.y"
10926 #line 4878 "ripper.y"
10939 #line 10938 "parse.c"
10967 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
10968 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10969 yystate = yytable[yystate];
10988 #if ! YYERROR_VERBOSE
10991 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10994 char const *yymsgp =
YY_(
"syntax error");
10995 int yysyntax_error_status;
10997 if (yysyntax_error_status == 0)
10999 else if (yysyntax_error_status == 1)
11001 if (yymsg != yymsgbuf)
11007 yymsg_alloc =
sizeof yymsgbuf;
11008 yysyntax_error_status = 2;
11017 if (yysyntax_error_status == 2)
11018 goto yyexhaustedlab;
11020 # undef YYSYNTAX_ERROR
11026 if (yyerrstatus == 3)
11031 if (yychar <=
YYEOF)
11034 if (yychar ==
YYEOF)
11040 yytoken, &yylval, parser);
11078 yyn = yypact[yystate];
11084 yyn = yytable[yyn];
11096 yystos[yystate], yyvsp, parser);
11126 #if !defined(yyoverflow) || YYERROR_VERBOSE
11142 yydestruct (
"Cleanup: discarding lookahead",
11143 yytoken, &yylval, parser);
11149 while (yyssp != yyss)
11152 yystos[*yyssp], yyvsp, parser);
11159 #if YYERROR_VERBOSE
11160 if (yymsg != yymsgbuf)
11164 return YYID (yyresult);
11170 #line 4886 "ripper.y"
11175 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11184 # define nextc() parser_nextc(parser)
11185 # define pushback(c) parser_pushback(parser, (c))
11186 # define newtok() parser_newtok(parser)
11187 # define tokspace(n) parser_tokspace(parser, (n))
11188 # define tokadd(c) parser_tokadd(parser, (c))
11189 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11190 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11191 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11192 # define regx_options() parser_regx_options(parser)
11193 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11194 # define parse_string(n) parser_parse_string(parser,(n))
11195 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11196 # define here_document(n) parser_here_document(parser,(n))
11197 # define heredoc_identifier() parser_heredoc_identifier(parser)
11198 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11199 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11202 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11203 # define set_yylval_num(x) (yylval.num = (x))
11204 # define set_yylval_id(x) (yylval.id = (x))
11205 # define set_yylval_name(x) (yylval.id = (x))
11206 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11207 # define set_yylval_node(x) (yylval.node = (x))
11208 # define yylval_id() (yylval.id)
11210 static inline VALUE
11211 ripper_yylval_id(
ID x)
11215 # define set_yylval_str(x) (void)(x)
11216 # define set_yylval_num(x) (void)(x)
11217 # define set_yylval_id(x) (void)(x)
11218 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11219 # define set_yylval_literal(x) (void)(x)
11220 # define set_yylval_node(x) (void)(x)
11221 # define yylval_id() yylval.id
11225 #define ripper_flush(p) (void)(p)
11227 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11229 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11236 return lex_p > parser->tokp;
11249 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11251 if (!ripper_has_scan_event(parser))
return;
11252 yylval_rval = ripper_scan_event_val(parser, t);
11256 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11258 if (!ripper_has_scan_event(parser))
return;
11259 (void)ripper_scan_event_val(parser, t);
11263 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11266 const char *saved_tokp = parser->tokp;
11269 parser->tokp =
lex_pbeg + parser->delayed_col;
11271 parser->delayed =
Qnil;
11273 parser->tokp = saved_tokp;
11284 #undef SIGN_EXTEND_CHAR
11286 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11289 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11292 #define parser_encoding_name() (parser->enc->name)
11293 #define parser_mbclen() mbclen((lex_p-1),lex_pend,parser->enc)
11294 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)
11295 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11296 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,parser->enc))
11298 #define parser_isascii() ISASCII(*(lex_p-1))
11306 for (p =
lex_pbeg; p < pend; p++) {
11308 column = (((column - 1) / 8) + 1) * 8;
11319 for (p =
lex_pbeg; p < pend; p++) {
11320 if (*p !=
' ' && *p !=
'\t') {
11327 #undef token_info_push
11344 #undef token_info_pop
11351 if (!ptinfo)
return;
11357 if (linenum == ptinfo->
linenum) {
11365 "mismatched indentations at '%s' with '%s' at %d",
11378 const int max_line_margin = 30;
11379 const char *
p, *pe;
11387 if (*p ==
'\n')
break;
11394 if (*pe ==
'\n')
break;
11401 const char *pre =
"", *post =
"";
11403 if (len > max_line_margin * 2 + 10) {
11404 if (
lex_p - p > max_line_margin) {
11408 if (pe -
lex_p > max_line_margin) {
11415 MEMCPY(buf, p,
char, len);
11419 i = (int)(
lex_p - p);
11420 p2 =
buf; pe = buf +
len;
11423 if (*p2 !=
'\t') *p2 =
' ';
11431 dispatch1(parse_error,
STR_NEW2(msg));
11443 CONST_ID(script_lines,
"SCRIPT_LINES__");
11460 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11464 RBASIC(lines)->klass = 0;
11466 RARRAY(lines)->as.heap.len = n;
11514 if (parser->
nerr) {
11524 return (
VALUE)tree;
11549 char *beg, *end, *pend;
11559 while (end < pend) {
11560 if (*end++ ==
'\n')
break;
11570 if (
NIL_P(line))
return line;
11594 volatile VALUE tmp;
11655 volatile VALUE tmp;
11671 #define STR_FUNC_ESCAPE 0x01
11672 #define STR_FUNC_EXPAND 0x02
11673 #define STR_FUNC_REGEXP 0x04
11674 #define STR_FUNC_QWORDS 0x08
11675 #define STR_FUNC_SYMBOL 0x10
11676 #define STR_FUNC_INDENT 0x20
11706 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
11707 #define lex_eol_p() (lex_p >= lex_pend)
11708 #define peek(c) peek_n((c), 0)
11709 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
11732 if (
NIL_P(parser->delayed)) {
11736 parser->tokp,
lex_pend - parser->tokp);
11738 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
11742 parser->tokp,
lex_pend - parser->tokp);
11758 c = (
unsigned char)*
lex_p++;
11759 if (c ==
'\r' &&
peek(
'\n')) {
11770 if (c == -1)
return;
11777 #define was_bol() (lex_p == lex_pbeg + 1)
11779 #define tokfix() (tokenbuf[tokidx]='\0')
11780 #define tok() tokenbuf
11781 #define toklen() tokidx
11782 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
11828 yyerror(
"invalid hex escape");
11835 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
11839 int string_literal,
int symbol_literal,
int regexp_literal)
11859 yyerror(
"invalid Unicode escape");
11862 if (codepoint > 0x10ffff) {
11863 yyerror(
"invalid Unicode codepoint (too large)");
11867 if (regexp_literal) {
11870 else if (codepoint >= 0x80) {
11872 if (string_literal)
tokaddmbc(codepoint, *encp);
11874 else if (string_literal) {
11877 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
11880 yyerror(
"unterminated Unicode escape");
11884 if (regexp_literal) {
tokadd(
'}'); }
11890 yyerror(
"invalid Unicode escape");
11894 if (regexp_literal) {
11897 else if (codepoint >= 0x80) {
11899 if (string_literal)
tokaddmbc(codepoint, *encp);
11901 else if (string_literal) {
11909 #define ESCAPE_CONTROL 1
11910 #define ESCAPE_META 2
11919 switch (c =
nextc()) {
11944 case '0':
case '1':
case '2':
case '3':
11945 case '4':
case '5':
case '6':
case '7':
11953 if (numlen == 0)
return 0;
11964 if ((c =
nextc()) !=
'-') {
11968 if ((c =
nextc()) ==
'\\') {
11969 if (
peek(
'u'))
goto eof;
11970 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11972 else if (c == -1 || !
ISASCII(c))
goto eof;
11974 return ((c & 0xff) | 0x80);
11978 if ((c =
nextc()) !=
'-') {
11984 if ((c =
nextc())==
'\\') {
11985 if (
peek(
'u'))
goto eof;
11990 else if (c == -1 || !
ISASCII(c))
goto eof;
11995 yyerror(
"Invalid escape character syntax");
12018 switch (c =
nextc()) {
12022 case '0':
case '1':
case '2':
case '3':
12023 case '4':
case '5':
case '6':
case '7':
12026 if (numlen == 0)
goto eof;
12035 if (numlen == 0)
return -1;
12042 if ((c =
nextc()) !=
'-') {
12052 if ((c =
nextc()) !=
'-') {
12060 if (flags & ESCAPE_CONTROL)
goto eof;
12064 if ((c =
nextc()) ==
'\\') {
12067 else if (c == -1)
goto eof;
12073 yyerror(
"Invalid escape character syntax");
12142 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12146 int func,
int term,
int paren,
long *nest,
12150 int has_nonascii = 0;
12153 static const char mixed_msg[] =
"%s mixed within %s source";
12155 #define mixed_error(enc1, enc2) if (!errbuf) { \
12156 size_t len = sizeof(mixed_msg) - 4; \
12157 len += strlen(rb_enc_name(enc1)); \
12158 len += strlen(rb_enc_name(enc2)); \
12159 errbuf = ALLOCA_N(char, len); \
12160 snprintf(errbuf, len, mixed_msg, \
12161 rb_enc_name(enc1), \
12162 rb_enc_name(enc2)); \
12165 #define mixed_escape(beg, enc1, enc2) do { \
12166 const char *pos = lex_p; \
12168 mixed_error((enc1), (enc2)); \
12172 while ((c =
nextc()) != -1) {
12173 if (paren && c == paren) {
12176 else if (c == term) {
12177 if (!nest || !*nest) {
12185 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12190 else if (c ==
'\\') {
12191 const char *beg =
lex_p - 1;
12196 if (func & STR_FUNC_EXPAND)
continue;
12205 if ((func & STR_FUNC_EXPAND) == 0) {
12212 if (has_nonascii && enc != *encp) {
12218 if (c == -1)
return -1;
12220 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12223 if (func & STR_FUNC_REGEXP) {
12227 if (has_nonascii && enc != *encp) {
12232 else if (func & STR_FUNC_EXPAND) {
12234 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12237 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12240 else if (c != term && !(paren && c == paren)) {
12250 if (enc != *encp) {
12263 if (enc != *encp) {
12274 #define NEW_STRTERM(func, term, paren) \
12275 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12281 if (!
NIL_P(parser->delayed)) {
12282 ptrdiff_t
len =
lex_p - parser->tokp;
12287 parser->tokp =
lex_p;
12291 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12293 #define flush_string_content(enc) ((void)(enc))
12300 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12301 #define SPECIAL_PUNCT(idx) ( \
12302 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12303 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12304 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12305 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12306 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12314 #undef SPECIAL_PUNCT
12320 if (c <= 0x20 || 0x7e < c)
return 0;
12321 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12334 if ((c = *p) ==
'-') {
12343 if ((c = *p) ==
'@') {
12363 int func = (int)quote->nd_func;
12375 if (c == term && !quote->nd_nest) {
12376 if (func & STR_FUNC_QWORDS) {
12377 quote->nd_func = -1;
12439 while ((c =
nextc()) != -1 && c != term) {
12486 line = here->nd_orig;
12500 const char *eos,
long len,
int indent)
12506 while (*p &&
ISSPACE(*p)) p++;
12509 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12510 return strncmp(eos, p, len) == 0;
12517 if (!
NIL_P(parser->delayed))
12520 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12523 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12525 #define dispatch_heredoc_end() ((void)0)
12531 int c,
func, indent = 0;
12532 const char *eos, *
p, *pend;
12541 if ((c =
nextc()) == -1) {
12545 if (
NIL_P(parser->delayed)) {
12550 ((len =
lex_p - parser->tokp) > 0 &&
12551 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12574 switch (pend[-1]) {
12576 if (--pend == p || pend[-1] !=
'\r') {
12590 if (
nextc() == -1) {
12608 if (parser->
eofp)
goto error;
12618 if ((c =
nextc()) == -1)
goto error;
12635 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12640 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12647 yyerror(
"formal argument must be local variable");
12665 if (len > 5 && name[nlen = len - 5] ==
'-') {
12666 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12669 if (len > 4 && name[nlen = len - 4] ==
'-') {
12672 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12673 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12688 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
12705 for (i = 0; i < n; ++
i) {
12743 case 't':
case 'T':
12749 case 'f':
case 'F':
12772 static const char *
12780 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
12781 return str + i + 1;
12786 if (i + 1 >= len)
return 0;
12787 if (str[i+1] !=
'-') {
12790 else if (str[i-1] !=
'-') {
12794 return str + i + 2;
12808 VALUE name = 0, val = 0;
12809 const char *beg, *end, *vbeg, *vend;
12810 #define str_copy(_s, _p, _n) ((_s) \
12811 ? (void)(rb_str_resize((_s), (_n)), \
12812 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
12813 : (void)((_s) = STR_NEW((_p), (_n))))
12815 if (len <= 7)
return FALSE;
12819 len = end - beg - 3;
12830 for (; len > 0 && *str; str++, --
len) {
12832 case '\'':
case '"':
case ':':
case ';':
12837 for (beg = str; len > 0; str++, --
len) {
12839 case '\'':
case '"':
case ':':
case ';':
12847 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
12849 if (*str !=
':')
continue;
12851 do str++;
while (--len > 0 &&
ISSPACE(*str));
12854 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
12855 if (*str ==
'\\') {
12867 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
12870 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
12875 for (i = 0; i < n; ++
i) {
12876 if (s[i] ==
'-') s[
i] =
'_';
12883 n = (*p->
length)(parser, vbeg, n);
12889 }
while (++p < magic_comments +
numberof(magic_comments));
12903 const char *beg = str;
12907 if (send - str <= 6)
return;
12909 case 'C':
case 'c': str += 6;
continue;
12910 case 'O':
case 'o': str += 5;
continue;
12911 case 'D':
case 'd': str += 4;
continue;
12912 case 'I':
case 'i': str += 3;
continue;
12913 case 'N':
case 'n': str += 2;
continue;
12914 case 'G':
case 'g': str += 1;
continue;
12915 case '=':
case ':':
12928 if (++str >= send)
return;
12931 if (*str !=
'=' && *str !=
':')
return;
12936 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
12952 (
unsigned char)
lex_p[0] == 0xbb &&
12953 (
unsigned char)
lex_p[1] == 0xbf) {
12967 #define IS_ARG() (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
12968 #define IS_END() (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
12969 #define IS_BEG() (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
12970 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
12971 #define IS_LABEL_POSSIBLE() ((lex_state == EXPR_BEG && !cmd_state) || IS_ARG())
12972 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
12975 #define ambiguous_operator(op, syn) ( \
12976 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
12977 rb_warning0("even though it seems like "syn""))
12979 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
12981 #define warn_balanced(op, syn) ((void) \
12982 (last_state != EXPR_CLASS && last_state != EXPR_DOT && \
12983 last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
12984 last_state != EXPR_ENDARG && \
12985 space_seen && !ISSPACE(c) && \
12986 (ambiguous_operator(op, syn), 0)))
12992 int space_seen = 0;
12998 int fallthru =
FALSE;
13024 switch (c =
nextc()) {
13032 case ' ':
case '\t':
case '\f':
case '\r':
13036 while ((c =
nextc())) {
13038 case ' ':
case '\t':
case '\f':
case '\r':
13047 ripper_dispatch_scan_event(parser,
tSP);
13060 ripper_dispatch_scan_event(parser,
tCOMMENT);
13081 while ((c =
nextc())) {
13083 case ' ':
case '\t':
case '\f':
case '\r':
13088 if ((c =
nextc()) !=
'.') {
13101 parser->tokp =
lex_p;
13104 goto normal_newline;
13113 if ((c =
nextc()) ==
'*') {
13114 if ((c =
nextc()) ==
'=') {
13130 rb_warning0(
"`*' interpreted as argument prefix");
13174 int first_p =
TRUE;
13183 ripper_dispatch_scan_event(parser,
tEMBDOC);
13192 if (c !=
'=')
continue;
13193 if (strncmp(
lex_p,
"end", 3) == 0 &&
13212 if ((c =
nextc()) ==
'=') {
13213 if ((c =
nextc()) ==
'=') {
13222 else if (c ==
'>') {
13235 (!
IS_ARG() || space_seen)) {
13237 if (token)
return token;
13246 if ((c =
nextc()) ==
'>') {
13253 if ((c =
nextc()) ==
'=') {
13272 if ((c =
nextc()) ==
'=') {
13276 if ((c =
nextc()) ==
'=') {
13344 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13361 else if (c ==
'\\') {
13390 if ((c =
nextc()) ==
'&') {
13392 if ((c =
nextc()) ==
'=') {
13400 else if (c ==
'=') {
13407 rb_warning0(
"`&' interpreted as argument prefix");
13426 if ((c =
nextc()) ==
'|') {
13428 if ((c =
nextc()) ==
'=') {
13513 if ((c =
nextc()) ==
'.') {
13514 if ((c =
nextc()) ==
'.') {
13522 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13528 case '0':
case '1':
case '2':
case '3':
case '4':
13529 case '5':
case '6':
case '7':
case '8':
case '9':
13531 int is_float, seen_point, seen_e, nondigit;
13533 is_float = seen_point = seen_e = nondigit = 0;
13536 if (c ==
'-' || c ==
'+') {
13541 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13544 if (c ==
'x' || c ==
'X') {
13550 if (nondigit)
break;
13557 }
while ((c =
nextc()) != -1);
13561 if (
toklen() == start) {
13564 else if (nondigit)
goto trailing_uc;
13568 if (c ==
'b' || c ==
'B') {
13571 if (c ==
'0' || c ==
'1') {
13574 if (nondigit)
break;
13578 if (c !=
'0' && c !=
'1')
break;
13581 }
while ((c =
nextc()) != -1);
13585 if (
toklen() == start) {
13588 else if (nondigit)
goto trailing_uc;
13592 if (c ==
'd' || c ==
'D') {
13598 if (nondigit)
break;
13605 }
while ((c =
nextc()) != -1);
13609 if (
toklen() == start) {
13612 else if (nondigit)
goto trailing_uc;
13620 if (c ==
'o' || c ==
'O') {
13623 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13627 if (c >=
'0' && c <=
'7') {
13632 if (nondigit)
break;
13636 if (c < '0' || c >
'9')
break;
13637 if (c >
'7')
goto invalid_octal;
13640 }
while ((c =
nextc()) != -1);
13644 if (nondigit)
goto trailing_uc;
13653 if (c >
'7' && c <=
'9') {
13655 yyerror(
"Invalid octal digit");
13657 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13669 case '0':
case '1':
case '2':
case '3':
case '4':
13670 case '5':
case '6':
case '7':
case '8':
case '9':
13676 if (nondigit)
goto trailing_uc;
13677 if (seen_point || seen_e) {
13682 if (c0 == -1 || !
ISDIGIT(c0)) {
13710 if (c !=
'-' && c !=
'+')
continue;
13716 if (nondigit)
goto decode_num;
13731 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
13737 if (
errno == ERANGE) {
13795 if ((c =
nextc()) ==
'=') {
13816 if ((c =
nextc()) ==
'=') {
13841 if ((c =
nextc()) !=
'@') {
13868 if ((c =
nextc()) ==
']') {
13869 if ((c =
nextc()) ==
'=') {
13881 else if (
IS_ARG() && space_seen) {
13915 ripper_dispatch_scan_event(parser,
tSP);
13929 if (c == -1 || !
ISALNUM(c)) {
13936 yyerror(
"unknown type of %string");
13940 if (c == -1 || term == -1) {
13945 if (term ==
'(') term =
')';
13946 else if (term ==
'[') term =
']';
13947 else if (term ==
'{') term =
'}';
13948 else if (term ==
'<') term =
'>';
13986 yyerror(
"unknown type of %string");
13990 if ((c =
nextc()) ==
'=') {
14072 case '1':
case '2':
case '3':
14073 case '4':
case '5':
case '6':
14074 case '7':
case '8':
case '9':
14079 }
while (c != -1 &&
ISDIGIT(c));
14125 ripper_dispatch_scan_event(parser,
k__END__);
14148 switch (
tok()[0]) {
14149 case '@':
case '$':
14153 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14166 switch (
tok()[0]) {
14173 if (
tok()[1] ==
'@')
14240 if (kw->
id[0] != kw->
id[1])
14293 if (!
NIL_P(parser->delayed)) {
14294 ripper_dispatch_delayed_token(parser, t);
14298 ripper_dispatch_scan_event(parser, t);
14340 if (orig == (
NODE*)1)
return;
14349 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14356 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14361 NODE *end, *h = head, *nd;
14363 if (tail == 0)
return head;
14365 if (h == 0)
return tail;
14404 tail->nd_end = tail;
14406 end->nd_next = tail;
14407 h->nd_end = tail->nd_end;
14417 if (list == 0)
return NEW_LIST(item);
14418 if (list->nd_next) {
14419 last = list->nd_next->nd_end;
14425 list->nd_alen += 1;
14427 list->nd_next->nd_end = last->nd_next;
14437 if (head->nd_next) {
14438 last = head->nd_next->nd_end;
14444 head->nd_alen += tail->nd_alen;
14445 last->nd_next = tail;
14446 if (tail->nd_next) {
14447 head->nd_next->nd_end = tail->nd_next->nd_end;
14450 head->nd_next->nd_end = tail;
14459 if (
NIL_P(tail))
return 1;
14478 if (!head)
return tail;
14479 if (!tail)
return head;
14506 tail->nd_lit = head->nd_lit;
14510 else if (
NIL_P(tail->nd_lit)) {
14511 head->nd_alen += tail->nd_alen - 1;
14512 head->nd_next->nd_end->nd_next = tail->nd_next;
14513 head->nd_next->nd_end = tail->nd_next->nd_end;
14518 tail->nd_head =
NEW_STR(tail->nd_lit);
14682 # define assignable_result(x) get_value(lhs)
14683 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
14685 # define assignable_result(x) (x)
14689 yyerror(
"Can't change the value of self");
14692 yyerror(
"Can't assign to nil");
14695 yyerror(
"Can't assign to true");
14698 yyerror(
"Can't assign to false");
14701 yyerror(
"Can't assign to __FILE__");
14704 yyerror(
"Can't assign to __LINE__");
14707 yyerror(
"Can't assign to __ENCODING__");
14741 yyerror(
"dynamic constant assignment");
14750 #undef assignable_result
14751 #undef parser_yyerror
14754 #define LVAR_USED ((int)1 << (sizeof(int) * CHAR_BIT - 1))
14759 if (idUScore == name)
return name;
14762 yyerror(
"duplicated argument name");
14774 yyerror(
"duplicated argument name");
14813 id &= ~ID_SCOPE_MASK;
14842 if (!node2)
return node1;
14845 if (node1->nd_head)
14846 node1->nd_head =
arg_concat(node1->nd_head, node2);
14858 node1->nd_body =
list_concat(node1->nd_body, node2);
14867 if (!node1)
return NEW_LIST(node2);
14872 node1->nd_head =
arg_append(node1->nd_head, node2);
14893 if (!lhs)
return 0;
14905 lhs->nd_value = rhs;
14910 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
14941 if (!cond)
yyerror(
"void value expression");
14946 while (node->nd_next) {
14947 node = node->nd_next;
14949 node = node->nd_head;
14953 node = node->nd_body;
14957 if (!node->nd_body) {
14958 node = node->nd_else;
14961 else if (!node->nd_else) {
14962 node = node->nd_body;
14966 node = node->nd_else;
14972 node = node->nd_2nd;
14986 const char *useless = 0;
14993 switch (node->nd_mid) {
15024 useless =
"a variable";
15027 useless =
"a constant";
15034 useless =
"a literal";
15059 useless =
"defined?";
15067 rb_warnS(
"possibly useless use of %s in void context", useless);
15080 if (!node->nd_next)
return;
15082 node = node->nd_next;
15089 NODE **n = &node, *n1 = node;
15091 *n = n1 = n1->nd_body;
15099 NODE *node = *body;
15105 #define subnodes(n1, n2) \
15106 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15107 (!node->n2) ? (body = &node->n1, 1) : \
15108 (reduce_nodes(&node->n1), body = &node->n2, 1))
15118 *body = node = node->nd_stts;
15122 *body = node = node->nd_body;
15126 body = &node->nd_end->nd_head;
15132 body = &node->nd_body;
15141 if (node->nd_else) {
15142 body = &node->nd_resq;
15162 yyerror(
"multiple assignment in conditional");
15176 if (!node->nd_value)
return 1;
15177 switch (
nd_type(node->nd_value)) {
15184 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15213 NODE *node, *next, *head;
15215 for (node = *rootnode; node; node = next) {
15219 next = node->nd_next;
15220 head = node->nd_head;
15223 switch (type =
nd_type(head)) {
15226 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15231 head->nd_lit = val;
15246 if (node == 0)
return 0;
15254 return cond0(parser, node);
15260 if (!node)
return 1;
15281 if (node == 0)
return 0;
15288 rb_warn0(
"string literal in condition");
15298 node->nd_1st =
cond0(parser, node->nd_1st);
15299 node->nd_2nd =
cond0(parser, node->nd_2nd);
15304 node->nd_beg =
range_op(parser, node->nd_beg);
15305 node->nd_end =
range_op(parser, node->nd_end);
15338 if (node == 0)
return 0;
15339 return cond0(parser, node);
15347 NODE *node = left, *second;
15348 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15351 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15354 return NEW_NODE(type, left, right, 0);
15371 if (node->nd_next == 0) {
15372 node = node->nd_head;
15402 switch (
TYPE(node->nd_lit)) {
15422 node2->nd_head = node1;
15435 node =
NEW_ARGS(m ? m->nd_plen : 0, o);
15436 i1 = m ? m->nd_next : 0;
15441 node->nd_next->nd_next =
NEW_ARGS_AUX(p->nd_pid, p->nd_plen);
15460 if (!local->
used)
return;
15464 if (cnt != local->
vars->
pos) {
15465 rb_bug(
"local->used->pos != local->vars->pos");
15467 for (i = 0; i <
cnt; ++
i) {
15468 if (!v[i] || (u[i] &
LVAR_USED))
continue;
15469 if (idUScore == v[i])
continue;
15512 for (i = 0; i <
cnt; i++) {
15513 buf[
i] = src->
tbl[
i];
15526 if (cnt <= 0)
return 0;
15557 vars =
lvtbl->vars;
15558 args =
lvtbl->args;
15559 used =
lvtbl->used;
15564 if (used) used = used->
prev;
15580 static const struct vtable *
15588 return lvtbl->args;
15596 if ((tmp =
lvtbl->used) != 0) {
15612 while (
lvtbl->args != lvargs) {
15614 if (!
lvtbl->args) {
15635 args =
lvtbl->args;
15636 vars =
lvtbl->vars;
15637 used =
lvtbl->used;
15650 if (used) used = used->
prev;
15703 "regexp encoding option '%c' differs from source encoding '%s'",
15732 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
15738 const char *s = (
const char *)name;
15755 rb_warningS(
"named capture conflicts a local variable - %s",
15835 NODE *scope = node;
15838 if (!node)
return node;
15842 node = node->nd_body;
15846 node = node->nd_body;
15853 prelude->nd_body = node;
15854 scope->nd_body = prelude;
15857 scope->nd_body = node;
15867 NODE *scope = node;
15870 if (!node)
return node;
15874 node = node->nd_body;
15878 node = node->nd_body;
15894 prelude->nd_body = node;
15895 scope->nd_body = prelude;
15898 scope->nd_body = node;
15904 static const struct {
15928 #define op_tbl_count numberof(op_tbl)
15930 #ifndef ENABLE_SELECTOR_NAMESPACE
15931 #define ENABLE_SELECTOR_NAMESPACE 0
15938 #if ENABLE_SELECTOR_NAMESPACE
15950 #if ENABLE_SELECTOR_NAMESPACE
15957 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
15959 if (key1->id == key2->id && key1->klass == key2->klass) {
15966 ivar2_hash(
struct ivar2_key *
key)
15968 return (key->id << 8) ^ (key->klass >> 2);
15982 #if ENABLE_SELECTOR_NAMESPACE
16013 if (m >= e)
return 0;
16017 else if (*m ==
'-') {
16031 return m == e ? mb + 1 : 0;
16049 const char *m =
name;
16050 const char *e = m +
len;
16051 int localid =
FALSE;
16053 if (!m || len <= 0)
return FALSE;
16063 if (*++m ==
'@') ++m;
16068 case '<': ++m;
break;
16069 case '=':
if (*++m ==
'>') ++m;
break;
16076 case '>':
case '=': ++m;
break;
16082 case '~': ++m;
break;
16083 case '=':
if (*++m ==
'=') ++m;
break;
16084 default:
return FALSE;
16089 if (*++m ==
'*') ++m;
16092 case '+':
case '-':
16093 if (*++m ==
'@') ++m;
16096 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16101 if (*++m !=
']')
return FALSE;
16102 if (*++m ==
'=') ++m;
16106 if (len == 1)
return TRUE;
16108 case '=':
case '~': ++m;
break;
16109 default:
return FALSE;
16121 case '!':
case '?':
case '=': ++m;
16142 const char *m =
name;
16143 const char *e = m +
len;
16154 fake_str.
as.
heap.ptr = (
char *)name;
16156 str = (
VALUE)&fake_str;
16202 if (*
op_tbl[i].name == *m &&
16203 strcmp(
op_tbl[i].name, m) == 0) {
16210 if (m[last] ==
'=') {
16240 if (m - name < len)
id =
ID_JUNK;
16247 for (; m <= name +
len; ++m) {
16248 if (!
ISASCII(*m))
goto mbstr;
16312 name[0] = (char)
id;
16335 if (
RBASIC(str)->klass == 0)
16346 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
16353 if (
RBASIC(str)->klass == 0)
16366 if (!str)
return 0;
16468 parser->parser_ruby_sourcefile_string =
Qnil;
16469 parser->delayed =
Qnil;
16471 parser->result =
Qnil;
16472 parser->parsing_thread =
Qnil;
16473 parser->toplevel_p =
TRUE;
16482 #define parser_mark ripper_parser_mark
16483 #define parser_free ripper_parser_free
16501 rb_gc_mark(p->parser_ruby_sourcefile_string);
16523 prev = local->
prev;
16537 size_t size =
sizeof(*p);
16539 if (!ptr)
return 0;
16542 size +=
sizeof(*local);
16567 #undef rb_reserved_word
16651 yydebug =
RTEST(flag);
16656 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
16657 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
16658 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
16659 (n)->u3.cnt = (c), (p))
16676 void *ptr =
xcalloc(nelem, size);
16687 if (ptr && (n = parser->
heap) !=
NULL) {
16689 if (n->
u1.
node == ptr) {
16706 while ((n = *prev) !=
NULL) {
16707 if (n->u1.node == ptr) {
16720 #ifdef RIPPER_DEBUG
16721 extern int rb_is_pointer_to_heap(
VALUE);
16727 if (x ==
Qfalse)
return x;
16728 if (x ==
Qtrue)
return x;
16729 if (x ==
Qnil)
return x;
16734 if (!rb_is_pointer_to_heap(x))
16747 return ((
NODE *)x)->nd_rval;
16756 #define validate(x) ((x) = get_value(x))
16768 return rb_funcall(parser->value, mid, 1, a);
16776 return rb_funcall(parser->value, mid, 2, a, b);
16785 return rb_funcall(parser->value, mid, 3, a, b, c);
16795 return rb_funcall(parser->value, mid, 4, a, b, c, d);
16806 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
16809 static const struct kw_assoc {
16812 } keyword_to_name[] = {
16865 keyword_id_to_str(
ID id)
16867 const struct kw_assoc *a;
16869 for (a = keyword_to_name; a->id; a++) {
16876 #undef ripper_id2sym
16888 if ((name = keyword_id_to_str(
id))) {
16901 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
16919 ripper_get_value(
VALUE v)
16926 return nd->nd_rval;
16930 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
16935 va_start(args, fmt);
16942 ripper_warn0(
struct parser_params *parser,
const char *fmt)
16948 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
16956 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
16964 ripper_warning0(
struct parser_params *parser,
const char *fmt)
16970 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
16983 ripper_s_allocate(
VALUE klass)
16995 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
17011 VALUE src, fname, lineno;
17014 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
17024 if (
NIL_P(fname)) {
17032 parser->parser_ruby_sourcefile_string = fname;
17039 struct ripper_args {
17046 ripper_parse0(
VALUE parser_v)
17052 ripper_yyparse((
void*)parser);
17053 return parser->result;
17057 ripper_ensure(
VALUE parser_v)
17062 parser->parsing_thread =
Qnil;
17073 ripper_parse(
VALUE self)
17078 if (!ripper_initialized_p(parser)) {
17081 if (!
NIL_P(parser->parsing_thread)) {
17088 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17090 return parser->result;
17101 ripper_column(
VALUE self)
17107 if (!ripper_initialized_p(parser)) {
17110 if (
NIL_P(parser->parsing_thread))
return Qnil;
17122 ripper_filename(
VALUE self)
17127 if (!ripper_initialized_p(parser)) {
17130 return parser->parser_ruby_sourcefile_string;
17141 ripper_lineno(
VALUE self)
17146 if (!ripper_initialized_p(parser)) {
17149 if (
NIL_P(parser->parsing_thread))
return Qnil;
17153 #ifdef RIPPER_DEBUG
17175 InitVM_ripper(
void)
17198 #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
#define RSTRING_LEN(string)
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
struct local_vars * parser_lvtbl
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
#define IS_LABEL_SUFFIX(n)
int rb_enc_codelen(int c, rb_encoding *enc)
#define NEW_OP_ASGN_AND(i, val)
#define parser_precise_mbclen()
static NODE * remove_begin(NODE *)
#define MBCLEN_CHARFOUND_P(ret)
#define NEW_STRTERM(func, term, paren)
static const yytype_int16 yydefgoto[]
#define list_concat(h, t)
static struct parser_params * parser_new(void)
#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)
static NODE * arg_blk_pass(NODE *, NODE *)
static void Init_id(void)
static ID internal_id_gen(struct parser_params *)
void rb_bug(const char *fmt,...)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
static const struct kwtable * reserved_word(const char *, unsigned int)
static int comment_at_top(struct parser_params *parser)
#define RE_OPTION_ENCODING_IDX(o)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
#define assignable(id, node)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
static size_t parser_memsize(const void *ptr)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
#define reg_compile(str, options)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
int parser_ruby__end__seen
static void ripper_init_eventids2(VALUE self)
static void fixpos(NODE *, NODE *)
VALUE rb_range_new(VALUE, VALUE, int)
static void reduce_nodes_gen(struct parser_params *, NODE **)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
int parser_compile_for_eval
int parser_token_info_enabled
VALUE op_sym[tLAST_TOKEN]
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
VALUE rb_str_cat(VALUE, const char *, long)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
VALUE rb_reg_check_preprocess(VALUE)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static NODE * gettable_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
#define RFLOAT_VALUE(val)
#define TypedData_Wrap_Struct(klass, data_type, sval)
static struct symbols global_symbols
static YYSIZE_T yystrlen(char *yystr) const
VALUE rb_parser_end_seen_p(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
struct token_info token_info
stack_type parser_cmdarg_stack
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
#define token_info_push(token)
static VALUE debug_lines(const char *f)
static int parser_here_document(struct parser_params *, NODE *)
NODE * rb_compile_string(const char *f, VALUE s, int line)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
#define logop(type, node1, node2)
VALUE rb_ary_push(VALUE ary, VALUE item)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define NEW_CLASS(n, b, s)
static NODE * evstr2dstr_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)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
unsigned short int yytype_uint16
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
static VALUE INT2NUM(int v)
#define is_identchar(p, e, enc)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
#define warn_balanced(op, syn)
#define match_op(node1, node2)
#define RSTRING_PTR(string)
int rb_enc_str_coderange(VALUE)
#define reg_fragment_setenc(str, options)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
void rb_raise(VALUE exc, const char *fmt,...)
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static NODE * newline_node(NODE *)
#define new_args(f, o, r, p, b)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
static NODE * range_op(struct parser_params *parser, NODE *node)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
#define RARRAY_LEN(ARRAY)
VALUE rb_ary_new3(long n,...)
static void parser_pushback(struct parser_params *parser, int c)
#define nd_set_type(n, t)
nd_set_line($$,$< num >2)
static int lvar_defined_gen(struct parser_params *, ID)
void rb_gc_mark(VALUE ptr)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
#define parser_is_identchar()
#define rb_enc_islower(c, enc)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define RE_OPTION_ENCODING(e)
#define rb_backref_error(n)
static void parser_initialize(struct parser_params *parser)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
static const yytype_uint16 yyr1[]
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
static ID * vtable_tblcpy(ID *buf, const struct vtable *src)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define is_instance_id(id)
#define call_bin_op(recv, id, arg1)
VALUE rb_str_buf_append(VALUE, VALUE)
VALUE rb_sym_all_symbols(void)
static VALUE lex_getline(struct parser_params *parser)
static NODE * ret_args_gen(struct parser_params *, NODE *)
static const yytype_int16 yytable[]
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
#define st_init_numtable_with_size
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
void rb_gc_force_recycle(VALUE p)
static int yylex(void *, void *)
bodystmt escape_Qundef($1)
#define list_append(l, i)
NODE * parser_deferred_nodes
VALUE rb_str_buf_cat(VALUE, const char *, long)
static int e_option_supplied(struct parser_params *parser)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
#define SPECIAL_PUNCT(idx)
static int vtable_size(const struct vtable *tbl)
static int assign_in_cond(struct parser_params *parser, NODE *node)
void rb_exc_raise(VALUE mesg)
block_command ripper_id2sym('.')
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
static rb_encoding * must_be_ascii_compatible(VALUE s)
int rb_is_const_id(ID id)
int rb_is_instance_id(ID id)
#define RB_TYPE_P(obj, type)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
#define assignable_result(x)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warning(node, mesg)
static int parser_regx_options(struct parser_params *)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
enum lex_state_e parser_lex_state
#define whole_match_p(e, l, i)
VALUE parser_lex_lastline
#define set_yylval_literal(x)
static int parser_yylex(struct parser_params *parser)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
#define scan_hex(s, l, e)
static int dyna_in_block_gen(struct parser_params *)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
static const yytype_uint16 yystos[]
static char * parser_tokspace(struct parser_params *parser, int n)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
void rb_compile_error_append(const char *fmt,...)
static void parser_free(void *ptr)
#define NEW_PRELUDE(p, b)
#define literal_concat(h, t)
const struct vtable * vars
RUBY_EXTERN VALUE rb_cObject
static int symbols_i(VALUE sym, ID value, VALUE ary)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
#define rb_enc_isascii(c, enc)
static int dvar_curr_gen(struct parser_params *, ID)
VALUE rb_parser_encoding(VALUE vparser)
#define st_init_table_with_size
static const yytype_uint16 yyrline[]
struct parser_params * parser
#define yytable_value_is_error(yytable_value)
char * ruby_strdup(const char *)
VALUE rb_get_coverages(void)
static const yytype_uint16 yyprhs[]
VALUE rb_obj_as_string(VALUE)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
static int is_global_name_punct(const char c)
#define is_attrset_id(id)
#define set_yylval_name(x)
#define NEW_UNLESS(c, t, e)
static char * parser_newtok(struct parser_params *parser)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
static int vtable_included(const struct vtable *tbl, ID id)
#define block_dup_check(n1, n2)
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
static void local_push_gen(struct parser_params *, int)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
ID rb_intern(const char *name)
#define heredoc_identifier()
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
static const struct @13 op_tbl[]
void rb_define_const(VALUE, const char *, VALUE)
VALUE ruby_suppress_tracing(VALUE(*func)(VALUE, int), VALUE arg, int always)
static void parser_tokadd(struct parser_params *parser, int c)
static void parser_mark(void *ptr)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
rb_atomic_t cnt[RUBY_NSIG]
#define lex_goto_eol(parser)
enum node_type nodetype(NODE *node)
static void vtable_add(struct vtable *tbl, ID id)
char ary[RSTRING_EMBED_LEN_MAX+1]
static NODE * parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define ALLOCA_N(type, n)
#define flush_string_content(enc)
static VALUE coverage(const char *f, int n)
#define ENC_CODERANGE_UNKNOWN
#define tokadd_string(f, t, p, n, e)
static NODE * new_yield_gen(struct parser_params *, NODE *)
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
#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 int parser_nextc(struct parser_params *parser)
const char * parser_lex_pend
static ID formal_argument_gen(struct parser_params *, ID)
static void void_expr_gen(struct parser_params *, NODE *)
void rb_gc_mark_symbols(void)
#define YY_REDUCE_PRINT(Rule)
token_info * parser_token_info
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
static char * yystpcpy(char *yydest, const char *yysrc)
VALUE rb_make_backtrace(void)
#define NEW_WHEN(c, t, e)
VALUE rb_str_resize(VALUE, long)
#define NEW_DASGN(v, val)
static int parser_peek_variable_name(struct parser_params *parser)
#define mixed_escape(beg, enc1, enc2)
int rb_str_hash_cmp(VALUE, VALUE)
#define set_yylval_num(x)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static void dispose_string(VALUE str)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
static ID shadowing_lvar_gen(struct parser_params *, ID)
#define REALLOC_N(var, type, n)
SSL_METHOD *(* func)(void)
int rb_symname_p(const char *name)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define token_info_pop(token)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
VALUE rb_sprintf(const char *format,...)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
#define NEW_OP_ASGN_OR(i, val)
#define rb_enc_isspace(c, enc)
#define rb_node_newnode(type, a1, a2, a3)
int rb_obj_respond_to(VALUE, ID, int)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
#define RB_GC_GUARD(object)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
static const struct magic_comment magic_comments[]
static int parser_parse_string(struct parser_params *, NODE *)
#define rb_warningS(fmt, a)
#define NEW_RESCUE(b, res, e)
static int dvar_defined_gen(struct parser_params *, ID, int)
int rb_is_local_id(ID id)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static int local_id_gen(struct parser_params *, ID)
unsigned char buf[MIME_BUF_SIZE]
VALUE rb_assoc_new(VALUE car, VALUE cdr)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define rb_enc_isdigit(c, enc)
unsigned char yytype_uint8
static VALUE yycompile0(VALUE arg, int tracing)
static const yytype_int16 yyrhs[]
static void arg_ambiguous_gen(struct parser_params *parser)
#define heredoc_restore(n)
static void parser_prepare(struct parser_params *parser)
static NODE * cond_gen(struct parser_params *, NODE *)
static int options(unsigned char *cp)
static const char *const yytname[]
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
stack_type parser_cond_stack
static void dyna_pop_1(struct parser_params *parser)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static int parser_heredoc_identifier(struct parser_params *parser)
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
#define rb_enc_ispunct(c, enc)
static void ripper_init_eventids1(VALUE self)
static int value_expr_gen(struct parser_params *, NODE *)
void rb_mark_tbl(st_table *tbl)
#define NEW_ENSURE(b, en)
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
register unsigned int len
static const yytype_int16 yycheck[]
#define RARRAY_PTR(ARRAY)
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
#define set_yylval_str(x)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
struct RString::@28::@29 heap
expr ripper_intern("and")
#define ENCODING_IS_ASCII8BIT(obj)
static const yytype_int16 yypgoto[]
static int arg_var_gen(struct parser_params *, ID)
#define rb_enc_isalpha(c, enc)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
static ID * local_tbl_gen(struct parser_params *)
#define reg_named_capture_assign(regexp, match)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, ID)
static int parser_yyerror(struct parser_params *, const char *)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define is_asgn_or_id(id)
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
VALUE rb_usascii_str_new2(const char *)
int rb_const_defined_at(VALUE, ID)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
void rb_gc_mark_parser(void)
static const yytype_uint8 yytranslate[]
#define ADD2HEAP(n, c, p)
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define NEW_GASGN(v, val)
static void no_blockarg(struct parser_params *parser, NODE *node)
static void local_pop_gen(struct parser_params *)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define read_escape(flags, e)
static VALUE ULONG2NUM(unsigned long v)
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
#define parser_warn(node, mesg)
ID rb_intern_str(VALUE str)
void rb_set_errinfo(VALUE err)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
#define NEW_UNTIL(c, b, n)
static int token_info_get_column(struct parser_params *parser, const char *token)
static const struct st_hash_type symhash
#define node_assign(node1, node2)
static void void_stmts_gen(struct parser_params *, NODE *)
static int local_var_gen(struct parser_params *, ID)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
#define YYSTACK_ALLOC_MAXIMUM
static const rb_data_type_t parser_data_type
void rb_compile_warning(const char *file, int line, const char *fmt,...)
static const yytype_uint16 yydefact[]
#define parser_encoding_name()
#define NEW_WHILE(c, b, n)
static const yytype_int16 yypact[]
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
#define NEW_POSTARG(i, v)
struct rb_encoding_entry * list
rb_encoding * rb_filesystem_encoding(void)
#define NEW_CVASGN(v, val)
static void new_bv_gen(struct parser_params *, ID)
static NODE * negate_lit(NODE *)
#define NEW_MATCH3(r, n2)
#define NEW_OP_ASGN2(r, i, o, val)
static void fixup_nodes(NODE **)
#define STR_NEW3(p, n, e, func)
static const char * magic_comment_marker(const char *str, long len)
#define NEW_OPT_ARG(i, v)
static unsigned int hash(const char *str, unsigned int len)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define IS_LABEL_POSSIBLE()
VALUE rb_ary_new2(long capa)
const char * parser_lex_pbeg
int rb_is_class_id(ID id)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
VALUE rb_parser_new(void)
VALUE rb_const_get_at(VALUE, ID)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define call_uni_op(recv, id)
static int literal_node(NODE *node)
#define set_yylval_node(x)
const char * parser_lex_p
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
#define RE_OPTION_ENCODING_NONE(o)
#define dvar_defined_get(id)
int parser_ruby_sourceline
const char * rb_id2name(ID id)
#define ruby_eval_tree_begin
#define formal_argument(id)
#define dispatch_heredoc_end()
static const yytype_uint8 yyr2[]
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
#define YY_STACK_PRINT(Bottom, Top)
#define NEW_CALL(r, m, a)
static NODE * cond0(struct parser_params *, NODE *)
rb_encoding * rb_ascii8bit_encoding(void)
int rb_enc_find_index(const char *name)
static NODE * splat_array(NODE *)
static struct vtable * vtable_alloc(struct vtable *prev)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define CONST_ID(var, str)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define attrset(node, id)
#define mixed_error(enc1, enc2)
static ID register_symid(ID, const char *, long, rb_encoding *)
#define NEW_MATCH2(n1, n2)
static const struct vtable * dyna_push_gen(struct parser_params *)
#define shadowing_lvar(name)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
#define reg_fragment_check(str, options)
int rb_parse_in_eval(void)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
ID rb_intern2(const char *name, long len)
VALUE rb_vsprintf(const char *, va_list)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
VALUE rb_parser_get_yydebug(VALUE self)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
#define yypact_value_is_default(yystate)
#define ENCODING_SET(obj, i)
int rb_local_defined(ID id)
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)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
#define block_append(h, t)
static void vtable_free(struct vtable *tbl)
#define rb_enc_prev_char(s, p, e, enc)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
VALUE rb_attr_get(VALUE, ID)
#define tokaddmbc(c, enc)
#define NEW_CDECL(v, val, path)
NODE * rb_compile_file(const char *f, VALUE file, int start)
#define NEW_DEFS(r, i, a, d)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
rb_encoding * rb_enc_from_index(int index)
#define aryset(node1, node2)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
VALUE rb_str_new(const char *, long)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)